@prefix : <https://w3id.org/mqto#> .
@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://w3id.org/mqto#> .

<https://w3id.org/mqto> rdf:type owl:Ontology ;
                         owl:versionIRI <https://w3id.org/mqto/1.0> ;
                         owl:imports <http://rds.posccaesar.org/ontology/lis14/ont/ido-ssn/0.1> ,
                                     <https://w3id.org/pko/1.0.0> ;
                         <http://purl.org/dc/terms/abstract> "The Manufacturing Quality Troubleshooting Ontology (MQTO) provides a domain-independent semantic framework for modeling manufacturing quality inspection, failure diagnosis, and countermeasure recommendation. Building on the LIS (Lifecycle Information System) specified/actual pattern and integrating SOSA/SSN observation semantics, MQTO enables structured representation of Ishikawa (fishbone) root cause analysis across five categories: Machine, Manpower, Material, Measurement, and Method. The ontology supports both schema-level knowledge (failure types, metrics, countermeasure procedures) and instance-level data (actual observations, failure occurrences, executed remediation steps), making it applicable across diverse manufacturing domains including die-casting, injection molding, machining, and assembly processes."@en ;
                         <http://purl.org/dc/terms/bibliographicCitation> "Bischof, S., Rötzer, F., Xavier Parreira, J., Filtz, E., Steyskal, S., Strommer, S. (2026). Manufacturing Quality Troubleshooting Ontology (MQTO), Version 1.0. https://w3id.org/mqto/1.0"@en ;
                         <http://purl.org/dc/terms/contributor> <https://orcid.org/0000-0002-3050-159X> ,
                                                                <https://orcid.org/0000-0002-5183-2486> ,
                                                                <https://orcid.org/0000-0003-2661-5575> ,
                                                                <https://orcid.org/0000-0003-3445-0504> ,
                                                                <https://orcid.org/0009-0009-9349-9683> ;
                         <http://purl.org/dc/terms/created> "2026-03-17"^^xsd:date ;
                         <http://purl.org/dc/terms/creator> <https://orcid.org/0000-0001-9521-8907> ;
                         <http://purl.org/dc/terms/description> "A connector ontology for manufacturing quality troubleshooting that bridges three manufacturing domains: quality management (FailureMode, Countermeasure, Metric), production context (FailureSourceCategory hierarchy, FailureSource hierarchy), and data infrastructure (Signal, Property, DataEvent). Applicable across manufacturing domains. Covers both the specified (schema-level) and actual (instance-level) levels, with a focus on root cause analysis, failure diagnosis, and countermeasure recommendation."@en ;
                         <http://purl.org/dc/terms/issued> "2026-04-27"^^xsd:date ;
                         <http://purl.org/dc/terms/license> <http://www.apache.org/licenses/LICENSE-2.0> ;
                         <http://purl.org/dc/terms/modified> "2026-05-07"^^xsd:date ;
                         <http://purl.org/dc/terms/publisher> <https://github.com/dg-assist> ;
                         <http://purl.org/dc/terms/rights> "Copyright 2026 DG Assist. Licensed under the Apache License, Version 2.0."@en ;
                         <http://purl.org/dc/terms/subject> "Industry 4.0"@en ,
                                                            "Ishikawa diagram"@en ,
                                                            "SOSA"@en ,
                                                            "SSN"@en ,
                                                            "manufacturing"@en ,
                                                            "quality control"@en ,
                                                            "root cause analysis"@en ,
                                                            "troubleshooting"@en ;
                         <http://purl.org/dc/terms/title> "Manufacturing Quality Troubleshooting Ontology"@en ;
                         <http://purl.org/ontology/bibo/doi> "10.5281/zenodo.19571023" ;
                         <http://purl.org/ontology/bibo/status> <http://purl.org/ontology/bibo/status/published> ;
                         <http://purl.org/vocab/vann/preferredNamespacePrefix> "mqto" ;
                         <http://purl.org/vocab/vann/preferredNamespaceUri> "https://w3id.org/mqto#" ;
                         <http://schema.org/codeRepository> <https://github.com/dg-assist/mqto> ;
                         <http://schema.org/funding> <https://projekte.ffg.at/projekt/4641766> ;
                         <http://schema.org/image> <https://dg-assist.github.io/mqto/class-diagram.svg> ;
                         <http://schema.org/logo> <https://dg-assist.github.io/mqto/logo.png> ;
                         rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                         rdfs:label "Manufacturing Quality Troubleshooting Ontology"@en ;
                         owl:versionInfo "1.0.0" ;
                         <http://www.w3.org/2004/02/skos/core#editorialNote> "PKO alignment: mqto:Countermeasure subclasses pko:Procedure, mqto:CountermeasureStep aligns with p-plan:Step, mqto:CountermeasureExecution extends pko:ProcedureExecution, and mqto:CountermeasureStepExecution extends pko:StepExecution. Both ontologies follow a specification/execution pattern, though MQTO uses LIS (lis:Specified/lis:Actual with lis:implements) while PKO uses P-PLAN/PROV. Key difference: MQTO externalizes step ordering via CountermeasureStepList containers for reusability, while PKO embeds ordering directly in steps via pko:nextStep."@en .

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

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


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


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


###  http://purl.org/ontology/bibo/doi
<http://purl.org/ontology/bibo/doi> rdf:type owl:AnnotationProperty .


###  http://schema.org/codeRepository
<http://schema.org/codeRepository> rdf:type owl:AnnotationProperty .


###  http://schema.org/funding
<http://schema.org/funding> rdf:type owl:AnnotationProperty .


###  http://schema.org/image
<http://schema.org/image> rdf:type owl:AnnotationProperty .


###  http://schema.org/logo
<http://schema.org/logo> rdf:type owl:AnnotationProperty .


###  http://www.w3.org/2004/02/skos/core#editorialNote
<http://www.w3.org/2004/02/skos/core#editorialNote> rdf:type owl:AnnotationProperty .


###  https://schema.org/affiliation
<https://schema.org/affiliation> rdf:type owl:AnnotationProperty .


#################################################################
#    Datatypes
#################################################################

###  http://www.w3.org/2001/XMLSchema#duration
xsd:duration rdf:type rdfs:Datatype .


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

###  https://w3id.org/mqto#appearedOn
:appearedOn rdf:type owl:ObjectProperty ;
            rdfs:domain :FailureOccurrence ;
            rdfs:range :FailureSource ;
            rdfs:comment "Links a FailureOccurrence to the specific FailureSource where it manifested."@en ;
            rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
            rdfs:label "appeared on"@en .


###  https://w3id.org/mqto#baseFor
:baseFor rdf:type owl:ObjectProperty ;
         owl:inverseOf :basedOn ;
         rdfs:domain :DataEvent ;
         rdfs:range :MetricAssessment ;
         rdfs:comment "Indicates that an Observation or Actuation serves as the data foundation for a MetricAssessment calculation. Enables tracing from raw data to computed metrics."@en ;
         rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
         rdfs:label "base for"@en .


