Representing Negative Knowledge
Representing negative knowledge in the semantic web is an open problem. This post is going to be a living document where I keep notes on use cases, potential solutions, and awful hacks.
SSSOM
In the Simple Standard for Sharing Ontological Mappings (SSSOM), we decided to represent negative knowledge by adding a modifier onto a predicate. This means that a semantic mapping known to be false gets represented like this in TSV:
subject_id subject-label predicate_id predicate_modifier object_id object_label mapping_justification
CHEBI:8925 ryanodine skos:exactMatch Not mesh:D031309 Ryania semapv:ManualMappingCuration
Since SSSOM is heavily tied to the OBO community, this gets turned into RDF with the following axiom:
[] a owl:Axiom ;
owl:annotatedSubject CHEBI:8925 ;
owl:annotatedProperty skos:exactMatch ;
owl:annotatedObject mesh:D031309 ;
sssom:predicate_modifier sssom:NegatedPredicate .
It’s debated whether asserting an axiom also requires the assertion of the
triple itself CHEBI:8925 skos:exactMatch mesh:D031309
, however, in this case,
it’s clear that triples represent true knowledge, so we would not want to
concretize it.
RDF Surfaces
Damien Goutte-Gattat made me aware of RDF Surfaces in a discussion on a SSSOM PR. To summarize his comment, RDF surfaces create a part of an RDF graph that contains negated assertions, something like:
@prefix log: <http://www.w3.org/2000/10/swap/log#> .
@prefix FBbt: <http://purl.obolibrary.org/obo/FBbt_> .
@prefix UBERON: <http://purl.obolibrary.org/obo/FBbt_> .
@prefix skos: http://www.w3.org/2004/02/skos/core#> .
(_:x) log:onNegativeSurface {
FBbt:00004508 skos:exactMatch UBERON:0000056 .
} .
This paper is still
under review
and also might be of limited use because it uses sneaky N3 syntax {
}
which
are used to express formulae.
I haven’t actually gone out to do a deep survey on this. If you are aware of something relevant, please let me know.