@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix gs1: <https://ref.gs1.org/voc/> .
@prefix untp: <https://vocabulary.uncefact.org/untp/> .
@prefix oec: <https://ref.openepcis.io/extensions/common/core/> .
@prefix eutex: <https://ref.openepcis.io/extensions/eu/textile/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix schema: <https://schema.org/> .
@prefix vann: <http://purl.org/vocab/vann/> .
# EU SEMICeu Core Vocabularies (peer Layer 1): see extensions/common/interop/docs/SEMIC_CORE_VOCABULARIES.md
@prefix cv:    <http://data.europa.eu/m8g/> .
@prefix cccev: <http://data.europa.eu/m8g/> .
@prefix locn:  <http://www.w3.org/ns/locn#> .
# DPP Keystone (dpp-keystone.org), a peer DPP profile this module aligns with.
@prefix dppk:  <https://dpp-keystone.org/spec/v2/terms#> .

# =============================================================================
# Ontology Declaration
# =============================================================================

<https://ref.openepcis.io/extensions/eu/textile/>
    a owl:Ontology ;
    dcterms:title "OpenEPCIS Textile DPP Vocabulary"@en ;
    dcterms:description """Textile-specific vocabulary extending GS1 Web Vocabulary for Digital Product Passports.

Aligned with:
- EU Strategy for Sustainable and Circular Textiles (COM/2022/141)
- EU Ecodesign for Sustainable Products Regulation (ESPR) 2024/1781
- EU Textile Labelling Regulation 1007/2011
- ISO 3758:2023 (Care labelling)
- GS1 Web Vocabulary (gs1:TextileMaterialDetails pattern)
- GS1 EPCIS 2.0

GS1 Properties to Use (not redefined here):
- gs1:gtin - Global Trade Item Number
- gs1:productName - Product name
- gs1:productDescription - Product description
- gs1:netWeight / gs1:grossWeight - Product weight
- gs1:manufacturer - Manufacturer organization
- gs1:countryOfOrigin - Country of manufacture
- gs1:warranty / gs1:WarrantyPromise - Warranty information
- gs1:certification / gs1:CertificationDetails - Certifications (GOTS, OEKO-TEX, etc.)
- gs1:textileMaterial / gs1:TextileMaterialDetails - Fiber composition (GS1 native)
- gs1:consumerRecyclingInstructions - Recycling text
- gs1:referencedFile - Documents

For fiber composition, prefer gs1:textileMaterial with gs1:TextileMaterialDetails where possible.
Use eutex: extensions for durability metrics, care symbols, and microplastic data not in GS1.

EPCIS 2.0 Extension Declaration:
GS1-Extensions: eutex=https://ref.openepcis.io/extensions/eu/textile/

Extension Governance:
This vocabulary extends GS1 Web Vocabulary only where no equivalent term exists.
Each extension term includes dcterms:source, skos:note, and rdfs:seeAlso where applicable."""@en ;
    dcterms:creator "OpenEPCIS" ;
    dcterms:license <https://www.apache.org/licenses/LICENSE-2.0> ;
    dcterms:created "2025-02-02"^^xsd:date ;
    dcterms:modified "2026-06-23"^^xsd:date ;
    owl:versionInfo "0.9.7" ;
    owl:versionIRI <https://ref.openepcis.io/extensions/eu/textile/0.9.7> ;
    vann:preferredNamespacePrefix "eutex" ;
    vann:preferredNamespaceUri "https://ref.openepcis.io/extensions/eu/textile/" ;
    rdfs:seeAlso <https://ref.gs1.org/voc/TextileMaterialDetails> ;
    rdfs:seeAlso <https://ref.gs1.org/voc/CertificationDetails> ;
    rdfs:seeAlso <https://ref.gs1.org/standards/epcis/> ;
    rdfs:seeAlso <https://ref.gs1.org/standards/> ;
    rdfs:seeAlso <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    rdfs:seeAlso <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    owl:imports <https://ref.gs1.org/voc/> ;
    owl:imports <https://ref.openepcis.io/extensions/common/core/> ;
    owl:imports <http://data.europa.eu/m8g/> ;
    owl:imports <http://www.w3.org/ns/locn#> .

# =============================================================================
# PART 1: CORE CLASSES
# =============================================================================

eutex:CareInstruction
    a owl:Class ;
    rdfs:label "Care Instruction"@en ;
    rdfs:comment """Care instructions per ISO 3758:2023 including washing, drying, ironing, and dry cleaning symbols."""@en ;
    dcterms:source <https://www.iso.org/standard/74401.html> ;
    skos:note """Required extension: GS1 Web Vocabulary does not provide structured care instruction data
with ISO 3758 symbol codes. This class captures machine-readable care symbols for consumer apps
and laundry service integration."""@en.

eutex:DurabilityInfo
    a owl:Class ;
    rdfs:label "Durability Information"@en ;
    rdfs:comment """Product durability metrics including expected lifespan, wash cycles, and usage resistance."""@en ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    rdfs:seeAlso oec:PerformanceInfo ;
    skos:note """Required extension: ESPR requires durability information for textiles including expected
number of wash cycles, pilling resistance, and dimensional stability. GS1 Web Vocabulary lacks
textile-specific durability metrics. Aligned with oec:PerformanceInfo pattern."""@en.

eutex:TakeBackProgram
    a owl:Class ;
    rdfs:label "Take-Back Program"@en ;
    rdfs:comment """End-of-life collection and take-back program information for circular textile economy."""@en ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    rdfs:seeAlso oec:CircularityPerformance ;
    rdfs:seeAlso schema:Service ;
    rdfs:seeAlso gs1:consumerRecyclingInstructions ;
    skos:note """Required extension: ESPR and EU Textile Strategy mandate take-back program information.
GS1 provides gs1:consumerRecyclingInstructions for text but lacks structured take-back data.
See also schema:Service for web search interoperability."""@en;
    skos:narrowMatch schema:Service .

eutex:MicroplasticInfo
    a owl:Class ;
    rdfs:label "Microplastic Information"@en ;
    rdfs:comment """Information about microplastic/microfiber shedding potential from synthetic textiles."""@en ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note """Required extension: EU Textile Strategy specifically addresses microplastic pollution
from synthetic textiles. No GS1 equivalent exists for microfiber shedding data."""@en.

# =============================================================================
# PART 2: ENUMERATIONS
# =============================================================================

# -----------------------------------------------------------------------------
# Textile Product Category
# -----------------------------------------------------------------------------

eutex:TextileCategory
    a owl:Class ;
    rdfs:label "Textile Category"@en ;
    rdfs:comment "Categories of textile products per EU Textile Labelling Regulation."@en ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32011R1007> ;
    owl:oneOf (
        eutex:Apparel
        eutex:Footwear
        eutex:HomeTextiles
        eutex:TechnicalTextiles
        eutex:Accessories
    ) ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    skos:note "Textile product classification / attribute per the EU Textile Labelling Regulation (EU) 1007/2011."@en ;
    rdfs:seeAlso gs1:Clothing ;
    skos:narrowMatch schema:CategoryCode ;
    skos:narrowMatch schema:CategoryCodeSet .

eutex:Apparel a eutex:TextileCategory ; rdfs:label "Apparel"@en ;
    rdfs:comment "Clothing items including outerwear, underwear, sportswear, and workwear."@en ;
    rdfs:seeAlso gs1:Clothing , gs1:WearableProduct .
eutex:Footwear a eutex:TextileCategory ; rdfs:label "Footwear"@en ;
    rdfs:comment "Shoes, boots, sandals, and other footwear containing textile materials."@en ;
    rdfs:seeAlso gs1:Footwear , gs1:WearableProduct .
eutex:HomeTextiles a eutex:TextileCategory ; rdfs:label "Home Textiles"@en ;
    rdfs:comment "Household textile products including bedding, towels, curtains, and upholstery."@en .
eutex:TechnicalTextiles a eutex:TextileCategory ; rdfs:label "Technical Textiles"@en ;
    rdfs:comment "Functional textiles for industrial, medical, protective, or automotive applications."@en .
eutex:Accessories a eutex:TextileCategory ; rdfs:label "Accessories"@en ;
    rdfs:comment "Textile accessories including bags, belts, scarves, and hats."@en ;
    rdfs:seeAlso gs1:WearableProduct .

# -----------------------------------------------------------------------------
# GS1 WearableProduct Alignment
# -----------------------------------------------------------------------------
# GS1 Web Vocabulary defines gs1:WearableProduct (subClassOf gs1:Product) with
# subclasses gs1:Clothing and gs1:Footwear. TextileProduct is broader than
# WearableProduct (it includes non-wearable categories like HomeTextiles and
# TechnicalTextiles), so we cannot reparent TextileProduct under WearableProduct.
# Instead, we introduce dual-inheritance subclasses that bridge both hierarchies.
# A product typed as eutex:TextileApparel is simultaneously a gs1:Product
# (inheriting all DPP textile properties) and a gs1:Clothing (inheriting GS1
# WearableProduct semantics). An OWL reasoner will infer both type chains.
# -----------------------------------------------------------------------------

eutex:TextileApparel
    a owl:Class ;
    rdfs:label "Textile Apparel"@en ;
    rdfs:comment """A clothing textile product as defined by EU Textile Labelling Regulation 1007/2011.
Dual inheritance bridges the OpenEPCIS textile vocabulary with the GS1 WearableProduct
hierarchy: instances are both gs1:Product (DPP properties) and gs1:Clothing
(GS1 interoperability). Includes outerwear, underwear, sportswear, and workwear."""@en ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    rdfs:subClassOf gs1:Product ;
    rdfs:subClassOf gs1:Clothing ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32011R1007> ;
    skos:note """Created to align with gs1:Clothing (subClassOf gs1:WearableProduct subClassOf
gs1:Product) per GS1 First governance. TextileProduct itself cannot subclass WearableProduct
because it also covers non-wearable categories (HomeTextiles, TechnicalTextiles)."""@en ;
    rdfs:seeAlso gs1:Clothing , gs1:WearableProduct ;
    skos:narrowMatch gs1:WearableProduct ;
    skos:narrowMatch gs1:Clothing ;
    skos:broadMatch dppk:PefcrShirtsAndBlouses .

eutex:TextileFootwear
    a owl:Class ;
    rdfs:label "Textile Footwear"@en ;
    rdfs:comment """A footwear product containing textile materials, per EU Textile Labelling Regulation.
Dual inheritance bridges the OpenEPCIS textile vocabulary with the GS1 WearableProduct
hierarchy: instances are both gs1:Product (DPP properties) and gs1:Footwear
(GS1 interoperability). Includes shoes, boots, sandals, and other textile footwear."""@en ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    rdfs:subClassOf gs1:Product ;
    rdfs:subClassOf gs1:Footwear ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32011R1007> ;
    skos:note """Created to align with gs1:Footwear (subClassOf gs1:WearableProduct subClassOf
gs1:Product) per GS1 First governance. Named TextileFootwear (not Footwear) to avoid
collision with the existing eutex:Footwear enum individual in TextileCategory."""@en ;
    rdfs:seeAlso gs1:Footwear , gs1:WearableProduct ;
    skos:narrowMatch gs1:Footwear ;
    skos:narrowMatch gs1:WearableProduct .

# -----------------------------------------------------------------------------
# Fiber Type (aligned with EU Textile Labelling Regulation Annex I)
# -----------------------------------------------------------------------------

eutex:FiberType
    a owl:Class ;
    rdfs:label "Fiber Type"@en ;
    rdfs:comment "Fiber types as defined in EU Textile Labelling Regulation 1007/2011 Annex I."@en ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32011R1007> ;
    owl:oneOf (
        eutex:Cotton
        eutex:Wool
        eutex:Silk
        eutex:Linen
        eutex:Hemp
        eutex:Polyester
        eutex:Polyamide
        eutex:Elastane
        eutex:Viscose
        eutex:Lyocell
        eutex:Modal
        eutex:Acrylic
        eutex:Polypropylene
        eutex:RecycledPolyester
        eutex:RecycledCotton
        eutex:RecycledWool
        eutex:OrganicCotton
        eutex:Cashmere
        eutex:Leather
        eutex:Rubber
    ) ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    skos:note "Fibre-composition / labelling concept per the EU Textile Labelling Regulation (EU) 1007/2011. No GS1, SEMICeu, or schema.org equivalent."@en ;
    rdfs:seeAlso schema:material .

eutex:Cotton a eutex:FiberType ; rdfs:label "Cotton"@en ;
    rdfs:comment "Natural cellulose fiber from cotton plant (Gossypium)."@en ;
    skos:notation "CO" .
eutex:Wool a eutex:FiberType ; rdfs:label "Wool"@en ;
    rdfs:comment "Natural protein fiber from sheep or lamb fleece."@en ;
    skos:notation "WO" .
eutex:Silk a eutex:FiberType ; rdfs:label "Silk"@en ;
    rdfs:comment "Natural protein fiber from silkworm cocoons."@en ;
    skos:notation "SE" .
eutex:Linen a eutex:FiberType ; rdfs:label "Linen"@en ;
    rdfs:comment "Natural cellulose fiber from flax plant (Linum usitatissimum)."@en ;
    skos:notation "LI" .
eutex:Hemp a eutex:FiberType ; rdfs:label "Hemp"@en ;
    rdfs:comment "Natural cellulose fiber from hemp plant (Cannabis sativa)."@en ;
    skos:notation "HA" .
eutex:Polyester a eutex:FiberType ; rdfs:label "Polyester"@en ;
    rdfs:comment "Synthetic fiber made from polyethylene terephthalate (PET)."@en ;
    skos:notation "PL" .
eutex:Polyamide a eutex:FiberType ; rdfs:label "Polyamide"@en ;
    rdfs:comment "Synthetic fiber (nylon) made from polyamide polymers."@en ;
    skos:notation "PA" .
eutex:Elastane a eutex:FiberType ; rdfs:label "Elastane"@en ;
    rdfs:comment "Synthetic elastic fiber (spandex/Lycra) for stretch fabrics."@en ;
    skos:notation "EL" .
