[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[omelet-dev] Schema principles
|
Hi Philipp
I started reading your thesis a while ago, but I'm afraid I haven't
got much further than page 20 yet... It all looks sort of promosing.
Do you have a notation that can express the schema corrolaries of 'class A'
inherits from 'class B'?
I had a bit of think while wandering around the hills last week...
A schema/meta-model is just a set of constraints that
must not be violated by a schema instance, and which every part of
a schema instance must satisfy. The various
features of different schema languages are just shorthands for
particular parameterisations of a group of related constraints.
So if we establish the mapping from convenience constraints to
underlying constriants, we can transform directly from one
schema language to another provided the source schema instance
uses only underlying constraints that can be expressed in the target
schema language. Where a target language cannot express the
constraint directly, the transformation is either illegal, or
must be synthesised by some appropriate stylisation or weakening,
such as practicsed by MOF in XSD.
So it seems that many of the more complex concepts
should be mapped to simpler concepts, so possibly inheritance is
a combination of static definition flattening to create a standalone AwithB
and reference substitutability that allows AwithB and B to be used as B.
This is coincidentally? exactly what my FlattenedSchema in omelet.schema
does.
Does your PhD provide some formality for this?
Regards
Ed Willink