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 13:55:54 UTC