@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 dct:    <http://purl.org/dc/terms/> .
@prefix dcat:   <http://www.w3.org/ns/dcat#> .
@prefix skos:   <http://www.w3.org/2004/02/skos/core#> .
@prefix xsd:    <http://www.w3.org/2001/XMLSchema#> .
@prefix schema: <http://schema.org/> .
@prefix agro:   <https://vocab.groundx.ag/agro/v1/> .

#─────────────────────────────────────────────────────────────
# Perfil sectorial AGRO — uso abierto
# Mantenido por GroundX. Cualquier provider del dataspace
# puede referenciarlo en sus assets sin pedir permiso.
#─────────────────────────────────────────────────────────────
<https://vocab.groundx.ag/agro/v1/> a owl:Ontology ;
    dct:title         "Agro Sectoral Vocabulary"@en ,
                      "Vocabulario sectorial agro"@es ;
    dct:description   "Perfil sectorial abierto para descripción semántica de productos agrícolas y datasets relacionados. Reutiliza schema.org y DCAT como base."@es ;
    dct:creator       <did:web:provider.groundx.ag> ;
    dct:issued        "2026-06-16"^^xsd:date ;
    owl:versionInfo   "1.3.0" ;
    rdfs:isDefinedBy  <https://vocab.groundx.ag/agro/v1/> ;
    rdfs:seeAlso      <http://schema.org/Product> .

#─────────────────────────────────────────────────────────────
# Clase: agro:Agrochemical
#─────────────────────────────────────────────────────────────
agro:Agrochemical a rdfs:Class ;
    rdfs:subClassOf  schema:Product ;
    rdfs:label       "Agrochemical"@en , "Agroquímico"@es ;
    rdfs:comment     "Producto químico o biológico de uso agrícola: fitosanitarios, fertilizantes, bioestimulantes y adyuvantes. Subclase de schema:Product; hereda schema:name, schema:manufacturer, schema:identifier, schema:description, schema:brand."@es ;
    rdfs:isDefinedBy <https://vocab.groundx.ag/agro/v1/> .

#─────────────────────────────────────────────────────────────
# Propiedad: agro:productCategory
#─────────────────────────────────────────────────────────────
agro:productCategory a rdf:Property ;
    rdfs:domain      schema:Product ;
    rdfs:range       skos:Concept ;
    rdfs:label       "product category"@en , "categoría del producto"@es ;
    rdfs:comment     "Categoría funcional del producto agro. Valor: concepto del agro:ProductCategoryScheme."@es ;
    rdfs:isDefinedBy <https://vocab.groundx.ag/agro/v1/> .

#─────────────────────────────────────────────────────────────
# Taxonomía SKOS — 4 conceptos top, jerarquía por familia
#─────────────────────────────────────────────────────────────
agro:ProductCategoryScheme a skos:ConceptScheme ;
    dct:title          "Agro product categories"@en ,
                       "Categorías de producto agro"@es ;
    skos:prefLabel     "Agro Product Categories"@en ;
    skos:hasTopConcept agro:PlantProtection ,
                       agro:Fertilizer ,
                       agro:Biostimulant ,
                       agro:Adjuvant .

#─── TOP: Plant Protection ─────────────────────────────────
agro:PlantProtection a skos:Concept ;
    skos:inScheme    agro:ProductCategoryScheme ;
    skos:topConceptOf agro:ProductCategoryScheme ;
    skos:prefLabel   "Plant Protection"@en , "Fitosanitario"@es ;
    skos:definition  "Producto destinado a proteger el cultivo frente a plagas, enfermedades, hierbas y agentes nocivos."@es ;
    skos:narrower    agro:Herbicide , agro:Fungicide , agro:Insecticide , agro:Nematicide , agro:Acaricide .

#  ─ Herbicidas ─
agro:Herbicide a skos:Concept ;
    skos:inScheme   agro:ProductCategoryScheme ;
    skos:broader    agro:PlantProtection ;
    skos:prefLabel  "Herbicide"@en , "Herbicida"@es ;
    skos:definition "Producto para eliminar o controlar plantas no deseadas."@es ;
    skos:narrower   agro:PostEmergenceHerbicide , agro:PreEmergenceHerbicide , agro:BioHerbicide .

