From:
higgins-dev-bounces@xxxxxxxxxxx [mailto:higgins-dev-bounces@xxxxxxxxxxx] On Behalf Of Jim Sermersheim
Sent: Friday, September 12, 2008
1:03 AM
To:
higgins-dev-bounces@xxxxxxxxxxx
Cc: 'Higgins (Trust Framework)
Project developer discussions'
Subject: Re: EntityId decision
analysis page (was RE: [higgins-dev]entityIDnot an attribute?)
Right,
we talked about this on the dev call today. EntityID should not be called
"unique identifier" because that might imply "globally
unique". What ppl have actually meant in the convo by "unique
identifier" is "an identifier -- unique within the context -- that
names the entity within that context".
Our
original term (CUID) was much better [Contextually Unique Identifier]
>>> Anthony Nadalin <drsecure@xxxxxxxxxx> 09/11/08 8:32 PM
>>>
wiki is the pits
so a EntityID can't always be the unique identifier at best an EntityID is a
reference within a context only, Lets take a cell phone, it has a unique
identity of +015128380085 but that may not tell be how I reference this entity
within a context.
Anthony Nadalin | Work 512.838.0085 | Cell 512.289.4122
"Drummond
Reed" ---09/11/2008 08:24:04 PM---I took the action item on the Higgins
call today to parse the key questions being raised about EntityId on this
thread into a d

From:
|

"Drummond
Reed" <drummond.reed@xxxxxxxxxxxx>
|

To:
|

"'Higgins
(Trust Framework) Project developer discussions'"
<higgins-dev@xxxxxxxxxxx>
|

Date:
|

09/11/2008 08:24 PM
|

Subject:
|

EntityId decision
analysis page (was RE: [higgins-dev] entityID not an attribute?)
|
I took the action item on the Higgins call today to parse the key
questions being raised about EntityId on this thread into a decision analysis
page on the Higgins wiki. I have posted this page at:
http://wiki.eclipse.org/EntityId_Requirements
…and
placed a link to it on http://wiki.eclipse.org/Context_Data_Model_1.1_Open_Issues#Open_Issues.
The
ideal way to proceed is for folks to post opinions to the page and then ping
the list with a pointer. However, for those who prefer responding in email,
following is the wikitext version of the page to which you can respond
directly.
=Drummond
== About
==
This
page is for discussing/documenting the terminology, requirements, and design
decisions for [[EntityId]]s.
==
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 [[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:
## It
MUST be locally unique within the [[Context]], and it MAY be globally unique
across all [[Context]]s).
==
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]]?
#
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)?
From: higgins-dev-bounces@xxxxxxxxxxx [mailto:higgins-dev-bounces@xxxxxxxxxxx]
On Behalf Of Anthony Nadalin
Sent: Thursday, September 11, 2008 7:36 AM
To: Higgins (Trust Framework) Project developer discussions
Cc: higgins-dev; higgins-dev-bounces@xxxxxxxxxxx
Subject: Re: [higgins-dev] entityID not an attribute?
So there
are a couple of things here, we have always talked about the EntityID as being
a reference to the Entity and not the unique identifier. There are many ways to
reference an Entity, so I don't believe that this is limited to 0..1. I also
believe that the EntityID encapsulates a given set of attributes.The unique
identifier is only has to be unique within a context. So I believe that the
unique identifier is an attribute, not a way to reference the Entity.
Anthony
Nadalin | Work 512.838.0085 | Cell 512.289.4122
Paul
Trevithick ---09/10/2008 05:51:39 PM---Raj has suggested the need to clarify
the language here. So here is a restatement. Additions in red. Substitutions in
blue. All

From:
|

Paul Trevithick <paul@xxxxxxxxxxxxxxxxx>
|

To:
|

higgins-dev <higgins-dev@xxxxxxxxxxx>
|

Date:
|

09/10/2008 05:51 PM
|

Subject:
|