eutex:Viscose a eutex:FiberType ; rdfs:label "Viscose"@en ;
    rdfs:comment "Regenerated cellulose fiber from wood pulp (rayon)."@en ;
    skos:notation "CV" .
eutex:Lyocell a eutex:FiberType ; rdfs:label "Lyocell"@en ;
    rdfs:comment "Regenerated cellulose fiber using closed-loop solvent process (Tencel)."@en ;
    skos:notation "CLY" .
eutex:Modal a eutex:FiberType ; rdfs:label "Modal"@en ;
    rdfs:comment "Regenerated cellulose fiber from beech wood pulp."@en ;
    skos:notation "CMD" .
eutex:Acrylic a eutex:FiberType ; rdfs:label "Acrylic"@en ;
    rdfs:comment "Synthetic fiber made from acrylonitrile polymers."@en ;
    skos:notation "PC" .
eutex:Polypropylene a eutex:FiberType ; rdfs:label "Polypropylene"@en ;
    rdfs:comment "Synthetic thermoplastic fiber for technical applications."@en ;
    skos:notation "PP" .
eutex:RecycledPolyester a eutex:FiberType ; rdfs:label "Recycled Polyester"@en ;
    rdfs:comment "Polyester fiber made from recycled PET bottles or textile waste."@en ;
    skos:notation "rPL" .
eutex:RecycledCotton a eutex:FiberType ; rdfs:label "Recycled Cotton"@en ;
    rdfs:comment "Cotton fiber reclaimed from pre-consumer or post-consumer textile waste."@en ;
    skos:notation "rCO" .
eutex:RecycledWool a eutex:FiberType ; rdfs:label "Recycled Wool"@en ;
    rdfs:comment "Wool fiber reclaimed from pre-consumer or post-consumer textile waste."@en ;
    skos:notation "rWO" .
eutex:OrganicCotton a eutex:FiberType ; rdfs:label "Organic Cotton"@en ;
    rdfs:comment "Cotton grown without synthetic pesticides or fertilizers per organic standards."@en ;
    skos:notation "oCO" .
eutex:Cashmere a eutex:FiberType ; rdfs:label "Cashmere"@en ;
    rdfs:comment "Fine natural fiber from cashmere goat undercoat."@en ;
    skos:notation "WS" .
eutex:Leather a eutex:FiberType ; rdfs:label "Leather"@en ;
    rdfs:comment "Animal hide material (not a textile fiber but used in footwear composition)."@en ;
    skos:notation "LE" .
eutex:Rubber a eutex:FiberType ; rdfs:label "Rubber"@en ;
    rdfs:comment "Natural or synthetic rubber material (used in footwear soles)."@en ;
    skos:notation "RU" .

# -----------------------------------------------------------------------------
# Care Symbol Codes (ISO 3758:2023)
# -----------------------------------------------------------------------------

eutex:CareSymbolCode
    a owl:Class ;
    rdfs:label "Care Symbol Code"@en ;
    rdfs:comment "Care symbols per ISO 3758:2023 for textile care labelling."@en ;
    dcterms:source <https://www.iso.org/standard/74401.html> ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    skos:note "Textile care-labelling concept per ISO 3758 (GINETEX care symbols). No GS1, SEMICeu, or schema.org term covers textile care symbology."@en ;
    skos:narrowMatch schema:CategoryCode .

# Washing symbols
eutex:Wash30 a eutex:CareSymbolCode ; rdfs:label "Wash 30C"@en ;
    rdfs:comment "Machine wash at maximum 30C."@en ;
    skos:notation "200" .
eutex:Wash40 a eutex:CareSymbolCode ; rdfs:label "Wash 40C"@en ;
    rdfs:comment "Machine wash at maximum 40C."@en ;
    skos:notation "210" .
eutex:Wash60 a eutex:CareSymbolCode ; rdfs:label "Wash 60C"@en ;
    rdfs:comment "Machine wash at maximum 60C."@en ;
    skos:notation "230" .
eutex:WashHandOnly a eutex:CareSymbolCode ; rdfs:label "Hand Wash Only"@en ;
    rdfs:comment "Hand wash only, maximum 40C."@en ;
    skos:notation "100" .
eutex:DoNotWash a eutex:CareSymbolCode ; rdfs:label "Do Not Wash"@en ;
    rdfs:comment "Do not wash."@en ;
    skos:notation "001" .
eutex:WashGentle a eutex:CareSymbolCode ; rdfs:label "Gentle Wash"@en ;
    rdfs:comment "Gentle/delicate wash cycle."@en ;
    skos:notation "211" .

# Bleaching symbols
eutex:BleachAllowed a eutex:CareSymbolCode ; rdfs:label "Bleach Allowed"@en ;
    rdfs:comment "Any bleach allowed."@en ;
    skos:notation "300" .
eutex:NonChlorineBleach a eutex:CareSymbolCode ; rdfs:label "Non-Chlorine Bleach"@en ;
    rdfs:comment "Only non-chlorine/oxygen bleach allowed."@en ;
    skos:notation "310" .
eutex:DoNotBleach a eutex:CareSymbolCode ; rdfs:label "Do Not Bleach"@en ;
    rdfs:comment "Do not bleach."@en ;
    skos:notation "301" .

# Drying symbols
eutex:TumbleDryLow a eutex:CareSymbolCode ; rdfs:label "Tumble Dry Low"@en ;
    rdfs:comment "Tumble dry at low temperature."@en ;
    skos:notation "400" .
eutex:TumbleDryMedium a eutex:CareSymbolCode ; rdfs:label "Tumble Dry Medium"@en ;
    rdfs:comment "Tumble dry at medium temperature."@en ;
    skos:notation "410" .
eutex:TumbleDryHigh a eutex:CareSymbolCode ; rdfs:label "Tumble Dry High"@en ;
    rdfs:comment "Tumble dry at high temperature."@en ;
    skos:notation "420" .
eutex:DoNotTumbleDry a eutex:CareSymbolCode ; rdfs:label "Do Not Tumble Dry"@en ;
    rdfs:comment "Do not tumble dry."@en ;
    skos:notation "401" .
eutex:LineDry a eutex:CareSymbolCode ; rdfs:label "Line Dry"@en ;
    rdfs:comment "Line dry / hang to dry."@en ;
    skos:notation "440" .
eutex:DryFlat a eutex:CareSymbolCode ; rdfs:label "Dry Flat"@en ;
    rdfs:comment "Dry flat."@en ;
    skos:notation "450" .
eutex:DripDry a eutex:CareSymbolCode ; rdfs:label "Drip Dry"@en ;
    rdfs:comment "Drip dry without wringing."@en ;
    skos:notation "460" .

# Ironing symbols
eutex:IronLow a eutex:CareSymbolCode ; rdfs:label "Iron Low"@en ;
    rdfs:comment "Iron at low temperature (max 110C)."@en ;
    skos:notation "500" .
eutex:IronMedium a eutex:CareSymbolCode ; rdfs:label "Iron Medium"@en ;
    rdfs:comment "Iron at medium temperature (max 150C)."@en ;
    skos:notation "510" .
eutex:IronHigh a eutex:CareSymbolCode ; rdfs:label "Iron High"@en ;
    rdfs:comment "Iron at high temperature (max 200C)."@en ;
    skos:notation "520" .
eutex:DoNotIron a eutex:CareSymbolCode ; rdfs:label "Do Not Iron"@en ;
    rdfs:comment "Do not iron."@en ;
    skos:notation "501" .
eutex:NoSteam a eutex:CareSymbolCode ; rdfs:label "No Steam"@en ;
    rdfs:comment "Iron without steam."@en ;
    skos:notation "530" .

# Dry cleaning symbols
eutex:DryCleanAny a eutex:CareSymbolCode ; rdfs:label "Dry Clean Any Solvent"@en ;
    rdfs:comment "Dry clean with any solvent."@en ;
    skos:notation "600" .
eutex:DryCleanPCE a eutex:CareSymbolCode ; rdfs:label "Dry Clean PCE"@en ;
    rdfs:comment "Dry clean with tetrachloroethylene (PCE)."@en ;
    skos:notation "610" .
eutex:DryCleanHydrocarbon a eutex:CareSymbolCode ; rdfs:label "Dry Clean Hydrocarbon"@en ;
    rdfs:comment "Dry clean with hydrocarbon solvents only."@en ;
    skos:notation "620" .
eutex:DoNotDryClean a eutex:CareSymbolCode ; rdfs:label "Do Not Dry Clean"@en ;
    rdfs:comment "Do not dry clean."@en ;
    skos:notation "601" .
eutex:WetClean a eutex:CareSymbolCode ; rdfs:label "Professional Wet Clean"@en ;
    rdfs:comment "Professional wet cleaning."@en ;
    skos:notation "700" .

# -----------------------------------------------------------------------------
# Microplastic Risk Level
# -----------------------------------------------------------------------------

eutex:MicroplasticRiskLevel
    a owl:Class ;
    rdfs:label "Microplastic Risk Level"@en ;
    rdfs:comment "Risk classification for microplastic/microfiber shedding from textiles."@en ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    owl:oneOf (eutex:LowShedding eutex:MediumShedding eutex:HighShedding) ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    skos:note "Microfibre / microplastic-release concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR. No upstream vocabulary covers it."@en .

eutex:LowShedding a eutex:MicroplasticRiskLevel ; rdfs:label "Low Shedding"@en ;
    rdfs:comment "Low microfiber shedding risk (< 50 mg/kg per wash). Natural fibers or tightly woven synthetics."@en .
eutex:MediumShedding a eutex:MicroplasticRiskLevel ; rdfs:label "Medium Shedding"@en ;
    rdfs:comment "Medium microfiber shedding risk (50-500 mg/kg per wash). Typical synthetic fabrics."@en .
eutex:HighShedding a eutex:MicroplasticRiskLevel ; rdfs:label "High Shedding"@en ;
    rdfs:comment "High microfiber shedding risk (> 500 mg/kg per wash). Fleece, chenille, or cut-pile synthetics."@en .

# -----------------------------------------------------------------------------
# Durability Class
# -----------------------------------------------------------------------------

eutex:DurabilityClass
    a owl:Class ;
    rdfs:label "Durability Class"@en ;
    rdfs:comment "Durability rating for textile products."@en ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    owl:oneOf (eutex:DurabilityA eutex:DurabilityB eutex:DurabilityC eutex:DurabilityD eutex:DurabilityE) ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en ;
    skos:narrowMatch schema:Class .

eutex:DurabilityA a eutex:DurabilityClass ; rdfs:label "Durability Class A"@en ;
    rdfs:comment "Highest durability - designed for extended lifetime (>200 wash cycles, >10 years)."@en .
eutex:DurabilityB a eutex:DurabilityClass ; rdfs:label "Durability Class B"@en ;
    rdfs:comment "High durability (100-200 wash cycles, 5-10 years)."@en .
eutex:DurabilityC a eutex:DurabilityClass ; rdfs:label "Durability Class C"@en ;
    rdfs:comment "Standard durability (50-100 wash cycles, 3-5 years)."@en .
eutex:DurabilityD a eutex:DurabilityClass ; rdfs:label "Durability Class D"@en ;
    rdfs:comment "Below average durability (25-50 wash cycles, 1-3 years)."@en .
eutex:DurabilityE a eutex:DurabilityClass ; rdfs:label "Durability Class E"@en ;
    rdfs:comment "Low durability (<25 wash cycles, <1 year). Single-use or disposable items."@en .

# =============================================================================
# PART 3: PROPERTIES - Fiber Composition
# =============================================================================
# Basic fiber composition uses gs1:textileMaterial + gs1:TextileMaterialDetails
# + gs1:textileMaterialContent + gs1:textileMaterialDescription (the GS1 Web
# Vocabulary native pattern). Textile certifications use the GS1 generic
# pattern: gs1:CertificationDetails + gs1:certificationAgency +
# gs1:certificationValue + gs1:certificationStandard. This module adds only
# textile-specific traceability properties on the fiber-composition object.

eutex:fiberOrigin
    a owl:DatatypeProperty ;
    rdfs:label "Fiber Origin"@en ;
    rdfs:comment "Country or region of fiber origin (ISO 3166-1 alpha-2 code)."@en ;
    rdfs:domain gs1:TextileMaterialDetails ;
    rdfs:range xsd:string ;
    rdfs:seeAlso gs1:countryOfOrigin ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32011R1007> ;
    skos:note "Fibre-composition / labelling concept per the EU Textile Labelling Regulation (EU) 1007/2011. No GS1, SEMICeu, or schema.org equivalent."@en ;
    skos:narrowMatch gs1:countryOfOrigin ;
    skos:narrowMatch gs1:countryOfOriginStatement ;
    skos:narrowMatch schema:countryOfOrigin .

eutex:isRecycledFiber
    a owl:DatatypeProperty ;
    rdfs:label "Is Recycled Fiber"@en ;
    rdfs:comment "Indicates whether this fiber is from recycled sources."@en ;
    rdfs:domain gs1:TextileMaterialDetails ;
    rdfs:range xsd:boolean ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Extension: GS1 TextileMaterialDetails does not distinguish recycled vs virgin fibers at the individual fiber level." ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> .

eutex:recycledContentSource
    a owl:DatatypeProperty ;
    rdfs:label "Recycled Content Source"@en ;
    rdfs:comment "Source of recycled content (e.g. post-consumer PET bottles, ocean plastic, post-industrial textile waste)."@en ;
    rdfs:domain gs1:TextileMaterialDetails ;
    rdfs:range xsd:string ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Extension: Provides fiber-level recycled source traceability not available in GS1 TextileMaterialDetails." ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> .

eutex:fiberCertification
    a owl:ObjectProperty ;
    rdfs:label "Fiber Certification"@en ;
    rdfs:comment "Certification specific to this fiber (GOTS, RWS, etc.). Use gs1:CertificationDetails pattern."@en ;
    rdfs:domain gs1:TextileMaterialDetails ;
    rdfs:range gs1:CertificationDetails ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32011R1007> ;
    skos:note "Fibre-composition / labelling concept per the EU Textile Labelling Regulation (EU) 1007/2011. No GS1, SEMICeu, or schema.org equivalent."@en ;
    rdfs:seeAlso schema:material ;
    skos:narrowMatch schema:hasCertification ;
    skos:narrowMatch gs1:certification ;
    skos:narrowMatch schema:certificationIdentification ;
    rdfs:seeAlso gs1:certificationIdentification ;
    skos:narrowMatch gs1:certificationInfo .

