Skip to main content

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.

Jump to: navigation, search

Difference between revisions of "Persona Attribute List"

Line 155: Line 155:
 
! align="left" width="10%" valign="top" | Comment
 
! align="left" width="10%" valign="top" | Comment
 
|-
 
|-
| &lt;Type&gt; Honorific Prefix<br>  
+
| &lt;role&gt; Honorific Prefix<br>  
 
| rolePathLiteralInitial<br>  
 
| rolePathLiteralInitial<br>  
 
| rp-role, &lt;Role&gt;  
 
| rp-role, &lt;Role&gt;  
Line 163: Line 163:
 
| <br>
 
| <br>
 
|-
 
|-
| &lt;Type&gt; Given Name  
+
| &lt;role&gt; Given Name  
 
| rolePathLiteral  
 
| rolePathLiteral  
 
| "  
 
| "  
Line 171: Line 171:
 
| <br>
 
| <br>
 
|-
 
|-
| &lt;Type&gt; Additional Names<br>  
+
| &lt;role&gt; Additional Names<br>  
 
| rolePathLiteral<br>  
 
| rolePathLiteral<br>  
 
| "<br>  
 
| "<br>  
Line 179: Line 179:
 
| <br>
 
| <br>
 
|-
 
|-
| &lt;Type&gt; Additional Names - Initial<br>  
+
| &lt;role&gt; Additional Names - Initial<br>  
 
| rolePathLiteralInitial<br>  
 
| rolePathLiteralInitial<br>  
 
| "<br>  
 
| "<br>  
Line 187: Line 187:
 
| <br>
 
| <br>
 
|-
 
|-
| &lt;Type&gt; Family Name<br>  
+
| &lt;role&gt; Family Name<br>  
 
| rolePathLiteral<br>  
 
| rolePathLiteral<br>  
 
| "<br>  
 
| "<br>  
Line 195: Line 195:
 
| <br>
 
| <br>
 
|-
 
|-
| &lt;Type&gt; Honorific Suffix<br>  
+
| &lt;role&gt; Honorific Suffix<br>  
 
| rolePathLiteralInitial<br>  
 
| rolePathLiteralInitial<br>  
 
| "<br>  
 
| "<br>  
Line 203: Line 203:
 
| <br>
 
| <br>
 
|-
 
|-
| &lt;Type&gt; Formatted Name<br>  
+
| &lt;role&gt; Formatted Name<br>  
 
| TBD<br>  
 
| TBD<br>  
 
| <br>  
 
| <br>  
Line 225: Line 225:
 
! align="left" width="10%" valign="top" | Comment
 
! align="left" width="10%" valign="top" | Comment
 
|-
 
|-
| <Type> Address<br>  
+
| <role> Address<br>  
 
| rolePathAddress<br>  
 
| rolePathAddress<br>  
 
| rp-role, <Role>  
 
| rp-role, <Role>  
Line 233: Line 233:
 
|  
 
|  
 
|-
 
|-
| <Type> Street Address<br>  
+
| <role> Street Address<br>  
 
| rolePathLiteral  
 
| rolePathLiteral  
 
| rp-role, <Role>  
 
| rp-role, <Role>  
Line 241: Line 241:
 
|  
 
|  
 
|-
 
|-
| <Type> Extended Address<br>  
+
| <role> Extended Address<br>  
 
| "
 
| "
 
| "  
 
| "  
Line 249: Line 249:
 
| <br>
 
| <br>
 
|-
 
|-
| <Type> Locality
+
| <role> Locality
 
| "<br>  
 
| "<br>  
 
| "<br>  
 
| "<br>  
Line 257: Line 257:
 
| <br>
 
| <br>
 
|-
 
|-
| <Type> Region<br>  
+
| <role> Region<br>  
 
| "<br>  
 
| "<br>  
 
| "<br>  
 
| "<br>  
Line 265: Line 265:
 
| <br>
 
| <br>
 
|-
 
|-
| <Type> Postal Code<br>  
+
| <role> Postal Code<br>  
 
| "<br>  
 
| "<br>  
 
| "<br>  
 
| "<br>  
Line 273: Line 273:
 
| <br>
 
| <br>
 
|-
 
|-
| <Type> 4 Digit Extension Zip<br>  
+
| <role> 4 Digit Extension Zip<br>  
 
| TBD<br>  
 
| TBD<br>  
 
| "<br>  
 
| "<br>  
Line 281: Line 281:
 
| <br>
 
| <br>
 
|-
 
|-
| <Type> start (date)
+
| <role> start (date)
 
| rolePathLiteral
 
| rolePathLiteral
 
| rp-role, <Role>
 
| rp-role, <Role>
Line 289: Line 289:
 
| <br>
 
| <br>
 
|-
 
|-
| <Type> end (date)
+
| <role> end (date)
 
| rolePathLiteral
 
| rolePathLiteral
 
| rp-role, <Role>
 
| rp-role, <Role>
Line 417: Line 417:
 
! align="left" width="10%" valign="top" | Comment
 
! align="left" width="10%" valign="top" | Comment
 
|-
 
|-
| <Type> Phone - Area Code<br>  
+
| <role> Phone - Area Code<br>  
 
| rolePathAreaCode<br>  
 
| rolePathAreaCode<br>  
 
| RP, <Role><br>  
 
| RP, <Role><br>  
Line 425: Line 425:
 
| <br>
 
| <br>
 
|-
 
|-
| <Type> Phone Number - Less Area Code<br>  
+
| <role> Phone Number - Less Area Code<br>  
 
| rolePathSevenDigits<br>  
 
