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

On Thu, Jul 1, 2010 at 5:22 PM, Kingsley Idehen <kidehen@openlinksw.com> wrote:
> Henry Story 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.
>>
>
> It's a virtuoso function surfaced as a predicate.
> "magic predicate" was an initial moniker used at creation time.
> "bif:contains" doesn't exist in pure triple form etc..

Why couldn't it? For example, you may want to express exactly what
triple lead you to give a particular result, and within that scope you
may end up having to write: "Brickley" bif:contains "ckley" in RDF.

Forbidding literals as subjects makes this statement impossible to
express, however that's a very sensible thing you may want to express.

There are also lots of literal search examples that comes to mind:

"Acton" str:double_metaphone "AKTN" .
"Smith" str:soundex "S530" .
...

Best,
y

>
>> 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?
>>
>> 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,
>>
>> 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 .
>>
>
> DBMS wise, indexing is an issue which ultimately leads to data access
> performance problems etc.. Steve already covered that ditto Ivan in earlier
> comments, I believe.
>
> In Virtuoso an IRI is a native type with implications as per comment above.
>
>
> Kingsley
>>
>> Henry
>>
>>
>>
>>
>>>
>>> --
>>>
>>> Regards,
>>>
>>> Kingsley Idehen       President & CEO OpenLink Software     Web:
>>> http://www.openlinksw.com
>>> Weblog: http://www.openlinksw.com/blog/~kidehen
>>> Twitter/Identi.ca: kidehen
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
> --
>
> 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:33:31 UTC