Difference between revisions of "Higgins Data Model 2.0"
(→How to use higgins.owl) |
(→Relationship to other models) |
||
Line 9: | Line 9: | ||
=== Relationship to other models === | === Relationship to other models === | ||
− | The Higgins data model (ontology) builds on the [[Context Data Model 2.0]] (CDM). 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 | + | The Higgins data model (ontology) builds on the [[Context Data Model 2.0]] (CDM). 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 personal data. It doesn't describe concrete entity and attribute classes such as would be required to describe "email address", "first name", "calendar event", "friend", "student", "movie", "book", and so on. |
The Higgins project is developing an extension to the Higgins Data Model called the [[Persona Data Model 2.0]]. See [[Personal Data Store_Overview#Data_Models]] for a summary of these relationships. | The Higgins project is developing an extension to the Higgins Data Model called the [[Persona Data Model 2.0]]. See [[Personal Data Store_Overview#Data_Models]] for a summary of these relationships. |
Revision as of 12:01, 25 June 2010
{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}This page describes version 2.0 of the Higgins Data Model
Contents
Published Links
- We have not yet published the 2.0 version
- higgins.owl - latest from SVN trunk
Relationship to other models
The Higgins data model (ontology) builds on the Context Data Model 2.0 (CDM). 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 personal data. It doesn't describe concrete entity and attribute classes such as would be required to describe "email address", "first name", "calendar event", "friend", "student", "movie", "book", and so on.
The Higgins project is developing an extension to the Higgins Data Model called the Persona Data Model 2.0. See Personal Data Store_Overview#Data_Models for a summary of these relationships.
Relationship to IdAS
The Higgins Data Model is implemented by IdAS 1.1. Developers can extend and adapt IdAS by creating Context Provider plugins. These plugins implement their more specialized (concrete) data models by extending the Higgins model.
Entities
Identity-related entity classes:
Agent
: An agent (eg. person, group, software or physical artifact).Group
: A class of Agents. Subclass ofAgent
Organization
: An organization. Subclass ofAgent
Person
: A contextualized aspect of a person. Subclass ofAgent
Misc utility entity classes:
TimeSpan
: A span of time.
Attributes
Complex-valued attributes:
h:correlation
[1]: A directed relation between two entities in different contexts that are asserted to be representing the same thing (person, group, object or concept). Attribute of an entity. Value is an entity.relation
: A directed relation between two entities (possibly in two different contexts) that are asserted to NOT be representing the same person, group, object or concept. No level of reciprocity is assumed, i.e. relation(a, b) does not imply relation(b, a). The opposite ofcorrelation
. Attribute of an entity. Value is an entity. Sub-attribute of owl:differentFromindeterminate
: A directed relation between two entities (possibly in different contexts) for which it is unknown as to whether they represent the same (person, group, object or concept) thing or a different thing. Attribute of an entity. Value is an entity.issuer
: authority for the attributes/values of this Context. Attribute of a Context. Value isxsd:anyURI
.member
: A relationship between a Group or Organization and its member Agent (the range). Sub-attribute ofpart
. Attribute of anGroup<code> or <code>Organization
. Value is anAgent
.memberOf
: The Group or Organization of which this Agent is a member. Sub-attribute ofpartOf
. Attribute of anAgent
. Value is aGroup
or anOrganization
.part
: A relationship between an aggregated whole (the domain) and a part of that whole (the range). Attribute of an entity. Value is an entity.partOf
: A relationship between a part (the domain) and an aggregated whole (the range). Attribute of an entity. Value is an entity.timespan
: duration of time. Attribute of an entity. Value is an instance ofTimeSpan
.
Simple-valued attributes:
synonym
: Used as an abstract super-attribute to "tag" sub-attributes as being considered alternative identifiers for this entity. Attribute of an entity. Value is any simple value.start
: beginning of a time duration. Attribute of aTimeSpan
. Value is anxsd:dateTime
.end
: end of a time duration. Attribute of aTimeSpan
. Value is anxsd:dateTime
Entity and Attribute Classes
There are two kinds of entities: instance entities (e.g. an instance of Clyde the elephant) and class entities (e.g. the concept of elephant). Similarly there are two kinds of attributes: instance attributes (e.g. the length of Clyde's trunk) and class attributes (e.g. the concept of trunk-length). This section describes class entities and class attributes.
Entity Class
Each entity (instance) is linked via an rdf:type
attribute to one or more class entities. The following attributes are used to describe that class entity:
- 1..1
rdf:type
: value must berdf:Class
- 0..N
rdfs:subClassOf
: value must berdf:Class
- 0..1
rdfs:comment
: value is an internal (developer) string comment - 1..1
skos:prefLabel
: internationalized display label skos:prefLabel - 0..1
skos:prefSymbol
: internationalized display symbol (e.g. icon) skos:prefSymbol - 0..N
owl:disjointWith
Attribute Restrictions
The following additional attributes are used to define characteristics of a specific attribute of an entity class:
- 0..1 owl:maxCardinality: value is a literal non-negative integer
- 0..1 owl:minCardinality: value is a literal non-negative integer
- 0..1 owl:cardinality: value is a literal non-negative integer
- 0..1 owl:hasValue: value is some value
- 0..1 owl:someValuesFrom: value is entity class
- 0..1 owl:allValuesFrom: value is an entity class
- 0..1 spl:defaultValue: value is some value
Attribute Class
Attribute definitions are entities with the following attributes:
- 1..1
rdf:type
: URI value must either beowl:DatatypeProperty
orowl:ObjectProperty
- 0..1
rdfs:domain
: URI value must be an Entity Class entity - 0..1
rdfs:range
: URI value must be an Entity Class entity, a DataRange, or one of the allowed XML Schema datatypes (e.g. xsd:string, etc.) - 0..1
skos:description
: string value that describes the attribute. Used for tooltip text in UIs - 1..1
skos:prefLabel
: internationalized display label skos:prefLabel - 0..1
skos:prefSymbol
: internationalized display symbol (e.g. icon) skos:prefSymbol - 0..1
skos:example
- an example value - 0..1
h:category
: value must be an instance ofskos:Concept. Indicates the skos:Concept category to which this attribute belongs.
- 0..N
rdfs:subPropertyOf:
the value must be another Attribute Class entity (e.g. owl:differentFrom) - 0..1
rdfs:label:
internal (ontology developer) display label - 0..N
rdfs:comment:
internal (ontology developer) comment
Example:
Here is an example (in the p: namespace) of an alternative phone number complex-valued attribute:
p:otherPhone rdfs:comment "An alternative telephone number"@en ; 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 .
The following OWL:objectProperties may be referenced (e.g. as the value of rdfs:subPropertyOf):
- owl:differentFrom
Attribute Concepts
As described above an attribute may have a h:category
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.
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 ofPolicy
.
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 ofsubject
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 ofsubject
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 ofaccessControl
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 ofaccessControl
selfSubject
. If true, this policy's subject is implicitly defined as the current Idas consumer. Subattribute ofaccessControl
Subattributes of operation
:
add
: If not further restricted byonAttribute
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 byonAttribute
may be added or new values added.delete
: If not further restricted byonAttribute
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 byonAttribute
properties may be deleted.modify
: If not further restricted byonAttribute
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 byonAttribute
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 byonAttribute
properties may be read.
How to use higgins.owl
Developers of Context Provider developers can create ontologies that are based on higgins.owl to describe specific concrete domains of relevance to their context provider. For example, if a developer wanted to describe a CRM database, they would create their own OWL ontology that imports higgins.owl and that describes the kinds of data objects and 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, and so on.
References
- ↑
h:correlation
is subtly different fromowl:sameAs
. It is statement made by a human observer that the source and target of this link are believed to be alternative representations of the same real world person or object. A single, natural person would thus be represented by different entities in different contexts. This linkage does not presume that the entire set of attributes across these entities, if they were brought together and combined, is necessarily logically consistent. The ontologies in the two contexts may be such that each of the two representations cannot be merged and remain logically consistent. For this reason Higgins does not useowl:sameAs
which does imply this ability to directly merge representations.h:correlation
is stronger thanrdfs:seeAlso
but weaker thanowl:sameAs
. We believe thath:correlation
is the same as oguid:identical. See also When owl:sameAs isn't the Same. Lastly, the entity source (domain) of theh:correlation
relation is often within a more privacy-privileged context than the target (range) of the link. Thus the directed nature of the link is important.