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

Difference between revisions of "Persona Attribute List"

(Addresses)
(Addresses)
Line 233: Line 233:
 
| "<br>  
 
| "<br>  
 
| v:locality<br>  
 
| v:locality<br>  
| <br>
 
| <br>
 
|-
 
| <Type> District-1
 
| "<br>
 
| "<br>
 
| "<br>
 
| p:district-1<br>
 
| <br>
 
| <br>
 
|-
 
| <Type> District-2
 
| "<br>
 
| "<br>
 
| "<br>
 
| p:district-2
 
 
| <br>  
 
| <br>  
 
| <br>
 
| <br>

Revision as of 01:02, 25 August 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 persona 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 subclasses of "External" Role defined in PDM. 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
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, 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 persona node that is tagged with a role that matches the role of the external context.

Let's assume that the value of RP (the external context) is "eCommerce". The rolePathLiteral function will start at the root RootMe node and breadth-first find the first persona node that has a matching role value of "eCommerce". If none are found then the first 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 persona 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

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

Attribute Function Arg1 Arg2 Arg3 Arg4 Comment
<Type> Honorific Prefix
rolePathLiteralInitial
RP <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
RP <Role> v:adr
<Type> Street Address
rolePathLiteral RP <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 RP, <Role> v:adr v:start

<Type> end (date) rolePathLiteral RP, <Role> v:adr v:start

Birthday

Attribute Function Arg1 Arg2 Arg3 Arg4 Comment
Year of Birth
roleYear
RP
v:bday



Buyer Year of Birth
roleYear
RP, p:Buyer
v:bday



Month of Birth
roleMonth RP
"



Day of Birth
roleDay
"
"



Payment Related

Attribute Function Arg1 Arg2 Arg3 Arg4 Comment
Credit Card Type
TBD





Credit Card Number
rolePathClassLiteral
RP, 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, 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
RP
geo:location
geo:lat


Longitude rolePathLiteral
RP
geo:location
geo:long


Altitude rolePathLiteral
RP
geo:location
geo:alt


Misc

Attribute Function Arg1 Arg2 Arg3 Arg4 Comment
Country
rolePathLiteral
RP
v:adr
v:country


Gender
roleLiteral
"
foaf:gender



Buyer Gender
roleLiteral
", p:Buyer
foaf:gender



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


Title
rolePathLiteral
"
"
v:title


Timezone
TBD





Employment Status
TBD





Biography
TBD





Language
TBD





Back to the top