Antoine Zimmermann wrote:
Jeremy, et al.,


I think people are already showing the money but they do it 2 cents after 2 cents ;-) Here is my little 2 cent contribution.

To start with, I am on the side of the people in favour of allowing literals in the subject position. I've read the discussion and pondered the arguments on each side carefully, but I'm still convinced that it would ultimately be the better option to allow them. I understand the concern of those who would have to rework their architectures. Yet I don't believe that the cost exceeds the benefits for those who are starting to implement and for future implementations and future developments of the standards. As Sandro said, RIF is using triples with literals as subjects, as Robert Fuller said (in the LOD list), reasoners are internally inferring triples with literals in subject position, and other use cases (more or less convincing) have been proposed here. Why can't those inferences and facts be exposed and published in an RDF document?


Now I'd like to show some of the strange things that happen when you combine SPARQL with inference regimes, that are due to the inability to have literals (in the syntax) as subject.


Assume that you have the following data, harvested from the Web:

:www dc:creator "Tim Berners-Lee" .
:www dc:creator "Tim Berners-Lee"^^xsd:string .
:www dc:creator :timbl .
:timbl owl:sameAs "Tim Berners-Lee" .


Note that literals are commonly used with dc:creator so this example is fairly realistic.

Now, let us consider the following query:

SELECT ?x WHERE {
   ?x a rdfs:Resource .
}

under the RDFS-entailment regime, this would provide the following answer:
?x --> :timbl

Now, the following query:

SELECT ?y WHERE {
   ?y a rdfs:Literal .
}

would provide no answer (under RDFS-entailment) and:

SELECT ?z WHERE {
   ?z a xsd:string .
}

would provide no answer (under RDFS-entailment).

Now, imagine a SPARQL engine with an "RDFS+sameAs"-entailment regime. The three queries above would give the following results:

?x --> :timbl   // first query
?y --> :timbl   // second query (I can infer that :timbl is a rdfs:Literal)
and the last would give nothing.

Now consider the query:

SELECT ?t WHERE {
    ?u a rdfs:Literal .
    ?u owl:sameAs ?t .
}

It would give:

?t --> "Tim Berners-Lee"
?t --> :timbl

However, the query:

SELECT ?u WHERE {
    ?u a rdfs:Literal .
    ?u owl:sameAs ?t .
}

would give ?u -> :timbl .


This is very weird for me.


Something else that keeps coming up, a subset of owl always comes in to conversations, obviously owl:sameAs - there was a proposal from one Jim Hendler [1] at a RDF workshop thing to perhaps do something about moving these up a level to RDFS.

[1] http://www.w3.org/2009/12/rdf-ws/papers/ws31

Didn't seem to get much feedback or thoughts (afaik), but given the climate perhaps it's worth giving some strong consideration to as a community.

(Or just doing because it's a bloody good idea & would remove OWL from virtually every conversation we end up having).

ps: my only comment/addition to this was to add in Restriction's too

Best,

Nathan

forking again, sorry!

Reply via email to