24.05.2014 Views

pdf: 600KB - Potsdam Institute for Climate Impact Research

pdf: 600KB - Potsdam Institute for Climate Impact Research

pdf: 600KB - Potsdam Institute for Climate Impact Research

SHOW MORE
SHOW LESS

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:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!