Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Context Data Model 2.0"

(Top level concepts)
Line 31: Line 31:
 
# [[Attribute]] - a property of an [[Entity]]. Attributes of an [[Entity]] are distinguished from one another by its [[AttributeId]]. [[Attributes]] have 1..N values. These values may be simple (literals) or complex (other [[Entity | Entities]]). Complex-valued [[Attribute]]s are called [[Entity Relation]]s (think "links")
 
# [[Attribute]] - a property of an [[Entity]]. Attributes of an [[Entity]] are distinguished from one another by its [[AttributeId]]. [[Attributes]] have 1..N values. These values may be simple (literals) or complex (other [[Entity | Entities]]). Complex-valued [[Attribute]]s are called [[Entity Relation]]s (think "links")
 
# [[Data Range]] - a definition of a kind of simple, literal [[Attribute]] value. Generally a syntax restriction on one of the XML Schema datatypes.
 
# [[Data Range]] - a definition of a kind of simple, literal [[Attribute]] value. Generally a syntax restriction on one of the XML Schema datatypes.
 +
# [[Statement]] - a class that allows attributes to be added to a (single) value of an Attribute of an Entity.
  
=== More core concepts ===
+
== cdm.owl ==
Here are a few more foundational concepts:
+
* 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 Class]]es 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)
+
  
=== Identity-related concepts ===
+
CDM uses concepts that, while they can be ''approximated'' in OWL, are unique to CDM and are not compatible with existing RDF/OWL data sources. These are described in a file called [[Cdm.owl 1.1]]. This cdm.owl file is provided only as a description using RDF/OWL of the foundational concepts of CDM (e.g. "Entity"). However the cdm.owl file should not be imported or used in creating ontologies, it was created only as a description of the CDM metamodel itself.
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
+
 
+
===Access control===
+
* 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:
+
** onAttribute
+
** operation, and its sub-attributes: add, delete, modify and read
+
** selfOperation, and its sub-attributes: selfAdd, selfDelete, selfModify, selfRead
+
** selfSubject
+
 
+
== higgins.owl and cdm.owl ==
+
 
+
The CDM model is a set of concepts. From 1.1M4 forward, we divide this set of concepts into two subsets. The first subset contains concepts that can are expressed in OWL1.1 and can be directly imported and used as a base ontology by RDF/OWL data sources and systems. These are contained in the file [[Higgins.owl 1.1]]''.'' This file describes many of the core concepts used in the CDM. [[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 Provider]]s to define for themselves.
+
 
+
The second subset contains CDM concepts that, while they can be ''approximated'' in OWL, are unique to CDM and are not compatible with existing RDF/OWL data sources. These are described in a file called [[Cdm.owl 1.1]]. This cdm.owl file is provided only as a description using RDF/OWL of the foundational concepts of CDM (e.g. "Entity"). However the cdm.owl file should not be imported or used in creating ontologies, it was created only as a description of the CDM metamodel itself.
+
 
+
== 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 [[Attribute]]s.
+
  
 
==Misc ==
 
==Misc ==
Line 73: Line 41:
 
* [[Context Data Model Related Resources]]
 
* [[Context Data Model Related Resources]]
  
[[Category:Higgins Data Model]]
 
 
[[Category:Context Data Model 1.1]]
 
[[Category:Context Data Model 1.1]]

Revision as of 00:04, 4 November 2009

{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}

Higgins logo 76Wx100H.jpg

Version 1.1

  • This page describes version 1.1 of the Higgins Context Data Model
  • See Context Data Model 1.0 for the released Higgins 1.0 version

Introduction

Although the CDM can be used for almost any kind of data, the focus of CDM is to provide a foundation for integrating, unifying, and sharing identity-related data. In particular we are focused on information about a person, a group or an entire organization. This might include contact information, authentication data, preferences, email addresses, interests, employer-related information. An object representing a single person, might have relationships to other objects and other people in the same or different data contexts.

See:

CDM Core Semantics

The Context Data Model (CDM) encompasses the core semantics of the W3C's Resource Description Framework (RDF); anything expressible in RDF is expressible in the CDM although the converse isn't true.

Most of the subtle but important differences between CDM and RDF are derived from differences in the choice of identifiers used to identify objects in each model. RDF is based on pure HTTP URIs, whereas CDM is based on a more generalized URI called a UDI. Objects identified by URIs in RDF are called Resources, whereas in CDM they are identified by UDIs and are called Entities.

The CDM includes a kind of object called a Context that has no analog in RDF. Individual Contexts can be thought of as containers of portions of the overall graph of objects. Contexts partition the data space into disjoint sets of objects. Context Provider plug-in implementations map data stored in a various kinds of data stores into objects within Context boundaries in CDM.

The CDM also differs from RDF on a syntactic (semantically lossless) level. In RDF an object may have N properties of type T each of which has a single value whereas in the CDM an object may only have 0..1 property of type T, and if the property exists it has 1..N values. Further, in the CDM these properties are called Attributes.

Key Concepts

Top level concepts

  1. Context - a container of objects called Entities. Contexts are identified by a ContextId
  2. Entity - instances of objects (as well as the Entity Classes and Attribute Classes that define them) within a Context. All are identified within a Context by an EntityId
  3. Attribute - a property of an Entity. Attributes of an Entity are distinguished from one another by its AttributeId. Attributes have 1..N values. These values may be simple (literals) or complex (other Entities). Complex-valued Attributes are called Entity Relations (think "links")
  4. Data Range - a definition of a kind of simple, literal Attribute value. Generally a syntax restriction on one of the XML Schema datatypes.
  5. Statement - a class that allows attributes to be added to a (single) value of an Attribute of an Entity.

cdm.owl

CDM uses concepts that, while they can be approximated in OWL, are unique to CDM and are not compatible with existing RDF/OWL data sources. These are described in a file called Cdm.owl 1.1. This cdm.owl file is provided only as a description using RDF/OWL of the foundational concepts of CDM (e.g. "Entity"). However the cdm.owl file should not be imported or used in creating ontologies, it was created only as a description of the CDM metamodel itself.

Misc

Back to the top