| rolePathSevenDigits<br>  
 
| "<br>  
 
| "<br>  
Line 433: Line 433:
 
| <br>
 
| <br>
 
|-
 
|-
| <Type> Phone Number - First Three<br>  
+
| <role> Phone Number - First Three<br>  
 
| rolePathFirstThree<br>  
 
| rolePathFirstThree<br>  
 
| "<br>  
 
| "<br>  
Line 441: Line 441:
 
| <br>
 
| <br>
 
|-
 
|-
| <Type> Phone Number - Last Four<br>  
+
| <role> Phone Number - Last Four<br>  
 
| rolePathLastFour<br>  
 
| rolePathLastFour<br>  
 
| "<br>  
 
| "<br>  
Line 449: Line 449:
 
| <br>
 
| <br>
 
|-
 
|-
| <Type> Phone Number - Extension<br>  
+
| <role> Phone Number - Extension<br>  
 
| rolePathExtension<br>  
 
| rolePathExtension<br>  
 
| "<br>  
 
| "<br>  

Revision as of 09:42, 29 October 2010

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

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.

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 rp-role
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 (rp-role, 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 rp-role (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...

  • fp:accountUsername = rolePathLiteral (rp-role, foaf:account, foaf:accountName)
  • fp:accountPassword = rolePathLiteral (rp-role, foaf:account, p:password)
  • fp:accountConfirmPassword = rolePathLiteral (rp-role, foaf:account, p:password)
  • fp:accountEmail = roleObject (rp-role, foaf:mbox)
  • fp:accountEmail = roleObject (rp-role, foaf:mbox)

Account

Attribute Function Arg1 Arg2 Arg3 Arg4 Comment
Account Username rolePathLiteral rp-role
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:

  • fp:honorificPrefix?r={rp-role}&r={role} = rolePathLiteralInitial ([rp-role,<role>], v:n, v:honorific-prefix)
  • fp:givenName?r={rp-role}&r={role} = rolePathLiteral ([rp-role,<role>], v:n, v:given-name)
  • fp:additionalNames?r={rp-role}&r={role} = rolePathLiteral ([rp-role,<role>], v:n, v:additional-name)
  • fp:additionalNamesInitial?r={rp-role}&r={role} = rolePathLiteralInitial ([rp-role,<role>], v:n, v:additional-name)
  • fp:familyName?r={rp-role}&r={role} = rolePathLiteralInitial ([rp-role,<role>], v:n, v:family-name)
  • fp:honorificSuffix?rr={rp-role}&={role} = rolePathLiteralInitial ([rp-role,<role>], v:n, v:honorific-suffix)
  • fp:formattedName?r={rp-role}&r={role} = TBD

Names

Attribute Function Arg1 Arg2 Arg3 Arg4 Comment
<role> Honorific Prefix
rolePathLiteralInitial
rp-role, <Role> v:n
v:honorific-prefix


<role> Given Name rolePathLiteral " "
v:given-name


<role> Additional Names
rolePathLiteral
"
"
v:additional-name


<role> Additional Names - Initial
rolePathLiteralInitial
"
"
v:additional-name


<role> Family Name
rolePathLiteral
"
"
v:family-name


<role> Honorific Suffix
rolePathLiteralInitial
"
"
v:honorific-suffix


<role> Formatted Name
TBD





Addresses

Note: rolePathAddress() is a function that concatenates: apartment + (houseNumber or houseName) + house + street

Attribute Function Arg1 Arg2 Arg3 Arg4 Comment
<role> Address
rolePathAddress
rp-role, <Role> v:adr
<role> Street Address
rolePathLiteral rp-role, <Role> v:adr
v:street-address
<role> Extended Address
" " " v:extended-address

<role> Locality "
"
"
v:locality


<role> Region
"
"
"
v:region


<role> Postal Code
"
"
"
v:postal-code


<role> 4 Digit Extension Zip
TBD
"
"
v:postal-code


<role> start (date) rolePathLiteral rp-role, <Role> v:adr v:start

<role> end (date) rolePathLiteral rp-role, <Role> v:adr v:start

Birthday

Attribute Function Arg1 Arg2 Arg3 Arg4 Comment
Year of Birth
roleYear
rp-role
v:bday



Buyer Year of Birth
roleYear
rp-role, p:Buyer
v:bday



Month of Birth
roleMonth rp-role
"



Day of Birth
roleDay
"
"



Payment Related

Attribute Function Arg1 Arg2 Arg3 Arg4 Comment
Credit Card Type
TBD





Credit Card Number
rolePathClassLiteral
rp-role, 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
rp-role, p:Home
"
"
pay:ccCID

Telephone Numbers

Attribute Function Arg1 Arg2 Arg3 Arg4 Comment
<role> Phone - Area Code
rolePathAreaCode
RP, <Role>
v:tel


<role> Phone Number - Less Area Code
rolePathSevenDigits
"
"



<role> Phone Number - First Three
rolePathFirstThree
"
"



<role> Phone Number - Last Four
rolePathLastFour
"
"



<role> Phone Number - Extension
rolePathExtension
"
"



GeoLocation

Attribute Function Arg1 Arg2 Arg3 Arg4 Comment
Latitude rolePathLiteral
rp-role
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
rp-role
v:adr
v:country


Gender
roleLiteral
"
foaf:gender



Buyer Gender
roleLiteral
", p:Buyer
foaf:gender



Company Name
rolePathLiteral
rp-role, p:Work
v:org
v:organization-name


Title
rolePathLiteral
"
"
v:title


Timezone
TBD





Employment Status
TBD





Biography
TBD





Language
TBD





Back to the top