- From: Seth Russell <seth@robustai.net>
- Date: Thu, 23 Nov 2000 11:10:27 -0800
- To: Sergey Melnik <melnik@db.stanford.edu>
- CC: Pierre-Antoine CHAMPIN <champin@bat710.univ-lyon1.fr>, ML RDF-interest <www-rdf-interest@w3c.org>
Sergey Melnik wrote: > - STATEMENTS ARE RESOURCES (that implies that every statement is unique > and equivalent to reified statement) > - toss "quad" reification mechanism altogether There is a distinction between a resource and the identifier of a resource. Here is a resource: [s1, p1, o1] [s1, p2, o2] Here is an identifier of a resource: s1 The resource is the whole node, it's URI is what we use to point to that node from somewhere else. Every statement on a node is merely a part of the node. If we say "statements are resources", then you are saying the part is the whole. I think that will entail some serious confusion. On the other hand, we could identify each particular statement in the context of the node in which it is a part. For example: t1 [s1, p1, o1] t2 [s1, p2, o2] Now we can point out particular statements with the same force that we point out particular nodes. Permitting things like: t3 [s2, p3, t1] t4 [s2, p4, o3] If our attention is on t3 and we advance to its object, we end up on t1 in the node identified by s1. But what if we allow a statement identifier to stand like a resource identifier as the subject of a node? For instance the following: t5 [t1, p5, o4] t6 [t1, p6, o5] Now if our attention is on t3 and we advance to its object where do we end up? It's ambiguous. We could either be on the node consisting of {t5, t6} or we could be on the statement itself {t1} in the node consisting of {t1, t2}. I hope we don't allow this ambiguity. There is an easy solution: Allow a statement identifier to be an object only. Treat a statement identifier just like a literal which also can only be an object. Strangely enough this solution only involves the following minimum change to a [RDF-model]: Where pred is a property (member of Properties), sub is a resource (member of Resources), and obj is either a resource or a literal (member of Literals) or a statement (member of statements). [RDF-model] http://www.w3.org/TR/REC-rdf-syntax/#model This means that we can objectively talk about any statement without reifying it - when we do so we are talking about the particular triple itself in the unique environment of the node in which it resides. This is useful for placing triples in different contexts like Grahm is suggesting. For example: [context1] --rdfc:asserts-->[t1] [context1] --rdfc:asserts-->[t2] Meaning it will be efficient to make statements show up only in the contexts in which they belong: select statements where [context1, rdfc:asserts] But if we want to talk about the ~meaning~ of a particular statement in its context of utterance, then we have created a subject of that statement and that is reification. To do that we must needs create another order of representation. Like: t7 [s3, rai:reifies, t1] t8 [s3, rdf:type, statement] t9 [s3, rdf:subject, s1] t10 [s3, rdf:property, p1] t11 [s3, rdf:object, o1] t12 [s3, p6, o5] Note that {t9, t10. t11} are not necessary to disambiguify our reference to t1 but they don't hurt anything either. Of course, t12 is the payload, otherwise we have added no new information. That is unless we would want to refer from somewhere else to the ~meaning~ of the t1 in its environment of s1. If we want to refer to that meaning we should choose the object s3 and not the object t1. Seth Russell t13 says: "In RDF we must be painfully clear about that to which we refer." [] is only the humble opinion of: Seth Russell [] rai:reifies t13
Received on Thursday, 23 November 2000 14:08:17 UTC