Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Persona Attribute List"
(→Names) |
(→Account) |
||
Line 72: | Line 72: | ||
Experimental, alternative format from the tables below... | Experimental, alternative format from the tables below... | ||
− | * | + | * http://eclipse.org/higgins/fp/accountUsername = rolePathLiteral (RPRole, foaf:account, foaf:accountName) |
− | * | + | * http://eclipse.org/higgins/fp/accountPassword = rolePathLiteral (RPRole, foaf:account, p:password) |
− | * | + | * http://eclipse.org/higgins/fp/accountConfirmPassword = rolePathLiteral (RPRole, foaf:account, p:password) |
− | * | + | * http://eclipse.org/higgins/fp/accountEmail = roleObject (RPRole, foaf:mbox) |
− | * | + | * http://eclipse.org/higgins/fp/accountEmail = roleObject (RPRole, foaf:mbox) |
==== Account ==== | ==== Account ==== |
Revision as of 09:21, 29 October 2010
{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}This page lists the attributes that can be described by the PDM. This page will aid developers creating schema mapping tranformations into and out from the PDM.
Contents
TODO
- The tables are incomplete at present.
Introduction
Since getting the world's developers to commit to a single, rich ontology will never happen, the next best thing is to define a rich, fine-grained internal ontology (as we have done in Persona Data Model 2.0 (PDM)) and then define mapping rules between it an vocabularies that exist in the wild.
We define mapping functions that get values of attributes in PDM object graphs. The inverse of these functions can set these values (although not all functions have inverse functions). One of the sub-parts of PDM is an ontology to describe these mapping functions. It is called mapping.owl and is described briefly on the main PDM page.
Mapping in or out of another vocabulary can be thought of as involving two steps. First a human needs to look at an attribute in some target vocabulary T classify it as some concept C. The rows in the tables on this page describe the mapping from C to entities and attribute instances in a concrete instance of the PDM model.
The application of mapping rules is considered to occur within what we call an "external context." Since a single person is represented in PDM as multiple p:person nodes (facets) when trying to map "given-name" we need to understand the broad, overall containing context of the interaction. Depending on the context a person might answer differently. For example if the context was a virtual world like Second Life, the person's given name is almost always not their "real world" given name. Persona nodes in PDM carry a number of "role" tags that indicate appropriateness/use in one of these overall contexts. (We're using the word context generically here, we are not referring to Higgins Contexts).
The external context is represented as "RP" in the tables below. The actual values of RP would be one of the instances of "External" Role pre-defined in PDM (specifically persona.owl). These include Ecommerce, Gaming, SocialNetworking, etc.
An Example: Given Name
If in vocabulary T we saw a term that we'd classify as a person's given name, then we'd first search for a row by that name in one of the tables on this page. We'd then lookup the function and arguments on that row. The function traverses a path (or in rare cases a set of paths) through a PDM graph. In the case of given name we'd find the following matching row:
Attribute | Function | Arg1 | Arg2 | Arg3 | Arg4 | Comment |
---|---|---|---|---|---|---|
Given Name | rolePathLiteral | RPRole |
v:n |
v:given-name |
|
|
The function to be applied called rolePathLiteral
. Its name is a hint as to how it operates. This function takes three arguments (RPRole, v:n, v:given-name). The rolePathLiteral
starts at the root of the Persona graph (the RootMe
node) and breadth-first following p:subCorrelation
links searches for the first p:person node that is tagged with a role that matches the role of the external context.
Let's assume that the value of RPRole (the external context) is "eCommerce". The rolePathLiteral
function will start at the root RootMe node and breadth-first find the first p:Person node that has a matching role value of "eCommerce". If none are found then the first p:Person found that matches the rest of the criteria we're about to explain, will be used. In this example and in all others the role argument (usually Arg1) is used to disambiguate between multiple alternatives that otherwise match the rest of the criteria. The more role tags that match, the better the quality of the match.
The rest of the criteria are that the person node must have a "path" (we're done with "role" we're now onto "path"), that is, a complex-valued attribute (aka link) of type v:n
(from the vcard vocabulary). Further, it must have a simple-valued attribute of type v:given-name
. The value of this literal attribute is the result of mapping the human concept of "given name."
Parameterization
To reduce redundancy in the following tables, we use the following parameterization scheme:
The <Type> may be one of:
- Shipping
- Home
- Shipping, Home
- Work
- Billing
- DayTime
- nil
And to retrieve the correct type for each of the above, set the <Role> (respectively):
- Recipient
- Home
- Recipient, Home
- Work
- Buyer
- DayTime
- nil
Account
Experimental, alternative format from the tables below...
- http://eclipse.org/higgins/fp/accountUsername = rolePathLiteral (RPRole, foaf:account, foaf:accountName)
- http://eclipse.org/higgins/fp/accountPassword = rolePathLiteral (RPRole, foaf:account, p:password)
- http://eclipse.org/higgins/fp/accountConfirmPassword = rolePathLiteral (RPRole, foaf:account, p:password)
- http://eclipse.org/higgins/fp/accountEmail = roleObject (RPRole, foaf:mbox)
- http://eclipse.org/higgins/fp/accountEmail = roleObject (RPRole, foaf:mbox)
Account
Attribute | Function | Arg1 | Arg2 | Arg3 | Arg4 | Comment |
---|---|---|---|---|---|---|
Account Username | rolePathLiteral | RPRole |
foaf:account |
foaf:accountName |
|
|
Account Password |
rolePathLiteral |
" |
" |
p:password |
|
|
Account Confirm Password | rolePathLiteral |
" |
" |
" |
|
|
Account Username Email |
roleObject |
" |
foaf:mbox |
|
|
|
Account Username Email Confirm |
roleObject |
" |
" |
|
|
|
Names
The beginnings of an alternative format from the table below:
- http://eclipse.org/higgins/fp/honorificPrefix/{Type} = rolePathLiteralInitial ([RPRole,<Role>], v:n, v:honorific-prefix)
- http://eclipse.org/higgins/fp/GivenName/{Type} = rolePathLiteral ([RPRole,<Role>], v:n, v:given-name)
- http://eclipse.org/higgins/fp/additionalNames/{Type} = rolePathLiteral ([RPRole,<Role>], v:n, v:additional-name)
- http://eclipse.org/higgins/fp/additionalNamesInitial/{Type} = rolePathLiteralInitial ([RPRole,<Role>], v:n, v:additional-name)
- http://eclipse.org/higgins/fp/familyName/{Type} = rolePathLiteralInitial ([RPRole,<Role>], v:n, v:family-name)
- http://eclipse.org/higgins/fp/honorificSuffix/{Type} = rolePathLiteralInitial ([RPRole,<Role>], v:n, v:honorific-suffix)
- http://eclipse.org/higgins/fp/formattedName/{Type} = @@@TBD@@@
Names
Attribute | Function | Arg1 | Arg2 | Arg3 | Arg4 | Comment |
---|---|---|---|---|---|---|
<Type> Honorific Prefix |
rolePathLiteralInitial |
RPRole, <Role> | v:n |
v:honorific-prefix |
|
|
<Type> Given Name | rolePathLiteral | " | " |
v:given-name |
|
|
<Type> Additional Names |
rolePathLiteral |
" |
" |
v:additional-name |
|
|
<Type> Additional Names - Initial |
rolePathLiteralInitial |
" |
" |
v:additional-name |
|
|
<Type> Family Name |
rolePathLiteral |
" |
" |
v:family-name |
|
|
<Type> Honorific Suffix |
rolePathLiteralInitial |
" |
" |
v:honorific-suffix |
|
|
<Type> Formatted Name |
TBD |
|
|
|
|
|
Addresses
Note: rolePathAddress()
is a function that concatenates: apartment + (houseNumber or houseName) + house + street
Attribute | Function | Arg1 | Arg2 | Arg3 | Arg4 | Comment |
---|---|---|---|---|---|---|
<Type> Address |
rolePathAddress |
RPRole, <Role> | v:adr |
|||
<Type> Street Address |
rolePathLiteral | RPRole, <Role> | v:adr |
v:street-address | ||
<Type> Extended Address |
" | " | " | v:extended-address | |
|
<Type> Locality | " |
" |
" |
v:locality |
|
|
<Type> Region |
" |
" |
" |
v:region |
|
|
<Type> Postal Code |
" |
" |
" |
v:postal-code |
|
|
<Type> 4 Digit Extension Zip |
TBD |
" |
" |
v:postal-code |
|
|
<Type> start (date) | rolePathLiteral | RPRole, <Role> | v:adr | v:start | |
|
<Type> end (date) | rolePathLiteral | RPRole, <Role> | v:adr | v:start | |
|
Birthday
Attribute | Function | Arg1 | Arg2 | Arg3 | Arg4 | Comment |
---|---|---|---|---|---|---|
Year of Birth |
roleYear |
RPRole |
v:bday |
|
|
|
Buyer Year of Birth |
roleYear |
RPRole, p:Buyer |
v:bday |
|
|
|
Month of Birth |
roleMonth | RPRole |
" |
|
|
|
Day of Birth |
roleDay |
" |
" |
|
|
|
Payment Related
Attribute | Function | Arg1 | Arg2 | Arg3 | Arg4 | Comment |
---|---|---|---|---|---|---|
Credit Card Type |
TBD |
|
|
|
|
|
Credit Card Number |
rolePathClassLiteral |
RPRole, p:Buyer |
pay:payment |
pay:CreditCard |
pay:ccNumber |
|
Credit Card Expiration Date - Month |
rolePathClassMonth |
" |
" |
" |
pay:ccExpiration |
|
Credit Card Expiration Date - Year |
rolePathClassYear |
" |
" |
" |
pay:ccExpiration |
|
Credit Card Name |
rolePathClassLiteral |
" |
" |
" |
pay:ccName |
|
Credit Card Number |
rolePathClassLiteral |
RPRole, p:Home |
" |
" |
pay:ccCID |
|
Telephone Numbers
Attribute | Function | Arg1 | Arg2 | Arg3 | Arg4 | Comment |
---|---|---|---|---|---|---|
<Type> Phone - Area Code |
rolePathAreaCode |
RP, <Role> |
v:tel | |
|
|
<Type> Phone Number - Less Area Code |
rolePathSevenDigits |
" |
" |
|
|
|
<Type> Phone Number - First Three |
rolePathFirstThree |
" |
" |
|
|
|
<Type> Phone Number - Last Four |
rolePathLastFour |
" |
" |
|
|
|
<Type> Phone Number - Extension |
rolePathExtension |
" |
" |
|
|
|
GeoLocation
Attribute | Function | Arg1 | Arg2 | Arg3 | Arg4 | Comment |
---|---|---|---|---|---|---|
Latitude | rolePathLiteral |
RPRole |
geo:location |
geo:lat |
|
|
Longitude | rolePathLiteral |
" |
geo:location |
geo:long |
|
|
Altitude | rolePathLiteral |
" |
geo:location |
geo:alt |
|
|
Misc
Attribute | Function | Arg1 | Arg2 | Arg3 | Arg4 | Comment |
---|---|---|---|---|---|---|
Country |
rolePathLiteral |
RPRole |
v:adr |
v:country |
|
|
Gender |
roleLiteral |
" |
foaf:gender |
|
|
|
Buyer Gender |
roleLiteral |
", p:Buyer |
foaf:gender |
|
|
|
Company Name |
rolePathLiteral |
RPRole, p:Work |
v:org |
v:organization-name |
|
|
Title |
rolePathLiteral |
" |
" |
v:title |
|
|
Timezone |
TBD |
|
|
|
|
|
Employment Status |
TBD |
|
|
|
|
|
Biography |
TBD |
|
|
|
|
|
Language |
TBD |
|
|
|
|
|