4

I am interested in creating an ontology which will model arguments (among other things). For example, a triple in the ontology might be

Vaccination -> can lead to -> Autism

(not that I necessarily believe this, just a good example of an argument). I would like to attach sources to any disputed statement. So ideally, the above example would be stored as

Vaccination -> can lead to -> Autism -> according to -> Article X

This cannot easily be represented as a triple in a standard ontology. What are the accepted ways of modeling this type of data?

I see that on WikiData, all relations can have sources attached to them (e.g. see https://www.wikidata.org/wiki/Q23 for sources on when George Washington was born). It could be that WikiData doesn't store their data as triples.

1 Answers1

3

If you want to say something about an RDF triple (i.e., an rdf:Statement), you can use reification:

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix voc: <https://example.com/vocabulary#> .
@prefix :    <https://example.com/instances#> .

:Triple42   rdf:type        rdf:Statement .
:Triple42   rdf:subject     :Vaccination . 
:Triple42   rdf:predicate   voc:canLeadTo . 
:Triple42   rdf:object      :Autism .
:Triple42   voc:publishedIn <https://example.com/articles/vaccination-and-autism> .

But you would probably want to say something about the argument, not about the RDF statement expressing the argument. You can use n-ary relations for this, e.g., by introducing an instance that represents the argument:

@prefix voc: <https://example.com/vocabulary#> .
@prefix :    <https://example.com/instances#> .

:Argument1 a voc:Argument .
:Argument1 voc:publishedIn <https://example.com/articles/vaccination-and-autism> .
:Argument1 voc:textualRepresentation "Vaccination can lead to autism!" .

(and then use properties that dissect the argument to represent it in a machine-readable way)


Relevant vocabularies: PROV, schema:ClaimReview

unor
  • 201
  • 1
  • 5