XAL 110204

download XAL  110204

of 73

Transcript of XAL 110204

  • 8/7/2019 XAL 110204

    1/73

    XAL Extensible Application Language

    Prolegomena to any Future

    XML Based Language for Application Development

    (Preliminary Draft)

    2011

    3/27/11 Page 1 of 73

  • 8/7/2019 XAL 110204

    2/73

    Preface

    In its current state, this document is a collection of evolving concepts related to applicationdevelopment in terms of concepts, capabilities, modeling and integration.

    Some sections are meant to be fairly coherent, others are sketches, many require much further

    development. What is attempted, at this point, is an at least partially coherent vision of future

    directions.

    Also much of what is presented here is from a programming development perspective, so thatsome XML concepts may be misrepresented.

    First impressions, of what is here, might be that there is little that is fundamentally new and

    that hasnt been done before, or, on the other hand, that this is radical departure from current

    directions. In a sense, both observations are valid, in that this is an attempt at a different

    approach to a systematic development of fundamental concepts.This note attempts to integrate a broad vision, some fundamental concepts and some basic

    capabilities in a relatively short essay.

    3/27/11 Page 2 of 73

  • 8/7/2019 XAL 110204

    3/73

    Table of Contents

    1. INTRODUCTION.................................................................................................................. 7

    OUTLINE

    ....................................................................................................................................72. MOTIVATION....................................................................................................................... 8

    EVOLUTION................................................................................................................................8

    3. BUSINESS CASE.................................................................................................................. 9

    ALTERNATIVE...........................................................................................................................10

    4. APPLICATION DEVELOPMENT SUPPORT CAPABILITIES................................10

    SUPPORT STRUCTURE................................................................................................................10DATA......................................................................................................................................11

    DECLARATIVE SPECIFICATIONS...................................................................................................12

    Types ...............................................................................................................................12Levels.................................................................................................................................13

    MODELS .................................................................................................................................14

    MODULARITY............................................................................................................................15Characteristics..................................................................................................................15

    Categorization...................................................................................................................16Levels ................................................................................................................................16

    Combining modules .........................................................................................................16

    Polymorphism and Twins.................................................................................................17

    Aspect Oriented Note.........................................................................................................18

    INTEGRATIONAND COMPATIBILITY...............................................................................................19

    Validation..........................................................................................................................19Security..............................................................................................................................20Adaptation.........................................................................................................................20

    Extensibility.......................................................................................................................21

    Compatibility.....................................................................................................................21Error Handling..................................................................................................................22

    SPECIFICATION LANGUAGE ........................................................................................................22Declarative Specifications ...............................................................................................23Syntax................................................................................................................................23

    Templates...........................................................................................................................24

    Reflection...........................................................................................................................24

    Specifications as Data.......................................................................................................24Tools..................................................................................................................................25

    5. FUNDAMENTAL CONSTRUCTS................................................................................... 25

    TERMINOLOGY..........................................................................................................................25DATAAND DATA VALUES..........................................................................................................26

    Characteristics..................................................................................................................26

    Categories..........................................................................................................................27

    3/27/11 Page 3 of 73

  • 8/7/2019 XAL 110204

    4/73

    Parameters........................................................................................................................28

    REFERENCES.............................................................................................................................28Names ...............................................................................................................................29

    Tags...................................................................................................................................30

    Links .................................................................................................................................30

    Paths..................................................................................................................................30DATA OPERATIONS....................................................................................................................31

    Expressions........................................................................................................................31Structure Expressions........................................................................................................32

    Transforms.........................................................................................................................33

    Name and Navigation Expressions....................................................................................33

    NAMESPACES .....................................................................................34Characteristics .................................................................................................................35

    Master Namespace............................................................................................................35

    URI Uniqueness.................................................................................................................36Issues................................................................................................................................36

    MODULES

    .................................................................................................................................36Interfaces...........................................................................................................................37Separation..........................................................................................................................37

    Cooperation.......................................................................................................................37

    Constraints and Validation................................................................................................38Schema...............................................................................................................................38

    DATA TYPES............................................................................................................................39Representations.................................................................................................................39Properties..........................................................................................................................39

    Metadata............................................................................................................................39

    Behavior............................................................................................................................40

    Capabilities........................................................................................................................40Instances............................................................................................................................40

    Type Declaration...............................................................................................................40

    Instance Specification........................................................................................................42

    PACKAGES ...............................................................................................................................43DYNAMICS...............................................................................................................................45

    Entities...............................................................................................................................45Resources...........................................................................................................................46

    Security..............................................................................................................................47

    Processes...........................................................................................................................47

    GENERIC MODELS....................................................................................................................47Data Structure Models .....................................................................................................47

    Presentation Models..........................................................................................................48

    Communication Models.....................................................................................................48Control Models..................................................................................................................49

    IMPLEMENTATION......................................................................................................................49

    Syntax ...............................................................................................................................49Statements..........................................................................................................................50

    Templates...........................................................................................................................50

    3/27/11 Page 4 of 73

  • 8/7/2019 XAL 110204

    5/73

    Tools..................................................................................................................................50Agents................................................................................................................................51

    6. MODEL CLASSIFICATION.............................................................................................. 51

    GENERIC MODEL CONSTRUCTS....................................................................................................52

    Components and Component Categories..........................................................................52COMPONENT TYPES ..................................................................................................................52Conceptual ........................................................................................................................52

    Abstract..............................................................................................................................53

    Concrete............................................................................................................................53Applicability......................................................................................................................53

    COMPONENT CATEGORIES...........................................................................................................53Property Component.........................................................................................................54

    Function Component.........................................................................................................54Object Component............................................................................................................54

    Frameworks.......................................................................................................................54

    APPLICATION SPECIFICATION MODELS.........................................................................................54Data Component Model...................................................................................................54

    Presentation Component Model.......................................................................................55

    SOME EXAMPLES.......................................................................................................................56Control Component Model................................................................................................56

    7. XAL MODELS...................................................................................................................... 57

    DATA STRUCTURE MODELS........................................................................................................57Data Structures..................................................................................................................57

    Data Operations ...............................................................................................................57

    PHYSICAL DATA STRUCTURES ....................................................................................................57XML Documents................................................................................................................58

    Presentation Containers....................................................................................................58Storage Containers............................................................................................................58

    Streams..............................................................................................................................59

    Interfaces ..........................................................................................................................60

    LOGICAL DATA.........................................................................................................................60Structures...........................................................................................................................60

    Operations.........................................................................................................................60

    PRESENTATION MODELS.............................................................................................................60Containers ........................................................................................................................61

    Layout ...............................................................................................................................61

    Characteristics..................................................................................................................61

    Data...................................................................................................................................613D......................................................................................................................................61

    Dynamics ..........................................................................................................................61Extended Accessors and Properties.................................................................................61

    Data Rendering.................................................................................................................62

    COMMUNICATION MODELS..........................................................................................................62

    Resources...........................................................................................................................63

    3/27/11 Page 5 of 73

  • 8/7/2019 XAL 110204

    6/73

    CONTROL MODELS....................................................................................................................63

    SUMMARY................................................................................................................................64

    8. APPLICATION DEVELOPMENT STRUCTURING ...................................................64

    SPECIFICATION SETS..................................................................................................................64

    OPEN

    / CLOSED

    APPLICATION

    SPECIFICATIONS

    ..............................................................................669. STANDARDS DEVELOPMENT STRUCTURING......................................................... 66

    10. IMPLEMENTATION NOTES.......................................................................................... 69

    PLATFORM INTEGRATION............................................................................................................69

    SPECIFICATION PROCESSING........................................................................................................70Prolog ...............................................................................................................................70

    Processing.........................................................................................................................70

    PARSING..................................................................................................................................71Nested Iterators.................................................................................................................71

    INFOSETS..................................................................................................................................72

    PERFORMANCE IMPLICATIONS......................................................................................................73

    3/27/11 Page 6 of 73

  • 8/7/2019 XAL 110204

    7/73

    1. Introduction

    XAL is a proposed declarative specification language for application development.

    XAL builds on the foundations of XML and related standards. It aims to integrate and

    generalize the extensive specification capabilities that have already evolved.

    Where the X in XML allows extension in terms of new vocabulary, XAL generalizes this to

    support extension in terms of new component behavior and capabilities.

    XAL aims to provide a powerful base for application architecture, design and implementation.

    XAL provides a basis or integration of standards integration, and integration of enterprise and

    domain frameworks and models.

    XAL supports declarative specification of data models and imperative action specifications to

    support the dynamics of the models. Models can range from conceptual to concrete.

    XAL, itself, supports a fundamental set of generic capability models for data and for

    processing. This includes models for presentation and interactions, for data structure andstorage, for communications and for control. This essentially supports the Model-View-

    Controller paradigm.

    Integration of application specific and generic data handling models provides the basis forcomprehensive specification of adaptable frameworks.

    All this is supported by a model driven application development and execution environment

    which is flexible, modular and adaptable to a variety of uses and users. This environment serves

    as a platform for integration of data, of applications and of Web resources in general.

    This document provides a somewhat informal description of concepts and approaches for thedevelopment of such a capability.

    Outline

    This document deals with these topics from several perspectives:

    Rationale and objectives, largely in the context of XML development and evolution

    Business case considerations

    Fundamental capabilities for application development

    Language constructs that enable these constructs

    Relationship of standards, models and abstraction.

    Basic XAL Models

    presentation and interaction, structure and store, communication, control

    Validation of the approach occurs from several viewpoints.

    Approaches for structures applications

    Systematic development of related future standards

    3/27/11 Page 7 of 73

  • 8/7/2019 XAL 110204

    8/73

    Implementation and Web integration

    2. Motivation

    XML was designed as a document markup language that is a subset and significant

    simplification of SGML. This has proven extremely useful for its original purpose of a markuplanguage for data presentation and then for data exchange. But, XML has also proved useful for

    developing extended capabilities as a specification language for a variety of capabilities. The

    intent is to focus on these extended capabilities as a basis for developing significant parts ofapplications largely in a declarative specification, rather than a procedural, language.

    The view here is based on three premises:

    There are extraordinarily flexible and powerful capabilities available in XML and

    related standards.

    In their applicability these are often difficult to understand and exploit.

    There is an incredible opportunity now to simplify, structure, systematize and integrate

    these capabilities.

    The intent is to provide a fundamentally new paradigm for application development. The

    approach is to abstract the basic concepts found in a variety of current XML standards, and then

    generalize and build up from these, with the goals of simplicity and consistency, and without

    losing sight of compatibility.

    In simplest terms, the goal is a comprehensive declarative specification language and

    environment as a basis for application development.

    Evolution

    The approach here is not so much to invent new capabilities but more, through simplification

    and unification, to exploit what has already been developed over the last decade.

    This approach focuses on abstracting the basic concepts found in a variety of current XMLstandards, and then generalizing and build up from there, with the goals of simplicity and

    consistency and with considerations of compatibility.

    In fact, it may even be useful to re-brand XML as an Extensible Modeling Language. As

    an aside, modeling approaches need to be consistent with supporting MOF capabilities.

    XML in its current state deals primarily with UTF encoded data. However its underlyingconcepts and structure are sufficient to allow generalization to any type of data that can be parsed

    and extracted. More importantly, it is possible to provide consistent specifications for

    presentation, structure, format, representation, interactions and communication of this data.XML standards support a broad spectrum of basic capabilities and these capabilities continue

    to evolve. However, these capabilities have evolved in uncoordinated, inconsistent and

    sometimes conflicting ways. For instance, the fundamentals of many XML based standards

    share many common features, mechanisms and capabilities that are not specific to theirparticular intent.

    3/27/11 Page 8 of 73

  • 8/7/2019 XAL 110204

    9/73

    In effect the approach, outlined here, provides a view towards coordinating, integrating and

    simplifying base capabilities that can be found in XML itself, and in XML Schema, XML

    Namespaces, XML Base, WSDL, XML Information Set, XInclude, XPath, XLink, XPointer,XQuery, XHTML, XSLT, XForms, XFrames, CSS, XBRL, XProc, SCXML, X-FO, SVG,

    RDF, XHTML, HTML, OPEN OFFICE, SMIL and elsewhere, with the objective of developing

    a single coherent system specification framework. Other non-W3C standards, such as UML andCWM, provide specification capabilities that can also be incorporated for data and process

    modeling.

    Secondly, these XML capabilities are not inherently dependant on the syntax of XML so that

    other syntax approaches are possible. Alternative syntax can still provide for mapping to XMLwhere needed. Alternative syntax can not only provide clarity and conciseness of specification,

    but also, at a higher level, consistent approaches to modularization and packaging.

    The ability to specify data and process at a high level, independently of particular syntax, is

    basic to supporting compatibility, integration at a variety of levels, and full exploitation ofexisting and new Web resources.

    As an aside, the ability to specify behavior for components and comprehensive constraint rulescan allow some standards development to take place without additional language support.

    Evolution can occur within the language and with no changes required of agents other thanexecutable libraries for component implementation.

    3. Business Case

    XML allows extension to new vocabularies. XAL adds to this by allowing extension to new

    behavior.

    XAL development will be of interest to:

    Standards bodies as a basis for systematic integration and extension of existingstandards that are becoming increasingly specialized, complex and inconsistent.

    Support vendors who provide browsers, tools and other capabilities to implement these

    standards.

    Application developers who can exploit the extensive new capabilities.

    Application users who will benefit from this.

    The focus here is on comprehensive support for the application developer. This focus iscentral, but the focus is also based on the belief that it provides the best opportunity for a

    significant advance of present capabilities.

    Such an advance appears readily possible, based largely on a comprehensive approach tosimplifying and systematizing what is already in XML and related standards. Ultimately thisshould be more attractive than current efforts, by both standards committees and vendors, to

    wrestle with incremental changes.

    This focus on application development support indirectly provides considerable support for

    other stakeholders. This includes a consistent basis for future standards, opportunity for vendorsto provide greatly enhanced offerings, and ultimately extended capabilities for end users.

    3/27/11 Page 9 of 73

  • 8/7/2019 XAL 110204

    10/73

    Alternative

    Prospects for a significant alternative to the proposed evolution to achieve a considerable

    advance in XML based capabilities seem limited, based on:

    the current pace of XML standards development and implementation

    disparate focus and lack of coordination in pursuing separate but related directions

    complexities of ever narrower specialization

    Rather than adding new features and limited approaches to simplification, the objective here is

    to suggest a reasonably complete and consistent approach that exploits fundamental specification

    and modeling power inherent in the XML. It attempts to isolate a series of fundamental conceptsthat are separate and orthogonal to each other, in order to avoid much of the current approach of

    building concepts upon overlapping concepts. By analogy, it systematically provides new roots,

    instead of continually extending and intertwining the branches of a thicket.

    Clearly, this is a significant effort, but it also can lead to considerable simplification and

    enhancement . As a new effort, it largely capitalizes on existing capabilities developed over thelast decade and, with care, can be made compatible with existing uses of these capabilities. As a

    simplification and enhancement, it enhances clarity of understanding, support for applicationdevelopment and expanded foundations for end user capabilities.

    From the viewpoint of future XML development, this can serve as a basis for systematic

    extension of future standards.

    4. Application Development Support Capabilities

    The intent here is to provide a fundamental set of facilities and capabilities that will have a

    profound influence on the application development paradigm. Application support exists in the

    context of support for exploitation of Web resources.This can occur through a comprehensive declarative specification language that greatly

    simplifies and reduces the amount of code and effort for development.

    Fundamental application development requirements include:

    modularity

    integration of data and processing modules at many levels

    adaptation of specifications to different environments, uses and users.

    language support.

    Fundamental to this are concepts of clarity and structure in statements, modules, models andframeworks to insure intellectual comprehension and control of complexity. Secondarily are

    considerations for capabilities, usability, reliability, validation, adaptation, security andperformance.

    Support Structure

    Support can be built on a hierarchy of specification and processing capabilities for

    3/27/11 Page 10 of 73

  • 8/7/2019 XAL 110204

    11/73

    web resources that provide data and processing capabilities

    implemented and used by applications

    structured with frameworks

    based on generic and application specific models

    with modular components

    populated with application and system objects

    built on basic types

    supported by declarative specifications for definitions and processing

    in development and execution environments

    with concerns for adaptation, validation, security, integration, tool sets and

    compatibility.

    The approach is based on examining interactions at all of the above levels.

    Data

    Data exists and can be supported with meta-attributes for

    Identification

    Data identification can be through names, selection, path expressions, and queries based on

    types, values, tags, metadata, context and structural relations.

    Names can identify single values, structures, or selected elements within a structure.

    Type

    Data types declare possible values, properties, behavior and constraints. As such they hiderepresentation and allow various format transformations.

    Structure

    Data structures have physical implementations, but can be addressed in terms of a defined

    set of logical structures, such as tuple, list, array, hierarchy and network.

    Representation

    Data representations can be hidden in type specifications and accessed as properties. In

    addition, multiple representations can be defined for a data type or value.

    Specifications can be provided for representations with underlying machine models forprimitive data types.

    Translations among different representations can be implicit within base language

    capabilities or explicit with transform specifications.

    Capability

    Data can be used and processed in different ways. A data set can inherit from a generic

    capability which processes the data in a particular way.

    3/27/11 Page 11 of 73

  • 8/7/2019 XAL 110204

    12/73

    Often a capability is associated with and requires a particular representation.

    Format

    Data formats and format transformations can be specified with patterns.

    Container

    Scanners and interface protocols can be used to access data stored in various environments.

    The notion of a container with addressable regions is useful. Data can be dropped into thecontainer, or onto a token for one, and automatically transformed.

    Location

    Data location and access protocols are supported through basic Web services.

    Value

    Actual values, such as discounted price can be a function of context parameters.

    The corollary here is that all Web data is XAL data and subject to XAL processing.

    Web Data can be cataloged and accessed in a growing variety of ways, such as, Web archives,

    generic search engines, discipline codifications (medicine, legal), ontologies, the Dataverse(Harvard) initiative for research data sets, WATSON (IBM), GIS data (Google, et.al.), genome

    databases, Wikipedia, online access to libraries, etc.

    Declarative Specifications

    Declarative specifications define entities in terms of their characteristics, relationships and

    interactions. Imperative specifications invoke dynamic processing. In both cases these arespecifications of what is to be done rather than how it is to be done.

    Specifications provide for clarity in reading, comprehension and review. Specifications can be

    structured to provide flexibility for adaptation and evolution. Structuring applications around

    declarative and imperative statements leads to a considerable reduction of code over proceduralspecifications.

    A comprehensive approach to supporting application specifications is based on considerations

    of different types and at different levels.

    Types

    Specification define modular units that are separately comprehensible and that work easilytogether.

    Basic specifications are for statics and dynamics:

    Statics

    Data values in terms of identification, types structure, representation, capabilities,

    format, containers and location.

    Specifications for data values in terms of identification, types structure,

    representation, capability, format, containers and location.

    These functions support model specifications that are again:

    3/27/11 Page 12 of 73

  • 8/7/2019 XAL 110204

    13/73

    Static

    Components for structure and representation.

    Dynamic

    Components for communication and control.

    Specifications provide a syntax for expressions based on values of specification parametersand instance data. Parameterization allows for adaptation to a variety of environments, uses and

    users..

    Levels

    XAL promotes integration of data and processing structures at different system levels:

    Standards definition

    Data processing and handling can be largely supported by generic capabilities for datastructure, presentation, communication and control which can be developed as standard

    conceptual models.

    For example, HTML defines a tabular data representation component with specification

    parameters for a presentation model.

    Standards implementation

    Vendor platforms can support generic realization of these concepts through realization ofprimitive components and the ability to translate the parameters of a specified model

    component into a physical realization.

    For instance, a vendor agent can render basic constructs of lines, areas and characters into

    hardware realizations and then map a table specification into these constructs.

    A platform can integrate processing of model components from different standards, such asHTML and Open Office at several levels:

    Different component specifications can be backwards compatible.

    Different component specifications can be translated to a common standard.

    Different component specifications can be translated into compatible structures,for example SVG and HTML.

    Different component specifications can be translated into differing structures,

    which can be separately mapped to common primitives.

    Application data

    Application data can be defined as objects with external properties and behavior, andinternal structure and representation. For non-generic data types properties and behavior

    can be implemented in execution libraries.

    Application capabilities

    3/27/11 Page 13 of 73

  • 8/7/2019 XAL 110204

    14/73

    Application data types can be defined with multiple views that inherit from generic

    capabilities to support capabilities for data structuring, presentation, communication and

    control.

    For instance, table data might have a data structure, a presentation, a communicationstream, and control facilities to allow user interaction with its content.

    Application framework

    A complete application can be specified with a framework defined through the integration

    of objects and capabilities. Events and actions support the interaction the various data andprocessing views as the ribbing for framework.

    For example, user interactions with the table data presentation can trigger updates to a data

    base.

    Frameworks may be nested. They may be federated across communication lines or theymay be independent.

    Applications

    Frameworks are scalable and composable. This means that simple application capabilities

    can be integrated into more complex applications. Similarly multiple applications can be

    integrated.

    Parameterization

    Parameterization of components allows frameworks, models and components to be

    integrated with different environments, uses and users.

    Packages

    Data types

    Data instances

    Processing environment

    Web

    Communication facilities support interaction and integration of application frameworkswith Web data and processing resources in general.

    Models

    Inherent in most applications are models views of real or imagined worlds. These models can

    be largely expressed in terms of components with data and operations on data.

    In addition to application and domain specific models, an application is supported by generic

    system models for data structures and storage, for interactive presentation, for communications,and for dynamic interactions among all of these.

    Model driven development can be greatly enhanced by a declarative specifications for data and

    operations and data. This provides a framework which can be extended with lower level

    procedural scripts where needed.

    3/27/11 Page 14 of 73

  • 8/7/2019 XAL 110204

    15/73

    XAL defines basic language facilities for declarative model specifications. These facilities are

    then used to define standard components for the generic XAL models. XAL models are in fact

    meta-models that can be specialized to define application specific models.

    Models can be considered in two categories

    Generic Capability ModelsCapability models are generic models based on generalizations for various capabilities

    common to basic structuring and processing concepts.

    At a system level, these include presentation, structure, communication and control models,which are provided with XAL as a basis for application frameworks. At a domain level,

    there can be more specific models for analysis and processing, which are still applicable to

    many types of data.

    HTML, Open Office, SVG, etc. illustrate the power of the use of declarative specificationsto develop models for interactive user data presentation, interaction and manipulation.

    These standards suggest the power of specification models for generic approaches to data

    and data structure components and to support of basic operations to view, search, verifyand manipulate their content.

    Functional Application Models

    In addition, the same capabilities to define and support generic models can be used bydevelopers to build application specific models.

    These models support a complete and specific functional capability that can be expressed in

    terms of the above generic capability models.

    Functional models can be built for particular algorithms. Functional models may also bedomain specific and can be defined for enterprises, industries and other organizational

    entities, as well as for other specialized domains.

    Modularity

    Modularity needs to be dealt with by the standard in a fundamental way.

    Modularity supports separate but related specifications, at various scales, of system

    components that work easily together.

    For significant applications, intellectual comprehension of the whole, or even a significant part,of the application is difficult, even for the original developer. Complexity can be reduced

    towards simplicity based on relatively small modular units that support readily comprehended

    units of functionality, and that interact with each other in a variety of ways. The components

    should be small enough to be readily understood, written, reviewed and potentially reused.Modularity needs to support multiple orthogonal views of orthogonal components.

    Characteristics

    Modules can be named, nested, referenced, owned, dynamically linked, specialized through

    inheritance, imported, copied, merged and transformed.

    Modules provide interfaces for access and operation, and for error conditions and responses.

    3/27/11 Page 15 of 73

  • 8/7/2019 XAL 110204

    16/73

    Modules can be for type and object specifications, action interfaces and implementations, data

    structures and data stores, and packages of these specifications.

    As with any software development, there is an emphasis on a hierarchy of specification and

    functional units, each of which expresses or implements a single concept or capability andexpresses or implements it well.

    Categorization

    Modularity occurs with various perspectives and needs to be integrated:

    Related standards specifications

    Language structure

    Modules, including specifications for:

    Types

    Packages

    Actions

    Data Structures

    Models, including

    Basic capability models and components

    Application models and model components

    Application framework structures

    Development and execution environment

    Levels

    Modules exist at multiple levels of generality and specialization. These can be generallycharacterized as:

    Conceptual

    At this level a module defines a general concept independent of particular data types or

    values that the module might be used with.

    Abstract

    Abstract modules differ in that they also specify particular data types.

    Implementation

    Implementation provide specific data values and actions.

    Realization

    At this level, modules are instantiated in contexts where they can be processed.

    Combining modules

    Modules can be combined by inheritance and inclusion.

    3/27/11 Page 16 of 73

  • 8/7/2019 XAL 110204

    17/73

    Inheritance of modules can be :

    Implicit physical inheritance, whereby a nested module inherits from the

    hierarchy above it.

    Explicit or specified inheritance, whereby a module directly extends or restricts a

    higher level module. Explicit inheritance may or may not allow polymorphic substitution.

    Inheritance allows extension, overriding or restrictions. Inheritance can allow substitution

    (polymorphism) where the derived type is compatible with the base type.

    Inclusion of modules can be by:

    Composition, whereby other modules are part of the declaration of the module.

    Composition may be direct, or by reference, where the module is the owner of theincluded model.

    Import, where by modules are brought into the module.This two approaches differ in that:

    With inheritance, a new module is created, with the inheriting module as part of a

    higher level model.

    With inclusion, a module is just declared to include other modules.

    An interpreter implementation makes it possible for a module to:

    explicitly inherit from a module of higher level capabilities.

    import new properties and behavior.

    Polymorphism and Twins

    Polymorphism allows data of specialized types to be viewed as instances of more general

    types.

    Explicit inheritance can modify a type by:

    Extension

    Extension allows properties and behavior to be added.

    Restriction

    Restrictions can limits the contents that can be used together or place constraints on the

    values of its contents or on their relations to each other.Polymorphism applies to explicit inheritance, which does not impose changes on the parent

    with respect to either its properties or its behavior, with respect to internal state. By definition,

    this does not apply to physical inheritance or to restrictions.

    Extension can be use for a variety of purposes:

    Implementation details can be added to add specificity at various levels from

    conceptual, to abstract, to concrete.

    3/27/11 Page 17 of 73

  • 8/7/2019 XAL 110204

    18/73

    A module can be specify a subtype of a larger category.

    A module may acquire a generic capability and thus be usable as a specific instance of

    that capability.

    Restriction generally does not allow the restricted module to substitute for its parent.

    However the resulting modules may be twins, where restrictions are not placed on a commonparent module. Twins look a lot like each other, but they are not the same and are not valid for

    substitution. Twin specifications involve primarily constraints. For instance, a circle is like an

    ellipse but, while it shares a lot, it does not have identical behavior. Either, however, can besubstituted in a context that requires a shape, specified by a quadratic.

    Aspect Oriented Note

    One perspective for application development is provided by what is known as Aspect Oriented

    Software Design (AOSD) and it is fundamental to achieving modularity.

    The focus for AOSD is on specifications that intersect other specifications, and how such

    specifications should be integrated (weaving). The issue here is separation of concerns, wherethose concerns intersect each other.

    That is for intellectual comprehension of a specification it is necessary to have:

    a well defined and modular class, property and behavior ordominantdecomposition

    multiple well defined modular decompositions ofaspects that define classes, properties

    and behavior common to a crosscutof many objects

    a clear declaration of relationships of multiple aspects to each other and to common

    objects.

    A comprehensive specification language for applications, of necessity, has considerable

    overlap in related concerns for data types and instances, data structure, data representation andcapability, data presentation and interaction, storage, communication, environment, ownership,

    user requirements, etc., there is considerable areas for such overlap.

    Approaches here include:

    Generic models deal with common data from multiple viewpoints.

    Inheritance of capabilities that allows an object to be a subject of various classes ofprocessing.

    Commonality in handling of properties (attributes) specific to a particular data type as

    well as generic properties that can apply to whole categories of data types (e.g. presentation

    attributes or events). Associating tags with data specifications and instances to define cut-points and then

    assigning properties and processing (advice) to data with common tags, or, more generally,

    to data which satisfy common selection criteria (as in style sheets).

    Component presentation of receptor points at which to add capabilities.

    3/27/11 Page 18 of 73

  • 8/7/2019 XAL 110204

    19/73

    Parameterization of specifications and data instances so that they can be adapted to

    multiple uses in multiple parts of a specification.

    Applying these capabilities both statically to specifications and dynamically to datainstances.

    Capabilities can be inherited by an object to allow the object to take multiple forms as seenfrom different perspectives. This provides a powerful facility for weaving aspects across

    specifications. An example of the use of an inherited capability might involve:

    An actual data table consisting of an array of tuples.

    Extension of the data table with specifications for column definitions for the tupleelements.

    A generic table presentation capability.

    Extension of the table presentation capability with specifications such as borders,

    backgrounds and fonts.

    The table presentation capability pulls properties from the data specification to obtain atable title, column headings and column types.

    The capability then maps data table values to presentation table cells.

    The table presentation capability itself can be further specialized dynamically with

    additional properties:

    column properties could specify filtering and ordering

    row properties could specify adding summation rows for specified groups.

    Spread sheet capabilities can be added.

    Capabilities for statistical and financial analysis, and constraint modeling can be added.

    Additional capabilities can be added to the table specification to provide, for instance, a

    relational database view, a serialization in a message format, other presentation views, or aspread sheet view.

    Integration and Compatibility

    Integration provides structural ribbing to combine the concepts and facilities for

    modularization, as described above, in order to provide effective capabilities at various stages of

    development.

    An XAL Integration Platform builds on this capability to provide integration of data, messages,

    processing, facilities, operations, and ultimately of users through dynamic and queuedcollaboration.

    Integration consists in combining data, specifications and resources in their various forms and

    instantiations.

    Validation

    Computing is error prone. .

    3/27/11 Page 19 of 73

  • 8/7/2019 XAL 110204

    20/73

    Validation rules are most often specified as part of module type declarations. However they

    can also be specified in other packages, even with, or associated with, actual data content files

    themselves. Here facilities for specifying validation rules and constraints on all data valuesentering and leaving is needed.

    Security

    There needs to be a systematic approach to allow models and policies to be introduced for

    authentication, verification, validity and integrity constraints, access controls, encryption and

    logging capabilities at all levels of interface.

    Adaptation

    Often as series of applications are developed to be deployed in a variety of computer, system,

    communication, security and user environments, all of which require specifications. Even, for a

    single presentation element, there can be dozens of parameters in its specification.

    Comprehensive support for structuring parameters, parameter sets, parameter driven templates,and modules can greatly ease the adaptation of a specification base to a variety of environments,

    uses and users.Parameters can be derived from and can interact with the environment, with specifications,

    with application data and with application functions.

    Adaptation of a specification to its environment and use can be driven by various factors,including:

    hardware platform

    interaction devices

    operating system

    browser or agent external interface devices and protocols

    resources availability

    resource access and communication protocols

    data environments

    presentation environment for particular elements, e.g. size and special values

    enterprise policies and constraints

    application policies, such as verification, logging and reporting

    user role and security constraints

    individual user preferences

    test environments

    etc.

    3/27/11 Page 20 of 73

  • 8/7/2019 XAL 110204

    21/73

    Adaptation is complicated by these many dimensions, but also in that it is pervasive within the

    specification.

    Specifications can be parameterized at a variety of levels:

    Globally, through common packages that apply to components that inherit from them.

    Such parameters can be extensive and can often exist in hierarchies, where a singleparameter invokes a package of related parameters, e.g. a style.

    Locally, through extensions of component declarations.

    Parameter values can be invoked through configuration files and often modified dynamically.

    Extensibility

    XAL provides frameworks for structuring:

    Standards and Standards models

    Industry and Domain Models

    Applications and sets of related applications.

    Ideally much of this can evolve and be extended in many directions without impact to

    processing agents.

    Extension can be based on:

    Added vocabulary, as with XML.

    Implementation of properties and behavior for defined entities, either directly withlanguage facilities or through execution libraries with procedural code.

    Ability to express semantic processing and constraints through expressions for rules

    generation.With this, XAL itself, becomes extensible in that not only new data types but new capabilities

    can be added without any additional support from the agent.

    Agent extension, without impact to core facilities, can occur through systematic developmentof modular support for:

    Data interfaces to a variety of standard containers, representations, capabilities and

    formats.

    Rendering of base presentation and interaction components in new environments.

    Exploitation of various communication protocols, formats and external interfaces.

    Execution in different processing and operating system environments.

    Rich tool support for integration with non-XAL languages and processing capabilities.

    Compatibility

    A corollary to integration is compatibility with a wide variety of capabilities.

    3/27/11 Page 21 of 73

  • 8/7/2019 XAL 110204

    22/73

    One approach here is simply to translate existing specifications into new and extended

    capabilities. Given that new fundamental support is more capable and flexible, this may be

    possible in many cases. However, this may not be desirable, where complexities in existingcapabilities ought not to be propagated.

    A considerable amount of flexibility can be provided with specifications for the agent at the

    module level for semantics and syntax.

    Semantics

    A semantic specification identifies what the agent is to expect in terms of a predefined setof extended infoset objects for the contained items.

    To the extent that that these infosets are objects, with processing for them supported in

    accessible executable libraries, explicit requirements for browser support, can be

    minimized

    Syntax

    A syntax specification identifies a parser that can produce the above infosets.

    This can be useful in encoding a variety of formats for data files and messages.

    Error Handling

    Some uses of the language are highly ad hoc, such as data searching and analysis, Here

    flexible handling of anomalies in the application specification or execution need to be tolerated.

    Other uses, such as finance, need the strict verification to be built into the application.

    Both of these goals can be met for different applications by providing for flexible errorhandling capabilities in the specification. This flexibility needs to exist consistently starting at

    the lowest levels of the language capabilities and then at all levels of the modular structure built

    upon them.

    Specification Language

    The XAL specification language needs to support several capabilities. In particular, it needsto:

    Be declarative, with interfaces to procedural extension where necessary.

    Support common formats as targets for processed specifications, but with flexibility in

    the syntax for expressing the syntax and semantic constraints.

    Support templates as parameterized macro statements with substitution, selection anditeration capabilities.

    Support reflection, whereby specification attributes can be interrogated at execution

    time.

    Provide development and execution support for accessing and processing specifications

    as structured data.

    Enable this capability in environments for extended tool support.

    3/27/11 Page 22 of 73

  • 8/7/2019 XAL 110204

    23/73

    Declarative Specifications

    The intent here is a primarily declarative specification language which differs from a

    procedural language in that it defines what is to be produced rather than how to do it. This is

    supplemented with imperative statements that specify actions for what is to be done rather thanthe procedure for doing it.

    To the extent that this escape from procedural language can be achieved, there is a

    considerable increase in clarity and reduction in code, ease of review and test, flexibility for

    maintenance and growth, and patterns for reuse.

    Models provide the basis for this approach. Models define a structure that is to produced.

    These structures can be defined and populated with data through declarations. Models can be

    dynamic in that their components are objects with properties that can be declared and modified,

    and with behavior, that can be invoked with action specifications..

    Models can then be used in a framework in which procedural code is used at lower levels for

    some action implementations. Procedural code may often be needed, for instance, in low level

    data access, transformations and verification. Also, model components are objects that can

    require procedural code to implement property access and basic behaviors.

    Models for generic capabilities for structure, presentation, communication and control are

    directly supported by XAL. In addition, applications can develop domain specific models.

    There is a gradation here in the distinction between declaration and procedure.

    At the highest level are simple declarations of data types and values, and actions toapply to the data.

    Somewhat more complex are expressions that can contain selection and iterationoperators, query expressions, and regular expressions for text manipulation.

    At a lower level are control models, such as is a state machine model, where thedeveloper specifies actions to be performed in response to particular stimuli underparticular conditions.

    At an even lower level is a work flow model which specifies interactions and resulting

    actions.

    In an extreme case, the work flow is that of a stream of computer instructions and the

    model is basically that of an assembly language.

    Syntax

    Specifications need to generate a compatible structures for interpretative processing models,but otherwise can allow a variety of syntax structures appropriate to different uses.

    A variety of tradeoffs can be taken to simplify syntax for various uses:

    Simplicity and sparseness of basic constructs, with corresponding complexity of user

    constructs e.g. mathematical set notation.

    Simplicity in user constructs with corresponding multiplicity of basic constructs; e.g.COBOL, PL/I

    3/27/11 Page 23 of 73

  • 8/7/2019 XAL 110204

    24/73

    Simplicity in terms of conciseness versus verboseness.

    Intuitive for beginners (e.g. BASIC) versus formal for experts (e.g. Lisp).

    Uses depend on context. For instance, if the purpose of a specification is to only specify data

    content, then a much simpler language is needed than that which is required for markup or for

    specifying comprehensive data validation rules. Fundamentally data exists in multiple formats,that need to be parsed, but the differences are not of the values specified but those of syntax

    used.

    Thus XAL is not just a single language, but is capable of supporting a range of sub-languagesand dialects that all have compatible processing targets. In particular, XML syntax can be

    processed by XAL agents.

    Also, interactive tools can support specification development that is not limited to linear text.

    In addition, a preprocessing language and syntax is available for parameterized templates, that

    can greatly reduce redundancy and enhance clarity.

    Templates

    Specifications are typically extensive and highly repetitive. This suggests a macro or

    preprocessing capability, which can be provided with parameterized templates, often in tabular

    structures.

    Templates also provide a high level capability to define reusable and adaptable syntaxcomponents at all levels. For instance, a generic data structure can be defined in terms of

    parameters for the data types to be supplied for the elements of the structure.

    Reflection

    Since XAL is a declarative language processed by an interpreter it is capable of reflection, i.e.

    the ability of constructs to report their types and specifications. This allows the specifications

    themselves to be manipulated directly by tools and in execution environments.

    This requires that specification information is carried over to extended infosets.

    Specifications as Data

    Specifications themselves are data, similar to that of the applications they specify, with similar

    requirements for data access, communication, presentation and control.

    Also, detailed specifications can be quite extensive. Significant economy of expression can beachieved by aggregating such details in list, table, tree and network structures, instead of in linear

    text.

    These structures can be represented graphically and manipulated through interactive

    environments from both development and execution environments. In particular, this allowsdynamic adaptation and extension of the application.

    This dynamic adaptation and extension can be significant for development and test of

    specifications. It also allows direct tailoring, possibly by an end user, of an application to

    specific needs and environments.

    More ambitiously, end users can modify and expand their applications to address newcapabilities. In the limit, a developer or end user could start with a blank canvas, a palette of tool

    3/27/11 Page 24 of 73

  • 8/7/2019 XAL 110204

    25/73

    bars, and a library of models and model components, including links to data resources. New

    models and model components can be constructed from template skeletons, with wizards to

    prompt for and explain parameter options.

    Tools

    Many XML documents are not, and probably cannot be, usefully generated, read or reviewedby humans, mainly due to repetition and somewhat due to organization. For these applications,

    tools are effective, largely because they are used to provide an alternative syntax, structure and

    data views.

    While tools greatly simplify much of the development, by their proliferation they introduce

    additional complications.

    More importantly, there is a problem with tools that provide excellent support for some

    language facilities, but ignore or poorly support other capabilities. The alternative is a tool setthat is integrated into the development and execution environment.

    XAL provides capabilities for generic capabilities to manipulate, organize and view common

    data from various perspectives. In that specification themselves are data, that can generally bestructured around tables, hierarchies and graphs. Such a generic capability can be the basis for acomprehensive tool set, largely built with interactive presentation foundations..

    5. Fundamental Constructs

    This outline for an XML specification language derives from basic principles and core

    components. The approach is based broadly on a look at application requirements and a

    generalization of concepts already in XML. The effort is meant to be comprehensive in order tointegrate and simplify the numerous technologies needed by the application developer to exploit

    XML capabilities.

    A complete specification language can be built around concepts for:

    Data and data values

    Modules

    Type definitions and constraints

    Dynamics

    Generic Models

    Implementation capabilities

    The following outlines particular concepts as foci for standardization.

    Terminology

    XAL concepts are based on and are similar to XML, but where they differ it is clearer to use

    separate terminology.

    XML documents here are XAL files or actually specification streams which can bedocuments, files or other repositories that support iteration over tokens.

    3/27/11 Page 25 of 73

  • 8/7/2019 XAL 110204

    26/73

    XML elements are XAL objects with properties and behavior. The distinction in XML

    between attributes and contained elements does not appear useful for other than text markup,

    and so attributes and elements are not distinguished in object content. However, content may bedeclared as attributes for XML compatibility.

    Properties define attributes and contained elements. Properties are values of data that can be

    accessed and assigned. Properties are of two categories

    Specific

    Specific properties define characteristics of a particular object type.

    Generic

    Generic properties specify capabilities generally applicable to a many object types, such aspresentation properties.

    Behavior is specified as interfaces that can be implemented with action specifications or

    scripts.

    The XML concept of infoset is carried over as a designation for the results of parsing andspecification, although it is meant to imply greater interpretive capabilities here.

    The XML concept of a Namespace is redefined, although the same word is used to refer to a

    set of names required to be unique.

    Data and Data Values

    Characteristics

    Data exists and can be supported with attributes of identification, metadata, value, properties,

    behavior, constraints structure, representation, capability, format, containers and location.

    Identification

    Identification can be specified through names, structural position, selection, path

    expressions, and queries based on types, values, tags, metadata, context and structural

    relations.

    Type

    Data types declare possible values, properties, behavior and constraints. As such they canhide representation and allow various format transformations.

    Structure

    Structures can be generically specified or explicitly built from application reference values.

    Data structure can be declared and processed in generic terms for null, single, tuple, list orarray, tree or hierarchy, graph or network.

    Representation

    Common data can be represented in various ways, and transformed and translated among

    these representations.

    3/27/11 Page 26 of 73

  • 8/7/2019 XAL 110204

    27/73

    These representations can support various capabilities for analysis and processing that can

    be provided by generic models.

    Format

    Data formats and format transformations can be specified with patterns.

    Containers

    Data containers can be accessed with scanners and interface protocols which extract datafrom specification and storage environments.

    Values

    Data value access can be directly or through functions and expressions for defined

    interfaces.

    In some cases, transformations can be applied, as in discounts or units of measure.

    Location

    External data location and access protocols are supported through basic Web services.This can be enhanced by support for various levels of alternate protocols.

    The corollary here is that all Web data is XAL data and subject to XAL processing.

    Specifications for data items can be in terms of some combination of name, type and value,

    depending on context.

    Categories

    Declarations define data as:

    Instance data, which are values from the problem domain.

    Specification data itself which describes instance data and its handling.

    And of course for tools and such that operate on specifications, the specifications are

    also instance data.

    These categories of data have some common characteristics:

    They can be modules.

    They have structure.

    They can be referenced.

    They often have both lexical and machine representations

    They can have presentation and interaction capabilities

    Transforms and other operations are available..

    Thus, similar capabilities can be used to specify and process both instance data and

    specification, including development of tool sets.

    3/27/11 Page 27 of 73

  • 8/7/2019 XAL 110204

    28/73

    Parameters

    Parameters are data values that are declared in specifications.

    Parameters can be used to modify or add to specifications or to data instances. Parameter data

    values can be derived from specifications, data instances or both. This allows a specification to

    adapt dynamically to its environment and the data values present.Parameters can be used to select, imbed or refer to components that they represent, possibly

    with transformations.

    Parameters can be type safe; that is, they can be specified with types both when declared and

    when referenced to ensure consistency of use.

    Parameter values can be transformed, referenced, included, inherited, defaulted or overridden.

    Adaptation parameters provide for tailoring of model components at all levels for

    environment, users and usage constraints including access security.

    Parameter values can be referenced syntactically, for instance, with an & prefix and

    terminated with a whitespace.Parameter values exist in a specification scopes and can be overridden. Scope hierarchy

    includes:

    Environment variables

    Command line and invocation parameters

    Configuration files

    Specification file prolog parameters

    Nested physical values

    Module parameters

    Explicitly inherited values

    Nested data structures

    Interactive user specified values.

    Parameters can be used to:

    Access values and properties.

    Substitute values and text in specifications.

    Evaluate expressions. Conditionally insert, remove or modify entities in specifications and data.

    Expressions for selection and iteration can be applied to templates and other expressions.

    References

    References provide a mechanism by which specifications and data values can used, referenced,

    inherited, copied, merged and transformed, overridden and modified in other packages.

    3/27/11 Page 28 of 73

  • 8/7/2019 XAL 110204

    29/73

    References are data values that have a reference type and also a referenced type for their

    potential targets. References typically have a role name.

    Explicit References may be:

    Names

    Reference data types

    Name and path expressions

    Queries

    Derived references can be based on indices, keys and selection criteria over a namespace. In

    particular, tags are useful properties to allow reference to a set of disparate elements that have

    something in common. As with other generic properties, tags can be created and assigneddynamically.

    The hierarchical structure of a specification establishes implicit references to ancestors,

    siblings and descendents. Explicit references within specifications create data networks. Path

    expressions can be based on any of these reference types.

    References

    may have role names

    may be one way or bi-directional

    may be communicating, either one-way or both ways.

    For instance a data entity might use an associated reference value to communicate any

    changes or proposed changes.

    may be or shared, i.e. when the owning reference or all the shared references are

    removed, then the referenced value is removed also.References can be accompanied by access constraints for security purposes. Such constraints

    can be a function of the reference type, the target type, the reference instance or the target value.

    Access needs to be distinguished, in the syntax, among a reference expression (for lazy or

    deferred evaluation), a reference value and the referenced data itself.

    RDF, OWL and related standards provide for comprehensive referencing methods, wherereferences include relations and constraints among objects, classes, properties and other

    references. These can be used as a tool for logic or reasoning machines.

    Names

    A name is a reference type and allows its associated value to be referenced. The associationcan be by declaration, assignment, referencing, or function evaluation

    Names can be aliased primarily, to allow long names for description and shorter names for

    convenience and readability. An alias can be included in the name declaration, or an alias or

    using declaration.

    3/27/11 Page 29 of 73

  • 8/7/2019 XAL 110204

    30/73

    Names in declarations can be specified for arrays by including an occurrence specification for

    the items they contain. Names used in references can include subscript, or index lists, to refer to

    elements in the array.

    Names of structures can be qualified with selection criteria to identify elements andsubstructures.

    Name paths can be formed through a hierarchy or by concatenation of names through role and

    link values.

    Tags

    Tags are another method of naming items to be referenced.

    A tag value identifies a collection of entities that have something in common. An entity mayhave multiple tag values assigned to identify collections in which it is a member.

    Tags represent property values that can assigned, statically or dynamically, to specifications

    and data instances.

    Tags are useful for ordering and grouping, and for selection criteria.Links

    Links represent associations, defined by roles, among two or more entities, along with dataspecific to the association. Links can be defined and maintained externally to the entities or they

    can be based on references within the entities.

    Links can contain data that that is inherent in the relationship of the entities. Links can contain

    summary and derived data, possibly time stamped, extracted from entities directly or indirectlyassociated with a traversal path through the link.

    Links can appear transparent to accessor which then addresses target directly.

    Links to specifications and data can include parameters for the referenced entity, as well asdescriptors and specifications for processing it. These qualifiers can be defined in specifications

    or data instances, or a combination of both.

    Linkage can be for :

    Among specifications, to reference, copy, extend, restrict, copy or create an instance of

    another specifications.

    Among data content, to establish relations and structures.

    Between specifications and data content, thus tailoring the specification to the data itreferences.

    For instance, in HTML it is typical to declare a display element, its display attributes, itsinteractions and its value in a single statement. Often it is better to systematically separate and

    then link these specifications.

    Paths

    Paths are specified by path expressions which can define a hierarchy of components.

    3/27/11 Page 30 of 73

  • 8/7/2019 XAL 110204

    31/73

    Path expressions consist of a starting component and a set of steps referenced by the preceding

    component. Components maybe subsetted by selection criteria.

    Path expressions, here, can be based on an extended notion of axis. In particular, in addition

    to relatives in the physical specification hierarchy, any reference or link from an element candefine an axis to related items. Path expressions can elide multiple axis specifications when

    there is only one route (or a preferred route) to an element.

    Step specifications can be extended with data elements accessible at the step and also by the

    results of expressions, such as summations, evaluated from such elements. These elements thenbecome part of the hierarchy returned by the expression.

    Paths can be specified to allow circularity.

    Paths can provide the basis for navigation (see path expressions below).

    Data Operations

    Data operations can be specified with:

    Expressions and functions

    Object and package behavior

    Generic capabilities of models for structure, presentation and communication

    Specific capabilities of application models

    Control models

    Data operations can be implemented as:

    Action specifications of available object, package or model behavior

    Explicit scriptsData operations can be triggered through:

    Expressions

    Events

    Commands

    Routers

    Controllers

    Expressions

    Expressions include:

    Literals

    Names, including aliases.

    References.

    3/27/11 Page 31 of 73

  • 8/7/2019 XAL 110204

    32/73

    A reference expressions can be a name (including a URI), a pointer, a link, a path

    expression or a query.

    Constructors, accessor, modifiers values, sets, declaration components and attributes

    Arithmetic, comparison and boolean expressions

    String manipulation

    Built-in and user supplied functions

    Iteration and choice

    Tests, transformations and constraints

    Set construction, extension and selection - tuple, list, index, hierarchy, network

    Queries

    First and second order predicate logic.

    Name and path expressionsPath expressions are composed as a series of steps that can be linked through implicitstructural relationships (e.g. child), or through explicit references.

    Rules

    Rules are boolean expressions specify constraints on an entity.

    In addition, generic operations can be specified for data structures, module transformations and

    navigation expressions.

    Structure Expressions

    Basic data structures for structure and manipulation include:

    Unspecified

    Null

    A single value

    A tuple

    Tuples are a list of named and typed values or expressions.

    Tuples can be defined as the contents of a named value or as an expression consisting of a

    list of values.

    Tuple values can be referenced positionally or by name. An array (or table), possibly subscripted with integers or value keys

    Arrays (or tables) define a set of values that may be addressed by subscripts or key

    references.

    An array can have multiple dimensions. A table can be treated as an array with each

    column serving as a dimension.

    3/27/11 Page 32 of 73

  • 8/7/2019 XAL 110204

    33/73

    Array elements can be referenced by indices that are made up of subscripts or key values.

    Indices may be single values, expressions, ranges, and lists of values, expressions and

    ranges. Ranges can be defined as open or closed at either end(closed values are included inthe range).

    Hierarchies specified through path expressions.

    Generic operations on structures and structure elements include create and delete, append,

    insert and remove, select and sort, move and copy, transform, apply function, etc.

    Transforms

    Data transforms are a mapping from one specification to another. They can modify, restructure

    or add to the contents of a module to create a new module.

    Data transforms are themselves action modules and can be parameterized.

    Transforms are basically of two types:

    A mapping from one or more structures or aggregates to other structures or aggregates.

    The mapping may replace, modify, delete or add to components of the target.

    A mapping into a structure.

    Here the transformed structure references specifications to replace, modify or add to itselffrom possibly multiple sources.

    Mappings can include expressions and computations using values from the source, target,

    available parameters or context.

    Transforms are actions and as such can be composed with other transforms or actions.

    Name and Navigation Expressions

    A name expression identifies zero or more elements in a path hierarchy and creates a hierarchyof the identified elements.

    A navigation expression elaborates on a name expression and specifies processing for its

    traversal with data selection, along with pre and post processing for selected steps. A path can

    be traversed depth-first or breadth-first. Top-down and bottom-up processing can be combined.

    A name expression consists of a series of steps for a list of selected component nodes from a:

    namespace to its imbedded and imported components

    component to its physical relations (e.g. ancestor)

    component to its specified relations, either imbedded or through external references and

    links

    link to the components it refers

    list, array or tree to their selected elements

    Where linked components are multiple, they can be subsetted with indices, keys and selectionexpressions.

    Name expressions can look somewhat like:

    3/27/11 Page 33 of 73

  • 8/7/2019 XAL 110204

    34/73

    name .node . . . node

    node

  • 8/7/2019 XAL 110204

    35/73

    Avoiding Target Namespaces, as they work in the wrong direction; i.e., it is better to

    import declarations than export them. Target Namespaces could be avoided, if onlyExplicit Namespaces were allowed.

    Names can be collected by importing and disambiguating them with aliases in a common

    specification.

    This allows Target Namespaces to be eliminated, or at least deprecated.

    Distinctions in the use of names between XML elements and attributes can be

    eliminated.

    elementFormDefault and attributeFormDefault can be eliminated, or at least

    deprecated, since all names belong to and can be identified within their scope.

    Names within a module can be explicitly hidden (i.e. made private) from external

    reference to reduce both clutter and dependencies.

    Characteristics

    A namespace:

    declares a specification scope for a set of names that must be unique.

    can be nested or referenced, and used as a step a path expression

    can be identified with a URI

    has a name that can be referenced and aliased with a using statement.

    The using statement can also identify specific names to import, possibly with aliases, from

    the referenced scope.

    Note also, that any imported names, not explicitly identified in the using statement, must be

    prefixed with the namespace identifier or its alias.

    can be tested for the presence of names and, if present, their declarations and values can

    be accessed.

    can be defined as a parameterized template, so as to be adaptable to a variety of

    contexts.

    is abstract, in that it is realized only in other elements, such as packages, function and

    type declarations.

    Master Namespace

    One technique for namespace management for large vocabularies from diverse applications

    and application set to define a master namespace module.

    Here, using statements can be collected and imported into a high level module that is turn

    imported by other modules. Uniqueness can be easily checked with aliases to resolve ambiguity.

    With commentary, this also provides an index and glossary for terms used in the application.

    Extensions to the application can be defined by adding to this importing namespace.

    3/27/11 Page 35 of 73

  • 8/7/2019 XAL 110204

    36/73

    In particular, this provides a useful approach to collecting reference and other metadata in a

    common source.

    URI Uniqueness

    A Namespace name must be a URI with the provisos that

    It actually identify a computer accessible resource

    It is actually unique

    A URI is often just a resource locator (URL) which by itself is not necessarily unique. An

    earlier specification for a unique resource name (URN) did require persistent uniqueness.

    A URI for a resource that is subject to change cannot be unique. Hence identification of the

    resource needs a version number (or some equivalent such as a date stamp) for uniqueness.

    (An exception to this might define or imbed a relative temporal relation, or a spatial or networklocation; i.e. one that is unique at a given time or place, such as todays date or local host..)

    On the other hand, a use of a URI reference might intend the current version at the time of

    developing a specification, or it may wish to depend on the resource including any changes thatmay occur in the future.

    For flexibility it should be possible for the application to specify either alternative. Theapplication can specify the former with a version specification to insure safety and compatibility.

    For more flexibility, it can omit the version identification with exposure to the consequences of

    that flexibility.

    Issues

    Duplicate names of different types resolved by context ?

    Where can identical names be used and still be distinguished by their syntactical use