<?xml version="1.0" encoding="UTF-8"?>

<!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 owl      "http://www.w3.org/2002/07/owl#">
    <!ENTITY xsd      "http://www.w3.org/2001/XMLSchema#">
    <!ENTITY sswap    "http://sswapmeet.sswap.info/sswap/">
    <!ENTITY provider "http://sswap.gramene.org/vpin/">
    <!ENTITY qtl      "http://sswapmeet.sswap.info/qtl/">
    <!ENTITY trait    "http://sswapmeet.sswap.info/trait/">
    <!ENTITY tax      "http://sswapmeet.sswap.info/NCBITaxonomyRecord/">
    <!ENTITY taxa     "http://sswapmeet.sswap.info/taxa/">
    <!ENTITY map      "http://sswapmeet.sswap.info/map/">
    <!ENTITY oboInOwl "http://sswapmeet.sswap.info/oboInOwl/">
    <!ENTITY grqtl    "http://sswap.gramene.org/vpin/ontologies/qtl/">
]>

<rdf:RDF xmlns:rdf      = "&rdf;"
         xmlns:rdfs     = "&rdfs;"
         xmlns:owl      = "&owl;"
         xmlns:xsd      = "&xsd;"
         xmlns:sswap    = "&sswap;"
         xmlns:provider = "&provider;"
         xmlns:trait    = "&trait;"
         xmlns:tax      = "&tax;"
         xmlns:taxa     = "&taxa;"
         xmlns:qtl      = "&qtl;"
         xmlns:map      = "&map;"
         xmlns:oboInOwl = "&oboInOwl;"
         xmlns:grqtl    = "&grqtl;">

    <!-- OWL-DL requires that all terms are defined -->

    <owl:Ontology rdf:about="&sswap;owlOntology">

        <owl:imports rdf:resource="&sswap;owlOntology"/>
           
        <owl:imports>
       	    <owl:Ontology rdf:about="&oboInOwl;owlImports"/>
        </owl:imports>

	<owl:imports>
            <owl:Ontology rdf:about="&qtl;owlImports"/>
        </owl:imports>

        <owl:imports>
	    <owl:Ontology rdf:about="&trait;owlImports"/>
	</owl:imports>

        <owl:imports>
       	    <owl:Ontology rdf:about="&tax;owlImports"/>
        </owl:imports>

        <owl:imports>
       	    <owl:Ontology rdf:about="&map;owlImports"/>
        </owl:imports>

        <owl:imports>
            <owl:Ontology rdf:about="&grqtl;owlImports"/>
        </owl:imports>

	<!--
        <owl:imports>
            <owl:Ontology rdf:about="&map;name"/>
       	</owl:imports>

        <owl:imports>
	    <owl:Ontology rdf:about="&map;startPosition"/>
	</owl:imports>

        <owl:imports>
	    <owl:Ontology rdf:about="&map;endPosition"/>
	</owl:imports>

	<owl:imports>
	    <owl:Ontology rdf:about="&map;units"/>
        </owl:imports>
	-->

    </owl:Ontology>

    <!-- Declare the terms here -->
    <!--
    Note: this will pass a stand-alone reasoner check, but the
    SSWAP validator will still try to get the closure, so the
    offending map:startPosition and map:endPosition terms will still
    cause an error.  The fix is for us to fix the map ontology. 
 
    <owl:DatatypeProperty rdf:about="&map;startPosition"/>
    <owl:DatatypeProperty rdf:about="&map;endPosition"/>
   -->

    <sswap:Resource rdf:about="&provider;qtl-by-symbol">

        <sswap:name>Gramene QTL information Retrieval for QTL Published Symbol</sswap:name>

        <sswap:oneLineDescription>
            Given an input QTL published symbol returns 
            qtl information
        </sswap:oneLineDescription>

        <sswap:providedBy>
            <sswap:Provider rdf:about="&provider;resourceProvider"/>
        </sswap:providedBy>

        <sswap:aboutURI rdf:datatype="&xsd;anyURI">http://www.gramene.org/qtl</sswap:aboutURI>

        <sswap:metadata rdf:datatype="&xsd;anyURI">&provider;qtl-by-symbol-metadata.txt</sswap:metadata>

        <sswap:inputURI rdf:datatype="&xsd;anyURI">&provider;invoke-qtl-by-symbol.jsp</sswap:inputURI>

        <sswap:operatesOn>
            <sswap:Graph>
                <sswap:hasMapping>
                    <sswap:Subject>
                         <rdf:type>
                            <owl:Class rdf:about="&grqtl;QtlBySymbolRequest"/>
                        </rdf:type>
                        <qtl:symbol/>
                        <sswap:mapsTo>
                            <sswap:Object>
                                <qtl:accessionID/>
                                <qtl:symbol/>
                                <map:name/>
                                <map:linkageGroup/>
                                <map:startPosition rdf:datatype="&xsd;decimal">0</map:startPosition>
                                <map:endPosition rdf:datatype="&xsd;decimal">0</map:endPosition>
                                <tax:scientificName/>
                                <tax:commonName/>
                                <tax:taxonomyID/>
                                <trait:symbol/>
                                <trait:name/>
                                <trait:accessionID/>
                                <trait:synonym/>
                            </sswap:Object>
                        </sswap:mapsTo>
                    </sswap:Subject>
                </sswap:hasMapping>
            </sswap:Graph>
        </sswap:operatesOn>
    </sswap:Resource>
</rdf:RDF>
