Difference between revisions of "EntityId Requirements"
(second draft) |
|||
Line 3: | Line 3: | ||
== About == | == About == | ||
− | This page is for | + | This page is for discussing/documenting the terminology, requirements, and design decisions for [[EntityId]]s. |
== Content Data Model Requirements == | == Content Data Model Requirements == | ||
− | + | In terms of the underlying graph model, following is a summary of the abstract requirements derived in a recent (2008-09-11) thread on the email list. The first step is determining if there is consensus about these requirements. '''Please post a note with your wiki signature if you disagree with any of the following:''' | |
− | # An [[Entity]] is a node in the graph | + | # An [[Entity]] is a node in the graph described by the Higgins [[Context Data Model]]. The CDM needs a consistent way of representing arcs referencing that node. |
− | + | # There MAY be 0..n such arcs referencing the node. (0 is possible for blank nodes.) | |
− | # An arc MAY represented as either: | + | # An arc MAY theoretically be represented as either: |
## A unique identifier. | ## A unique identifier. | ||
## A set of [[Attribute]]s of that [[Entity]], none of which itself is required to be a unique identifier. | ## A set of [[Attribute]]s of that [[Entity]], none of which itself is required to be a unique identifier. | ||
# If the arc is represented as a unique identifier: | # If the arc is represented as a unique identifier: | ||
− | ## It | + | ## It MUST be locally unique within the [[Context]], and it MAY be globally unique across all [[Context]]s). |
== Higgins API Requirements == | == Higgins API Requirements == | ||
− | + | The second step, based on the above requirements, is answering the following questions with respect to the Higgins API. '''Please post your votes/answers (with your wiki signature).''' | |
− | # | + | === #1: Unique Identifier vs. Attribute Set === |
− | # | + | Should the Higgins API constrain an [[EntityId]] to be a unique identifier, or can it be a set of [[Attribute]]s? |
− | + | ||
− | + | === #2: Representation of an EntityId as a Unique Identifier === | |
− | + | If an [[EntityId]] is a unique identifier, should this be represented as: | |
− | + | # A type of [[Attribute]]? | |
− | + | # A separate property of an [[Entity]] that MAY be exposed as an [[Attribute]]? | |
− | # What is the cardinality of [[EntityId]] ( | + | # Inherent in the definition of an [[Entity]]? |
− | + | ||
− | + | === #3: Cardinality === | |
− | + | What is the cardinality of [[EntityId]]? (The answer may depend on the answer to #2.) | |
+ | # 0..n? | ||
+ | # 0..1? | ||
+ | # 1 (whose value may be null)? |
Revision as of 21:10, 11 September 2008
{{#eclipseproject:technology.higgins}}
Contents
About
This page is for discussing/documenting the terminology, requirements, and design decisions for EntityIds.
Content Data Model Requirements
In terms of the underlying graph model, following is a summary of the abstract requirements derived in a recent (2008-09-11) thread on the email list. The first step is determining if there is consensus about these requirements. Please post a note with your wiki signature if you disagree with any of the following:
- An Entity is a node in the graph described by the Higgins Context Data Model. The CDM needs a consistent way of representing arcs referencing that node.
- There MAY be 0..n such arcs referencing the node. (0 is possible for blank nodes.)
- An arc MAY theoretically be represented as either:
- A unique identifier.
- A set of Attributes of that Entity, none of which itself is required to be a unique identifier.
- If the arc is represented as a unique identifier:
Higgins API Requirements
The second step, based on the above requirements, is answering the following questions with respect to the Higgins API. Please post your votes/answers (with your wiki signature).
#1: Unique Identifier vs. Attribute Set
Should the Higgins API constrain an EntityId to be a unique identifier, or can it be a set of Attributes?
#2: Representation of an EntityId as a Unique Identifier
If an EntityId is a unique identifier, should this be represented as:
- A type of Attribute?
- A separate property of an Entity that MAY be exposed as an Attribute?
- Inherent in the definition of an Entity?
#3: Cardinality
What is the cardinality of EntityId? (The answer may depend on the answer to #2.)
- 0..n?
- 0..1?
- 1 (whose value may be null)?