Special-ness of root set: Impl. vs. data model

tautges at mcs.anl.gov tautges at mcs.anl.gov
Fri Aug 27 12:03:03 CDT 2010


I think all modifications should return error, and probably all parent/ 
child queries too.

- tim


On Aug 27, 2010, at 11:03 AM, Mark Beall <mbeall at simmetrix.com> wrote:

> It certainly seems that the root set is special in some ways. I  
> guess the question is, in which ways is it special?
>
> For example, calling iMesh_addEntToSet or iMesh_rmvEntFromSet on the  
> root set doesn't make sense and should probably be an error, right?
>
> So, clearly there are case where the root set is specified to behave  
> differently, but at the current time I doubt it's clear all the  
> cases that it should.
>
> mark
>
> On Aug 27, 2010, at 11:45 AM, Miller, Mark C. wrote:
>
>> Hi Folks,
>>
>> I am gaining some experience with the implementations that suggests  
>> that root set is
>> treated very differently than other sets. While I understand there  
>> are probably good
>> reasons from an implementation standpoint to do this, consider a  
>> very simple tool like
>> eyeMesh browser. What that tool basically does is traverse the set  
>> containment
>> hierarchy (the hierarchy defined by getEntSets() and then  
>> descending into each of those
>> sets). As eyeMesh traverses the hierarchy it gathers all the  
>> information it can regarding
>> each set; getNumTopo, getNumOfTopoType, isList, getNumPrnt,  
>> getNumChld, etc. eyeMesh
>> then presents this data in a textual oriented gui that allows you  
>> to browse what is there.
>>
>> It is coded using a simple recursion starting from the root set.  
>> Because of that, it queries
>> everything it ordinarily would, even on root set; isList,  
>> getNumPrnt for example. These calls
>> have shown to be problematic on a few implementations as no one  
>> expected to have to
>> implement them with the possibility that the given set might be the  
>> root set.
>>
>> In further investigating, I've learned that, for example,  
>> addPrntChld is not necessarily
>> expected to work with root set as well there might be other calls  
>> in iMesh that are
>> problematic to support on the root set.
>>
>> But, these are all impelementation issues and are not part of the  
>> data model. From the
>> point of view of the data model, the only thing that makes the root  
>> set 'special' is that
>> all other things are contained within it. It is effectively the  
>> 'universe' set. It cannot have
>> 'parents' or be 'contained in' another set.
>>
>> So, in my view, with my data model hat on and working only from the  
>> iMesh.h header
>> file (not from an implementation), I think that the root set ought  
>> to behave 'just like any
>> other set' and that there should be no implementation-driven  
>> restrictions upon its use
>> in the API other than those that can be derived directly from the  
>> data model. In particular,
>> implementations should be coded to operate 'reasonably' in all  
>> cases where an entity set
>> handle is required and caller passes root set for such. If the call  
>> does not make any sense
>> in the data model, then it is ok for the call to error out.  
>> However, if there is no legitimate
>> argument that the call does NOT make sense from the perspective of  
>> the data model
>> when 'entity set handle' is replaced with 'root set', then the call  
>> should return normally
>> and with reasonable results.
>>
>> If this is not consistent with others understanding of the data  
>> model and implementations,
>> please speak up loudly now so we can identify all the issues.
>>
>>
>> Mark
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/tstt-interface/attachments/20100827/fbf3de3b/attachment.htm>


More information about the tstt-interface mailing list