# =============================================================================
# PART 4: PROPERTIES - Care Instructions
# =============================================================================

eutex:careInstructions
    a owl:ObjectProperty ;
    rdfs:label "Care Instructions"@en ;
    rdfs:comment "Care and maintenance instructions for the textile product."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range eutex:CareInstruction ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://www.iso.org/standard/74401.html> ;
    skos:note "Textile care-labelling concept per ISO 3758 (GINETEX care symbols). No GS1, SEMICeu, or schema.org term covers textile care symbology."@en ;
    rdfs:seeAlso gs1:consumerUsageInstructions ;
    skos:narrowMatch gs1:instructions ;
    skos:narrowMatch gs1:instructionsForUse ;
    rdfs:seeAlso dppk:instructionsForUse .

eutex:washingSymbol
    a owl:ObjectProperty ;
    rdfs:label "Washing Symbol"@en ;
    rdfs:comment "ISO 3758 washing care symbol."@en ;
    rdfs:domain eutex:CareInstruction ;
    rdfs:range eutex:CareSymbolCode ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://www.iso.org/standard/74401.html> ;
    skos:note "Textile care-labelling concept per ISO 3758 (GINETEX care symbols). No GS1, SEMICeu, or schema.org term covers textile care symbology."@en .

eutex:bleachingSymbol
    a owl:ObjectProperty ;
    rdfs:label "Bleaching Symbol"@en ;
    rdfs:comment "ISO 3758 bleaching care symbol."@en ;
    rdfs:domain eutex:CareInstruction ;
    rdfs:range eutex:CareSymbolCode ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://www.iso.org/standard/74401.html> ;
    skos:note "Textile care-labelling concept per ISO 3758 (GINETEX care symbols). No GS1, SEMICeu, or schema.org term covers textile care symbology."@en .

eutex:dryingSymbol
    a owl:ObjectProperty ;
    rdfs:label "Drying Symbol"@en ;
    rdfs:comment "ISO 3758 drying care symbol."@en ;
    rdfs:domain eutex:CareInstruction ;
    rdfs:range eutex:CareSymbolCode ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://www.iso.org/standard/74401.html> ;
    skos:note "Textile care-labelling concept per ISO 3758 (GINETEX care symbols). No GS1, SEMICeu, or schema.org term covers textile care symbology."@en .

eutex:ironingSymbol
    a owl:ObjectProperty ;
    rdfs:label "Ironing Symbol"@en ;
    rdfs:comment "ISO 3758 ironing care symbol."@en ;
    rdfs:domain eutex:CareInstruction ;
    rdfs:range eutex:CareSymbolCode ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://www.iso.org/standard/74401.html> ;
    skos:note "Textile care-labelling concept per ISO 3758 (GINETEX care symbols). No GS1, SEMICeu, or schema.org term covers textile care symbology."@en .

eutex:dryCleaningSymbol
    a owl:ObjectProperty ;
    rdfs:label "Dry Cleaning Symbol"@en ;
    rdfs:comment "ISO 3758 dry cleaning care symbol."@en ;
    rdfs:domain eutex:CareInstruction ;
    rdfs:range eutex:CareSymbolCode ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://www.iso.org/standard/74401.html> ;
    skos:note "Textile care-labelling concept per ISO 3758 (GINETEX care symbols). No GS1, SEMICeu, or schema.org term covers textile care symbology."@en .

eutex:additionalCareInstructions
    a owl:DatatypeProperty ;
    rdfs:label "Additional Care Instructions"@en ;
    rdfs:comment "Additional care instructions in text form."@en ;
    rdfs:domain eutex:CareInstruction ;
    rdfs:range xsd:string ;
    rdfs:seeAlso gs1:consumerStorageInstructions ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://www.iso.org/standard/74401.html> ;
    skos:note "Textile care-labelling concept per ISO 3758 (GINETEX care symbols). No GS1, SEMICeu, or schema.org term covers textile care symbology."@en ;
    skos:narrowMatch schema:additionalProperty .

# =============================================================================
# PART 5: PROPERTIES - Durability
# =============================================================================

eutex:durabilityInfo
    a owl:ObjectProperty ;
    rdfs:label "Durability Information"@en ;
    rdfs:comment "Durability metrics for the textile product."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range eutex:DurabilityInfo ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:expectedWashCycles
    a owl:DatatypeProperty ;
    rdfs:label "Expected Wash Cycles"@en ;
    rdfs:comment "Expected number of wash cycles before significant degradation."@en ;
    rdfs:domain eutex:DurabilityInfo ;
    rdfs:range xsd:integer ;
    rdfs:seeAlso schema:value ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:durabilityClass
    a owl:ObjectProperty ;
    rdfs:label "Durability Class"@en ;
    rdfs:comment "Durability rating class (A-E)."@en ;
    rdfs:domain eutex:DurabilityInfo ;
    rdfs:range eutex:DurabilityClass ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:pillingResistance
    a owl:DatatypeProperty ;
    rdfs:label "Pilling Resistance"@en ;
    rdfs:comment "Pilling resistance rating (1-5 per ISO 12945, where 5 is best)."@en ;
    rdfs:domain eutex:DurabilityInfo ;
    rdfs:range xsd:integer ;
    rdfs:seeAlso schema:ratingValue ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:colorFastness
    a owl:DatatypeProperty ;
    rdfs:label "Color Fastness"@en ;
    rdfs:comment "Color fastness rating (1-5 per ISO 105, where 5 is best)."@en ;
    rdfs:domain eutex:DurabilityInfo ;
    rdfs:range xsd:integer ;
    rdfs:seeAlso schema:ratingValue ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en ;
    skos:narrowMatch schema:ratingValue .

eutex:dimensionalStability
    a owl:DatatypeProperty ;
    rdfs:label "Dimensional Stability"@en ;
    rdfs:comment "Maximum dimensional change (shrinkage/stretch) as percentage after washing."@en ;
    rdfs:domain eutex:DurabilityInfo ;
    rdfs:range xsd:decimal ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:abrasionResistance
    a owl:DatatypeProperty ;
    rdfs:label "Abrasion Resistance"@en ;
    rdfs:comment "Abrasion resistance in Martindale cycles."@en ;
    rdfs:domain eutex:DurabilityInfo ;
    rdfs:range xsd:integer ;
    rdfs:seeAlso schema:value ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:tensileStrength
    a owl:ObjectProperty ;
    rdfs:label "Tensile Strength"@en ;
    rdfs:comment "Fabric tensile strength. Use unitCode 'NEW' (newtons, UN/CEFACT Rec 20)."@en ;
    rdfs:domain eutex:DurabilityInfo ;
    rdfs:range gs1:QuantitativeValue ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:tearStrength
    a owl:ObjectProperty ;
    rdfs:label "Tear Strength"@en ;
    rdfs:comment "Fabric tear strength. Use unitCode 'NEW' (newtons, UN/CEFACT Rec 20)."@en ;
    rdfs:domain eutex:DurabilityInfo ;
    rdfs:range gs1:QuantitativeValue ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:expectedLifetimeYears
    a owl:DatatypeProperty ;
    rdfs:label "Expected Lifetime Years"@en ;
    rdfs:comment "Expected product lifetime in years under normal use."@en ;
    rdfs:domain eutex:DurabilityInfo ;
    rdfs:range xsd:integer ;
    rdfs:seeAlso schema:value ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en ;
    rdfs:seeAlso <urn:samm:io.BatteryPass.Performance:1.2.1#expectedLifetime> .

# =============================================================================
# PART 6: PROPERTIES - Microplastic
# =============================================================================

eutex:microplasticInfo
    a owl:ObjectProperty ;
    rdfs:label "Microplastic Information"@en ;
    rdfs:comment "Information about microfiber shedding from synthetic textiles."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range eutex:MicroplasticInfo ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Microfibre / microplastic-release concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR. No upstream vocabulary covers it."@en .

eutex:microplasticRiskLevel
    a owl:ObjectProperty ;
    rdfs:label "Microplastic Risk Level"@en ;
    rdfs:comment "Risk classification for microfiber shedding."@en ;
    rdfs:domain eutex:MicroplasticInfo ;
    rdfs:range eutex:MicroplasticRiskLevel ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Microfibre / microplastic-release concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR. No upstream vocabulary covers it."@en .

eutex:sheddingRate
    a owl:ObjectProperty ;
    rdfs:label "Shedding Rate"@en ;
    rdfs:comment "Microfiber shedding rate per wash. Use unitCode 'MGM' (mg/kg, UN/CEFACT Rec 20)."@en ;
    rdfs:domain eutex:MicroplasticInfo ;
    rdfs:range gs1:QuantitativeValue ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Microfibre / microplastic-release concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR. No upstream vocabulary covers it."@en .

eutex:syntheticFiberContent
    a owl:DatatypeProperty ;
    rdfs:label "Synthetic Fiber Content"@en ;
    rdfs:comment "Total percentage of synthetic fibers that may shed microplastics."@en ;
    rdfs:domain eutex:MicroplasticInfo ;
    rdfs:range xsd:decimal ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32011R1007> ;
    skos:note "Fibre-composition / labelling concept per the EU Textile Labelling Regulation (EU) 1007/2011. No GS1, SEMICeu, or schema.org equivalent."@en ;
    rdfs:seeAlso schema:material ;
    skos:narrowMatch gs1:textileMaterialContent ;
    rdfs:seeAlso gs1:textileMaterialPercentage ;
    skos:narrowMatch gs1:ingredientContentPercentage .

eutex:microplasticMitigationMeasures
    a owl:DatatypeProperty ;
    rdfs:label "Microplastic Mitigation Measures"@en ;
    rdfs:comment "Description of measures taken to reduce microplastic shedding."@en ;
    rdfs:domain eutex:MicroplasticInfo ;
    rdfs:range xsd:string ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Microfibre / microplastic-release concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR. No upstream vocabulary covers it."@en .

# =============================================================================
# PART 7: PROPERTIES - Circularity and Take-Back
# =============================================================================

eutex:takeBackProgram
    a owl:ObjectProperty ;
    rdfs:label "Take-Back Program"@en ;
    rdfs:comment "End-of-life take-back program information."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range eutex:TakeBackProgram ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No upstream equivalent."@en ;
    rdfs:seeAlso oec:CircularityPerformance ;
    skos:broadMatch oec:takeBackUrl ;
    skos:narrowMatch <urn:samm:io.BatteryPass.Circularity:1.2.0#endOfLifeInformation> .

eutex:hasTakeBackProgram
    a owl:DatatypeProperty ;
    rdfs:label "Has Take-Back Program"@en ;
    rdfs:comment "Whether a take-back program is available for this product."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range xsd:boolean ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No upstream equivalent."@en ;
    rdfs:seeAlso oec:CircularityPerformance .

eutex:takeBackUrl
    a owl:DatatypeProperty ;
    rdfs:label "Take-Back URL"@en ;
    rdfs:comment "URL with take-back program information and collection points."@en ;
    rdfs:domain eutex:TakeBackProgram ;
    rdfs:range xsd:anyURI ;
    rdfs:seeAlso gs1:sustainabilityInfo ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No upstream equivalent."@en ;
    rdfs:seeAlso oec:takeBackUrl ;
    skos:exactMatch oec:takeBackUrl ;
    skos:narrowMatch gs1:sustainabilityInfo .

eutex:takeBackIncentive
    a owl:DatatypeProperty ;
    rdfs:label "Take-Back Incentive"@en ;
    rdfs:comment "Description of incentive for returning products (discount, voucher, etc.)."@en ;
    rdfs:domain eutex:TakeBackProgram ;
    rdfs:range xsd:string ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No upstream equivalent."@en ;
    rdfs:seeAlso oec:CircularityPerformance ;
    rdfs:seeAlso oec:takeBackIncentive ;
    skos:narrowMatch schema:discount .

eutex:endOfLifeDestination
    a owl:DatatypeProperty ;
    rdfs:label "End of Life Destination"@en ;
    rdfs:comment "What happens to collected items (recycled, upcycled, resold, donated)."@en ;
    rdfs:domain eutex:TakeBackProgram ;
    rdfs:range xsd:string ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No upstream equivalent."@en ;
    rdfs:seeAlso oec:CircularityPerformance .

# =============================================================================
# PART 8: PROPERTIES - Repair
# =============================================================================

eutex:repairServices
    a owl:ObjectProperty ;
    rdfs:label "Repair Services"@en ;
    rdfs:comment "Information about available repair services."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range gs1:Organization ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No upstream equivalent."@en ;
    rdfs:seeAlso oec:CircularityPerformance ;
    rdfs:seeAlso dppk:repairServices ;
    skos:exactMatch dppk:repairServices .

eutex:isRepairable
    a owl:DatatypeProperty ;
    rdfs:label "Is Repairable"@en ;
    rdfs:comment "Whether the product is designed to be repairable."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range xsd:boolean ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No upstream equivalent."@en ;
    rdfs:seeAlso oec:CircularityPerformance .

eutex:repairGuideUrl
    a owl:DatatypeProperty ;
    rdfs:label "Repair Guide URL"@en ;
    rdfs:comment "URL to repair/care guide for DIY repairs."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range xsd:anyURI ;
    rdfs:seeAlso gs1:instructions ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No upstream equivalent."@en ;
    skos:narrowMatch gs1:referencedFileURL ;
    skos:narrowMatch gs1:instructions .

eutex:sparePartsAvailable
    a owl:DatatypeProperty ;
    rdfs:label "Spare Parts Available"@en ;
    rdfs:comment "Whether spare parts (buttons, zippers, etc.) are available for purchase."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range xsd:boolean ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No upstream equivalent."@en ;
    rdfs:seeAlso oec:CircularityPerformance ;
    skos:exactMatch dppk:sparePartsAvailable .

