eagle has two interpretations: as an instance of species and as a class that describes Harry. The problems arise because modeling languages are unable to support objects that can be interpreted as classes and instances.This kind of multiple interpretation occurs when a model consists of two or more universes of discourse, where e.g. in universe U1, an object S1 is an instance and in universe U2 the same object S1 is a class. We will say that in such cases object S1 spans U1 and U2, and that S1 is a spanning object.
Figure 10 illustrates the use of spanning objects in the aforementioned example domain. This representation specifies that in universe Ub, eagle is an individual and an instance of species, with all the properties of such instances. In universe Uh eagle is a class and Harry is an individual. The objects Harry and species exist in different universes of discourse, and thus have no relationship to each other, and I1 holds within each universe.
Many examples of spanning objects can be found in the domain of Computer Science. One common case is that of a language and its metalanguage [Carnap61]. A metalanguage is essentially a language whose instances are other languages. In Figure 9, for example, Ug denotes the universe of formal grammars. Ug contains an object cfg that describes the class of context-free grammars. One instance of this class, pascal, is the context-free grammar for the language Pascal. This object also exists in Up, the universe of programs, where it is viewed as a description of the syntax of pascal programs. An instance of that description is a pascal program. In this example, it is clear that pascal has two interpretations: as an instance of a context-free grammar in Ug, and as a syntactic description of a class of programs in Up.
Generated with CERN WebMaker