<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE rdf:RDF [
          <!ENTITY xsd		"http://www.w3.org/2001/XMLSchema#" >
	  <!ENTITY rdf		"http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
	  <!ENTITY rdfs		"http://www.w3.org/2000/01/rdf-schema#" >
	  <!ENTITY dc		"http://purl.org/dc/elements/1.1/" >
	  <!ENTITY owl		"http://www.w3.org/2002/07/owl#" >
	  <!ENTITY units	"http://visus.mit.edu/fontomri/0.01/units.owl#" >
	  <!ENTITY foaf 	"http://xmlns.com/foaf/0.1/#">
	  <!ENTITY ical 	"http://www.w3.org/2002/12/cal/#">
	  <!ENTITY dcterms 	"http://purl.org/dc/terms/">
	  <!ENTITY dctype 	"http://purl.org/dc/dcmitype/"> ]>

<rdf:RDF
 xmlns="http://co4.inrialpes.fr/align/Contest/224/onto.rdf#"
 xmlns:units	="&units;"
 xmlns:foaf	="&foaf;"
 xmlns:ical	="&ical;"
 xmlns:rdf	="&rdf;"
 xmlns:xsd	="&xsd;"
 xmlns:rdfs	="&rdfs;"
 xmlns:owl	="http://www.w3.org/2002/07/owl#"
 xmlns:wot	="http://xmlns.com/wot/0.1/"
 xmlns:dc	="&dc;"
 xmlns:dcterms	="&dcterms;"
 xmlns:dctype	="&dctype;">

<!-- This ontology describes bibliographic references.  -->
  
  <owl:Ontology rdf:about="">
    <dc:creator>Nick Knouf &lt;nknouf@mit.edu&gt;</dc:creator>
    <dc:contributor>Antoine Zimmermann &lt;antoine.zimmermann@inrialpes.fr&gt;</dc:contributor>
    <dc:contributor>Jérome Euzenat</dc:contributor>
    <dc:description>Bibliographic references in OWL</dc:description>
    <dc:date>01/06/2004</dc:date>
    <rdfs:label>Bibliographic references</rdfs:label>
    <rdfs:comment>Possible ontology to describe bibTeX entries.</rdfs:comment>
    <owl:versionInfo>$Id$</owl:versionInfo>
  </owl:Ontology>

<!-- This is due to the Species Validator. -->
<owl:Class rdf:about="&foaf;Person" />
<owl:Class rdf:about="&foaf;Organization" />
<owl:Class rdf:about="&rdf;List" />
<rdf:List rdf:about="&rdf;nil" />
<owl:ObjectProperty rdf:about="&rdf;first" />
<owl:ObjectProperty rdf:about="&rdf;rest" />
<owl:DatatypeProperty rdf:about="&dc;creator" />
<owl:DatatypeProperty rdf:about="&dc;contributor" />
<owl:DatatypeProperty rdf:about="&dc;description" />
<owl:DatatypeProperty rdf:about="&dc;date" />
<owl:DatatypeProperty rdf:about="http://co4.inrialpes.fr/align/Contest/224/onto-noinst.rdf#firstName" />
<owl:DatatypeProperty rdf:about="http://co4.inrialpes.fr/align/Contest/224/onto-noinst.rdf#lastName" />
<owl:DatatypeProperty rdf:about="http://co4.inrialpes.fr/align/Contest/224/onto-noinst.rdf#name" />
<owl:DatatypeProperty rdf:about="http://co4.inrialpes.fr/align/Contest/224/onto-noinst.rdf#shortName" />

  <!--
    ********  ENTRIES  ********
    
    Entries form the basis of a bibTeX database and are categorized by their type, such as a book, journal article, conference proceedings, etc.  Each entry type has a specific set of fields that are required in bibTeX; as a first pass, these fields will also be required in the OWL ontology.
    
    Note: all rdfs:comment values for the entries come from http://newton.ex.ac.uk/tex/pack/bibtex/btxdoc/node6.html.
  -->

