# The pattern's own scenario - the species caught using gillnetters. Cod and hake are related
# to the vessel type directly, which is what this pattern adds; the gear path that would also
# yield them is shown beside it. The harbour porpoise is left with no vessel of its own: it is
# the bycatch the composition over usedByVesselType and incidentallyCatchesSpecies would add.

@prefix aquaticresources: <http://www.ontologydesignpatterns.org/cp/owl/fsdas/aquaticresources.owl#> .
@prefix gearspecies: <http://www.ontologydesignpatterns.org/cp/owl/fsdas/gearspecies.owl#> .
@prefix gearvessel: <http://www.ontologydesignpatterns.org/cp/owl/fsdas/gearvessel.owl#> .
@prefix ex: <https://w3id.org/ontoboard/example/vesselspecies#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

ex:NorthSeaCodStock a owl:NamedIndividual , aquaticresources:AquaticResource ;
    rdfs:label "the North Sea cod stock" ;
    aquaticresources:hasSpecies ex:AtlanticCod .

ex:AtlanticCod a owl:NamedIndividual , aquaticresources:AquaticSpecies ;
    rdfs:label "Atlantic cod (Gadus morhua)" ;
    <http://www.ontologydesignpatterns.org/cp/owl/fsdas/vesselspecies.owl#isCaughtByVesselType> ex:Gillnetter ;
    gearspecies:isCaughtByGearType ex:BottomSetGillnet .

ex:EuropeanHake a owl:NamedIndividual , aquaticresources:AquaticSpecies ;
    rdfs:label "European hake (Merluccius merluccius)" ;
    <http://www.ontologydesignpatterns.org/cp/owl/fsdas/vesselspecies.owl#isCaughtByVesselType> ex:Gillnetter , ex:SmallScalePolyvalentVessel .

ex:HarbourPorpoise a owl:NamedIndividual , aquaticresources:AquaticSpecies ;
    rdfs:label "harbour porpoise (Phocoena phocoena)" .

ex:BottomSetGillnet a owl:NamedIndividual , gearspecies:GearType , gearvessel:GearType ;
    rdfs:label "bottom-set gillnet (anchored)" ;
    gearspecies:targetsSpecies ex:EuropeanHake ;
    gearspecies:catchesSpecies ex:AtlanticCod ;
    gearspecies:incidentallyCatchesSpecies ex:HarbourPorpoise ;
    gearvessel:usedByVesselType ex:Gillnetter , ex:SmallScalePolyvalentVessel .

ex:Gillnetter a owl:NamedIndividual , gearvessel:VesselType ;
    rdfs:label "gillnetter" .

ex:SmallScalePolyvalentVessel a owl:NamedIndividual , gearvessel:VesselType ;
    rdfs:label "small-scale polyvalent vessel (under 12 m)" .

# Only one direction of each inverse pair is asserted: canOccurIn/isAreaOfOccurrenceOf, catchesSpecies/isCaughtBy, catchesSpecies/isCaughtBy, hasSpecies/isSpeciesPresentIn, usedByVesselType/usesGearType. A reasoner adds the other.
