- From: Andrea Proli <aprol@tin.it>
- Date: Tue, 30 Nov 2004 16:59:38 +0100
- 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