###  https://w3id.org/mqto#basedOn
:basedOn rdf:type owl:ObjectProperty ;
         rdfs:domain :MetricAssessment ;
         rdfs:range :DataEvent ;
         rdfs:comment "Links a MetricAssessment to the Observation(s) or Actuation(s) used as input data for its calculation. Establishes the data provenance chain."@en ;
         rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
         rdfs:label "based on"@en .


###  https://w3id.org/mqto#calculatedFor
:calculatedFor rdf:type owl:ObjectProperty ;
               rdfs:domain :MetricAssessment ;
               rdfs:range :FailureSource ;
               rdfs:comment "Links a MetricAssessment to the specific FailureSource it evaluates."@en ;
               rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
               rdfs:label "calculated for"@en .


###  https://w3id.org/mqto#causedBy
:causedBy rdf:type owl:ObjectProperty ;
          owl:inverseOf :causes ;
          rdfs:domain :FailureMode ;
          rdfs:range :FailureMode ;
          rdfs:comment "Links a Failure Mode to another Failure Mode that causes it, forming a causal chain. Three sub-properties (causedByWeakly, causedByModerately, causedByStrongly) express different causal strengths."@en ;
          rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
          rdfs:label "caused by"@en .


###  https://w3id.org/mqto#causedByModerately
:causedByModerately rdf:type owl:ObjectProperty ;
                    rdfs:subPropertyOf :causedBy ;
                    owl:inverseOf :causesModerately ;
                    rdfs:comment "Indicates a moderate-strength causal relationship where one Failure Mode is caused by another with medium probability or influence. Enables ordinal ranking of causal strengths without requiring precise numeric probabilities. Subproperty of causedBy."@en ;
                    rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                    rdfs:label "caused by moderately"@en .


###  https://w3id.org/mqto#causedByStrongly
:causedByStrongly rdf:type owl:ObjectProperty ;
                  rdfs:subPropertyOf :causedBy ;
                  owl:inverseOf :causesStrongly ;
                  rdfs:comment "Indicates a strong causal relationship where one Failure Mode is caused by another with high probability or significant influence. Enables ordinal ranking of causal strengths without requiring precise numeric probabilities. Subproperty of causedBy."@en ;
                  rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                  rdfs:label "caused by strongly"@en .


###  https://w3id.org/mqto#causedByWeakly
:causedByWeakly rdf:type owl:ObjectProperty ;
                rdfs:subPropertyOf :causedBy ;
                owl:inverseOf :causesWeakly ;
                rdfs:comment "Indicates a weak causal relationship where one Failure Mode is caused by another with low probability or minor influence. Enables ordinal ranking of causal strengths without requiring precise numeric probabilities. Subproperty of causedBy."@en ;
                rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                rdfs:label "caused by weakly"@en .


###  https://w3id.org/mqto#causes
:causes rdf:type owl:ObjectProperty ;
        rdfs:domain :FailureMode ;
        rdfs:range :FailureMode ;
        rdfs:comment "Links a Failure Mode to another Failure Mode that it causes, forming a causal chain. Three sub-properties (causesWeakly, causesModerately, causesStrongly) express different causal strengths."@en ;
        rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
        rdfs:label "causes"@en .


###  https://w3id.org/mqto#causesModerately
:causesModerately rdf:type owl:ObjectProperty ;
                  rdfs:subPropertyOf :causes ;
                  rdfs:comment "Indicates a moderate-strength causal relationship where one Failure Mode causes another with medium probability or influence. Enables ordinal ranking of causal strengths without requiring precise numeric probabilities. Subproperty of causes."@en ;
                  rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                  rdfs:label "causes moderately"@en .


###  https://w3id.org/mqto#causesStrongly
:causesStrongly rdf:type owl:ObjectProperty ;
                rdfs:subPropertyOf :causes ;
                rdfs:comment "Indicates a strong causal relationship where one Failure Mode causes another with high probability or significant influence. Enables ordinal ranking of causal strengths without requiring precise numeric probabilities. Subproperty of causes."@en ;
                rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                rdfs:label "causes strongly"@en .


###  https://w3id.org/mqto#causesWeakly
:causesWeakly rdf:type owl:ObjectProperty ;
              rdfs:subPropertyOf :causes ;
              rdfs:comment "Indicates a weak causal relationship where one Failure Mode causes another with low probability or minor influence. Enables ordinal ranking of causal strengths without requiring precise numeric probabilities. Subproperty of causes."@en ;
              rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
              rdfs:label "causes weakly"@en .


###  https://w3id.org/mqto#evaluatedBy
:evaluatedBy rdf:type owl:ObjectProperty ;
             owl:inverseOf :evaluatesProperty ;
             rdfs:domain :Property ;
             rdfs:range :MetricAssessment ;
             rdfs:comment "Relates a Property to the MetricAssessment that evaluated it (actual level). Counterpart to readBy in the specified level."@en ;
             rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
             rdfs:label "evaluated by"@en .


###  https://w3id.org/mqto#evaluatesProperty
:evaluatesProperty rdf:type owl:ObjectProperty ;
                   rdfs:domain :MetricAssessment ;
                   rdfs:range :Property ;
                   rdfs:comment "Relates a MetricAssessment to the Property it evaluated (actual level). Counterpart to readsFrom in the specified level."@en ;
                   rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                   rdfs:label "evaluates property"@en .


###  https://w3id.org/mqto#failureBelongsTo
:failureBelongsTo rdf:type owl:ObjectProperty ;
                  owl:inverseOf :hasFailure ;
                  rdfs:domain :FailureMode ;
                  rdfs:range :FailureSourceCategory ;
                  rdfs:comment "Associates a Failure Mode with the FailureSourceCategory it belongs to. Establishes which root cause category the failure is classified under."@en ;
                  rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                  rdfs:label "failure belongs to"@en .


###  https://w3id.org/mqto#first
:first rdf:type owl:ObjectProperty ;
       rdfs:domain :CountermeasureStepList ;
       rdfs:range :CountermeasureStep ;
       rdfs:comment "Points to the first CountermeasureStep in an ordered list."@en ;
       rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
       rdfs:label "first"@en ;
       <http://www.w3.org/2004/02/skos/core#editorialNote> "The list structure enables step reuse across Countermeasure procedures without embedding order into steps."@en .


###  https://w3id.org/mqto#hasFailure
:hasFailure rdf:type owl:ObjectProperty ;
            rdfs:domain :FailureSourceCategory ;
            rdfs:range :FailureMode ;
            rdfs:comment "Associates a FailureSourceCategory with a Failure Mode that can occur in that category. Establishes which failures belong to each root cause category."@en ;
            rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
            rdfs:label "has failure"@en .


###  https://w3id.org/mqto#hasMetric
:hasMetric rdf:type owl:ObjectProperty ;
           owl:inverseOf :metricBelongsTo ;
           rdfs:domain :FailureSourceCategory ;
           rdfs:range :Metric ;
           rdfs:comment "Associates a FailureSourceCategory with a Metric used to monitor or assess that category. Establishes which metrics are relevant for each root cause category."@en ;
           rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
           rdfs:label "has metric"@en .


