Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: for the plan.

Jump to: navigation, search

VCard vocabulary usage


The Persona vocabulary imports vCard ( and uses some, but not all of its attributes and classes.

UML Overview

We show below the aspect of the Persona vocabulary that builds on the vCard vocabulary. Classes from other vocabularies are shown in grey.


Classes and Attributes Used

Note: Additional attributes from persona.owl or higgins.owl are shown in bold below.

The following attributes are used on p:Person objects:

  • 0..1 title
  • 0..1 tel
  • 0..1 n
  • 0..1 adr
  • 0..1 org


  • 0..1 address
  • 0..1 extended-address
  • 0..1 post-office-box
  • 0..1 locality
  • 0..1 postal-code


Has no attributes.


  • 0..1 given-name
  • 0..N additional-name
  • 0..1 family-name
  • 0..1 honorific-suffix


  • 0..1 organization-name
  • 0..1 organization-unit

Tel (and subclasses)

In PDM (like FOAF) the rdf:value of a Tel instance is a tel URI, whereas in the usual RDF mapping of VCard it is an unstructured string. Here is an example of a VCard:Tel instance:

  [ a v:Work, v:Cell, v:Pref ;
    rdf:value tel:+1-212-555-0101

See for details on the tel URI scheme.

Other classes

  • Work
  • Also used: Parcel, Dom, Intl, Pref, Postal
  • Also used: BBS...Voice as shown above

Classes Not Used

  • Label (disjoint with Tel) - not used (don't yet understand what it is)

Attributes Not Used

  • honorific-prefix - use p:honorificPrefix
  • agent - use hasAgent
  • bday - p:birthDay, p:birthMonth, p:birthYear
  • category
  • class
  • fn - use skos:prefLabel
  • geo - use geo:location
  • key
  • logo
  • mailer - not sure what this is
  • photo
  • prodid
  • region - use p:region instead
  • country-name - use p:country instead
  • rev
  • sort-string
  • sound
  • tz - not sure syntax of range/value
  • uid - use entityId
  • url - use foaf:page (and sub-attributes)

Other conventions

Whereas by inference a p:Person node that has a adr or n etc link is a VCard, we add the following constraints (that are not present in usual VCards) on p:Persons using these complex attributes:

  1. A single p:Person instance has a maximum of one adr, one n, one org

The implication of #1 above is that if a person has N addresses, then N separate p:Person nodes must be instantiated. If it is desired to indicate the time period for which the person lived at a given address, the h:start..h:end attributes on the p:Person node are used.


Back to the top