Skip to main content

Concept Schemes & Code Lists

Every classification in a record — the type of an activity, the crop of a cultivation period, the species of an animal — is a concept of a SKOS scheme. Which scheme feeds which attribute is part of the ontology: the schema binds the classification attributes listed below to their scheme, so an application knows which picker to offer and a validator knows what to accept. Some …Uri attributes have no scheme yet — varieties, breeds, cost categories and others; they take any dereferenceable URI, AGROVOC first.

The 17 concept schemes​

Each scheme is available at https://w3id.org/agrifooddata/<scheme> (see content negotiation).

SchemeHoldsAuthorityFeeds
cropsCropsBVL code list, with own identifiers; mapped onto AGROVOC in partCultivationPeriod.typeUri, CroppingPlanEntry.cropUri, Stand.cropUri
farm-typesFarm typesAGROVOCFarm.farmTypeUri
land-useLand useAGROVOCField.landUseUri
product-classesProduct classesAGROVOCProduct.typeUri, InputOutput.typeUri
activity-typesTypes of activityAGROVOCActivity.typeUri, Task.typeUri
site-typesSite and storage typesAGROVOCSite.siteTypeUri, StorageLocation.storageTypeUri
machine-categoriesMachine categoriesAGROVOCMachine.categoryUri
device-typesDevice typesAGROVOCDevice.deviceTypeUri
pestsPests and disordersBVL code list; EPPO codes via CodeMappingObservation.observedPropertyUri
observed-propertiesMeasured quantitiesSOSA/SSN, QUDT, AGROVOCObservation.observedPropertyUri
animal-speciesAnimal speciesAGROVOCAnimal.speciesUri, AnimalGroup.speciesUri
event-typesAnimal event typesICAR ADEAnimalEvent.eventTypeUri
phenologyBBCH growth stagesBBCH / BVLActivity.bbchStage (by notation)
regionsRegion types — so far the default regionagrifooddata (own curation)Region.typeUri
report-typesReport typesagrifooddata (own curation)RegulatoryReport.reportTypeUri
soil-glosisSoil propertiesGloSIS, WRBObservation.observedPropertyUri — scaffold
environment-envoEnvironmental contextENVO— scaffold

Three notes on reading the table:

  • Observation.observedPropertyUri takes a concept from any of three schemes: observed-properties, pests or soil-glosis. The ontology states this as one restriction over their union.
  • Alignments to INSPIRE HILUCS (land use) and SAREF4AGRI (device types) are foreseen but not yet substantiated; see Standards the ontology builds on.
  • Activity.bbchStage is a code, not an identifier: it holds the skos:notation of a concept in phenology ("32"), bound with agfoda:notationFrom instead of a value restriction.
  • Schemes marked scaffold are structure without substance yet. The ontology says so rather than inventing content.

Identifiers and codes​

Everything else in the vocabulary hangs on a distinction between two mechanisms.

Dereferenceable identifierCode list
Appears intypeUri, cropUri, speciesUri …externalScheme + externalCode (a CodeMapping row)
What sits in the dataan IRIa code and the register it came from
In RDFagfoda:typeUri <IRI>skos:notation on the concept; a row in the code list
Timeholds indefinitelyvalidFrom / validTo; one isPreferred per pair
When the authority changesnothing — the identifier staysthe row gets a validTo

The rule in one sentence: stable, globally unique and resolvable → an identifier. Retired, merged or only valid for a period → a code.

AGROVOC is an identifier​

A concept with a verified AGROVOC counterpart carries the AGROVOC IRI as its own, in a scheme of ours:

<http://aims.fao.org/aos/agrovoc/c_10795> a skos:Concept ;
skos:inScheme <https://w3id.org/agrifooddata/activity-types> ;
skos:notation "fertilization" ;
skos:prefLabel "Düngung"@de, "Fertilization"@en .

Labels are not redistributed from AGROVOC — only a label of the ontology's own, verified against the AGROVOC service. A client that needs AGROVOC's labels queries AGROVOC.

EPPO is a code​

EPPO retires codes and merges taxa, while a plant protection record has to be kept for years. So a crop keeps an identifier of its own, and the EPPO code hangs off it twice — as skos:notation (so it can be searched for) and in the code list (so the mapping can be dated):

# codelists/eppo.csv
conceptUri,externalCode,label,validFrom,validTo,isPreferred
https://w3id.org/agrifooddata/crops#TRZAW,TRZAW,Winterweichweizen,,,true

A code is only recorded where EPPO's code names the organism the BVL names — a code that merely exists is not enough, because some BVL codes are the EPPO codes of another taxon.

Code lists​

Five code lists ship with the ontology. Four of them are reached in a record through the data model's CodeMapping entity; the BVL registrations are the exception.

Code listRoleNotes
EPPOcrop and pest codesmandatory in German plant protection records; checked against the EPPO database
BBCHgrowth stagesthe code is also the skos:notation of the concept
BVL registrationsauthorised plant protection products (Germany)with validity period; the one list without a concept reference — a registration number denotes a commercial product, and the link is made at the Product record (registrationNumber)
ICAR ADEanimal event codesfor event-types
ISOBUS DDImachine and process quantities of ISO 11783-11the DDI rows point at AGROVOC identifiers

Named gaps​

A named gap beats an invented row. Where a scheme or code list is foreseen but nothing verifiable exists, the registry says unsubstantiated and gives the reason. Currently so named: KTBL cost categories, the EU variety catalogue (CPVO), FAO DAD-IS breeds, GS1 GTIN, WRB, Crop Ontology, IPCC/GHG categories and ESRS data points. Likewise, the mapping of crops and pests onto AGROVOC is partial — the rest, and the growth stages of phenology, carry no mapping yet. The Recommendation asks for it (clause 7.2); the gap is listed in the data model's divergences.

Standards the ontology builds on​

VocabularyFor
SKOSthe language the concept schemes are written in
SOSA/SSNobservation and sensor in RDF
UCUMthe unit as a string in the data ("L/har")
QUDTthe unit as an IRI in RDF (unit:L-PER-HA) — a different layer; never both in one column
GeoSPARQLgeometry in RDF; GeoJSON stays the storage form
PROV-Oprovenance, of records and of the vocabulary
OWL-Timetemporal statements beyond ISO 8601
W3C Orgfarm, organisation, roles
DCAT-APthe vocabulary describes itself as a dataset
ISO 19156the observation model behind SOSA
ISO 4217currency of every monetary amount
ITU-T Y.4000 / Y.2060the IoT reference model the classes map onto

Further alignment targets (ITU-T Y.4417, the domain architecture the schema implements; SAREF4AGRI, INSPIRE HILUCS, FOODIE, ADAPT, ISO 19115-1, OGC SensorThings, OGC API – Features, WoT Thing Description) are named with the concrete artefact they would produce; the ontology distinguishes compatible (data can be exchanged or mapped without loss of meaning) from aligned (conceptual correspondence only). Formal conformance is claimed for neither. The full reasoning is in INTEROP.md (as a page).

See it in action​