###  https://w3id.org/mqto#hasStepList
:hasStepList rdf:type owl:ObjectProperty ;
             rdfs:domain :Countermeasure ;
             rdfs:range :CountermeasureStepList ;
             rdfs:comment "Links a Countermeasure to its ordered step container."@en ;
             rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
             rdfs:label "has step list"@en ;
             <http://www.w3.org/2004/02/skos/core#editorialNote> "Named hasStepList rather than hasStep to distinguish from pko:hasStep, which links directly to step instances rather than to a list container."@en .


###  https://w3id.org/mqto#metricBelongsTo
:metricBelongsTo rdf:type owl:ObjectProperty ;
                 rdfs:domain :Metric ;
                 rdfs:range :FailureSourceCategory ;
                 rdfs:comment "Associates a Metric with the FailureSourceCategory it monitors or assesses. Establishes which root cause category a metric is used for."@en ;
                 rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                 rdfs:label "metric belongs to"@en .


###  https://w3id.org/mqto#metricReferredBy
:metricReferredBy rdf:type owl:ObjectProperty ;
                  owl:inverseOf :refersToMetric ;
                  rdfs:domain :Metric ;
                  rdfs:range :FailureMode ;
                  rdfs:comment "Indicates that a Metric is referred to by a Failure Mode for diagnostic purposes. Establishes which failures use which metrics for detection."@en ;
                  rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                  rdfs:label "metric referred by"@en .


###  https://w3id.org/mqto#mitigatedBy
:mitigatedBy rdf:type owl:ObjectProperty ;
             owl:inverseOf :mitigates ;
             rdfs:domain :FailureMode ;
             rdfs:range :Countermeasure ;
             rdfs:comment "Links a Failure Mode to a Countermeasure that can remediate or reduce it (specified level). Actual-level counterparts: mitigatedOccurrence and mitigatedByExecution."@en ;
             rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
             rdfs:label "mitigated by"@en .


###  https://w3id.org/mqto#mitigatedByExecution
:mitigatedByExecution rdf:type owl:ObjectProperty ;
                      owl:inverseOf :mitigatedOccurrence ;
                      rdfs:domain :FailureOccurrence ;
                      rdfs:range :CountermeasureExecution ;
                      rdfs:comment "Links a FailureOccurrence to the CountermeasureExecution that addressed it (actual level). Specified-level counterpart: mitigatedBy."@en ;
                      rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                      rdfs:label "mitigated by execution"@en .


###  https://w3id.org/mqto#mitigatedOccurrence
:mitigatedOccurrence rdf:type owl:ObjectProperty ;
                     rdfs:domain :CountermeasureExecution ;
                     rdfs:range :FailureOccurrence ;
                     rdfs:comment "Links a CountermeasureExecution to the FailureOccurrence it addressed (actual level). Specified-level counterpart: mitigates."@en ;
                     rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                     rdfs:label "mitigated occurrence"@en .


###  https://w3id.org/mqto#mitigates
:mitigates rdf:type owl:ObjectProperty ;
           rdfs:domain :Countermeasure ;
           rdfs:range :FailureMode ;
           rdfs:comment "Links a Countermeasure to the Failure Mode(s) it can remediate or reduce (specified level). Actual-level counterparts: mitigatedOccurrence and mitigatedByExecution."@en ;
           rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
           rdfs:label "mitigates"@en .


###  https://w3id.org/mqto#providesSignal
:providesSignal rdf:type owl:ObjectProperty ;
                owl:inverseOf :signalProvidedBy ;
                rdfs:domain :FailureSourceCategory ;
                rdfs:range :Signal ;
                rdfs:comment "Relates a FailureSourceCategory to the data channels (Signals) associated with it."@en ;
                rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                rdfs:label "provides signal"@en .


###  https://w3id.org/mqto#raised
:raised rdf:type owl:ObjectProperty ;
        owl:inverseOf :raisedBy ;
        rdfs:domain :MetricAssessment ;
        rdfs:range :FailureOccurrence ;
        rdfs:comment "Links a MetricAssessment to the FailureOccurrence it detected or triggered. Establishes which failures were raised by threshold violations."@en ;
        rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
        rdfs:label "raised"@en .


###  https://w3id.org/mqto#raisedBy
:raisedBy rdf:type owl:ObjectProperty ;
          rdfs:domain :FailureOccurrence ;
          rdfs:range :MetricAssessment ;
          rdfs:comment "Links a FailureOccurrence to the MetricAssessment(s) that detected or triggered it. Establishes which metric evaluations identified the failure."@en ;
          rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
          rdfs:label "raised by"@en .


###  https://w3id.org/mqto#readBy
:readBy rdf:type owl:ObjectProperty ;
        owl:inverseOf :readsFrom ;
        rdfs:domain :Signal ;
        rdfs:range :Metric ;
        rdfs:comment "Relates a Signal to the Metric that is computed from it (specified level). For the actual-level counterpart see evaluatedBy."@en ;
        rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
        rdfs:label "read by"@en .


###  https://w3id.org/mqto#readsFrom
:readsFrom rdf:type owl:ObjectProperty ;
           rdfs:domain :Metric ;
           rdfs:range :Signal ;
           rdfs:comment "Relates a Metric to the Signal it is computed from (specified level). For the actual-level counterpart see evaluatesProperty."@en ;
           rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
           rdfs:label "reads from"@en .


###  https://w3id.org/mqto#refersToMetric
:refersToMetric rdf:type owl:ObjectProperty ;
                rdfs:domain :FailureMode ;
                rdfs:range :Metric ;
                rdfs:comment "Links a Failure Mode to the Metric(s) used for its detection or characterization. Establishes which quantitative assessments are diagnostic indicators."@en ;
                rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                rdfs:label "refers to metric"@en .


###  https://w3id.org/mqto#rest
:rest rdf:type owl:ObjectProperty ;
      rdfs:domain :CountermeasureStepList ;
      rdfs:range :CountermeasureStepList ;
      rdfs:comment "Points to the remainder of the ordered step list. Together with mqto:first, implements a linked-list pattern terminated at mqto:nil."@en ;
      rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
      rdfs:label "rest"@en .


###  https://w3id.org/mqto#resultProperty
:resultProperty rdf:type owl:ObjectProperty ;
                rdfs:domain :Metric ;
                rdfs:range rdf:Property ;
                rdfs:comment "Specifies which data property of mqto:Result instances a Metric reads to obtain its input value. Each Metric selects exactly one property from Result instances that may carry multiple measured values."@en ;
                rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                rdfs:label "result property"@en ;
                <http://www.w3.org/2004/02/skos/core#editorialNote> "Meta-level construct: an object property whose value is itself a property. Falls outside normal OWL type-system validation but provides a simple, declarative way to parameterise Metrics without requiring SPARQL property-path strings or SHACL infrastructure."@en ;
                <http://www.w3.org/2004/02/skos/core#example> """A PLC cycle produces one Result with three data properties:
  ex:Result_Shot042  ex:temperature  718.3 ;
                     ex:pressure     980.0 ;
                     ex:cycleTime     24.7 .

Two Metrics select different properties from the same Result:
  ex:TemperatureMetric  mqto:resultProperty  ex:temperature .
  ex:PressureMetric     mqto:resultProperty  ex:pressure .

