@prefix : <https://github.com/predict-idlab/potter/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@base <https://github.com/predict-idlab/potter/> .

<https://github.com/predict-idlab/potter/> rdf:type owl:Ontology ;
                                            owl:imports <http://www.w3.org/ns/ssn/> ,
                                                        <https://w3id.org/function/ontology/1.0.0> ;
                                            <http://purl.org/dc/terms/created> "2026-06-01 00:00" ;
                                            <http://purl.org/dc/terms/creator> "Bram Steenwinckel" ,
                                                                               "Colin Soete" ;
                                            <http://purl.org/dc/terms/description> "POTTER is an ontology for semantic machine learning pipeline traceability in Industry 4.0 settings. It integrates and extends existing ontologies (MLS, EEP, SSN, and SPARKS) to embed production lines into semantic workflows."@en ;
                                            <http://purl.org/dc/terms/license> "https://creativecommons.org/licenses/by/4.0/" ;
                                            <http://purl.org/dc/terms/publisher> "Colin Soete" ;
                                            <http://purl.org/dc/terms/title> "Processing Ontology for Tracing, Training and Extraction of Results (POTTER)"@en ;
                                            <http://purl.org/vocab/vann/preferredNamespacePrefix> "potter" ;
                                            rdfs:comment """@unpublished{soete2026_potter,
  title={Enabling Ontologies for Semi-Automated Feature Extraction and Traceability of Quality Issues in Production Line Monitoring},
  author={Soete, Colin and Steenwinckel, Bram and Mussche, Joris and Ongenae, Femke and Van Hoecke, Sofie},
    note = {Under review at: AI in Advanced Manufacturing, special issue of International Journal of Intelligent Systems},
}"""@en ;
                                            owl:versionInfo "1.0.0" .

#################################################################
#    Annotation properties
#################################################################

###  http://purl.org/dc/terms/publisher
<http://purl.org/dc/terms/publisher> rdf:type owl:AnnotationProperty .


###  http://swrl.stanford.edu/ontologies/3.3/swrla.owl#isRuleEnabled
<http://swrl.stanford.edu/ontologies/3.3/swrla.owl#isRuleEnabled> rdf:type owl:AnnotationProperty .


###  https://github.com/predict-idlab/potter/DASE_RULE
:DASE_RULE rdf:type owl:AnnotationProperty .


#################################################################
#    Object Properties
#################################################################

###  https://github.com/predict-idlab/potter/isIO
:isIO rdf:type owl:ObjectProperty ;
      rdfs:comment "Helper property used to define the InputOutputFunction."@en ;
      rdfs:label "isIO"@en .


###  https://github.com/predict-idlab/potter/isInput
:isInput rdf:type owl:ObjectProperty ;
         rdfs:comment "Helper property used to define the InputFunction."@en ;
         rdfs:label "isInput"@en .


###  https://github.com/predict-idlab/potter/isOutput
:isOutput rdf:type owl:ObjectProperty ;
          rdfs:comment "Helper property used to define the OutputFunction."@en ;
          rdfs:label "isOutput"@en .


###  https://github.com/predict-idlab/potter/pertain
:pertain rdf:type owl:ObjectProperty ;
         rdfs:domain <https://w3id.org/function/ontology#Function> ;
         rdfs:range <http://www.w3.org/ns/ssn/System> ;
         rdfs:comment "The pertain concept is used to indicate when a function pertains to a particular system component."@en ;
         rdfs:label "pertain"@en .


###  https://github.com/predict-idlab/potter/usesIO
:usesIO rdf:type owl:ObjectProperty ;
        rdfs:range :InputOutputFunction ;
        owl:propertyChainAxiom ( :isIO
                                 <https://w3id.org/function/ontology#expects>
                                 [ owl:inverseOf <https://w3id.org/function/ontology#returns>
                                 ]
                                 :isIO
                               ) ,
                               _:genid10 ;
        rdfs:comment "Helper property used to define the relation of the InputOutputFunction concept using property chaining."@en ;
        rdfs:label "usesIO"@en .

_:genid10 rdf:type rdf:List ;
           rdf:first :isOutput ;
           rdf:rest ( <https://w3id.org/function/ontology#expects>
                      [ owl:inverseOf <https://w3id.org/function/ontology#returns>
                      ]
                      :isIO
                    ) .

[ rdf:type owl:Axiom ;
   owl:annotatedSource :usesIO ;
   owl:annotatedProperty owl:propertyChainAxiom ;
   owl:annotatedTarget _:genid10 ;
   :DASE_RULE "R2___model(?x) ^ extractor(?y) ^ expectInput(?x,?f) ^ expectOutput(?y,?f) -> usesExtractor(?x,?y)______http://www.semanticweb.org/bsteenwi/ontologies/2024/4/untitled-ontology-61/freshObjectProperty2___http://www.semanticweb.org/bsteenwi/ontologies/2024/4/untitled-ontology-61/freshObjectProperty1"
 ] .


###  https://github.com/predict-idlab/potter/usesInput
:usesInput rdf:type owl:ObjectProperty ;
           rdfs:range :InputFunction ;
           owl:propertyChainAxiom _:genid16 ,
                                  ( :isOutput
                                    <https://w3id.org/function/ontology#expects>
                                    [ owl:inverseOf <https://w3id.org/function/ontology#returns>
                                    ]
                                    :isInput
                                  ) ;
           rdfs:comment "Helper property used to define the relation of the InputFunction concept using property chaining."@en ;
           rdfs:label "usesInput"@en .

_:genid16 rdf:type rdf:List ;
           rdf:first :isIO ;
           rdf:rest ( <https://w3id.org/function/ontology#expects>
                      [ owl:inverseOf <https://w3id.org/function/ontology#returns>
                      ]
                      :isInput
                    ) .

