[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: sppi EXTENDS and AUGMENTS clause



Andreas,
You would need to use EXTENDS in this case, since your 
requirement is that, an instance of class A could be of 
a part of an instance of class B OR C,
ie B, C EXTENDS A.

You use AUGMENTS when you want to add attributes,
to a previously defined class(A), such that for every 
instance in A(the AUGMENTED class) you would have a 
corresponding instance in B and vice versae(1-1 mapping). 
In the EXTENDS relationship, an extended class(B) instance 
would have a corresponding instance in the Base class(A),
but the reverse doesnt hold true, since A may be EXTENDED
to form another derived class.

Regarding your other question,
when using EXTENDS, the index is controlled by the base 
class. So, you can install/update an extended PRC instance,
by sending instances of the extended PRC's with the
index of the base instance as shown,
< <base table entry OID>.X > < Encoding of base attributes >
< <Extended table entry OID>.X > < Encoding of derived attributes >
(X is an InstanceId )

Regarding your last question, The EXTENDS semantics do not
allow more than one row in the extension class to be associated
with a row in the base class. But This sort of grouping
semantics IS allowed by the TagId and TagInstance Textual 
Conventions, see section 8.11 in the SPPI. 

Ravi

-----Original Message-----
From: Andreas Polyrakis [mailto:apolyr@cs.toronto.edu]

Hello,

I am trying to define a small PIB, but I have some problems with the
EXTENDS and AUGMENTS clauses... 
Unfortunatelly my experience with SPPI and SMI are very limited...

Could someone please explain how these two clauses can be used?
Suppose that I have a table A with columns (attributes) "a1" and "a2".
What I want to do is to have two more tables, B and C, wirh attributres 
"b1,b2" and "c1,c2" respectively, so that every row in A will be 
assosiated with either a row in B or in C. In this case, do B,C EXTEND A 
or AUGMENT it? Also, since B,C have no index (hence no PRID, right?),
how can I install/update a row in B or C? 
Finally, can more than one rows in B be assosiated the same row in A?

I hope my questions were clear... 

Thanks in advance,
Andreas