- From: Drew McDermott <drew.mcdermott@yale.edu>
- Date: Sun, 21 Apr 2002 18:49:38 -0400 (EDT)
- To: www-rdf-logic@w3.org
- CC: drager@bbn.com
[me] >>Is it supposed to be the case that just mentioning an ontology's >>namespace means that the file uses that ontology? >> [Sandro Hawke] > > The namespace declaration is just syntactic sugar (it doesn't appear > in the N-Triples generated, etc), but if we phrase your question > differently, the point remains important: > > Does using a term defined by some ontology O in some > RDF graph G mean that G is using O? > > I think a "yes" answer would be convenient but wrong in the long run. [Frank Manola] I think a "yes" answer is right, but needs to be qualified. ... We do need to think more about what being "based on an ontology" means. Indeed we do. I have had discussions with various people (notably Pat Hayes) about this topic, and have emerged with my own opinions intact; everyone else's pretty much survived as well. Anyway, the following strikes me as the only reasonable point of view: There is simply no way to import part of an ontology, as Sandro and Frank both seem to want to do. It's as if a Haskell program tried to import part of a module (or, for C++ fans, as if a C++ program tried to #include part of a set of declarations). Modules are all tangled up. The chances are negligible that you could grab a concept or two and pull it out without the whole ball of mucus coming with it. What you *can* do in Haskell (and in Lisp, more clumsily) is declare that you want to import only certain *names*. It's understood that when you use a name from another module, e.g, when you call a function defined in that module, it may well call many other subroutines defined there, but you don't want to know about them. The situation with ontologies seems exactly the same to me. Not only that, XML already provides us with a flexible namespace mechanism, so we don't need to reimplement that part. All we need to be able to do is to say: I want to import that ontology, subject to previously declared xlmns. The import declaration is not redundant, because XML is used for more low-level purposes than RDF/DAML. In another file in the SONAT library, example1.daml, we have (sorry for all the entities, but they're used in the xlmns statements): <!DOCTYPE uridef[ <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns"> <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema"> <!ENTITY daml "http://www.daml.org/2001/03/daml+oil"> <!ENTITY xsd "http://www.w3.org/2000/10/XMLSchema"> <!ENTITY enp "http://www.daml.org/experiment/ontology/beta/elements-ont"> <!ENTITY soci "http://www.daml.org/experiment/ontology/beta/social-elements-ont"> <!ENTITY poli "http://www.daml.org/experiment/ontology/beta/political-elements-ont"> <!ENTITY econ "http://www.daml.org/experiment/ontology/beta/economic-elements-ont"> <!ENTITY infr "http://www.daml.org/experiment/ontology/beta/infrastructure-elements-ont"> <!ENTITY info "http://www.daml.org/experiment/ontology/beta/information-elements-ont"> <!ENTITY mil "http://www.daml.org/experiment/ontology/beta/military-elements-ont"> <!ENTITY assess "http://www.daml.org/experiment/ontology/beta/assessment-ont"> <!ENTITY obj "http://www.daml.org/experiment/ontology/beta/objectives-ont"> <!ENTITY loc "http://www.daml.org/experiment/ontology/beta/location-ont"> <!ENTITY dt "http://www.daml.org/experiment/ontology/beta/ona.xsd"> <!ENTITY fips "http://www.daml.org/2001/09/countries/fips"> ]> <rdf:RDF xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs ="&rdfs;#" xmlns:daml ="&daml;#" xmlns:xsd ="&xsd;#" xmlns:enp ="http://www.daml.org/experiment/ontology/beta/elements-ont#" xmlns:soci= "http://www.daml.org/experiment/ontology/beta/social-elements-ont#" xmlns:poli= "http://www.daml.org/experiment/ontology/beta/political-elements-ont#" xmlns:econ= "http://www.daml.org/experiment/ontology/beta/economic-elements-ont#" xmlns:infr= "http://www.daml.org/experiment/ontology/beta/infrastructure-elements-ont#" xmlns:info= "http://www.daml.org/experiment/ontology/beta/information-elements-ont#" xmlns:mil ="http://www.daml.org/experiment/ontology/beta/military-elements-ont#" xmlns:assess ="&assess;#" xmlns:obj ="&obj;#" xmlns:loc ="&loc;#" > Now we can all see that all but the first 4 of these are clearly ontologies to import. But the first certainly is not; the second and fourth I'm not sure of (for fear of offending Ian Horrocks :); and the third, good old &daml;#, is the grandaddy of all ontologies. But how can a computer see all this? Should it just assume that any namespace that expands out to something ending in ".daml" somehow is an ontology? This strikes me as a silly tactic for avoiding an "imports" declaration. -- Drew McDermott
Received on Sunday, 21 April 2002 18:50:25 UTC