Higgins Data Model 2.0
- This page describes version 1.1 of the Higgins Data Model
The Higgins data model add the following concepts to the Context Data Model 1.1.
- The CDM is self-describing, recursive. We use special kinds of Entities called Entity Classes to describe classes of entities and we use other kinds of Entities called Attribute Classes that describe Attributes.
- Speaking of recursive, there is Statement class that allows Attributes to be added to a (single) value of an Attribute of an Entity.
- Getting into the weeds a bit, there is also a utility class called TimeSpan (and related Attributes: validFrom and validTo)
Building on the core described above, the CDM introduces the following slightly more specialized concepts:
- There is an Entity class called Agent along with three subclasses: Group, Organization and Person.
- Entities and Contexts can be correlated using the Entity Correlation and Context Correlation links respectively.
- There are a set of pre-defined Attributes:
- part, and its sub-attribute member
- partOf, and its sub-attribute memberOf
- The following Attributes are defined to describe Attributes: displayOrder, category, authority, lastModified, lastVerifiedFromSource, lastVerifyAttempt
- Contexts can be correlated using the contextCorrelation Attribute
- Starting in 1.1M4 we have defined a set of Entity Classes and Attributes that describe access control policies.
- The new Entity classes are Policy, an abstract superclass for many kinds of policy we might want to model in the future, and AccessControl, a subclass of Policy
- A new abstract super-attribute called accessControl is defined with these sub-attributes:
- operation, and its sub-attributes: add, delete, modify and read
- selfOperation, and its sub-attributes: selfAdd, selfDelete, selfModify, selfRead
The Higgins Data Model 1.1 is described by Higgins.owl 1.1. Higgins.owl 1.1 is an abstract (sometimes called an "upper") ontology for identity information. It is abstract in that it doesn't describe any concrete attributes such as "email address" or "first name". It also doesn't define very specialized classes of objects such as "calendar event" or "student", "movie", "book", etc. These are left to Context Providers to define for themselves.
Building on higgins.owl 1.1
Developers of Context Providers can create ontologies that are based on higgins.owl to describe specific concrete domains of relevance to Contexts of this Context Provider.
For example, if a developer wanted to describe a CRM database, they would create an OWL ontology that would describe the kinds of data objects and their attributes in the CRM database. This CRM database is called a Context. If, for example, the database contained records about customers and those customers had full-names and email addresses, then the developer would define "Customer" as a sub-class of the Agent class as defined in higgins.owl, and would define "full-name" and "email" as kinds of Attributes.