@prefix lcaef:   <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef#> .
@prefix dpp:     <https://www.dpp-interoperability.wiki/vocab/v1/dpp#> .
@prefix compliance: <https://www.dpp-interoperability.wiki/vocab/v1/compliance#> .
@prefix soc:     <https://www.dpp-interoperability.wiki/vocab/v1/soc#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix skos:    <http://www.w3.org/2004/02/skos/core#> .
@prefix qudt:    <http://qudt.org/schema/qudt/> .
@prefix vann:    <http://purl.org/vocab/vann/> .

# =============================================================================
# DPP Lifecycle Assessment and Environmental Footprint Extension Vocabulary v0.2
# =============================================================================

<https://www.dpp-interoperability.wiki/vocab/v1/lca-ef>
  a owl:Ontology ;
  owl:versionIRI   <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef/0.2> ;
  owl:versionInfo  "0.2" ;
  owl:imports      <https://www.dpp-interoperability.wiki/vocab/v1/dpp> ;
  #             properties but not formally imported in the original.
  owl:imports      <http://qudt.org/2.1/schema/qudt> ;
  rdfs:label       "DPP LCA Environmental Footprint Extension Vocabulary"@en ;
  rdfs:comment     "LCA Environmental Footprint (EF) extension to the DPP Core Vocabulary. Covers life-cycle assessment data aligned with the EU Product Environmental Footprint (PEF) method, including carbon footprint per lifecycle stage, multi-impact-category indicators, LCA methodology, data quality, circularity metrics, water footprint, performer/reviewer tracking, and compliance declarations."@en ;
  dcterms:description
    "Life Cycle Assessment (LCA) and EU Environmental Footprint (EF) extension vocabulary for the DPP Interoperability Platform."@en ;
  dcterms:creator   "Jorge Renato Leon Chumpitaz" ;
  dcterms:publisher "VU Amsterdam / LUT University" ;
  dcterms:created   "2026-02-06"^^xsd:date ;
  dcterms:modified  "2026-02-27"^^xsd:date ;
  dcterms:license   <https://creativecommons.org/licenses/by/4.0/> ;
  dcterms:rights    "CC BY 4.0 — Jorge Renato Leon Chumpitaz" ;
  dcterms:subject   "Digital Product Passport", "LCA", "Environmental Footprint",
                    "PEF", "EU ESPR", "Carbon Footprint", "Circularity" ;
  rdfs:seeAlso      <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32024R1781> ,
                    <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32013H0179> ,
                    <https://www.iso.org/standard/37456.html> ,
                    <https://www.iso.org/standard/38498.html> ,
                    <https://ghgprotocol.org/product-standard> ,
                    <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef.shacl.ttl> ;
  vann:preferredNamespacePrefix "lcaef" ;
  vann:preferredNamespaceUri    "https://www.dpp-interoperability.wiki/vocab/v1/lca-ef#" .

# =============================================================================
# Classes
# =============================================================================

lcaef:LcaEfExtension
  a owl:Class ;
  #       is satisfied and the extension class hierarchy is coherent.
  rdfs:subClassOf  dpp:Extension ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "LCA Environmental Footprint Extension"@en ;
  rdfs:comment "Root container for LCA and Environmental Footprint data in a DPP."@en ;
  skos:definition
    "A dpp:Extension which groups all life-cycle assessment and EU Product Environmental Footprint data for a Digital Product Passport, including carbon footprint, multi-impact category indicators, lifecycle stages, LCA methodology, data quality, circularity metrics, water footprint, performer and reviewer information, and compliance declarations. Aligned with EU PEF method (2013/179/EU), ISO 14040/14044, and GHG Protocol Product Standard."@en ;
  rdfs:seeAlso <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32013H0179> ,
               <https://ghgprotocol.org/product-standard> .

lcaef:CarbonFootprint
  a owl:Class ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "Carbon Footprint"@en ;
  rdfs:comment "Total carbon footprint of the product, expressed using EU PEF methodology."@en ;
  skos:definition
    "A lcaef:LcaEfExtension component which quantifies the total greenhouse gas emissions of the product across its life cycle, expressed in kg CO2 equivalent per functional unit, calculated using the EU PEF characterisation factors for the Climate Change impact category."@en ;
  rdfs:seeAlso <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32013H0179> .

