@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix odp:   <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix vann:  <http://purl.org/vocab/vann/> .

<http://w3id.org/CEON/ontology/product/associatedWithMatter>
        a             owl:ObjectProperty ;
        rdfs:comment  "associatedWithMatter intends to represent the matter to which a matter compopsition information regards to." ;
        rdfs:domain   <http://w3id.org/CEON/ontology/product/MatterComposition> ;
        rdfs:label    "associated with matter" ;
        rdfs:range    <http://w3id.org/CEON/ontology/resourceODP/Matter> .

<http://w3id.org/CEON/ontology/product/SupplierLocation>
        a                owl:Class ;
        rdfs:comment     "The location of supplier of a product or item." ;
        rdfs:label       "Supplier Location" ;
        rdfs:subClassOf  <http://w3id.org/CEON/ontology/location/Location> .

<http://w3id.org/CEON/ontology/product/hasProductObjectComponent>
        a            owl:ObjectProperty ;
        rdfs:domain  <http://w3id.org/CEON/ontology/product/Item> ;
        rdfs:label   "has product object component" ;
        rdfs:range   <http://w3id.org/CEON/ontology/product/Item> .

<http://w3id.org/CEON/ontology/product/REACHCompliance>
        a                    owl:Class ;
        rdfs:comment         "REACH (Regulation on the registration, evaluation, authorisation and restriction of chemicals) compliance is a compliance issueing that the REACH regulation is satisfied." ;
        rdfs:label           "REACH Compliance" ;
        rdfs:seeAlso         "https://environment.ec.europa.eu/topics/chemicals/reach-regulation_en" ;
        rdfs:subClassOf      <http://w3id.org/CEON/ontology/product/Compliance> ;
        owl:equivalentClass  [ a               owl:Restriction ;
                               owl:hasValue    <http://w3id.org/CEON/ontology/product/REACH> ;
                               owl:onProperty  <http://w3id.org/CEON/ontology/product/complianceWith>
                             ] .

<http://w3id.org/CEON/ontology/product/ProductObjectComposition>
        a                owl:Class ;
        rdfs:comment     "A product object composition is the composed information of a product object in terms of a specific component, in which such a component is also a product object." ;
        rdfs:label       "Product Object Composition" ;
        rdfs:subClassOf  <http://w3id.org/CEON/ontology/product/Composition> ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               <http://w3id.org/CEON/ontology/product/Item> ;
                           owl:onProperty            <http://w3id.org/CEON/ontology/product/associatedWithProductObject> ;
                           owl:qualifiedCardinality  "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger>
                         ] .