At query time: SELECT ?value WHERE { ?metric mqto:resultProperty ?prop . ?result ?prop ?value . }"""@en .


###  https://w3id.org/mqto#signalProvidedBy
:signalProvidedBy rdf:type owl:ObjectProperty ;
                  rdfs:domain :Signal ;
                  rdfs:range :FailureSourceCategory ;
                  rdfs:comment "Associates a Signal with the FailureSourceCategory that provides it. Establishes the source of measurement or control data channels."@en ;
                  rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                  rdfs:label "signal provided by"@en .


###  https://w3id.org/mqto#suggested
:suggested rdf:type owl:ObjectProperty ;
           owl:inverseOf :suggestedBy ;
           rdfs:domain :FailureOccurrence ;
           rdfs:range :CountermeasureExecution ;
           rdfs:comment "Links a FailureOccurrence to a CountermeasureExecution that was recommended in response. Distinct from mitigatedOccurrence (which records actual resolution)."@en ;
           rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
           rdfs:label "suggested"@en .


###  https://w3id.org/mqto#suggestedBy
:suggestedBy rdf:type owl:ObjectProperty ;
             rdfs:domain :CountermeasureExecution ;
             rdfs:range :FailureOccurrence ;
             rdfs:comment "Links a CountermeasureExecution to the FailureOccurrence that triggered its recommendation. Distinct from mitigatedByExecution (which records actual resolution)."@en ;
             rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
             rdfs:label "suggested by"@en .


###  https://w3id.org/pko#includesStepExecution
<https://w3id.org/pko#includesStepExecution> rdf:type owl:ObjectProperty .


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

###  https://w3id.org/mqto#abortedReason
:abortedReason rdf:type owl:DatatypeProperty ;
               rdfs:range xsd:string ;
               rdfs:comment "Human-readable explanation of why a CountermeasureStepExecution or CountermeasureExecution was aborted before completion."@en ;
               rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
               rdfs:label "aborted reason"@en .


###  https://w3id.org/mqto#abortedTime
:abortedTime rdf:type owl:DatatypeProperty ;
             rdfs:range xsd:dateTime ;
             rdfs:comment "The timestamp when a CountermeasureStepExecution or CountermeasureExecution was aborted before normal completion."@en ;
             rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
             rdfs:label "aborted time"@en .


###  https://w3id.org/mqto#assessmentMethod
:assessmentMethod rdf:type owl:DatatypeProperty ;
                  rdfs:domain :Metric ;
                  rdfs:comment "The calculation method applied by a Metric to compute its value from observations. Describes the algorithm or statistical function used to aggregate data."@en ;
                  rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                  rdfs:label "assessment method"@en ;
                  <http://www.w3.org/2004/02/skos/core#example> "average, maximum, standard deviation, trend slope"@en .


###  https://w3id.org/mqto#assessmentValue
:assessmentValue rdf:type owl:DatatypeProperty ;
                 rdfs:domain :MetricAssessment ;
                 rdfs:range xsd:boolean ;
                 rdfs:comment "Boolean pass/fail decision from threshold comparison. True indicates a threshold violation (failure detected), false indicates normal operation within bounds."@en ;
                 rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                 rdfs:label "assessment value"@en .


###  https://w3id.org/mqto#calculatedTime
:calculatedTime rdf:type owl:DatatypeProperty ;
                rdfs:domain :MetricAssessment ;
                rdfs:range xsd:dateTime ;
                rdfs:comment "The timestamp when a MetricAssessment was computed. Marks the moment the metric calculation and threshold comparison were evaluated."@en ;
                rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                rdfs:label "calculated time"@en .


###  https://w3id.org/mqto#calculatedValue
:calculatedValue rdf:type owl:DatatypeProperty ;
                 rdfs:domain :MetricAssessment ;
                 rdfs:range xsd:double ;
                 rdfs:comment "The computed numeric value of a MetricAssessment, preserving the quantitative result before threshold comparison."@en ;
                 rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                 rdfs:label "calculated value"@en ;
                 <http://www.w3.org/2004/02/skos/core#editorialNote> "Unit of measurement is inherited from the implemented Metric specification."@en .


###  https://w3id.org/mqto#completionTime
:completionTime rdf:type owl:DatatypeProperty ;
                rdfs:domain :CountermeasureStepExecution ;
                rdfs:range xsd:dateTime ;
                rdfs:comment "The timestamp when a CountermeasureStepExecution was successfully completed. If a step is aborted, use abortedTime instead."@en ;
                rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                rdfs:label "completion time"@en .


###  https://w3id.org/mqto#endTime
:endTime rdf:type owl:DatatypeProperty ;
         rdfs:range xsd:dateTime ;
         rdfs:comment "The timestamp when an activity or time-bound entity concluded. General-purpose temporal property applicable to execution contexts."@en ;
         rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
         rdfs:label "end time"@en .


###  https://w3id.org/mqto#identifier
:identifier rdf:type owl:DatatypeProperty ;
            rdfs:comment "A unique identifier for an entity. Enables correlation between ontology instances and external systems."@en ;
            rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
            rdfs:label "identifier"@en ;
            rdfs:seeAlso <http://purl.org/dc/terms/identifier> ;
            <http://www.w3.org/2004/02/skos/core#editorialNote> "Conceptually aligned with dcterms:identifier but declared independently because OWL 2 DL does not permit a datatype property to be a subproperty of an annotation property."@en ;
            <http://www.w3.org/2004/02/skos/core#example> "machine serial number, material batch code, signal name, process ID"@en .


###  https://w3id.org/mqto#itemWindowSize
:itemWindowSize rdf:type owl:DatatypeProperty ;
                rdfs:domain :Metric ;
                rdfs:range xsd:integer ;
                rdfs:comment "The number of production items over which a Metric aggregates observations. Complements timeWindowSize for item-count-based windows."@en ;
                rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                rdfs:label "item window size"@en ;
                <http://www.w3.org/2004/02/skos/core#example> "last 10 shots, last 5 batches"@en .


###  https://w3id.org/mqto#lowerBound
:lowerBound rdf:type owl:DatatypeProperty ;
            rdfs:domain :Metric ;
            rdfs:range xsd:double ;
            rdfs:comment "The minimum acceptable threshold value for a Metric. Values below the lowerBound indicate a threshold violation."@en ;
            rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
            rdfs:label "lower bound"@en ;
            <http://www.w3.org/2004/02/skos/core#editorialNote> "Stored as dimensionless xsd:double; unit of measurement determined by the Metric's associated Signal."@en .


###  https://w3id.org/mqto#occurrenceTime
:occurrenceTime rdf:type owl:DatatypeProperty ;
                rdfs:domain :FailureOccurrence ;
                rdfs:range xsd:dateTime ;
                rdfs:comment "The timestamp when this failure occurrence actually happened in the physical world. Essential for failure frequency analysis and temporal correlation."@en ;
                rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                rdfs:label "occurrence time"@en .


###  https://w3id.org/mqto#score
:score rdf:type owl:DatatypeProperty ;
       rdfs:domain :CountermeasureExecution ;
       rdfs:range xsd:double ;
       rdfs:comment "A numeric score or confidence value assigned to a CountermeasureExecution recommendation. Used by diagnostic systems to rank countermeasure suggestions."@en ;
       rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
       rdfs:label "score"@en ;
       <http://www.w3.org/2004/02/skos/core#editorialNote> "The interpretation and scale of scores is application-specific."@en .


###  https://w3id.org/mqto#startTime
:startTime rdf:type owl:DatatypeProperty ;
           rdfs:range xsd:dateTime ;
           rdfs:comment "The timestamp when an activity or time-bound entity began. General-purpose temporal property applicable to execution contexts."@en ;
           rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
           rdfs:label "start time"@en .


###  https://w3id.org/mqto#timeWindowSize
:timeWindowSize rdf:type owl:DatatypeProperty ;
                rdfs:domain :Metric ;
                rdfs:range xsd:duration ;
                rdfs:comment "The duration over which a Metric aggregates observations, expressed as xsd:duration. Defines how far back in time to consider observation data."@en ;
                rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                rdfs:label "time window size"@en ;
                <http://www.w3.org/2004/02/skos/core#example> "PT5M (5 minutes), PT1H (1 hour)"@en .


###  https://w3id.org/mqto#upperBound
:upperBound rdf:type owl:DatatypeProperty ;
            rdfs:domain :Metric ;
            rdfs:range xsd:double ;
            rdfs:comment "The maximum acceptable threshold value for a Metric. Values above the upperBound indicate a threshold violation."@en ;
            rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
            rdfs:label "upper bound"@en ;
            <http://www.w3.org/2004/02/skos/core#editorialNote> "Stored as dimensionless xsd:double; unit of measurement determined by the Metric's associated Signal."@en .


###  https://w3id.org/mqto#weight
:weight rdf:type owl:DatatypeProperty ;
        rdfs:domain [ rdf:type owl:Class ;
                      owl:unionOf ( :Countermeasure
                                    :FailureMode
                                  )
                    ] ;
        rdfs:range xsd:int ;
        rdfs:comment "A relative ranking weight. For Failure Modes: severity or priority. For Countermeasures: effectiveness or preference. Provides anchor points for external ranking logic."@en ;
        rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
        rdfs:label "weight"@en ;
        <http://www.w3.org/2004/02/skos/core#editorialNote> "The ontology does not prescribe the ranking algorithm itself; interpretation is application-specific."@en .


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

###  http://www.w3.org/1999/02/22-rdf-syntax-ns#Property
rdf:Property rdf:type owl:Class .


###  http://www.w3.org/ns/sosa/ActuableProperty
<http://www.w3.org/ns/sosa/ActuableProperty> rdf:type owl:Class .


###  https://w3id.org/mqto#ActuableProperty
:ActuableProperty rdf:type owl:Class ;
                  rdfs:subClassOf <http://www.w3.org/ns/sosa/ActuableProperty> ,
                                  :Property ;
                  rdfs:comment "An actuable property of a FailureSource that can be controlled or modified via Actuations. Implements a Signal specification."@en ;
                  rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                  rdfs:label "Actuable Property"@en ;
                  <http://www.w3.org/2004/02/skos/core#example> "setpoints, valve positions, motor speeds, control commands"@en .


###  https://w3id.org/mqto#Actuation
:Actuation rdf:type owl:Class ;
           rdfs:subClassOf <http://www.w3.org/ns/sosa/Actuation> ,
                           :DataEvent ;
           rdfs:comment "A single actuation event that changes the state of an ActuableProperty. As a DataEvent, can serve as the basis for MetricAssessments."@en ;
           rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
           rdfs:label "Actuation"@en .


###  https://w3id.org/mqto#Countermeasure
:Countermeasure rdf:type owl:Class ;
                rdfs:subClassOf <http://rds.posccaesar.org/ontology/lis14/rdl/Activity> ,
                                <http://rds.posccaesar.org/ontology/lis14/rdl/Specified> ,
                                <https://w3id.org/pko#Procedure> ,
                                [ rdf:type owl:Restriction ;
                                  owl:onProperty :hasStepList ;
                                  owl:someValuesFrom :CountermeasureStepList
                                ] ,
                                [ rdf:type owl:Restriction ;
                                  owl:onProperty <http://rds.posccaesar.org/ontology/lis14/rdl/hasParticipant> ;
                                  owl:allValuesFrom [ rdf:type owl:Class ;
                                                      owl:unionOf ( :Machine
                                                                    :Manpower
                                                                    :Material
                                                                  )
                                                    ]
                                ] ,
                                [ rdf:type owl:Restriction ;
                                  owl:onProperty :mitigates ;
                                  owl:allValuesFrom :FailureMode
                                ] ;
                rdfs:comment "A remediation procedure that mitigates one or more Failure Modes. Structured as an ordered sequence of CountermeasureSteps."@en ;
                rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                rdfs:label "Countermeasure"@en .


###  https://w3id.org/mqto#CountermeasureExecution
:CountermeasureExecution rdf:type owl:Class ;
                         rdfs:subClassOf <http://rds.posccaesar.org/ontology/lis14/rdl/Activity> ,
                                         <http://rds.posccaesar.org/ontology/lis14/rdl/Actual> ,
                                         <https://w3id.org/pko#ProcedureExecution> ,
                                         [ rdf:type owl:Restriction ;
                                           owl:onProperty <http://rds.posccaesar.org/ontology/lis14/rdl/implements> ;
                                           owl:someValuesFrom :Countermeasure
                                         ] ,
                                         [ rdf:type owl:Restriction ;
                                           owl:onProperty :mitigatedOccurrence ;
                                           owl:allValuesFrom :FailureOccurrence
                                         ] ,
                                         [ rdf:type owl:Restriction ;
                                           owl:onProperty :suggestedBy ;
                                           owl:allValuesFrom :FailureOccurrence
                                         ] ,
                                         [ rdf:type owl:Restriction ;
                                           owl:onProperty <https://w3id.org/pko#includesStepExecution> ;
                                           owl:allValuesFrom :CountermeasureStepExecution
                                         ] ;
                         rdfs:comment "The actual execution of a Countermeasure procedure, performed to mitigate one or more FailureOccurrences. Step sequencing uses pko:nextStepExecution/pko:previousStepExecution."@en ;
                         rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                         rdfs:label "Countermeasure Execution"@en .


###  https://w3id.org/mqto#CountermeasureStep
:CountermeasureStep rdf:type owl:Class ;
                    rdfs:subClassOf <http://purl.org/net/p-plan#Step> ,
                                    <http://rds.posccaesar.org/ontology/lis14/rdl/Activity> ,
                                    <http://rds.posccaesar.org/ontology/lis14/rdl/Specified> ;
                    rdfs:comment "A reusable specification of a single remediation step."@en ;
                    rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                    rdfs:label "Countermeasure Step"@en ;
                    <http://www.w3.org/2004/02/skos/core#editorialNote> "Ordering is externalized to CountermeasureStepList containers, enabling the same step to appear in multiple Countermeasure procedures."@en .


###  https://w3id.org/mqto#CountermeasureStepExecution
:CountermeasureStepExecution rdf:type owl:Class ;
                             rdfs:subClassOf <http://rds.posccaesar.org/ontology/lis14/rdl/Activity> ,
                                             <http://rds.posccaesar.org/ontology/lis14/rdl/Actual> ,
                                             <https://w3id.org/pko#StepExecution> ,
                                             [ rdf:type owl:Restriction ;
                                               owl:onProperty <http://rds.posccaesar.org/ontology/lis14/rdl/implements> ;
                                               owl:someValuesFrom :CountermeasureStep
                                             ] ;
                             rdfs:comment "The actual execution of one CountermeasureStep. Step sequencing uses pko:nextStepExecution and pko:previousStepExecution."@en ;
                             rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                             rdfs:label "Countermeasure Step Execution"@en .


###  https://w3id.org/mqto#CountermeasureStepList
:CountermeasureStepList rdf:type owl:Class ;
                        rdfs:comment "An ordered, reusable container of CountermeasureSteps. Uses an OWL-native linked list pattern (mqto:first / mqto:rest), terminated by mqto:nil."@en ;
                        rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                        rdfs:label "Countermeasure Step List"@en ;
                        rdfs:seeAlso <http://www.w3.org/TR/owl2-primer/> ;
                        <http://www.w3.org/2004/02/skos/core#editorialNote> "Uses explicit OWL class and property definitions instead of rdf:List for reasoner compatibility. Standard rdf:List creates known issues with OWL reasoners due to blank node handling and recursive structure reasoning. See OWL 2 Primer Section 4.2."@en .


###  https://w3id.org/mqto#DataEvent
:DataEvent rdf:type owl:Class ;
           rdfs:comment "Common superclass of mqto:Observation and mqto:Actuation. Allows MetricAssessments to be grounded in either sensor observations or actuation events."@en ;
           rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
           rdfs:label "Data Event"@en ;
           <http://www.w3.org/2004/02/skos/core#editorialNote> "Mirrors the mqto:Property pattern which bridges ObservableProperty and ActuableProperty at the actual level."@en .


###  https://w3id.org/mqto#FailureMode
:FailureMode rdf:type owl:Class ;
             rdfs:subClassOf <http://rds.posccaesar.org/ontology/lis14/rdl/Specified> ,
                             [ rdf:type owl:Restriction ;
                               owl:onProperty :failureBelongsTo ;
                               owl:someValuesFrom :FailureSourceCategory
                             ] ,
                             [ rdf:type owl:Restriction ;
                               owl:onProperty :causedBy ;
                               owl:allValuesFrom :FailureMode
                             ] ,
                             [ rdf:type owl:Restriction ;
                               owl:onProperty :causes ;
                               owl:allValuesFrom :FailureMode
                             ] ,
                             [ rdf:type owl:Restriction ;
                               owl:onProperty :failureBelongsTo ;
                               owl:allValuesFrom :FailureSourceCategory
                             ] ,
                             [ rdf:type owl:Restriction ;
                               owl:onProperty :mitigatedBy ;
                               owl:allValuesFrom :Countermeasure
                             ] ,
                             [ rdf:type owl:Restriction ;
                               owl:onProperty :refersToMetric ;
                               owl:allValuesFrom :Metric
                             ] ;
             rdfs:comment "A manner in which a manufacturing component, system, or process could potentially fail (per IEC 60812:2018). Supports causal chains and countermeasure mitigation. Actual-level counterpart: FailureOccurrence."@en ;
             rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
             rdfs:label "Failure Mode"@en .


###  https://w3id.org/mqto#FailureOccurrence
:FailureOccurrence rdf:type owl:Class ;
                   rdfs:subClassOf <http://rds.posccaesar.org/ontology/lis14/rdl/Actual> ,
                                   [ rdf:type owl:Restriction ;
                                     owl:onProperty <http://rds.posccaesar.org/ontology/lis14/rdl/implements> ;
                                     owl:someValuesFrom :FailureMode
                                   ] ,
                                   [ rdf:type owl:Restriction ;
                                     owl:onProperty :appearedOn ;
                                     owl:someValuesFrom :FailureSource
                                   ] ,
                                   [ rdf:type owl:Restriction ;
                                     owl:onProperty :raisedBy ;
                                     owl:allValuesFrom :MetricAssessment
                                   ] ;
                   rdfs:comment "A specific quality defect or operational problem detected during production. Implements a FailureMode specification and is raised by MetricAssessments."@en ;
                   rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                   rdfs:label "Failure Occurrence"@en .


###  https://w3id.org/mqto#FailureSource
:FailureSource rdf:type owl:Class ;
               rdfs:subClassOf <http://rds.posccaesar.org/ontology/lis14/rdl/Actual> ;
               rdfs:comment "Abstract superclass for actual-level counterparts of FailureSourceCategory. Concrete subclasses: PhysicalMachine, PhysicalMaterial, and MethodExecution."@en ;
               rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
               rdfs:label "Failure Source"@en ;
               <http://www.w3.org/2004/02/skos/core#editorialNote> "sosa:FeatureOfInterest is declared on the physical subclasses rather than here because MethodExecution requires lis:Activity (lis:Temporal), which is disjoint with sosa:FeatureOfInterest (lis:Object) in the ido-ssn alignment."@en .


###  https://w3id.org/mqto#FailureSourceCategory
:FailureSourceCategory rdf:type owl:Class ;
                       rdfs:subClassOf <http://rds.posccaesar.org/ontology/lis14/rdl/Specified> ,
                                       [ rdf:type owl:Restriction ;
                                         owl:onProperty :hasFailure ;
                                         owl:allValuesFrom :FailureMode
                                       ] ,
                                       [ rdf:type owl:Restriction ;
                                         owl:onProperty :hasMetric ;
                                         owl:allValuesFrom :Metric
                                       ] ,
                                       [ rdf:type owl:Restriction ;
                                         owl:onProperty :providesSignal ;
                                         owl:allValuesFrom :Signal
                                       ] ;
                       rdfs:comment "Abstract superclass for root cause categories in an Ishikawa (fishbone) diagram. Has five concrete subclasses organizing failure causes by type."@en ;
                       rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                       rdfs:label "Failure Source Category"@en .


###  https://w3id.org/mqto#Machine
:Machine rdf:type owl:Class ;
         rdfs:subClassOf <http://rds.posccaesar.org/ontology/lis14/rdl/PhysicalArtefact> ,
                         :FailureSourceCategory ,
                         [ rdf:type owl:Restriction ;
                           owl:onProperty <http://rds.posccaesar.org/ontology/lis14/rdl/participantIn> ;
                           owl:allValuesFrom :Method
                         ] ;
         rdfs:comment "Manufacturing equipment, tools, and devices. Represents specified physical resources that participate in Methods."@en ;
         rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
         rdfs:label "Machine"@en .


###  https://w3id.org/mqto#Manpower
:Manpower rdf:type owl:Class ;
          rdfs:subClassOf <http://rds.posccaesar.org/ontology/lis14/rdl/Person> ,
                          :FailureSourceCategory ;
          rdfs:comment "Workforce, operators, and personnel involved in manufacturing. Represents specified human resource roles that contribute to processes and participate in Methods."@en ;
          rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
          rdfs:label "Manpower"@en .


###  https://w3id.org/mqto#Material
:Material rdf:type owl:Class ;
          rdfs:subClassOf <http://rds.posccaesar.org/ontology/lis14/rdl/PhysicalArtefact> ,
                          :FailureSourceCategory ,
                          [ rdf:type owl:Restriction ;
                            owl:onProperty <http://rds.posccaesar.org/ontology/lis14/rdl/participantIn> ;
                            owl:allValuesFrom :Method
                          ] ;
          rdfs:comment "Raw materials, consumables, and inputs to manufacturing. Represents specified material types that participate in Methods."@en ;
          rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
          rdfs:label "Material"@en .


###  https://w3id.org/mqto#Measurement
:Measurement rdf:type owl:Class ;
             rdfs:subClassOf <http://www.w3.org/ns/sosa/Procedure> ,
                             :FailureSourceCategory ;
             rdfs:comment "A measurement procedure or inspection method. Specifies how a quantity is measured or a quality attribute is assessed."@en ;
             rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
             rdfs:label "Measurement"@en ;
             <http://www.w3.org/2004/02/skos/core#editorialNote> "Actual-level counterpart expressed via sosa:Observation instances referencing this procedure through sosa:usedProcedure."@en ,
                                                                 "As a subclass of sosa:Procedure (lis:InformationObject in ido-ssn), Measurement is an information object rather than a physical thing or activity."@en .


###  https://w3id.org/mqto#Method
:Method rdf:type owl:Class ;
        rdfs:subClassOf <http://rds.posccaesar.org/ontology/lis14/rdl/Activity> ,
                        :FailureSourceCategory ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty <http://rds.posccaesar.org/ontology/lis14/rdl/activityPartOf> ;
                          owl:allValuesFrom :Method
                        ] ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty <http://rds.posccaesar.org/ontology/lis14/rdl/hasActivityPart> ;
                          owl:allValuesFrom :Method
                        ] ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty <http://rds.posccaesar.org/ontology/lis14/rdl/hasParticipant> ;
                          owl:allValuesFrom [ rdf:type owl:Class ;
                                              owl:unionOf ( :Machine
                                                            :Manpower
                                                            :Material
                                                          )
                                            ]
                        ] ;
        rdfs:comment "A manufacturing process or procedure. Represents specified activities and operations that can be decomposed into sub-methods."@en ;
        rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
        rdfs:label "Method"@en .


###  https://w3id.org/mqto#MethodExecution
:MethodExecution rdf:type owl:Class ;
                 rdfs:subClassOf <http://rds.posccaesar.org/ontology/lis14/rdl/Activity> ,
                                 :FailureSource ,
                                 [ rdf:type owl:Restriction ;
                                   owl:onProperty <http://rds.posccaesar.org/ontology/lis14/rdl/implements> ;
                                   owl:someValuesFrom :Method
                                 ] ;
                 rdfs:comment "Actual execution of a Method, the instance-level counterpart of Method. A concrete temporal manufacturing activity."@en ;
                 rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                 rdfs:label "Method Execution"@en ;
                 <http://www.w3.org/2004/02/skos/core#editorialNote> "Not a sosa:FeatureOfInterest because that maps to lis:Object in ido-ssn, which is disjoint with lis:Temporal. Observations are expressed indirectly through participants."@en .


###  https://w3id.org/mqto#Metric
:Metric rdf:type owl:Class ;
        rdfs:subClassOf <http://rds.posccaesar.org/ontology/lis14/rdl/Specified> ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty :metricBelongsTo ;
                          owl:allValuesFrom :FailureSourceCategory
                        ] ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty :metricReferredBy ;
                          owl:allValuesFrom :FailureMode
                        ] ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty :readsFrom ;
                          owl:allValuesFrom :Signal
                        ] ;
        rdfs:comment "A specified calculation or KPI that bridges quantitative sensor data and qualitative failure detection. Applies an assessment method and compares results against threshold bounds. Actual-level counterpart: MetricAssessment."@en ;
        rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
        rdfs:label "Metric"@en .


###  https://w3id.org/mqto#MetricAssessment
:MetricAssessment rdf:type owl:Class ;
                  rdfs:subClassOf <http://rds.posccaesar.org/ontology/lis14/rdl/Actual> ,
                                  [ rdf:type owl:Restriction ;
                                    owl:onProperty <http://rds.posccaesar.org/ontology/lis14/rdl/implements> ;
                                    owl:someValuesFrom :Metric
                                  ] ,
                                  [ rdf:type owl:Restriction ;
                                    owl:onProperty :calculatedFor ;
                                    owl:someValuesFrom :FailureSource
                                  ] ,
                                  [ rdf:type owl:Restriction ;
                                    owl:onProperty :basedOn ;
                                    owl:allValuesFrom :DataEvent
                                  ] ,
                                  [ rdf:type owl:Restriction ;
                                    owl:onProperty :evaluatesProperty ;
                                    owl:allValuesFrom :Property
                                  ] ,
                                  [ rdf:type owl:Restriction ;
                                    owl:onProperty :raised ;
                                    owl:allValuesFrom :FailureOccurrence
                                  ] ;
                  rdfs:comment "An actual-level evaluation that implements a Metric specification. Computes a calculatedValue from DataEvents and compares it against threshold bounds to produce a pass/fail assessmentValue."@en ;
                  rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                  rdfs:label "Metric Assessment"@en ;
                  <http://www.w3.org/2004/02/skos/core#example> """ex:MA_001  a mqto:MetricAssessment ;
    lis:implements       ex:TemperatureMetric ;
    mqto:calculatedFor   ex:Machine4115 ;
    mqto:calculatedValue 718.3 ;
    mqto:assessmentValue true ;
    mqto:calculatedTime  \"2026-04-14T08:15:00\"^^xsd:dateTime .
    # calculatedValue was read from Result.ex:temperature via resultProperty"""@en .


