Skip to main content
Jump to: navigation, search

Difference between revisions of "Persona Data Model 2.0"

(Context Naming)
(Reserved Usernames)
Line 102: Line 102:
  
 
There are some usernames that are reserved for system use:
 
There are some usernames that are reserved for system use:
* system
+
* system
* sys
+
* sys
* user
+
* user
* root
+
* root
* data
+
* data
* blog
+
* blog
  
 
See also:
 
See also:

Revision as of 16:40, 31 March 2011

{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}
Higgins logo 76Wx100H.jpg

The Persona Data Model 2.0 is used by Attribute Data Service 2.0.

Person graph

A natural, human person is represented as a graph of p:Person entities (nodes, or vertices) interconnected by links (edges). Each node represents a different facet of the user (person). Each of these facets is held in a separate (graph) container called a Context.

Each Person node is a set of attributes and values. These attributes may be simple literals (e.g. the user's first name) or they may be other entities (which we call complex attributes). These latter attributes are shown in diagrams a as links to other nodes.

Typically each node in the person graph is located in its own context. The root node lies in a special context (for each user) called the root context.

All of the main person entities can be reached by traversing links of the following kinds, (although other links may also exist (e.g. p:source, foaf:knows, etc.)):

  • h:correlation
  • h:relation
  • h:indeterminate

In order to simplify the diagram below we follow a convention whereby the links are drawn between contexts whereas in reality the links are between the main p:Person entities within each of these contexts. Further, these main person entities may well themselves have complex attributes (i.e. links to other entities). These have also been omitted.

Unified 2.0.122b.png

Supporting Contexts

Template Context

Each regular context may have up to one associated template context (pointed to by p:template attribute). This template context (see Template vocabulary) may contain one or more of the following:

  • view information that describes how to logically organize a presentation interface for the associated regular context
  • a p:Person subclass that has a set of mapping rules written in the Mapping vocabulary
  • template information about how to dynamically create the associated regular context

Control Context

Each regular context is associated with up to one "control" context (linked to by h:context) that contains meta information such as:

  • access control policy (e.g. read, write, append) for named external parties trying to access the regular context
  • when the regular context was created and modified

Twin Context

Each regular context may be associated with up to one "twin" context (linked to by p:twin) that contains information about the person that is written to by one or more "other" parties in the interaction context. Its associated control context has access control policies that allow this/these other parties to write to this context. In a sense this context contains "what they say about you", whereas the regular context is roughly "what you say about you."

Contexts 2.0.110.png

Representing Social Graphs

h:relation

HDM defines a h:relation complex attribute that is used in PDM to link one Person node to another where each Person node represents a different person. No symmetry is implied in this thus the statement (A h:relation B) is akin to saying person A "knows of" person B.

Shown below are two social graph examples. One uses foaf:knows links and and (unrelated to this) shows each node in its own context. The other uses h:relation links and (unrelated) shows all person nodes in a single context. In the Work context we see that the user knows three colleagues but doesn't know how they know one another. In the Home & Family context we see that the user knows two people and that everyone knows one another. The foaf:knows links are shown in both directions although logically this is redundant since foaf:knows is what is a called a symmetric relation.

Entities that represent the user are shown in purple. Nodes representing a person other than the user are shown in red.

Social graphs 2.0.103b.png

foaf:knows

To indicate that a person A "knows" person B where some level of reciprocated interaction between the parties is implied, we use foaf:knows.

Since foaf:knows is a broader concept than h:relation, foaf:knows is not a sub-attribute of h:relation. Thus if we had the statement "A h:relation B" then we might later add a second statement "A foaf:knows B" to add the stronger, broader (and symmetric) concept of "knowing."

h:indeterminate

HDM also defines h:indeterminate link attribute on node A to indicates that its value(s) may or may not represent the same thing as is represented by A.

Implementation Note

Consumers of the HDM may traverse h:relation, h:correlation and h:indeterminate attribute links and (despite ignoring all other links) traverse the entire graph of Person nodes.

Vocabularies

Contexts may describe their contents in any vocabulary they wish so long as it builds on the Persona vocabulary. In the person graph example above all of the contexts except one describe their contents using the Persona Data Model (vocabulary) (shown as purple "PDM"s above). The exception is the managed i-card from Equifax which uses attribute (aka claim) URIs defined by the OASIS IMI TC and by the ICF's (Information Card Foundation) schema working group.

Infocard related vocabularies:

Naming Conventions

Context Naming

Contexts (i.e. named graphs) inside an ADS are are named according to the following pattern:

  http://<servername>/<username>/<meta-type>/<context-type>
  

Currently, <metatype> must be either "data" or "ontology"

Examples:

  http://pds.azigo.com/paul/data/awp
  http://pds.azigo.com/system/data/tracker-catalog

The <context-type> segment may optionally be broken down into additional segments:

  http://pds.azigo.com/system/ontology/2010/11/online-behavior

Reserved Usernames

There are some usernames that are reserved for system use:

  • system
  • sys
  • user
  • root
  • data
  • blog

See also:

Old Persona Data Model Naming Notes

Examples

Imagine a root context containing a p:Person entity locally named "me". This root node could have h:correlation links pointing to the root "me" entities in two contexts, a web profile context, and a alice-staples context.

The web profile context might look like this:

Webprofile.png

The staples context (the profile of the user at staples.com) might look like this:

Alice-staples2.png


Viewing & Editing Contexts

This section discusses how present (e.g. in a user interface) the contents of a context that is represented using the Persona vocabulary. To construct a data-driven presentation metadata about the attributes of the context is needed. These metadata attributes may live in a number of places. Metadata attributes may:

  • Be attributes of the attribute's class definition (rdf:Property)
  • Be attributes of the an entity class (e.g. persona:Person, vcard:Address)

Further, these metadata attribute statements may be stored either one or the other (or both) places:

  • The context that holds the Persona vocabulary or one of the vocabularies that it imports
  • The template context that holds information to help build a presentation of contexts (see the View-builder vocabulary)

Note: the fact that the metadata may be stored in more than one context has an implication that the lookup APIs should search across ALL contexts for these statements.

Here are some of those metadata attributes:

UI widget label 
This is stored in an internationalized string value of the skos:prefLabel metadata attribute. An example of a UI label might be the string "Zipcode" for the person's postal-code attribute.
Cardinality 
The min..max number of values of the attribute. This is an attribute of the class of the entity (e.g. persona:Person, vcard:Address). Min=0 and Max=1 is an example of an attribute that has one optional value.
Example value 
The example value is the value of the skos:example attribute. For example "name@domain.com" might be an example of an example value.
Hover text 
The string description of the attribute is the value of the skos:description attribute.
Type 
The type of an attribute is the value of the rdf:type attribute
Allowed values 
For literal-valued attributes an enumerated list of values is provided. This is represented as attributes of the attribute's rdf:range attribute. For example for eye-color the allowed attribute values might be "blue", "green" and "brown".
Syntax restrictions 
@@@@TBD

Links

Rough notes; a bit long in the tooth:

Back to the top