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

(Definition)
 
(73 intermediate revisions by 4 users not shown)
Line 1: Line 1:
==Introduction==
+
{{#eclipseproject:technology.higgins|eclipse_custom_style.css}} [[Image:Higgins_logo_76Wx100H.jpg|right]]
This page describes the Higgins concept of [[Attribute]].
+
== Version ==
 +
This page describes the concept of [[Attribute]] used in [[Context Data Model 1.0]] and [[Context Data Model 2.0]]
  
 
== Definition ==
 
== Definition ==
* Defines a property of an [[Entity]] or a [[Context]].  
+
* Is a property of an [[Entity]] (or [[Context]]).  
* Has a URI-valued type which:
+
* Has one or more values all of which MUST be unique
** identifies the [[Attribute]] instances with a given [[Entity]] or [[Context]]
+
* Has either simple or complex value(s)
** identifies the [[Attribute]]'s ''Attribute Model''
+
* Simple values:
* Has one or more values
+
** Are literal values (e.g. "green") based on a "base" XML Schema type URI (e.g. string)
* The types of the values of an [[Attribute]] may be:
+
** The allowed value(s) are defined by a [[Data Range]] (URI)
** XML-Schema-based literal datatypes (a specific sub-set of the XML Schema literal types)  
+
* Complex values are [[Entity | Entities]]
** Sub-types of the XML-Schema-based literal datatypes
+
* Are identified by an AttributeId.
** Complex (structured) datatypes
+
** In CDM 2.0 this attribute id is a UDI.
* The set of values of a single [[Attribute]] may be any combination of the value types
+
** In CDM 1.X it is described it is a string or a UDI.
  
=== Attribute Model ===
+
== Relationship to RDF/OWL ==
* Defines the type(s) of its value(s) (e.g. "string" or "calendar-event")
+
* The values of an attribute are the union of all objects O found in all RDF {subject, predicate, object} triples {S, P, O} such that S is the id of the Entity (or Context) in question and P is the [[AttributeId]]
* May define the minimum cardinality of this Attribute--the minimum number of values that are allowed (e.g. >=3 values)
+
* May define the maximum cardinality of this Attribute--the minimum number of values that are allowed (e.g. <=100 values)
+
  
=== Attribute Value Model (AVM) (e.g. directory string)===
+
== Kinds of Attributes Defined in CDM ==
* May specialize:
+
* [[Entity Correlation]]  
** a base XML Schema type (e.g. String) for literal AVMs
+
* [[Context Correlation]]
** OR a complex AVM
+
* ...others
** OR another AVM
+
* Defines a set of constraints on its value(s) including:
+
** Value must be one of {"red", "green", "blue"}
+
** Syntax constraints (e.g. regular expression)
+
** ranges (e.g. less than 5, more than 100)
+
** matching rules
+
** THIS SECTION NEEDS WORK
+
 
+
== Details ==
+
* Even if all values are literals, they may differ in specific literal datatype (e.g. strings and integers may be intermixed)
+
* A special kind of [[Attribute]] is called a [[Relation]]  
+
* Some [[Attribute]]s are defined by the containing [[Context]]'s schema to allow multiple '''unique''' values. For example the attribute preferredBreakfast might have the values {spam, eggs}, but it could not have the values {spam, spam, spam, eggs, spam}.
+
  
 
==Examples==
 
==Examples==
  
The physical person Bob Smith might be represented as an [[Entity]] in the [[Context]] of his employer, the Port Control Authority. This [[Entity]] might have the following types of [[Attribute]]s (and associated values) in this context:
+
The person Bob Smith might be represented as an [[Entity]] in the [[Context]] of his employer, the Port Control Authority. This [[Entity]] might have the following types of [[Attribute]]s (and associated values) in this [[Context]]:
* email-address = bob@portcontrol.gov
+
* email-address = bob@portcontrol.gov <-- in this case the string "email-address" is the [[AttributeId]]
* phone number = {617-555-1234, 617-333-4321}
+
* phone number = {617-555-1234, 617-333-4321} <-- multi-valued attribute example
 
* passport information = ...etc.
 
* passport information = ...etc.
 
* fingerprint data = ...etc.
 
* fingerprint data = ...etc.
 
* surname = "Smith"
 
* surname = "Smith"
  
The surname Attribute in the example above might have a type of http://openschemas.org/2006/person/surname. The schema associated with the containing [[Context]] provides metadata about this URI.
+
The surname [[Attribute]] in the example above might have a type of http://openschemas.org/2006/person/surname. The schema associated with the containing [[Context]] provides metadata about this URI.
  
This same physical person Bob Smith might also be represented as a [[Entity]] in a "customer-to-Clothes-R-Us" [[Context]] (this customer's relationship with the Clothes-R-Us merchant. In this [[Context]] Bob has these [[Attribute]]s:
+
This same Bob Smith might also be represented as an [[Entity]] in a "customer-to-Clothes-R-Us" [[Context]] (this customer's relationship with the Clothes-R-Us merchant. In this [[Context]] Bob has these [[Attribute]]s:
 
* platinumCustomer = True
 
* platinumCustomer = True
 
* preferredColor = "blue"
 
* preferredColor = "blue"
  
== HOWL ==
+
==Note==
<pre>
+
# An [[Attribute]] cannot have N>1 values if the values are the same. For example a very odd father might name each of his three kids "frank". Thus the father [[Entity]] cannot have an attribute "names-of-children" whose values are "frank, frank, frank".
</pre>
+
  
==Open Issues==
 
* At present an attribute cannot have N>1 values where the values are the same. For example a very odd father might name each of his three kids "frank". Thus the father [[Entity]] cannot have an attribute "names-of-children" whose values are "frank, frank, frank".
 
* We need to be able to describe the reality that "real world" context providers must restrict attributes to be "closed"
 
  
==See Also==
 
* [[Concepts]]
 
* [[Higgins Global Graph]]
 
  
==Links==
+
[[Category:Context Data Model 1.1]]
* [http://eclipse.org/higgins Higgins Home]
+

Latest revision as of 19:12, 26 March 2011

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

Version

This page describes the concept of Attribute used in Context Data Model 1.0 and Context Data Model 2.0

Definition

  • Is a property of an Entity (or Context).
  • Has one or more values all of which MUST be unique
  • Has either simple or complex value(s)
  • Simple values:
    • Are literal values (e.g. "green") based on a "base" XML Schema type URI (e.g. string)
    • The allowed value(s) are defined by a Data Range (URI)
  • Complex values are Entities
  • Are identified by an AttributeId.
    • In CDM 2.0 this attribute id is a UDI.
    • In CDM 1.X it is described it is a string or a UDI.

Relationship to RDF/OWL

  • The values of an attribute are the union of all objects O found in all RDF {subject, predicate, object} triples {S, P, O} such that S is the id of the Entity (or Context) in question and P is the AttributeId

Kinds of Attributes Defined in CDM

Examples

The person Bob Smith might be represented as an Entity in the Context of his employer, the Port Control Authority. This Entity might have the following types of Attributes (and associated values) in this Context:

  • email-address = bob@portcontrol.gov <-- in this case the string "email-address" is the AttributeId
  • phone number = {617-555-1234, 617-333-4321} <-- multi-valued attribute example
  • passport information = ...etc.
  • fingerprint data = ...etc.
  • surname = "Smith"

The surname Attribute in the example above might have a type of http://openschemas.org/2006/person/surname. The schema associated with the containing Context provides metadata about this URI.

This same Bob Smith might also be represented as an Entity in a "customer-to-Clothes-R-Us" Context (this customer's relationship with the Clothes-R-Us merchant. In this Context Bob has these Attributes:

  • platinumCustomer = True
  • preferredColor = "blue"

Note

  1. An Attribute cannot have N>1 values if the values are the same. For example a very odd father might name each of his three kids "frank". Thus the father Entity cannot have an attribute "names-of-children" whose values are "frank, frank, frank".

Back to the top