Copyright © 2013 W3C® (MIT, ERCIM, Keio, Beihang), All Rights Reserved. W3C liability, trademark and document use rules apply.
The document describes a mapping of the vCard specification (RFC6350) to RDF/OWL. The goal is to promote the use of vCard for the description of people and organisations utilising semantic web techniques and allowing compatibility with traditional vCard implementations.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.
This document was published by the Semantic Web Interest Group as an Interest Group Working Draft. If you wish to make comments regarding this document, please send them to semantic-web@w3.org (subscribe, archives).
This document updates the W3C Member Submission on vCard RDF [VCARD-MEMBER] to align with the new semantics of IETF RFC6350 [RFC6350] as developed by the IETF vCard Working Group. Note that RFC6350 obsoletes the previous RFC2426 [RF2426] that the W3 Member Submission was based on.
Publication as a First Public Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
The disclosure obligations of the Participants of this group are described in the charter.
Table of Contents |
vCard is a specification developed by the IETF for the description of people and organisations. Recently, vCard has been significantly updated to Version 4 as documented in [RFC6350]. Typically, vCard objects are encoded in it's own defined text-based syntax or XML renderings.
The objective of this document is to provide an equivalent representation of vCard utilizing the Semantic Web representations of RDF/OWL. The goal is to allow compatible representations between RFC6350 and this vCard Ontololgy.
Previous vCard ontologies, such as the W3C Member Submission on Representing vCard Objects in RDF [VCARD-MEMBER] covered vCard version 3.0 as defined in RFC2426 [RFC2426]. RFC2426 has been obsoleted by RFC6350 and it is recommeded that this vCard Ontology be utlised for any vCard semantic representations. RFC6350 has introduced many additional changes such as new structures and properties (for example, Kind, Gender, Language, Anniversary, Calendering attributes), additional parameters, and removed features (for example, some Address types, inline vCards, Label). See Appendix A of [RFC6350] for complete details.
The issue of the vCard Ontology Namespace URI has been raised for vCard RDF. The
URI in the previous W3C Member Submission on Representing vCard Objects in RDF [VCARD-MEMBER] used http://www.w3.org/2006/vcard/ns#
.
However, a new URI maybe utilsed for this version of the vCard Ontology (http://www.w3.org/ns/vcard
is proposed) but that may impact exisitng vCard RDF systems, given the differences
between the two RFCs.
We are looking for explicit feedback and preferences on this issue of the URI Namespace for this vCard Ontology.
NOTE: The current vCard Ontology (See Section 4) has continued to use the http://www.w3.org/2006/vcard/ns#
Namespace URI but that may change based on community feedback.
In order to create the OWL ontology mapping from RFC6350, some changes and enhancements are required to reflect and support RDF/OWL features, linked data principles, and support ontology reuse. No semantics are changed in the mapping from RFC6350 to the vCard Ontology. All the data types defined in RFC6350 are fully supported as XML Schema dataypes.
RDF/OWL can support n-ary and direct relation mechanisms which are supported in
this mapping. For example, you can either create a Telephone
class
with hasTelephone
object property or use the direct telephone
data property.
The following sections outlines the mapping from RFC6350 to the vCard Ontology showing both the n-ary Relation and Direct properties.
These properties can apply to most vCard properties. See the OWL ontology for specific instances.
RFC Property | Note | OWL Class | Parent | Relation | Direct |
---|---|---|---|---|---|
LANGUAGE | The human language used in the related property (from RFC5646) |
|
|
|
dp:language xsd:string |
VALUE | Not Required as this is implicit in the ontology datatypes |
|
|
|
|
PREF | Recommended to use rdf:Seq to support ordered preferences
|
|
|
|
|
ALTID | Recommended to use rdf:Alt to support alternative values
|
|
|
|
|
PID | Recommended to use rdf:ID to support identified properties
|
|
|
|
|
TYPE | Recommended to use rdf:type to indicate type. See Section
2.11 for list of vCard Type values.
|
|
|
|
|
MEDIATYPE | Not Required |
|
|
|
|
CALSCALE | Assume the default Gregorian system for datetimes |
|
|
|
|
SORT-AS | The string used for sorting the property |
|
|
|
dp:sortAs xsd:string |
GEO | The geographic location related to the property value (expressed as a geo URI) |
|
|
|
dp:geo xsd:anyURI |
TZ | The timezone related to the property value |
|
|
|
dp:timezone xsd:string |
RFC Property | Note | OWL Class | Parent | Relation | Direct |
---|---|---|---|---|---|
BEGIN | Not Required |
|
|
|
|
END | Not Required |
|
|
|
|
SOURCE | The orginal source of the vCard information |
|
|
|
dp:source xsd:anyURI |
KIND | vCard defines "Kinds" to represent the types of objects to be represented by vCard: | class:Kind | owl:Thing |
|
|
|
Individual - To represent people | class:Individual | class:Kind |
|
|
|
Organization - To represent organisations | class:Organization | class:Kind |
|
|
|
Group - To represent groups of vCard objects | class:Group | class:Kind |
|
|
|
Location - To represent location objects | class:Location | class:Kind |
|
|
XML | Not Required |
|
|
|
|
RFC Property | Note | OWL Class | Parent | Relation | Direct |
---|---|---|---|---|---|
FN | The full name of the object (as a single string). This is the only mandatory property. | class:FormattedName | class:Identification | op:hasFormattedName | dp:formattedName xsd:string |
N | The name of the object represented in structured parts. | class:Name | class:Identification | op:hasName | dp:givenName xsd:string dp:familyName xsd:string dp:additionalName xsd:string dp:honorificPrefix xsd:string dp:honorificSuffix xsd:string |
NICKNAME | A nickname for the object | class:Nickname | class:Identification | op:hasNickname | dp:nickName xsd:string |
PHOTO |
|
class:Photo | class:Identification | op:hasPhoto | dp:photo xsd:anyURI |
BDAY | Should only apply to Individual |
|
|
|
dp:birthdate xsd:dateTime |
ANNIVERSARY | Should only apply to Individual |
|
|
|
dp:anniversary xsd:dateTime |
GENDER | Should only apply to Individual. See Gender Codes in Section 2.11 |
|
|
|
dp:gender xsd:anyURI |
RFC Property | Note | OWL Class | Parent | Relation | Direct |
---|---|---|---|---|---|
ADR | The address of the object represented in structured parts | class:Address | class:Addressing | op:hasAddress | dp:streetAddress xsd:string dp:locality xsd:string dp:region xsd:string dp:country xsd:string dp:postalCode xsd:string |
RFC Property | Note | OWL Class | Parent | Relation | Direct |
---|---|---|---|---|---|
TEL | The telephone number as a tel URI. Recommended to use rdf:type
to indicate the Telephone Type. See Section 2.11 for list of Telephone Type
values
|
class:Telephone | class:Communication | op:hasTelephone | dp:telephone xsd:anyURI |
The email address as a mailto URI | class:Email | class:Communication | op:hasEmail | dp:email xsd:string | |
IMPP | The IMPP instant messaging contact info | class:InstantMessage | class:Communication | op:hasInstantMessage | dp:instantMessage xsd:anyURI |
LANG | The language of the object. | class:Language | class:Communication | op:hasLanguage | dp:language xsd:string |
RFC Property | Note | OWL Class | Parent | Relation | Direct |
---|---|---|---|---|---|
TZ | The timezone of the object | class:TimeZone | class:Geographical | op:hasTimeZone | dp:timeZone xsd:string |
GEO | The geographical coordinates of the object (geo URI) | class:Geo | class:Geographical | op:hasGeo | dp:geo xsd:anyURI |
RFC Property | Note | OWL Class | Parent | Relation | Direct |
---|---|---|---|---|---|
TITLE | The title of the object | class:Title | class:Organizational | op:hasTitle | dp:title xsd:string |
ROLE | The role of the object | class:Role | class:Organizational | op:hasRole | dp:role xsd:string |
LOGO | The logo of the object (data URI) | class:Logo | class:Organizational | op:hasLogo | dp:logo xsd:anyURI |
ORG | The organisation related to the object | class:OrganizationName | class:Organizational | op:hasOrganizationName | dp:organizationName xsd:string |
ORGUNIT | The organisational unit related to the object | class:OrganizationalUnitName | class:Organizational | op:hasOrganizationalUnitName | dp:organizationalUnitName xsd:string |
MEMBER | Can only be used for Group Kind objects. Must point to other Individual or Organization objects |
|
|
op:hasMember |
|
RELATED | Link to related objects. Recommended to use rdf:type to
indicate the Related Type. See Section 2.11 for list of Related Type values
|
class:Related | class:Organizational | op:hasRelated | dp:related xsd:anyURI |
RFC Property | Note | OWL Class | Parent | Relation | Direct |
---|---|---|---|---|---|
CATEGORIES | The categories of the object | class:Category | class:Explanatory | op:hasCategory | dp:category xsd:string |
NOTE | Notes about the object | class:Note | class:Explanatory | op:hasNote | dp:note xsd:string |
PRODID | The identifier of the Product that created the vCard object |
|
|
|
dp:productId xsd:string |
REV | The revision datetime of the vCard Object |
|
|
|
dp:revision xsd:datetime |
SOUND | Audio related to the object (data URI) | class:Sound | class:Explanatory | op:hasSound | dp:sound xsd:anyURI |
UID | A unique identifier for the object |
|
|
|
dp:uid xsd:anyURI |
CLIENTPIDMAP | Not required |
|
|
|
|
URL | Any URL related to the object | class:URL | class:Explanatory | op:hasURL | dp:url xsd:anyURI |
VERSION | Not required (namespace will capture this) |
|
|
|
|
RFC Property | Note | OWL Class | Parent | Relation | Direct |
---|---|---|---|---|---|
KEY | The security key of the object | class:Key | class:Security | op:hasKey | dp:key xsd:anyURI |
RFC Property | Note | OWL Class | Parent | Relation | Direct |
---|---|---|---|---|---|
FBURL | Calendar Busy Time of the object | class:CalendarBusy | class:Calendar | op:hasCalendarBusy | dp:calendarBusy xsd:anyURI |
CALADURI | Calendar Request of the object | class:CalendarRequest | class:Calendar | op:hasCalendarRequest | dp:calendarRequest xsd:anyURI |
CALURI | Calendar Link of the object | class:CalendarLink | class:Calendar | op:hasCalendarLink | dp:calendarLink xsd:anyURI |
RFC Property | OWL Class |
---|---|
vCard Type |
Home Work |
Gender |
Female Male None Other Unknown |
Telephone Type |
Cell (mobile) Fax Pager Text (sms) TextPhone Video Voice |
Related Type |
Acquaintance Agent Child Colleague Contact Coresident Coworker Crush Date Emergency Friend Kin Me Met Muse Neighbor Parent Sibling Spouse Sweetheart |
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:vcard="http://www.w3.org/2006/vcard/ns#"> <vcard:Individual rdf:about="http://example.com/me/corky" > <vcard:formattedName>Corky Crystal</vcard:formattedName> <vcard:nickName>Corks</vcard:nickName> <vcard:hasTelephone rdf:parseType="Resource"> <vcard:telephone>tel:61755555555</vcard:telephone> <rdf:type rdf:resource="http://www.w3.org/2013/vcard/ns#Home"/> <rdf:type rdf:resource="http://www.w3.org/2013/vcard/ns#Voice"/> </vcard:hasTelephone> <vcard:email rdf:resource="mailto:corky@example.com"/> <vcard:hasAddress rdf:parseType="Resource"> <vcard:streetAddress>111 Lake Drive</vcard:streetAddress> <vcard:locality>WonderCity</vcard:locality> <vcard:postalCode>5555</vcard:postalCode> <vcard:country>Australia</vcard:country> <rdf:type rdf:resource="http://www.w3.org/2013/vcard/ns#Home"/> </vcard:hasAddress> </vcard:Individual> </rdf:RDF>
<div vocab="http://www.w3.org/2006/vcard/ns#" resource="http://example.com/me/corky" typeof="Individual"> <span property="formattedName">Corky Crystal</span> <span property="nickName">Corks</span> <span property="hasTelephone" typeof="Home Voice"> <span property="telephone">tel:61755555555</span> </span> <link property="email" href="mailto:corky@example.com"/> <span property="hasAddress" typeof="Home"> <span property="streetAddress">111 Lake Drive</span> <span property="locality">WonderCity</span> <span property="postalCode">5555</span> <span property="country">Australia</span> </span> </div>
@prefix vcard: <http://www.w3.org/2006/vcard/ns#> . @prefix rdfa: <http://www.w3.org/ns/rdfa#> . <http://example.com/me/corky> a vcard:Individual; vcard:email <mailto:corky@example.com>; vcard:formattedName "Corky Crystal"; vcard:hasAddress [ a vcard:Home; vcard:country "Australia"; vcard:locality "WonderCity"; vcard:postalCode "5555"; vcard:streetAddress "111 Lake Drive" ]; vcard:hasTelephone [ a vcard:Home, vcard:Voice; vcard:telephone "tel:61755555555" ]; vcard:nickName "Corks" .
IRI: http://www.w3.org/2006/vcard/ns#Acquaintance
IRI: http://www.w3.org/2006/vcard/ns#Address
IRI: http://www.w3.org/2006/vcard/ns#Addressing
These types are concerned with information related to the delivery addressing or label for the vCard object
IRI: http://www.w3.org/2006/vcard/ns#Calendar
IRI: http://www.w3.org/2006/vcard/ns#CalendarBusy
To specify the URI for the busy time associated with the object that the vCard represents.
Was called FBURI in vCard
IRI: http://www.w3.org/2006/vcard/ns#CalendarLink
To specify the URI for a calendar associated with the object represented by the vCard.
Was called CALURI in vCard.
IRI: http://www.w3.org/2006/vcard/ns#CalendarRequest
To specify the calendar user address [RFC5545] to which a scheduling request [RFC5546] should be sent for the object represented by the vCard.
Was called CALADRURI in vCard
IRI: http://www.w3.org/2006/vcard/ns#Category
To specify application category information about the vCard, also known as tags. This was called CATEGORIES in vCard.
IRI: http://www.w3.org/2006/vcard/ns#Cell
Also called mobile telephone
IRI: http://www.w3.org/2006/vcard/ns#Code
Contains all the Code related Classes that are used to indicate vCard Types
IRI: http://www.w3.org/2006/vcard/ns#Colleague
IRI: http://www.w3.org/2006/vcard/ns#Communication
These properties describe information about how to communicate with the object the vCard represents
IRI: http://www.w3.org/2006/vcard/ns#Coresident
IRI: http://www.w3.org/2006/vcard/ns#Email
To specify the electronic mail address for communication with the object the vCard represents
IRI: http://www.w3.org/2006/vcard/ns#Emergency
IRI: http://www.w3.org/2006/vcard/ns#Explanatory
These properties are concerned with additional explanations, such as that related to informational notes or revisions specific to the vCard
IRI: http://www.w3.org/2006/vcard/ns#FormattedName
Specifies the formatted text corresponding to the name of the object the vCard represents
IRI: http://www.w3.org/2006/vcard/ns#Geo
Used to indicate global positioning information that is specific to an address
IRI: http://www.w3.org/2006/vcard/ns#Geographical
These properties are concerned with information associated with geographical positions or regions associated with the object the vCard represents
IRI: http://www.w3.org/2006/vcard/ns#Group
Defines all the properties required to be a Group of Individuals or Organizations
IRI: http://www.w3.org/2006/vcard/ns#Home
This implies that the property is related to an individual's personal life
IRI: http://www.w3.org/2006/vcard/ns#Identification
These types are used to capture information associated with the identification and naming of the entity associated with the vCard
IRI: http://www.w3.org/2006/vcard/ns#Individual
Defines all the properties required to be an Individual
IRI: http://www.w3.org/2006/vcard/ns#Language
To specify the language(s) that may be used for contacting the entity associated with the vCard.
IRI: http://www.w3.org/2006/vcard/ns#Location
Defines all the properties required to be a Location
IRI: http://www.w3.org/2006/vcard/ns#Logo
To specify a graphic image of a logo associated with the object the vCard represents
IRI: http://www.w3.org/2006/vcard/ns#InstantMessage
To specify the URI for instant messaging and presence protocol communications with the object the vCard represents.
Was called IMPP in vCard.
IRI: http://www.w3.org/2006/vcard/ns#Name
Specifies the components of the name of the object the vCard represents
IRI: http://www.w3.org/2006/vcard/ns#Nickname
Specifies the text corresponding to the nickname of the object the vCard represents
IRI: http://www.w3.org/2006/vcard/ns#Note
To specify supplemental information or a comment that is associated with the vCard
IRI: http://www.w3.org/2006/vcard/ns#Organization
Defines all the properties required to be an Organization
IRI: http://www.w3.org/2006/vcard/ns#Organizational
These properties are concerned with information associated with characteristics of the organization or organizational units of the object that the vCard represents
IRI: http://www.w3.org/2006/vcard/ns#OrganizationUnitName
IRI: http://www.w3.org/2006/vcard/ns#Photo
Specifies an image or photograph information that annotates some aspect of the object the vCard represents
IRI: http://www.w3.org/2006/vcard/ns#Related
To specify a relationship between another entity and the entity represented by this vCard
IRI: http://www.w3.org/2006/vcard/ns#Role
To specify the function or part played in a particular situation by the object the vCard represents
IRI: http://www.w3.org/2006/vcard/ns#Security
Contains all the Security related Classes
IRI: http://www.w3.org/2006/vcard/ns#Sound
To specify a digital sound content information that annotates some aspect of the vCard. This property is often used to specify the proper pronunciation of the name property value of the vCard
IRI: http://www.w3.org/2006/vcard/ns#Sweetheart
IRI: http://www.w3.org/2006/vcard/ns#Telephone
IRI: http://www.w3.org/2006/vcard/ns#Text
Also called sms telephone
IRI: http://www.w3.org/2006/vcard/ns#TextPhone
IRI: http://www.w3.org/2006/vcard/ns#TimeZone
Used to indicate time zone information that is specific to a location or address
IRI: http://www.w3.org/2006/vcard/ns#Title
To specify the position or job of the object the vCard represents
IRI: http://www.w3.org/2006/vcard/ns#Type
This is called TYPE in vCard but renamed here to Context for less confusion (with types/class)
IRI: http://www.w3.org/2006/vcard/ns#URL
To specify a uniform resource locator associated with the object to which the vCard refers. Examples for individuals include personal web sites, blogs, and social networking site identifiers.
IRI: http://www.w3.org/2006/vcard/ns#Kind
The parent class for all vCard Objects
IRI: http://www.w3.org/2006/vcard/ns#OrganizationName
IRI: http://www.w3.org/2006/vcard/ns#hasAddress
IRI: http://www.w3.org/2006/vcard/ns#hasCalendarLink
IRI: http://www.w3.org/2006/vcard/ns#hasCalendarRequest
IRI: http://www.w3.org/2006/vcard/ns#hasCalenderBusy
IRI: http://www.w3.org/2006/vcard/ns#hasCategory
IRI: http://www.w3.org/2006/vcard/ns#hasEmail
IRI: http://www.w3.org/2006/vcard/ns#hasFormattedName
IRI: http://www.w3.org/2006/vcard/ns#hasGeo
IRI: http://www.w3.org/2006/vcard/ns#hasKey
IRI: http://www.w3.org/2006/vcard/ns#hasLanguage
IRI: http://www.w3.org/2006/vcard/ns#hasLogo
IRI: http://www.w3.org/2006/vcard/ns#hasInstantMessage
IRI: http://www.w3.org/2006/vcard/ns#hasName
IRI: http://www.w3.org/2006/vcard/ns#hasNickname
IRI: http://www.w3.org/2006/vcard/ns#hasNote
IRI: http://www.w3.org/2006/vcard/ns#hasOrganizationalUnitName
IRI: http://www.w3.org/2006/vcard/ns#hasOrganizationName
IRI: http://www.w3.org/2006/vcard/ns#hasPhoto
IRI: http://www.w3.org/2006/vcard/ns#hasRelated
IRI: http://www.w3.org/2006/vcard/ns#hasRole
IRI: http://www.w3.org/2006/vcard/ns#hasSound
IRI: http://www.w3.org/2006/vcard/ns#hasTelephone
IRI: http://www.w3.org/2006/vcard/ns#hasTimeZone
IRI: http://www.w3.org/2006/vcard/ns#hasTitle
IRI: http://www.w3.org/2006/vcard/ns#hasURL
IRI: http://www.w3.org/2006/vcard/ns#hasMember
To include a member in the group this vCard represents
IRI: http://www.w3.org/2006/vcard/ns#additionalName
IRI: http://www.w3.org/2006/vcard/ns#anniversary
The date of marriage, or equivalent, of the object the vCard represents
IRI: http://www.w3.org/2006/vcard/ns#birthdate
To specify the birth date of the object the vCard represents
IRI: http://www.w3.org/2006/vcard/ns#calendarBusy
IRI: http://www.w3.org/2006/vcard/ns#calendarLink
IRI: http://www.w3.org/2006/vcard/ns#calendarRequest
IRI: http://www.w3.org/2006/vcard/ns#category
IRI: http://www.w3.org/2006/vcard/ns#country
IRI: http://www.w3.org/2006/vcard/ns#email
IRI: http://www.w3.org/2006/vcard/ns#givenName
called Given Name invCard
IRI: http://www.w3.org/2006/vcard/ns#gender
To specify the components of the sex and gender identity of the object the vCard represents.
To enable other Gender/Sex codes to be used, this dataproperty has range URI. The vCard gender code classes are defined under Code/Gender
IRI: http://www.w3.org/2006/vcard/ns#geo
Must use the geo URI scheme RFC5870
IRI: http://www.w3.org/2006/vcard/ns#formattedName
IRI: http://www.w3.org/2006/vcard/ns#language
Use 2 char language code from RFC5646
IRI: http://www.w3.org/2006/vcard/ns#familyName
Called Family Name in vCard
IRI: http://www.w3.org/2006/vcard/ns#honorificPrefix
Called Honorific Prefix in vCard
IRI: http://www.w3.org/2006/vcard/ns#honorificSuffix
IRI: http://www.w3.org/2006/vcard/ns#instantMessage
IRI: http://www.w3.org/2006/vcard/ns#key
IRI: http://www.w3.org/2006/vcard/ns#locality
IRI: http://www.w3.org/2006/vcard/ns#logo
IRI: http://www.w3.org/2006/vcard/ns#nickName
IRI: http://www.w3.org/2006/vcard/ns#note
IRI: http://www.w3.org/2006/vcard/ns#organizationName
IRI: http://www.w3.org/2006/vcard/ns#organizationalUnitName
IRI: http://www.w3.org/2006/vcard/ns#photo
IRI: http://www.w3.org/2006/vcard/ns#postalCode
IRI: http://www.w3.org/2006/vcard/ns#productId
IRI: http://www.w3.org/2006/vcard/ns#region
IRI: http://www.w3.org/2006/vcard/ns#related
IRI: http://www.w3.org/2006/vcard/ns#revision
IRI: http://www.w3.org/2006/vcard/ns#role
IRI: http://www.w3.org/2006/vcard/ns#sortAs
IRI: http://www.w3.org/2006/vcard/ns#sound
IRI: http://www.w3.org/2006/vcard/ns#source
IRI: http://www.w3.org/2006/vcard/ns#streetAddress
IRI: http://www.w3.org/2006/vcard/ns#telephone
IRI: http://www.w3.org/2006/vcard/ns#timeZone
IRI: http://www.w3.org/2006/vcard/ns#title
IRI: http://www.w3.org/2006/vcard/ns#uid
To specify a value that represents a globally unique identifier corresponding to the entity associated with the vCard
IRI: http://www.w3.org/2006/vcard/ns#url
Thanks to member of the W3C Semantic Web Interest Group and the IETF vCard Working Group for valuable feedback and suggestions. Special thanks to Dan Brickley for contributions to the Examples section and Ivan Herman for guidance on publishing the vCard ontology document.
The ontology HTML section was obtained by processing the OWL ontology source code through LODE, Live OWL Documentation Environment, developed by Silvio Peroni.
To specify the components of the delivery address for the vCard object