Re: Best way to assert that "s p o" was true at time t?

Charles McCathieNevile wrote:
> [Bcc www-rdf-calendar@w3.org 'cause this touches on them.]
> 
> All of these suggestions seem to answer the actual question, not the one
> hinted at in the subject line.
> 
> Two more ideas to consider:
> 
> One is that you make a bunch of statements in a document, and you then
> describe when that document is "valid" (or just date it as a claim made at
> time t).  


This problem is at bottom equivalent to the problem of representing a 
subgraph.  Once that problem is solved in a satisfactory way, many, many 
questions such as this one will able to be handled.

As an example, Sowa in various of his writings (including his Knowledge 
Representation book from 2000) shows assigning a "point in time" to a 
"situation". See, for example, p. 174 and p. 208 of the KR book. 
Looking at the "situation" in fig. 4.1 on p. 208, it is obvious that the 
"situation" is a subgraph (the diagram depicts a conceptual graph rather 
than an rdf graph, but the same principle obviously applies).

Once we can refer to a subgraph, then, we can assign it an effective 
time, or whatever we want along those lines.

It would be best of everyone used the same way of referring to 
subgraphs, since this would allow the largest number of processors to 
know how to work with the subgraph idiom.  Since we don't have a single 
accepted way to do this, people have to keep trying to roll their own.

So far, I've only seen two ways that seem to me to be reasonably 
feasible, to represent the intended meaning clearly, and also not to 
require any change to the current rdf Recs -

1)  Create a document that contains just the subgraph of interest. 
Assign it a URI, and invent a predicate for referring to that URI.  The 
trouble is that you have to create and maintain a document (which may be 
virtual, i.e., generated when requested, or an actual physical 
document), and the new predicate has to be widely understood.  Actually, 
we need both a new resource type, the "subgraph", and a predicate that 
says that a subgraph is found at a particular retrievable uri.

2) Make each predicate in the subgraph an individual with its own uri. 
The subgraph would then be represented by a simple collection of all its 
individual predicates.  That collection could naturally be given its own 
uri.  The problem with this approach is that it might not play well with 
various forms of DL processing, and, of course, you are creating more 
individuals.  But there is nothing in rdf itself that would prevent this 
approach.

I don't see the reification approach in Charle's post as being a real 
solution, partly because a reified statement is not asserted in rdf in 
the same way as a "real" triple, but more because the real-life 
situations that need to be qualified by their times, or otherwise talked 
about, are usually going to be more complex than just one triple. 
That's why we need to be able to make statements about a subgraph.

Cheers,

Tom P

-- 
Thomas B. Passin
Explorer's Guide to the Semantic Web (Manning Books)
http://www.manning.com/catalog/view.php?book=passin

Received on Sunday, 10 October 2004 01:37:26 UTC