@prefix ex: <https://example.com/hypergraphs/> .
@prefix hg: <https://ontology.inferal.com/modules/hypergraphs/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

ex:workflow-hypergraph
    a hg:Hypergraph ;
    rdfs:label "Workflow dependency hypergraph" ;
    hg:hasVertex ex:extract, ex:transform, ex:load, ex:audit ;
    hg:hasHyperedgeMembership ex:workflow-etl-membership, ex:workflow-quality-membership ;
    hg:hasHyperedge ex:etl-edge, ex:quality-edge .

ex:extract
    a hg:Vertex .

ex:transform
    a hg:Vertex .

ex:load
    a hg:Vertex .

ex:audit
    a hg:Vertex .

ex:workflow-etl-membership
    a hg:HyperedgeMembership ;
    hg:membershipHypergraph ex:workflow-hypergraph ;
    hg:membershipHyperedge ex:etl-edge .

ex:workflow-quality-membership
    a hg:HyperedgeMembership ;
    hg:membershipHypergraph ex:workflow-hypergraph ;
    hg:membershipHyperedge ex:quality-edge .

ex:etl-edge
    a hg:Hyperedge ;
    hg:edgeInHypergraph ex:workflow-hypergraph ;
    hg:hasIncidence ex:etl-extract, ex:etl-transform, ex:etl-load .

ex:etl-extract
    a hg:Incidence ;
    hg:incidentEdge ex:etl-edge ;
    hg:incidentVertex ex:extract .

ex:etl-transform
    a hg:Incidence ;
    hg:incidentEdge ex:etl-edge ;
    hg:incidentVertex ex:transform .

ex:etl-load
    a hg:Incidence ;
    hg:incidentEdge ex:etl-edge ;
    hg:incidentVertex ex:load .

ex:quality-edge
    a hg:Hyperedge ;
    hg:edgeInHypergraph ex:workflow-hypergraph ;
    hg:hasIncidence ex:quality-transform, ex:quality-audit .

ex:quality-transform
    a hg:Incidence ;
    hg:incidentEdge ex:quality-edge ;
    hg:incidentVertex ex:transform .

ex:quality-audit
    a hg:Incidence ;
    hg:incidentEdge ex:quality-edge ;
    hg:incidentVertex ex:audit .

ex:empty-hyperedge
    a hg:Hyperedge ;
    rdfs:label "Empty hyperedge" .
