<?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;"
>

    <!-- Ontology-wide information -->
    <!-- (It will also import 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:Class rdf:about="&sswap;SSWAP">

        <rdfs:comment rdf:datatype="&xsd;string"
            >Super class of all SSWAP classes.

SSWAP classes use recognizable patterns to express required and optional predicates. Basically, cardinality constraints on predicates within an owl:equivalentClass block describe required predicates, while the same inside rdfs:subClassOf blocks describe optional predicates. This model can be used by any service in its own Resource Description Graph to express required and optional arguments.  See sswap:Subject, since this is the class that resource providers will use to express the input data types of their services.

Conditions for inclusion in the class are weak: in accordance with the open world assumption, any individual can be a member of this class except those  known to belong to a class disjoint from every SSWAP subclass.</rdfs:comment>

      </owl:Class>

</rdf:RDF>