###  https://w3id.org/mqto#ObservableProperty
:ObservableProperty rdf:type owl:Class ;
                    rdfs:subClassOf <http://www.w3.org/ns/sosa/ObservableProperty> ,
                                    :Property ;
                    rdfs:comment "An observable property of a FailureSource that can be measured via Observations. Implements a Signal specification."@en ;
                    rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                    rdfs:label "Observable Property"@en ;
                    <http://www.w3.org/2004/02/skos/core#editorialNote> "Subclassing both sosa:ObservableProperty (an abstract quality type) and lis:Actual (via mqto:Property) reflects that each individual is a concrete instance tied to a particular item, not a reusable abstract type. This parallels how sosa:ObservableProperty instances are used in practice (e.g. 'the temperature of this specific machine part')."@en .


###  https://w3id.org/mqto#Observation
:Observation rdf:type owl:Class ;
             rdfs:subClassOf <http://www.w3.org/ns/sosa/Observation> ,
                             :DataEvent ;
             rdfs:comment "A single sensor reading or measurement event. As a DataEvent, can serve as the basis for a MetricAssessment."@en ;
             rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
             rdfs:label "Observation"@en .


###  https://w3id.org/mqto#PhysicalMachine
:PhysicalMachine rdf:type owl:Class ;
                 rdfs:subClassOf <http://rds.posccaesar.org/ontology/lis14/rdl/PhysicalArtefact> ,
                                 <http://www.w3.org/ns/sosa/FeatureOfInterest> ,
                                 :FailureSource ,
                                 [ rdf:type owl:Restriction ;
                                   owl:onProperty <http://rds.posccaesar.org/ontology/lis14/rdl/implements> ;
                                   owl:someValuesFrom :Machine
                                 ] ;
                 rdfs:comment "Actual machine instance, the instance-level counterpart of Machine. Can be directly observed and have ssn:Properties."@en ;
                 rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                 rdfs:label "Physical Machine"@en .