agro:PostEmergenceHerbicide a skos:Concept ;
    skos:inScheme  agro:ProductCategoryScheme ;
    skos:broader   agro:Herbicide ;
    skos:prefLabel "Post-emergence herbicide"@en , "Herbicida de post-emergencia"@es ;
    skos:definition "Se aplica tras la emergencia del cultivo y/o de las malas hierbas."@es .

agro:PreEmergenceHerbicide a skos:Concept ;
    skos:inScheme  agro:ProductCategoryScheme ;
    skos:broader   agro:Herbicide ;
    skos:prefLabel "Pre-emergence herbicide"@en , "Herbicida de pre-emergencia"@es ;
    skos:definition "Se aplica antes de la emergencia del cultivo y/o de las malas hierbas."@es .

agro:BioHerbicide a skos:Concept ;
    skos:inScheme  agro:ProductCategoryScheme ;
    skos:broader   agro:Herbicide ;
    skos:prefLabel "Bio-Herbicide"@en , "Bioherbicida"@es ;
    skos:definition "Herbicida de origen biológico (microorganismos, sustancias naturales)."@es .

#  ─ Fungicidas ─
agro:Fungicide a skos:Concept ;
    skos:inScheme   agro:ProductCategoryScheme ;
    skos:broader    agro:PlantProtection ;
    skos:prefLabel  "Fungicide"@en , "Fungicida"@es ;
    skos:definition "Producto para prevenir o curar enfermedades fúngicas."@es ;
    skos:narrower   agro:BioFungicide .

agro:BioFungicide a skos:Concept ;
    skos:inScheme  agro:ProductCategoryScheme ;
    skos:broader   agro:Fungicide ;
    skos:prefLabel "Bio-Fungicide"@en , "Biofungicida"@es ;
    skos:definition "Fungicida de origen biológico."@es .

#  ─ Insecticidas ─
agro:Insecticide a skos:Concept ;
    skos:inScheme   agro:ProductCategoryScheme ;
    skos:broader    agro:PlantProtection ;
    skos:prefLabel  "Insecticide"@en , "Insecticida"@es ;
    skos:definition "Producto para control de plagas de insectos."@es ;
    skos:narrower   agro:BioInsecticide .

agro:BioInsecticide a skos:Concept ;
    skos:inScheme  agro:ProductCategoryScheme ;
    skos:broader   agro:Insecticide ;
    skos:prefLabel "Bio-Insecticide"@en , "Bioinsecticida"@es ;
    skos:altLabel  "Bio-Insictecide"@en ;
    skos:definition "Insecticida de origen biológico."@es ;
    rdfs:comment   "altLabel mantiene la forma original 'Bio-Insictecide' de la BD legacy para búsquedas tolerantes."@es .

#  ─ Nematicidas ─
agro:Nematicide a skos:Concept ;
    skos:inScheme   agro:ProductCategoryScheme ;
    skos:broader    agro:PlantProtection ;
    skos:prefLabel  "Nematicide"@en , "Nematicida"@es ;
    skos:definition "Producto para control de nematodos."@es ;
    skos:narrower   agro:BioNematicide .

agro:BioNematicide a skos:Concept ;
    skos:inScheme  agro:ProductCategoryScheme ;
    skos:broader   agro:Nematicide ;
    skos:prefLabel "Bio-Nematicide"@en , "Bionematicida"@es ;
    skos:definition "Nematicida de origen biológico."@es .

#  ─ Acaricidas ─
agro:Acaricide a skos:Concept ;
    skos:inScheme  agro:ProductCategoryScheme ;
    skos:broader   agro:PlantProtection ;
    skos:prefLabel "Acaricide"@en , "Acaricida"@es ;
    skos:definition "Producto para control de ácaros."@es .

