external frames

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