lcaef:LifecycleStage
  a owl:Class ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "Lifecycle Stage"@en ;
  rdfs:comment "Carbon footprint contribution from a specific lifecycle stage."@en ;
  skos:definition
    "A lcaef:CarbonFootprint component which records the greenhouse gas emission contribution of a named lifecycle phase (raw material extraction, manufacturing, distribution, use, or end-of-life), together with the impact value and any phase-specific assumptions."@en .

lcaef:ImpactCategory
  a owl:Class ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "Impact Category"@en ;
  rdfs:comment "An EU PEF impact category (Climate Change, Acidification, Eutrophication, etc.)."@en ;
  skos:definition
    "A lcaef:LcaEfExtension component which identifies one of the 16 EU EF impact categories (e.g. Climate Change, Acidification, Land Use, Water Use), the characterisation model used, and the set of impact indicators calculated for that category."@en ;
  rdfs:seeAlso <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32013H0179> .

lcaef:ImpactIndicator
  a owl:Class ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "Impact Indicator"@en ;
  rdfs:comment "A single calculated environmental impact indicator value for an impact category."@en ;
  skos:definition
    "A lcaef:ImpactCategory component which records one environmental impact indicator result, comprising the indicator name, the numeric value expressed as a qudt:QuantityValue, and the characterisation unit."@en .

lcaef:Methodology
  a owl:Class ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "Methodology"@en ;
  rdfs:comment "LCA methodology applied: standard, system boundary, allocation rules, and cut-off criteria."@en ;
  skos:definition
    "A lcaef:LcaEfExtension component which specifies the methodological choices made in the LCA study, including the governing standard (e.g. ISO 14040/44, EU PEF), system boundary, allocation method, and cut-off criteria."@en ;
  rdfs:seeAlso <https://www.iso.org/standard/37456.html> .

lcaef:DataQuality
  a owl:Class ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "Data Quality"@en ;
  rdfs:comment "Data quality metadata: temporal, geographical, and technology coverage; primary data share."@en ;
  skos:definition
    "A lcaef:LcaEfExtension component which documents the quality of the inventory data underlying the LCA, specifying temporal coverage, geographical coverage, technology coverage, and the share of primary (directly measured) data used."@en .

lcaef:CircularityMetrics
  a owl:Class ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "Circularity Metrics"@en ;
  rdfs:comment "Circularity indicators: recyclability rate, recycled content rate, repairability score, MCI."@en ;
  skos:definition
    "A lcaef:LcaEfExtension component which quantifies the circular-economy performance of the product through recyclability rate, recycled content rate, repairability score, Material Circularity Indicator (MCI), and a qualitative or quantitative durability indicator."@en .

lcaef:WaterFootprint
  a owl:Class ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "Water Footprint"@en ;
  rdfs:comment "Product water footprint: blue, green, and grey water consumption."@en ;
  skos:definition
    "A lcaef:LcaEfExtension component which quantifies the total freshwater impact of the product lifecycle through three complementary indicators: blue water (surface/groundwater consumption), green water (rainwater consumption), and grey water (freshwater needed to dilute pollutants)."@en .

lcaef:Performer
  a owl:Class ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "Performer"@en ;
  rdfs:comment "Organization or person that performed the LCA study."@en ;
  skos:definition
    "A lcaef:LcaEfExtension component which identifies the organization or person who conducted the LCA study, including the performing organization's name, contact information, relevant accreditation, and the date the study was performed."@en .

lcaef:Reviewer
  a owl:Class ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "Reviewer"@en ;
  rdfs:comment "Critical reviewer of the LCA study."@en ;
  skos:definition
    "A lcaef:LcaEfExtension component which identifies the independent reviewer or review panel for the LCA study, specifying the reviewer name, review type (internal, third-party, or critical per ISO 14044), and review completion date."@en .

lcaef:ComplianceDeclaration
  a owl:Class ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "Compliance Declaration"@en ;
  rdfs:comment "Regulatory compliance declaration referenced from the LCA extension."@en ;
  skos:definition
    "A lcaef:LcaEfExtension component which records a product compliance declaration with a specific regulation as attested within the LCA context, identified by regulation reference, compliance status, and a URL to the declaration document."@en ;
  #            future consolidation of compliance data in the canonical extension.
  rdfs:seeAlso <https://www.dpp-interoperability.wiki/vocab/v1/compliance#ComplianceExtension> ;
  dcterms:isReplacedBy <https://www.dpp-interoperability.wiki/vocab/v1/compliance#Declaration> .



