Uniqueness of tags?

Ralph Gauges ralph.gauges at eml.villa-bosch.de
Wed Aug 30 03:49:41 EST 2000


Thank you that you took the time to look into my problem.
You were wondering why this didn't look like natural acedb
style (and in fact isn't) and I will try to explain it in a
litle more detail (see below).

> 
> ?BaseClass2 UNIQUE PointsTo ?BaseClass1
>                    PointsTo ?Sub1BaseClass1
>                    PointsTo ?Sub2BaseClass1
> 
> is not legal, but
> 
> ?BaseClass2 Points_to UNIQUE Points_to_BaseClass1 ?BaseClass1
>                              Points_to_Sub1BaseClass1 ?Sub1BaseClass1
>                              ...
> 
> is, and probably does what you want.  

Yes, I thought of this as well, but this seems to be a litle
awkward to me. 

> 
> But I don't really understand your approach, which certainly does not
> look natural acedb style to me.

Yes you are right again. The best way certainly would be to
do the whole model in acedb from the start, but database
people have their modeling tools and those normaly do not
generate ACEDB models. But since we want other people to use
and test our model, we would like to distribute it as an
ACEDB model as well. Now I am faced with the problem to port
an object oriented data model to an ACEDB model that has no
notion of inheritance.
Just imagine, we would like to have the notion of a reaction
in the model, this reaction has e.g. substrates which are of
the type compound. Now compound is a baseclass and has lots
of subclasses like simple_molecule, peptide, dna, rna etc.
and those subclasses might have subclasses of their own. So
how would I define this reaction. The easiest would have
been, if ACEDB knew abou inheritance than I would just say:

?Reaction Substrate ?Compound

O.K., but since we all know, this does not work, so I
thought about using the Unique construct above which just
lists all subclasses:

?Reaction  Unique Substrate ?Compound
                  Substrate ?SimpleMolecule
                  Substrate ?.....

Now you suggest to do it like this:

?Reaction Substrate UNIQUE CompoundSubstrate ?Compound
                           SimpleMoleculeSubstrate
?SimpleMolecule
                           ...

Although this works, it adds another level of complexety
when you want to query a reaction. To bad, but since this
seems to be the only way to do it, I guess I wil have to do
it this way. But I hope, I could clearify why I tried to do
it the other way first.
How would one define ?Reaction the "ACEDB way"? I am still
facing the problem that a substrate can be a peptide, a dna,
a rna etc. How could this be solved besides using ID
numbers?

> 
> I suggest one of the following approaches:
> 
> - if the subclass only inherits from one base class, then incorporate
>   all of its model additions into the base class model as a branch
>   under some tag such as SubClass1.  Next make an acedb subclass of all
>   objects for which that tag is set.  As soon as objects contain data
>   on the branch they will become part of the subclass, whereas
>   objects for which there is no data in that branch will not be in the
>   subclass.
> 

I have not thought of this. That also might be an option as
well, I have to think it over.

Thank you very much for your help

Ralph








More information about the Acedb mailing list