<?xml version="1.0" encoding="WINDOWS-1252" ?>
<rdf:RDF
      xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
      xmlns:dc="http://purl.org/dc/elements/1.0/"
      xmlns:owl="http://www.w3.org/2002/07/owl#"
      xmlns="http://www.cs.wayne.edu/~shiyong/ontology/FamilyAlbum.owl#"
      xmlns:xsd ="http://www.w3.org/2001/XMLSchema#"
      xml:base="http://www.cs.wayne.edu/~shiyong/ontology/FamilyAlbum.owl"
>

<owl:Ontology rdf:about="">
      <owl:versionInfo>$Id: FamilyAlbum.owl, v 1.0 12/05/2003, 09:54PM, Shiyong Lu$</owl:versionInfo>
      <imports rdf:resource="http://www.w3.org/2002/07/owl#" />
      <dc:title>Family Album Ontology</dc:title>
      <dc:creator>Shiyong Lu</dc:creator>
      <dc:subject>OWL; Family Album; Photo</dc:subject>
      <dc:description>An example of OWL ontology in the domain of family album</dc:description>
      <dc:publisher>Wayne State University</dc:publisher>
      <dc:date>2003-12-5</dc:date>
      <dc:format>text/xml</dc:format>
      <dc:language>en</dc:language>
      <rdfs:comment>
	      12/7/2003. Class PhotoObject was added. Spatial relationships between
	      PhotoObject were introduced. 
      </rdfs:comment>
      <rdfs:comment>
	      12/7/2003. A few bugs were fixed by Arthem Chebotko. The example can
	      be read and displayed by MultimediaSpace!
      </rdfs:comment>
      <rdfs:comment>
	      12/5/2003. The example was first created by Dr. Shiyong Lu. 
	      Any modification and further development of the ontology 
	      should be well commented here.
      </rdfs:comment>
      <rdfs:label>Family Album Ontology</rdfs:label>
</owl:Ontology>

<owl:Class rdf:ID="Person">
      <rdfs:label>Person</rdfs:label>
      <rdfs:comment>The class of all person in a family album</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="Photo">
      <rdfs:label>Photo</rdfs:label>
      <rdfs:comment>The class of all photos in a family album</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="SoloPhoto">
      <rdfs:label>SoloPhoto</rdfs:label>
      <rdfs:comment>The class of photos in which there is only one person.</rdfs:comment>
      <rdfs:subClassOf rdf:resource="#Photo"/>
</owl:Class>

<owl:Class rdf:ID="DualPhoto">
      <rdfs:label>DualPhoto</rdfs:label>
      <rdfs:comment>The class of photos in which there are two person</rdfs:comment>
      <rdfs:subClassOf rdf:resource="#Photo"/>
</owl:Class>

<owl:Class rdf:ID="EventPhoto">
      <rdfs:label>EventPhoto</rdfs:label>
      <rdfs:comment>Photos taken in some special events such as wedding, graduation, etc.  </rdfs:comment>
      <rdfs:subClassOf rdf:resource="#Photo"/>
</owl:Class>

<owl:Class rdf:ID="WeddingPhoto">
      <rdfs:label>WeddingPhoto</rdfs:label>
      <rdfs:comment>Wedding photos</rdfs:comment>
      <rdfs:subClassOf rdf:resource="#EventPhoto"/>
</owl:Class>

<owl:Class rdf:ID="BirthdayPhoto">
      <rdfs:label>BirthdayPhoto</rdfs:label>
      <rdfs:comment>Photos taken in a birthy party</rdfs:comment>
      <rdfs:subClassOf rdf:resource="#EventPhoto"/>
</owl:Class>

<owl:Class rdf:ID="GraduationPhoto">
      <rdfs:label>GraduationPhoto</rdfs:label>
      <rdfs:comment>Photos taken when one is graduated from school.</rdfs:comment>
      <rdfs:subClassOf rdf:resource="#EventPhoto"/>
</owl:Class>

<owl:Class rdf:ID="VacationPhoto">
      <rdfs:label>VacationPhoto</rdfs:label>
      <rdfs:comment>Photos taken during a vacation</rdfs:comment>
      <rdfs:subClassOf rdf:resource="#Photo"/>
