David Riccitelli
David Riccitelli

Reputation: 7822

Use of Dublin Core references and isReferencedBy terms

The Dublin Core vocabulary expresses two terms:

The two terms are inverses whereas:

if A references B, then B is referenced by A

In a graph is it then (fully or to a certain extent) required to always insert and express both terms?

<http://example.org/A> dcterms:references <http://example.org/B>
<http://example.org/B> dcterms:isReferencedBy <http://example.org/A>

If it is not required, on behalf of what considerations should be both used, or just one of the two?

Upvotes: 2

Views: 309

Answers (1)

Joshua Taylor
Joshua Taylor

Reputation: 85913

The original question said transitive, but should have said inverses. The question has been corrected. The relevant portion of the answer starts in the second paragraph. The properties are not, as far as I can tell, transitive. That a property p is transitive, means that for all a, b, c, if p(a,b) and p(b,c), then p(a,c). I do not think it is necessarily the case that “if a references b, and b references c, then a references c.” The relationship that you have described is that references and isReferencedBy are inverses. A property p is the inverse of a property q if, for all a and b, p(a,b) if and only if q(b,a).

The names of the properties do clearly suggest that they are inverses of each other, though I have not found an authoritative reference stating that. Typically, data sources will only state the relationship in one direction. Some kind of reasoner (and this might just be some application logic—it does not need to be a full-fledged RDFS or OWL reasoner) should be responsible for making the connection between the two properties. For instance, if you are writing an application to build the graph of references, your application should look for triples using either property, and use that data as appropriate.

In RDF, it is typically easy to state either of the triples that would express the relationship “a references b”—you could either assert a references b or b isReferencedBy a. However, in some formats, you will not have as much flexibility. For instance, if you are using HTML META tags to describe an HTML document, the subject of the triple is fixed, so you'll need references to enumerate things that the document references, and isReferencedBy to enumerate things that reference the document. If you are working in pure RDF and can write arbitrary triples, though, you really only need one property, although it still might be clearer and more concise in some circumstances to use both. For instance, it might be considered clearer to write:

A references B ;
  isReferencedBy C, D .

instead of

A references B .
C references A .
D references A .

Upvotes: 1

Related Questions