@prefix : <https://ontology.flandersmake.be/thing/ontology#> .
@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://ontology.flandersmake.be/thing/ontology#> .

<https://ontology.flandersmake.be/thing/ontology> rdf:type owl:Ontology ;
                                                   owl:versionIRI <https://ontology.flandersmake.be/thing/ontology/1.0.0> ;
                                                   <http://purl.org/dc/elements/1.1/abstract> """
The core Ontology for production related concepts (Product, Process, Resource). It provides
2 ubiquitous aspects: hierarchical structure and type-instance relationship.
An Entity is an object in the application domain. A SubEntity represents a child in the 
hierarchical structure. A Definition represents a type in the type-instance relationship.
"""@en ;
                                                   <http://purl.org/dc/elements/1.1/description> """
The following concepts are formalized:
- an **Entity** is an instance
- a **Definition** is information common to a set of instances
- a **SubEntity** is a (reified) reference to a child of the Entity

```mermaid
classDiagram
    class Entity  
    class Definition:::definition 
    class SubDefinition:::definition 

    Entity o-- SubEntity: subEntity
    Definition o-- SubDefinition: subDefinition
    Definition --|> Entity
    SubDefinition --|> SubEntity
    Entity --> Definition : entityDefinition
    SubEntity --> Entity : subEntityEntity
    SubDefinition --> Definition : subDefinitionDefinition
    SubEntity --> SubDefinition : subEntityDefinition

    classDef default fill:#f96,color:black
    classDef definition fill:#e9edc9,color:black
```

"""@en ;
                                                   <http://purl.org/dc/elements/1.1/title> "The Thing Ontology"@en ;
                                                   <http://purl.org/dc/terms/created> "2025-11-01"^^xsd:date ;
                                                   <http://purl.org/dc/terms/issued> "2026-01-08"^^xsd:date ;
                                                   <http://purl.org/dc/terms/modified> "2026-01-08"^^xsd:date ;
                                                   <http://purl.org/vocab/vann/preferredNamespacePrefix> "thing" ;
                                                   <http://purl.org/vocab/vann/preferredNamespaceUri> "https://ontology.flandersmake.be/thing/ontology#" ;
                                                   rdfs:comment "A core ontology for production related concepts" ;
                                                   rdfs:label "The Thing Ontology"@en ;
                                                   owl:versionInfo "1.0.0" ;
                                                   <https://w3id.org/widoco/vocab#introduction> """
The ontology supports 2 transversal aspects
- **hierarchy** (or parent-child relationship):
  - things (elements) are composed of sub-things (sub-elements)
- **definition** (or type instance relationship):
  - things (entities) are defined by other things (definitions)

Hiearchy can be for instance:
- for a Product, its parts, which are typically reified relations to other (sub) Products
- for a Process, its steps, which are typically reified relations to other (sub) Processes

