web 2.0 technical design

this page is still be written


The Modelling4All software has been designed to be a 'standalone' Rich Internet Application that can used easily in conjunction with other internet tools. The aim is to allow users to "appropriate" the modelling4all service in a manner that is most 'natural' to their preferred on-line collaborative practices.

With respect to development this means that effort will be spent building integration points between the modelling4all software and 3rd-party services such as blogs, wikis, discussion forums, tagging services etc. This approach by the project team can be contrasted with one that attempts to build such services into the same web application. The project team believe the proposed approach is desirable for the following reasons:

  • Project resource is best spent focusing on the core functionality that supports the construction of agent-based computer models through a browser, and should leave the development of other collaborative services to teams that are focused on these tools.
  • Internet users are increasingly able to pull together different types of collaboration tools for themselves - they do not require a subset of tools to be aggregated into a "common environment". While this pattern of behavior is typical of the more experienced users today, the project team believes this practice will be 'the norm' in the near future.
  • Aside from the building of collaboration tools, maintenance of these services can be a heavy resource load. This is particularly true with respect to 'policing' inappropriate use.

The project team appreciates that this flexible and focused approach risks fragmenting modelling communities - if everyone chooses a different tool to discuss their models collaborative opportunities would be lost. To address this issue the software will promote the use of a suite of best-of-breed 3rd party tools:

  • A single discussion forum e.g. google groups to allow members to discuss technical and theoretical ideas relating to constructing computer models with the modelling4all software
  • A single project wiki e.g. wikidot to read the most up-to-date documentation about the modelling4all software and allow close project members to collaborate on the creation of this content
  • A single project blog e.g. wordpress to announce news about the modelling4all service
  • A small set of web pages to act as an attractive boiler plate to the modelling4all service, and bring together all the information about the service at a single glance.

We can regard these as "top-level" tools that will be used by the entire modelling4all community. Users will be able to associate their own choice of tools at the "detail-level" of the service, namely micro-behaviours, micro-behaviour libraries, tutorials and models. This will be achieved by enabling user to add an 'external link' to web pages hosted on the modelling4all server.


Diagram illustrating the integration points between the main modelling4all data structures (libraries, models, micro-behaviours etc) and 3rd-party software.

The diagram needs to be annotated to show how each 3rd-party service can work with the modelling4all software, especially wrt the directionality of the flow of information e.g. pulling data from social tagging services so that the modelling4all software can display a tag cloud.

Also need to highlight where users can build their own relationships between the modelling4all service and 3rd-party services e.g. pasting in a link to a blog onto a model page.

Usage scenario

To explore the design further we provide the following usage scenario:

Fred works in environmental research at a large University. He is sent a link to the site by a colleague who is thinking of submitting a funding proposal for a project that aims to model the micro and macro interactions between energy suppliers and consumers. Much of the work in this area is 'complex' and difficult to describe to people outside of the field. Fred and his colleague would like to develop agent-based modelling code libraries that can be used to construct a wide range of models in their field. They hope that the models will be easier enough to understand so that policy-makers and the general public can appreciate the complexities of their field more easily.

Fred has never programmed before so joins the modelling4all google group and sends an email to ask how he could get started. He quickly gets back a response from other 'newbies' that there are a number of video tutorials available. Fred works his way through these and find out that there are pre-existing modelling libraries that have been created by researchers in other fields. He is particularly struck by the similarities between his field and the models created by epidemiologists looking at viral infections. Fred works his way through the corresponding classroom tutorial and is so impressed he decides to blog his experience, including links to the tutorial.

Fred and his colleague meet to discuss how they can begin creating their own modelling library. They find the wiki which details the programming language and see that it is fairly easy to adapt existing micro-behaviours to their needs. The take a micro-behaviour from the sugarscape model to simulate energy consumption in their field (as opposed to the hypothetical sugar in the classic sugarscape environment). Again, this feels like a major step so they post details about this achievement in their departmental blog.

Fred was already a member of a complex systems group in facebook…

Development effort

Here we provide a brief introduction to the main areas of development that will be undertaken to enable the Modelling4All services to be used in conjunction with other web services.

To find out more about the ongoing work on web 2.0 please see the project issue log (filtered to show just "web 2.0" issues).

Unique URLs

All models and micro-behaviours have a unique URL that can be embedded within other online services such as blogs, wikis, websites, forums and chat tools.

Tagging models and micro-behaviours

Content providers like the BBC make it easy for users to tag their web pages in a wide range of social book marking services:
We will provide similar functionality to enable users to tag micro-behaviours and models.

Public API

The modelling4all database will capture statistics relating to models and micro-behaviours such as:

  • most accessed models over a time period
  • most used micro-behaviour

This information will be exposed as an RSS feed so that it can be consumed by external services.

Models and micro-behaviours that have not be 'published' will not be exposed to the API. We will ascertain whether a page has been published by seeing if it can be found by Google search, or whether it has been tagged. Google search will not be allowed to index any pages within the Modelling4All site.

Models that consume data from external data providers

It is possible to create micro-behaviours that retrieve data from data sources. This is something we will investigate at a later date.

Models that produce data to be used by other web services

Data produced from running the models could be piped into other services such Many Eyes.

to do

  • diagram that shows integration points with description as to how each will work
  • finish use case scenario
  • References to "locus of control").
  • ++ source material…

The site does not ask users to create an account - everything that is created by a user remains private unless they decide to publish a page outside of the site. Privacy is maintained through providing web addresses with GUIDs that it would be impractical to guess e.g.:


While the service makes it easy for users to work privately we want to encourage users to share their micro-behaviours and models. To enable this the service will make it easy for a user to:

  1. Paste the URL pertaining to a specific model or micro-behaviours into other services
  2. Create blog posts about models and micro-behaviours

With respect to micro-behaviours and models the service will allow end-users to provide a link to a discussion thread on the web about the model or micro-behaviour. We will have a preferred discussion tool to do this, but users will be able to specify their own.

Since we don't manage user identities and since we create but don't publish any user-created content we avoid many difficult and resource intensive requirements for security, privacy, and appropriate content (no need to police for spam, pornography, racist, copyright infringement or other problematic material). The Jottit wiki hosting service works in this manner — no need to log in in order to create an anonymous Wiki.

Web research

Hunt for services with the same approach to design as m4a: unauthenticated but made 'private' through URL+GUID

'Complete environments'

Drawing/ sketching

Discussions/ "shoutboxes"

  • could use jottit as a crude way to gather throughts on a MB for instance

Wiki/ text authoring

Synchronous discussion

Annotation text



Rating probably is a case of where our software should support it. It is so constrained that users can only click on the number of stars they want to give a model or the like. No content to police and don't need to know the identity of the user. They can be anonymous (though we could if need be accept only one vote per IP address).



Other tools

list of tools that might be used by a modelling community, not necessarily web 2.0-like:

Web site design

The web site will be a 'boiler plate' for the modelling4all software. It will:

  • Briefly describe the project
  • Provide links to (as per here: http://www.oucs.ox.ac.uk/ww1lit/education):
    • Discussion group
    • Facebook group
    • Tagging?
    • Wiki
    • Tutorials (using the software) and for teachers to use
    • Modelling references/ book store?
  • It could have one or more RSS feeds e.g. news about modelling/ news about the use of the software
  • A good looking banner
  • About the project
  • T&Cs for using the software
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License