[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] About OWL syntax
Hi Still trying to understand the mysteries and mental models behind the semantic web, I analyzed the OWL sample provided by W3C. It's a very good tutorial for who wants to decipher OWL or to see a real application of it. I don't know who did it but thanks for it (ref: http://www.w3.org/TR/owl-guide/food.rdf ) (ref: http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine ) Analysis: --------- OWL syntax seems to reflect the notion of a separation of properties and classes. For instance, a class is declared with a <owl:Class> class elements as in: <owl:Class rdf:ID="ConsumableThing" /> And properties in <owl:ObjectProperty> elements as in: <owl:ObjectProperty rdf:ID="madeFromFruit"> <rdfs:domain rdf:resource="#ConsumableThing" /> <rdfs:range rdf:resource="#Fruit" /> </owl:ObjectProperty> The relationship between the two elements is established with the <rdfs:domain> element and the constraints imposed on the property by the <rdfs:range> element. The class definition and the property definition could be located anywhere in the document and no constraints on placement are imposed by the specs. By simple examination of the class object it is not possible for somebody to deduce what are the properties of this object. However, by a simple examination of the property object it is possible to know what are the classes associated to this property. Comment about the syntax: ------------------------ It is, by analogy, equivalent to a previous pattern found in pre-70s programs and known under the moniker "goto effect" or "spaghetti code". This is probably, because, the format is not intended for reading nor it is intended for manual writing. The question then is: Why not having the properties declared inside a class element? Something like: <owl:Class rdf:ID="ConsumableThing"> <owl:ObjectProperty rdf:ID="madeFromFruit"> <rdfs:range rdf:resource="#Fruit" /> </owl:ObjectProperty> .... other property definition .... </owl:class> The previous notation would have the benefits of: a) helping people read an OWL specification. b) From the cognitive point of view, to keep, as much as possible, the information in the same locus. Hence preventing the "goto effect" or the strange feeling of facing "spaghetti code" c) help a parser to locate a class and get the pertinent information more easily or faster than when the information is spread throughout the document. d) Would make it easier to write an XSLT style sheet to render for our senses a class definition. e) other reasons I do not think for the moment.... Probably there are good reasons other than a first level mapping to the mathematical principles behind that (set theory, relation theory, lattice theory, etc...). Object oriented languages often share the same mathematical background but are also designed for readability and usability (and other reasons off course). I know a quick answer would be to say that it is not intended for human being. So why use a so bandwidth inefficient language as XML? After all, a main advantage to XML is that it could be read by human beings and therefore readability is an important factor doesn't it? Yes I know, for some, human beings are peripherals to systems :-) and that includes developers as well :-) Question to Semantic web gurus: --------------------------------- I guess I am missing something. Can the semantic web gurus provide an intelligent answer to that? Cheers Didier PH Martin.
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|