<http://w3id.org/CEON/ontology/product/hasOriginLocation>
        a                   owl:ObjectProperty ;
        rdfs:comment        "Used to represent the location of origin of a product or product object (item)." ;
        rdfs:domain         [ a            owl:Class ;
                              owl:unionOf  ( <http://w3id.org/CEON/ontology/product/Item> <http://w3id.org/CEON/ontology/product/Product> )
                            ] ;
        rdfs:label          "has origin location" ;
        rdfs:range          <http://w3id.org/CEON/ontology/product/OriginLocation> ;
        rdfs:subPropertyOf  <http://w3id.org/CEON/ontology/location/hasLocation> .

<http://w3id.org/CEON/ontology/product/hasManufacturerLocation>
        a                   owl:ObjectProperty ;
        rdfs:comment        "Used to represent the location of manufacturer of a product or product object (item)." ;
        rdfs:domain         [ a            owl:Class ;
                              owl:unionOf  ( <http://w3id.org/CEON/ontology/product/Item> <http://w3id.org/CEON/ontology/product/Product> )
                            ] ;
        rdfs:label          "has manufacture location" ;
        rdfs:range          <http://w3id.org/CEON/ontology/product/ManufactureLocation> ;
        rdfs:subPropertyOf  <http://w3id.org/CEON/ontology/location/hasLocation> .

<http://w3id.org/CEON/ontology/product/complianceWith>
        a             owl:ObjectProperty ;
        rdfs:comment  "Represents what the compliance is compliant with (e.g. a standard or regulation)." ;
        rdfs:domain   <http://w3id.org/CEON/ontology/product/Compliance> ;
        rdfs:label    "compliance with" .

<http://w3id.org/CEON/ontology/product/hasCompliance>
        a             owl:ObjectProperty ;
        rdfs:comment  "Used to link something (e.g., product or process) to a compliance." ;
        rdfs:domain   [ a            owl:Class ;
                        owl:unionOf  ( <http://w3id.org/CEON/ontology/actorODP/Actor> <http://w3id.org/CEON/ontology/processODP/Process> <http://w3id.org/CEON/ontology/product/Item> <http://w3id.org/CEON/ontology/product/Product> )
                      ] ;
        rdfs:label    "has compliance" ;
        rdfs:range    <http://w3id.org/CEON/ontology/product/Compliance> .

<http://w3id.org/CEON/ontology/product/countryOfOrigin>
        a                   owl:DatatypeProperty ;
        rdfs:comment        "Used to represent the country of origin of a product or product object (item)." ;
        rdfs:domain         <http://w3id.org/CEON/ontology/product/OriginLocation> ;
        rdfs:label          "Country of origin" ;
        rdfs:range          <http://www.w3.org/2001/XMLSchema#string> ;
        rdfs:subPropertyOf  <http://w3id.org/CEON/ontology/location/hasCountry> .

<http://w3id.org/CEON/ontology/location/hasCity>
        a                   owl:DatatypeProperty ;
        rdfs:subPropertyOf  owl:topDataProperty .

<http://w3id.org/CEON/ontology/product/hasGlobalTradeItemNumber>
        a             owl:DatatypeProperty ;
        rdfs:label    "Global Trade Item Number (GTIN)" ;
        rdfs:range    <http://www.w3.org/2001/XMLSchema#string> ;
        rdfs:seeAlso  "https://www.gs1.org/standards/id-keys/gtin" .

<http://w3id.org/CEON/ontology/product/Product>
        a                 owl:Class ;
        rdfs:comment      "Physical-based object designed for or utilized with a purpose. A product can be, for example: goods of any type; hardware (e.g. engine mechanical part, spare parts, consumables); electrical or electronic hardware devices or components (e.g. computers, communication equipment and sensors); processed materials (e.g. lubricant, cement)." , "Represents the common sense notion of a product, i.e. the abstract notion of a product type, which is a model that is used for manufacturing items of that product." ;
        rdfs:isDefinedBy  "ISO 59004:2024 -3.2.2 product" ;
        rdfs:label        "Product" ;
        rdfs:subClassOf   <http://w3id.org/CEON/ontology/resourceODP/Resource> , <http://w3id.org/CEON/ontology/product/Solution> ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  <http://w3id.org/CEON/ontology/product/AssemblyLocation> ;
                            owl:onProperty     <http://w3id.org/CEON/ontology/product/hasAssemblyLocation>
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      <http://w3id.org/CEON/ontology/product/hasComposition> ;
                            owl:someValuesFrom  <http://w3id.org/CEON/ontology/product/MatterComposition>
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      <http://w3id.org/CEON/ontology/product/hasComposition> ;
                            owl:someValuesFrom  <http://w3id.org/CEON/ontology/product/ProductComposition>
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  <http://w3id.org/CEON/ontology/product/OriginLocation> ;
                            owl:onProperty     <http://w3id.org/CEON/ontology/product/hasOriginLocation>
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  <http://w3id.org/CEON/ontology/product/ManufactureLocation> ;
                            owl:onProperty     <http://w3id.org/CEON/ontology/product/hasManufacturerLocation>
                          ] .

<http://w3id.org/CEON/ontology/product/Regulation>
        a             owl:Class ;
        rdfs:comment  "The rules or restrictions made or maintained by authorities." ;
        rdfs:label    "Regulation" .

<http://w3id.org/CEON/ontology/processODP/Process>
        a       owl:Class .

<http://w3id.org/CEON/ontology/product/compositionOf>
        a             owl:ObjectProperty ;
        rdfs:comment  "Represents what the composition is a composition of (i.e., the product, the product object or matter that is broken down into its components)." ;
        rdfs:domain   <http://w3id.org/CEON/ontology/product/Composition> ;
        rdfs:label    "composition of" ;
        rdfs:range    [ a            owl:Class ;
                        owl:unionOf  ( <http://w3id.org/CEON/ontology/product/Item> <http://w3id.org/CEON/ontology/product/Product> <http://w3id.org/CEON/ontology/resourceODP/Matter> )
                      ] .

<http://w3id.org/CEON/ontology/product/hasProductName>
        a             owl:DatatypeProperty ;
        rdfs:comment  "The name of a product." ;
        rdfs:label    "product name" ;
        rdfs:range    <http://www.w3.org/2001/XMLSchema#string> .

<http://w3id.org/CEON/ontology/resourceODP/BatchOfObjects>
        a                owl:Class ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               <http://w3id.org/CEON/ontology/product/Product> ;
                           owl:onProperty            <http://w3id.org/CEON/ontology/product/batchOfProduct> ;
                           owl:qualifiedCardinality  "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger>
                         ] .

<http://w3id.org/CEON/ontology/product/countryOfManufacture>
        a                   owl:DatatypeProperty ;
        rdfs:comment        "Used to represent the country of manufacture of a product or product object (item)." ;
        rdfs:domain         <http://w3id.org/CEON/ontology/product/ManufactureLocation> ;
        rdfs:label          "Country of manufacture" ;
        rdfs:range          <http://www.w3.org/2001/XMLSchema#string> ;
        rdfs:subPropertyOf  <http://w3id.org/CEON/ontology/location/hasCountry> .

<http://w3id.org/CEON/ontology/location/hasLocation>
        a       owl:ObjectProperty .

<http://w3id.org/CEON/ontology/resourceODP/Matter>
        a       owl:Class .

<http://w3id.org/CEON/ontology/product/RoHS>
        a       <http://w3id.org/CEON/ontology/product/Regulation> , owl:NamedIndividual .

<http://w3id.org/CEON/ontology/product/ManufactureLocation>
        a                owl:Class ;
        rdfs:comment     "The location where a physical object is manufactured." ;
        rdfs:label       "Manufacture Location" ;
        rdfs:subClassOf  <http://w3id.org/CEON/ontology/location/Location> ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:maxQualifiedCardinality  "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger> ;
                           owl:onDataRange              <http://www.w3.org/2001/XMLSchema#string> ;
                           owl:onProperty               <http://w3id.org/CEON/ontology/product/countryOfManufacture>
                         ] ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:maxQualifiedCardinality  "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger> ;
                           owl:onDataRange              <http://www.w3.org/2001/XMLSchema#string> ;
                           owl:onProperty               <http://w3id.org/CEON/ontology/location/hasStreetAddress>
                         ] ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:maxQualifiedCardinality  "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger> ;
                           owl:onDataRange              <http://www.w3.org/2001/XMLSchema#string> ;
                           owl:onProperty               <http://w3id.org/CEON/ontology/location/hasPostalCode>
                         ] ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:maxQualifiedCardinality  "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger> ;
                           owl:onDataRange              <http://www.w3.org/2001/XMLSchema#string> ;
                           owl:onProperty               <http://w3id.org/CEON/ontology/location/hasCity>
                         ] .

