- From: Yves Raimond <yves.raimond@gmail.com>
- Date: Thu, 1 Jul 2010 17:18:29 +0100
- To: Henry Story <henry.story@gmail.com>
- Cc: Kingsley Idehen <kidehen@openlinksw.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 3:46 PM, Henry Story <henry.story@gmail.com> 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. > 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? +1 Almost all FILTER functions I know of could be done using predicates in the where clause (it would even look a bit more like SQL :) ). > > 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, It doesn't seem to be allowed in the RDF semantics: http://www.w3.org/TR/rdf-concepts/#section-Literals "A literal may be the object of an RDF statement, but not the subject or the predicate." > > 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 . > > Henry > > > >> -- >> >> 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:19:06 UTC