action item on reification

from the minutes of the 2001-05-18 teleconference:
> ACTION ITEM: Ghram Klyne and Frank Manola agree to summarize www-rdf-logic
> perspective of reification as it applies to both logic and rdf and
> report back to rdfcore wg

The following hasn't been coordinated with Graham, but represents an
initial cut on my part at summarizing what the issues seem to be.  As
Graham (correctly) noted in a recent message, these issues are tightly
bound up with general questions about RDF semantics.

Background:
Reification is introduced into RDF because RDF statements (as they
stand) are not resources.  In order for RDF to be able to make
statements about statements (e.g., the "Ralph Swick" example), there
needs to be a way to turn RDF statements into resources.  Reification is
also used to model statement grouping (explicitly for purposes of
modeling Description elements;  however, presumably other syntactic
groupings of statements would need to use reification as well).  That
is, you want to be able to refer to a collection of statements, which
requires that the statements be reified into resources that can be put
into those collections.  It seems to me possible to lump these uses
together by saying RDF needs a way to refer to statements, either for
"semantic" purposes (making some assertion about an assertion someone
else has made), or for "syntactic" purposes (statement grouping).  Both
these uses are described in the M&S spec.  TBL and some others have also
suggested that reification provides a way to add power to RDF, by
describing the capabilities of the new facilities as they apply to
existing ones.  Thus, TBL's "Semantic ToolBox" design issues white paper
discussed introducing the concept of negation (NOT) by reification:

"Hence, to say "not(node, property, value)", you have to say, for
example, "there is something which is an RDF property and has a subject
of A and whose B property has value C and is false". So in RDF, not can
be introduced by a new property which associates a boolean truth value
with another node."   The example given is:

<quote id="foo" about="http://www.w3.org/">

    <w3c:member>http://www.soap.com/</w3c:member>

</quote>
<rdf:description about="#foo">
   <truth>0</truth>
</rdf:description>

rdf-logic issues:
The basic issues with reification discussed on rdf-logic seem to be (at
least!) as follows:

1.  The same RDF reification mechanism is used to provide both syntactic
capabilities (e.g., statement grouping) and semantic capabilities (e.g.,
assertions about assertions).  There may be reasons for wanting to
provide these different capabilities (these can be individually
debated;  see below), but the same mechanism can't be used for all of
them, since you then can't determine what the reification "means" in a
given usage.  Additionally on this issue:

a.  note that conventional logic languages provide *different*
mechanisms for describing set membership, lexical containment/nesting,
quoting, and so on. 

b.  this issue applies to using a single mechanism for referring to RDF
statements in RDF for multiple purposes, independently of what that
single mechanism is.  So, for example, finding some simpler way to refer
to RDF statements that didn't involve using the current modeling
mechanism, while it would be nice for many purposes, wouldn't resolve
this issue. 

2.  Some of the intended purposes for which RDF reification is proposed
are inappropriate (in some cases they may be appropriate in higher level
languages), or impossible.  For example:

a.  using reification to add power to RDF (e.g., add negation or
quantification) within RDF itself is impossible, because RDF isn't
powerful enough to describe those extended capabilities.  

b.  reification isn't the best mechanism for making statements about
statements (the Ralph Swick) example), or for describing statement
nesting.  

3.  The intended semantics of making statements about statements in RDF
aren't completely clear.  For example, in the Ralph Swick example, is
the intent really to make a statement about something (the reified
statement) that is only a piece of syntax, or is the intent really to
make a statement about something that at some point you want to be able
to treat as an assertion, with semantic meaning (e.g., I might want to
collect all the things Ralph Swick said, and determine if they were
consistent).

4.  To really handle some of the possible semantics of making statements
about statements, additional (often logically non-trivial) mechanism is
needed.  For example, to determine the consistency of all the things
Ralph Swick said, you need the ability to move between reified and
unreified statements in a controlled way.  Using a form of reification
to allow a language to extend its own syntax is also possible, but also
requires additional mechanism (the language itself must be sufficiently
powerful, for one thing).  
  
--Frank

-- 
Frank Manola                   The MITRE Corporation
202 Burlington Road, MS A345   Bedford, MA 01730-1420
mailto:fmanola@mitre.org       voice: 781-271-8147   FAX: 781-271-8752

Received on Wednesday, 23 May 2001 14:06:41 UTC