- From: Yves Raimond <yves.raimond@gmail.com>
- Date: Thu, 1 Jul 2010 17:32:55 +0100
- To: Kingsley Idehen <kidehen@openlinksw.com>
- Cc: 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>
On Thu, Jul 1, 2010 at 5:22 PM, Kingsley Idehen <kidehen@openlinksw.com> wrote: > Henry Story wrote: >> >> On 1 Jul 2010, at 16:35, Kingsley Idehen wrote: >> >> >>> >>> Yves Raimond wrote: >>> >>>> >>>> Hello Kingsley! >>>> >>>> >>>> [snip] >>>> >>>> >>>>> >>>>> IMHO an emphatic NO. >>>>> >>>>> RDF is about constructing structured descriptions where "Subjects" have >>>>> Identifiers in the form of Name References (which may or many resolve >>>>> to >>>>> Structured Representations of Referents carried or borne by Descriptor >>>>> Docs/Resources). An "Identifier" != Literal. >>>>> >>>>> If you are in a situation where you can't or don't want to mint an HTTP >>>>> based Name, simply use a URN, it does the job. >>>>> >>>> >>>> It does look like you're already using literal subjects in OpenLink >>>> Virtuoso though: >>>> >>>> http://docs.openlinksw.com/virtuoso/rdfsparql.html >>>> >>>> SQL>SELECT * >>>> FROM <people> >>>> WHERE >>>> { >>>> ?s foaf:Name ?name . ?name bif:contains "'rich*'". >>>> } >>>> >>>> Best, >>>> y >>>> >>>> >>> >>> Were is the Literal Subject in the query above? >>> >>> bif:contains is a function/magic predicate scoped to Literal Objects. >>> >>> <people> != "people". >>> >>> What am I missing? >>> >> >> Why do you think it is magic? Such a relation makes complete sense. >> > > 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" . ... Best, y > >> Given that is is a relation between literals it can be tested without >> needing >> to look at the world. Just like an math:isgreaterThan relation ... >> >> In fact I wonder how much SPARQL could be simplified by thinking of things >> this >> way. Could one perhaps get rid of the FILTER( ) clause? >> >> In any case RDF Semantics does, I believe, allow literals in subject >> position. It is just that many many syntaxes >> don't allow that to be expressed, >> >> But there is nothing you can do to stop that happening semantically. A >> URI or bnode >> can just be names for strings. >> >> And as for it requiring a change to the infrastructure of your DB, it is >> not clear that >> it immediately does, since you can alwasy rewrite >> >> >> "father" containsLetters 6 . >> >> as >> [] owl:sameAs "father"; >> containsLetters 6 . >> > > DBMS wise, indexing is an issue which ultimately leads to data access > performance problems etc.. Steve already covered that ditto Ivan in earlier > comments, I believe. > > In Virtuoso an IRI is a native type with implications as per comment above. > > > Kingsley >> >> Henry >> >> >> >> >>> >>> -- >>> >>> Regards, >>> >>> Kingsley Idehen President & CEO OpenLink Software Web: >>> http://www.openlinksw.com >>> Weblog: http://www.openlinksw.com/blog/~kidehen >>> Twitter/Identi.ca: kidehen >>> >>> >>> >>> >>> >> >> >> > > > -- > > Regards, > > Kingsley Idehen President & CEO OpenLink Software Web: > http://www.openlinksw.com > Weblog: http://www.openlinksw.com/blog/~kidehen > Twitter/Identi.ca: kidehen > > > > >
Received on Thursday, 1 July 2010 16:33:30 UTC