# Disjointness — top-level sub-classes of LcaEfExtension are disjoint
lcaef:CarbonFootprint    owl:disjointWith lcaef:ImpactCategory, lcaef:Methodology,
                                          lcaef:DataQuality, lcaef:CircularityMetrics,
                                          lcaef:WaterFootprint, lcaef:Performer,
                                          lcaef:Reviewer, lcaef:ComplianceDeclaration .
lcaef:ImpactCategory     owl:disjointWith lcaef:Methodology, lcaef:DataQuality,
                                          lcaef:CircularityMetrics, lcaef:WaterFootprint .
lcaef:Methodology        owl:disjointWith lcaef:DataQuality, lcaef:CircularityMetrics .
lcaef:Performer          owl:disjointWith lcaef:Reviewer .

# =============================================================================
# Cardinality Constraints
#            property of lcaef:LcaEfExtension.
# =============================================================================

lcaef:LcaEfExtension
  rdfs:subClassOf
    [ a owl:Restriction ;
      owl:onProperty   lcaef:carbonFootprint ;
      owl:minCardinality 1 ] .

# =============================================================================
# Object Properties
# =============================================================================

lcaef:carbonFootprint
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label    "carbonFootprint"@en ;
  rdfs:comment  "Links LcaEfExtension to its carbon footprint record."@en ;
  rdfs:domain   lcaef:LcaEfExtension ;
  rdfs:range    lcaef:CarbonFootprint ;
  owl:inverseOf lcaef:isCarbonFootprintOf .

lcaef:isCarbonFootprintOf
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "isCarbonFootprintOf"@en ;
  rdfs:comment "Inverse of lcaef:carbonFootprint."@en ;
  rdfs:domain  lcaef:CarbonFootprint ;
  rdfs:range   lcaef:LcaEfExtension .

lcaef:lifecycleStages
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label    "lifecycleStages"@en ;
  rdfs:comment  "Links CarbonFootprint to its per-stage breakdown."@en ;
  rdfs:domain   lcaef:CarbonFootprint ;
  rdfs:range    lcaef:LifecycleStage ;
  owl:inverseOf lcaef:isLifecycleStageOf .

lcaef:isLifecycleStageOf
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "isLifecycleStageOf"@en ;
  rdfs:comment "Inverse of lcaef:lifecycleStages."@en ;
  rdfs:domain  lcaef:LifecycleStage ;
  rdfs:range   lcaef:CarbonFootprint .

lcaef:impactCategories
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label    "impactCategories"@en ;
  rdfs:comment  "Links LcaEfExtension to its EU EF impact categories."@en ;
  rdfs:domain   lcaef:LcaEfExtension ;
  rdfs:range    lcaef:ImpactCategory ;
  owl:inverseOf lcaef:isImpactCategoryOf .

lcaef:isImpactCategoryOf
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "isImpactCategoryOf"@en ;
  rdfs:comment "Inverse of lcaef:impactCategories."@en ;
  rdfs:domain  lcaef:ImpactCategory ;
  rdfs:range   lcaef:LcaEfExtension .

lcaef:indicators
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label    "indicators"@en ;
  rdfs:comment  "Links an ImpactCategory to its computed impact indicators."@en ;
  rdfs:domain   lcaef:ImpactCategory ;
  rdfs:range    lcaef:ImpactIndicator ;
  owl:inverseOf lcaef:isIndicatorOf .

lcaef:isIndicatorOf
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "isIndicatorOf"@en ;
  rdfs:comment "Inverse of lcaef:indicators."@en ;
  rdfs:domain  lcaef:ImpactIndicator ;
  rdfs:range   lcaef:ImpactCategory .

lcaef:methodology
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label    "methodology"@en ;
  rdfs:comment  "Links LcaEfExtension to its LCA methodology."@en ;
  rdfs:domain   lcaef:LcaEfExtension ;
  rdfs:range    lcaef:Methodology ;
  owl:inverseOf lcaef:isMethodologyOf .

