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 2.0"

(Classes)
(Global Attribute Definitions)
Line 38: Line 38:
 
* 0..1 <code>skos:prefLabel</code> string value that is the preferred internationalized display label
 
* 0..1 <code>skos:prefLabel</code> string value that is the preferred internationalized display label
 
* 0..1 <code>skos:example</code> an example value
 
* 0..1 <code>skos:example</code> an example value
* 0..1 <code>h:category</code> the value must be an instance of <code>skos:Concept</code>
+
* 0..1 <code>h:category</code> the value must be an instance of <code>skos:Concept. Indicates the skos:Concept category to which this attribute belongs. </code>
 
* 0..N <code>rdfs:subPropertyOf</code> the value must be another Attribute Class entity
 
* 0..N <code>rdfs:subPropertyOf</code> the value must be another Attribute Class entity
  

Revision as of 00:57, 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 Data Model

Introduction

The Higgins data model (ontology) builds on the Context Data Model 1.1. It incorporates (without reinventing) concepts from the OWL, SKOS, and SPIN ontologies to provide meta modeling capabilities. Although building on CDM, the Higgins data model is still an abstract (sometimes called an "upper") ontology for identity information. It doesn't describe concrete attributes such as "email address", "first name", "calendar event", "student", "movie", "book", etc.

The Higgins Data Model is implemented by IdAS 1.1. Developers can extend and adapt IdAS by creating Context Provider plugs. These CPs implement their more specialized (concrete) data models by extending the Higgins data model.

Entity Classes

Following RDF conventions, each entity instance is linked via an rdf:type attribute to one or more "entity class" entities.

Attributes of an Entity Class

The following attributes are used by entity classes:

  • 1..1 rdf:class: value must be rdf:Class
  • 0..1 rdfs:comment: value is an internal (developer) string comment
  • 1..1 skos:prefLabel: internationalized display label
  • 0..1 spin:constraint: instances of spl:Attribute (see below)

Attribute Classes

Attributes are modeled using two separate mechanisms: globally scoped and class scoped. All attributes must be defined by a globally scoped definition. Some may also be class scoped.

Global Attribute Definitions

Global attribute definitions are entities with the following attributes:

  • 1..1 rdf:type URI value must either be owl:DatatypeProperty or owl:ObjectProperty
  • 0..1 rdfs:domain URI value must be an Entity Class entity
  • 0..1 rdfs:range URI value defines the datatype (as defined by OWL)
  • 0..1 skos:description string value that describes the attribute. Used for tooltip text in UIs
  • 0..1 skos:prefLabel string value that is the preferred internationalized display label
  • 0..1 skos:example an example value
  • 0..1 h:category the value must be an instance of skos:Concept. Indicates the skos:Concept category to which this attribute belongs.
  • 0..N rdfs:subPropertyOf the value must be another Attribute Class entity

Example:

Here is an example (in the p: namespace) of an alternative phone number:

 p:otherPhone
     a       owl:ObjectProperty ;
     rdfs:comment "An alternative telephone number"@en ;
     rdfs:domain p:Persona ;
     rdfs:label "Other phone"^^xsd:string ;
     rdfs:range p:telephoneURI ;
     h:category p:account-attribute ;
     r-card:appId "An alternative telephone number"@en ;
     vs:term_status "testing" ;
     skos:prefLabel "Other telephone"@en .

Class-scoped Attribute Definitions

The class scoped attribute definitions allows attributes to have metadata that is associated with the attribute when used within the scope of a particular class.

The first are the instances of spl:Attribute mentioned in the previous section describing Entity Classes. These spl:Attributes have the following attributes:

  • 1..1 spl:predicate: the value of this attribute
  • 0..1 spl:maxCount: max cardinality of this attribute. The maximum number of instances of this attribute on instances of the class whose spin:constraint value is this spl:Attribute instance
  • 0..1 spl:minCount: min cardinatlity as above.
  • 1..1 spl:valueType: datatype URI. May be literal (e.g. xsd:string) or may be entity-valued

