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

Hello Ivan!

On Fri, Jul 2, 2010 at 5:50 AM, Ivan Mikhailov
<imikhailov@openlinksw.com> wrote:
> Hello Yves,
>
>> > 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" .
>
> Yes, SPARQL permits literals in subject position, and we use that for
> dirty hacks. That does not mean that raw data should permit the same.
> SPARQL (and especially our SPARQL/BI) uses many different things in
> subject position, e.g., variables (and expressions, up to subqueries)
> that's not an excuse to allow the same in raw data.

First: this is *not* a dirty hack.

"Brickley" bif:contains "ckley" is a perfectly valid thing to say.

>
> I don't even say about technical price of the extension for both
> developers (extra work) and each user of any big RDF storage (extra
> hardware). I simply don't see a reason, because literals are simply

I am not arguing for each vendor to implement that. I am arguing for
removing this arbitrary limitation from the RDF spec. Also marked as
an issue since 2000:
http://www.w3.org/2000/03/rdf-tracking/#rdfms-literalsubjects

That aside, I don't see your point about extra hardware. There is, in
my experience, no substantial difference between storing

<#me> foaf:name "Ivan" and "Ivan" :name_of <#me>.

> _not_enough_unique_ to interlink data.

There are. Their value is their identity. They are *perfectly* unique.
"cat" is uniquely identifying the string made of c, a and t. From your
previous email, I suppose you're concerned about rounding for floats
and doubles, is that it? If so, whatever you write as their rounded
value is their identity (and we can't write "Pi"^^xsd:real afaik :) ).

>
> [ ] str:double_metaphone_word "Acton" ; str:double_metaphone "AKTN" .
> and
> [ ] str:soundex_word "Smith" ; str:soundex "S530" .
>

I agree this is another way to model it, and Jeremy suggested it as
well. But it creates a level of indirection and, from a modeling point
of view, does look very weird. If you were to extend that model to,
say, "1" list:in (1 2 3), that would look very nasty...

Best,
y

> are at least protected from collisions and allow more properties to be added in a safe way.
>
>
> Best Regards,
>
> Ivan Mikhailov
> OpenLink Software
> http://virtuoso.openlinksw.com
>
>
>

Received on Friday, 2 July 2010 09:16:12 UTC