@prefix : <https://ontology.inferal.com/modules/hypergraphs/> .
@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 set: <https://ontology.inferal.com/modules/sets/> .
@prefix vann: <http://purl.org/vocab/vann/> .

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

:Hypergraph
    a owl:Class ;
    owl:disjointWith :Incidence .

:Vertex a owl:Class .
:Hyperedge a owl:Class .

:Incidence a owl:Class .

:HyperedgeMembership
    a owl:Class ;
    owl:disjointWith :Incidence ;
    owl:hasKey (
        :membershipHypergraph
        :membershipHyperedge
    ) .

:hasVertex
    a owl:ObjectProperty ;
    owl:inverseOf :vertexInHypergraph .

:vertexInHypergraph a owl:ObjectProperty .

:hasHyperedge
    a owl:ObjectProperty ;
    owl:inverseOf :edgeInHypergraph ;
    owl:propertyChainAxiom (
        :hasHyperedgeMembership
        :membershipHyperedge
    ) .

:edgeInHypergraph a owl:ObjectProperty .

:hasHyperedgeMembership
    a owl:ObjectProperty ;
    owl:inverseOf :membershipHypergraph .

:membershipHypergraph a owl:ObjectProperty .
:membershipHyperedge a owl:ObjectProperty .

:hasIncidence
    a owl:ObjectProperty ;
    owl:inverseOf :incidentEdge .

:incidentEdge a owl:ObjectProperty .
:incidentVertex a owl:ObjectProperty .
