- From: Pat Hayes <phayes@ihmc.us>
- Date: Thu, 1 Jul 2010 23:25:36 -0500
- To: Yves Raimond <yves.raimond@gmail.com>
- Cc: Henry Story <henry.story@gmail.com>, Kingsley Idehen <kidehen@openlinksw.com>, nathan@webr3.org, 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 Jul 1, 2010, at 11:18 AM, Yves Raimond wrote: > 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." Just to clarify, this is a purely syntactic restriction. Allowing literals in subject position would require **no change at all** to the RDF semantics. (The non-normative inference rules for RDF and RDFS and D-entailment given in the semantics document would need revision, but they would then be simplified.) Pat > >> >> 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 >>> >>> >>> >>> >>> >> >> > > ------------------------------------------------------------ IHMC (850)434 8903 or (650)494 3973 40 South Alcaniz St. (850)202 4416 office Pensacola (850)202 4440 fax FL 32502 (850)291 0667 mobile phayesAT-SIGNihmc.us http://www.ihmc.us/users/phayes
Received on Friday, 2 July 2010 04:27:33 UTC