- From: Yves Raimond <yves.raimond@gmail.com>
- Date: Fri, 2 Jul 2010 10:15:37 +0100
- To: Ivan Mikhailov <imikhailov@openlinksw.com>
- Cc: Kingsley Idehen <kidehen@openlinksw.com>, Henry Story <henry.story@gmail.com>, nathan@webr3.org, Pat Hayes <phayes@ihmc.us>, Toby Inkster <tai@g5n.co.uk>, Dan Brickley <danbri@danbri.org>, Linked Data community <public-lod@w3.org>, Semantic Web <semantic-web@w3.org>
Hello Ivan! On Fri, Jul 2, 2010 at 5:50 AM, Ivan Mikhailov <imikhailov@openlinksw.com> wrote: > Hello Yves, > >> > It's a virtuoso function surfaced as a predicate. >> > "magic predicate" was an initial moniker used at creation time. >> > "bif:contains" doesn't exist in pure triple form etc.. >> >> Why couldn't it? For example, you may want to express exactly what >> triple lead you to give a particular result, and within that scope you >> may end up having to write: "Brickley" bif:contains "ckley" in RDF. >> >> Forbidding literals as subjects makes this statement impossible to >> express, however that's a very sensible thing you may want to express. >> >> There are also lots of literal search examples that comes to mind: >> >> "Acton" str:double_metaphone "AKTN" . >> "Smith" str:soundex "S530" . > > Yes, SPARQL permits literals in subject position, and we use that for > dirty hacks. That does not mean that raw data should permit the same. > SPARQL (and especially our SPARQL/BI) uses many different things in > subject position, e.g., variables (and expressions, up to subqueries) > that's not an excuse to allow the same in raw data. First: this is *not* a dirty hack. "Brickley" bif:contains "ckley" is a perfectly valid thing to say. > > I don't even say about technical price of the extension for both > developers (extra work) and each user of any big RDF storage (extra > hardware). I simply don't see a reason, because literals are simply I am not arguing for each vendor to implement that. I am arguing for removing this arbitrary limitation from the RDF spec. Also marked as an issue since 2000: http://www.w3.org/2000/03/rdf-tracking/#rdfms-literalsubjects That aside, I don't see your point about extra hardware. There is, in my experience, no substantial difference between storing <#me> foaf:name "Ivan" and "Ivan" :name_of <#me>. > _not_enough_unique_ to interlink data. There are. Their value is their identity. They are *perfectly* unique. "cat" is uniquely identifying the string made of c, a and t. From your previous email, I suppose you're concerned about rounding for floats and doubles, is that it? If so, whatever you write as their rounded value is their identity (and we can't write "Pi"^^xsd:real afaik :) ). > > [ ] str:double_metaphone_word "Acton" ; str:double_metaphone "AKTN" . > and > [ ] str:soundex_word "Smith" ; str:soundex "S530" . > I agree this is another way to model it, and Jeremy suggested it as well. But it creates a level of indirection and, from a modeling point of view, does look very weird. If you were to extend that model to, say, "1" list:in (1 2 3), that would look very nasty... Best, y > are at least protected from collisions and allow more properties to be added in a safe way. > > > Best Regards, > > Ivan Mikhailov > OpenLink Software > http://virtuoso.openlinksw.com > > >
Received on Friday, 2 July 2010 09:16:13 UTC