Definitions can be for instance:
- for a Product, its design, or its make
- for a Product with variability, values for the variation points
- for a Process excution, a reusable description of the things to be performed."""@en ;
                                                   <https://w3id.org/widoco/vocab#jsonldSerialization> "thing.jsonld" ;
                                                   <https://w3id.org/widoco/vocab#ntSerialization> "thing.nt" ;
                                                   <https://w3id.org/widoco/vocab#rdfxmlSerialization> "thing.rdf" ;
                                                   <https://w3id.org/widoco/vocab#turtleSerialization> "thing.ttl" .

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

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


###  http://purl.org/dc/elements/1.1/description
<http://purl.org/dc/elements/1.1/description> rdf:type owl:AnnotationProperty .


###  http://purl.org/dc/elements/1.1/title
<http://purl.org/dc/elements/1.1/title> rdf:type owl:AnnotationProperty .


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


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


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


###  http://purl.org/vocab/vann/preferredNamespacePrefix
<http://purl.org/vocab/vann/preferredNamespacePrefix> rdf:type owl:AnnotationProperty .


###  http://purl.org/vocab/vann/preferredNamespaceUri
<http://purl.org/vocab/vann/preferredNamespaceUri> rdf:type owl:AnnotationProperty .


###  https://w3id.org/widoco/vocab#introduction
<https://w3id.org/widoco/vocab#introduction> rdf:type owl:AnnotationProperty .


###  https://w3id.org/widoco/vocab#jsonldSerialization
<https://w3id.org/widoco/vocab#jsonldSerialization> rdf:type owl:AnnotationProperty .


###  https://w3id.org/widoco/vocab#ntSerialization
<https://w3id.org/widoco/vocab#ntSerialization> rdf:type owl:AnnotationProperty .


###  https://w3id.org/widoco/vocab#rdfxmlSerialization
<https://w3id.org/widoco/vocab#rdfxmlSerialization> rdf:type owl:AnnotationProperty .


###  https://w3id.org/widoco/vocab#turtleSerialization
<https://w3id.org/widoco/vocab#turtleSerialization> rdf:type owl:AnnotationProperty .


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

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


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

###  https://ontology.flandersmake.be/thing/ontology#entityDefinition
:entityDefinition rdf:type owl:ObjectProperty ;
                  rdfs:domain :Entity ;
                  rdfs:range :Definition ;
                  rdfs:comment "The definition(s) associated witht the subject entity"@en .


###  https://ontology.flandersmake.be/thing/ontology#hasSubDefinition
:hasSubDefinition rdf:type owl:ObjectProperty ;
                  rdfs:subPropertyOf :hasSubEntity ;
                  rdfs:domain :Definition ;
                  rdfs:range :Definition ;
                  owl:propertyChainAxiom ( :subDefinition
                                           :subDefinitionDefinition
                                         ) .


###  https://ontology.flandersmake.be/thing/ontology#hasSubEntity
:hasSubEntity rdf:type owl:ObjectProperty ;
              rdfs:domain :Entity ;
              rdfs:range :Entity ;
              owl:propertyChainAxiom ( :subEntity
                                       :subEntityEntity
                                     ) .


###  https://ontology.flandersmake.be/thing/ontology#subDefinition
:subDefinition rdf:type owl:ObjectProperty ;
               rdfs:subPropertyOf :subEntity ;
               rdfs:domain :Definition ;
               rdfs:range :SubDefinition .


###  https://ontology.flandersmake.be/thing/ontology#subDefinitionDefinition
:subDefinitionDefinition rdf:type owl:ObjectProperty ;
                         rdfs:subPropertyOf :subEntityEntity ;
                         rdf:type owl:FunctionalProperty ;
                         rdfs:domain :SubDefinition ;
                         rdfs:range :Definition .


###  https://ontology.flandersmake.be/thing/ontology#subEntity
:subEntity rdf:type owl:ObjectProperty ;
           rdfs:domain :Entity ;
           rdfs:range :SubEntity .


###  https://ontology.flandersmake.be/thing/ontology#subEntityDefinition
:subEntityDefinition rdf:type owl:ObjectProperty ;
                     rdfs:domain :SubEntity ;
                     rdfs:range :SubDefinition ;
                     rdfs:comment "The definition(s) associated witht the subject entity"@en .


###  https://ontology.flandersmake.be/thing/ontology#subEntityEntity
:subEntityEntity rdf:type owl:ObjectProperty ,
                          owl:FunctionalProperty ;
                 rdfs:domain :SubEntity ;
                 rdfs:range :Entity .


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

###  https://ontology.flandersmake.be/thing/ontology#Definition
:Definition rdf:type owl:Class ;
            rdfs:subClassOf :Entity ;
            rdfs:comment "A Definition is some data shared by a group of Entities, describing (defining) some aspect common to these entities"@en .


###  https://ontology.flandersmake.be/thing/ontology#Entity
:Entity rdf:type owl:Class ;
        rdfs:comment "An Entity is something either with a parent-child relationship, or with a definition relationship, or with both"@en .


###  https://ontology.flandersmake.be/thing/ontology#SubDefinition
:SubDefinition rdf:type owl:Class ;
               rdfs:subClassOf :SubEntity ;
               rdfs:comment "An SubDefinition is the reified parent-child relationship: it represents a child of some parent Definition (but is not the child)"@en .


###  https://ontology.flandersmake.be/thing/ontology#SubEntity
:SubEntity rdf:type owl:Class ;
           rdfs:comment "An SubEntity is the reified parent-child relationship: it represents a child of some parent Entity (but is not the child)"@en .


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