<http://w3id.org/CEON/ontology/product/Item>
        a                owl:Class ;
        rdfs:comment     "An item is a physical object put into a market for sale, i.e. corresponding to an individual of a product. The item can be a thing that grows naturally or produced through some chemical or manufacturing processes." ;
        rdfs:label       "Item" ;
        rdfs:subClassOf  <http://w3id.org/CEON/ontology/resourceODP/PhysicalObject> ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               <http://w3id.org/CEON/ontology/product/Product> ;
                           owl:onProperty            <http://w3id.org/CEON/ontology/product/modelledBy> ;
                           owl:qualifiedCardinality  "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger>
                         ] .

<http://w3id.org/CEON/ontology/product/ProductionLocation>
        a                owl:Class ;
        rdfs:comment     "The production location of a physical object" ;
        rdfs:label       "Production Location" ;
        rdfs:subClassOf  <http://w3id.org/CEON/ontology/location/Location> ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:maxQualifiedCardinality  "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger> ;
                           owl:onDataRange              <http://www.w3.org/2001/XMLSchema#string> ;
                           owl:onProperty               <http://w3id.org/CEON/ontology/product/productionSite>
                         ] ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:maxQualifiedCardinality  "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger> ;
                           owl:onDataRange              <http://www.w3.org/2001/XMLSchema#string> ;
                           owl:onProperty               <http://w3id.org/CEON/ontology/product/countryOfProduction>
                         ] ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:maxQualifiedCardinality  "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger> ;
                           owl:onDataRange              <http://www.w3.org/2001/XMLSchema#string> ;
                           owl:onProperty               <http://w3id.org/CEON/ontology/location/hasStreetAddress>
                         ] ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:maxQualifiedCardinality  "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger> ;
                           owl:onDataRange              <http://www.w3.org/2001/XMLSchema#string> ;
                           owl:onProperty               <http://w3id.org/CEON/ontology/location/hasPostalCode>
                         ] ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:maxQualifiedCardinality  "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger> ;
                           owl:onDataRange              <http://www.w3.org/2001/XMLSchema#string> ;
                           owl:onProperty               <http://w3id.org/CEON/ontology/location/hasCity>
                         ] .

