Re: In RDF what is the best practice to represent data provenance (source)?

Richard Cyganiak wrote on Mon, 22 Jan 2007:

> You say that there exist indeed two different kinds of things in a  
> domain: entity-like things and relationship-like things. You cite the  
> example of natural numbers, which clearly are entity-like.
> 
> You are right in the case of mathematics, a domain that comes nicely  
> pre-packaged in elements and sets. But many domains are not like  
> this. Take, for example, the concept of a "married couple". Is this a  
> relationship-like thing that should be modelled as an RDF triple  
> connecting two resources? Or perhaps as a distinct resource that has  
> connections to the two person resources? Or perhaps as a two-element  
> class? The answer is that all these options can be reasonable, it  
> depends on the concrete use case. Thus my claim that entity-likeness  
> or relationship-likeness is an artifact of modelling and not inherent  
> to the world.

"Twin primes" would have been a really insidious counter example! ;-)

Well, ok, it's probably not that easy, as I suggested. And such a debate 
isn't my focus in this thread, so let's assume here that it's allowed to 
have all three proposed views on such a "married couple" resource 
expressed together within the same RDF graph (without getting a 
meaningless interpretation). I will denote this resource (it is a 
resource within the domain, at least, whatever more specific nature(s) 
it actually has) by URI ':aliceAndBob' in my graph.

1) Seeing it as a thing-like resource, we can assert, for example, that 
it is an instance of some class:

   :aliceAndBob rdf:type :MarriageCouple .

In RDF(S), this triple has a defined meaning, so everyone (and every 
reasoner) who knows RDF(S) semantics, also knows what this triple is 
meant to express: That the thing-like resource denoted by URI 
':aliceAndBob' is an instance of the class-like resource denoted by URI 
':MarriageCouple'.

2) By regarding it as a class-like resource, we can write down the 
following triples:

   :alice rdf:type :aliceAndBob .
   :bob rdf:type :aliceAndBob .

Again, it's clear from RDF(S) semantics, how these triples have to be 
understood.

3) Last, seen as a relationship-like resource, I would, for instance, 
like to state, who is the left-hand-side of this relationship, and who 
is its right-hand-side, and what relation actually holds between them. 
But, regrettably, in this case, RDF doesn't directly provide me some 
means to model this, so I have to invent my own method:

   :aliceAndBob
     :hasLeftHandSide :alice ;
     :hasRightHandSide :bob ;
     :relation :isMarriedWith .

Works, of course... But a little more language support would make me 
even more happier! :)

Cheers,
Michael

Received on Wednesday, 24 January 2007 13:52:54 UTC