<?xml version="1.0" encoding="UTF-8"?>
<!-- Entity declarations (shortcuts) -->
<!DOCTYPE rdf:RDF [
  <!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
  <!ENTITY rdfs 'http://www.w3.org/2000/01/rdf-schema#'>
]>
<!-- Setting up Namespaces -->
<rdf:RDF xmlns:rdf="&rdf;" xmlns:rdfs="&rdfs;">
  <rdf:Property rdf:ID="FN">
    <rdfs:label>Formatted Name</rdfs:label>
  </rdf:Property>
  <rdf:Property rdf:ID="NICKNAME">
    <rdfs:label>Nickname</rdfs:label>
  </rdf:Property>
  <rdf:Property rdf:ID="BDAY">
    <rdfs:label>Birthday</rdfs:label>
  </rdf:Property>
  <rdf:Property rdf:ID="MAILER">
    <rdfs:label>EMail Program</rdfs:label>
  </rdf:Property>
  <rdf:Property rdf:ID="GEO">
    <rdfs:label>Geographical Information</rdfs:label>
  </rdf:Property>
  <rdf:Property rdf:ID="TITLE">
    <rdfs:label>Position Title</rdfs:label>
  </rdf:Property>
  <rdf:Property rdf:ID="ROLE">
    <rdfs:label>Position Role</rdfs:label>
  </rdf:Property>
  <rdf:Property rdf:ID="CATEGORIES">
    <rdfs:label>Categories</rdfs:label>
  </rdf:Property>
  <rdf:Property rdf:ID="NAME">
    <rdfs:label>vCard Name</rdfs:label>
  </rdf:Property>
  <rdf:Property rdf:ID="SOURCE">
    <rdfs:label>Source</rdfs:label>
  </rdf:Property>
  <rdf:Property rdf:ID="NOTE">
    <rdfs:label>Notes</rdfs:label>
  </rdf:Property>
  <rdf:Property rdf:ID="PRODID">
    <rdfs:label>Product rdf:ID</rdfs:label>
  </rdf:Property>
  <rdf:Property rdf:ID="REV">
    <rdfs:label>Revision</rdfs:label>
  </rdf:Property>
  <rdf:Property rdf:ID="SORT-STRING">
    <rdfs:label>Sort String</rdfs:label>
  </rdf:Property>
  <!-- Object -TEL-> TelObject  -rdf:Type-> TELTYPES 
													-rdf:value-> 555-1212 -->
  <rdf:Property rdf:ID="TEL">
    <rdfs:label>Telephone</rdfs:label>
    <rdfs:comment>Can point to a TelObject or a literal</rdfs:comment>
  </rdf:Property>
  <rdfs:Class rdf:ID="TelObject">
    <rdfs:label> Abstract telephone object </rdfs:label>
    <rdfs:comment>Must have rdf:value containing the telephone number and an rdf:type of TELTYPES</rdfs:comment>
  </rdfs:Class>
  <rdfs:Class rdf:ID="TELTYPES"/>
  <TELTYPES rdf:ID="home"/>
  <TELTYPES rdf:ID="msg"/>
  <TELTYPES rdf:ID="work"/>
  <TELTYPES rdf:ID="fax"/>
  <TELTYPES rdf:ID="cell"/>
  <TELTYPES rdf:ID="video"/>
  <TELTYPES rdf:ID="pager"/>
  <TELTYPES rdf:ID="bbs"/>
  <TELTYPES rdf:ID="modem"/>
  <TELTYPES rdf:ID="car"/>
  <TELTYPES rdf:ID="isdn"/>
  <TELTYPES rdf:ID="pcs"/>
  <TELTYPES rdf:ID="toll-free"/>
  <!-- Object -EMAIL-> EmailObject -rdf:Type-> EMAILTYPES
													   -rdf:value-> me@here.com -->
  <rdf:Property rdf:ID="EMAIL">
    <rdfs:label>Email Address</rdfs:label>
    <rdfs:comment>Can point to a EmailObject or a literal</rdfs:comment>
  </rdf:Property>
  <rdfs:Class rdf:ID="EmailObject">
    <rdfs:label> Abstract email address </rdfs:label>
    <rdfs:comment>Must have rdf:value containing the address and an rdf:type of EMAILTYPES</rdfs:comment>
  </rdfs:Class>
  <rdfs:Class rdf:ID="EMAILTYPES"/>
  <EMAILTYPES rdf:ID="internet"/>
  <EMAILTYPES rdf:ID="x400"/>
  <EMAILTYPES rdf:ID="pref"/>
  <!-- Object -ADR-> AdrObject -rdf:type-> ADRTYPES  
													-Street -> "4375 Walnut Street"
													-Pobox-> "123" -->
  <rdf:Property rdf:ID="ADR">
    <rdfs:label>Address</rdfs:label>
    <rdfs:comment>Points to an AdrObject</rdfs:comment>
    <rdfs:range rdf:resource="#AdrObject"/>
  </rdf:Property>
  <rdfs:Class rdf:ID="AdrObject">
    <rdfs:label> Abstract address </rdfs:label>
    <rdfs:comment>Points to its multiple parts, has a rdf:type of #ADRTYPES</rdfs:comment>
  </rdfs:Class>
  <rdfs:Class rdf:ID="ADRTYPES"/>
  <ADRTYPES rdf:ID="dom"/>
  <ADRTYPES rdf:ID="intl"/>
  <ADRTYPES rdf:ID="postal"/>
  <ADRTYPES rdf:ID="parcel"/>
  <ADRTYPES rdf:ID="home"/>
  <ADRTYPES rdf:ID="work"/>
  <ADRTYPES rdf:ID="pref"/>
  <rdf:Property rdf:ID="Extadd">
    <rdfs:label>Extended Address</rdfs:label>
    <rdfs:domain rdf:resource="#AdrObject "/>
  </rdf:Property>
  <rdf:Property rdf:ID="Street">
    <rdfs:label>Street</rdfs:label>
    <rdfs:domain rdf:resource="#AdrObject "/>
  </rdf:Property>
  <rdf:Property rdf:ID="Pobox">
    <rdfs:label>Post Office Box</rdfs:label>
    <rdfs:domain rdf:resource="#AdrObject "/>
  </rdf:Property>
  <rdf:Property rdf:ID="Locality">
    <rdfs:label>Locality/Suburb</rdfs:label>
    <rdfs:domain rdf:resource="#AdrObject "/>
  </rdf:Property>
  <rdf:Property rdf:ID="Region">
    <rdfs:label>Region/State</rdfs:label>
    <rdfs:domain rdf:resource="#AdrObject "/>
  </rdf:Property>
  <rdf:Property rdf:ID="Pcode">
    <rdfs:label>Postal Code</rdfs:label>
    <rdfs:domain rdf:resource="#AdrObject "/>
  </rdf:Property>
  <rdf:Property rdf:ID="Country">
    <rdfs:label>Country</rdfs:label>
    <rdfs:domain rdf:resource="#AdrObject "/>
  </rdf:Property>
  <rdf:Property rdf:ID="LABEL">
    <rdfs:label>Address Label</rdfs:label>
    <rdfs:domain rdf:resource="#AdrObject "/>
  </rdf:Property>
  <!-- Object -TZ-> TZTYPES -->
  <rdf:Property rdf:ID="TZ">
    <rdfs:label>Timezone</rdfs:label>
    <rdfs:range rdf:resource="#TZTYPES"/>
  </rdf:Property>
  <rdfs:Class rdf:ID="TZTYPES"/>
  <TZTYPES rdf:ID="text"/>
  <!-- Object -N-> NameObject   -Family-> "Doe"
													-Given-> "John" -->
  <rdf:Property rdf:ID="N">
    <rdfs:label>Name</rdfs:label>
    <rdfs:range rdf:resource="#NameObject"/>
  </rdf:Property>
  <rdfs:Class rdf:ID="NameObject">
    <rdfs:label> Abstract Name </rdfs:label>
    <rdfs:comment>Points to its multiple parts</rdfs:comment>
  </rdfs:Class>
  <!-- NameObject Properties-->
  <rdf:Property rdf:ID="Family">
    <rdfs:label>Family Name</rdfs:label>
    <rdfs:domain rdf:resource="#NameObject"/>
    <rdfs:range rdf:resource="&rdf;Literal"/>
  </rdf:Property>
  <rdf:Property rdf:ID="Given">
    <rdfs:label>Given Name</rdfs:label>
    <rdfs:domain rdf:resource="#NameObject"/>
    <rdfs:range rdf:resource="&rdf;Literal"/>
  </rdf:Property>
  <rdf:Property rdf:ID="Other">
    <rdfs:label>Other Names</rdfs:label>
    <rdfs:domain rdf:resource="#NameObject"/>
    <rdfs:range rdf:resource="&rdf;Literal"/>
  </rdf:Property>
  <rdf:Property rdf:ID="Prefix">
    <rdfs:label>Prefix Name</rdfs:label>
    <rdfs:domain rdf:resource="#NameObject"/>
    <rdfs:range rdf:resource="&rdf;Literal"/>
  </rdf:Property>
  <rdf:Property rdf:ID="Suffix">
    <rdfs:label>Suffix Name</rdfs:label>
    <rdfs:domain rdf:resource="#NameObject"/>
    <rdfs:range rdf:resource="&rdf;Literal"/>
  </rdf:Property>
  <!-- Object -ORG-> OrgObject  -Orgname-> "Fourthought"
													-Orgunit-> "Applications" -->
  <rdf:Property rdf:ID="ORG">
    <rdfs:label>Organisation</rdfs:label>
    <rdfs:range rdf:resource="#OrgObject"/>
  </rdf:Property>
  <rdfs:Class rdf:ID="OrgObject">
    <rdfs:label> Abstract Organization </rdfs:label>
    <rdfs:comment>Points to its multiple parts</rdfs:comment>
  </rdfs:Class>
  <rdf:Property rdf:ID="Orgname">
    <rdfs:label>Organisation Name</rdfs:label>
    <rdfs:domain rdf:resource="#OrgObject"/>
    <rdfs:range rdf:resource="&rdf;Literal"/>
  </rdf:Property>
  <rdf:Property rdf:ID="Orgunit">
    <rdfs:label>Organisation Unit</rdfs:label>
    <rdfs:domain rdf:resource="#OrgObject"/>
  </rdf:Property>
  <rdf:Property rdf:ID="PHOTO">
    <rdfs:label>Photograph</rdfs:label>
  </rdf:Property>
  <rdf:Property rdf:ID="LOGO">
    <rdfs:label>Logo Image</rdfs:label>
  </rdf:Property>
  <rdf:Property rdf:ID="SOUND">
    <rdfs:label>Audio Sound</rdfs:label>
  </rdf:Property>
  <rdf:Property rdf:ID="KEY">
    <rdfs:label>Public Key</rdfs:label>
  </rdf:Property>
  <rdf:Property rdf:ID="AGENT">
    <rdfs:label>Agent</rdfs:label>
  </rdf:Property>
  <rdf:Property rdf:ID="UID">
    <rdfs:label>Unique rdf:ID</rdfs:label>
  </rdf:Property>
  <rdf:Property rdf:ID="GROUP">
    <rdfs:label>Group vCard Properties</rdfs:label>
  </rdf:Property>
</rdf:RDF>