eutex:sparePartsUrl
    a owl:DatatypeProperty ;
    rdfs:label "Spare Parts URL"@en ;
    rdfs:comment "URL to purchase spare parts."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range xsd:anyURI ;
    rdfs:seeAlso gs1:purchaseSuppliesOrAccessories ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No upstream equivalent."@en ;
    skos:narrowMatch gs1:purchaseSuppliesOrAccessories .

# =============================================================================
# PART 9: PROPERTIES - Chemicals
# =============================================================================

eutex:chemicalPurpose
    a owl:DatatypeProperty ;
    rdfs:label "Chemical Purpose"@en ;
    rdfs:comment "Purpose of the chemical (dye, finish, water-repellent treatment, etc.)."@en ;
    rdfs:domain oec:HazardousSubstance ;
    rdfs:range xsd:string ;
    rdfs:seeAlso schema:description ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32006R1907> ;
    skos:note "Restricted-substance / chemical-management concept aligned with REACH (EC 1907/2006) and the ZDHC MRSL. No GS1, SEMICeu, or schema.org equivalent."@en ;
    skos:narrowMatch schema:potentialUse .

eutex:isMRSLCompliant
    a owl:DatatypeProperty ;
    rdfs:label "Is MRSL Compliant"@en ;
    rdfs:comment "Whether the chemical complies with ZDHC Manufacturing Restricted Substances List."@en ;
    rdfs:domain oec:HazardousSubstance ;
    rdfs:range xsd:boolean ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32006R1907> ;
    skos:note "Restricted-substance / chemical-management concept aligned with REACH (EC 1907/2006) and the ZDHC MRSL. No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:pfasFree
    a owl:DatatypeProperty ;
    rdfs:label "PFAS Free"@en ;
    rdfs:comment "Whether the product is free from per- and polyfluoroalkyl substances (PFAS)."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range xsd:boolean ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32006R1907> ;
    skos:note "Restricted-substance / chemical-management concept aligned with REACH (EC 1907/2006) and the ZDHC MRSL. No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:textileChemicals
    a owl:ObjectProperty ;
    rdfs:label "Textile Chemicals"@en ;
    rdfs:comment "Chemical substances used in the production of this textile product."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range oec:HazardousSubstance ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32006R1907> ;
    skos:note "Extension: Links a textile product to its chemical inputs for REACH/MRSL compliance tracking." ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> .

# =============================================================================
# PART 10: PROPERTIES - Product Classification
# =============================================================================

eutex:garmentType
    a owl:DatatypeProperty ;
    rdfs:label "Garment Type"@en ;
    rdfs:comment "Specific type of garment (jacket, trousers, shirt, etc.)."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range xsd:string ;
    rdfs:seeAlso schema:category ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32011R1007> ;
    skos:note "Textile product classification / attribute per the EU Textile Labelling Regulation (EU) 1007/2011."@en ;
    skos:narrowMatch schema:category .

eutex:sizeRange
    a owl:DatatypeProperty ;
    rdfs:label "Size Range"@en ;
    rdfs:comment "Available size range (e.g., XS-XXL, 36-52)."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range xsd:string ;
    rdfs:seeAlso gs1:size ;
    rdfs:seeAlso schema:size ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32011R1007> ;
    skos:note "Textile product classification / attribute per the EU Textile Labelling Regulation (EU) 1007/2011."@en ;
    skos:narrowMatch schema:size ;
    skos:narrowMatch gs1:size .

eutex:seasonCollection
    a owl:DatatypeProperty ;
    rdfs:label "Season Collection"@en ;
    rdfs:comment "Season and year of the collection (e.g., FW2024, SS2025)."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range xsd:string ;
    rdfs:seeAlso schema:releaseDate ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32011R1007> ;
    skos:note "Textile product classification / attribute per the EU Textile Labelling Regulation (EU) 1007/2011."@en ;
    skos:narrowMatch gs1:seasonCalendarYear ;
    skos:narrowMatch gs1:seasonName ;
    skos:broadMatch gs1:seasonParameter .

# =============================================================================
# PART 11: PROPERTIES - Environmental Impact
# =============================================================================

eutex:waterUsage
    a owl:ObjectProperty ;
    rdfs:label "Water Usage"@en ;
    rdfs:comment "Water consumed in production. Use unitCode 'LTR' (liters, UN/CEFACT Rec 20)."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range gs1:QuantitativeValue ;
    rdfs:seeAlso schema:QuantitativeValue ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile production / facility attribute per ESPR 2024/1781 and the PEFCR for Apparel & Footwear. No GS1 equivalent."@en .

eutex:energyUsage
    a owl:ObjectProperty ;
    rdfs:label "Energy Usage"@en ;
    rdfs:comment "Energy consumed in production. Use gs1:QuantitativeValue with KWH unit."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range oec:EnergyKilowattHours ;
    rdfs:seeAlso schema:QuantitativeValue ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile production / facility attribute per ESPR 2024/1781 and the PEFCR for Apparel & Footwear. No GS1 equivalent."@en ;
    rdfs:seeAlso oec:annualEnergyConsumption .

eutex:productionWastePercentage
    a owl:DatatypeProperty ;
    rdfs:label "Production Waste Percentage"@en ;
    rdfs:comment "Percentage of material waste during production."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range xsd:decimal ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile production / facility attribute per ESPR 2024/1781 and the PEFCR for Apparel & Footwear. No GS1 equivalent."@en .

eutex:biodegradable
    a owl:DatatypeProperty ;
    rdfs:label "Biodegradable"@en ;
    rdfs:comment "Whether the product is biodegradable at end of life."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range xsd:boolean ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No upstream equivalent."@en ;
    rdfs:seeAlso oec:CircularityPerformance .

# =============================================================================
# PART 12: PROPERTIES - Supply Chain
# =============================================================================

eutex:spinningFacility
    a owl:ObjectProperty ;
    rdfs:label "Spinning Facility"@en ;
    rdfs:comment "Facility where fiber was spun into yarn."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range oec:FacilityInformation ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile production / facility attribute per ESPR 2024/1781 and the PEFCR for Apparel & Footwear. No GS1 equivalent."@en ;
    skos:narrowMatch gs1:manufacturingPlant ;
    skos:narrowMatch <urn:samm:io.BatteryPass.GeneralProductInformation:1.2.0#manufacturingPlace> .

eutex:weavingFacility
    a owl:ObjectProperty ;
    rdfs:label "Weaving Facility"@en ;
    rdfs:comment "Facility where yarn was woven or knitted into fabric."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range oec:FacilityInformation ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile production / facility attribute per ESPR 2024/1781 and the PEFCR for Apparel & Footwear. No GS1 equivalent."@en ;
    skos:narrowMatch gs1:manufacturingPlant ;
    rdfs:seeAlso <urn:samm:io.BatteryPass.GeneralProductInformation:1.2.0#manufacturingPlace> ;
    rdfs:seeAlso untp:facility ;
    skos:narrowMatch dppk:facilityId ;
    skos:narrowMatch untp:modifiedAtFacility .

eutex:dyeingFacility
    a owl:ObjectProperty ;
    rdfs:label "Dyeing Facility"@en ;
    rdfs:comment "Facility where fabric was dyed or printed."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range oec:FacilityInformation ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile production / facility attribute per ESPR 2024/1781 and the PEFCR for Apparel & Footwear. No GS1 equivalent."@en ;
    rdfs:seeAlso gs1:manufacturingPlant ;
    skos:narrowMatch <urn:samm:io.BatteryPass.GeneralProductInformation:1.2.0#manufacturingPlace> ;
    skos:narrowMatch gs1:manufacturingPlant .

eutex:cutAndSewFacility
    a owl:ObjectProperty ;
    rdfs:label "Cut and Sew Facility"@en ;
    rdfs:comment "Facility where garment was cut and assembled."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range oec:FacilityInformation ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile production / facility attribute per ESPR 2024/1781 and the PEFCR for Apparel & Footwear. No GS1 equivalent."@en ;
    rdfs:seeAlso gs1:manufacturingPlant ;
    skos:narrowMatch gs1:location ;
    rdfs:seeAlso schema:countryOfAssembly ;
    rdfs:seeAlso <urn:samm:io.BatteryPass.GeneralProductInformation:1.2.0#manufacturingPlace> ;
    rdfs:seeAlso dppk:manufacturingFacility ;
    rdfs:seeAlso untp:madeAtFacility ;
    rdfs:seeAlso untp:producedAtFacility ;
    rdfs:seeAlso untp:modifiedAtFacility ;
    rdfs:seeAlso dppk:facilityId ;
    skos:narrowMatch untp:fromFacility ;
    skos:narrowMatch gs1:manufacturingPlant .

eutex:finishingFacility
    a owl:ObjectProperty ;
    rdfs:label "Finishing Facility"@en ;
    rdfs:comment "Facility where finishing treatments were applied."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range oec:FacilityInformation ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile production / facility attribute per ESPR 2024/1781 and the PEFCR for Apparel & Footwear. No GS1 equivalent."@en ;
    rdfs:seeAlso gs1:manufacturingPlant ;
    skos:narrowMatch untp:facility ;
    rdfs:seeAlso untp:modifiedAtFacility .

# =============================================================================
# PART 13: FABRIC TYPE & PRODUCT SUBCATEGORY (WP1)
# EU Preparatory Study on Textiles - 3rd Milestone (December 2025)
# =============================================================================

# -----------------------------------------------------------------------------
# Fabric Type
# -----------------------------------------------------------------------------

eutex:FabricType
    a owl:Class ;
    rdfs:label "Fabric Type"@en ;
    rdfs:comment """Fabric construction type that determines robustness thresholds, recyclability scoring,
and recycled content targets per EU Preparatory Study on Textiles 3rd Milestone."""@en ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note """Required extension: Robustness test thresholds (spirality, dimensional change) differ by
fabric type. GS1 Web Vocabulary does not distinguish fabric construction types."""@en ;
    owl:oneOf (
        eutex:Knitted
        eutex:Denim
        eutex:WovenNonDenim
    ).

eutex:Knitted a eutex:FabricType ; rdfs:label "Knitted"@en ;
    rdfs:comment "Fabric constructed by interlocking loops of yarn (jersey, rib, interlock, etc.)."@en .
eutex:Denim a eutex:FabricType ; rdfs:label "Denim"@en ;
    rdfs:comment "Twill-woven fabric typically made from cotton, characterised by indigo dyeing."@en .
eutex:WovenNonDenim a eutex:FabricType ; rdfs:label "Woven Non-Denim"@en ;
    rdfs:comment "Woven fabric other than denim (plain weave, twill, satin, etc.)."@en .

# -----------------------------------------------------------------------------
# Apparel Subcategory
# -----------------------------------------------------------------------------

eutex:ApparelSubcategory
    a owl:Class ;
    rdfs:label "Apparel Subcategory"@en ;
    rdfs:comment """Apparel product subcategories per EU Preparatory Study on Textiles 3rd Milestone.
Used for targeted recycled content thresholds and recyclability requirements."""@en ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    rdfs:seeAlso gs1:additionalProductClassification ;
    rdfs:seeAlso schema:category ;
    skos:note """Required extension: The EU preparatory study defines specific subcategories for
differentiated requirements. GS1 provides gs1:additionalProductClassification but lacks
these regulatory subcategories. See also schema:category."""@en ;
    owl:oneOf (
        eutex:TShirts
        eutex:ShirtsBlouses
        eutex:Sweaters
        eutex:JacketsCoats
        eutex:PantsShorts
        eutex:DressesSkirts
        eutex:LeggingsStockingsSocks
        eutex:Underwear
        eutex:Swimwear
        eutex:TextileAccessories
    ) ;
    skos:broadMatch dppk:PefcrApparelAccessories .

eutex:TShirts a eutex:ApparelSubcategory ; rdfs:label "T-Shirts"@en ;
    rdfs:comment "Short-sleeved casual tops including t-shirts and polo shirts."@en .
eutex:ShirtsBlouses a eutex:ApparelSubcategory ; rdfs:label "Shirts & Blouses"@en ;
    rdfs:comment "Woven shirts, blouses, and formal tops."@en .
eutex:Sweaters a eutex:ApparelSubcategory ; rdfs:label "Sweaters"@en ;
    rdfs:comment "Knitted pullovers, cardigans, and sweaters."@en .
eutex:JacketsCoats a eutex:ApparelSubcategory ; rdfs:label "Jackets & Coats"@en ;
    rdfs:comment "Outerwear including jackets, coats, blazers, and vests."@en .
eutex:PantsShorts a eutex:ApparelSubcategory ; rdfs:label "Pants & Shorts"@en ;
    rdfs:comment "Trousers, jeans, shorts, and skorts."@en .
eutex:DressesSkirts a eutex:ApparelSubcategory ; rdfs:label "Dresses & Skirts"@en ;
    rdfs:comment "Dresses, skirts, and jumpsuits."@en .
eutex:LeggingsStockingsSocks a eutex:ApparelSubcategory ; rdfs:label "Leggings, Stockings & Socks"@en ;
    rdfs:comment "Legwear including leggings, tights, stockings, and socks."@en .
eutex:Underwear a eutex:ApparelSubcategory ; rdfs:label "Underwear"@en ;
    rdfs:comment "Undergarments and intimate apparel."@en .
eutex:Swimwear a eutex:ApparelSubcategory ; rdfs:label "Swimwear"@en ;
    rdfs:comment "Swimming and bathing garments."@en .
eutex:TextileAccessories a eutex:ApparelSubcategory ; rdfs:label "Textile Accessories"@en ;
    rdfs:comment "Textile accessories including scarves, gloves, hats, and ties."@en .

# Properties for WP1
eutex:fabricType
    a owl:ObjectProperty ;
    rdfs:label "Fabric Type"@en ;
    rdfs:comment "The fabric construction type of the textile product."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range eutex:FabricType ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    skos:note "Textile product classification / attribute per the EU Textile Labelling Regulation (EU) 1007/2011."@en ;
    rdfs:seeAlso gs1:Clothing ;
    skos:narrowMatch untp:materialType .

