Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Higgins Data Model 1.0"

(Annotation Properties)
(Published Links)
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}
+
{{#eclipseproject:technology.higgins|eclipse_custom_style.css}} [[Image:Higgins_logo_76Wx100H.jpg|right]]
[[Image:Higgins_logo_76Wx100H.jpg|right]]
+
  
== Version 1.0 ==
+
=== Version 1.0 ===
* This page describes the Higgins 1.0 Context Data Model
+
* This page describes the Higgins Data Model 1.0 & 1.1
* See [[Context Data Model 2.0]] for the version currently under development
+
  
== Introduction ==
+
=== Published Links  ===
Although it can be used for almost any kind of data, the focus of the [[Context Data Model]] 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:
+
*http://www.eclipse.org/higgins/ontologies/2008/6/higgins - most recent published version
* [[Context Data Model Background]] for information about motivations and design goals.
+
*http://www.eclipse.org/higgins/ontologies/2008/6/higgins-doc/index.html - most recent documentation
  
== Core Semantics ==
+
=== Introduction ===
The [[Context Data Model]] encompasses the core semantics of the W3C's [http://www.w3.org/RDF/ Resource Description Framework] (RDF); anything expressible in RDF is expressible in the [[Context Data Model]] although the converse isn't true.
+
  
Most of the subtle but important differences between [[Context Data Model]] 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 [[Context Data Model]] is based on a more generalized URI called a [[UDI]]. Objects identified by URIs in RDF are called ''Resources'', whereas in [[Context Data Model]] they are identified by [[UDI]]s and are called [[Entity | Entities]].
+
The Higgins Data Model (HDM) is described by higgins.owl.  
  
[[Context Data Model]] includes a kind of object called a [[Context]] that has no analog in RDF. Individual [[Context]]s can be thought of as containers of portions of the overall graph of objects. [[Context]]s partition the data space into disjoint sets of objects. [[Context Provider]] plug-in implementations map sets of data resources stored in a various kinds of data stores into objects within [[Context]] boundaries in the [[Context Data Model]] 
+
HDM 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.
 
+
[[Context Data Model]] 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 [[Context Data Model]] an object may only have 0..1 property of type T, and if the property exists it has 1..N values. Further, in [[Context Data Model]] these properties are called [[Attribute]]s.
+
 
+
== Domain Concepts ==
+
The [[Context Data Model 1.0]] defines these concepts:
+
 
+
; Attribute: Defines a property of an Node or a Context. Has a type (URI). Has one or more values all of which MUST be unique. The value of an Attribute is an instance of AttributeValue. 
+
; AttributeValue: An object that hold either a literal value or a complex value. In Higgins 1.0 this instance can also hold what was called "metadata" values (e.g. creation date-time, expiration date-time).
+
; Context: A set of one or more Nodes
+
; ContextId: A URI that identifies a Context
+
;Entity: Person, thing, juridical entity, concept, animal or anything with separate existence.
+
;Node (aka ''Digital Subject''): A representation of an Entity within a given context. Nodes and Entities are not the same concept. The distinction is subtle but critical. In Higgins the same Entity is usually represented by multiple Nodes in different Contexts.
+
;NodeId: A NodeId is a kind of simple-valued Attribute of an Node. Its value uniquely identifies an instance of an Node. The value of an NodeId is a single NodeId Data Range URI
+
;Node Relation: A kind of Attribute of a Node. Each value of an Node Relation identifies a Node [Note: the target Nodes may be in the same or different Contexts as the source Node ]. The value(s) of an Node Relation is a Node. More precisely, the value is a NodeId Data Range URI that is dereferenced to produce a Node instance.
+
;Node Correlation: A Node Correlation is a kind of Attribute of a source Node. Each value of a Node Correlation identifies a target Node. Each source-target Node pair expresses that both Nodes are representations of the same Entity
+
 
+
== Higgins.owl ==
+
 
+
[[Higgins.owl 1.0]] 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.
+
  
 
''Note: In the [[Identity Attribute Service]] the term "Digital Subject" was changed to "Node" just before the release of Higgins 1.0. However, the term was not changed in version 1.0 of higgins.owl where the term "Digital Subject" remains.
 
''Note: In the [[Identity Attribute Service]] the term "Digital Subject" was changed to "Node" just before the release of Higgins 1.0. However, the term was not changed in version 1.0 of higgins.owl where the term "Digital Subject" remains.
Line 145: Line 122:
 
# totalDigits
 
# totalDigits
  
== Misc Notes ==
+
=== Misc Notes ===
 
The value of the uniqueIdentifier attribute is immutable. All [[Digital Subject]]s have exactly one uniqueIdentifier attribute whose value is set when the [[Digital Subject]] is instantiated.
 
The value of the uniqueIdentifier attribute is immutable. All [[Digital Subject]]s have exactly one uniqueIdentifier attribute whose value is set when the [[Digital Subject]] is instantiated.
  
 
''Note: The properties of the Context container itself are attached to special object called ContextObject within the instance data and also described in the ontology.''
 
''Note: The properties of the Context container itself are attached to special object called ContextObject within the instance data and also described in the ontology.''
 
[[Category:Higgins Data Model]]
 
  
 
=== Extending HOWL ===
 
=== Extending HOWL ===
Line 162: Line 137:
 
* [[Person-with-friend Example Context Ontology]]
 
* [[Person-with-friend Example Context Ontology]]
  
 +
=== Updates  ===
 +
 +
*[[HOWL Update 1.1.106]] - published as ../1.1M4/higgins
 +
*[[HOWL Update 1.1.105]] - interm version
 +
*[[HOWL Update 1.1.104]] - interim version
 +
*[[HOWL Update 1.1.103]] - interim version
 +
*[[HOWL Update 1.1.102]] - published as ../1.1M2/higgins
 +
*[[HOWL Update 1.21]] - interim version; now renamed 1.1.101
 +
*[[HOWL Update 1.20]] - first cut at HOWL 1.1
  
 
[[Category:Higgins Data Model]]
 
[[Category:Higgins Data Model]]

Latest revision as of 11:55, 25 June 2010

{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}
Higgins logo 76Wx100H.jpg

Version 1.0

  • This page describes the Higgins Data Model 1.0 & 1.1

Published Links

Introduction

The Higgins Data Model (HDM) is described by higgins.owl.

HDM 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.

Note: In the Identity Attribute Service the term "Digital Subject" was changed to "Node" just before the release of Higgins 1.0. However, the term was not changed in version 1.0 of higgins.owl where the term "Digital Subject" remains.

Context Ontologies

Every Context can defines its own ontology. This ontology declares the OWL classes and properties used by instances within that Context. This Context-defined ontology must be based on higgins.owl (i.e. it must import higgins.owl).

Classes

This section is a summary of the main classes in higgins.owl. Each numbered item lists a class (e.g. "Attribute"). The sub-items show properties defined for this class (e.g. "source") prefixed by the cardinality of this property on this class (e.g. "O..N").

Note: subclasses of SimpleValue are listed separately in the next section to reduce clutter.

Classes in alphabetic order:

Attribute
Instances of this class are used as the domain of a set of higgins:metadata properties that, taken together, are considered to be the metadata about a higgins:attribute sub-property.
ComplexValue
subclass of Value
ContextId
URI of a Context
ContextObject
  • 0..N hasContextRelations
ContextRelation
  • 0..N contextId
SimpleValue (subclass of Value)
  • 1..N simpleValue
Digital Subject
  • 1..1 uniqueIdentifier
  • 0..N timeSpan
  • 0..N attribute
SubjectRelation
Subclass of ComplexValue.
  • 1..1 contextId
  • 1..1 subjectId
SubjectCorrelation
Subclass of SubjectRelation. If DigitalSubject A has a correlation relation to DigitalSubject B, this implies that that A and B represent different representations of the same underlying Entity. This relation only navigable in one direction: in this example from A to B.
TimeSpan
  • 0..1 validFrom --if not present, assume validFrom is the beginning of time
  • 0..1 validTo --if not present, assume validTo is the end of time
Value
  • 0..N source
  • 0..N creator
  • 0..N creationTime
  • 0..N timeSpan
  • 0..1 lastModified
  • 0..1 syncConflict
  • 0..1 lastVerifiedFromSource
  • 0..1 lastVerifyAttempt

Subclasses of SimpleValue

The following mirror the XML Schema types recommended for use with OWL

  1. AnyURI
  2. Base64Binary
  3. Boolean
  4. Byte
  5. Date

...etc

DataType (literal valued) Properties

lastModified
  • domain: Value
  • range: xsd:dateTime
lastVerifiedFromSource
  • domain: Value
  • range: xsd:dateTime
lastVerifyAttempt
  • domain: Value
  • range: xsd:dateTime
simpleMetadata
  • domain: Value, DigitalSubject
simpleValue
  • domain: SimpleValue
subjectID
  • domain: SubjectRelation
  • range: xsd:normalizedString
syncConflict
  • domain: Value
  • range: xsd:boolean
validFrom
  • domain: TimeSpan
  • range: xsd:date
validTo
  • domain: TimeSpan
  • range: xsd:date

Sub-Properties of simpleValue

  1. anyURI - domain(AnyURI), range(xsd:anyURI)
  2. boolean - domain(Boolean), range(xsd:boolean)
  3. base64Binary - domain(Base64), range(xsd:base64Binary)

...etc for all of the rest of the XML Schema datatypes

Object (object valued) Properties

  1. attribute - domain(DigitalSubject, ContextObject, ComplexValue), range(Value, Attribute)
  2. complexMetadata - domain(DigitalSubject, Attribute)
  3. complexValue - domain(ComplexAttribute)
  4. contextID - domain(ContextRelation, SubjectRelation), range(ContextID)
  5. contextRelation - domain(ContextObject), range(ContextRelation)
  6. source - domain(Attribute), range(SubjectRelation). The value is a SubjectRelation that indicates the authoritative source of the value of this Attribute
  7. timeSpan - domain(DigitalSubject, Attribute), range(TimeSpan)
  8. uniqueIdentifier - domain(DigitalSubject), range(higgins:StringSimpleAttribute). Uniquely identifies a DigitalSubject within a context

Annotation Properties

The following have been copied verbatim from http://protege.stanford.edu/plugins/owl/owl-library/2005/08/07/xsp.owl. These allow us to express the semantics of XML Schema within a Higgins-based ontology RDF file.

  1. base
  2. fractionDigits
  3. length
  4. maxExclusive
  5. maxInclusive
  6. maxLength
  7. minExclusive
  8. minInclusive
  9. minLength
  10. pattern
  11. totalDigits

Misc Notes

The value of the uniqueIdentifier attribute is immutable. All Digital Subjects have exactly one uniqueIdentifier attribute whose value is set when the Digital Subject is instantiated.

Note: The properties of the Context container itself are attached to special object called ContextObject within the instance data and also described in the ontology.

Extending HOWL

Developers must create specialized ontologies based on HOWL that describe specific concrete domains.

For example, if a developer wanted to describe a CRM database, she would create an OWL ontology that would describe the data objects in the CRM database. This CRM database is called a Context in Higgins. 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 Node (Digital Subject, or Entity) and "full-name" and "email" as kinds of attributes.

Here are some HOWL-based Ontologies:

Updates

Back to the top