Subject: Meta-Information

From: "Joel M. Halpern" <[email-masked]>
Date: Sat, 12 Feb 2005 09:42:12 -0500

Various parts of the model have implicit meta information.  For example, on 
any given attribute there is the question of whether it exists, and what 
permission (read, write, ...) the CE has on that attribute.
For structures, it would be helpful to be able to get the information about 
the structure as a whole and each field in it.

For arrays, in addition to the existence and read-write permission, it 
would be helpful to get the number of elements in the array, the array size 
limit, the lowest and highest used subscript, and the first unused subscript.

So far, the model has used a hodge-podge of mechanisms to address 
this.  Some of this is declared as attributes.  Some is declared as 
capabilites.  And some is not yet covered.

Thinking about this, and after some discussion a while back with some of my 
co-authors, and then adjusting for list discussion since, I think that 
there is an approach that makes sense.

We could define an operation, parallel to GET, that is GET-META.
This would return the meta-information structure about the element targeted 
by the PATH-DATA in the GET-META.  (An omitted path-data would get meta 
information about the LFB instance.)

Does this make sense?

If so, should the model document have the structure definition for the meta 
information about atomic types, structures, arrays, aliases, and derived types?

There are some interesting LFB level questions that follow from this.
Is the meta-information about the LFB instance just the information about 
which elements are supported, and their access permissions (the equivalent 
of the SupporedAttributes array in the FE Object?)  Or is it a structure 
defined along with the LFB definition to represent all the capability 
information for the class?  (Currently, capabilities are essentially 
specially declared read-onloy attributes in the class definition.)
Is there a way to get meta-information about an LFB Class rather than an 
instance?  (This would allow the CE to determine the writeable attributes 
of a class before actually creating an instance of this class, which seems 
convenient.)  We could reserve instance ID 0 of each class so as to all a 
target of CLASS:0 of a GET-META operation to reference the class level 
information.

Yours,
Joel M. Halpern