|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||
See:
Description
| Interface Summary | |
|---|---|
| AnnotationStack | This interface represents a stack of annotations. |
| Class Summary | |
|---|---|
| Annotation | This class represents normal Spex annotations as described in the package description. |
| AnnotationFactory | Factory class for generating annotations. |
| AnnotationHashMap | This class represents a set of Annotation objects organized in a hashmap. |
| AnnotationMapping | This class represents a mapping from one annotation to another one. |
| AnnotationMappingStack | This class represents a stack of AnnotationMapping objects. |
| AnnotationStackImpl | Default implementation for the AnnotationStackinterface. |
| AnnotationStackImproved | Default implementation for the AnnotationStackinterface. |
| BitSetAnnotation | A BitSet implementation of the Annotation interface. |
| EmptyAnnotation | This implementation of the Annotation interface is considered to be an empty
annotation, so the isEmpty() method will always return true. |
| HeadAnnotation | HeadAnnotations are somelike different to normal Annotations. |
| IntervalAnnotation | An interval implementation of the Annotation interface. |
| SatisfiedAnnotation | This implementation of the Annotation interface is considered to be a satisfied annotation. |
This package contains implementations for Spex annotations. Spex annotations are
considered to annotate Spex
messages. There are basically two different kinds of annotations: the normal
annotations and the head annotations (which will be explained later).
The normal annotations can be in three different states, which is satisfied, empty and undetermined. Udetermined annotations are holding a finite set of so called condition numbers (which effectively are non-zero positive integers). You can think of undetermined annotations as annotations, which are satisfied if one of their conditions get satisfied. Empty annotations are unsatisfied and never can get satisfied during Spex processing.
During Spex processing some
transducers will decide what to do with an incoming message by examining its
annotation state (and the state of the topmost annotation on their stack, if they
have a stack). For example they may re-annotate a message with a new annotation,
or just forward it unchanged. Most of the transducers will keep track of incoming
message-annotations with an annotation-stack.
Sometimes annotations will have a scope, which is the scope begin transducer which created them. In fact, every undetermined annotation will always have a scope, because they are only created by scope begin transducers. There will only be one satisfied annotation, and that one will not been created by a scope begin transducer and will therefore not have a scope.
Some messages can get annotated with head annotations by the so called
head transducers. Head transducers are considered to be the last
location step transducers in a transducer network and have the function
to decide if a message is a Spex result, a possible Spex result, or not a Spex
result. This information will be stored in the head annotation of that
message. Head annotations are a set of normal annotations of different scopes.
The same normal annotation can be contained by a head annotation several times,
if each occurence of that normal annotation has a different scope. If the head
annotation of a message m contains the normal satisfied annotation, then that
message m is a Spex result. If the head annotation of a message m only contains
the normal empty annotation, then that message m is not a Spex result. If the
head annotation of a message m only contains normal annotations with undetermined state
then the result-state of that message m is undetermined too. In this case the
normal annotations contained by the head annotations will in some time during
processing be mapped to another normal annotations. This way, they can either be
mapped to the satisfied annotation, the empty annotation, or to other
undetermined annotations, which will perhaps change the result-state of the
message.
Copyright Notice
Code Authors: Fatih Coskun
Design Authors: Fatih Coskun, Dan Olteanu
This SPEX version is based on previous versions developped by Dan Olteanu
and on research articles that can be found at
http://www.pms.informatik.uni-muenchen.de/publikationen/
The material distributed here have been provided by the contributing authors
as a means to ensure timely dissemination of technical and scholarly work on
a noncommercial basis.
Copyright and all rights therein are maintained by the authors.
It is understood that all persons copying material distributed here will
adhere to the terms and constraints implied by the applicable copyrights.
The code distributed here may not be redistributed -- in particular may not
be electronically reposted -- without the explicit permission of the
copyright holders.
The material made available here is exclusively for private use. No part of
it may be distributed in classes or in publications, reproduced, stored in a
retrieval system, or published, in any form or by means electronic,
mechanical, photocopying, or otherwise, without prior written permission of
the authors and of the copyright holders.
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV PACKAGE
NEXT PACKAGE
FRAMES
NO FRAMES