- From: Richard Newman <rnewman@twinql.com>
- Date: Fri, 29 Aug 2008 17:20:58 -0700
- To: "Richard H. McCullough" <rhm@pioneerca.com>
- Cc: "Semantic Web at W3C" <semantic-web@w3.org>
> The first several sentences of Section 2.1 are: > QUOTE > Before we can use a set of terms, we need a precise indication of > what specific vocabularies are being used. A standard initial > component of an ontology includes a set of XML namespace > declarations enclosed in an opening rdf:RDF tag. These provide a > means to unambiguously interpret identifiers and make the rest of > the ontology presentation much more readable. A typical OWL ontology > begins with a namespace declaration similar to the following. > UNQUOTE The "unambiguous interpretation" is to transform a brief, ambiguous identifier like 'type' into an unambiguous identifier (the full URI) through QName expansion. Namespace declarations are how you tell the XML parser how to expand the QNames it encounters. This is the whole "webby knowledge representation" part -- the use of unique identifiers, rather than the ambiguous terms used by human beings. No more arguing about whether a lemon is a fruit or a faulty car. No "fruit flies like a banana, time flies like an arrow". The use of QNames is the "much more readable" part, because RDF becomes very verbose without abbreviations. Linked Data does not lose any kind of identification, because the identification you think exists does not exist. For example, these three fragments of OWL mean exactly the same thing: <?xml version="1.0" ?> <rdf:RDF xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <owl:Class rdf:about="http://example.org/Foo" /> </rdf:RDF> <?xml version="1.0" encoding="utf-8"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="http://example.org/Foo"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/> </rdf:Description> </rdf:RDF> <?xml version="1.0" ?> <ns0:RDF xmlns:ns1="http://www.w3.org/2002/07/owl#" xmlns:ns0="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <ns1:Class rdf:about="http://example.org/Foo" /> </ns0:RDF> because they all represent the following triple: <http://example.org/Foo> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type > <http://www.w3.org/2002/07/owl#Class> . The second alternative doesn't include a namespace declaration for OWL. The third alternative offers different names for the same namespace declarations. The meaning is the same. Consequently, the namespace declaration is irrelevant; mere syntactic sugar. The N-Triples version doesn't even afford the opportunity to define namespaces, but it has the same meaning in RDF and OWL. > The namespaces identify the fundamental definitions that other terms > depend on. > If your linked data approach dereferences everything, you lose that > identification. > If you don't like the OWL approach, that's fine with me. You'll see from my examples above that the namespaces have nothing to do with identifying the fundamental definitions; the URIs of the resources do that job. In other words, <http://www.w3.org/2002/07/owl#Class> is the identifier for Class in OWL, regardless of how you syntactically encode it, or whether a namespace is defined which allows you to abbreviate it. Linked Data says "don't use stupid hacks (like trying to dereference syntax elements such as namespace URIs) to find descriptions of entities: dereference the entity URIs themselves". You seem to have latched on to the stupid hack. > In the RDF/OWL world, my definition of context is its identification > with an > XML namespace. You would do better by defining the context as the particular URL from which you fetched a graph -- which only sometimes would be a URL used for an XML namespace in a particular serialization of the graph. Another approach you could take would be to assign contexts to representations fetched by following owl:imports links; these unambiguously refer to other OWL ontologies. > By associating contexts and namespaces, I hope to show the folks on > the > Semantic Web list that namespaces are not necessarily mere syntactic > conveniences, that they can have a deeper meaning. Any deeper meaning you draw is unfounded. Do not mistake syntactic convenience for formality. I advise you to forget about RDF/XML. If it doesn't exist in N- Triples, you should be wary about including it in your mental model of RDF. RDF is just triples. OWL is built on RDF. The one benefit of the many syntaxes for RDF is that they provide ample opportunities to illustrate that RDF is not defined syntactically. Stop assigning meaning to syntax. It might be valid in mKR, but it's not correct to do so in RDF. I hope that clarifies things somewhat. -R
Received on Saturday, 30 August 2008 00:21:36 UTC