Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[higgins-dev] Splitting Entity UDI into absolute and relative variants

With much help from Markus, Jim, and Drummond, hereĀ¹s a summary of a bunch
of recent conversations on the list, offlist and on #higgins:

- UDIs should be based on strings not URIs

- We have defined some useful UDI forms
  (URIs, XRI, Linked Data, etc.) here http://parity.com/udi

- But developers are free to develop their own UDI identifier forms.
  Since UDIs are fundamentally strings these developer-defined forms
  are syntactically unrestricted. E.g. the string "+1 (617) 555-1212"
  could be an Entity UDI.

- For each kind of UDI there exists a UDI resolution algorithm

- In the special case where the developer wishes to add a new
  developer-defined UDI form AND they wish to have these UDIs resolve
  to Entities such that they blend in with other Entities resolved by
  other UDI forms into a seamless global graph, then the resolution
  of a UDI string must be performed by attempting the multiple
  resolution algorithms in a strict order. This order will be
  defined in the UDI spec document. Developer-defined algorithms
  are applied after the algorithms/forms listed in the document.

Remaining Problem
-----------------
- If all UDIs are strings there is no way to tell an absolute
  from a relative Entity UDI:

  AbsoluteEntityUDI = identifies a Context and the Entity within it

  RelativeEntityUDI = identifies an Entity within a given, open Context

- This is a problem because some IdAS methods require relative UDIs
  (e.g. Icontext.getEntity()) whereas others require absolute UDIs.

Proposed solution
-----------------
- We will define two kinds of Entity UDI: RelativeEntityUDI and
  AbsoluteEntityUDI. Both are string-typed.

- In HOWL [1] today the higgins:entityId attribute can have values that are
  either of type string or of type EntityUDI. This will be changed
  to having a value of RelativeEntityUDI, a sub-type of xsd:string.

- In HOWL we will add a definition for AbsoluteEntityUDI, as well
  as (by extension) AbsoluteAttributeUDI and RelativeAttributeUDI

-Paul

[1] http://wiki.eclipse.org/HOWL_1.1




Back to the top