#─── TOP: Fertilizer ────────────────────────────────────────
agro:Fertilizer a skos:Concept ;
    skos:inScheme    agro:ProductCategoryScheme ;
    skos:topConceptOf agro:ProductCategoryScheme ;
    skos:prefLabel   "Fertilizer"@en , "Fertilizante"@es ;
    skos:definition  "Producto que aporta nutrientes al cultivo."@es ;
    skos:narrower    agro:BioFertilizer , agro:ComplexFertilizer , agro:NitrogenFertilizer ,
                     agro:SpecialFertilizer , agro:SimpleFertilizer , agro:FoliarFertilizer ,
                     agro:PhysicalMixturesFertilizer , agro:MicronutrientInoculant .

agro:BioFertilizer a skos:Concept ;
    skos:inScheme  agro:ProductCategoryScheme ;
    skos:broader   agro:Fertilizer ;
    skos:prefLabel "Bio-Fertilizer"@en , "Biofertilizante"@es ;
    skos:definition "Fertilizante de origen biológico (microorganismos, materia orgánica)."@es .

agro:ComplexFertilizer a skos:Concept ;
    skos:inScheme  agro:ProductCategoryScheme ;
    skos:broader   agro:Fertilizer ;
    skos:prefLabel "Complex Fertilizer"@en , "Fertilizante complejo"@es ;
    skos:definition "Fertilizante con varios nutrientes principales químicamente combinados."@es .

agro:NitrogenFertilizer a skos:Concept ;
    skos:inScheme  agro:ProductCategoryScheme ;
    skos:broader   agro:Fertilizer ;
    skos:prefLabel "Nitrogen Fertilizer"@en , "Fertilizante nitrogenado"@es ;
    skos:definition "Fertilizante cuyo nutriente principal es el nitrógeno."@es .

agro:SpecialFertilizer a skos:Concept ;
    skos:inScheme  agro:ProductCategoryScheme ;
    skos:broader   agro:Fertilizer ;
    skos:prefLabel "Special Fertilizer"@en , "Fertilizante especial"@es ;
    skos:definition "Fertilizante diseñado para necesidades específicas (cultivos, fases, déficits)."@es .

agro:SimpleFertilizer a skos:Concept ;
    skos:inScheme  agro:ProductCategoryScheme ;
    skos:broader   agro:Fertilizer ;
    skos:prefLabel "Simple Fertilizer"@en , "Fertilizante simple"@es ;
    skos:definition "Fertilizante con un solo nutriente principal."@es .

agro:FoliarFertilizer a skos:Concept ;
    skos:inScheme  agro:ProductCategoryScheme ;
    skos:broader   agro:Fertilizer ;
    skos:prefLabel "Foliar Fertilizer"@en , "Fertilizante foliar"@es ;
    skos:definition "Fertilizante de aplicación por hoja."@es .

agro:PhysicalMixturesFertilizer a skos:Concept ;
    skos:inScheme  agro:ProductCategoryScheme ;
    skos:broader   agro:Fertilizer ;
    skos:prefLabel "Physical Mixtures Fertilizer"@en , "Fertilizante de mezcla física"@es ;
    skos:definition "Mezcla mecánica de fertilizantes simples sin reacción química."@es .

agro:MicronutrientInoculant a skos:Concept ;
    skos:inScheme  agro:ProductCategoryScheme ;
    skos:broader   agro:Fertilizer ;
    skos:prefLabel "Micronutrients / Inoculants"@en , "Micronutrientes / Inoculantes"@es ;
    skos:definition "Aporte de elementos en pequeñas cantidades y/o microorganismos beneficiosos para el suelo."@es ;
    rdfs:comment   "Categoría híbrida de la BD legacy. Cuando se desglose, separar en agro:Micronutrient y agro:Inoculant."@es .

#─── TOP: Biostimulant ──────────────────────────────────────
agro:Biostimulant a skos:Concept ;
    skos:inScheme     agro:ProductCategoryScheme ;
    skos:topConceptOf agro:ProductCategoryScheme ;
    skos:prefLabel    "Biostimulant"@en , "Bioestimulante"@es ;
    skos:definition   "Sustancia o microorganismo que estimula procesos naturales del cultivo (toma de nutrientes, tolerancia a estrés, calidad)."@es ;
    skos:narrower     agro:PhysiologicalActivator , agro:PlantGrowthRegulator , agro:PhytoRegulator , agro:BioInducer .

