@prefix : . @prefix ocsm: . @prefix qb: . @prefix dct: . @prefix owl: . @prefix rdf: . @prefix xml: . @prefix xsd: . @prefix dcat: . @prefix foaf: . @prefix prov: . @prefix rdfs: . @prefix skos: . @prefix stat: . @prefix schema: . @prefix af-inspire: . @prefix act-inspire: . @prefix foodie: . @prefix saref4agri: . @prefix common: . @prefix fiware: . @prefix iso19109: . @prefix iso19150-2: . @prefix iso19103: . @prefix geo: . @prefix saref: . @prefix ssn: . @prefix obo: . @prefix fiware-agrifood: . @prefix om: . @prefix org: . @prefix ploutos: . @prefix sosa: . @prefix qudt: . @base . a owl:Ontology ; dct:contributor [ schema:affiliation [ foaf:name "Maastricht University" ] ; foaf:name "Jack Verhoosel" ] , [ schema:affiliation [ foaf:name "Maastricht University" ] ; foaf:name "Christopher Brewster" ] ; dct:creator [ schema:affiliation [ foaf:name "PSNC" ] ; rdfs:seeAlso ; foaf:name "Raul Palma" ] ; owl:imports , , , , , , , , , ; dct:description "The OpenAgri Common Semantic Information Model is a project specific ontology covering the needs of project pilots and components. It is based on the Agriculure Information Model (AIM) and the ploutos ontology"@en ; dct:rights "This vocabulary is distributed under Creative Commons Attribution 4.0 License - http://creativecommons.org/licenses/by/4.0"@en ; dct:title "OpenAgri Common Semantic Information Model (OCSM) project ontology"@en ; rdfs:label "OpenAgri Common Semantic Information Model (OCSM) project ontology"@en ; rdfs:comment "The OpenAgri Common Semantic Information Model (OCSM) is the common vocabulary in OpenAgri project providing the basis for semantic interoperability across pilots and components"@en ; owl:versionInfo "1.0" ; foaf:maker [ foaf:homepage ; foaf:name "OpenAgri project" ] . ################################################################# # Annotation properties ################################################################# ################################################################# # Datatypes ################################################################# ################################################################# # Object Properties ################################################################# ## ploutos ## ploutos:usesPesticide rdf:type owl:ObjectProperty ; rdfs:label "uses pesticide" ; rdfs:range ploutos:Pesticide ; . ploutos:hasCost rdf:type owl:ObjectProperty ; rdfs:comment "Here we make the link to the Ontology of units of Measure and enable classes to have a measure with a numerical value and a unit" ; rdfs:label "has cost" ; rdfs:range om:Measure ; . ### incorrect range (om:Unit), should be om:Measure ploutos:isPricePer rdf:type owl:ObjectProperty ; rdfs:comment "Here we make the link to the Ontology of units of Measure and enable classes to have a measure with a numerical value and a unit" ; rdfs:label "is price per" ; rdfs:range om:Measure ; . ### incorrect range (ploutos:SoilManagementOperation), should be unionof ploutos:SoilManagementOperation and CropManagementOperation ploutos:isOperatedOn rdf:type owl:ObjectProperty ; rdfs:label "is operated on" ; rdfs:domain [ rdf:type owl:Class ; owl:unionOf ( ploutos:SoilManagementOperation ploutos:CropManagementOperation ) ; ] ; . ploutos:responsibleAgent rdf:type owl:ObjectProperty ; rdfs:range ; . ploutos:usesAgriculturalMachinery rdf:type owl:ObjectProperty ; rdfs:comment "This property indicates the kind of agricultural machine that is used for a specific operation" ; rdfs:domain ploutos:Operation ; rdfs:label "uses agricultural machinery" ; rdfs:range ploutos:AgriculturalMachine ; . ploutos:hasGreenhouseGasEmission rdf:type owl:ObjectProperty ; rdfs:comment "This property indicates that a farm or a machine can have an estimation of the total greenhouse gas emission during a time period of usually a year. The emission is expressed in terms of the amount of kilograms of carbon equivalent per ton of product produced by the farm." ; rdfs:domain [ rdf:type owl:Class ; owl:unionOf ( ploutos:Farm ploutos:AgriculturalMachine ) ; ] ; rdfs:label "has greenhouse gas emission" ; rdfs:range sosa:Observation ; . ### updated domain to include irrigationOperation ploutos:usesIrrigationSystem rdf:type owl:ObjectProperty ; rdfs:domain [ rdf:type owl:Class ; owl:unionOf ( ploutos:Parcel ploutos:IrrigationOperation ) ; ] ; rdfs:label "uses irrigation system" ; rdfs:range ploutos:IrrigationSystem ; . ploutos:hasCycle rdf:type owl:ObjectProperty ; rdfs:comment "This is the property that expresses the relationship between a parcel and multiple crop cycles." ; rdfs:label "has cycle" ; . ploutos:isAppliedPer rdf:type owl:ObjectProperty ; rdfs:label "is applied per" ; rdfs:range om:Area ; . ploutos:hasAppliedAmount rdf:type owl:ObjectProperty ; rdfs:comment "Here we make the link to the Ontology of units of Measure and enable classes to have a measure witth a numerical value and a unit" ; rdfs:label "has applied amount" ; rdfs:range om:Measure ; . ploutos:hasWeatherObservation rdf:type owl:ObjectProperty ; rdfs:comment "This property indicates that an operation can have an observation of a weather phenomenon done during the execution of the operation. Such a weather phenomenon can have influence on the operation and the environment in which the operation is executed." ; rdfs:domain ploutos:Operation ; rdfs:label "has weather observation" ; rdfs:range sosa:Observation ; . ploutos:hasTreatedArea rdf:type owl:ObjectProperty ; rdfs:comment "Here we make the link to the Ontology of units of Measure and enable classes to have a measure with a numerical value and a unit" ; rdfs:label "has treated area" ; rdfs:range om:Measure ; . ## fixed type of property (it was datattypeproperty) ploutos:hasCycleDuration rdf:type owl:ObjectProperty ; rdfs:comment "This property represents the duration of a sprinkling cycle period including the soak time, i.e., the time needed for the water to soak into the soil." ; rdfs:domain ploutos:IrrigationOperation ; rdfs:label "has cycle duration" ; rdfs:range ; . ploutos:usesFertilizer rdf:type owl:ObjectProperty ; rdfs:label "uses fertilizer" ; rdfs:range ploutos:Fertilizer ; . ploutos:hasNutrientConcentration rdf:type owl:ObjectProperty ; rdfs:label "has nutrient concentration" ; . ## ocsm ## ocsm:hasPestThreat rdf:type owl:ObjectProperty ; rdfs:comment "References the Pest that threatens the subject entity" ; rdfs:isDefinedBy . ocsm:hasYieldPrediction rdf:type owl:ObjectProperty ; rdfs:comment "References the Yield prediction for a crop in a parcel/plot" ; rdfs:range ocsm:YieldPrediction ; rdfs:isDefinedBy . ocsm:hasVinesStressIndicator rdf:type owl:ObjectProperty ; rdfs:comment "References the Vines Stress Indicator of a Vineyard in a parcel/plot" ; rdfs:range ocsm:VinesStressIndicator ; rdfs:isDefinedBy . ocsm:hasCanopyDensityProfile rdf:type owl:ObjectProperty ; rdfs:comment "References the Canopy Density Profile of a Vineyard in a parcel/plot" ; rdfs:range ocsm:CanopyDensityProfile ; rdfs:isDefinedBy . ocsm:contactPerson rdf:type owl:ObjectProperty ; rdfs:comment "contact Person of an entity, e.g., farm, parcel, etc." ; rdfs:label "contactPerson" ; rdfs:range foaf:Person ; rdfs:isDefinedBy . ################################################################# # Data properties ################################################################# ## ploutos ## ploutos:hasPreHarvestInterval rdf:type owl:DatatypeProperty ; rdfs:comment "This property indicates preharvest interval, which is the waiting time between a pesticide application and when a crop can be harvested. During the PHI, the pesticide may be broken down in the plant, or on its surface." ; rdfs:domain ploutos:Pesticide ; rdfs:label "has preharvest interval" ; rdfs:range ; . ploutos:hasCommercialName rdf:type owl:DatatypeProperty ; rdfs:label "has commercial name" ; rdfs:range xsd:string ; . ploutos:hasActiveSubstance rdf:type owl:DatatypeProperty ; rdfs:comment "1: This property is used by instances of class TreatmentMaterial to indicate the active substance in the treatment material." ; rdfs:comment "2: For now, this is modelled as a string for simplicity. In the future, this can be replaced by a Substance class of which there can be a different types from a vocabulary" ; rdfs:domain ploutos:TreatmentMaterial ; rdfs:label "has active substance" ; rdfs:range xsd:string ; . ## added ploutos:PestInterventionOperation in domain ploutos:isTargetedTowards rdf:type owl:DatatypeProperty ; rdfs:comment "1: This property expresses the organism towards which a pest prevention operation or a treatment material is targeted, e.g. late blight" ; rdfs:comment "2: For now, this is modelled for simplicity as a string that contains the name of the targeted organism. In the future, this can be replaced by a class Organisms with more properties than just the name." ; rdfs:domain [ rdf:type owl:Class ; owl:unionOf ( ploutos:TreatmentMaterial ploutos:PestPreventionOperation ploutos:PestMonitoringOperation ploutos:PestInterventionOperation ) ; ] ; rdfs:label "is targeted towards" ; rdfs:range xsd:string ; . ploutos:actsOnCropStage rdf:type owl:DatatypeProperty ; rdfs:comment """This property indicates that a crop management operation acts on a crop that is in a certain crop stage. Crop stages can be: 1: germination; 2: leaf development; 3: formation of side shoots; 4: stem elongation; 5: vegetative plant parts; 6: inflorescence emergence; 7: flowering; 8: fruit development; 9: ripening; 10: senescence.""" ; rdfs:domain ploutos:CropManagementOperation ; rdfs:label "acts on crop stage" ; rdfs:range xsd:string ; . ploutos:hasCountry rdf:type owl:DatatypeProperty ; rdfs:comment "1: This property expresses the country in which an object is located. An object can be a farm, a farmer's association or a processing company" ; rdfs:comment "2: This is modelled using the existing country ontology: http://eulersharp.sourceforge.net/2003/03swap/countries" ; rdfs:label "has country" ; rdfs:range ; . ploutos:hasAdministrator rdf:type owl:DatatypeProperty ; rdfs:comment "1: This property expresses the administrator of the parcel, which can be someone else than the farmer that owns the parcel." ; rdfs:comment "2: For now, this is modelled for simplicity as a string that contains the name of the administrator. In the future, this can be replaced by a class person with more properties than just the name." ; rdfs:domain ploutos:Parcel ; rdfs:label "has administrator" ; rdfs:range xsd:string ; . ploutos:hasToponym rdf:type owl:DatatypeProperty ; rdfs:comment "This property expresses the toponym of a parcel, meaning the name of the parcel as it is used by the locals" ; rdfs:domain ploutos:Parcel ; rdfs:label "has toponym" ; rdfs:range xsd:string ; . ploutos:inRegion rdf:type owl:DatatypeProperty ; rdfs:comment "1: This property expresses the region in which a parcel is located, meaning the county or province of the parcel." ; rdfs:comment "2: For now, this is modelled as a string for simplicity. In the future, this can be replaced by a class of region with more properties than just the name." ; rdfs:domain ploutos:Parcel ; rdfs:label "in region" ; rdfs:range xsd:string ; . ploutos:hasArea rdf:type owl:DatatypeProperty ; rdfs:comment "This property expresses the area of a flat object such as a parcel or field on the land" ; rdfs:label "has area" ; rdfs:range xsd:float ; . ploutos:hasSprinklerFlow rdf:type owl:DatatypeProperty ; rdfs:comment "this property indicates the flow of water through the sprinklers of an irrigation system in cubic meters per hour (m3/h)" ; rdfs:domain ploutos:IrrigationSystem ; rdfs:label "has sprinkler flow" ; rdfs:range xsd:float ; . ploutos:hasNumberOfSprinklers rdf:type owl:DatatypeProperty ; rdfs:domain ploutos:IrrigationSystem ; rdfs:label "has number of sprinklers" ; rdfs:range xsd:integer ; . ploutos:hasNumberOfSprinklersPerPlant rdf:type owl:DatatypeProperty ; rdfs:domain ploutos:IrrigationSystem ; rdfs:label "has number of sprinklers per plant" ; rdfs:range xsd:integer ; . ploutos:hasIrrigationType rdf:type owl:DatatypeProperty ; rdfs:domain ploutos:IrrigationSystem ; rdfs:label "has irrigation type" ; rdfs:range xsd:string ; . ploutos:hasBlossomingDate rdf:type owl:DatatypeProperty ; rdfs:label "has blossoming date" ; rdfs:range xsd:dateTime ; . ploutos:hasEndDatetime rdf:type owl:DatatypeProperty ; rdfs:label "has end datetime" ; rdfs:range xsd:dateTime ; . ploutos:hasFirstLeavesDate rdf:type owl:DatatypeProperty ; rdfs:label "has first leaves date" ; rdfs:range xsd:dateTime ; . ploutos:hasFruitingDate rdf:type owl:DatatypeProperty ; rdfs:label "has fruiting date" ; rdfs:range xsd:dateTime ; . ploutos:hasStartDatetime rdf:type owl:DatatypeProperty ; rdfs:label "has start datetime" ; rdfs:range xsd:dateTime ; . ploutos:hasSeedRate rdf:type owl:DatatypeProperty ; rdfs:comment "This property represents the quantity of seed of a crop that is required per hectare of land to sow for optimum crop production" ; rdfs:domain obo:PO_0000003 ; rdfs:label "has seed rate" ; rdfs:range xsd:integer ; . ploutos:isMeantFor rdf:type owl:DatatypeProperty ; rdfs:comment "1: This property expresses the porpuse for which a product that is cultivated is meant, e.g. industrial processing or private consumption" ; rdfs:comment "2: For now, this is modelled for simplicity as a string that contains the purpose of the product. In the future, this can be replaced by a class ProductPurpose with more properties than just the name." ; rdfs:domain ploutos:Product ; rdfs:label "is meant for" ; rdfs:range xsd:string ; . ploutos:isJustifiedBecause rdf:type owl:DatatypeProperty ; rdfs:comment "This property indicates the reason why a chemical control operation and the use of a certain pesticide is justified" ; rdfs:domain ploutos:ChemicalControlOperation ; rdfs:label "is justified because" ; rdfs:range xsd:string ; . ploutos:hasApplicationMethod rdf:type owl:DatatypeProperty ; rdfs:comment "this property defines the type of methods that can be used for crop fertilization, e.g., broadcasting, foliar, placement, and fertigation." ; rdfs:label "has application method" ; rdfs:range xsd:string ; . ploutos:hasFertilizationType rdf:type owl:DatatypeProperty ; rdfs:comment "this property defines the type of fertilization that is used, e.g., pre-planting." ; rdfs:domain ploutos:FertilizationOperation ; rdfs:label "has fertilization type" ; rdfs:range xsd:string ; . ## ocsm ## ocsm:cultivationSeason a owl:DatatypeProperty ; rdfs:label "cultivationSeason"@en ; rdfs:comment "cultivation season" ; rdfs:range xsd:string ; rdfs:isDefinedBy . ocsm:municipality a owl:DatatypeProperty ; rdfs:label "municipality"@en ; rdfs:comment "municipality" ; rdfs:range xsd:string ; rdfs:isDefinedBy . ocsm:community a owl:DatatypeProperty ; rdfs:label "community"@en ; rdfs:comment "community" ; rdfs:range xsd:string ; rdfs:isDefinedBy . ocsm:isNitroAarea a owl:DatatypeProperty ; rdfs:label "isNitroAarea"@en ; rdfs:comment "is NitroAarea" ; rdfs:range xsd:boolean ; rdfs:isDefinedBy . ocsm:isNatura2000Area a owl:DatatypeProperty ; rdfs:label "isNatura2000Area"@en ; rdfs:comment "is Natura2000Area" ; rdfs:range xsd:boolean ; rdfs:isDefinedBy . ocsm:isPDOPGIArea a owl:DatatypeProperty ; rdfs:label "isPDOPGIArea"@en ; rdfs:comment "is PDOPGIArea" ; rdfs:range xsd:boolean ; rdfs:isDefinedBy . ocsm:isIrrigated a owl:DatatypeProperty ; rdfs:label "isIrrigated"@en ; rdfs:comment "is irrigated" ; rdfs:range xsd:boolean ; rdfs:isDefinedBy . ocsm:isCultivatedInLevels a owl:DatatypeProperty ; rdfs:label "isCultivatedInLevels"@en ; rdfs:comment "is cultivated in levels" ; rdfs:range xsd:boolean ; rdfs:isDefinedBy . ocsm:isGroundSlope a owl:DatatypeProperty ; rdfs:label "isGroundSlope"@en ; rdfs:comment "is ground slope" ; rdfs:range xsd:boolean ; rdfs:isDefinedBy . ocsm:hasIrrigationFlow a owl:DatatypeProperty ; rdfs:label "hasIrrigationFlow"@en ; rdfs:comment "has irrigation flow" ; rdfs:range xsd:float ; rdfs:isDefinedBy . ocsm:isCastrated a owl:DatatypeProperty ; rdfs:label "isCastrated"@en ; rdfs:comment "is castrated" ; rdfs:range xsd:boolean ; rdfs:isDefinedBy . ocsm:nationalID a owl:DatatypeProperty ; rdfs:label "nationalID"@en ; rdfs:comment "national ID" ; rdfs:range xsd:string ; rdfs:isDefinedBy . ################################################################# # Classes ################################################################# ## saref4agri ## saref4agri:Yield a owl:Class ; rdfs:subClassOf saref:Property, sosa:ObservedProperty ; rdfs:comment "The produced amount of food for animals or of agricultural products."@en ; rdfs:label "Yield"@en . ## ploutos ## ploutos:Pesticide rdf:type owl:Class ; rdfs:comment "This class represents the set of pesticides. A pesticide is a substance that is meant to control pests." ; rdfs:subClassOf ploutos:TreatmentMaterial ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; owl:onDataRange xsd:time ; owl:onProperty ploutos:hasPreHarvestInterval ; ] ; . ploutos:TreatmentMaterial rdf:type owl:Class ; rdfs:comment "This class represents all material or substances that can be used on a parcel, i.e. in the soil or on the crop, e.g. fertilizers, pesticides, but also water" ; rdfs:label "Treatment material" ; rdfs:subClassOf owl:Thing ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:cardinality "1"^^xsd:nonNegativeInteger ; owl:onProperty ploutos:hasCommercialName ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onClass om:Measure ; owl:onProperty ploutos:hasCost ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onClass om:Unit ; owl:onProperty ploutos:isPricePer ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onProperty ploutos:hasActiveSubstance ; owl:someValuesFrom xsd:string ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onProperty ploutos:isTargetedTowards ; owl:someValuesFrom xsd:string ; ] ; . ploutos:PestPreventionOperation rdf:type owl:Class ; rdfs:comment "This class represents the set of operations to protect crop against any kind of pest or disease by trying to prevent pest attacks. It is a specific CropProtectionOperation." ; rdfs:label "Pest prevention operation" ; rdfs:subClassOf ploutos:CropProtectionOperation ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onProperty ploutos:isTargetedTowards ; owl:someValuesFrom xsd:string ; ] ; . ploutos:PestMonitoringOperation rdf:type owl:Class ; rdfs:comment "This class represents the set of operations to protect crop against any kind of pest or disease by trying to monitor the presence of possible pests. It is a specific CropProtectionOperation." ; rdfs:label "Pest monitoring operation" ; rdfs:subClassOf ploutos:CropProtectionOperation ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onProperty ploutos:isTargetedTowards ; owl:someValuesFrom xsd:string ; ] ; . ploutos:CropProtectionOperation rdf:type owl:Class ; rdfs:comment "This class represents the set of operations to protect crop against any kind of pest or disease. It is a specific CropManagementOperation and is meant for pest prevention, pest monitoring and pest intervention." ; rdfs:label "Crop protection operation" ; rdfs:subClassOf ploutos:CropManagementOperation ; . ploutos:CropManagementOperation rdf:type owl:Class ; rdfs:comment "1: This is the class of crop management operations in which the crop/plant is being treated to enhance the performance, e.g. a crop protection operation or pruning operation" ; rdfs:comment """2: The actsOnCropStage property indicates that the crop management operation acts on a crop that is in a certain crop stage. Crop stages can be: 1: germination; 2: leaf development; 3: formation of side shoots; 4: stem elongation; 5: vegetative plant parts; 6: inflorescence emergence; 7: flowering; 8: fruit development; 9: ripening; 10: senescence.""" ; rdfs:subClassOf ploutos:Operation ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onProperty ploutos:actsOnCropStage ; owl:someValuesFrom xsd:string ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onProperty ploutos:isOperatedOn ; owl:someValuesFrom ploutos:Parcel ; ] ; . ploutos:Operation rdf:type owl:Class ; rdfs:comment "An operation is a set of actions on an object performed by a responsible agent during a specific time interval" ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onClass ; owl:onProperty ploutos:responsibleAgent ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; owl:onClass ploutos:AgriculturalMachine ; owl:onProperty ploutos:usesAgriculturalMachinery ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onDataRange xsd:dateTime ; owl:onProperty ploutos:hasEndDatetime ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onDataRange xsd:dateTime ; owl:onProperty ploutos:hasStartDatetime ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onProperty ploutos:hasWeatherObservation ; owl:someValuesFrom sosa:Observation ; ] ; . ploutos:AgriculturalMachine rdf:type owl:Class ; rdfs:comment "This class represents the set of all agricultural machines that are used on the farm" ; rdfs:label "Agricultural machine" ; rdfs:subClassOf owl:Thing ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onProperty ploutos:hasGreenhouseGasEmission ; owl:someValuesFrom sosa:Observation ; ] ; . ploutos:Farm rdf:type owl:Class ; rdfs:subClassOf org:Organization ; rdfs:subClassOf saref4agri:Farm ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onDataRange ; owl:onProperty ploutos:hasCountry ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onProperty ploutos:hasGreenhouseGasEmission ; owl:someValuesFrom sosa:Observation ; ] ; . ploutos:Parcel rdf:type owl:Class ; rdfs:comment "1: This class represents the set of parcels. A parcel is a plot of land, usually a division of a larger area." ; rdfs:comment "2: A parcel has various attributes, such as an area, a region, a toponym and an administrator. In addition, the crop that is being cultivated on the parcel has various dates, such as first leaves date, blossoming date and fruiting date. Last but not least, various systems can be used on the parcel for cultivation, such as an irrigation system." ; rdfs:subClassOf obo:ENVO_00000114 ; rdfs:subClassOf saref4agri:Parcel ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:cardinality "1"^^xsd:nonNegativeInteger ; owl:onProperty ploutos:hasAdministrator ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:cardinality "1"^^xsd:nonNegativeInteger ; owl:onProperty ploutos:hasToponym ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:cardinality "1"^^xsd:nonNegativeInteger ; owl:onProperty ploutos:inRegion ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onClass ploutos:IrrigationSystem ; owl:onProperty ploutos:usesIrrigationSystem ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onDataRange xsd:float ; owl:onProperty ploutos:hasArea ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onProperty ploutos:hasCycle ; owl:someValuesFrom ploutos:CropCycle ; ] ; . ploutos:IrrigationSystem rdf:type owl:Class ; rdfs:comment "This class represents all kind of irrigation systems that are used to irrigate the soil of a parcel on a farm." ; rdfs:label "Irrigation system" ; rdfs:subClassOf ploutos:System ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onDataRange xsd:float ; owl:onProperty ploutos:hasSprinklerFlow ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onDataRange xsd:integer ; owl:onProperty ploutos:hasNumberOfSprinklers ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onDataRange xsd:integer ; owl:onProperty ploutos:hasNumberOfSprinklersPerPlant ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onDataRange xsd:string ; owl:onProperty ploutos:hasIrrigationType ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; ] ; . ploutos:CropCycle rdf:type owl:Class ; rdfs:comment "1: This class represents the set of crop cycles. A crop cycle is a single cycle of cultivating a crop from sowing till harvesting. For a multiyear plant or crop, a crop cycle is the period between first leaving until harvesting." ; rdfs:comment "2: A crop cycle has various attributes, such as the parcel on which the crop is being cultivated as well as various dates, such as first leaves date, blossoming date and fruiting date." ; rdfs:comment "3: A ploutos:Crop is equivalent to the class obo:PO_0000003, which contains all or most plant varieties." ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:cardinality "1"^^xsd:nonNegativeInteger ; owl:onProperty ploutos:hasBlossomingDate ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:cardinality "1"^^xsd:nonNegativeInteger ; owl:onProperty ploutos:hasEndDatetime ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:cardinality "1"^^xsd:nonNegativeInteger ; owl:onProperty ploutos:hasFirstLeavesDate ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:cardinality "1"^^xsd:nonNegativeInteger ; owl:onProperty ploutos:hasFruitingDate ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:cardinality "1"^^xsd:nonNegativeInteger ; owl:onProperty ploutos:hasStartDatetime ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:cardinality "1"^^xsd:nonNegativeInteger ; owl:onProperty ploutos:hasToponym ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onClass ploutos:Crop ; owl:onProperty saref4agri:contains ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; ] ; . ploutos:Crop rdf:type owl:Class ; rdfs:comment "This class represents all kinds of cultivated plants that can be grown on a parcel of a farm or more generically on any type of substrate in any kind of environment. It is thus a superclass of a wide variety of different species." ; rdfs:comment "We have defined this class to be equivalent to obo:PO_0000003 which is the concept of a \"whole plant\", in the PO classification, which is reused by the FOODON ontology. Thereby, the ploutos:Crop concept automatically inherits all the subclasses defined in the FOODON ontology under PO_0000003." ; rdfs:subClassOf saref4agri:Crop ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:cardinality "1"^^xsd:nonNegativeInteger ; owl:onProperty ploutos:hasSeedRate ; ] ; owl:equivalentClass obo:PO_0000003 ; . ploutos:SoilManagementOperation rdf:type owl:Class ; rdfs:comment "1: This is the class of soil management operations in which certain material is applied to the soil an a parcel to enhance the performance, e.g. a fertilization operation, a spraying operation or an irrigation operation" ; rdfs:comment "2: Wikipedia says: soil management is the application of operations, practices, and treatments to protect soil and enhance its performance (such as soil fertility or soil mechanics). It includes soil conservation, soil amendment, and optimal soil health. See: https://en.wikipedia.org/wiki/Soil_management" ; rdfs:subClassOf ploutos:Operation ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onClass om:Area ; owl:onProperty ploutos:isAppliedPer ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onClass om:Measure ; owl:onProperty ploutos:hasAppliedAmount ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onProperty ploutos:isOperatedOn ; owl:someValuesFrom ploutos:Parcel ; ] ; . ploutos:System rdf:type owl:Class ; rdfs:comment "This class represents all kinds of systems that are used in the agrifood supply chain" ; rdfs:label "System" ; rdfs:subClassOf owl:Thing ; . ploutos:PestInterventionOperation rdf:type owl:Class ; rdfs:comment "This class represents the set of operations to protect crop against any kind of pest or disease by intervening current pest attacks with pest control methods. It is a specific CropProtectionOperation." ; rdfs:label "Pest intervention operation" ; rdfs:subClassOf ploutos:CropProtectionOperation ; . ploutos:ChemicalControlOperation rdf:type owl:Class ; rdfs:comment "This class represents the set of operations to protect crop against any kind of pest or disease. It is a specific PestInterventionOperation and uses a specific pesticide with a treatment material is meant for pest prevention, pest monitoring and pest intervention." ; rdfs:label "Crop protection operation" ; rdfs:subClassOf ploutos:PestInterventionOperation ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onClass om:Area ; owl:onProperty ploutos:isAppliedPer ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onClass om:Measure ; owl:onProperty ploutos:hasAppliedAmount ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onClass om:Measure ; owl:onProperty ploutos:hasTreatedArea ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onDataRange xsd:string ; owl:onProperty ploutos:isJustifiedBecause ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onProperty ploutos:usesPesticide ; owl:someValuesFrom ploutos:Pesticide ; ] ; . ploutos:IrrigationOperation rdf:type owl:Class ; rdfs:comment "This class represents the set of operations to irrigate the soil of a parcel of a farm with water. It is a specific SoilManagementOperation." ; rdfs:label "Irrigation operation" ; rdfs:subClassOf ploutos:SoilManagementOperation ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:cardinality "1"^^xsd:nonNegativeInteger ; owl:onProperty ploutos:hasCycleDuration ; ] ; . ploutos:FertilizationOperation rdf:type owl:Class ; rdfs:comment "This class represents the set of operations to fertilize the soil on the land of a farm. It is a specific SoilManagementOperation and uses a fertilizer or a specific type and applies this on an area that is treated. A fertilizer is a chemical or natural substance added to soil or land to increase its fertility." ; rdfs:label "Fertilization operation" ; rdfs:subClassOf ploutos:SoilManagementOperation ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onClass om:Measure ; owl:onProperty ploutos:hasTreatedArea ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onDataRange xsd:string ; owl:onProperty ploutos:hasApplicationMethod ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onDataRange xsd:string ; owl:onProperty ploutos:hasFertilizationType ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; ] ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onProperty ploutos:usesFertilizer ; owl:someValuesFrom ploutos:Fertilizer ; ] ; . ploutos:Fertilizer rdf:type owl:Class ; rdfs:comment "1: This represents the class of fertilizers that are used in fertilization operations to give nutrients to soil, water or another substrate" ; rdfs:comment "2: The property hasNutrientConcentration relates to an om:Percentage that has a value and a \"phenomenon\" that indicates for which nutrient the percentage holds" ; rdfs:label "fertilizer" ; rdfs:subClassOf ploutos:TreatmentMaterial ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onProperty ploutos:hasNutrientConcentration ; owl:someValuesFrom om:Percentage ; ] ; . ploutos:Product rdf:type owl:Class ; rdfs:comment "Instances of this class are product items, such as a can with beans, or a box with bananas, a bin with peaches or a lot with peaches" ; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onDataRange xsd:string ; owl:onProperty ploutos:isMeantFor ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; ] ; . obo:PO_0000003 a owl:Class ; rdfs:label "whole plant" ; . obo:ENVO_00000114 a owl:Class ; rdfs:label "agricultural field" ; . om:Area a owl:Class ; rdfs:label "area" ; rdfs:subClassOf om:Quantity ; . om:Percentage a owl:Class ; rdfs:label "Percentage" ; rdfs:subClassOf om:Ratio ; . om:Ratio a owl:Class ; rdfs:label "Ratio" ; rdfs:subClassOf om:Quantity ; . ## ocsm ## ocsm:Vineyard a owl:Class ; rdfs:label "Vineyard" ; rdfs:comment "Vineyard type of plot" ; rdfs:isDefinedBy . ocsm:YieldPrediction a owl:Class ; rdfs:label "YieldPrediction" ; rdfs:comment "Yield Prediction" ; rdfs:isDefinedBy . ocsm:VinesStressIndicator a owl:Class ; rdfs:label "VinesStressIndicator" ; rdfs:comment "Vines Stress Indicator" ; rdfs:isDefinedBy . ocsm:CanopyDensityProfile a owl:Class ; rdfs:label "CanopyDensityProfile" ; rdfs:comment "Canopy Density Profile" ; rdfs:isDefinedBy . ocsm:AIModel a owl:Class ; rdfs:label "AIModel" ; rdfs:comment "AIModel" ; rdfs:isDefinedBy . ocsm:AIPestDetectionModel a owl:Class ; rdfs:subClassOf ocsm:AIModel ; rdfs:label "AIPestDetectionModel" ; rdfs:comment "AIPestDetectionModel" ; rdfs:isDefinedBy . ocsm:SprayingMap a owl:Class ; rdfs:label "SprayingMap" ; rdfs:comment "SprayingMap" ; rdfs:isDefinedBy . ################################################################# # Alignments ################################################################# ocsm:hasPestThreat rdfs:range fiware-agrifood:AgriPest . ocsm:Vineyard rdfs:subClassOf fiware-agrifood:AgriParcel . ocsm:YieldPrediction rdfs:subClassOf sosa:Observation . ocsm:VinesStressIndicator rdfs:subClassOf sosa:Observation . ocsm:CanopyDensityProfile rdfs:subClassOf sosa:Observation . qudt:QuantityValue owl:equivalentClass om:Measure . qudt:Unit owl:equivalentClass om:Unit . qudt:Quantity owl:equivalentClass om:Quantity . foodie:interventionPlot owl:equivalentProperty ploutos:isOperatedOn . foodie:operator owl:equivalentProperty ploutos:responsibleAgent . ploutos:usesAgriculturalMachinery rdfs:subPropertyOf foodie:machine . foodie:quantity owl:equivalentProperty ploutos:hasAppliedAmount . ploutos:hasCountry rdfs:subPropertyOf schema:addressCountry . ploutos:inRegion rdfs:subPropertyOf schema:addressRegion . fiware-agrifood:area owl:equivalentProperty ploutos:hasArea . ploutos:hasIrrigationType rdfs:subPropertyOf foodie:type . fiware-agrifood:endedAt owl:equivalentProperty ploutos:hasEndDatetime . fiware-agrifood:startedAt owl:equivalentProperty ploutos:hasStartDatetime . foodie:Intervention owl:equivalentClass ploutos:CropManagementOperation . #ploutos:AgriculturalMachine rdfs:subClassOf foodie:MachineType . # is reverse foodie:MachineType rdfs:subClassOf ploutos:AgriculturalMachine . foodie:TractorType rdfs:subClassOf ploutos:AgriculturalMachine . ploutos:AgriculturalMachine rdfs:subClassOf sosa:Platform . ssn:System owl:equivalentClass ploutos:System . saref4agri:wateringSystem owl:equivalentClass ploutos:IrrigationSystem . foodie:Product owl:equivalentClass ploutos:Product . ################################################################# # Individuals ################################################################# ## foodie a skos:ConceptScheme ; dct:isFormatOf "http://foodie-cloud.com/model/foodie#TreatmentPurposeValue" ; skos:prefLabel "TreatmentPurposeValue"@en . a skos:Concept ; skos:inScheme "http://foodie-cloud.com/model/foodie/code/TreatmentPurposeValue" ; skos:prefLabel "pest"@en . a skos:Concept ; skos:inScheme "http://foodie-cloud.com/model/foodie/code/TreatmentPurposeValue" ; skos:prefLabel "fertilization"@en . a skos:Concept ; skos:inScheme "http://foodie-cloud.com/model/foodie/code/TreatmentPurposeValue" ; skos:prefLabel "weed"@en . a skos:Concept ; skos:inScheme "http://foodie-cloud.com/model/foodie/code/TreatmentPurposeValue" ; skos:prefLabel "disease"@en . a skos:ConceptScheme ; dct:isFormatOf "http://foodie-cloud.com/model/foodie#FormOfTreatmentValue" ; skos:prefLabel "FormOfTreatmentValue"@en . a skos:Concept ; skos:inScheme "http://foodie-cloud.com/model/foodie/code/FormOfTreatmentValue" ; skos:prefLabel "aerial"@en . a skos:Concept ; skos:inScheme "http://foodie-cloud.com/model/foodie/code/FormOfTreatmentValue" ; skos:prefLabel "applicationMachine"@en . a skos:Concept ; skos:inScheme "http://foodie-cloud.com/model/foodie/code/FormOfTreatmentValue" ; skos:prefLabel "manual"@en . a skos:Concept ; skos:inScheme "http://foodie-cloud.com/model/foodie/code/FormOfTreatmentValue" ; skos:prefLabel "sprayed"@en . ## ocsm ocsm:CropYield a owl:NamedIndividual , saref4agri:Yield ; rdfs:label "CropYield" ; rdfs:comment "CropYield" ; rdfs:isDefinedBy . ocsm:PlantStress a owl:NamedIndividual , sosa:ObservedProperty ; rdfs:label "plantStress" ; rdfs:comment "plantStress" ; rdfs:isDefinedBy . ocsm:CanopyDensity a owl:NamedIndividual , sosa:ObservedProperty ; rdfs:label "CanopyDensity" ; rdfs:comment "CanopyDensity" ; rdfs:isDefinedBy . ocsm:Infestation a owl:NamedIndividual , sosa:ObservedProperty ; rdfs:label "Infestation" ; rdfs:comment "Infestation" ; rdfs:isDefinedBy . ocsm:Infestation a owl:NamedIndividual , sosa:ObservedProperty ; rdfs:label "Infestation" ; rdfs:comment "Infestation" ; rdfs:isDefinedBy . ocsm:NumberOfGrapes a owl:NamedIndividual , sosa:ObservedProperty ; rdfs:label "NumberOfGrapes" ; rdfs:comment "NumberOfGrapes" ; rdfs:isDefinedBy . ocsm:NumberOfFruits a owl:NamedIndividual , sosa:ObservedProperty ; rdfs:label "NumberOfFruits" ; rdfs:comment "NumberOfFruits" ; rdfs:isDefinedBy . ocsm:VineyardRow a owl:NamedIndividual , sosa:FeautureOfInterest ; rdfs:label "VineyardRow" ; rdfs:comment "VineyardRow" ; rdfs:isDefinedBy . ocsm:KiloGM-PER-PLANT a qudt:Unit ; rdfs:label "kilogram per plant" ; rdfs:comment "kilogram per plant" ; rdfs:isDefinedBy .