Skip to main content
Jump to: navigation, search

EntityId Requirements

Revision as of 20:10, 11 September 2008 by Drummond.reed.cordance.net (Talk | contribs) (second draft)

{{#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)?

Back to the top