agro:PhysiologicalActivator a skos:Concept ;
    skos:inScheme  agro:ProductCategoryScheme ;
    skos:broader   agro:Biostimulant ;
    skos:prefLabel "Physiological Activator"@en , "Activador fisiológico"@es ;
    skos:definition "Producto que activa rutas metabólicas o procesos fisiológicos."@es .

agro:PlantGrowthRegulator a skos:Concept ;
    skos:inScheme  agro:ProductCategoryScheme ;
    skos:broader   agro:Biostimulant ;
    skos:prefLabel "Plant Growth Regulator"@en , "Regulador de crecimiento"@es ;
    skos:altLabel  "PGR"@en ;
    skos:definition "Producto que regula procesos de crecimiento y desarrollo."@es .

agro:PhytoRegulator a skos:Concept ;
    skos:inScheme  agro:ProductCategoryScheme ;
    skos:broader   agro:Biostimulant ;
    skos:prefLabel "Phyto-regulator"@en , "Fitoregulador"@es ;
    skos:closeMatch agro:PlantGrowthRegulator ;
    skos:definition "Sustancia que actúa sobre procesos fisiológicos de la planta. Categoría próxima a Plant Growth Regulator."@es .

agro:BioInducer a skos:Concept ;
    skos:inScheme  agro:ProductCategoryScheme ;
    skos:broader   agro:Biostimulant ;
    skos:prefLabel "Bio-Inducer"@en , "Bioinductor"@es ;
    skos:definition "Producto que induce defensas naturales del cultivo."@es .

#─── TOP: Adjuvant ──────────────────────────────────────────
agro:Adjuvant a skos:Concept ;
    skos:inScheme     agro:ProductCategoryScheme ;
    skos:topConceptOf agro:ProductCategoryScheme ;
    skos:prefLabel    "Adjuvant"@en , "Adyuvante"@es ;
    skos:altLabel     "Adjuvants/Correctors"@en ;
    skos:definition   "Sustancia que mejora la eficacia o aplicación de otro producto (mojante, corrector de pH, antideriva, etc.)."@es ;
    skos:narrower     agro:WettingAgent , agro:Corrector .

agro:WettingAgent a skos:Concept ;
    skos:inScheme  agro:ProductCategoryScheme ;
    skos:broader   agro:Adjuvant ;
    skos:prefLabel "Wetting Agent"@en , "Mojante"@es ;
    skos:definition "Adyuvante que reduce la tensión superficial del caldo de aplicación."@es .

agro:Corrector a skos:Concept ;
    skos:inScheme  agro:ProductCategoryScheme ;
    skos:broader   agro:Adjuvant ;
    skos:prefLabel "Corrector"@en , "Corrector"@es ;
    skos:definition "Producto que corrige propiedades del caldo (pH, dureza, antiespumante)."@es .

#─────────────────────────────────────────────────────────────
# Clase: agro:ProductApplicationDataset
#
# Dataset publicado por un participante (típicamente una cooperativa)
# que recoge sus aplicaciones de productos agro sobre parcelas: qué
# producto del catálogo se aplicó, en qué parcela, en qué fecha y a
# qué dosis. Material de partida para algoritmos de análisis de
# eficacia, cruces con datos satelitales, reportes anonimizados, etc.
#─────────────────────────────────────────────────────────────
agro:ProductApplicationDataset a rdfs:Class ;
    rdfs:subClassOf  dcat:Dataset ;
    rdfs:label       "Product Application Dataset"@en ,
                     "Conjunto de aplicaciones de producto"@es ;
    rdfs:comment     "Dataset de aplicaciones de productos agro sobre parcelas. Cada registro relaciona una parcela, una fecha, un producto del catálogo y, opcionalmente, una dosis. Soberanía del dato en el publicador (típicamente cooperativa o productor)."@es ;
    rdfs:isDefinedBy <https://vocab.groundx.ag/agro/v1/> .