###  https://w3id.org/mqto#PhysicalMaterial
:PhysicalMaterial rdf:type owl:Class ;
                  rdfs:subClassOf <http://rds.posccaesar.org/ontology/lis14/rdl/PhysicalArtefact> ,
                                  <http://www.w3.org/ns/sosa/FeatureOfInterest> ,
                                  :FailureSource ,
                                  [ rdf:type owl:Restriction ;
                                    owl:onProperty <http://rds.posccaesar.org/ontology/lis14/rdl/implements> ;
                                    owl:someValuesFrom :Material
                                  ] ;
                  rdfs:comment "Actual material instance, the instance-level counterpart of Material. Can be directly observed and have ssn:Properties."@en ;
                  rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
                  rdfs:label "Physical Material"@en .


###  https://w3id.org/mqto#Property
:Property rdf:type owl:Class ;
          rdfs:subClassOf <http://rds.posccaesar.org/ontology/lis14/rdl/Actual> ,
                          <http://www.w3.org/ns/ssn/Property> ,
                          [ rdf:type owl:Restriction ;
                            owl:onProperty <http://rds.posccaesar.org/ontology/lis14/rdl/implements> ;
                            owl:someValuesFrom :Signal
                          ] ,
                          [ rdf:type owl:Restriction ;
                            owl:onProperty :evaluatedBy ;
                            owl:allValuesFrom :MetricAssessment
                          ] ;
          rdfs:comment "Actual-level counterpart of Signal. Represents an observable or actuable property of a FailureSource. Abstract superclass for ObservableProperty and ActuableProperty."@en ;
          rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
          rdfs:label "Property"@en .


