- 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:22 UTC