How to model references in an ontology

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.

• For that particular 'argument', you'd want to attach a large number of references contradicting it. Then usual normalisation of the design would say to use an auxiliary relation to record supporting and contradicting evidence/sources. – AntC Mar 24 '19 at 23:15

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: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

• The second part of your answer helps me with this problem. Thanks! – Noah Santacruz Mar 24 '19 at 16:23