lcaef:isMethodologyOf
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "isMethodologyOf"@en ;
  rdfs:comment "Inverse of lcaef:methodology."@en ;
  rdfs:domain  lcaef:Methodology ;
  rdfs:range   lcaef:LcaEfExtension .

lcaef:dataQuality
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label    "dataQuality"@en ;
  rdfs:comment  "Links LcaEfExtension to its data quality metadata."@en ;
  rdfs:domain   lcaef:LcaEfExtension ;
  rdfs:range    lcaef:DataQuality ;
  owl:inverseOf lcaef:isDataQualityOf .

lcaef:isDataQualityOf
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "isDataQualityOf"@en ;
  rdfs:comment "Inverse of lcaef:dataQuality."@en ;
  rdfs:domain  lcaef:DataQuality ;
  rdfs:range   lcaef:LcaEfExtension .

lcaef:circularityMetrics
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label    "circularityMetrics"@en ;
  rdfs:comment  "Links LcaEfExtension to its circularity indicators."@en ;
  rdfs:domain   lcaef:LcaEfExtension ;
  rdfs:range    lcaef:CircularityMetrics ;
  owl:inverseOf lcaef:isCircularityMetricsOf .

lcaef:isCircularityMetricsOf
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "isCircularityMetricsOf"@en ;
  rdfs:comment "Inverse of lcaef:circularityMetrics."@en ;
  rdfs:domain  lcaef:CircularityMetrics ;
  rdfs:range   lcaef:LcaEfExtension .

lcaef:waterFootprint
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label    "waterFootprint"@en ;
  rdfs:comment  "Links LcaEfExtension to its water footprint data."@en ;
  rdfs:domain   lcaef:LcaEfExtension ;
  rdfs:range    lcaef:WaterFootprint ;
  owl:inverseOf lcaef:isWaterFootprintOf .

lcaef:isWaterFootprintOf
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "isWaterFootprintOf"@en ;
  rdfs:comment "Inverse of lcaef:waterFootprint."@en ;
  rdfs:domain  lcaef:WaterFootprint ;
  rdfs:range   lcaef:LcaEfExtension .

lcaef:performedBy
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label    "performedBy"@en ;
  rdfs:comment  "Links LcaEfExtension to the Performer of the LCA."@en ;
  rdfs:domain   lcaef:LcaEfExtension ;
  rdfs:range    lcaef:Performer ;
  owl:inverseOf lcaef:isPerformerOf .

lcaef:isPerformerOf
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "isPerformerOf"@en ;
  rdfs:comment "Inverse of lcaef:performedBy."@en ;
  rdfs:domain  lcaef:Performer ;
  rdfs:range   lcaef:LcaEfExtension .

lcaef:reviewedBy
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label    "reviewedBy"@en ;
  rdfs:comment  "Links LcaEfExtension to the Reviewer of the LCA."@en ;
  rdfs:domain   lcaef:LcaEfExtension ;
  rdfs:range    lcaef:Reviewer ;
  owl:inverseOf lcaef:isReviewerOf .

lcaef:isReviewerOf
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "isReviewerOf"@en ;
  rdfs:comment "Inverse of lcaef:reviewedBy."@en ;
  rdfs:domain  lcaef:Reviewer ;
  rdfs:range   lcaef:LcaEfExtension .

lcaef:complianceDeclarations
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label    "complianceDeclarations"@en ;
  rdfs:comment  "Links LcaEfExtension to its compliance declarations."@en ;
  rdfs:domain   lcaef:LcaEfExtension ;
  rdfs:range    lcaef:ComplianceDeclaration ;
  owl:inverseOf lcaef:isComplianceDeclarationOf .

lcaef:isComplianceDeclarationOf
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "isComplianceDeclarationOf"@en ;
  rdfs:comment "Inverse of lcaef:complianceDeclarations."@en ;
  rdfs:domain  lcaef:ComplianceDeclaration ;
  rdfs:range   lcaef:LcaEfExtension .

# to owl:ObjectProperty pointing to qudt:QuantityValue, aligning with the pattern
# used for battery:ratedCapacity, dpp:materialMass, and all other measured quantities
# in the vocabulary suite. A plain xsd:double carries no unit information.
lcaef:indicatorValue
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "indicatorValue"@en ;
  rdfs:comment "Numeric value of the impact indicator expressed as a qudt:QuantityValue (value + unit). Previously xsd:double — see refactoring note H10."@en ;
  rdfs:domain  lcaef:ImpactIndicator ;
  rdfs:range   qudt:QuantityValue .

