@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 .