LANG: abstraction hooks in OOGL

burchard@geom.umn.edu
Tue, 21 Jun 94 21:20:51 -0500


justin@dsd.camb.inmet.com (Mark Waks) writes about OOGL:
>
> On the flip side, it lacks a number of the features we've
> talked about. It really has no means of abstractly
> identifying objects. (That is, there is no way of saying,
> "Put a box of Kleenex there"; you have to give a literal
> filename or URL.)

Take another look at the on-line specification -- OOGL supports
"handles", which are symbolic references. For example,

{ : kleenex }

is a valid geometry specification. Of course, nothing will show up
in the viewer until the symbol "kleenex" has been defined. Note that
OOGL is referentially transparent, so all existing references to
"kleenex" will be updated when such (re-)definition occurs.

The definition of symbols is normally done through an OOGL
declaration of the form

{ define kleenex {...} }

However, there is nothing preventing a browser from supporting
"built-in" symbols.

> It has no way of identifying non-graphical properties.
> We will need (in the long run) a way of at *least* attaching
> hooks to objects, so that when an action is performed on an
> object, we can pass that action on to a routine designed to
> deal with it.

My apologies; here the documentation is at fault! OOGL has a general
typed extension mechanism, called "COMMENT" objects. We will make
sure this is in the on-line specification before the comment period
begins.

For example, that's how we've been able to prototype a VRML system
without changing Geomview itself. We just plug in an extension
module which for example replaces the proposed link objects

{ > http://www/name.oogl }

with COMMENT objects of type "href":

{ COMMENT name.oogl href { http://www/xxx.oogl } }

> And God knows we need better documentation. (This isn't
> just a long-term issue -- we'll need a clearer language
> spec for our own use as we develop.)

I agree.

--------------------------------------------------------------------
Paul Burchard <burchard@geom.umn.edu>
``I'm still learning how to count backwards from infinity...''
--------------------------------------------------------------------