#─────────────────────────────────────────────────────────────
# Propiedades para describir una aplicación de producto
#─────────────────────────────────────────────────────────────
agro:appliedProduct a rdf:Property ;
    rdfs:label       "applied product"@en , "producto aplicado"@es ;
    rdfs:comment     "Referencia al producto del catálogo que se aplicó. Valor: URI de un agro:Agrochemical (por ejemplo, https://data.groundx.ag/catalog/products/1)."@es ;
    rdfs:isDefinedBy <https://vocab.groundx.ag/agro/v1/> .

agro:applicationDate a rdf:Property ;
    rdfs:label       "application date"@en , "fecha de aplicación"@es ;
    rdfs:range       xsd:date ;
    rdfs:comment     "Fecha en que se realizó la aplicación (ISO 8601, YYYY-MM-DD)."@es ;
    rdfs:isDefinedBy <https://vocab.groundx.ag/agro/v1/> .

agro:parcel a rdf:Property ;
    rdfs:label       "parcel geometry"@en , "geometría de la parcela"@es ;
    rdfs:comment     "Geometría espacial de la parcela en WKT (POLYGON o MULTIPOLYGON) en CRS EPSG:4326. Conforme a GeoSPARQL como geo:wktLiteral."@es ;
    rdfs:isDefinedBy <https://vocab.groundx.ag/agro/v1/> .

agro:cropType a rdf:Property ;
    rdfs:label       "crop type"@en , "tipo de cultivo"@es ;
    rdfs:comment     "Especie cultivada en la parcela. Idealmente referencia a un concepto AGROVOC; aceptable string libre durante el MVP (ej. 'wheat', 'barley', 'sunflower')."@es ;
    rdfs:isDefinedBy <https://vocab.groundx.ag/agro/v1/> .

agro:dose a rdf:Property ;
    rdfs:label       "dose"@en , "dosis"@es ;
    rdfs:range       xsd:decimal ;
    rdfs:comment     "Cantidad de producto aplicada por unidad de superficie. La unidad se declara en agro:doseUnit (o se infiere del nombre de la columna en CSVW, ej. 'dose_l_per_ha')."@es ;
    rdfs:isDefinedBy <https://vocab.groundx.ag/agro/v1/> .

agro:doseUnit a rdf:Property ;
    rdfs:label       "dose unit"@en , "unidad de dosis"@es ;
    rdfs:comment     "Unidad de medida de la dosis aplicada. Referencia a QUDT unit (ej. http://qudt.org/vocab/unit/L-PER-HA)."@es ;
    rdfs:isDefinedBy <https://vocab.groundx.ag/agro/v1/> .

#─────────────────────────────────────────────────────────────
# Clases: agro:ProductEfficacyReportDataset y EfficacyMeasurement
#
# Informe agregado y anonimizado sobre la eficacia de productos
# agro aplicados sobre distintos cultivos. Cada `agro:measurements`
# contiene una EfficacyMeasurement por combinación (producto, cultivo)
# con indicadores derivados (NDVI, senescencia, etc.) calculados
# cruzando datos de aplicación (agro:ProductApplicationDataset) con
# datos satelitales y/o de campo.
#─────────────────────────────────────────────────────────────
agro:ProductEfficacyReportDataset a rdfs:Class ;
    rdfs:subClassOf  dcat:Dataset ;
    rdfs:label       "Product Efficacy Report Dataset"@en ,
                     "Informe de eficacia de productos"@es ;
    rdfs:comment     "Dataset agregado y anonimizado que reporta indicadores de eficacia de productos agro por combinación de producto y cultivo, calculados a partir de aplicaciones reales agregadas con datos satelitales."@es ;
    rdfs:isDefinedBy <https://vocab.groundx.ag/agro/v1/> .

agro:EfficacyMeasurement a rdfs:Class ;
    rdfs:label       "Efficacy Measurement"@en ,
                     "Medición de eficacia"@es ;
    rdfs:comment     "Fila de un informe de eficacia. Agrupa indicadores derivados para una combinación (producto, cultivo). Lleva agro:samplesAggregated indicando cuántas aplicaciones reales se promedian."@es ;
    rdfs:isDefinedBy <https://vocab.groundx.ag/agro/v1/> .