###  https://w3id.org/mqto#Result
:Result rdf:type owl:Class ;
        rdfs:subClassOf <http://www.w3.org/ns/sosa/Result> ;
        rdfs:comment "The outcome of an Observation or Actuation, containing measured values as data properties. MetricAssessments extract values using resultProperty."@en ;
        rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
        rdfs:label "Result"@en ;
        <http://www.w3.org/2004/02/skos/core#example> """A die-casting shot produces one Result per PLC cycle carrying multiple process values:
  ex:Result_Shot042  a mqto:Result ;
      ex:temperature   718.3 ;
      ex:pressure      980.0 ;
      ex:cycleTime      24.7 ."""@en .


###  https://w3id.org/mqto#Signal
:Signal rdf:type owl:Class ;
        rdfs:subClassOf <http://rds.posccaesar.org/ontology/lis14/rdl/Specified> ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty :readBy ;
                          owl:allValuesFrom :Metric
                        ] ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty :signalProvidedBy ;
                          owl:allValuesFrom :FailureSourceCategory
                        ] ;
        rdfs:comment "A specified data channel such as a PLC variable, analog line, fieldbus message, or time-series stream. Describes channel metadata rather than particular observations or sensor devices. Actual-level counterpart: Property."@en ;
        rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
        rdfs:label "Signal"@en ;
        <http://www.w3.org/2004/02/skos/core#editorialNote> "Distinct from sosa:ObservableProperty (an observable quality of a feature of interest at the actual level) and from sosa:Sensor (the physical observing device). The actual-level counterpart is mqto:Property."@en .


#################################################################
#    Individuals
#################################################################

###  https://orcid.org/0000-0001-9521-8907
<https://orcid.org/0000-0001-9521-8907> rdf:type owl:NamedIndividual ,
                                                 <http://xmlns.com/foaf/0.1/Person> ;
                                        <http://xmlns.com/foaf/0.1/name> "Stefan Bischof" ;
                                        <https://schema.org/affiliation> <https://www.siemens.at/> .


###  https://orcid.org/0000-0002-3050-159X
<https://orcid.org/0000-0002-3050-159X> rdf:type owl:NamedIndividual ,
                                                 <http://xmlns.com/foaf/0.1/Person> ;
                                        <http://xmlns.com/foaf/0.1/name> "Josiane Xavier Parreira" ;
                                        <https://schema.org/affiliation> <https://www.siemens.at/> .


###  https://orcid.org/0000-0002-5183-2486
<https://orcid.org/0000-0002-5183-2486> rdf:type owl:NamedIndividual ,
                                                 <http://xmlns.com/foaf/0.1/Person> ;
                                        <http://xmlns.com/foaf/0.1/name> "Simon Steyskal" ;
                                        <https://schema.org/affiliation> <https://www.siemens.at/> .


###  https://orcid.org/0000-0003-2661-5575
<https://orcid.org/0000-0003-2661-5575> rdf:type owl:NamedIndividual ,
                                                 <http://xmlns.com/foaf/0.1/Person> ;
                                        <http://xmlns.com/foaf/0.1/name> "Florian Rötzer" ;
                                        <https://schema.org/affiliation> <https://www.ait.ac.at/> .


###  https://orcid.org/0000-0003-3445-0504
<https://orcid.org/0000-0003-3445-0504> rdf:type owl:NamedIndividual ,
                                                 <http://xmlns.com/foaf/0.1/Person> ;
                                        <http://xmlns.com/foaf/0.1/name> "Erwin Filtz" ;
                                        <https://schema.org/affiliation> <https://www.siemens.at/> .


###  https://orcid.org/0009-0009-9349-9683
<https://orcid.org/0009-0009-9349-9683> rdf:type owl:NamedIndividual ,
                                                 <http://xmlns.com/foaf/0.1/Person> ;
                                        <http://xmlns.com/foaf/0.1/name> "Stephan Strommer" ;
                                        <https://schema.org/affiliation> <https://www.ait.ac.at/> .


###  https://w3id.org/mqto#nil
:nil rdf:type owl:NamedIndividual ,
              :CountermeasureStepList ;
     rdfs:comment "The empty-list terminator for mqto:CountermeasureStepList, analogous to rdf:nil. Every well-formed step list must have its final node's mqto:rest pointing to this individual."@en ;
     rdfs:isDefinedBy <https://w3id.org/mqto/1.0> ;
     rdfs:label "nil"@en .


#################################################################
#    Annotations
#################################################################

<https://www.ait.ac.at/> rdfs:label "AIT Austrian Institute of Technology GmbH" .


<https://www.siemens.at/> rdfs:label "Siemens AG Österreich" .


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