# =============================================================================
# Datatype Properties — Carbon Footprint & Lifecycle Stage
# =============================================================================

lcaef:totalCarbonFootprint
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "totalCarbonFootprint"@en ;
  rdfs:comment "Total product carbon footprint value (numeric, in the declared unit)."@en ;
  rdfs:domain  lcaef:CarbonFootprint ;
  rdfs:range   xsd:double .

lcaef:carbonFootprintUnit
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "carbonFootprintUnit"@en ;
  rdfs:comment "Unit of the carbon footprint (e.g. 'kg CO2e', 'kg CO2e/kWh')."@en ;
  rdfs:domain  lcaef:CarbonFootprint ;
  rdfs:range   xsd:string .

lcaef:functionalUnit
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "functionalUnit"@en ;
  rdfs:comment "Functional unit for the LCA (e.g. '1 kWh of electricity delivered')."@en ;
  rdfs:domain  lcaef:CarbonFootprint ;
  rdfs:range   xsd:string .

lcaef:stageName
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "stageName"@en ;
  rdfs:comment "Name of the lifecycle stage: raw_material_extraction, manufacturing, distribution, use, end_of_life."@en ;
  rdfs:domain  lcaef:LifecycleStage ;
  rdfs:range   xsd:string .

lcaef:stageImpact
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "stageImpact"@en ;
  rdfs:comment "Carbon footprint contribution from this lifecycle stage (same unit as totalCarbonFootprint)."@en ;
  rdfs:domain  lcaef:LifecycleStage ;
  rdfs:range   xsd:double .

lcaef:rawMaterialExtractionImpact
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "rawMaterialExtractionImpact"@en ;
  rdfs:comment "Carbon footprint from raw material extraction."@en ;
  rdfs:domain  lcaef:LifecycleStage ;
  rdfs:range   xsd:double .

lcaef:manufacturingImpact
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "manufacturingImpact"@en ;
  rdfs:comment "Carbon footprint from manufacturing."@en ;
  rdfs:domain  lcaef:LifecycleStage ;
  rdfs:range   xsd:double .

lcaef:distributionImpact
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "distributionImpact"@en ;
  rdfs:comment "Carbon footprint from distribution and transport."@en ;
  rdfs:domain  lcaef:LifecycleStage ;
  rdfs:range   xsd:double .

lcaef:usePhaseImpact
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "usePhaseImpact"@en ;
  rdfs:comment "Carbon footprint contribution from the use phase."@en ;
  rdfs:domain  lcaef:LifecycleStage ;
  rdfs:range   xsd:double .

lcaef:usePhaseAssumptions
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "usePhaseAssumptions"@en ;
  rdfs:comment "Assumptions used for use phase impact calculation."@en ;
  rdfs:domain  lcaef:LifecycleStage ;
  rdfs:range   xsd:string .

lcaef:endOfLifeImpact
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "endOfLifeImpact"@en ;
  rdfs:comment "Carbon footprint contribution from end-of-life."@en ;
  rdfs:domain  lcaef:LifecycleStage ;
  rdfs:range   xsd:double .

lcaef:endOfLifeScenarios
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "endOfLifeScenarios"@en ;
  rdfs:comment "End-of-life scenarios considered (recycling, landfill, incineration, etc.)."@en ;
  rdfs:domain  lcaef:LifecycleStage ;
  rdfs:range   xsd:string .

# =============================================================================
# Datatype Properties — Impact Indicator
#        indicatorName and unit remain DatatypeProperties.
# =============================================================================

lcaef:indicatorName
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "indicatorName"@en ;
  rdfs:comment "Name of the impact indicator (e.g. 'GWP100', 'AP', 'EP-freshwater')."@en ;
  rdfs:domain  lcaef:ImpactIndicator ;
  rdfs:range   xsd:string .

lcaef:unit
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "unit"@en ;
  rdfs:comment "Characterisation unit for the impact indicator (e.g. 'kg CO2 eq', 'mol H+ eq')."@en ;
  rdfs:domain  lcaef:ImpactIndicator ;
  rdfs:range   xsd:string .

# =============================================================================
# Datatype Properties — Impact Category
# =============================================================================

