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

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