<?xml version="1.0"?>
<!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#" >
     <!ENTITY xsd  "http://www.w3.org/2001/XMLSchema#" >
     <!ENTITY owl  "http://www.w3.org/2002/07/owl#" >
     <!ENTITY address "http://daml.umbc.edu/ontologies/ittalks/address#" >
     <!ENTITY event "http://daml.umbc.edu/ontologies/ittalks/event#" >
     <!ENTITY person "http://daml.umbc.edu/ontologies/ittalks/person#" >
   ]>


<rdf:RDF
  xmlns:rdf 	= "&rdf;"
  xmlns:rdfs 	= "&rdfs;"
  xmlns:owl 	= "&owl;"
  xmlns:address = "&address;"
  xmlns:event	= "&event;"
  xmlns:person 	= "&person;"
  xmlns     	= "&person;"
  xml:base     	= "http://daml.umbc.edu/ontologies/ittalks/person"
>


<owl:Ontology rdf:about="">
  <owl:imports rdf:resource="http://daml.umbc.edu/ontologies/ittalks/event"/>
  <owl:imports rdf:resource="http://daml.umbc.edu/ontologies/ittalks/address"/>
  <rdfs:comment>
	A ontology that describe a person.
	The properties listed in this ontology is a subset of vCard.
	see also: http://www.ietf.org/rfc/rfc2426.txt.

	This ontology is created by 
		Li Ding -- http://www.csee.umbc.edu/~dingli1/,
	        Harry Chen -- http://www.csee.umbc.edu/~hchen4/,
		Lalana Kagal -- http://www.cs.umbc.edu/~lkagal1/, 
		Tim Finin -- http://www.csee.umbc.edu/~finin/. 
  </rdfs:comment>
  <owl:versionInfo>$Revision: 1.0 $</owl:versionInfo>
</owl:Ontology>


<owl:Class rdf:ID="Person">
  <rdfs:label>Person</rdfs:label>
  <rdfs:comment>OWL description of a person</rdfs:comment>
  <rdfs:subClassOf>
     <owl:Restriction>
	<owl:onProperty rdf:resource="#firstName" />
	<owl:cardinality>1</owl:cardinality>
     </owl:Restriction>
  </rdfs:subClassOf>
  <rdfs:subClassOf>
     <owl:Restriction>
	<owl:onProperty rdf:resource="#lastName" />
	<owl:cardinality>1</owl:cardinality>
     </owl:Restriction>
  </rdfs:subClassOf>
  <rdfs:subClassOf>
     <owl:Restriction>
	<owl:onProperty rdf:resource="#gender" />
	<owl:maxCardinality>1</owl:maxCardinality>
     </owl:Restriction>
  </rdfs:subClassOf>
  <rdfs:subClassOf>
     <owl:Restriction>
	<owl:onProperty rdf:resource="#birthday" />
	<owl:maxCardinality>1</owl:maxCardinality>
     </owl:Restriction>
  </rdfs:subClassOf>
</owl:Class>


<!-- identity -->
<owl:DatatypeProperty rdf:ID="firstName">
  <rdfs:domain rdf:resource="#Person"/>
  <rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:ID="lastName">
  <rdfs:domain rdf:resource="#Person"/>
  <rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty >

<owl:DatatypeProperty  rdf:ID="title">
  <rdfs:domain rdf:resource="#Person"/>
  <rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty >

<owl:DatatypeProperty rdf:ID="gender">
  <rdfs:domain rdf:resource="#Person"/>
  <rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty >

<owl:DatatypeProperty rdf:ID="birthday">
  <rdfs:domain rdf:resource="#Person"/>
  <rdfs:range rdf:resource="&event;Instant" />
</owl:DatatypeProperty >

<!-- delivery address -->
<owl:ObjectProperty  rdf:ID="homeAddress">
  <rdfs:domain rdf:resource="#Person"/>
  <rdfs:range rdf:resource="&address;Address" />
</owl:ObjectProperty >

<owl:ObjectProperty  rdf:ID="officeAddress">
  <rdfs:domain rdf:resource="#Person"/>
  <rdfs:range rdf:resource="&address;Address" />
</owl:ObjectProperty >



<!-- telecommunication address -->

<owl:DatatypeProperty rdf:ID="email">
  <rdfs:domain rdf:resource="#Person"/>
  <rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty >

<owl:DatatypeProperty  rdf:ID="homePhone">
  <rdfs:domain rdf:resource="#Person"/>
  <rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty >

<owl:DatatypeProperty  rdf:ID="officePhone">
  <rdfs:domain rdf:resource="#Person"/>
  <rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty >

<owl:DatatypeProperty  rdf:ID="cellPhone">
  <rdfs:domain rdf:resource="#Person"/>
  <rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty >

<owl:DatatypeProperty  rdf:ID="fax">
  <rdfs:domain rdf:resource="#Person"/>
  <rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty >

<owl:DatatypeProperty  rdf:ID="pager">
  <rdfs:domain rdf:resource="#Person"/>
  <rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty >


<!-- additional information -->

<owl:DatatypeProperty  rdf:ID="homepage">
  <rdfs:domain rdf:resource="#Person"/>
  <rdfs:range rdf:resource="&xsd;anyURI" />
</owl:DatatypeProperty >

</rdf:RDF>
