Re: LANG: Re: scalability (VRML)

Mike Roberts (miker@nashua.progress.COM)
Thu, 16 Jun 1994 10:41:43 PDT

On Thu, 16 Jun 1994 01:55:39 +0000 (GMT) Brian Behlendorf wrote:

> Aha! Here's an interesting problem. At what point does the author's
> wish to have you see "his" refrigerator conflict with your desire not
> to have to download "his" refrigerator but view one of your own?
> Perhaps it's done this way - you enter a kitchen, and the kitchen
> scene downloaded to your computer really quickly because it's just a
> bunch of simple bounding boxes - a box here for a fridge, a box
> there for a stove, etc. Now, the browser you are using is smart,
> as was the author. The author added a semantic, hidden tag to the
> refrigerator object saying, essentially, "This is a REFRIDGERATOR -
> its code is at <URL>" Now, your browser happened to find in its
> local cache an object which was named "REFRIDGERATOR", so it gives
> you the option of loading the local version (stretched to fit in the
> right place) or fetching the "real" one. Now, if the author REALLY
> wanted you to see his fridge, he could call it "REFRIDGERATOR-NEW"
> or "REFRIDGERATOR-<AUTHOR>", and it wouldn't give you the choice of
> locading the local one. Even better, just like the "delay image
> loading" option in certain web browsers, you could say "load only
> local cache" and the browser, upon downloading the kitchen scene,
> would insert its local cache for REFRIDGERATOR and STOVE, but
> MICROWAVE and DISHWASHER would have to wait because there are no
> locally defined objects for them. A "load local cache, then
> remote objects" and a "always load remote objects" option would
> be great, too.

I like this scheme a lot. So in an object "reference" we'd have ..

* An object name
* A URL for the object (the object address)
* What is essentially an action specifier (here a flag). Force usage of the URL
addressed object, or allow usage of a local cached object. This may be
overridden by local defaults so that the distant object is always loaded, or
never loaded, or the local object is used until the distant object is loaded, or a
whole bunch of other local implementation dependent browser options.

What about modifications to other people's objects ?? I'd like to see the
reference to be parametized as well, I think, so I could reuse parametrically.
So that the object reference would look (something) like

#DEFINE Refrigerator AS vrml:\\\fidge.vrml
# This is my special pink spotted fridge

OBJECT Refrigerator-<AUTHOR> at: (123,435,687) sized: (232,234,33) color:
#You can reuse the local one if you like, but its gotta be pink, sized
and postioned like this

Excuse my syntax. It starts to look very like component reuse.