External Representations of Designs
Peter Dobcsanyi
p.dobcsanyi at qmul.ac.uk
Thu Apr 24 19:01:31 BST 2003
Hello All,
This is a post to outline the concept of the external representation and
its purpose in our project.
The External Representation of Designs
======================================
Introduction
------------
The External Representations of Designs can be best defined by its
role in the operation of the Design Theory Resource Server (DTRS).
DTRS has many faces, it is an ever growing database of designs,
application server, web server for design related online documents,
software repository etc. The main purpose of the external
representation is to provide a standard format for data on designs.
This data-format is used in communication between various components
of DTRS and its users. Here the concept "users" covers both human
and software agents. Some examples for such communicating agents:
database back-end for storing designs, middle layers between the
database and the web and/or application servers, a researcher
uploading some particular collection of designs, an user searching
for designs having given properties, a statistical application
program directly accessing the DTRS database etc. While these
agents are free to use any internal representation of designs, they
must use the standard external representation when they communicate
to each other.
There is an (evolving) document, instantiated at the beginning of
the DTRS project, outlining our view of what designs are, and the
principles we use to classify them. These classes differ enough to
warrant more or less separate definitions for their external
representation. So the "External Representation of Designs" is
rather a collection of external representations of the main classes
of designs. For example, external representation for blockdesigns.
We envision DTRS as being gradually developed along the lines
determined by these main classes.
An external representation definition comprises not only a formalism
to encode a particular class of designs as mathematical objects but
it should also be able to express the most important properties of
these designs. Many of these properties are complex mathematical
objects on their own right.
Describing such properties leads us to another important purpose of
an external representation, that is to provide a medium for
formulating complex queries about designs. Typically these queries
will be sent to various software components of DTRS.
Finally, we wish to use the external representation as a
specification tool to determine the content and, in some extent, the
structure of the DTRS design database. Note however, the database
internal representation can (and probably will) be quite different
from this format.
Satisfying the requirements outlined above, it should come as no
surprise that what decided to use XML for external representation of
designs.
In short, an external representation of a class of designs is an XML
document describing a list of designs. Such a document serves one
of the following two purposes:
- encoding designs and their properties as mathematical objects.
- expressing queries about designs in terms of their properties.
Specification Process
---------------------
Specification of an external representation happens in many, in some
extent interleaving, stages.
- First we determine a class of designs which should have a common
external representation. This decision is based on the above
mentioned design taxonomy document. So far we decided to deal
first with blockdesigns.
- The second step is to choose a mathematical representation for the
particular designs, since the same class of designs usually have
many different mathematical models. This step is far from obvious
and can have significant impact on the external representation and
related implementations. (See PJC notes, "Block designs: duality
etc.", in a different thread.)
- The third stage to define the XML encoding of designs and a
chosen set of properties in the framework of the selected
mathematical model.
Formally, we are going to define an external representation by an
XML Schema linked with an annotation describing the semantics of
the components together with some discussion, rationale etc. The
XML Schema currently used is Relax NG in compact syntax, other
schema formats are automatically generated.
- The next stage is the "publishing" of the specification on the
Web, inviting a public debate. This stage can (and hopefully will)
be quite extensive. It is very important to reach as wide
audience in this stage as possible. We should try hard to get
active participation from experts, potential future users,
interested parties etc.
- The final step is the "consolidation", finalizing the definition
of the external representation by incorporating the information
obtained by the public discussion.
This stage ends with the publishing of the final specification,
paving the way for the next phase of development.
Based on our recent developers meetings, it is worth to mention
that this specification process seems to help us a lot to reason
about our project.
Development
-----------
Once an external representation's final definition is completed the
development phase can start. Some of the important activities here:
- specification then implementation of the related database
- start systematic collection of designs from external contributors
in the standard external representation format
- "gluing" together the existing software components developed so
far in the DTRS project.
Comments/discussion are welcome.
--
,
Peter Dobcsanyi
More information about the Developers
mailing list