pdf: 600KB - Potsdam Institute for Climate Impact Research
pdf: 600KB - Potsdam Institute for Climate Impact Research
pdf: 600KB - Potsdam Institute for Climate Impact Research
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
79<br />
Appendix 2. A brief introduction to relevant technologies<br />
This section is <strong>for</strong> those people who would like to see some flesh on the bones of this paper. If<br />
you are happy dealing with the concepts of declarative modelling, and have no particular interest<br />
to see how these end up in practical implementations, then you can skip this section. If, on the<br />
other hand, you would like to know how the ideas are actually implemented, then this section<br />
should help.<br />
I will consider the following technologies:<br />
XML is the eXtensible Markup Language. It is a standard <strong>for</strong>m of notation <strong>for</strong> representing<br />
in<strong>for</strong>mation so that it can be passed from one computer to another on the World Wide Web.<br />
XSLT is a the eXtensible Stylesheet Language Trans<strong>for</strong>mations. Its primary purpose is to enable<br />
XML documents to be trans<strong>for</strong>med into other XML documents, HTML documents, or some other<br />
<strong>for</strong>m of presentation.<br />
Prolog stands <strong>for</strong> Programming in Logic. It is a declarative language based on first-order<br />
predicate logic, and can be used <strong>for</strong> both representing knowledge and <strong>for</strong> reasoning with<br />
knowledge.<br />
Why did I choose these three technologies?<br />
XML is rapidly emerging as the standard way of representing structured in<strong>for</strong>mation on the web.<br />
There are now 100s of 'markup languages', in areas as diverse as chemistry, systems biology,<br />
architecture, literature and mathematics. Each represents the result of a group of people in a<br />
subject area getting together and deciding on what they want to represent about their field and<br />
how it should be represented. It is inevitable that any initiative to develop a standard notation <strong>for</strong><br />
the declarative representation of ecosystem models will be based on XML.<br />
XML by itself is of little use, unless there is some way of processing the in<strong>for</strong>mation represented<br />
in an XML document. One way of doing this is to write a program in any common programming<br />
language: they all have APIs (Application Programming Interfaces) <strong>for</strong> working with XML<br />
documents. This gives you considerable flexibility, but does involve programming. XSLT, on<br />
the other hand, enables people to trans<strong>for</strong>m XML documents into, <strong>for</strong> example, attractive HTML<br />
documents, viewable in a web browser, without doing any programming in the conventional<br />
sense. In the present context, it thus opens the door <strong>for</strong> the development of a wide range of useful<br />
tools <strong>for</strong> displaying ecosystem models in meaningful ways.<br />
The types of reasoning with model structure you can do using XSLT are limited to fairly basic<br />
trans<strong>for</strong>mations - <strong>for</strong> example, trans<strong>for</strong>ming the complete model specification into a document<br />
containing just the names and variables of each submodel, <strong>for</strong> displaying. Often, however, we<br />
wish to do much more sophisticated reasoning with the model structure. For example, we may<br />
wish to find the names of all variables influenced directly or indirectly by a certain parameter. Or<br />
we may wish to compare the structure of two versions of the same model. This involves logicbased<br />
reasoning with the model structure, something that Prolog is well-suited <strong>for</strong>.<br />
A2.1 XML<br />
Most people are familiar with HTML, the HyperText Markup Language. If not, just go to a<br />
simple web page in your web browser, and select View > Page source in Netscape or View ><br />
Source in Internet Explorer. In HTML, the content of the document is enclosed in start and end<br />
tags, which usually denote how it should appear. Thus: