Making RDF/OWL A Useful Tool For Software Engineering

Here are some comments I wrote off list to one of the paper's authors (Holger).  He asked me to post them here for comment.  I am a newcomer to this community...  

--
  
I just read the best practices note (http://www.w3.org/2001/sw/BestPractices/SE/ODSD/).  It is a good introduction and provides a sensible motivation and conceptual framework for a software engineer to consider semantic web technology.  It stimulated some thoughts and comments (which follow).  Don't feel that I want you to answer all these questions - I just had fun putting ideas down in that way...
 
 *  Typo?  There is a bullet "Axioms can have multiple types and change their type as a result of classification."  Shouldn't this read "Individuals can..."?  (BTW - the only other use of the word axiom in the document is in the phrase "it is important to remember that OWL classes are sets of axioms".  If I really need to know what an axiom is to understand what a class is you better tell me!)  (On rereading this, I have a creeping sensation that ... axiom is knowledge talk for individual, instance, object, "description of a thing",...)
 
 *  The idea that an individual can be treated as a member of different classes dynamically at run-time is very similar to the interface-based programming model (e.g. www.kbs.uni-hannover.de/~steimann/published/JOT2005.pdf).  In COM, Objects support interfaces, not classes.  Classes are just used to construct objects.  RDF/OWL can also be thought as representing useful aspects or views on individuals.
 
 *  In explaining RDF/OWL to a software engineering person I think that it is important to avoid all philosophy and AI jargon. In my case, my interest in RDF/OWL comes from a desire to "describe instances" and to perform useful functions on the instance descriptions (show an instance description form, validate an instance description against a schema or ontology, determine if two instances are the same or similar, given a collect of instances find the set of instances that matches a set of predicates, etc.  The other meta-classes (class, property, etc.) are useful concepts to the extent that they actually help me do interesting things with instances.  The only reason programmers care about SQL and relational theory is because they want to "get records by value" and SQL does it pretty good.  They really don't care about the philosophy or theory.  So, it might be useful to start with the story with instances (real things that you want to work with) not classes (concepts).  (It is probably true that there are other applications that live in the world of concepts and never deal with concrete objects, but I would suggest that is a much smaller set of applications.)
 
 *  Is it true that in RDF/OWL, there is no such thing as an incorrect instance description (because the set of possible classes is open)?  But you can have an instance "which cannot be classified as a member of any class in the ontology"?  From a practical point of view, isn't that like saying that, according to Codd's theory, there is no such thing as a incorrect relational row, just relational rows that are not present in the data dictionary of a specific database?  One of the main reason that people want containers for information is because they want to ensure the quality and integrity of their data items.  Codd's theory is the basis of relational database engines, but it is not the practical definition for such systems.  Is something like this separation (functional/practical model vs. theoretical) necessary for RDF/OWL to expand its user base?
 
 *  What is the nature of an RDF/OWL engine?  The relational model is embedded in a RDBMS software engine and accessed through JDBC/ODBC via objects like connections, queries, and record sets.  The XML model is embedded in a XML engine (a DOM or a stream parser or a pull parser).  What is the corresponding encapsulation of RDF/OWL as an engine?  The objects used in the JDBC API are not the objects used internally in the implementation of the RDBMS engine.  (Nor are they the objects of Codd's theory.) Is there a similar separation for RDF/OWL engines?
 
 *  It would be nice to hear a little more about the benefits of representing information in a model which supports reasoning tools.  Two features are mentioned "automatic classification" and "consistency checking"  I would hope that any data structure I rely on in my application is capable of maintaining its own logical consistency!  What does automatic classification do for me, beyond helping me manage and understand the logic of my ontology?  Remember, for most people the ontology is simply a tool for doing work, it is not an end in itself.
 
Thanks again for the paper and your work in making this stuff useful to people like me!
 
   -Scott

Received on Thursday, 27 October 2005 04:53:37 UTC