- From: Michael Kifer <kifer@cs.sunysb.edu>
- Date: Fri, 26 Sep 2008 23:48:20 -0400
- To: public-rif-wg@w3.org (RIF WG)
Even though a number of people said that they understood the issue, a good example, I think, would help. CSMA and others raised two issues: 1. How does one know the address of the external entity to which to send the external query? 2. Why frames if everything can be encoded with predicates? 1. First, even with predicates one cannot know the address of the external entity to which to send the request. For instance, consider External(http://a.b.c/d/e/f/g(1,?X)). Which address should one use? http://a.b.c/d/e/f/g? http://a.b.c/d/e/f? http://a.b.c/d/e? Or http://a.b.c/somethingelse? I claim that without a convention it is impossible to know. With a convention, however, the same applies to frames. I would say that in case of the frames the convention should be that it is the object (not the property) that determines the external entity (as usual in the object-oriented modeling). The rest of the convention should be the same as in the case of predicates. 2. Now to an example. Let's suppose that we have a system that all universities adopt in order to provide a query access to their statistical and other info. Let's suppose that they adopt a common ontology so they would use common terms like (where ac is a prefix for the ontology) ac:president ac:employee_number ac:budget ac:department etc. Let suny be the prefix for the State U of NY, uc for Univ of CA, etc. Each university might put out an object to represent itself and then one would be able to ask queries like (note the use of terms to simulate methods): // total # of employees in the EE dept + total UC budget External(uc:berkeley[ac:employee_number(uc:ee)->?Y ac:budget->?X]) // budget of CS dept + SBU President External(suny:stonybrook[ac:budget(suny:cs)->?X ac:president->?X]) Now try the same using predicates for comparison. First, you will notice that you would have to use a whole bunch of builtins AND two External(...) queries in each case. In general, one might need to use 3 or more externals. Second, you might not quite like how the model looks like when you use predicates. (This is, of course, subjective, but whatever one can say against the use of frames in External(...) can be also said against the use of frames in RIF in general and, in fact, against object-oriented languages as such.) --michael
Received on Saturday, 27 September 2008 03:48:58 UTC