#─────────────────────────────────────────────────────────────
# Propiedades de cabecera del informe
#─────────────────────────────────────────────────────────────
agro:reportPeriod a rdf:Property ;
    rdfs:label       "report period"@en , "período del informe"@es ;
    rdfs:range       xsd:string ;
    rdfs:comment     "Intervalo temporal cubierto, en notación ISO 8601 interval (ej. '2026-04-01/2026-06-30')."@es ;
    rdfs:isDefinedBy <https://vocab.groundx.ag/agro/v1/> .

agro:samplesAggregated a rdf:Property ;
    rdfs:label       "samples aggregated"@en , "muestras agregadas"@es ;
    rdfs:range       xsd:integer ;
    rdfs:comment     "Número de aplicaciones reales agregadas. Cuando es bajo (< k de k-anonymity) los indicadores resultantes pueden no ser robustos."@es ;
    rdfs:isDefinedBy <https://vocab.groundx.ag/agro/v1/> .

agro:cooperativesContributing a rdf:Property ;
    rdfs:label       "cooperatives contributing"@en , "cooperativas contribuyentes"@es ;
    rdfs:range       xsd:integer ;
    rdfs:comment     "Número de participantes (cooperativas, productores) que aportaron datos al informe."@es ;
    rdfs:isDefinedBy <https://vocab.groundx.ag/agro/v1/> .

agro:anonymizationMethod a rdf:Property ;
    rdfs:label       "anonymization method"@en , "método de anonimización"@es ;
    rdfs:range       xsd:string ;
    rdfs:comment     "Descripción breve del método aplicado: agregación espacial, k-anonymity, generalización temporal, etc."@es ;
    rdfs:isDefinedBy <https://vocab.groundx.ag/agro/v1/> .

agro:methodology a rdf:Property ;
    rdfs:label       "methodology"@en , "metodología"@es ;
    rdfs:range       xsd:string ;
    rdfs:comment     "Descripción libre del cálculo: fuentes (satelital, sensores), modelos, versiones."@es ;
    rdfs:isDefinedBy <https://vocab.groundx.ag/agro/v1/> .

agro:measurements a rdf:Property ;
    rdfs:label       "measurements"@en , "mediciones"@es ;
    rdfs:domain      agro:ProductEfficacyReportDataset ;
    rdfs:range       agro:EfficacyMeasurement ;
    rdfs:comment     "Colección de EfficacyMeasurement que componen el informe. Cada elemento es una fila de la tabla agregada."@es ;
    rdfs:isDefinedBy <https://vocab.groundx.ag/agro/v1/> .

#─────────────────────────────────────────────────────────────
# Indicadores de eficacia (decimales, rangos típicos en comments)
#─────────────────────────────────────────────────────────────
agro:ndvi a rdf:Property ;
    rdfs:label       "NDVI"@en ;
    rdfs:range       xsd:decimal ;
    rdfs:comment     "Normalized Difference Vegetation Index promedio sobre la parcela durante el periodo evaluado. Rango típico [0, 1]; cultivo sano 0.5–0.85."@es ;
    rdfs:isDefinedBy <https://vocab.groundx.ag/agro/v1/> .

agro:senescence a rdf:Property ;
    rdfs:label       "senescence"@en , "senescencia"@es ;
    rdfs:range       xsd:decimal ;
    rdfs:comment     "Fracción de foliage senescente al final del periodo. Rango [0, 1]; menor es mejor en el momento productivo."@es ;
    rdfs:isDefinedBy <https://vocab.groundx.ag/agro/v1/> .

agro:chlorophyll a rdf:Property ;
    rdfs:label       "chlorophyll"@en , "clorofila"@es ;
    rdfs:range       xsd:decimal ;
    rdfs:comment     "Contenido relativo medio de clorofila estimado (unidad: µmol/m² o índice relativo según methodology)."@es ;
    rdfs:isDefinedBy <https://vocab.groundx.ag/agro/v1/> .

agro:biomass a rdf:Property ;
    rdfs:label       "biomass"@en , "biomasa"@es ;
    rdfs:range       xsd:decimal ;
    rdfs:comment     "Biomasa seca estimada por hectárea al final del periodo (t/ha)."@es ;
    rdfs:isDefinedBy <https://vocab.groundx.ag/agro/v1/> .