</owl:Class>

<owl:Class rdf:ID="LandscapePhoto">
      <rdfs:label>LandscapePhoto</rdfs:label>
      <rdfs:comment>Landscape photos in which there might be no persons.</rdfs:comment>
      <rdfs:subClassOf rdf:resource="#Photo"/>
</owl:Class>

<owl:Class rdf:ID="PhotoObject">
	<rdfs:label>PhotoObject</rdfs:label>
	<rdfs:comment>All the objects that can appear in a photo such as actors (persons), buildings, roads, trees, etc.
	</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="Actor">
      <rdfs:label>Actor</rdfs:label>
      <rdfs:comment>An actor is a snapshot of a particular person in a particular picture, it is the most
	      important PhotoObject.</rdfs:comment>
      <rdfs:subClassOf rdf:resource="#PhotoObject"/>
      <rdfs:subClassOf rdf:resource="#Person"/>
</owl:Class>

<owl:Class rdf:ID="Action">
      <rdfs:label>Action</rdfs:label>
      <rdfs:comment>An action is the move, emotion or behavior that an actor alone can take.  </rdfs:comment>
      <owl:oneOf rdf:parseType="Collection">
          <owl:Thing rdf:about="#Smile"/>
          <owl:Thing rdf:about="#Cry"/>
          <owl:Thing rdf:about="#Laugh"/>
          <owl:Thing rdf:about="#Stand"/>
          <owl:Thing rdf:about="#Sit"/>
          <owl:Thing rdf:about="#Walk"/>
      </owl:oneOf>
</owl:Class>

<owl:Class rdf:ID="Gender">
      <rdfs:label>Gender</rdfs:label>
      <rdfs:comment>The gender of a person is either Male or Female.</rdfs:comment>
      <owl:oneOf rdf:parseType="Collection">
          <owl:Thing rdf:about="#Male"/>
          <owl:Thing rdf:about="#Female"/>
      </owl:oneOf>
</owl:Class>

<owl:ObjectProperty rdf:ID="hasAction">
      <rdfs:comment>An actor can take zero or more actions in a picture.</rdfs:comment>
      <rdfs:domain rdf:resource="#Actor"/>
      <rdfs:range  rdf:resource="#Action"/>
</owl:ObjectProperty>

<owl:ObjectProperty rdf:ID="hasActor">
      <rdfs:comment>Each photo has zero or many actors</rdfs:comment>
      <rdfs:domain rdf:resource="#Photo"/>
      <rdfs:range rdf:resource="#Actor"/>
</owl:ObjectProperty>


<owl:ObjectProperty rdf:ID="hasGender">
      <rdfs:comment>A person has a gender of Male or Female</rdfs:comment>
      <rdfs:domain rdf:resource="#Person"/>
      <rdfs:range rdf:resource="#Gender"/>
</owl:ObjectProperty>

<owl:ObjectProperty rdf:ID="Hug">
      <rdfs:comment>Two actor hug each other</rdfs:comment>
      <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#SymmetricProperty" />
      <rdfs:domain rdf:resource="#Actor"/>
      <rdfs:range rdf:resource="#Actor"/>
</owl:ObjectProperty>

<owl:ObjectProperty rdf:ID="ShakeHandsWith">
      <rdfs:comment>Two actors shake hands with each other. </rdfs:comment>
      <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#SymmetricProperty" />
      <rdfs:domain rdf:resource="#Actor"/>
      <rdfs:range rdf:resource="#Actor"/>
</owl:ObjectProperty>

<owl:ObjectProperty rdf:ID="IsSnapshotFor">
      <rdfs:comment>Each actor is a snapshot of a unique person. </rdfs:comment>
      <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty" />
      <owl:inverseOf rdf:resource="#HasSnapshot"/>
      <rdfs:domain rdf:resource="#Actor" />
      <rdfs:range rdf:resource="#Person" />
</owl:ObjectProperty>

<owl:ObjectProperty rdf:ID="HasSnapshot">
      <rdfs:comment>Each person has many snapshots (actors). </rdfs:comment>
      <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty" />
      <owl:inverseOf rdf:resource="#IsSnapshotFor"/>
      <rdfs:domain rdf:resource="#Person" />
      <rdfs:range rdf:resource="#Actor" />
