- From: Jon Hanna <jon@spin.ie>
- Date: Fri, 24 Jan 2003 12:05:07 -0000
- To: <www-rdf-interest@w3.org>
> > Compare with English. When I say "I am a human > > being", that statement isn't > > untrue because I didn't use the more accurate "I am > > a man" or "I am an > > Irishman" or "I am a married Irish Software > > Developer between the ages of 25 > > to 35 in full-time employment who is registered to > > vote and doesn't drive a > > car". > I know it's not incorrect, but it's useless, I don't > want to allow people to say useless information. When > you say you are a human being you are also saying you > are a man or a woman, that's the info I would like to > have. But can you say that I am a man without also saying that I am a human being? That I am a human being is entailed by your statement whether you consider it useful or not. Until you manage to say I am a man, without entailing the fact that I am a human being, I am going to consider your idea of a variety of class which can't be the object of rdf:type, but which has subclasses which can to be, a logical impossibility. I'm in axiom-spouting mood today, how about this one "Useless information is the key to interoperability." :) I'll justify it in a minute. I don't think the decision about what is or isn't useless information can or should be made at RDF level. The job of RDF is to give us the syntax to say things, the job of RDFS, DAML+OIL and/or OWL is to give us a vocabulary to use with that syntax, and information about how some pieces of that vocabulary relate to other pieces. Now there is nothing to stop RDF from saying useless things, no more than it would be possible to build a mechanism into the English language that would make tabloids stop writing :) And the approach we take to survive that is the same we take with tabloids. When the tabloids publish 25 pages about which celebrity is or isn't having sexual relations with which other celebrity intelligent people simply ignore it. When RDF contains statements that are of no use to an application intelligent applications simply ignore it. Similarly if you have a application which internally models "man" and "woman" as subclasses of "human being" with the "human being" class being abstract then any call to produce RDF describing the object would of course cause the RDF class of "man" or "woman" to be used. Now if this information is then used by an application compiling statistics about the rate of ovarian cancer all of the "man" classes are of no use. A class of "human being" is also of no use, because without knowing the gender I can only mess up the statistics. So this application will not use resources which are of type "man" or if it only knows it is of type "human being". Another application keeping track of how much holiday time an employee has taken would not care about "man" or "woman" classes, and work with the entailed statement that the resource in question is a "human being" (or at least one would hope that a holiday time application wouldn't care!). The ability of these three applications to work together is dependant on information that one considers useless, and the other vital. Now of course we don't want to flood our RDF streams with useless information, but that isn't actually a concern. In your application whatever is internally representing a resource of class "A" will never bother to produce the XML <C rdf:about="...">, because the internal representation of "C" would be abstract in OO terms. > > Classes in RDF are far more comparable to nouns in > > English than to classes > > in OO. > > > I don't totally agree. If you use RDF correctly you > can represent the same that in UML (I think I saw the > UML Vocabulary in RDF). Everything depends on the use > you want for your RDF data. UML doesn't prevent you from saying that an object is of an abstract class (albeit indirectly through inheritance), nor does OO. You are prevented from instantiating abstract types, but not from treating objects as abstract classes. There is nothing special about abstract classes except for the fact that you can't create a direct instance. Since you don't instantiate anything in RDF the distinction doesn't apply and all classes are abstract.
Received on Friday, 24 January 2003 07:05:17 UTC