eutex:apparelSubcategory
    a owl:ObjectProperty ;
    rdfs:label "Apparel Subcategory"@en ;
    rdfs:comment "The specific apparel subcategory per EU Preparatory Study classification."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range eutex:ApparelSubcategory ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    rdfs:seeAlso gs1:additionalProductClassification ;
    rdfs:seeAlso schema:category ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    skos:note "Textile product classification / attribute per the EU Textile Labelling Regulation (EU) 1007/2011."@en ;
    skos:narrowMatch schema:category ;
    rdfs:seeAlso untp:productCategory .

# =============================================================================
# PART 14: ROBUSTNESS SCORING SYSTEM (WP2)
# EU Preparatory Study on Textiles - 3rd Milestone
# 0-10 composite score based on spirality, dimensional change, visual inspection
# =============================================================================

eutex:RobustnessAssessment
    a owl:Class ;
    rdfs:subClassOf schema:Observation ;
    rdfs:label "Robustness Assessment"@en ;
    rdfs:comment """Composite robustness assessment per EU Preparatory Study 3rd Milestone.
Score 0-10 based on three test parameters measured after 5 cleaning cycles (ISO 6330):
spirality (0-3 pts), dimensional change (0-3 pts), and visual inspection (0-4 pts).
Thresholds differ by fabric type (knitted vs woven)."""@en ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    rdfs:seeAlso eutex:DurabilityInfo ;
    rdfs:seeAlso schema:Rating ;
    rdfs:seeAlso cccev:Evidence ;
    skos:note """Required extension: The EU preparatory study defines a specific 0-10 robustness scoring
methodology not covered by GS1 or existing durability metrics. Complements eutex:DurabilityInfo
with a standardised composite score. See also schema:Rating for the rating-style aggregate score.
Anchored to cccev:Evidence (EU SEMICeu CCCEV): the assessment is evidence supporting the
robustness Requirement defined by the EU Preparatory Study; component test results
(spirality, dimensional change, visual inspection) are cccev:Constraint instances."""@en ;
    skos:narrowMatch schema:Rating .

eutex:SpiralityTestResult
    a owl:Class ;
    rdfs:subClassOf schema:Observation ;
    rdfs:label "Spirality Test Result"@en ;
    rdfs:comment """Spirality test result per ISO 16322-3 after cleaning cycles.
Scoring (woven): >6%=0pt, 5.5-6%=1pt, 5-5.5%=2pt, <=5%=3pt.
Scoring (knitted): >7%=0pt, 6-7%=1pt, 5-6%=2pt, <=5%=3pt."""@en ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://www.iso.org/standard/56326.html> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:DimensionalChangeTestResult
    a owl:Class ;
    rdfs:subClassOf schema:Observation ;
    rdfs:label "Dimensional Change Test Result"@en ;
    rdfs:comment """Dimensional change test result per ISO 3759 after cleaning cycles.
Scoring (woven): >+-4%=0pt, +-3.5-4%=1pt, +-3-3.5%=2pt, <=+-3%=3pt.
Scoring (knitted): >+-6%=0pt, +-5.5-6%=1pt, +-5-5.5%=2pt, <=+-5%=3pt."""@en ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://www.iso.org/standard/57309.html> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:VisualInspectionResult
    a owl:Class ;
    rdfs:subClassOf schema:Observation ;
    rdfs:label "Visual Inspection Result"@en ;
    rdfs:comment """Visual inspection result per ISO 15487 after cleaning cycles.
Score 0-4 pts based on sub-ratings (1-5 scale each) for colour change,
fabric appearance, seam appearance, and non-textile parts condition."""@en ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://www.iso.org/standard/55312.html> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en ;
    rdfs:seeAlso schema:Rating ;
    skos:narrowMatch schema:Rating .

# Robustness Assessment properties
eutex:robustnessAssessment
    a owl:ObjectProperty ;
    rdfs:label "Robustness Assessment"@en ;
    rdfs:comment "Robustness assessment for the textile product."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range eutex:RobustnessAssessment ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en ;
    rdfs:seeAlso dppk:robustnessScore ;
    rdfs:seeAlso untp:assessedPerformance .

eutex:robustnessScore
    a owl:DatatypeProperty ;
    rdfs:label "Robustness Score"@en ;
    rdfs:comment "Composite robustness score (0-10). Sum of spirality (0-3), dimensional change (0-3), and visual inspection (0-4)."@en ;
    rdfs:domain eutex:RobustnessAssessment ;
    rdfs:range xsd:decimal ;
    rdfs:seeAlso schema:ratingValue ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en ;
    rdfs:seeAlso dppk:robustnessScore ;
    skos:exactMatch dppk:robustnessScore .

eutex:cleaningCyclesBeforeTest
    a owl:DatatypeProperty ;
    rdfs:label "Cleaning Cycles Before Test"@en ;
    rdfs:comment "Number of cleaning cycles performed before testing (default 5 per EU methodology)."@en ;
    rdfs:domain eutex:RobustnessAssessment ;
    rdfs:range xsd:integer ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:robustnessTestFabricType
    a owl:ObjectProperty ;
    rdfs:label "Robustness Test Fabric Type"@en ;
    rdfs:comment "Fabric type used to determine test thresholds (knitted vs woven scoring tables differ)."@en ;
    rdfs:domain eutex:RobustnessAssessment ;
    rdfs:range eutex:FabricType ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:spiralityTest
    a owl:ObjectProperty ;
    rdfs:label "Spirality Test"@en ;
    rdfs:comment "Spirality test result component of robustness assessment."@en ;
    rdfs:domain eutex:RobustnessAssessment ;
    rdfs:range eutex:SpiralityTestResult ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:dimensionalChangeTest
    a owl:ObjectProperty ;
    rdfs:label "Dimensional Change Test"@en ;
    rdfs:comment "Dimensional change test result component of robustness assessment."@en ;
    rdfs:domain eutex:RobustnessAssessment ;
    rdfs:range eutex:DimensionalChangeTestResult ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:visualInspection
    a owl:ObjectProperty ;
    rdfs:label "Visual Inspection"@en ;
    rdfs:comment "Visual inspection result component of robustness assessment."@en ;
    rdfs:domain eutex:RobustnessAssessment ;
    rdfs:range eutex:VisualInspectionResult ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en ;
    skos:exactMatch dppk:visualInspection .

# Spirality Test properties
eutex:spiralityScore
    a owl:DatatypeProperty ;
    rdfs:label "Spirality Score"@en ;
    rdfs:comment "Spirality component score (0-3 points)."@en ;
    rdfs:domain eutex:SpiralityTestResult ;
    rdfs:range xsd:integer ;
    rdfs:seeAlso schema:ratingValue ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en ;
    rdfs:seeAlso untp:score .

eutex:spiralityPercentage
    a owl:DatatypeProperty ;
    rdfs:label "Spirality Percentage"@en ;
    rdfs:comment "Measured spirality as percentage after cleaning cycles."@en ;
    rdfs:domain eutex:SpiralityTestResult ;
    rdfs:range xsd:decimal ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:spiralityTestMethod
    a owl:DatatypeProperty ;
    rdfs:label "Spirality Test Method"@en ;
    rdfs:comment "Test method reference (e.g. ISO 16322-3)."@en ;
    rdfs:domain eutex:SpiralityTestResult ;
    rdfs:range xsd:string ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en ;
    rdfs:seeAlso schema:measurementMethod ;
    rdfs:seeAlso dppk:testMethod .

# Dimensional Change Test properties
eutex:dimensionalChangeScore
    a owl:DatatypeProperty ;
    rdfs:label "Dimensional Change Score"@en ;
    rdfs:comment "Dimensional change component score (0-3 points)."@en ;
    rdfs:domain eutex:DimensionalChangeTestResult ;
    rdfs:range xsd:integer ;
    rdfs:seeAlso schema:ratingValue ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en ;
    skos:narrowMatch untp:score .

eutex:dimensionalChangePercentage
    a owl:DatatypeProperty ;
    rdfs:label "Dimensional Change Percentage"@en ;
    rdfs:comment "Measured dimensional change as percentage (absolute value) after cleaning cycles."@en ;
    rdfs:domain eutex:DimensionalChangeTestResult ;
    rdfs:range xsd:decimal ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en ;
    rdfs:seeAlso dppk:dimensionalChange .

eutex:dimensionalChangeTestMethod
    a owl:DatatypeProperty ;
    rdfs:label "Dimensional Change Test Method"@en ;
    rdfs:comment "Test method reference (e.g. ISO 3759)."@en ;
    rdfs:domain eutex:DimensionalChangeTestResult ;
    rdfs:range xsd:string ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en ;
    rdfs:seeAlso schema:measurementMethod .

# Visual Inspection properties
eutex:visualInspectionScore
    a owl:DatatypeProperty ;
    rdfs:label "Visual Inspection Score"@en ;
    rdfs:comment "Visual inspection component score (0-4 points)."@en ;
    rdfs:domain eutex:VisualInspectionResult ;
    rdfs:range xsd:integer ;
    rdfs:seeAlso schema:ratingValue ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:colourChangeRating
    a owl:DatatypeProperty ;
    rdfs:label "Colour Change Rating"@en ;
    rdfs:comment "Colour change sub-rating (1-5 per ISO 15487, where 5 is no change)."@en ;
    rdfs:domain eutex:VisualInspectionResult ;
    rdfs:range xsd:integer ;
    rdfs:seeAlso schema:ratingValue ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:fabricAppearanceRating
    a owl:DatatypeProperty ;
    rdfs:label "Fabric Appearance Rating"@en ;
    rdfs:comment "Fabric surface appearance sub-rating (1-5 per ISO 15487, where 5 is no change)."@en ;
    rdfs:domain eutex:VisualInspectionResult ;
    rdfs:range xsd:integer ;
    rdfs:seeAlso schema:ratingValue ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en ;
    skos:narrowMatch schema:ratingValue .

eutex:seamAppearanceRating
    a owl:DatatypeProperty ;
    rdfs:label "Seam Appearance Rating"@en ;
    rdfs:comment "Seam appearance sub-rating (1-5 per ISO 15487, where 5 is no change)."@en ;
    rdfs:domain eutex:VisualInspectionResult ;
    rdfs:range xsd:integer ;
    rdfs:seeAlso schema:ratingValue ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:nonTextilePartsRating
    a owl:DatatypeProperty ;
    rdfs:label "Non-Textile Parts Rating"@en ;
    rdfs:comment "Non-textile parts condition sub-rating (1-5 per ISO 15487, where 5 is no change)."@en ;
    rdfs:domain eutex:VisualInspectionResult ;
    rdfs:range xsd:integer ;
    rdfs:seeAlso schema:ratingValue ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en ;
    skos:narrowMatch schema:ratingValue .

eutex:visualInspectionTestMethod
    a owl:DatatypeProperty ;
    rdfs:label "Visual Inspection Test Method"@en ;
    rdfs:comment "Test method reference (e.g. ISO 15487)."@en ;
    rdfs:domain eutex:VisualInspectionResult ;
    rdfs:range xsd:string ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    skos:note "Textile durability / robustness assessment per the JRC 3rd-Milestone textile preparatory study and ESPR durability methods. No GS1, SEMICeu, or schema.org equivalent."@en ;
    rdfs:seeAlso schema:measurementMethod ;
    skos:closeMatch schema:measurementMethod .

# =============================================================================
# PART 15: RECYCLABILITY SCORING SYSTEM (WP3)
# EU Preparatory Study on Textiles - 3rd Milestone
# 0-10 score based on elastane content, sorting factors, technical recyclability
# =============================================================================

eutex:RecyclabilityAssessment
    a owl:Class ;
    rdfs:subClassOf schema:Observation ;
    rdfs:label "Recyclability Assessment"@en ;
    rdfs:comment """Recyclability assessment per EU Preparatory Study 3rd Milestone.
Score 0-10 based on: elastane content threshold (>15% or >20% for PA6-rich >80% blends makes product
non-recyclable, score 0), sorting factors (same composition inner/outer, free from printings,
free from coatings, free from sequins, free from dyes, mono-material), and
technical recyclability of the applicable recycling technology."""@en ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    dcterms:source <https://susproc.jrc.ec.europa.eu/product-bureau/sites/default/files/2025-12/Textile-Prep-Study_3rd-Milestone_20251212.pdf> ;
    rdfs:seeAlso oec:CircularityPerformance ;
    rdfs:seeAlso schema:Rating ;
    skos:note """Required extension: The EU preparatory study defines a specific recyclability scoring
methodology not present in GS1 or the core DPP vocabulary. See also schema:Rating for the rating-style aggregate score."""@en ;
    rdfs:seeAlso oec:RecyclabilityAssessment .

eutex:SortingFactors
    a owl:Class ;
    rdfs:label "Sorting Factors"@en ;
    rdfs:comment """Sorting factors affecting recyclability score. Each factor satisfied adds 1 point:
same composition inner/outer, free from printings, free from coatings, free from sequins,
free from dyes, mono-material."""@en ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:TechnicalRecyclability
    a owl:Class ;
    rdfs:label "Technical Recyclability"@en ;
    rdfs:comment "Technical recyclability assessment based on the applicable recycling technology."@en ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No upstream equivalent."@en ;
    rdfs:seeAlso oec:CircularityPerformance ;
    skos:narrowMatch oec:RecyclabilityAssessment .

# Recycling Technology enumeration
eutex:RecyclingTechnology
    a owl:Class ;
    rdfs:label "Recycling Technology"@en ;
    rdfs:comment "Applicable recycling technologies per EU Preparatory Study 3rd Milestone."@en ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    owl:oneOf (
        eutex:MechanicalRecycling
        eutex:ChemicalRecyclingCotton
        eutex:ThermoChemicalRecycling
        eutex:ChemicalRecyclingPA6
        eutex:ThermoMechanicalRecycling
    ) ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No upstream equivalent."@en ;
    rdfs:seeAlso oec:CircularityPerformance .

eutex:MechanicalRecycling a eutex:RecyclingTechnology ; rdfs:label "Mechanical Recycling"@en ;
    rdfs:comment "Mechanical fiber recycling through shredding and re-spinning."@en .
eutex:ChemicalRecyclingCotton a eutex:RecyclingTechnology ; rdfs:label "Chemical Recycling (Cotton)"@en ;
    rdfs:comment "Chemical recycling process for cellulosic/cotton fibers (e.g. dissolution-regeneration)."@en .