</owl:ObjectProperty>

<owl:ObjectProperty rdf:ID="Front">
      <rdfs:comment>A photo object is in front of another photo object</rdfs:comment>
      <owl:inverseOf rdf:resource="#Behind"/>
      <rdfs:domain rdf:resource="#PhotoObject" />
      <rdfs:range rdf:resource="#PhotoObject" />
</owl:ObjectProperty>

<owl:ObjectProperty rdf:ID="Behind">
      <rdfs:comment>A photo object is behind another photo object</rdfs:comment>
      <owl:inverseOf rdf:resource="#Front"/>
      <rdfs:domain rdf:resource="#PhotoObject" />
      <rdfs:range rdf:resource="#PhotoObject" />
</owl:ObjectProperty>

<owl:ObjectProperty rdf:ID="Left">
      <rdfs:comment>A photo object is on the left of another photo object</rdfs:comment>
      <owl:inverseOf rdf:resource="#Right"/>
      <rdfs:domain rdf:resource="#PhotoObject" />
      <rdfs:range rdf:resource="#PhotoObject" />
</owl:ObjectProperty>

<owl:ObjectProperty rdf:ID="Right">
      <rdfs:comment>A photo object is on the right of another photo object</rdfs:comment>
      <owl:inverseOf rdf:resource="#Left"/>
      <rdfs:domain rdf:resource="#PhotoObject" />
      <rdfs:range rdf:resource="#PhotoObject" />
</owl:ObjectProperty>

<owl:ObjectProperty rdf:ID="Above">
      <rdfs:comment>A photo object is above another photo object</rdfs:comment>
      <owl:inverseOf rdf:resource="#Below"/>
      <rdfs:domain rdf:resource="#PhotoObject" />
      <rdfs:range rdf:resource="#PhotoObject" />
</owl:ObjectProperty>

<owl:ObjectProperty rdf:ID="Below">
      <rdfs:comment>A photo object is above another photo object</rdfs:comment>
      <owl:inverseOf rdf:resource="#Above"/>
      <rdfs:domain rdf:resource="#PhotoObject" />
      <rdfs:range rdf:resource="#PhotoObject" />
</owl:ObjectProperty>



<owl:DatatypeProperty rdf:ID="FirstName">
      <rdfs:comment>Each person has a first name</rdfs:comment>
      <rdfs:domain rdf:resource="#Person" />
      <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string" />
</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:ID="LastName">
      <owl:equivalentProperty rdf:resource="#FamilyName"/>
      <rdfs:comment>Each person has a last/family name</rdfs:comment>
      <rdfs:domain rdf:resource="#Person" />
      <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string" />
</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:ID="FamilyName">
      <owl:equivalentProperty rdf:resource="#LastName"/>
      <rdfs:comment>Each person has a family/last name</rdfs:comment>
      <rdfs:domain rdf:resource="#Person" />
      <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string" />
</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:ID="PhotoPlace">
      <rdfs:comment>The place where a photo is taken.</rdfs:comment>
      <rdfs:domain rdf:resource="#Photo"/>
      <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:ID="PhotoDate">
      <rdfs:comment>The date that a photo is taken.</rdfs:comment>
      <rdfs:domain rdf:resource="#Photo"/>
      <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#date"/>
</owl:DatatypeProperty>

<owl:Class rdf:about="#Person">
	<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:Restriction>
	</rdfs:subClassOf>
</owl:Class>

<owl:Class rdf:about="#Action">
	<owl:equivalentClass rdf:resource="#Actor"/>
</owl:Class>

<owl:Class rdf:about="#GraduationPhoto">
	<owl:disjointWith rdf:resource="#WeddingPhoto"/>
</owl:Class>

<owl:Class rdf:about="#EventPhoto">
  <owl:unionOf rdf:parseType="Collection">
     <owl:Thing rdf:about="#SoloPhoto" />
     <owl:Thing rdf:about="#DualPhoto" />
  </owl:unionOf>
</owl:Class>

</rdf:RDF>
