W3C home > Mailing lists > Public > www-rdf-comments@w3.org > October to December 2004

Re: W3C specification error

From: Andrea Proli <aprol@tin.it>
Date: Tue, 30 Nov 2004 16:59:38 +0100
Message-ID: <003a01c4d6f5$98deb400$0201a8c0@lycantro>
To: "Benja Fallenstein" <b.fallenstein@gmx.de>
Cc: "Pat Hayes" <phayes@ihmc.us>, "Dan Brickley" <danbri@w3.org>, <fmanola@acm.org>, <www-rdf-comments@w3.org>

Thank you very much! Although I currently don't have the solution to all
of my doubts, I think you put me in the right way to reach it...

However, I am realizing that this issue is a key for understanding both
the processing model and the real nature of RDF (particularly about
inferences/entailments), and it deserves a further explanation to be
put somewhere...

Now, in order to better comprehend the rationale, I try to summarize: please
tell me if I'm wrong: in RDF, you can't state that class A is NOT
a subclass of class B just because you can't find a "subClassOf" statement
explicitly declaring that Class A is a subclass of class B, right?

So, if I had the following fragment:

<foaf:Person rdf:ID="John">
...
</foaf:Person>

<foaf:Person rdf:ID="Mike">
...
</foaf:Person>

<foaf:Person rdf:ID="Anna">
...
</foaf:Person>

<rdf:Property rdf:ID="isMarriedWith">
...
</rdf:Property>

...

<!-- Statement 1-->
<rdf:Description rdf:about="...#Mike">
 <x:isMarriedWith resource="...#Anna"/>
</rdf:Description>

<!-- Statement 2-->
<rdf:Description rdf:about="...#Mike">
 <John resource="...#Anna"/>
</rdf:Description>

there wouldn't be a way to state that Statement 2 is non-sense,
due to the fact that nowhere is written that a foaf:Person is
not a subclass of rdf:Property... thus, we have to use
"rdfs:Resource" instead of "rdf:Property". If this is the
right way of thinking, you shed a lot of light on it.

However, let me ask you the very last question:
Since an "rdf:Literal" is also an "rdfs:Resource", we could
model (quote) a statement where the predicate is a literal,
and such a statement is not even expressible using RDF syntax!
If nobody can say what we are quoting, why should we allow that
quoting to exist? Thus, the "rdfs:range" of "rdfs:predicate"
should be non-literals, but non-literals don't have a class
in the RDF(S) specification. In order to supply it, a
"complementary class" (NOT being something) mechanism should
be added to the specification... but if we add this, then we
also could be able to infer that something used as a predicate
IS NOT an "rdf:Property", and then the range of "rdfs:predicate"
could be restricted to "rdf:Property"...

At any rate, thank you for your feedback, your help has been
invaluable for me to understand this subject!

Andrea

----- Original Message ----- 
From: "Benja Fallenstein" <b.fallenstein@gmx.de>
To: "Andrea Proli" <aprol@tin.it>
Cc: "Pat Hayes" <phayes@ihmc.us>; "Dan Brickley" <danbri@w3.org>; 
<fmanola@acm.org>; <www-rdf-comments@w3.org>
Sent: Tuesday, November 30, 2004 2:55 PM
Subject: Re: W3C specification error


> Hi Andrea,
>
> Andrea Proli wrote:
>> Clearly, using "rdfs:Resource" allows you to model illegal statements,
>> but why should this be desirable? Why should illegal statements
>> exist?
>
> Reification is used for quoting; i.e. so that if you publish the graph
>
>     x:a x:b x:c.
>     x:a x:d "e".
>
> then I can take that graph and reify each statement in it to say in my 
> graph, "Andrea said that..."
>
> I should be able to say this without claiming that anything of what you 
> said is *true*. Even if the statements in your graph are complete 
> nonsense, I should be able to quote them without saying they are true 
> (perhaps to point out that they are not true).
>
> If you say "x:a foaf:Person x:b," then if rdf:predicate had the domain 
> rdfs:Property, if I quoted you I would be claiming that foaf:Person is a 
> property. When quoting you I would first have to check that you're not 
> talking nonsense, because otherwise just by quoting you *I* might be 
> talking nonsense.
>
> ((NB. Unfortunately RDF doesn't completely avoid this; when reifying a 
> graph, I still claim that there exist resources that are identified by the 
> URIs and literals in the reified graph. For example, if I reify a graph 
> that contains the literal "All your base are belong to us"^^xsd:boolean I 
> will end up with a graph containing this literal, myself.))
>
>> As to my point of view, a parser should detect it and raise
>> an error whenever an illegal statement is made...
>
> The way RDF is defined, it's impossible for a computer to detect that a 
> statement is illegal. In fact, RDF is designed so that it's impossible to 
> state an inconsistency; if you stated that foaf:Person is a property, a 
> human can say "It is not!", but (using only RDF and not e.g. OWL) there is 
> no way of saying formally "this can't be true."
>
> Cheers,
> - Benja 
Received on Tuesday, 30 November 2004 16:00:58 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 5 February 2014 23:40:22 UTC