lcaef:categoryName
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "categoryName"@en ;
  rdfs:comment "Name of the impact category (e.g. Climate Change, Acidification, Eutrophication)."@en ;
  rdfs:domain  lcaef:ImpactCategory ;
  rdfs:range   xsd:string .

lcaef:characterisationModel
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "characterisationModel"@en ;
  rdfs:comment "Impact assessment characterisation model (e.g. EF 3.1, ReCiPe)."@en ;
  rdfs:domain  lcaef:ImpactCategory ;
  rdfs:range   xsd:string .

# =============================================================================
# Datatype Properties — Methodology
# =============================================================================

lcaef:standard
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "standard"@en ;
  rdfs:comment "LCA standard followed (e.g. ISO 14040:2006, ISO 14044:2006, EU PEF)."@en ;
  rdfs:domain  lcaef:Methodology ;
  rdfs:range   xsd:string ;
  rdfs:seeAlso <https://www.iso.org/standard/37456.html> .

lcaef:systemBoundary
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "systemBoundary"@en ;
  rdfs:comment "System boundary: cradle-to-gate, cradle-to-grave, gate-to-gate, etc."@en ;
  rdfs:domain  lcaef:Methodology ;
  rdfs:range   xsd:string .

lcaef:allocationMethod
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "allocationMethod"@en ;
  rdfs:comment "Allocation method: mass-based, economic, physical, system expansion."@en ;
  rdfs:domain  lcaef:Methodology ;
  rdfs:range   xsd:string .

lcaef:cutOffCriteria
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "cutOffCriteria"@en ;
  rdfs:comment "Cut-off criteria applied (e.g. 1% mass, 1% energy)."@en ;
  rdfs:domain  lcaef:Methodology ;
  rdfs:range   xsd:string .

# =============================================================================
# Datatype Properties — Data Quality
# =============================================================================

lcaef:temporalCoverage
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "temporalCoverage"@en ;
  rdfs:comment "Time period covered by the LCA inventory data (e.g. '2024-2025')."@en ;
  rdfs:domain  lcaef:DataQuality ;
  rdfs:range   xsd:string .

lcaef:geographicalCoverage
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "geographicalCoverage"@en ;
  rdfs:comment "Geographical scope of the inventory data (e.g. 'EU-27', 'Global')."@en ;
  rdfs:domain  lcaef:DataQuality ;
  rdfs:range   xsd:string .

lcaef:technologyCoverage
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "technologyCoverage"@en ;
  rdfs:comment "Technology mix represented in inventory data (e.g. 'Average EU grid mix 2023')."@en ;
  rdfs:domain  lcaef:DataQuality ;
  rdfs:range   xsd:string .

lcaef:primaryDataPercentage
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "primaryDataPercentage"@en ;
  rdfs:comment "Percentage of primary (directly measured) data used (0.0 to 100.0)."@en ;
  rdfs:domain  lcaef:DataQuality ;
  rdfs:range   xsd:double .

# =============================================================================
# Datatype Properties — Performer
# =============================================================================

lcaef:performingOrganization
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "performingOrganization"@en ;
  rdfs:comment "Name of the organization that performed the LCA."@en ;
  rdfs:domain  lcaef:Performer ;
  rdfs:range   xsd:string .

lcaef:contactInfo
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "contactInfo"@en ;
  rdfs:comment "Contact information for the LCA performer."@en ;
  rdfs:domain  lcaef:Performer ;
  rdfs:range   xsd:string .

lcaef:accreditation
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "accreditation"@en ;
  rdfs:comment "Accreditation body or standard the performer is certified under."@en ;
  rdfs:domain  lcaef:Performer ;
  rdfs:range   xsd:string .

lcaef:performedDate
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "performedDate"@en ;
  rdfs:comment "Date the LCA was performed."@en ;
  rdfs:domain  lcaef:Performer ;
  rdfs:range   xsd:date .

# =============================================================================
# Datatype Properties — Reviewer
# =============================================================================

lcaef:reviewer
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "reviewer"@en ;
  rdfs:comment "Name of the reviewer or review panel."@en ;
  rdfs:domain  lcaef:Reviewer ;
  rdfs:range   xsd:string .