<http://w3id.org/CEON/ontology/product/hasAssemblyLocation>
        a                   owl:ObjectProperty ;
        rdfs:comment        "Used to represent the location of assembly of a product or product object (item)." ;
        rdfs:domain         [ a            owl:Class ;
                              owl:unionOf  ( <http://w3id.org/CEON/ontology/product/Item> <http://w3id.org/CEON/ontology/product/Product> )
                            ] ;
        rdfs:label          "has assembly location" ;
        rdfs:range          <http://w3id.org/CEON/ontology/product/AssemblyLocation> ;
        rdfs:subPropertyOf  <http://w3id.org/CEON/ontology/location/hasLocation> .

<http://w3id.org/CEON/ontology/product/modelledBy>
        a             owl:ObjectProperty ;
        rdfs:comment  "modelledBy intends to represent that product objects follow particular product models." ;
        rdfs:domain   <http://w3id.org/CEON/ontology/product/Item> ;
        rdfs:label    "modelled by" ;
        rdfs:range    <http://w3id.org/CEON/ontology/product/Product> .

<http://w3id.org/CEON/ontology/product/associatedWithProductObject>
        a                   owl:ObjectProperty ;
        rdfs:comment        "associatedWithProductObject intends to represent the item (product object) to which a product object compopsition information regards to." ;
        rdfs:domain         <http://w3id.org/CEON/ontology/product/ProductObjectComposition> ;
        rdfs:label          "associated with product object" ;
        rdfs:range          <http://w3id.org/CEON/ontology/product/Item> ;
        rdfs:subPropertyOf  owl:topObjectProperty .

<http://w3id.org/CEON/ontology/product/ISOCompliance>
        a                owl:Class ;
        rdfs:comment     "ISO compliance is a compliance issuing thay sth (e.g., organization's structure, business operations, practices or policies) follows a specific ISO standard." ;
        rdfs:label       "ISO Compliance" ;
        rdfs:subClassOf  <http://w3id.org/CEON/ontology/product/Compliance> .

<http://w3id.org/CEON/ontology/product/Composition>
        a                owl:Class ;
        rdfs:comment     "A relation that represents a composing relation." ;
        rdfs:label       "Composition" ;
        rdfs:subClassOf  <http://w3id.org/CEON/ontology/actorODP/ResourceParticipation> .

<http://w3id.org/CEON/ontology/product/hasComposition>
        a             owl:ObjectProperty ;
        rdfs:comment  "hasComposition intends to represent that a product model or physical object can have compostition information." ;
        rdfs:domain   [ a            owl:Class ;
                        owl:unionOf  ( <http://w3id.org/CEON/ontology/product/Product> <http://w3id.org/CEON/ontology/resourceODP/PhysicalObject> )
                      ] ;
        rdfs:label    "has composition" ;
        rdfs:range    <http://w3id.org/CEON/ontology/product/Composition> .

<http://w3id.org/CEON/ontology/product/associatedWithProductModel>
        a             owl:ObjectProperty ;
        rdfs:comment  "associatedWithProductModel intends to represent the product model to which a product compopsition information regards to." ;
        rdfs:domain   <http://w3id.org/CEON/ontology/product/ProductComposition> ;
        rdfs:label    "associated with product model" ;
        rdfs:range    <http://w3id.org/CEON/ontology/product/Product> .

<http://w3id.org/CEON/ontology/location/Location>
        a       owl:Class .

<http://w3id.org/CEON/ontology/product/MatterComposition>
        a                owl:Class ;
        rdfs:comment     "A product composition is the composed information of a product in terms of a specific component, in which such a component is also a matter." ;
        rdfs:label       "Matter composition" ;
        rdfs:subClassOf  <http://w3id.org/CEON/ontology/product/Composition> ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               <http://w3id.org/CEON/ontology/resourceODP/Matter> ;
                           owl:onProperty            <http://w3id.org/CEON/ontology/product/associatedWithMatter> ;
                           owl:qualifiedCardinality  "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger>
                         ] .

<http://w3id.org/CEON/ontology/product/Solution>
        a                 owl:Class ;
        rdfs:comment      "Product or service, or a combination thereof, that fulfils a need of an interested party." ;
        rdfs:isDefinedBy  "ISO 59004:2024 - 3.2.1 solution" ;
        rdfs:label        "Solution" .

<http://w3id.org/CEON/ontology/product/AssemblyLocation>
        a                owl:Class ;
        rdfs:comment     "The location where a physical object is assembled." ;
        rdfs:label       "Assembly Location" ;
        rdfs:subClassOf  <http://w3id.org/CEON/ontology/location/Location> ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:maxQualifiedCardinality  "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger> ;
                           owl:onDataRange              <http://www.w3.org/2001/XMLSchema#string> ;
                           owl:onProperty               <http://w3id.org/CEON/ontology/product/countryOfAssembly>
                         ] ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:maxQualifiedCardinality  "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger> ;
                           owl:onDataRange              <http://www.w3.org/2001/XMLSchema#string> ;
                           owl:onProperty               <http://w3id.org/CEON/ontology/location/hasStreetAddress>
                         ] ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:maxQualifiedCardinality  "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger> ;
                           owl:onDataRange              <http://www.w3.org/2001/XMLSchema#string> ;
                           owl:onProperty               <http://w3id.org/CEON/ontology/location/hasPostalCode>
                         ] ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:maxQualifiedCardinality  "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger> ;
                           owl:onDataRange              <http://www.w3.org/2001/XMLSchema#string> ;
                           owl:onProperty               <http://w3id.org/CEON/ontology/location/hasCity>
                         ] .

