Data Model
Pattern Data Model
This page describes the Pattern Data model, please refer to other sections of our documentation for information on how Device Detection works or details regarding interfacing with the APIs.
A Component is used for categorising Profiles. Currently there are four Component types: Hardware, Operating System (Software), Browser and Crawler.
Profile contains a number of Properties and their assigned Values. Each Property has a Category assigned, Categories group Properties by their type. For example, FrontCameraMegaPixels is a Property with a Category type of Camera. Each Profile has a unique ID.
Device is a group of Profiles the Pattern API identifies when performing a detection on a given User-Agent. A Device is a combination of four Profiles, one of each Component type and is identified by the combined unique IDs of its Profiles – which are held as four integers separated by hyphens, e.g. '12489-23543-12314-18019'.
In order to uniquely identify a device, 51Degrees uses a Signature. A Signature is a collection of the relevant substrings that match a User-Agent to a specific Profile.
Consider the following User-Agent:
Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Mobile Safari/537.36
'Nexus 5 Build/MRA58N' maps to the Hardware Profile, 'Android 6.0' maps to the Software Profile and 'Chrome/55.0.2883.87' maps to the Browser Profile. As there is no substring that maps to the Crawler Profile it is assigned to the default profile which indicates that it is not a web crawler.
Data Model Definitions
The 51Degrees data model is comprised of the following entites:
Device: A Device is a collection of four Profiles. The Device-ID is made up of four separate Profile-IDs. It is displayed as four integer values separated by hyphens. E.g. '12342-26378-30412-18092'.
Profile: A profile is a unique collection of the Property:Value pairs for a specific set of Signatures that belong to a specific Component. Each profile has a unique ID.
Component: A component can either be Hardware, Platform, Browser or Crawler. Each component category contains a list of Profiles associated with that component and a list of Properties that belong to that particular component. I.e. the 'Canvas' property belongs to the Browser component and will only be encountered in the Profiles created for the Browser component.
Property: A property is a specific characteristic of the requesting devices such as PlatformName, HardwareModel or BrowserName. Each property contains a list of all possible and valid values this property can have. Properties are further broken down by category where each category represents a set of similar characteristics.
Value: One of the possible values that a property can be assigned. E.g. the IsMobile property will evaluate to 'True', 'False' or 'Unknown'. The Device Detection API identifies the requesting device and assigns the relevant value for each property. So the IsMobile property will evaluate to 'True' for mobile devices and 'False' for the non-mobile devices.
Signature: A signature is a collection of the relevant substrings that the Pattern API uses for device detection. A signature typically consists of 4 profile IDs that constitute a device ID and a list of values where each value corresponds to a specific single property. Signature can be used to determine the popularity of the associated device through the rank information assigned to each signature. the number of signatures currently within the Enterprise data file is 2,861,766.
Category: A category is used to group properties of the similar qualities.
Relationship Diagram
Find out how Pattern detection works.