eutex:ThermoChemicalRecycling a eutex:RecyclingTechnology ; rdfs:label "Thermo-Chemical Recycling"@en ;
    rdfs:comment "Thermo-chemical treatment to recover cotton from cotton-rich blends (>60%)."@en .
eutex:ChemicalRecyclingPA6 a eutex:RecyclingTechnology ; rdfs:label "Chemical Recycling (PA6)"@en ;
    rdfs:comment "Chemical recycling for polyamide 6 (depolymerisation to caprolactam)."@en .
eutex:ThermoMechanicalRecycling a eutex:RecyclingTechnology ; rdfs:label "Thermo-Mechanical Recycling"@en ;
    rdfs:comment "Thermo-mechanical recycling through melting and re-extrusion of thermoplastic fibers."@en .

# Recyclability Assessment properties
eutex:recyclabilityAssessment
    a owl:ObjectProperty ;
    rdfs:label "Recyclability Assessment"@en ;
    rdfs:comment "Recyclability assessment for the textile product."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range eutex:RecyclabilityAssessment ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No upstream equivalent."@en ;
    rdfs:seeAlso oec:CircularityPerformance ;
    rdfs:seeAlso oec:recyclabilityAssessment .

eutex:recyclabilityScore
    a owl:DatatypeProperty ;
    rdfs:label "Recyclability Score"@en ;
    rdfs:comment "Composite recyclability score (0-10)."@en ;
    rdfs:domain eutex:RecyclabilityAssessment ;
    rdfs:range xsd:decimal ;
    rdfs:seeAlso schema:ratingValue ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No exact foundational-vocabulary equivalent; anchored to the DPP Keystone peer term and loosely related to schema:ratingValue."@en ;
    rdfs:seeAlso oec:recyclabilityScore ;
    rdfs:seeAlso dppk:recyclabilityScore ;
    skos:exactMatch dppk:recyclabilityScore ;
    skos:closeMatch schema:ratingValue .

eutex:isRecyclable
    a owl:DatatypeProperty ;
    rdfs:label "Is Recyclable"@en ;
    rdfs:comment "Whether the product is considered recyclable (score above minimum threshold)."@en ;
    rdfs:domain eutex:RecyclabilityAssessment ;
    rdfs:range xsd:boolean ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No upstream equivalent."@en ;
    rdfs:seeAlso oec:CircularityPerformance .

eutex:elastaneContentPercent
    a owl:DatatypeProperty ;
    rdfs:label "Elastane Content Percent"@en ;
    rdfs:comment "Elastane/spandex content as percentage of total weight. Content >15% (>20% for PA6-rich >80% blends) makes product non-recyclable (score 0)."@en ;
    rdfs:domain eutex:RecyclabilityAssessment ;
    rdfs:range xsd:decimal ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en ;
    rdfs:seeAlso gs1:textileMaterialPercentage ;
    skos:narrowMatch gs1:textileMaterialPercentage ;
    skos:narrowMatch gs1:ingredientContentPercentage .

eutex:sortingFactors
    a owl:ObjectProperty ;
    rdfs:label "Sorting Factors"@en ;
    rdfs:comment "Sorting factors assessment for recyclability."@en ;
    rdfs:domain eutex:RecyclabilityAssessment ;
    rdfs:range eutex:SortingFactors ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:technicalRecyclability
    a owl:ObjectProperty ;
    rdfs:label "Technical Recyclability"@en ;
    rdfs:comment "Technical recyclability assessment for the product."@en ;
    rdfs:domain eutex:RecyclabilityAssessment ;
    rdfs:range eutex:TechnicalRecyclability ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No upstream equivalent."@en ;
    rdfs:seeAlso oec:CircularityPerformance .

# Sorting Factors properties
eutex:sameInnerOuterComposition
    a owl:DatatypeProperty ;
    rdfs:label "Same Inner/Outer Composition"@en ;
    rdfs:comment "Whether inner and outer fabric layers have the same fiber composition (+1 pt if true)."@en ;
    rdfs:domain eutex:SortingFactors ;
    rdfs:range xsd:boolean ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:freeFromPrintings
    a owl:DatatypeProperty ;
    rdfs:label "Free From Printings"@en ;
    rdfs:comment "Whether the product is free from non-removable printings (+1 pt if true)."@en ;
    rdfs:domain eutex:SortingFactors ;
    rdfs:range xsd:boolean ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:freeFromCoatings
    a owl:DatatypeProperty ;
    rdfs:label "Free From Coatings"@en ;
    rdfs:comment "Whether the product is free from non-removable coatings (+1 pt if true)."@en ;
    rdfs:domain eutex:SortingFactors ;
    rdfs:range xsd:boolean ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:freeFromSequins
    a owl:DatatypeProperty ;
    rdfs:label "Free From Sequins"@en ;
    rdfs:comment "Whether the product is free from sequins, beads, and non-textile embellishments (+1 pt if true)."@en ;
    rdfs:domain eutex:SortingFactors ;
    rdfs:range xsd:boolean ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:freeFromDyes
    a owl:DatatypeProperty ;
    rdfs:label "Free From Dyes"@en ;
    rdfs:comment "Whether the product is free from dyes (+1 pt if true)."@en ;
    rdfs:domain eutex:SortingFactors ;
    rdfs:range xsd:boolean ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:isMonoMaterial
    a owl:DatatypeProperty ;
    rdfs:label "Is Mono-Material"@en ;
    rdfs:comment "Whether the product is made of a single fiber type (+1 pt if true). Mono-material products are more likely to be recycled."@en ;
    rdfs:domain eutex:SortingFactors ;
    rdfs:range xsd:boolean ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

# Technical Recyclability properties
eutex:technicalRecyclabilityScore
    a owl:DatatypeProperty ;
    rdfs:label "Technical Recyclability Score"@en ;
    rdfs:comment "Technical recyclability component score based on applicable recycling technology."@en ;
    rdfs:domain eutex:TechnicalRecyclability ;
    rdfs:range xsd:decimal ;
    rdfs:seeAlso schema:ratingValue ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No upstream equivalent."@en ;
    rdfs:seeAlso untp:score ;
    rdfs:seeAlso untp:profileScore .

eutex:applicableRecyclingTechnology
    a owl:ObjectProperty ;
    rdfs:label "Applicable Recycling Technology"@en ;
    rdfs:comment "The recycling technology applicable to this product based on its fiber composition."@en ;
    rdfs:domain eutex:TechnicalRecyclability ;
    rdfs:range eutex:RecyclingTechnology ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No upstream equivalent."@en ;
    rdfs:seeAlso oec:CircularityPerformance .

# =============================================================================
# PART 16: RECYCLED CONTENT ENHANCEMENT (WP4)
# EU Preparatory Study on Textiles - 3rd Milestone
# Structured recycled content declarations replacing simple boolean/string
# =============================================================================

eutex:RecycledContentDeclaration
    a owl:Class ;
    rdfs:label "Recycled Content Declaration"@en ;
    rdfs:comment """Structured recycled content declaration per EU Preparatory Study 3rd Milestone.
Captures secondary material fraction, waste origin type (post-consumer/post-industrial),
recycled source type (fiber-to-fiber/open loop), and chain of custody method."""@en ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    rdfs:seeAlso oec:RecycledContent ;
    rdfs:seeAlso schema:QuantitativeValue ;
    skos:note """Required extension: The EU preparatory study requires structured recycled content
declarations with specific categorisation not available in GS1 or core DPP vocabulary.
Complements oec:RecycledContent with textile-specific regulatory detail.
See also schema:QuantitativeValue for the secondary material fraction."""@en ;
    skos:narrowMatch oec:RecycledContent .

# Waste Origin Type enumeration
eutex:WasteOriginType
    a owl:Class ;
    rdfs:label "Waste Origin Type"@en ;
    rdfs:comment "Origin classification of recycled waste material."@en ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    owl:oneOf (eutex:PostConsumer eutex:PostIndustrial) ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:PostConsumer a eutex:WasteOriginType ; rdfs:label "Post-Consumer"@en ;
    rdfs:comment "Waste generated by end consumers after product use."@en .
eutex:PostIndustrial a eutex:WasteOriginType ; rdfs:label "Post-Industrial"@en ;
    rdfs:comment "Waste generated during manufacturing processes (pre-consumer)."@en .

# Recycled Source Type enumeration
eutex:RecycledSourceType
    a owl:Class ;
    rdfs:label "Recycled Source Type"@en ;
    rdfs:comment "Type of recycling pathway for the recycled content."@en ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    owl:oneOf (eutex:FiberToFiber eutex:OpenLoop) ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No upstream equivalent."@en ;
    rdfs:seeAlso oec:CircularityPerformance .

eutex:FiberToFiber a eutex:RecycledSourceType ; rdfs:label "Fiber-to-Fiber"@en ;
    rdfs:comment "Closed-loop recycling where textile waste is recycled back into textile fibers."@en .
eutex:OpenLoop a eutex:RecycledSourceType ; rdfs:label "Open Loop"@en ;
    rdfs:comment "Open-loop recycling where non-textile waste (e.g. PET bottles) is converted into textile fibers."@en .

# Chain of Custody Method enumeration
eutex:ChainOfCustodyMethod
    a owl:Class ;
    rdfs:label "Chain of Custody Method"@en ;
    rdfs:comment "Chain of custody method used to verify recycled content claims."@en ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    owl:oneOf (
        eutex:MassBalance
        eutex:Segregation
        eutex:IdentityPreserved
        eutex:Certified
    ) ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:MassBalance a eutex:ChainOfCustodyMethod ; rdfs:label "Mass Balance"@en ;
    rdfs:comment "Mass balance accounting method where recycled and virgin inputs are tracked by quantity."@en .
eutex:Segregation a eutex:ChainOfCustodyMethod ; rdfs:label "Segregation"@en ;
    rdfs:comment "Segregation method where recycled materials are kept physically separate from virgin."@en .
eutex:IdentityPreserved a eutex:ChainOfCustodyMethod ; rdfs:label "Identity Preserved"@en ;
    rdfs:comment "Identity preserved method with full physical traceability from source to product."@en .
eutex:Certified a eutex:ChainOfCustodyMethod ; rdfs:label "Certified"@en ;
    rdfs:comment "Third-party certified chain of custody (e.g. GRS, RCS)."@en .

# Recycled Content Declaration properties
eutex:recycledContentDeclaration
    a owl:ObjectProperty ;
    rdfs:label "Recycled Content Declaration"@en ;
    rdfs:comment "Structured recycled content declaration for the textile product or fiber."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range eutex:RecycledContentDeclaration ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No upstream equivalent."@en ;
    rdfs:seeAlso oec:CircularityPerformance ;
    skos:narrowMatch gs1:textileMaterialContent ;
    rdfs:seeAlso dppk:preConsumerRecycledMaterialComposition ;
    rdfs:seeAlso dppk:preConsumerRecycledContentMass .

eutex:secondaryMaterialFraction
    a owl:DatatypeProperty ;
    rdfs:label "Secondary Material Fraction"@en ;
    rdfs:comment "Percentage of secondary (recycled) material by weight."@en ;
    rdfs:domain eutex:RecycledContentDeclaration ;
    rdfs:range xsd:decimal ;
    rdfs:seeAlso oec:recycledContent ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en ;
    skos:narrowMatch gs1:textileMaterialPercentage ;
    rdfs:seeAlso dppk:materialComposition ;
    rdfs:seeAlso dppk:packagingMaterialCompositionQuantity ;
    rdfs:seeAlso untp:massFraction .

eutex:wasteOriginType
    a owl:ObjectProperty ;
    rdfs:label "Waste Origin Type"@en ;
    rdfs:comment "Origin classification of the recycled waste material."@en ;
    rdfs:domain eutex:RecycledContentDeclaration ;
    rdfs:range eutex:WasteOriginType ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en ;
    rdfs:seeAlso dppk:preConsumerTypeOfWaste ;
    rdfs:seeAlso dppk:postConsumerTypeOfWaste .

eutex:recycledSourceType
    a owl:ObjectProperty ;
    rdfs:label "Recycled Source Type"@en ;
    rdfs:comment "Type of recycling pathway."@en ;
    rdfs:domain eutex:RecycledContentDeclaration ;
    rdfs:range eutex:RecycledSourceType ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No upstream equivalent."@en ;
    rdfs:seeAlso oec:CircularityPerformance .

eutex:chainOfCustodyMethod
    a owl:ObjectProperty ;
    rdfs:label "Chain of Custody Method"@en ;
    rdfs:comment "Chain of custody method used to verify the recycled content claim."@en ;
    rdfs:domain eutex:RecycledContentDeclaration ;
    rdfs:range eutex:ChainOfCustodyMethod ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:meetsTargetThreshold
    a owl:DatatypeProperty ;
    rdfs:label "Meets Target Threshold"@en ;
    rdfs:comment "Whether the recycled content meets the regulatory target threshold for this product category."@en ;
    rdfs:domain eutex:RecycledContentDeclaration ;
    rdfs:range xsd:boolean ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:verificationCertification
    a owl:ObjectProperty ;
    rdfs:label "Verification Certification"@en ;
    rdfs:comment "Third-party certification verifying the recycled content claim. Use gs1:CertificationDetails pattern."@en ;
    rdfs:domain eutex:RecycledContentDeclaration ;
    rdfs:range gs1:CertificationDetails ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en ;
    skos:narrowMatch schema:hasCertification ;
    skos:narrowMatch gs1:certification ;
    skos:narrowMatch gs1:certificationType ;
    skos:narrowMatch gs1:certificationInfo .

# =============================================================================
# PART 17: ENVIRONMENTAL/CARBON FOOTPRINT (WP5)
# EU Preparatory Study on Textiles - 3rd Milestone
# PEF/PEFCR-based environmental footprint reporting
# =============================================================================