<http://w3id.org/CEON/ontology/location/hasPostalCode>
        a                   owl:DatatypeProperty ;
        rdfs:subPropertyOf  owl:topDataProperty .

<http://w3id.org/CEON/ontology/product/hasProductComponent>
        a             owl:ObjectProperty ;
        rdfs:comment  "hasProductComponent intends to represent that a product can have other product components." ;
        rdfs:domain   <http://w3id.org/CEON/ontology/product/Product> ;
        rdfs:label    "has product component" ;
        rdfs:range    <http://w3id.org/CEON/ontology/product/Product> .

<http://w3id.org/CEON/ontology/location/hasCountry>
        a       owl:DatatypeProperty .

<http://w3id.org/CEON/ontology/product/compositionQuantity>
        a             owl:DatatypeProperty ;
        rdfs:comment  "compositionQuantity represents the quantity of elements of a composition." ;
        rdfs:domain   <http://w3id.org/CEON/ontology/product/Composition> ;
        rdfs:label    "composition quantity" ;
        rdfs:range    <http://www.w3.org/2001/XMLSchema#double> .

<http://w3id.org/CEON/ontology/location/hasStreetAddress>
        a                   owl:DatatypeProperty ;
        rdfs:subPropertyOf  owl:topDataProperty .

<http://w3id.org/CEON/ontology/product/REACH>
        a       <http://w3id.org/CEON/ontology/product/Regulation> , owl:NamedIndividual .

