This adds a new concept to an existing ontology to semantically integrate and thus harmonise it with the already existing ontology.
new_concept(
new,
broader = NULL,
description = NULL,
class = NULL,
ontology = NULL
)
character(.)
the english label(s) of new
concepts that shall be included in the ontology.
data.frame(.)
the english label(s) of
already harmonised concepts to which the new concept shall be semantically
linked via a
skos:broader
relation, see Details.
character(.)
a verbatim description of
the new concept(s).
character(.)
the class(es) of the new labels.
ontology(1)
either a path where the ontology is
stored, or an already loaded ontology.
returns invisibly a table of the new harmonised concepts that were added to the ontology, or a message that nothing new was added.
ontoDir <- system.file("extdata", "crops.rds", package = "ontologics")
onto <- load_ontology(path = ontoDir)
# add fully known concepts
concepts <- data.frame(
old = c("Bioenergy woody", "Bioenergy herbaceous"),
new = c("acacia", "miscanthus")
)
onto <- new_source(
version = "0.0.1",
name = "externalDataset",
description = "a vocabulary",
homepage = "https://www.something.net",
license = "CC-BY-0",
ontology = onto
)
onto <- new_concept(
new = concepts$new,
broader = get_concept(label = concepts$old, ontology = onto),
class = "crop",
ontology = onto
)
# add concepts where the nesting is clear, but not the new class
concepts <- data.frame(
old = c("Barley", "Barley"),
new = c("food", "bio-energy")
)
onto <- new_concept(
new = concepts$new,
broader = get_concept(label = concepts$old, ontology = onto),
ontology = onto
)
#> Warning: all new concepts don't have a class; please define this with 'new_class()' and re-run 'new_concept()' with these concepts and the new class.
# define that class ...
onto <- new_class(
new = "use type", target = "class",
description = "the way a crop is used", ontology = onto
)
# ... and set the concepts again
onto <- new_concept(
new = concepts$new,
broader = get_concept(label = concepts$old, ontology = onto),
class = "use type",
ontology = onto
)