@prefix : <https://ontology.inferal.com/modules/sets/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix mod: <https://w3id.org/mod#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix pubacc: <https://ontology.inferal.com/modules/publication-access/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix vann: <http://purl.org/vocab/vann/> .

<https://ontology.inferal.com/modules/sets/owl>
    a owl:Ontology, pubacc:PublicationManagedOntology ;
    dcterms:accessRights pubacc:PublicAccess ;
    owl:imports : ;
    dcterms:title "Sets Ontology - OWL Addendum" ;
    dcterms:description "OWL class, property, key, disjointness, and property-chain axioms layered on the RDFS Sets Ontology." ;
    dcterms:license <https://creativecommons.org/licenses/by/4.0/> ;
    dcterms:source : ;
    vann:preferredNamespacePrefix "set" ;
    vann:preferredNamespaceUri "https://ontology.inferal.com/modules/sets/" ;
    mod:status "draft" ;
    rdfs:label "Sets Ontology - OWL Addendum" ;
    rdfs:comment "This addendum imports the RDFS base vocabulary and adds OWL typing and axioms for consumers that want OWL reasoning support." ;
    owl:versionInfo "0.1.0" .

:Set
    a owl:Class ;
    owl:disjointWith :Membership .

:Membership
    a owl:Class ;
    owl:hasKey (
        :inSet
        :member
    ) .

:hasMembership
    a owl:ObjectProperty ;
    owl:inverseOf :inSet .

:inSet a owl:ObjectProperty .
:member a owl:ObjectProperty .

:hasMember
    a owl:ObjectProperty ;
    owl:propertyChainAxiom (
        :hasMembership
        :member
    ) .

:cardinality a owl:DatatypeProperty .