<http://w3id.org/CEON/ontology/actorODP/ResourceRelation>
        a       owl:Class .

<http://w3id.org/CEON/ontology/product/hasBrand>
        a             owl:DatatypeProperty ;
        rdfs:comment  "The brand name of a product." ;
        rdfs:label    "has brand" ;
        rdfs:range    <http://www.w3.org/2001/XMLSchema#string> .

<http://w3id.org/CEON/ontology/product/Compliance>
        a             owl:Class ;
        rdfs:comment  "Represents that something is compliant with some standard or has a received a certain certification." ;
        rdfs:label    "Compliance" .

<http://w3id.org/CEON/ontology/product/>
        a                              owl:Ontology ;
        rdfs:seeAlso                   <https://github.com/LiUSemWeb/CEON> ;
        dcterms:contributor            "Eva Blomqvist" ;
        dcterms:created                "2025-03-19"^^<http://www.w3.org/2001/XMLSchema#date> ;
        dcterms:creator                "Huanyu Li" ;
        dcterms:description            "The Product module of CEON (Circular Economy Ontology Network)." ;
        dcterms:issued                 "2025-06-30"^^<http://www.w3.org/2001/XMLSchema#date> ;
        dcterms:license                "https://creativecommons.org/licenses/by/4.0/" ;
        dcterms:publisher              "Onto-DESIDE" ;
        dcterms:title                  "Circular Economy Ontology Network (CEON) - Product Module" ;
        vann:preferredNamespacePrefix  "ceon-product" ;
        vann:preferredNamespaceUri     "http://w3id.org/CEON/ontology/product/" ;
        odp:coversRequirements         "In addition to requirements covered by imported ODPs, covers the following requirements from Onto-DESIDE D3.2: CE5-2, C1-4, C2-5, C5-3, C11-2, C12-1, C13-3, C13-4, C13-9, E1-4, E1-5, E1-15, E2-1, E3-2, E3-5, E4-1, E4-2, E4-8, E4-9, E6-7, T4-3, T4-5, T6-1, T8-3, T9-2." , "In addition to requirements covered by imported ODPs, covers the following requirements from Onto-DESIDE D3.1: CVN-Resource-2, CVN-ResrouceType-4, C11-2, C12-1, C13-3, E2-1, T8-3." ;
        owl:imports                    <http://w3id.org/CEON/ontology/actorODP/0.4/> , <http://w3id.org/CEON/ontology/resourceODP/0.5/> ;
        owl:priorVersion               0.4 ;
        owl:versionIRI                 <http://w3id.org/CEON/ontology/product/0.5/> ;
        owl:versionInfo                0.5 .

<http://w3id.org/CEON/ontology/product/productionSite>
        a             owl:DatatypeProperty ;
        rdfs:comment  "The name of a production site location" ;
        rdfs:domain   <http://w3id.org/CEON/ontology/product/ProductionLocation> ;
        rdfs:label    "production site" ;
        rdfs:range    <http://www.w3.org/2001/XMLSchema#string> .

<http://w3id.org/CEON/ontology/product/OriginLocation>
        a                owl:Class ;
        rdfs:comment     "The origin location of a physical object" ;
        rdfs:label       "Origin Location" ;
        rdfs:subClassOf  <http://w3id.org/CEON/ontology/location/Location> ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:maxQualifiedCardinality  "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger> ;
                           owl:onDataRange              <http://www.w3.org/2001/XMLSchema#string> ;
                           owl:onProperty               <http://w3id.org/CEON/ontology/product/countryOfOrigin>
                         ] ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:maxQualifiedCardinality  "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger> ;
                           owl:onDataRange              <http://www.w3.org/2001/XMLSchema#string> ;
                           owl:onProperty               <http://w3id.org/CEON/ontology/location/hasStreetAddress>
                         ] ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:maxQualifiedCardinality  "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger> ;
                           owl:onDataRange              <http://www.w3.org/2001/XMLSchema#string> ;
                           owl:onProperty               <http://w3id.org/CEON/ontology/location/hasPostalCode>
                         ] ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:maxQualifiedCardinality  "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger> ;
                           owl:onDataRange              <http://www.w3.org/2001/XMLSchema#string> ;
                           owl:onProperty               <http://w3id.org/CEON/ontology/location/hasCity>
                         ] .

