<?xml version="1.0"?>
<?xml-stylesheet href="http://www.w3.org/2002/06/rdfs2html.xsl" type="application/xml"?>
<!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 obordfs  "http://www.xspan.org/obo.rdfs#" >
   ]>

<rdf:RDF
  xmlns     ="&obordfs;"
  xml:base  ="http://www.xspan.org/obo.rdfs#" 
  xmlns:rdf ="&rdf;"
  xmlns:rdfs="&rdfs;"
  xmlns:obordfs="&obordfs;"
>

<!--  
      Define the GO RDF vocabulary to make it valid as an RDFS specification.
      All GO elements/attributes are defined as instances of Property.
      The class term is introduced for GO terms, as a Class and subclass of Class.
      is_a becomes subClassOf, but no commitment is made to the meaning of part_of

      This format is used by the COBrA tool, see: http://www.xspan.org/

      Author: Stuart Aitken  stuart@aiai.ed.ac.uk 
      AIAI, University of Edinburgh Thu Nov 20 12:25:00 GMT 2003 

      -->

<!-- term is a subclass of Class -->

  <rdfs:Class rdf:ID="term">
    <rdfs:subClassOf rdf:resource="&rdfs;Class"/>
    <rdfs:comment> term - the class of all GO terms, a subclass of rdfs:Class
    </rdfs:comment>    
  </rdfs:Class>

<!-- the elements of the dtd are binary relations (* or ?) from term to rdfs:Literals

-->

  <rdf:Description rdf:ID="part_of">
    <rdf:type rdf:resource="&rdf;Property"/>
    <rdfs:domain rdf:resource="&obordfs;term"/>
    <rdfs:range rdf:resource="&obordfs;term"/>
    <rdfs:comment> (part_of Part Whole) 
    </rdfs:comment>    
  </rdf:Description>


  <rdf:Description rdf:ID="descends">
    <rdf:type rdf:resource="&rdf;Property"/>
    <rdfs:domain rdf:resource="&obordfs;term"/>
    <rdfs:range rdf:resource="&obordfs;term"/>
    <rdfs:comment> (descends Earlier Later)
    </rdfs:comment>    
  </rdf:Description>

  <rdf:Description rdf:ID="accession">
    <rdf:type rdf:resource="&rdf;Property"/>
    <rdfs:domain rdf:resource="&obordfs;term"/> 
    <rdfs:range rdf:resource="&rdfs;Literal"/>
    <rdfs:comment> accession is (#PCDATA) in the dtd
    </rdfs:comment>  
  </rdf:Description>

  <rdf:Description rdf:ID="name">
    <rdf:type rdf:resource="&rdf;Property"/>
    <rdfs:domain rdf:resource="&obordfs;term"/>
    <rdfs:range rdf:resource="&rdfs;Literal"/>
    <rdfs:comment> name is (#PCDATA) in the dtd
    </rdfs:comment>  
  </rdf:Description>

  <rdf:Description rdf:ID="synonym">
    <rdf:type rdf:resource="&rdf;Property"/>
    <rdfs:domain rdf:resource="&obordfs;term"/>
    <rdfs:range rdf:resource="&rdfs;Literal"/>
    <rdfs:comment> synonym is (#PCDATA) in the dtd
    </rdfs:comment>  
  </rdf:Description>

  <rdf:Description rdf:ID="definition">
    <rdf:type rdf:resource="&rdf;Property"/>
    <rdfs:domain rdf:resource="&obordfs;term"/>
    <rdfs:range rdf:resource="&obordfs;term"/>
    <rdfs:comment> definition is (#PCDATA) in the dtd
    </rdfs:comment>  
  </rdf:Description>

  <rdf:Description rdf:ID="n_associations">
    <rdf:type rdf:resource="&rdf;Property"/>
    <rdfs:domain rdf:resource="&obordfs;term"/>
    <rdfs:range rdf:resource="&rdfs;Literal"/>
    <rdfs:comment>  n_associations is (wrongly) in !ATTLIST of term in the dtd
    </rdfs:comment>  
  </rdf:Description>

  <rdf:Description rdf:ID="association">
    <rdf:type rdf:resource="&rdf;Property"/>
    <rdfs:domain rdf:resource="&obordfs;term"/>
    <rdfs:comment>  association has two components   go:evidence go:gene_product
    </rdfs:comment>  
  </rdf:Description>

  <rdf:Description rdf:ID="dbxref">
    <rdf:type rdf:resource="&rdf;Property"/>
    <rdfs:domain rdf:resource="&obordfs;term"/>
    <rdfs:comment>  dbxref has two components   go:database_symbol, go:reference
    </rdfs:comment>  
  </rdf:Description>

  <rdf:Description rdf:ID="evidence">
    <rdf:type rdf:resource="&rdf;Property"/>
    <rdfs:range rdf:resource="&rdfs;Literal"/>
    <rdfs:comment>  evidence is linked via a blank node from association
    </rdfs:comment>  
  </rdf:Description>

  <rdf:Description rdf:ID="gene_product">
    <rdf:type rdf:resource="&rdf;Property"/>
    <rdfs:range rdf:resource="&rdfs;Literal"/>
    <rdfs:comment>  gene_product is linked via a blank node from association
    </rdfs:comment>  
  </rdf:Description>

  <rdf:Description rdf:ID="database_symbol">
    <rdf:type rdf:resource="&rdf;Property"/>
    <rdfs:range rdf:resource="&rdfs;Literal"/>
    <rdfs:comment>  database_symbol is linked via a blank node from dbxref
    </rdfs:comment>   
  </rdf:Description>

  <rdf:Description rdf:ID="reference">
    <rdf:type rdf:resource="&rdf;Property"/>
    <rdfs:range rdf:resource="&rdfs;Literal"/>
    <rdfs:comment>  reference is linked via a blank node from dbxref
    </rdfs:comment>  
  </rdf:Description>

</rdf:RDF>
