This table attempts to explain the mappings between the new VCard ontology and two other vocabulariees commonly used to describe people, the W3C's PIM vocabulary and the community-driven FOAF vocabulary. However, neither of these vocabularies is isomorphic to the VCard (and thus hCard) and as such a new vocabulary had to be created.

Note that this table contains the RDF and OWL statements needed to formalize these relationships in Embedded RDF so that a formal description of these mappings can be easily extracted via a GRDDL transformation.

v:nickname
VCardVCard OntologyFOAFW3C PIMOther Vocabularies or Notes
vCardv:VCard
v:Locationcon:Location
v:Address
@@TODO: Where is this in VCard spec?v:agentfoaf:Agent(@@TODO: This is a class, not a property, can't be sameAs or subclassOf unless we use OWL FULL!)
fnv:fnfoaf:fullName@@TODO: It seems this should have some relationship to W3C Contact, but can only think of con:knownAs
nv:nfoaf:name@@TODO: Not sure if this mapping should include this as a superclass of all other naming conventions
family-namev:family-namefoaf:family_name,foaf:surnamecon:lastName
given-namev:given-namefoaf:givennamecon:firstName
additional-namev:additional-namefoaf:namecon:knownAs
honorific-prefixv:honorific-prefixfoaf:titlecon:personalTitleNote that prefixes are subproperties of titles, since every title cannot be a prefix but every prefix is a title
honorific-suffixv:honorific-suffixcon:personalSuffix
nicknamefoaf:nickcon:knownAs
urlv:urlfoaf:homePagecon:homepage @@TODO: Or should this be con:publicHomepage?
emailv:emailfoaf:mboxcon:emailAddress
v:mobileEmailfoaf:mboxcon:emailAddress
v:workEmailfoaf:mboxcon:emailAddress
v:unlabelledEmailfoaf:mboxcon:emailAddress
faxv:faxfoaf:mboxcon:fax
telv:telfoaf:phonecon:phone
v:homeTelfoaf:phonecon:phone
v:mobileTelfoaf:phonecon:mobile@@TODO: Why is the range restricted to ContactLocation, when con:phone is not? Needs fixing.
v:workTelfoaf:phonecon:phone
v:unlabelledTelfoaf:phonecon:phone
adrv:adrcon:address
v:homeAdrcon:address
v:workAdrcon:address
v:unlabelledAdrcon:address
post-office-boxv:post-office-boxcon:_addressProperty
extended-addressv:extended-addresscon:_addressProperty
v:street-addresscon:street
localityv:localitycon:city
regionv:regioncon:_addressProperty
postal-codev:postal-codecon:_addressProperty
country-namev:country-namecon:country
labelv:label
geov:geo@@TODO: Very close to con:ContactLocation, but is a property, not a class
latitudev:latitudegeo:lat@@TODO: (Not standardized yet..is this a problem?)
longitudev:longitudegeo:long@@TODO: (Not standardized yet..is this a problem?)
tzv:tz@@TODO: Would be nice to map to RDFCalendar, but RDFCalendar seems to use datatypes to model timezones...unclear how mapping would work
photov:photofoaf:img
soundv:sound
bdayv:bdayfoaf:birthdaycon:birthday
titlev:titlefoaf:titlecon:personalTitle
rolev:role
orgv:Organizationfoaf:Organizationcon:SocialEntity@@TODO: There is a con:organization but that's a property, not a class
organization-namev:organization-namefoaf:namecon:departmentName
organization-unitv:organization-unit
categoryv:category
notev:noterdfs:comment
classv:class@@TODO: Is there no access-right (Public, private, etc.) vocab for RDF?
keyv:keywot:pubkeyAddress@@TODO: Using the non-standard Web of Trust vocab, not sure if this is right...
mailerv:mailer
uidv:uid
revv:rev@@TODO: It seems a revision ontology must exist somewhere...
rolev:role@@TODO: Do we have any ontologies of roles?
sort-stringv:sort-string@@TODO: Related. but not in a clear way, to con:sortName

@@TODO: Why not make mobile, home, etc. (types in VCard) classes instead of properties, so you just have one class called phone so that everything object of a v:tel relationship is a "phone", and then to distinguish between phones by virtue of sub-classing them for mobile, home, etc? Is it the fact that this data might be lost in RDF graph merging? Yet if the properties have the right domain and ranges, they should not.

@@TODO: Why the unlabelled prefix for some properties?

@@TODO: Someone more familiar with PIM should check how I used the address property and the W3C PIM _addressProperty.

@@TODO: In W3C PIM we map from People to their Contactlocations which in turn have addresses, phone numbers, etc. and in vCard addresses are mapped to types (like "home"), which seem like they should be sub-classes of ContactLocations.

@@TODO: It should be noted in the text that the VCard Ontology carries the same exceptions as hCard, i.e. not encoding: NAME, PROFILE, SOURCE, PRODID, VERSION