eutex:EnvironmentalFootprint
    a owl:Class ;
    rdfs:label "Environmental Footprint"@en ;
    rdfs:comment """Environmental footprint declaration per EU Preparatory Study 3rd Milestone,
aligned with Product Environmental Footprint Category Rules for Apparel & Footwear (PEFCR A&F).
Includes manufacturing carbon footprint, PEF single score, and benchmark comparison."""@en ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    rdfs:seeAlso oec:EmissionsPerformance ;
    rdfs:seeAlso schema:PropertyValue ;
    skos:note """Required extension: The EU preparatory study mandates PEF-based environmental footprint
reporting with specific metrics (single score in mPt, benchmark performance) not available
in GS1 or core DPP vocabulary. Keeps existing eutex:waterUsage and eutex:energyUsage
as convenience properties. See also schema:PropertyValue for generic structured values."""@en ;
    rdfs:seeAlso <https://w3id.org/eudpp#CarbonFootprint> .

eutex:LCIACategory
    a owl:Class ;
    rdfs:label "LCIA Category"@en ;
    rdfs:comment "Individual Life Cycle Impact Assessment category result within the environmental footprint."@en ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    rdfs:seeAlso schema:PropertyValue ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

# Footprint Data Type enumeration
eutex:FootprintDataType
    a owl:Class ;
    rdfs:label "Footprint Data Type"@en ;
    rdfs:comment "Type of data used in the environmental footprint calculation."@en ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    owl:oneOf (
        eutex:PrimaryData
        eutex:SecondaryData
        eutex:MixedData
    ) ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:PrimaryData a eutex:FootprintDataType ; rdfs:label "Primary Data"@en ;
    rdfs:comment "Footprint based on primary (company-specific) data from actual production processes."@en .
eutex:SecondaryData a eutex:FootprintDataType ; rdfs:label "Secondary Data"@en ;
    rdfs:comment "Footprint based on secondary (generic/database) data from LCI databases."@en .
eutex:MixedData a eutex:FootprintDataType ; rdfs:label "Mixed Data"@en ;
    rdfs:comment "Footprint based on a combination of primary and secondary data sources."@en .

# LCIA Category Code enumeration
eutex:LCIACategoryCode
    a owl:Class ;
    rdfs:label "LCIA Category Code"@en ;
    rdfs:comment "Life Cycle Impact Assessment category codes per PEF methodology."@en ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    owl:oneOf (
        eutex:GWP
        eutex:WaterUse
        eutex:Eutrophication
        eutex:Acidification
        eutex:Ecotoxicity
        eutex:HumanToxicity
    ) ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    skos:narrowMatch schema:CategoryCode ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:GWP a eutex:LCIACategoryCode ; rdfs:label "Global Warming Potential"@en ;
    rdfs:comment "Climate change impact category (kg CO2-eq)."@en .
eutex:WaterUse a eutex:LCIACategoryCode ; rdfs:label "Water Use"@en ;
    rdfs:comment "Water scarcity footprint impact category (m3 world-eq)."@en .
eutex:Eutrophication a eutex:LCIACategoryCode ; rdfs:label "Eutrophication"@en ;
    rdfs:comment "Freshwater eutrophication impact category (kg P-eq)."@en .
eutex:Acidification a eutex:LCIACategoryCode ; rdfs:label "Acidification"@en ;
    rdfs:comment "Acidification impact category (mol H+-eq)."@en .
eutex:Ecotoxicity a eutex:LCIACategoryCode ; rdfs:label "Ecotoxicity"@en ;
    rdfs:comment "Freshwater ecotoxicity impact category (CTUe)."@en .
eutex:HumanToxicity a eutex:LCIACategoryCode ; rdfs:label "Human Toxicity"@en ;
    rdfs:comment "Human toxicity (cancer + non-cancer) impact category (CTUh)."@en .

# Environmental Footprint properties
eutex:environmentalFootprint
    a owl:ObjectProperty ;
    rdfs:label "Environmental Footprint"@en ;
    rdfs:comment "Environmental footprint declaration for the textile product."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range eutex:EnvironmentalFootprint ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en ;
    rdfs:seeAlso oec:carbonFootprintTotal ;
    skos:exactMatch dppk:environmentalFootprint ;
    skos:narrowMatch dppk:carbonFootprintGeneralInfo ;
    skos:narrowMatch dppk:carbonFootprintAbsolute .

eutex:carbonFootprintManufacturing
    a owl:DatatypeProperty ;
    rdfs:label "Carbon Footprint Manufacturing"@en ;
    rdfs:comment "Carbon footprint of manufacturing phase in kg CO2-eq per product unit."@en ;
    rdfs:domain eutex:EnvironmentalFootprint ;
    rdfs:range xsd:decimal ;
    rdfs:seeAlso oec:carbonFootprintTotal ;
    rdfs:seeAlso schema:value ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en ;
    skos:narrowMatch <urn:samm:io.BatteryPass.CarbonFootprint:1.2.0#carbonFootprint> ;
    skos:narrowMatch <urn:samm:io.BatteryPass.CarbonFootprint:1.2.0#carbonFootprintPerLifecycleStage> ;
    skos:narrowMatch oec:carbonFootprintTotal ;
    rdfs:seeAlso <urn:samm:io.BatteryPass.CarbonFootprint:1.2.0#absoluteCarbonFootprint> .

eutex:pefSingleScore
    a owl:DatatypeProperty ;
    rdfs:label "PEF Single Score"@en ;
    rdfs:comment "Product Environmental Footprint single score in milli-points (mPt) per PEFCR A&F methodology."@en ;
    rdfs:domain eutex:EnvironmentalFootprint ;
    rdfs:range xsd:decimal ;
    rdfs:seeAlso schema:ratingValue ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:benchmarkPerformance
    a owl:DatatypeProperty ;
    rdfs:label "Benchmark Performance"@en ;
    rdfs:comment "Performance relative to product category benchmark as percentage (negative = better than benchmark)."@en ;
    rdfs:domain eutex:EnvironmentalFootprint ;
    rdfs:range xsd:decimal ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en ;
    rdfs:seeAlso dppk:environmentalFootprintBenchmarkPercentage ;
    rdfs:seeAlso dppk:carbonFootprintBenchmarkPercentage .

eutex:dataTypeIndicator
    a owl:ObjectProperty ;
    rdfs:label "Data Type Indicator"@en ;
    rdfs:comment "Type of data used in the footprint calculation (primary, secondary, or mixed)."@en ;
    rdfs:domain eutex:EnvironmentalFootprint ;
    rdfs:range eutex:FootprintDataType ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:pefcrReference
    a owl:DatatypeProperty ;
    rdfs:label "PEFCR Reference"@en ;
    rdfs:comment "Reference to the applicable PEFCR version (e.g. 'PEFCR Apparel & Footwear v1.3')."@en ;
    rdfs:domain eutex:EnvironmentalFootprint ;
    rdfs:range xsd:string ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:lciaCategories
    a owl:ObjectProperty ;
    rdfs:label "LCIA Categories"@en ;
    rdfs:comment "Individual LCIA category results within the environmental footprint."@en ;
    rdfs:domain eutex:EnvironmentalFootprint ;
    rdfs:range eutex:LCIACategory ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

# LCIA Category properties
eutex:lciaCategoryCode
    a owl:ObjectProperty ;
    rdfs:label "LCIA Category Code"@en ;
    rdfs:comment "The impact category code."@en ;
    rdfs:domain eutex:LCIACategory ;
    rdfs:range eutex:LCIACategoryCode ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en ;
    rdfs:seeAlso schema:hasCategoryCode ;
    skos:narrowMatch schema:category .

eutex:lciaValue
    a owl:DatatypeProperty ;
    rdfs:label "LCIA Value"@en ;
    rdfs:comment "The impact category value in the category-specific unit."@en ;
    rdfs:domain eutex:LCIACategory ;
    rdfs:range xsd:decimal ;
    rdfs:seeAlso schema:value ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en ;
    skos:narrowMatch gs1:value ;
    skos:narrowMatch cv:value ;
    skos:narrowMatch schema:value ;
    skos:narrowMatch cv:providesValueFor .

eutex:lciaUnit
    a owl:DatatypeProperty ;
    rdfs:label "LCIA Unit"@en ;
    rdfs:comment "Unit of the LCIA value (e.g. 'kg CO2-eq', 'm3 world-eq', 'mol H+-eq')."@en ;
    rdfs:domain eutex:LCIACategory ;
    rdfs:range xsd:string ;
    rdfs:seeAlso schema:unitCode ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en ;
    skos:narrowMatch gs1:unitCode .

# =============================================================================
# PART 18: SUBSTANCE OF CONCERN 4-TYPE CLASSIFICATION (WP6)
# EU Preparatory Study on Textiles - 3rd Milestone
# ESPR Article 7(5) 4-type SoC classification
# =============================================================================

eutex:SubstanceOfConcern
    a owl:Class ;
    rdfs:label "Substance of Concern"@en ;
    rdfs:comment """A substance of concern present in the textile product, classified per ESPR Article 7(5)
into 4 types: Type A (SVHC per REACH), Type B (CLP hazard), Type C (POPs),
Type D (substances hindering reuse/recycling)."""@en ;
    rdfs:subClassOf oec:HazardousSubstance ;
    rdfs:seeAlso gs1:hasAllergen ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note """Required extension: ESPR Article 7(5) mandates a 4-type classification for substances
of concern with specific disclosure requirements per type. Extends oec:HazardousSubstance
with regulatory classification detail."""@en ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    rdfs:seeAlso schema:Substance ;
    skos:narrowMatch schema:ChemicalSubstance .

# Substance of Concern Type enumeration
eutex:SubstanceOfConcernType
    a owl:Class ;
    rdfs:label "Substance of Concern Type"@en ;
    rdfs:comment "The 4-type classification of substances of concern per ESPR Article 7(5)."@en ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    owl:oneOf (
        eutex:SoCTypeA
        eutex:SoCTypeB
        eutex:SoCTypeC
        eutex:SoCTypeD
    ) ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en ;
    skos:narrowMatch schema:Substance .

eutex:SoCTypeA a eutex:SubstanceOfConcernType ; rdfs:label "SoC Type A - SVHC"@en ;
    rdfs:comment "Substances of Very High Concern per REACH Regulation (EC) 1907/2006, with 0.1% w/w threshold."@en ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32006R1907> .
eutex:SoCTypeB a eutex:SubstanceOfConcernType ; rdfs:label "SoC Type B - CLP Hazard"@en ;
    rdfs:comment "Substances classified under CLP Regulation 1272/2008 with hazard classifications (CMR, ED, PMT, sensitiser, aquatic toxicity)."@en ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32008R1272> .
eutex:SoCTypeC a eutex:SubstanceOfConcernType ; rdfs:label "SoC Type C - POPs"@en ;
    rdfs:comment "Persistent Organic Pollutants per EU Regulation 2019/1021 (recast of Stockholm Convention obligations)."@en ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32019R1021> .
eutex:SoCTypeD a eutex:SubstanceOfConcernType ; rdfs:label "SoC Type D - Recycling Hindrance"@en ;
    rdfs:comment "Substances that hinder reuse or recycling of the product at end of life."@en ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> .

# CLP Hazard Category enumeration
eutex:CLPHazardCategory
    a owl:Class ;
    rdfs:label "CLP Hazard Category"@en ;
    rdfs:comment "CLP Regulation hazard categories relevant to textile substances of concern (Type B)."@en ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32008R1272> ;
    owl:oneOf (
        eutex:CMR
        eutex:EndocrineDisruptor
        eutex:PMT
        eutex:Sensitizer
        eutex:AquaticToxicity
    ) ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:CMR a eutex:CLPHazardCategory ; rdfs:label "CMR"@en ;
    rdfs:comment "Carcinogenic, Mutagenic, or toxic to Reproduction (categories 1A, 1B, 2)."@en .
eutex:EndocrineDisruptor a eutex:CLPHazardCategory ; rdfs:label "Endocrine Disruptor"@en ;
    rdfs:comment "Endocrine disrupting substance per EU criteria."@en .
eutex:PMT a eutex:CLPHazardCategory ; rdfs:label "PMT"@en ;
    rdfs:comment "Persistent, Mobile, and Toxic or very Persistent, very Mobile (PMT/vPvM)."@en .
eutex:Sensitizer a eutex:CLPHazardCategory ; rdfs:label "Sensitizer"@en ;
    rdfs:comment "Skin or respiratory sensitiser."@en .
eutex:AquaticToxicity a eutex:CLPHazardCategory ; rdfs:label "Aquatic Toxicity"@en ;
    rdfs:comment "Hazardous to the aquatic environment (acute or chronic)."@en .

# Substance of Concern properties
eutex:substancesOfConcern
    a owl:ObjectProperty ;
    rdfs:label "Substances of Concern"@en ;
    rdfs:comment "Substances of concern present in the textile product per ESPR Article 7(5)."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range eutex:SubstanceOfConcern ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en ;
    rdfs:seeAlso oec:substancesOfConcern ;
    rdfs:seeAlso gs1:ingredientOfConcern .

eutex:socType
    a owl:ObjectProperty ;
    rdfs:label "SoC Type"@en ;
    rdfs:comment "The ESPR Article 7(5) type classification (A, B, C, or D)."@en ;
    rdfs:domain eutex:SubstanceOfConcern ;
    rdfs:range eutex:SubstanceOfConcernType ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

# eutex:casNumber removed; use oec:casNumber from core.

eutex:ecNumber
    a owl:DatatypeProperty ;
    rdfs:label "EC Number"@en ;
    rdfs:comment "European Community number (EINECS/ELINCS)."@en ;
    rdfs:domain eutex:SubstanceOfConcern ;
    rdfs:range xsd:string ;
    rdfs:seeAlso schema:identifier ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en ;
    rdfs:seeAlso oec:ecNumber ;
    skos:exactMatch oec:ecNumber ;
    skos:narrowMatch schema:identifier .

eutex:substanceConcentration
    a owl:DatatypeProperty ;
    rdfs:label "Substance Concentration"@en ;
    rdfs:comment "Concentration of the substance in the product as percentage by weight (w/w)."@en ;
    rdfs:domain eutex:SubstanceOfConcern ;
    rdfs:range xsd:decimal ;
    rdfs:seeAlso schema:value ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en ;
    skos:broadMatch <urn:samm:io.BatteryPass.MaterialComposition:1.2.0#hazardousSubstanceConcentration> ;
    rdfs:seeAlso gs1:ingredientContentPercentage .

