W3C home > Mailing lists > Public > public-lod@w3.org > July 2010

Re: Subjects as Literals, [was Re: The Ordered List Ontology]

From: Yves Raimond <yves.raimond@gmail.com>
Date: Thu, 1 Jul 2010 17:18:29 +0100
Message-ID: <AANLkTilqatJUXAXt5h4ypOgqNJJqXbRFA5szlKW5xzDq@mail.gmail.com>
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:05 UTC

This archive was generated by hypermail 2.3.1 : Sunday, 31 March 2013 14:24:28 UTC