<http://w3id.org/CEON/ontology/product/countryOfProduction>
        a                   owl:DatatypeProperty ;
        rdfs:comment        "Used to represent the country of production of a product or product object (item)." ;
        rdfs:domain         <http://w3id.org/CEON/ontology/product/ProductionLocation> ;
        rdfs:label          "Country of production" ;
        rdfs:range          <http://www.w3.org/2001/XMLSchema#string> ;
        rdfs:subPropertyOf  <http://w3id.org/CEON/ontology/location/hasCountry> .

<http://w3id.org/CEON/ontology/product/hasCertificate>
        a             owl:DatatypeProperty ;
        rdfs:comment  "Link to the the certificate that certifies the compliance" ;
        rdfs:domain   <http://w3id.org/CEON/ontology/product/Compliance> ;
        rdfs:label    "has certificate" .

<http://w3id.org/CEON/ontology/resourceODP/PhysicalObject>
        a       owl:Class .

<http://w3id.org/CEON/ontology/product/RoHSCompliance>
        a                    owl:Class ;
        rdfs:comment         "RoHS (Restriction of Hazardous Substances in Electrical and Electronic Equipment) compliance is a compliance issuing that RoHS objectives are satisfied." ;
        rdfs:label           "RoHS Compliance" ;
        rdfs:seeAlso         "https://environment.ec.europa.eu/topics/waste-and-recycling/rohs-directive_en" ;
        rdfs:subClassOf      <http://w3id.org/CEON/ontology/product/Compliance> ;
        owl:equivalentClass  [ a               owl:Restriction ;
                               owl:hasValue    <http://w3id.org/CEON/ontology/product/RoHS> ;
                               owl:onProperty  <http://w3id.org/CEON/ontology/product/complianceWith>
                             ] .

<http://w3id.org/CEON/ontology/actorODP/Actor>
        a       owl:Class .

<http://w3id.org/CEON/ontology/product/ProductComposition>
        a                owl:Class ;
        rdfs:comment     "A product composition is the composed information of a product in terms of a specific component, in which such a component is also a product." ;
        rdfs:label       "Product composition" ;
        rdfs:subClassOf  <http://w3id.org/CEON/ontology/product/Composition> ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               <http://w3id.org/CEON/ontology/product/Product> ;
                           owl:onProperty            <http://w3id.org/CEON/ontology/product/associatedWithProductModel> ;
                           owl:qualifiedCardinality  "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger>
                         ] .

<http://w3id.org/CEON/ontology/product/countryOfAssembly>
        a                   owl:DatatypeProperty ;
        rdfs:comment        "Used to represent the country of assembly of a product or product object (item)." ;
        rdfs:domain         <http://w3id.org/CEON/ontology/product/AssemblyLocation> ;
        rdfs:label          "Country of assembly" ;
        rdfs:range          <http://www.w3.org/2001/XMLSchema#string> ;
        rdfs:subPropertyOf  <http://w3id.org/CEON/ontology/location/hasCountry> .

<http://w3id.org/CEON/ontology/product/batchOfProduct>
        a             owl:ObjectProperty ;
        rdfs:comment  "batchOfProduct intends to represent what is the model product of a batch of objects." ;
        rdfs:domain   <http://w3id.org/CEON/ontology/resourceODP/BatchOfObjects> ;
        rdfs:label    "batch of products" ;
        rdfs:range    <http://w3id.org/CEON/ontology/product/Product> .