eutex:concentrationRange
    a owl:DatatypeProperty ;
    rdfs:label "Concentration Range"@en ;
    rdfs:comment "Concentration range as text (e.g. '0.01-0.05% w/w') when exact value is confidential."@en ;
    rdfs:domain eutex:SubstanceOfConcern ;
    rdfs:range xsd:string ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:maxConcentration
    a owl:DatatypeProperty ;
    rdfs:label "Maximum Concentration"@en ;
    rdfs:comment "Maximum concentration of the substance as percentage by weight."@en ;
    rdfs:domain eutex:SubstanceOfConcern ;
    rdfs:range xsd:decimal ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en ;
    skos:narrowMatch <urn:samm:io.BatteryPass.MaterialComposition:1.2.0#hazardousSubstanceConcentration> .

eutex:locationInProduct
    a owl:DatatypeProperty ;
    rdfs:label "Location in Product"@en ;
    rdfs:comment "Where in the product the substance is located (e.g. 'shell fabric', 'dye', 'water-repellent finish')."@en ;
    rdfs:domain eutex:SubstanceOfConcern ;
    rdfs:range xsd:string ;
    rdfs:seeAlso schema:description ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en ;
    rdfs:seeAlso <urn:samm:io.BatteryPass.MaterialComposition:1.2.0#hazardousSubstanceLocation> ;
    skos:narrowMatch gs1:locationDescription .

eutex:safeUseInstructions
    a owl:DatatypeProperty ;
    rdfs:label "Safe Use Instructions"@en ;
    rdfs:comment "Instructions for safe use of the product considering the substance of concern."@en ;
    rdfs:domain eutex:SubstanceOfConcern ;
    rdfs:range xsd:string ;
    rdfs:seeAlso gs1:consumerSafetyInformation, gs1:safetyInfo ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en ;
    rdfs:seeAlso oec:safeUseInstructions ;
    skos:exactMatch dppk:safeUseInstructions ;
    rdfs:seeAlso gs1:consumerUsageInstructions ;
    rdfs:seeAlso gs1:instructions ;
    skos:narrowMatch gs1:consumerSafetyInformation .

eutex:endOfLifeHandling
    a owl:DatatypeProperty ;
    rdfs:label "End of Life Handling"@en ;
    rdfs:comment "Special handling instructions for end-of-life treatment due to the substance of concern."@en ;
    rdfs:domain eutex:SubstanceOfConcern ;
    rdfs:range xsd:string ;
    rdfs:seeAlso gs1:consumerRecyclingInstructions, gs1:sustainabilityInfo ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022DC0141> ;
    skos:note "Textile circularity (repair / take-back / end-of-life) concept per the EU Strategy for Sustainable and Circular Textiles (COM/2022/141) and ESPR Article 7. No upstream equivalent."@en ;
    rdfs:seeAlso <urn:samm:io.BatteryPass.Circularity:1.2.0#endOfLifeInformation> ;
    skos:narrowMatch gs1:sustainabilityInfo .

eutex:clpHazardCategory
    a owl:ObjectProperty ;
    rdfs:label "CLP Hazard Category"@en ;
    rdfs:comment "CLP hazard category classification (applicable to Type B substances)."@en ;
    rdfs:domain eutex:SubstanceOfConcern ;
    rdfs:range eutex:CLPHazardCategory ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

# =============================================================================
# PART 19: TEST STANDARD REFERENCES (WP7)
# EU Preparatory Study on Textiles - 3rd Milestone
# =============================================================================

eutex:TestStandard
    a owl:Class ;
    rdfs:label "Test Standard"@en ;
    rdfs:comment "Test standards referenced in the EU Preparatory Study for textile robustness and durability testing."@en ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    owl:oneOf (
        eutex:ISO6330
        eutex:ISO16322_3
        eutex:ISO3759
        eutex:ISO15487
        eutex:ISO105
        eutex:ISO12945
        eutex:ISO12947
    ) ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en ;
    skos:narrowMatch untp:Standard .

eutex:ISO6330 a eutex:TestStandard ; rdfs:label "ISO 6330"@en ;
    rdfs:comment "Textiles - Domestic washing and drying procedures for textile testing."@en ;
    rdfs:seeAlso <https://www.iso.org/standard/75934.html> .
eutex:ISO16322_3 a eutex:TestStandard ; rdfs:label "ISO 16322-3"@en ;
    rdfs:comment "Textiles - Determination of spirality after laundering - Part 3: Woven and knitted garments."@en ;
    rdfs:seeAlso <https://www.iso.org/standard/56326.html> .
eutex:ISO3759 a eutex:TestStandard ; rdfs:label "ISO 3759"@en ;
    rdfs:comment "Textiles - Preparation, marking and measuring of fabric specimens and garments in tests for determination of dimensional change."@en ;
    rdfs:seeAlso <https://www.iso.org/standard/57309.html> .
eutex:ISO15487 a eutex:TestStandard ; rdfs:label "ISO 15487"@en ;
    rdfs:comment "Textiles - Method for assessing the appearance of apparel and other textile end products after domestic washing and drying."@en ;
    rdfs:seeAlso <https://www.iso.org/standard/55312.html> .
eutex:ISO105 a eutex:TestStandard ; rdfs:label "ISO 105"@en ;
    rdfs:comment "Textiles - Tests for colour fastness (multi-part standard)."@en ;
    rdfs:seeAlso <https://www.iso.org/standard/65207.html> .
eutex:ISO12945 a eutex:TestStandard ; rdfs:label "ISO 12945"@en ;
    rdfs:comment "Textiles - Determination of fabric propensity to surface pilling, fuzzing or matting."@en ;
    rdfs:seeAlso <https://www.iso.org/standard/75375.html> .
eutex:ISO12947 a eutex:TestStandard ; rdfs:label "ISO 12947"@en ;
    rdfs:comment "Textiles - Determination of the abrasion resistance of fabrics by the Martindale method."@en ;
    rdfs:seeAlso <https://www.iso.org/standard/75376.html> .

# Test Standard property
eutex:testStandard
    a owl:ObjectProperty ;
    rdfs:label "Test Standard"@en ;
    rdfs:comment "The test standard used for a durability or robustness test."@en ;
    rdfs:range eutex:TestStandard ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    skos:note "Textile Digital Product Passport attribute mandated under ESPR 2024/1781 (textile delegated act). No GS1, SEMICeu, or schema.org equivalent."@en .

# =============================================================================
# Cross-cutting alignment to oec: (Phase 2 lift)
# =============================================================================

eutex:RecyclabilityAssessment rdfs:subClassOf oec:RecyclabilityAssessment .

# =============================================================================
# PART 18: DPP Keystone ESPR harvest
# =============================================================================
# Deltas harvested from the DPP Keystone textile ESPR profile (dppk:) that the
# richer eutex: model did not yet cover: organic content, animal-origin flag,
# EU Ecolabel, EU Declaration of Conformity, weight excluding trims, and the
# discrete PEF/carbon footprint performance classes. Each anchored to its dppk:
# counterpart. Recycled-content detail, the PEF single score, and the LCIA
# breakdown are already covered above (PART 16/17) and are not re-minted.

eutex:organicContentPercentage
    a owl:DatatypeProperty ;
    rdfs:label "Organic Content Percentage"@en ;
    rdfs:comment "Share of certified organic fibre content by mass (%), per Regulation (EU) 2018/848."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range xsd:decimal ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2018/848> ;
    rdfs:seeAlso dppk:organicContentPercentage ;
    skos:closeMatch dppk:organicContentPercentage ;
    skos:note "Organic content per Regulation (EU) 2018/848. Anchored to the DPP Keystone peer profile dppk:organicContentPercentage. No GS1, SEMICeu, or schema.org equivalent."@en ;
    skos:narrowMatch gs1:organicPercentClaim ;
    skos:narrowMatch <urn:samm:io.BatteryPass.Circularity:1.2.0#renewableContent> .

eutex:organicContentMass
    a owl:DatatypeProperty ;
    rdfs:label "Organic Content Mass"@en ;
    rdfs:comment "Mass of certified organic fibre content (grams), per Regulation (EU) 2018/848."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range xsd:decimal ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2018/848> ;
    rdfs:seeAlso dppk:organicContentMass ;
    skos:exactMatch dppk:organicContentMass ;
    skos:note "Organic content per Regulation (EU) 2018/848. Anchored to the DPP Keystone peer profile dppk:organicContentMass. No GS1, SEMICeu, or schema.org equivalent."@en ;
    skos:narrowMatch schema:fiberContent .

eutex:containsAnimalNonTextileParts
    a owl:DatatypeProperty ;
    rdfs:label "Contains Non-Textile Parts of Animal Origin"@en ;
    rdfs:comment "Whether the product contains non-textile parts of animal origin, per the Textile Labelling Regulation (EU) 1007/2011 Article 12."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range xsd:boolean ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32011R1007> ;
    rdfs:seeAlso dppk:animalOriginNonTextile ;
    skos:exactMatch dppk:animalOriginNonTextile ;
    skos:note "Non-textile animal-origin disclosure per Regulation (EU) 1007/2011 Article 12. Anchored to the DPP Keystone peer profile dppk:animalOriginNonTextile. No GS1, SEMICeu, or schema.org equivalent."@en .

eutex:euEcolabel
    a owl:DatatypeProperty ;
    rdfs:label "EU Ecolabel"@en ;
    rdfs:comment "Whether the product carries the EU Ecolabel (Regulation (EC) 66/2010)."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range xsd:boolean ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32010R0066> ;
    rdfs:seeAlso dppk:euEcolabel ;
    skos:exactMatch dppk:euEcolabel ;
    skos:note "EU Ecolabel flag per Regulation (EC) 66/2010. Anchored to the DPP Keystone peer profile dppk:euEcolabel. Use gs1:CertificationDetails for the full certificate where available."@en ;
    skos:narrowMatch untp:productLabel ;
    skos:narrowMatch gs1:compulsoryAdditionalLabelInformation .

eutex:euDeclarationOfConformity
    a owl:ObjectProperty ;
    rdfs:label "EU Declaration of Conformity"@en ;
    rdfs:comment "Reference to the product's EU Declaration of Conformity under the ESPR textile delegated act. Reuse oec:DocumentReference."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range oec:DocumentReference ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    rdfs:seeAlso dppk:euDeclarationOfConformity ;
    skos:exactMatch dppk:euDeclarationOfConformity ;
    skos:note "EU Declaration of Conformity per the ESPR textile delegated act. Reuses oec:DocumentReference; anchored to the DPP Keystone peer profile dppk:euDeclarationOfConformity."@en .

eutex:weightExcludingTrims
    a owl:DatatypeProperty ;
    rdfs:label "Weight Excluding Trims"@en ;
    rdfs:comment "Product weight excluding trims and accessories (grams), used for recycled/organic content denominators. Use gs1:netWeight for the total product weight."@en ;
    rdfs:domain gs1:Product ;
    rdfs:range xsd:decimal ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    rdfs:seeAlso gs1:netWeight ;
    rdfs:seeAlso dppk:weightExcludingTrims ;
    skos:exactMatch dppk:weightExcludingTrims ;
    skos:note "Textile content-denominator weight per the ESPR textile delegated act. Anchored to the DPP Keystone peer profile dppk:weightExcludingTrims; complements gs1:netWeight."@en ;
    skos:narrowMatch schema:weight .

eutex:carbonFootprintClass
    a owl:DatatypeProperty ;
    rdfs:label "Carbon Footprint Class"@en ;
    rdfs:comment "Discrete performance class (A–G style band, expressed as an integer 1..n) for the manufacturing carbon footprint relative to the PEFCR climate-change benchmark."@en ;
    rdfs:domain eutex:EnvironmentalFootprint ;
    rdfs:range xsd:integer ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    rdfs:seeAlso dppk:carbonFootprintClass ;
    skos:exactMatch dppk:carbonFootprintClass ;
    skos:note "Discrete PEF carbon-footprint class per the ESPR textile delegated act. Complements eutex:carbonFootprintManufacturing (the value) and eutex:benchmarkPerformance (the percentage). Anchored to the DPP Keystone peer profile dppk:carbonFootprintClass."@en ;
    skos:closeMatch <urn:samm:io.BatteryPass.CarbonFootprint:1.2.0#carbonFootprintPerformanceClass> .

eutex:environmentalFootprintClass
    a owl:DatatypeProperty ;
    rdfs:label "Environmental Footprint Class"@en ;
    rdfs:comment "Discrete performance class (A–G style band, expressed as an integer 1..n) for the PEF single score relative to the product-category benchmark."@en ;
    rdfs:domain eutex:EnvironmentalFootprint ;
    rdfs:range xsd:integer ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/eli/reg/2024/1781> ;
    rdfs:seeAlso dppk:environmentalFootprintClass ;
    skos:exactMatch dppk:environmentalFootprintClass ;
    skos:note "Discrete PEF single-score class per the ESPR textile delegated act. Complements eutex:pefSingleScore (the value) and eutex:benchmarkPerformance (the percentage). Anchored to the DPP Keystone peer profile dppk:environmentalFootprintClass."@en .

eutex:textileFibreScientificName
    a owl:DatatypeProperty ;
    rdfs:label "Textile Fibre Scientific Name"@en ;
    rdfs:comment "Scientific (binomial) name of a textile fibre, e.g. \"Gossypium hirsutum\" for cotton, required alongside the common fibre name for certain fibres under the EU Textile Labelling Regulation."@en ;
    rdfs:domain gs1:TextileMaterialDetails ;
    rdfs:range xsd:string ;
    rdfs:isDefinedBy <https://ref.openepcis.io/extensions/eu/textile/> ;
    dcterms:source <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32011R1007> ;
    skos:note "Fibre-composition / labelling concept per the EU Textile Labelling Regulation (EU) 1007/2011. GS1 gs1:textileMaterialDescription carries one material name/description (to which the fibre common name maps) but has no separate field for a scientific (binomial) fibre name."@en ;
    rdfs:seeAlso gs1:textileMaterialDescription ;
    skos:broadMatch gs1:textileMaterialDescription .
