- A wide variety of application data structures can be conveniently represented.
- The represented application data structure is upgradeable.
- Comments can be manipulated along with application data.
|
||||||||
WaterkenTM DocModel2003-03-01This specification defines a document model. A "document model" is the definition of the parse tree that results from parsing an encoded representation of a document. [infoset] AbstractA document is an annotated symbolic tree. Each node in the tree is typed with a URI. Each branch in the tree is named with a restricted format string. An annotation string is attached to every branch and node. OverviewDesign goals
Tree structureThe document model has a tree structure. As shown in LISP, a simple recursive structure can be used to represent a wide variety of application data structures. LISP uses lists of lists to represent data structures. This document model uses a similar tree structure. The main difference is that elements in a list are referenced by position, whereas nodes in a tree can be referenced using a symbolic path. Symbolic linkingBranches in the tree structure are referenced with symbolic names. This allows new branches to be added to a node, and existing branches to be removed, without affecting the referencing of existing branches. This symbolic referencing can be used to support upgrade of the represented application data structure. PolymorphismThe document model supports polymorphism in the represented application data structure. Each node in the symbolic tree can be associated with a type. A URI is used to represent type. Two different instances of a symbolic tree may have different types of nodes located using the same symbolic path. AnnotationAnnotation of the symbolic tree is used to represent both application data and comments. This puts comments and application data on equal footing, providing a consistent interface for manipulating both. DescriptionGrammarThe full grammar for the document model is:
Document
A Node
A
A Branch
A
Every
A particular Schema
A
A child
The Name
A
A Annotation
An
An
In a leaf State automata
For each
----------------------------
| |
begin()-->start(Schema)-->annotate(Annotation)-->finish()-->end()
| |
-------assign(Name)<-------
start(Schema)
This document event signals the start of a new annotate(Annotation)
This document event signals an assign(Name)
This document event signals the start of a new finish()
This document event signals the end of a Footnotes[infoset] The term "document model" and the W3C's "infoset" term refer to similar concepts. |
||||||||
|
top
Copyright 2003 Waterken Inc. All rights reserved. |