Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

GetRPAttributes Design Considerations

{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}

Design considerations

  • Role tags are completely arbitrary. They are added, deleted etc. by the user. They may not even make sense.
  • Role tags define personas (i.e. persona R1 is the set of all person nodes that have role = R1)
  • There may be more than one role tag on a Person
  • Different Persons have different sets of "used" and "instantiated" attributes
  • Sometimes the "used" list is not available (either the person's context has a null h:control, or there is not "used" list in the h:control template context)
  • We must return a consistent set of attribute values
  • We may sacrifice coverage

Insights

  • It is the caller's explicit (e.g. role parameters to the attribute URI) or implicit (i.e. fixed role parameters of the attribute's associated mapping rule) role values AND time durations AND issuer parameters that (taken together) serve to segment the set of requested attributes into N role-sets each of which may be supplied by a different p:Person

Consistency

  • all attributes in the requested set that are reached from some path down from P share all common ancestral branch nodes instances (excepting the person node itself)

Examples...

The following are inconsistent (because a != b):

  • attribute path #1: (p1 v:adr a) / (a v:street-address "123 Main")
  • attribute path #2: (p1 v:adr b) / (b v:postal-code = "01010")

The folowing are consistent (because a == a):

  • attribute path #1: (p1 v:adr a) / (a v:street-address "123 Main")
  • attribute path #2: (p1 v:adr a) / (a v:postal-code = "02345")

Multi-valued attributes

Here are a few thoughts about multi-valued attributes on Person nodes.

  • We use mapping functions to follow a path down from a Peron node to a literal value in order to get or set its value
  • These mapping functions are parameterized by things like role, class of intermediate object, final attribute URI/name, etc.
  • There are cases where multiple complex attribute values are allowed below a Person. E.g. osoc:jobs--a person may have had multiple jobs at the same instant in time.
  • The mapping function when faced with multiple, ambiguous values, should return all the values or give up (but not do anything else)

Links

Copyright © Eclipse Foundation, Inc. All Rights Reserved.