- From: Ralph R. Swick <swick@w3.org>
- Date: Wed, 05 Jan 2000 19:42:16 -0500
- To: Stefan Decker <stefan@db.stanford.edu>
- Cc: www-rdf-interest@w3.org
At 12:04 PM 12/29/1999 -0800, Stefan Decker wrote: http://lists.w3.org/Archives/Public/www-rdf-interest/1999Dec/0147 > I would like to say: > a) hasChild : Domain: dog -> Range: dog > hasChild : Domain: human -> Range: human > > hasChild describes a "Role" which can have different ranges > for different domains. I think of this in the following way: - there is a relationship (a property) whose semantics are described roughly as "has a child". - this relationship can be specialized to apply to instances of dogs and to instances of humans. - when specialized to dogs, it is not exactly the same relationship as when specialized to humans even though these two relationships share many features. This is standard O-O stuff. Part of your complaint has to do with naming; in RDF all names have global scope. But as Jonas Liljegren properly reminds us in http://lists.w3.org/Archives/Public/www-rdf-interest/2000Jan/0014 the true name of an RDF property is a full URI. Just as in any O-O system -- it seems to permit you to reuse names across classes but the fully qualified name is actually constructed using additonal information such as the class hierarchy. While most O-O systems have a syntactic convience that allows, e.g., "this->" to be omitted, the fully qualified name for a class method or variable is always unambiguously defined. Such naming conveniences have a lot to do with the syntax in which expressions are written. XML does not (yet) have the sorts of name constructors that O-O systems have. XML Namespaces are the closest thing provided by XML -- and the RDF XML encoding uses them heavily. Putting the class qualification into the namespace URI is a simple transformation and precisely matches the usage in traditional O-O systems. In fact, a significant oversight I find in Harmelen & Fensel http://www.cs.vu.nl/~frankh/postscript/IJCAI99-III.html is the reference in 4.2 to DTDs as being "the closest thing that XML offers for ontological modelling". While this is strictly true of XML 1.0, most of us find XML 1.0 by itself uninteresting; we should be talking about XML 1.0 with Namespaces. And XML Namespaces are very much all about ontological precision. The hasChild example is a natural one for multiple inheritance. The dog.hasChild property is necessarily different from the human.hasChild property because the domains and ranges are different. However, the common features are easily abstracted in a third property, say animal.hasChild. The RDF Schema vocabulary gives us the tools to say explicitly what the relationship is between each of the *.hasChild properties and thus to allow inferencing in the way you desire. But the core question here has more to do with "saying anything about anything". Where traditional O-O systems make it easy to write short expressions without fully qualified names, they at the same time make it more difficult for persons who are not the class definer to add methods and variables and to write expressions using these additional resources that are just as convenient to use as the ones anticipated by the class designer. Indeed, they often go the opposite direction and allow class definitions to be sealed. What you see as a feature -- that class centric systems use the class to limit the scope of names by default -- I see as a detriment; if the semantics of some property in another ontology are precisely what I want to express, I want to be able to use that property directly and not have to fuss with creating a new schema that somehow imports that other definition and makes it available within my own class. (XML Schema may, btw, add such class-oriented features to XML, in which case it would be appropriate to investigate how to take advantage of them with RDF expressions). I want to avoid the situation in which the Semantic Web has an artificial separation between those classes and properties that were conceived by the original designer and classes and properties that are later added by others. I want the Semantic Web to be able to grow new links that are co-equal in every respect as we discover new knowledge about the world. We have been willing to dispense with some amount of syntactic convenience and require explicit expression of subClassOf and subPropertyOf relationships in order to accomplish this. Regarding Tim's comment about Harmelen & Fensel's suggestions on extending HTML META and CSS in (2.1), you also remarked in http://lists.w3.org/Archives/Public/www-rdf-interest/1999Dec/0115 > BTW: I can't see why the suggestions is "frightful".... One reason is that this effort to stuff new semantics into existing syntax ignores the practicality of Web deployment. If we were going to try to improve HTML META, it would at least be better to propose a new attribute and not reuse content= (this has been discussed elsewhere). One thing we learn from O-O systems is to be careful about the stability of interfaces and to be cautious about the impact of overloading. There are other issues with HTML META, however, including the lack of a way to specify multiple ontologies. Similar objections apply to the suggestions for squeezing more into the existing CSS syntax. I don't know whether any of this was what was in Tim's mind when he wrote that comment. -Ralph
Received on Wednesday, 5 January 2000 19:43:27 UTC