lcaef:reviewDate
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "reviewDate"@en ;
  rdfs:comment "Date the LCA review was completed."@en ;
  rdfs:domain  lcaef:Reviewer ;
  rdfs:range   xsd:date .

lcaef:reviewType
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "reviewType"@en ;
  rdfs:comment "Type of review: internal, third-party, or critical (per ISO 14044 clause 6.2)."@en ;
  rdfs:domain  lcaef:Reviewer ;
  rdfs:range   xsd:string .

# =============================================================================
# Datatype Properties — LcaEfExtension top-level
# =============================================================================

lcaef:reportLink
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "reportLink"@en ;
  rdfs:comment "URL to the full LCA report document."@en ;
  rdfs:domain  lcaef:LcaEfExtension ;
  rdfs:range   xsd:anyURI .

# =============================================================================
# Datatype Properties — Circularity Metrics
# =============================================================================

lcaef:recyclabilityRate
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "recyclabilityRate"@en ;
  rdfs:comment "Percentage of the product that can be recycled (0.0 to 100.0)."@en ;
  rdfs:domain  lcaef:CircularityMetrics ;
  rdfs:range   xsd:double .

lcaef:recycledContentRate
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "recycledContentRate"@en ;
  rdfs:comment "Percentage of recycled content in the product (0.0 to 100.0)."@en ;
  rdfs:domain  lcaef:CircularityMetrics ;
  rdfs:range   xsd:double .

lcaef:repairabilityScore
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "repairabilityScore"@en ;
  rdfs:comment "Product repairability score (e.g. French Repairability Index, 0–10)."@en ;
  rdfs:domain  lcaef:CircularityMetrics ;
  rdfs:range   xsd:double .

lcaef:materialCircularityIndicator
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "materialCircularityIndicator"@en ;
  rdfs:comment "MCI per Ellen MacArthur Foundation methodology (0.0 to 1.0)."@en ;
  rdfs:domain  lcaef:CircularityMetrics ;
  rdfs:range   xsd:double .

lcaef:durabilityIndicator
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "durabilityIndicator"@en ;
  rdfs:comment "Qualitative or quantitative durability indicator."@en ;
  rdfs:domain  lcaef:CircularityMetrics ;
  rdfs:range   xsd:string .

# =============================================================================
# Datatype Properties — Water Footprint
# =============================================================================

lcaef:blueWater
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "blueWater"@en ;
  rdfs:comment "Blue water footprint: surface and ground water consumption (m³)."@en ;
  rdfs:domain  lcaef:WaterFootprint ;
  rdfs:range   xsd:double .

lcaef:greenWater
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "greenWater"@en ;
  rdfs:comment "Green water footprint: rainwater consumed (m³)."@en ;
  rdfs:domain  lcaef:WaterFootprint ;
  rdfs:range   xsd:double .

lcaef:greyWater
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "greyWater"@en ;
  rdfs:comment "Grey water footprint: freshwater required to dilute pollutants (m³)."@en ;
  rdfs:domain  lcaef:WaterFootprint ;
  rdfs:range   xsd:double .

# =============================================================================
# Datatype Properties — Compliance Declaration
#            soc:regulationReference with a comment encouraging future promotion
#            to a shared dpp:regulationReference property.
# =============================================================================

lcaef:regulationReference
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "regulationReference"@en ;
  rdfs:comment "Name or identifier of the regulation declared against (e.g. 'EU ESPR 2024/1781'). NOTE: duplicates soc:regulationReference — future refactoring should promote this to a shared dpp:regulationReference property."@en ;
  rdfs:domain  lcaef:ComplianceDeclaration ;
  rdfs:range   xsd:string ;
  rdfs:seeAlso <https://www.dpp-interoperability.wiki/vocab/v1/soc#regulationReference> .

lcaef:compliant
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "compliant"@en ;
  rdfs:comment "Whether the product is compliant with the referenced regulation (true/false)."@en ;
  rdfs:domain  lcaef:ComplianceDeclaration ;
  rdfs:range   xsd:boolean .

lcaef:declarationLink
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <https://www.dpp-interoperability.wiki/vocab/v1/lca-ef> ;
  rdfs:label   "declarationLink"@en ;
  rdfs:comment "URL to the compliance declaration document."@en ;
  rdfs:domain  lcaef:ComplianceDeclaration ;
  rdfs:range   xsd:anyURI .
