<?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/">
]>

<rdf:RDF
    xmlns:rdf   = "&rdf;"
    xmlns:rdfs  = "&rdfs;"
    xmlns:owl   = "&owl;"
    xmlns:xsd   = "&xsd;"
    xmlns:sswap = "&sswap;"
    xmlns       = "&sswap;"
>

    <!-- Read in the SSWAP protocol to define all SSWAP terms -->
    <owl:Ontology rdf:about="&sswap;owlOntology">
        <owl:imports rdf:resource="&sswap;owlOntology"/>
    </owl:Ontology>

    <!-- Define this term using OWL + SSWAP semantics -->
    <owl:ObjectProperty rdf:about="&sswap;providedBy">

        <!-- Declare hierarchical relations -->
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <rdfs:subPropertyOf>
            <owl:ObjectProperty rdf:about="&sswap;objectProperty"/>
        </rdfs:subPropertyOf>

        <!-- Self-documenting comment about this term -->
        <rdfs:comment rdf:datatype="&xsd;string"
            >A property identifying the entity providing the Resource. The Provider's URL must be in the same domain as the Resource, unless the Provider explicitly claims the Resource by including a providesResource statement, pointing at the Resource, in the Provider's description graph.</rdfs:comment>

        <!-- rdfs:domain: the class of resources this property applies to -->
        <rdfs:domain rdf:resource="&sswap;Resource"/>

        <!-- rdfs:range: the class of resources this property points to -->
        <rdfs:range rdf:resource="&sswap;Provider"/>

        <!-- inverse relationship -->
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="&sswap;providesResource"/>
        </owl:inverseOf>

    </owl:ObjectProperty>

</rdf:RDF>
