Re: Reification - whats best practice?

I would like to ask about a subject I tried before but got no real 
response to.  All the problems that people hope to solve using quads, 
reification, etc., can be solved if the predicate of a statement were to 
be an instance rather than a generic type (and such an instance, with 
its own URI, were not to be used for more than one statement).  Then a 
specific predicate could be the subject of other statements, and so its 
provenance and any manner of other meta data could be attached to it.

True, a predicate is not in itself a statement, but since we are limited 
to binary relations, a specific instance of a predicate uniquely 
identifies a specific statement as long as we do not reuse that instance 
of the predicate.

Most real life systems that represent relationships as first class 
objects do something of the kind, I would venture to say (e.g., Metis, 
DOORS).   So do many relational data models (a join table often has 
other columns besides the foreign keys it relates).

At first glance, this approach appears to violate OWL/DL, but it need 
not since a DL processor could just work with the predicate's type (a 
one-step lookup using its URI), and ignore its individuality.

To me, such a change to RDF (or OWL) would be quite minor, in contrast 
to other proposals that have been floated around.  A context or subgraph 
would become a collection of predicate instances, and so all that kind 
of scenario would be easy to handle.

In fact, this can be done now with RDF, as I understand the RDF Recs, 
although some OWL processors might be unhappy (although OWL full 
processors by rights should not complain, I would think).

Comments, suggestions, alternatives?

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

Received on Monday, 30 August 2004 23:22:10 UTC