Re: [higgins-dev] entityID not an attribute?
|
Raj has suggested the need to clarify the language
here. So here is a restatement. Additions in red. Substitutions in blue. All defined terms in initial caps.
Background: We remain committed to these two
principles:
· An
Entity has 0..1 unique identifier
(called an EntityId) (...and
we expect almost all Entities will have an EntityId).
· [Raj:
you asked about why this EntityId is optional. The answers are (1) that
our “complex” Attributes have values that are themselves
Entities and we didn’t want to require developers to
explicitly “name” these values (especially in situations
where there was no need for N>1 Entities to share (link to the same)
value/Entity and (2) we need this in order that our model remain a pure
super-set of RDF/OWL (and thus allows IdAS to
losslessly “adapt” the Semantic Web (including all Linked
Data).]
· An
Entity has 0..N Attributes some of which may be used singly or in combination to identify an Entity or a set
of Entities within a Context.
· [Raj:
To date we have decided not to define an
explicit “Identifier” Attribute type. The reason for not
defining it is twofold: First, the
distinction between an Identifier and an Attribute has so far proved impossible
to agree on. Second, Context
Provider developers are free to create their own Attribute Definitions and thus
a developer could define their
own “Identifier” sub-Attribute]
The proposal remains:
· To
no longer consider the one, optional EntityId as an Attribute.
· To
have an IdAS getEntityId() method to return this EntityId (or return null if it
doesn’t exist) whereas other getAttribute methods return
Attributes/values
· NOTE:
CP developers remain free to present the EntityId value as the value of some
Attribute type that they define and use within their Context
With the above clarified and annotated definitions,
I’m interested to hear Tony’s, Raj’s and anyone else’s
reactions.
-Paul
On 9/9/08 1:20 PM, "Nataraj Nagaratnam"
<natarajn@xxxxxxxxxx>
wrote:
Yea, there seems to be
disconnect here with usage of the term 'identifier' (or Id).
The statement "An
Entity has 0..N Attributes some of which may be used as identifiers" tells
me that there is more than one identifier, and then the statement "An
Entity has 0..1 EntityId" says that there is one identifier (as i think
"EntityId" means "Entity Identifier"). This seems to be
contradicting statements in some sense, and maybe the cause of disconnect here.
So how about this..
· An Entity has 0..N
Attributes
· An
Entity has 1 UniqueIdentifier within a given context.
Then it makes the calculation of uniqueIdentifier
to be relevant to the Entity within a given context; this way, we leave
attributes as they are - if we end up using those attributes to
identify/search/lookup an entity, then fine but uniqueness is not guaranteed.
Wrt those attributes that are used to search/lookup,.. maybe we don't need to designate
those attributes to be identifiers in a formal manner in the data model?
So proposal can be
To have an IdAS getUniqueEntityId() method to
return a unique identifier within the context of that entity, whereas other
getAttribute methods return Attributes/values
another comment - do we really want entities
without unique identifiers at all?
Regards,
Raj
Anthony Nadalin---09/09/2008 12:40:37 PM---OK, So not sure I
agree

From:
Anthony Nadalin/Austin/IBM@IBMUS

To:
"Higgins \(Trust Framework\) Project developer
discussions" <higgins-dev@xxxxxxxxxxx>

Cc:
higgins-dev <higgins-dev@xxxxxxxxxxx>,
higgins-dev-bounces@xxxxxxxxxxx

Date:
09/09/2008 12:40 PM

Subject:
Re: [higgins-dev] entityID not an attribute?
OK, So not sure I agree
I believe that there are 0..N EntityIDs and the
EnitityID job is to encapsulate the referenced attributes, thus there may be
multiple EntityIDs.
Anthony Nadalin | Work
512.838.0085 | Cell 512.289.4122
Paul Trevithick ---09/09/2008 10:56:26 AM---Just to make sure
we’re all discussing the right proposal. Let me back up a bit here and
restate it:

From:
Paul Trevithick <paul@xxxxxxxxxxxxxxxxx>

To:
higgins-dev <higgins-dev@xxxxxxxxxxx>

Date:
09/09/2008 10:56 AM

Subject:
Re: [higgins-dev] entityID not an attribute?
Just to make sure we’re all discussing the
right proposal. Let me back up a bit here and restate it:
Background: We remain committed to these two
principles:
· An Entity has 0..1 EntityId
(...and we expect almost all Entities will have an EntityId)
· An
Entity has 0..N Attributes some of which may be used as identifiers (that is, these
attributes may singly or in combination uniquely identify an Entity within its
Context)
The proposal is:
· To no longer consider the
one, optional EntityId as an Attribute.
· To
have an IdAS getEntityId() method to return this EntityId (or return null if it
doesn’t exist) whereas other getAttribute methods return
Attributes/values
· NOTE:
CP developers remain free to present the EntityId value as the value of some
Attribute type that they define and use within their Context
-Paul
_______________________________________________
higgins-dev mailing list
higgins-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/higgins-dev