Note: Those familiar with OWL will realize that we are not using the OWL-defined conventions for expressing cardinality. The SPIN-based alternatives are more natural. It is also handy that these are directly supported by OWL development tools from TopBraid to provide run-time constraint checking.

Conflicting value type attributes in Global vs. Class-scoped Attribute Classes

The value type of an attribute may be specified by the rdfs:range attribute of a global Attribute Classes and as the spl:valueType attribute of a Class-scoped attribute class instance. If both are specified the two value types must not be in conflict.

Attribute Concepts

As described above an attribute may have a h:concept attribute whose value must be a an instance of skos:Concept in a concept schema. The idea is to provide additional metadata about the nature of an attribute.

Implementation note: The skos:prefLabel values of these skos:Concept instances can be used to dynamically create dynamically driven user interfaces that logically group attributes into consistent categories.

Identity-Related Classes and Attributes

Classes

Attributes

  • part: A relationship between an aggregated whole (the domain) and a part of that whole (the range)
  • member: A relationship between a Group or Organization and its member Agent (the range). Sub-attribute of part
  • partOf: A relationship between a part (the domain) and an agregated whole (the range).
  • memberOf: The Group or Organization of which this Agent is a member. Sub-attribute of partOf
  • correlation: A directed relation between two entities (possibly in two different Contexts) that are asserted to be representing the same person, group, object or concept.
  • contextCorrelation: A directed relation between two Contexts asserted to be representing the same underlying organization or group.
  • timespan
  • synonym: Used as an abstract super-attribute to "tag" subattributes as being considered alternative identifiers for this entity.

Access Control

Classes

  • Policy: an abstract superclass for many kinds of policy we might want to model in the future.
  • AccessControl: Policy related to Access Control and data sharing. Subclass of Policy.

Attributes

  • accessControl: Abstract super-attribute.
  • subject: If present on an Access Control Policy instance the policy is restricted to apply only to this attribute.
  • agentSubject: Attribute relation indicates what Agent or class of Agents is the subject of the Policy. Subattribute of subject
  • groupSubject: Attribute relation indicates what Agents are the subject of the Policy by specifying a Group or super-Group, iteratively, the Agents are a member of. Subattribute of subject
  • onAttribute: If present on an Access Control Policy the policy is restricted to apply only to the type of property indicated by the range of this relation within the Entity or set of Entities indiated by this Policy's operation relation. Subattribute of accessControl
  • operation: Abstract operation allowed on an entity or a class of entities. Range is an entity instance or a class of entities that define the scope of resource for this Access Control Policy. The scope may be further restricted by the addition of onAttribute properties to only specified Attributes of this entity or class of entities. Subattribute of accessControl
  • selfSubject. If true, this policy's subject is implicitly defined as the current Idas consumer. Subattribute of accessControl

Subattributes of operation:

  • add: If not further restricted by onAttribute properties, then new instances of the class of Entity indicated by the range may be added to the Context. If restricted, then a new instance of the kinds of properties/attribute(s) specified by onAttribute may be added or new values added.
  • delete: If not further restricted by onAttribute properties, then instances of the class of Entity indicted by the range may be deleted from the Context. If restricted, then some or all of the values of the kind(s) of properties/attribute(s) specified by onAttribute properties may be deleted.
  • modify: If not further restricted by onAttribute properties, then instances of the class of Entity indicated by the range may be arbitrarily modified. If restricted, then some or all of the values of the kind(s) of properties/attribute(s) specified by onAttribute properties may be modified.
  • read: If not further restricted by onAttribute properties, then instances of the class of Entity indicted by the range may be read. If restricted, then some or all of the values of the kind(s) of properties/attribute(s) specified by onAttribute properties may be read.

Building on higgins.owl

The Higgins Data Model 1.1 is described by the file 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.

See Also

Back to the top