1. Field of the Invention
The invention pertains generally to techniques for composing software and more particularly to composition techniques which permit separate specification of context information and control information. The software composition techniques are illustrated with an example that shows how they can be employed to implement a new technique for converting XML having one DTD into XML that has another DTD. The new technique in turn employs new generally-applicable techniques for making or modifying a graph from information contained in another graph.
2. Background of the Invention
a. Software Composition Architecture
One of the main goals behind the design of the Ariadne system disclosed in the parent of the present patent application was to provide a capability for a new paradigm for software composition. In other composition frameworks (e.g., Object Oriented Programming, Modular Programming), information about the context of use of a program are intertwined with the control structure of the program in the program code; if one wanted to reuse the control information in a new semantic context, one would have to reverse engineer the code to separate these aspects, and reengineer a solution in the new context.
What is needed is a program composition architecture that separates control information from contextual information. Such an architecture would allow for a more robust kind of reuse than is possible in any program component based reuse paradigm. It is an object of the present patent application to provide such an architecture
b. Using the Software Composition Architecture to Solve an XML Translation Problem
XML (extensible Markup Language), described in George Lawton, “Unifying Knowledge with XML”, Knowledge Management, August 1999, is an emerging standard for information interchange between applications. XML advocates promise that XML will create a true “open system” environment in which it is easy to create integrated systems that exchange information using XML. In order for XML to be able to deliver on these promises, it must be possible to read and write information in XML easily and smoothly. As part of the standardization process, XML parsers and the Document Object Model (DOM) have been made available in the public domain to perform the basics of processing XML. Using these tools is a skilled programming task. With these tools, system integration involves settling on an XML template (called a DTD) that defines how the XML documents will be formatted. Then all the information in each system is exported/imported into/from XML using this DTD. If both systems use the same DTD, then this happens quite smoothly, and the overall system integration proceeds as promised. Certain aspects of this integration process can be simplified by current tools; for example, Bluestone Software provides tools that allow non-programmers to create XML documents and DTDs using graphical interfaces, making certain parts of this process more easily edited by non-programmers.
The problem facing the industry today is that there is no standards body for the DTDs. Each individual who uses an XML application can create his or her own DTD. In the case of multiple DTDs, interchange will require more sophisticated tools than just parsers and servers; there needs to be a way to match patterns in an XML document and do something with them. The W3 consortium has recognized this problem, and is addressing it with the XML Query Language, explained in The W3 Consortium, XML Query Language Workshop CFP, http://www.w3.org/TandS/QL/QL98/cfp. However, the XML query language only deals with specifying searches through an XML document, not with the problem of transforming the XML document into another form. Thus proposed solutions to the W3 XQL call can only solve part of the problem; the problem of translating information from one DTD to another remains. It is thus another object of the present patent application to provide a technique for translating information from one DTD to another.