OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

ws-calendar message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Inheritance and Validation


Proposed section for WS-Calendar to address numerous confusion issues.

 

Two key aspects of the WS-Calendar are inheritance and delayed validation. These aspects apply to core WS-Calendar elements as well as to XML payloads carried in the Artifact. The inheritance rules define how elemental values and parameters, specified by a parent are inherited by a child.

 

Each gluon is a parent to an interval or to another gluon. Parent relationships are specified using the well-known ICalendar element “related-to”.  Intervals in a sequence are siblings; there is no inheritance between siblings.

 

Only one interval in each sequence is linked to parent. Each interval in a sequence inherits from attributes from the parent of that single linked interval. The start time is unique in that it is inherited only by the linked interval; sibling intervals get their start times through the temporal relationships rather than through inheritance.

 

Inheritance does not override a value that is already specified. For example, if a parent duration is specified as 15 minutes, that value is inherited by the child. If the child already has a duration specified, say 30 minutes, then the inherited value does not override the local value. After inheritance, the duration of the child remains at 30 minutes.

Inheritance is transitive. If gluon A is parent to gluon B, and gluon B is parent to interval C, then a value specified in A is potentially inherited by C. A duration of 15 minutes specified in A is inherited by B. C can then inherit that value from B. At each inheritance, the override rules, as described in the previous paragraph, are applied. Again using inheritance of a durations as an example:

 

A(15m) è B() è C()

 

B inherits the duration from A, and C from B. After the inheritance is elaborated, this  results in C with a duration of 15 minutes. If instead, the intermediate B has a duration specified:

 

A(15m) è B(30m) è C()

 

The value in B blocks inheritance from A, C still inherits from B, and the result is that C has a duration of 30 minutes.

WS-Calendar assumes that any payloads included in the Artifact follow the same inheritance rules, and are serialized in an equivalent model.

 

These rules are applied iteratively for each element in a gluon, interval, and artifact. The values specified in interval and artifact are not known until inheritance is complete, i.e., fully serialized. The validity or conformance of any interval or any contract for a specific business process can only be determined after full serialization.

 

 

 

Questions outstanding: Elements and Parameters. I am tempted to distinguish between elements and parameters. I think it would be a useful rule that an Element and its parameters are inherited as a unit.  For example, I think that the temporal relationship (finishtostart) is an element and the gap (duration) is a parameter of that element. Recall that an omitted gap is an effective zero duration. If an element is a single element of inheritance, then (finishttostart) in the interval is not over-ridden by (finishtostart)(15 minutes).

 

This rule would give other specifications an easy / powerful way to guide inheritance even when a general-purpose ws-calendar elaborator is used to serialize all intervals.

 

tc

 


“It is difficult to get a man to understand something, when his salary depends upon his not understanding it” -- Upton Sinclair.


Toby Considine
TC9, Inc

OASIS Technical Advisory Board
TC Chair: oBIX & WS-Calendar

TC Editor: EMIX, EnergyInterop

U.S. National Inst. of Standards and Tech. Smart Grid Architecture Committee

  

Email: Toby.Considine@gmail.com
Phone: (919)619-2104

http://www.tcnine.com/
blog: www.NewDaedalus.com

 

 



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]