[sorry for the long quote, seems necessary]
On Mon, Sep 22, 2003 at 02:51:30PM +0300, Benja Fallenstein wrote:
Tuomas Lukka wrote:
On Mon, Sep 22, 2003 at 02:29:49PM +0300, Benja Fallenstein wrote:
Tuomas Lukka wrote:
Why *should* it work for "equivalent" triples?
Because the same thing can have more than one name (node in the graph),
and if e.g. "c = d," then the triple "a b c" entails "a b d." Not
allowing "a b d" to be in a graph at the same time as "a b c" is like a
calculator that can compute 7+3+2, but not 7+3+0+2.
As long as the definition of equivalence is as fuzzy as you have made
out,
I haven't made it fuzzy at all. There is a set of resources; there is a
set of names for these resources, and a resource can have more than one
name (or no name at all). Two triples of *names* of resources (i.e.,
nodes) are equivalent if the subjects name the same resource, the
predicates name the same resource, and the objects name the same
resource. If you see any fuzziness there, I suggest you get a little
clearer.
Also, I'm not making any definitions, I'm just trying to explain. If you
want to have a look at the sources, see for example
http://www.w3.org/TR/owl-ref/#IndividualIdentity .
I think it's fine: I see it more like 7+3+2 != 7+3+2+epsilon
I don't see any relation between this and the issue at hand.
If someone wants equivalences to work, what they can do is *unify*
the equivalent nodes of the graph **before** running code on it.
Knowing which names represent the same resource is not generally
possible.
*THIS* is the fuzzy part. I'm fine with having resources have different
names, but this is the part I don't like.
You can know *some* equivalences, but not all. (E.g. if you
have a property with cardinality 1, but more than one triple with that
property and the same subject, then you know that all the objects are
names for the same resource (or the graph states a contradiction). This
is why returning an arbitrary one of the objects in ``getObject()``
should be fine-- they should all represent the same resource.)
Same here: why not run this *before* running code, cleaning up the graph.
For example, the graph could have been merged from two graphs
where different values are given.
I understand that what you're saying is the equivalence idea of RDF
in general, but I still think it's not appropriate for Swamp; things
like this should be preprocessed out to get a *clean* graph.
Tuomas
_______________________________________________
fenfire-dev mailing list
address@hidden
http://mail.nongnu.org/mailman/listinfo/fenfire-dev