<!-- ***Reference*** -->
  <owl:Class rdf:ID="Reference">
    <rdfs:label xml:lang="en">Reference</rdfs:label>
    <rdfs:comment xml:lang="en">Base class for all entries</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#date" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#title" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#author" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:Class rdf:ID="Article">
    <rdfs:subClassOf rdf:resource="#Part" />
    <rdfs:label xml:lang="en">Article</rdfs:label>
    <rdfs:comment xml:lang="en">An article from a journal or magazine.</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#author" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#pages" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#journal" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#date" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#date" />
	<owl:allValuesFrom rdf:resource="#Date" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#number" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#volume" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:Class rdf:ID="Book">
    <rdfs:subClassOf rdf:resource="#Reference" />
    <rdfs:label xml:lang="en">Book</rdfs:label>
    <rdfs:comment xml:lang="en">A book that may be a monograph or a collection of written texts.</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#title" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#volume" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#publisher" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#series" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#date" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#date" />
	<owl:allValuesFrom rdf:resource="#Date" />
      </owl:Restriction>
    </rdfs:subClassOf>
     <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#humanCreator" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#edition" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:Class rdf:ID="Monograph">
    <rdfs:subClassOf rdf:resource="#Book" />
    <rdfs:label xml:lang="en">Monograph</rdfs:label>
    <rdfs:comment xml:lang="en">A book that is a single entity, as opposed to a collection.</rdfs:comment>
  </owl:Class>

  <owl:Class rdf:ID="Collection">
    <rdfs:subClassOf rdf:resource="#Book" />
    <rdfs:label xml:lang="en">Collection</rdfs:label>
    <rdfs:comment xml:lang="en">A book that is collection of texts or articles.</rdfs:comment>
  </owl:Class>

  <owl:Class rdf:ID="Informal">
    <rdfs:subClassOf rdf:resource="#Reference" />
    <rdfs:label xml:lang="en">Informal</rdfs:label>
    <rdfs:comment xml:lang="en">A document that that was informally published or not published.</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#title" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:Class rdf:ID="Booklet">
    <rdfs:subClassOf rdf:resource="#Informal" />
    <rdfs:label xml:lang="en">Booklet</rdfs:label>
    <rdfs:comment xml:lang="en">A work that is printed and bound, but without a named publisher or sponsoring institution.</rdfs:comment>
  </owl:Class>

  <owl:Class rdf:ID="Part">
    <rdfs:subClassOf rdf:resource="#Reference" />
    <rdfs:label xml:lang="en">Part</rdfs:label>
    <rdfs:comment xml:lang="en">A part of something (either Book or Proceedings).</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#pages" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#title" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#isPartOf" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:Class rdf:ID="Chapter">
    <rdfs:subClassOf rdf:resource="#Part" />
    <rdfs:label xml:lang="en">BookPart</rdfs:label>
    <rdfs:comment xml:lang="en">A chapter (or section or whatever) of a book having its own title.</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#chapter" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#chapter" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:Class rdf:ID="InBook">
    <rdfs:subClassOf rdf:resource="#Part" />
    <rdfs:label xml:lang="en">InBook</rdfs:label>
    <rdfs:comment xml:lang="en">A subpart of a book given by a range of pages.</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
	<!-- author OR editor (given in the Book description) ??? -->
	<owl:onProperty rdf:resource="#author" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#pages" />
	<owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#book" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:Class rdf:ID="InCollection">
    <rdfs:subClassOf rdf:resource="#Part" />
    <rdfs:label xml:lang="en">Incollection</rdfs:label>
    <rdfs:comment xml:lang="en">A part of a book having its own title.</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#author" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#collection" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:Class rdf:ID="InProceedings"> <!-- Communication -->
    <rdfs:subClassOf rdf:resource="#Part" />
    <rdfs:label xml:lang="en">InProceedings</rdfs:label>
    <rdfs:comment xml:lang="en">An article in a conference proceedings.</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#author" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#proceedings" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:Class rdf:ID="LectureNotes">
    <rdfs:subClassOf rdf:resource="#Informal" />
    <rdfs:label xml:lang="en">LectureNotes</rdfs:label>
    <rdfs:comment xml:lang="en">Lecture notes.</rdfs:comment>
  </owl:Class>

  <owl:Class rdf:ID="Manual">
    <rdfs:subClassOf rdf:resource="#Informal" />
    <rdfs:label xml:lang="en">Manual</rdfs:label>
    <rdfs:comment xml:lang="en">Technical documentation.</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#organization" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#edition" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#title" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:Class rdf:ID="Academic">
    <rdfs:subClassOf rdf:resource="#Reference" />
    <rdfs:label xml:lang="en">Academic</rdfs:label>
    <rdfs:comment xml:lang="en">A Master's or PhD thesis.</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#author" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#title" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#school" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#date" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:Class rdf:ID="MastersThesis">
    <rdfs:subClassOf rdf:resource="#Academic" />
    <rdfs:label xml:lang="en">MastersThesis</rdfs:label>
    <rdfs:comment xml:lang="en">A Master's thesis.</rdfs:comment>
  </owl:Class>

  <owl:Class rdf:ID="PhdThesis">
    <rdfs:subClassOf rdf:resource="#Academic" />
    <rdfs:label xml:lang="en">PhdThesis</rdfs:label>
    <rdfs:comment xml:lang="en">A PhD thesis.</rdfs:comment>
  </owl:Class>

  <owl:Class rdf:ID="Misc">
    <rdfs:subClassOf rdf:resource="#Reference" />
    <rdfs:label xml:lang="en">Misc</rdfs:label>
    <rdfs:comment xml:lang="en">Use this type when nothing else fits.</rdfs:comment>
  </owl:Class>

  <owl:Class rdf:ID="Proceedings">
    <rdfs:subClassOf rdf:resource="#Book" />
    <rdfs:label xml:lang="en">Proceedings</rdfs:label>
    <rdfs:comment xml:lang="en">The proceedings of a conference.</rdfs:comment>
    <rdfs:comment xml:lang="en">A proceedings may be implicitly defined with an inproceedings.</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#event" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#event" />
	<owl:allValuesFrom rdf:resource="#Conference"/>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#editor" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#organization" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:Class rdf:ID="Report">
    <rdfs:subClassOf rdf:resource="#Reference" />
    <rdfs:label xml:lang="en">Report</rdfs:label>
    <rdfs:comment xml:lang="en">A report published by an institution with some explicit policy.</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#author" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#title" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#institution" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#date" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#date" />
	<owl:allValuesFrom rdf:resource="#Date" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#number" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:Class rdf:ID="TechReport">
    <rdfs:subClassOf rdf:resource="#Report" />
    <rdfs:label xml:lang="en">TechReport</rdfs:label>
    <rdfs:comment xml:lang="en">A report published by a school or other institution, usually numbered within a series.</rdfs:comment>
  </owl:Class>

  <owl:Class rdf:ID="Deliverable">
    <rdfs:subClassOf rdf:resource="#Report" />
    <rdfs:label xml:lang="en">Deliverable report</rdfs:label>
    <rdfs:comment xml:lang="en">A report delivered for accomplishing a contract.</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#contract" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:Class rdf:ID="Unpublished">
    <rdfs:subClassOf rdf:resource="#Informal" />
    <rdfs:label xml:lang="en">Unpublished</rdfs:label>
    <rdfs:comment xml:lang="en">A document having an author and title, but not formally published.</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#author" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#title" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#note" />
	<owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:Class rdf:ID="MotionPicture">
    <rdfs:subClassOf rdf:resource="#Reference" />
    <rdfs:label xml:lang="en">MotionPicture</rdfs:label>
    <rdfs:comment xml:lang="en">A film/movie/motion picture.</rdfs:comment>
  </owl:Class>

  <!-- SPECIAL CLASSES -->

  <!-- A journal is not a document nor an organization. -->
  <owl:Class rdf:ID="Journal">
    <rdfs:label xml:lang="en">Journal or magazine</rdfs:label>
    <rdfs:comment xml:lang="en">A periodical publication collecting works from different authors.</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#name" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
   <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#name" />
	<owl:allValuesFrom rdf:resource="&xsd;string"/>
      </owl:Restriction>
    </rdfs:subClassOf>
   <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#shortName" />
	<owl:allValuesFrom rdf:resource="&xsd;string"/>
      </owl:Restriction>
    </rdfs:subClassOf>
   <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#periodicity" />
	<owl:allValuesFrom rdf:resource="&xsd;string"/>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#publisher" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#series" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#firstPublished" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:Class rdf:ID="Conference">
    <rdfs:label xml:lang="en">The location of an event</rdfs:label>
    <rdfs:comment xml:lang="en">An event presenting work.</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#name" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#organizer" />
	<owl:allValuesFrom rdf:resource="#Institution"/>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#shortName" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#issue" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#location" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:Class rdf:ID="Address">
    <rdfs:label xml:lang="en">Address</rdfs:label>
    <rdfs:comment xml:lang="en">The street address of the location of some organization or event.</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#country" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#country" />
	<owl:allValuesFrom rdf:resource="&xsd;string"/>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#state" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#state" />
	<owl:allValuesFrom rdf:resource="&xsd;string"/>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#city" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#city" />
	<owl:allValuesFrom rdf:resource="&xsd;string"/>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:Class rdf:ID="Institution">
    <rdfs:subClassOf rdf:resource="&foaf;Organization"/>
    <rdfs:label xml:lang="en">Institution</rdfs:label>
    <rdfs:comment xml:lang="en">An institution.</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#name" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#shortName" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#address" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:Class rdf:ID="Publisher">
    <rdfs:subClassOf rdf:resource="#Institution" />
    <rdfs:label xml:lang="en">Publisher</rdfs:label>
    <rdfs:comment xml:lang="en">The publisher of books or journals.</rdfs:comment>
  </owl:Class>

  <!-- trouver une ontologie pour ca -->
  <owl:Class rdf:ID="School">
    <rdfs:subClassOf rdf:resource="#Institution" />
    <rdfs:label xml:lang="en">School</rdfs:label>
    <rdfs:comment xml:lang="en">A school or university.</rdfs:comment>
  </owl:Class>

  <!--owl:Class rdf:ID="Person">
    <rdfs:label xml:lang="en">Person</rdfs:label>
    <rdfs:comment xml:lang="en">A person.</rdfs:comment>
    <owl:equivalentClass rdf:resource="http://xmlns.com/foaf/0.1/Person" />
  </owl:Class-->

  <owl:Class rdf:ID="PersonList">
    <rdfs:subClassOf rdf:resource="&rdf;List"/>
    <rdfs:label xml:lang="en">Person list</rdfs:label>
    <rdfs:comment xml:lang="en">A list of persons.</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="&rdf;first" />        
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="&rdf;first" />
	<owl:allValuesFrom rdf:resource="&foaf;Person" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="&rdf;rest" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="&rdf;rest" />
	<owl:allValuesFrom>
	  <owl:Class>
	    <owl:unionOf rdf:parseType="Collection">
	      <owl:Class rdf:about="#PersonList" />
	      <owl:Class>
		<owl:oneOf rdf:parseType="Collection">
		  <rdf:List rdf:about="&rdf;nil" />
		</owl:oneOf>
	      </owl:Class>
	    </owl:unionOf>
	  </owl:Class>
	</owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

