Skip to main content
Jump to: navigation, search

Difference between revisions of "EntityId Requirements"

(second draft)
Line 3: Line 3:
  
 
== About ==
 
== About ==
This page is for discussion/clarification of the terminology, requirements, and design decisions around [[EntityId]]s.
+
This page is for discussing/documenting the terminology, requirements, and design decisions for [[EntityId]]s.
  
 
== Content Data Model Requirements ==
 
== Content Data Model Requirements ==
First, in terms of the underlying graph model, here’s a set of proposed requirements on which we need consensus.
+
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, and the CDM needs a consistent way of representing arcs referencing that node.
+
# 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.
+
# 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 MAY be either absolute (globally unique across all [[Contexts]]) or relative (locally unique within the [[Context]])
+
## It MUST be locally unique within the [[Context]], and it MAY be globally unique across all [[Context]]s).
  
 
== Higgins API Requirements ==
 
== Higgins API Requirements ==
Second, based on those requirements, here is the set of questions that need to be answered regarding the Higgins API.
+
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).'''
  
# In an [[EntityId]] restricted to being a unique identifier (vs. a set of [[Attribute]]s)?
+
=== #1: Unique Identifier vs. Attribute Set ===
# If so, is [[EntityId]] defined to be a string?
+
Should the Higgins API constrain an [[EntityId]] to be a unique identifier, or can it be a set of [[Attribute]]s?
# If so, can an [[EntityId]] value be either globally unique, or locally unique to the [[Context]]?
+
 
# Is an [[EntityId]]:
+
=== #2: Representation of an EntityId as a Unique Identifier ===
## A type of [[Attribute]]
+
If an [[EntityId]] is a unique identifier, should this be represented as:
## A separate property of an [[Entity]] that MAY be exposed as an [[Attribute]]
+
# A type of [[Attribute]]?
## Inherent in the definition of an [[Entity]]?
+
# A separate property of an [[Entity]] that MAY be exposed as an [[Attribute]]?
# What is the cardinality of [[EntityId]] (note that the answer to this question may depend on the answer to the previous question):
+
# Inherent in the definition of an [[Entity]]?
## 0..n
+
 
## 0..1
+
=== #3: Cardinality ===
## 1
+
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}}

Higgins logo 76Wx100H.jpg

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:

  1. 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.
  2. There MAY be 0..n such arcs referencing the node. (0 is possible for blank nodes.)
  3. An arc MAY theoretically be represented as either:
    1. A unique identifier.
    2. A set of Attributes of that Entity, none of which itself is required to be a unique identifier.
  4. If the arc is represented as a unique identifier:
    1. It MUST be locally unique within the Context, and it MAY be globally unique across all Contexts).

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:

  1. A type of Attribute?
  2. A separate property of an Entity that MAY be exposed as an Attribute?
  3. Inherent in the definition of an Entity?

#3: Cardinality

What is the cardinality of EntityId? (The answer may depend on the answer to #2.)

  1. 0..n?
  2. 0..1?
  3. 1 (whose value may be null)?

Copyright © Eclipse Foundation, Inc. All Rights Reserved.