[ rdf:type owl:Axiom ;
   owl:annotatedSource :usesInput ;
   owl:annotatedProperty owl:propertyChainAxiom ;
   owl:annotatedTarget _:genid16 ;
   :DASE_RULE "R1___extractor(?x) ^ data(?y) ^ expectInput(?x, ?z) ^ expectOutput(?y, ?z) -> usesData(?x, ?y)______http://www.semanticweb.org/bsteenwi/ontologies/2024/4/untitled-ontology-61/freshObjectProperty2___http://www.semanticweb.org/bsteenwi/ontologies/2024/4/untitled-ontology-61/freshObjectProperty1"
 ] .


###  https://w3id.org/function/ontology#expects
<https://w3id.org/function/ontology#expects> rdf:type owl:ObjectProperty .


###  https://w3id.org/function/ontology#returns
<https://w3id.org/function/ontology#returns> rdf:type owl:ObjectProperty .


#################################################################
#    Data properties
#################################################################

###  https://github.com/predict-idlab/potter/pythonDefinition
:pythonDefinition rdf:type owl:DatatypeProperty ;
                  rdfs:comment "Data property used to link the semantic concepts into the specific implementation using Python decorators."@en ;
                  rdfs:label "pythonDefinition"@en .


#################################################################
#    Classes
#################################################################

###  https://github.com/predict-idlab/potter/DataLoader
:DataLoader rdf:type owl:Class ;
            rdfs:subClassOf :InputFunction ;
            rdfs:comment "The DataLoader concept was made to specify data as an input for other concepts."@en ;
            rdfs:label "DataLoader"@en .


###  https://github.com/predict-idlab/potter/DataProcessor
:DataProcessor rdf:type owl:Class ;
               rdfs:subClassOf :InputOutputFunction ;
               rdfs:comment "An InputOutputFunction subclass concept which represents a machine learning data processor."@en ;
               rdfs:label "DataProcessor"@en .


###  https://github.com/predict-idlab/potter/FeatureProcessor
:FeatureProcessor rdf:type owl:Class ;
                  rdfs:subClassOf :InputOutputFunction ;
                  rdfs:comment "An InputOutputFunction subclass concept which represents a machine learning feature processor."@en ;
                  rdfs:label "FeatureProcessor"@en .


###  https://github.com/predict-idlab/potter/InputFunction
:InputFunction rdf:type owl:Class ;
               rdfs:subClassOf <https://w3id.org/function/ontology#Function> ,
                               [ rdf:type owl:Restriction ;
                                 owl:onProperty :isInput ;
                                 owl:hasSelf "true"^^xsd:boolean
                               ] ;
               rdfs:comment "The InputFunction concept provides a way to define the input operations of our machine learning pipeline."@en ;
               rdfs:label "InputFunction"@en .


###  https://github.com/predict-idlab/potter/InputOutputFunction
:InputOutputFunction rdf:type owl:Class ;
                     rdfs:subClassOf <https://w3id.org/function/ontology#Function> ,
                                     _:genid24 ;
                     rdfs:comment "The InputOutputFunction concept converts input values to new output values."@en ;
                     rdfs:label "InputOutputFunction"@en .

_:genid24 rdf:type owl:Restriction ;
           owl:onProperty :isIO ;
           owl:hasSelf "true"^^xsd:boolean .

[ rdf:type owl:Axiom ;
   owl:annotatedSource :InputOutputFunction ;
   owl:annotatedProperty rdfs:subClassOf ;
   owl:annotatedTarget _:genid24 ;
   :DASE_RULE "R2___model(?x) ^ extractor(?y) ^ expectInput(?x,?f) ^ expectOutput(?y,?f) -> usesExtractor(?x,?y)______http://www.semanticweb.org/bsteenwi/ontologies/2024/4/untitled-ontology-61/freshObjectProperty2___http://www.semanticweb.org/bsteenwi/ontologies/2024/4/untitled-ontology-61/freshObjectProperty1"
 ] .


###  https://github.com/predict-idlab/potter/ModelBuilder
:ModelBuilder rdf:type owl:Class ;
              rdfs:subClassOf :OutputFunction ;
              rdfs:comment "A ModelBuilder is a function to output a machine learning model that further on can be used to make predictions."@en ;
              rdfs:label "ModelBuilder"@en .


###  https://github.com/predict-idlab/potter/OutputFunction
:OutputFunction rdf:type owl:Class ;
                rdfs:subClassOf <https://w3id.org/function/ontology#Function> ,
                                _:genid26 ;
                rdfs:comment "The OutputFunction concepts defines how different inputs can be used to create one output concept."@en ;
                rdfs:label "OutputFunction"@en .

_:genid26 rdf:type owl:Restriction ;
           owl:onProperty :isOutput ;
           owl:hasSelf "true"^^xsd:boolean .

[ rdf:type owl:Axiom ;
   owl:annotatedSource :OutputFunction ;
   owl:annotatedProperty rdfs:subClassOf ;
   owl:annotatedTarget _:genid26 ;
   :DASE_RULE "R2___model(?x) ^ extractor(?y) ^ expectInput(?x,?f) ^ expectOutput(?y,?f) -> usesExtractor(?x,?y)______http://www.semanticweb.org/bsteenwi/ontologies/2024/4/untitled-ontology-61/freshObjectProperty2___http://www.semanticweb.org/bsteenwi/ontologies/2024/4/untitled-ontology-61/freshObjectProperty1"
 ] .


###  https://w3id.org/function/ontology#Function
<https://w3id.org/function/ontology#Function> rdf:type owl:Class .


###  Generated by the OWL API (version 5.1.18) https://github.com/owlcs/owlapi/