<!-- redefinition des propretes de rdf:List (pour jena)
  <owl:Class rdf:about="&rdf;List" />
  <owl:ObjectProperty rdf:about="&rdf;first">
    <rdfs:domain rdf:resource="&rdf;List" />
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:about="&rdf;rest">
    <rdfs:domain rdf:resource="&rdf;List" />
  </owl:ObjectProperty>
 -->
  <owl:Class rdf:ID="PageRange">
    <rdfs:label xml:lang="en">PageRange</rdfs:label>
    <rdfs:comment xml:lang="en">A range of pages.</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#startPage" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#endPage" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:Class rdf:ID="Date">
    <rdfs:label xml:lang="en">Date</rdfs:label>
    <rdfs:comment xml:lang="en">Date of a day which can be unknown (i.e., only the year is known or only the year and month). This is for overcoming the limits of XML-Schema for wich a date is not separable.</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#year" />
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#year" />
	<owl:allValuesFrom rdf:resource="&xsd;gYear"/>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#month" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#month" />
	<owl:allValuesFrom rdf:resource="&xsd;gMonth"/>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#day" />
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#day" />
	<owl:allValuesFrom rdf:resource="&xsd;gDay"/>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
    
  <!--
    ********  FIELDS  ********
    
    Fields can be considered the properties of a bibTeX entry.  Each entry type (described above) has a different set of required and optional fields.  The fields will all be datatype properties for the time being.

    Note: all rdfs:comment values for the entries come from http://newton.ex.ac.uk/tex/pack/bibtex/btxdoc/node7.html
  -->

  <owl:DatatypeProperty rdf:ID="key">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">key</rdfs:label>
    <rdfs:comment xml:lang="en">The key for a particular bibTeX entry. Note that the rdf:ID for each Reference instance could be the bibTeX key as well, possibly making this property redundant.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="reviewed">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">howReviewed</rdfs:label>
    <rdfs:comment xml:lang="en">The selection process overcome by the publication (full, none, poster, invited are possible values).</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:ObjectProperty rdf:ID="address">
    <rdfs:domain rdf:resource="&owl;Thing"/>
    <rdfs:range rdf:resource="#Address" />
    <rdfs:label xml:lang="en">address</rdfs:label>
    <rdfs:comment xml:lang="en">BibTeX note: Usually the address of the publisher or other type of institution. For major publishing houses, van Leunen recommends omitting the information entirely. For small publishers, on the other hand, you can help the reader by giving the complete address.</rdfs:comment>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="event">
    <rdfs:domain rdf:resource="#Proceedings"/>
    <rdfs:range rdf:resource="#Conference" />
    <rdfs:label xml:lang="en">event</rdfs:label>
    <rdfs:comment xml:lang="en">The event concerned with the proceedings.</rdfs:comment>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="organizer">
    <rdfs:domain rdf:resource="#Conference"/>
    <rdfs:range rdf:resource="&foaf;Organization" />
    <rdfs:label xml:lang="en">organizer</rdfs:label>
    <rdfs:comment xml:lang="en">The organization taking in charge a conference.</rdfs:comment>
  </owl:ObjectProperty>

  <owl:DatatypeProperty rdf:ID="annote">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">annote</rdfs:label>
    <rdfs:comment xml:lang="en">An annotation. It is not used by the standard bibliography styles, but may be used by others that produce an annotated bibliography.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="periodicity">
    <rdfs:domain rdf:resource="#Journal" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">Periodicity</rdfs:label>
    <rdfs:comment xml:lang="en">The periodicity of a serial publication (yearly, biannual, quarterly, monthly, bimonthly, weekly, biweekly, dayly).</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:ObjectProperty rdf:ID="contract">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="&owl;Thing" />
    <rdfs:label xml:lang="en">Contract</rdfs:label>
    <rdfs:comment xml:lang="en">The contract in which a particular reference has been made.</rdfs:comment>
  </owl:ObjectProperty>

  <owl:DatatypeProperty rdf:ID="firstPublished">
    <rdfs:domain rdf:resource="#Chapter" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">First published</rdfs:label>
    <rdfs:comment xml:lang="en">When the reference was first published.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="edition">
    <rdfs:domain>
      <owl:Class>
	<owl:unionOf rdf:parseType="Collection">
	  <owl:Class rdf:about="#Book" />
	  <owl:Class rdf:about="#Manual" />
	</owl:unionOf>
      </owl:Class>
    </rdfs:domain>
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">edition</rdfs:label>
    <rdfs:comment xml:lang="en">The edition of a book (for example, "Second"). This should be an ordinal, and should have the first letter capitalized, as shown here; the standard styles convert to lower case when necessary.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:ObjectProperty rdf:ID="humanCreator">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="#PersonList" />
    <rdfs:label xml:lang="en">human creator</rdfs:label>
    <rdfs:comment xml:lang="en">A generic human creator category, necessary in order to contain both author and editor.</rdfs:comment>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="author">
    <rdfs:subPropertyOf rdf:resource="#humanCreator" />
    <rdfs:label xml:lang="en">author</rdfs:label>
    <rdfs:comment xml:lang="en">The name(s) of the author(s), in the format described in the LaTeX book.</rdfs:comment>
    <dc:description>This is tricky due to the fact that order is not (generally) preserved in RDF documents.  The problem arises when you want to have an author list where the order is _extremely_ important.  How shall we do that?  Perhaps we want to define "hasPrimaryAuthor", "hasSecondaryAuthor", "hasTertiaryAuthor", and "hasRemainingAuthors", or something of that sort.  This will be have to given more thought.</dc:description>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="editor">
    <rdfs:subPropertyOf rdf:resource="#humanCreator" />
    <rdfs:label xml:lang="en">editor</rdfs:label>
    <rdfs:comment xml:lang="en">The list of persons who edited or coordinated a reference.</rdfs:comment>
    <dc:description>Again, the same issues that arose with the "author" property apply here.</dc:description>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="directors">
    <rdfs:subPropertyOf rdf:resource="#humanCreator" />
    <rdfs:domain rdf:resource="#MotionPicture" />
    <rdfs:label xml:lang="en">directors</rdfs:label>
    <rdfs:comment xml:lang="en">The list of persons who directed the motion picture.</rdfs:comment>
  </owl:ObjectProperty>

  <owl:DatatypeProperty rdf:ID="howPublished">
    <rdfs:domain>
      <owl:Class>
	<owl:unionOf rdf:parseType="Collection">
	  <owl:Class rdf:about="#Misc" />
	  <owl:Class rdf:about="#Booklet" />
	</owl:unionOf>
      </owl:Class>
    </rdfs:domain>
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">published</rdfs:label>
    <rdfs:comment xml:lang="en">How something strange has been published. The first word should be capitalized.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:ObjectProperty rdf:ID="institution">
    <rdfs:domain rdf:resource="#TechReport" />
    <rdfs:range rdf:resource="#Institution" />
    <rdfs:label xml:lang="en">institution</rdfs:label>
    <rdfs:comment xml:lang="en">The sponsoring institution of a technical report.</rdfs:comment>
    <dc:description>This could be an object property that refers to an external set of institution instances.</dc:description>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="isPartOf">
    <rdfs:domain rdf:resource="#Part" />
    <rdfs:label xml:lang="en">is part of</rdfs:label>
    <rdf:type rdf:resource="&owl;TransitiveProperty" />
    <rdfs:comment xml:lang="en">The document that contains a text or article.</rdfs:comment>
    <dc:description>This is an object property that refers to another entry an external objects.</dc:description>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="journal">
    <rdfs:domain rdf:resource="#Article" />
    <rdfs:range rdf:resource="#Journal" />
    <rdfs:subPropertyOf rdf:resource="#isPartOf" />
    <rdfs:label xml:lang="en">journal</rdfs:label>
    <rdfs:comment xml:lang="en">The journal in which an article is published.</rdfs:comment>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="book">
    <rdfs:domain rdf:resource="#InBook" />
    <rdfs:range rdf:resource="#Monograph" />
    <rdfs:subPropertyOf rdf:resource="#isPartOf" />
    <rdfs:label xml:lang="en">book</rdfs:label>
    <rdfs:comment xml:lang="en">A reference to the book that contains the entry. The entry must be an InBook end the book a Monograph.</rdfs:comment>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="collection">
    <rdfs:domain rdf:resource="#InCollection" />
    <rdfs:range rdf:resource="#Collection" />
    <rdfs:subPropertyOf rdf:resource="#isPartOf" />
    <rdfs:label xml:lang="en">collection</rdfs:label>
    <rdfs:comment xml:lang="en">A reference to the book that contains the entry. The entry must be an Inbook or Incollection.</rdfs:comment>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="proceedings">
    <rdfs:domain rdf:resource="#InProceedings" />
    <rdfs:range rdf:resource="#Proceedings" />
    <rdfs:subPropertyOf rdf:resource="#isPartOf" />
    <rdfs:label xml:lang="en">proceedings</rdfs:label>
    <rdfs:comment xml:lang="en">A reference to the proceedings in which the entry appears. The entry must be an InProceedings.</rdfs:comment>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="date">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="#Date" />
    <rdfs:label xml:lang="en">date</rdfs:label>
    <rdfs:comment xml:lang="en">The date when the work was published or, for an unpublished work, in which it was written. This date can be incomplete (i.e., no known day or month) but must contain a year.</rdfs:comment>
  </owl:ObjectProperty>

  <owl:DatatypeProperty rdf:ID="note">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">note</rdfs:label>
    <rdfs:comment xml:lang="en">Any additional information that can help the reader. The first word should be capitalized.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:ObjectProperty rdf:ID="organization">
    <rdfs:domain>
      <owl:Class>
	<owl:unionOf rdf:parseType="Collection">
	  <owl:Class rdf:about="#Proceedings" />
	  <owl:Class rdf:about="#Manual" />
	</owl:unionOf>
      </owl:Class>
    </rdfs:domain>
    <rdfs:range rdf:resource="&foaf;Organization" />
    <rdfs:label xml:lang="en">organization</rdfs:label>
    <rdfs:comment xml:lang="en">The organization that sponsors a conference or that publishes a manual.</rdfs:comment>
    <dc:description>This could be an object property that refers to an external set of organization instances.</dc:description>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="publisher">
    <rdfs:domain>
      <owl:Class>
	<owl:unionOf rdf:parseType="Collection">
	  <owl:Class rdf:about="#Reference" />
	  <owl:Class rdf:about="#Journal" />
	</owl:unionOf>
      </owl:Class>
      </rdfs:domain>
    <rdfs:range rdf:resource="#Publisher" />
    <rdfs:label xml:lang="en">publisher</rdfs:label>
    <rdfs:comment xml:lang="en">The publisher's name.</rdfs:comment>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="school">
    <rdfs:domain>
      <owl:Class>
	<owl:unionOf rdf:parseType="Collection">
	  <owl:Class rdf:about="#Academic" />
	  <owl:Class rdf:about="#LectureNotes" />
	</owl:unionOf>
      </owl:Class>
    </rdfs:domain>
    <rdfs:range rdf:resource="#School" />
    <rdfs:label xml:lang="en">school</rdfs:label>
    <rdfs:comment xml:lang="en">The name of the school where a thesis was written.</rdfs:comment>
    <dc:description>As with "publisher", this could be an ObjectProperty that refers to an external set of school instances.</dc:description>
  </owl:ObjectProperty>

  <owl:DatatypeProperty rdf:ID="series">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">series</rdfs:label>
    <rdfs:comment xml:lang="en">The name of a series or set of books. When citing an entire book, the the title field gives its title and an optional series field gives the name of a series or multi-volume set in which the book is published.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="title">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">title</rdfs:label>
    <rdfs:comment xml:lang="en">The work's title, typed as explained in the LaTeX book.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="type">
    <rdfs:domain>
      <owl:Class>
	<owl:unionOf rdf:parseType="Collection">
	  <owl:Class rdf:about="#Chapter" />
	  <owl:Class rdf:about="#TechReport" />
	  <owl:Class rdf:about="#Academic" />
	</owl:unionOf>
      </owl:Class>
    </rdfs:domain>
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">type</rdfs:label>
    <rdfs:comment xml:lang="en">The type of a technical report (for example, "Research Note").</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="affiliation">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">affiliation</rdfs:label>
    <rdfs:comment xml:lang="en">The authors affiliation.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="abstract">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">abstract</rdfs:label>
    <rdfs:comment xml:lang="en">An abstract of the work.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="contents">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">ontents</rdfs:label>
    <rdfs:comment xml:lang="en">A Table of Contents.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="copyright">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">copyright</rdfs:label>
    <rdfs:comment xml:lang="en">Copyright information.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="isbn">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">ISBN</rdfs:label>
    <rdfs:comment xml:lang="en">The International Standard Book Number.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="issn">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">ISSN</rdfs:label>
    <rdfs:comment xml:lang="en">The International Standard Serial Number. Used to identify a journal.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="keywords">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">keywords</rdfs:label>
    <rdfs:comment xml:lang="en">Key words used for searching or possibly for annotation.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="language">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="&xsd;language" />
    <rdfs:label xml:lang="en">language</rdfs:label>
    <rdfs:comment xml:lang="en">The language in which the referenced publication is written or performed.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:ObjectProperty rdf:ID="location">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="#Address" />
    <rdfs:label xml:lang="en">location</rdfs:label>
    <rdfs:comment xml:lang="en">A location associated with the entry, such as the city in which a conference took place.</rdfs:comment>
  </owl:ObjectProperty>

  <owl:DatatypeProperty rdf:ID="lccn">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">LCCN</rdfs:label>
    <rdfs:comment xml:lang="en">The Library of Congress Call Number.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="mrNumber">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">MR number</rdfs:label>
    <rdfs:comment xml:lang="en">The Mathematical Reviews number.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="price">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">price</rdfs:label>
    <rdfs:comment xml:lang="en">The price of the document.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="size">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">size</rdfs:label>
    <rdfs:comment xml:lang="en">The physical dimensions of a work.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="url">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">URL</rdfs:label>
    <rdfs:comment xml:lang="en">The WWW Universal Resource Locator that points to the item being referenced. This often is used for technical reports to point to the ftp or web site where the postscript source of the report is located.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="name">
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">The name of an entity.</rdfs:label>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="shortName">
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">The name of an entity.</rdfs:label>
  </owl:DatatypeProperty>

  <!--
    ********  "META" PROPERTIES  ********
    
    We define here some meta properties that the fields above may use as superproperties.  This is necessary in order to define cardinality constraints properly.
  -->

  <owl:DatatypeProperty rdf:ID="chapter">
    <rdfs:domain rdf:resource="#Part" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">chapter</rdfs:label>
    <rdfs:comment xml:lang="en">A chapter (or section or whatever) number.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:ObjectProperty rdf:ID="pages">
    <rdfs:domain rdf:resource="#Part" />
    <rdfs:range rdf:resource="#PageRange" />
    <rdfs:label xml:lang="en">pages</rdfs:label>
    <rdfs:comment xml:lang="en">A range of page, with an upper and lower limit.</rdfs:comment>
  </owl:ObjectProperty>

  <owl:DatatypeProperty rdf:ID="numberOrVolume">
    <rdfs:domain rdf:resource="#Reference"/>
    <rdfs:label xml:lang="en">volume or number</rdfs:label>
    <rdfs:comment xml:lang="en">The number of a journal, magazine, technical report, or of a work in a series. An issue of a journal or magazine is usually identified by its volume and number; the organization that issues a technical report usually gives it a number; and sometimes books are given numbers in a named series.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="number">
    <rdfs:domain rdf:resource="#Reference" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:subPropertyOf rdf:resource="#numberOrVolume" />
    <rdfs:label xml:lang="en">number</rdfs:label>
    <rdfs:comment xml:lang="en">The number of a journal, magazine, technical report, or of a work in a series. An issue of a journal or magazine is usually identified by its volume and number; the organization that issues a technical report usually gives it a number; and sometimes books are given numbers in a named series.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="issue">
    <rdfs:domain>
      <owl:Class>
        <owl:unionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#Reference"/>
          <owl:Class rdf:about="#Conference"/>
        </owl:unionOf>
      </owl:Class>
    </rdfs:domain>
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:subPropertyOf rdf:resource="#numberOrVolume" />
    <rdfs:label xml:lang="en">Issue</rdfs:label>
    <rdfs:comment xml:lang="en">The issue of a conference.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="volume">
    <rdfs:subPropertyOf rdf:resource="#numberOrVolume" />
    <rdfs:domain rdf:resource="#Reference"/>
    <rdfs:range rdf:resource="&xsd;nonNegativeInteger" />
    <rdfs:label xml:lang="en">volume</rdfs:label>
    <rdfs:comment xml:lang="en">The volume of a journal or multivolume book.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="year">
    <rdfs:domain rdf:resource="#Date" />
    <rdfs:range rdf:resource="&xsd;gYear" />
    <rdfs:label xml:lang="en">year</rdfs:label>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="month">
    <rdfs:domain rdf:resource="#Date" />
    <rdfs:range rdf:resource="&xsd;gMonth" />
    <rdfs:label xml:lang="en">month</rdfs:label>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="day">
    <rdfs:domain rdf:resource="#Date" />
    <rdfs:range rdf:resource="&xsd;gDay" />
    <rdfs:label xml:lang="en">day</rdfs:label>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="city">
    <rdfs:domain rdf:resource="#Address" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">city</rdfs:label>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="state">
    <rdfs:domain rdf:resource="#Address" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:label xml:lang="en">state</rdfs:label>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="country">
    <rdfs:domain rdf:resource="#Address" />
    <rdfs:range rdf:resource="&xsd;string" />
    <rdfs:comment xml:lang="en">Usually in ISO format</rdfs:comment>
    <rdfs:label xml:lang="en">country</rdfs:label>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="startPage">
    <rdfs:domain rdf:resource="#PageRange" />
    <rdfs:range rdf:resource="&xsd;nonNegativeInteger" />
    <rdfs:label xml:lang="en">start page</rdfs:label>
    <rdfs:comment xml:lang="en">The beginning of a range of pages.</rdfs:comment>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="endPage">
    <rdfs:domain rdf:resource="#PageRange" />
    <rdfs:range rdf:resource="&xsd;nonNegativeInteger" />
    <rdfs:label xml:lang="en">end page</rdfs:label>
    <rdfs:comment xml:lang="en">The end of a range of pages.</rdfs:comment>
  </owl:DatatypeProperty>


</rdf:RDF>
