Illoura is a Java application for the organisation of scientific data, specifically for the visualisation, construction and manipulation of visual objects. Illoura is best described as the integration of five exisiting open-source technologies; namely:

We use Java Advanced Imaging and Java3D to visualise two- and three-dimensional data respectively. These data are organised hierarchically in the application using RDF (supported by the Jena Semantic Web Framework) and queried/manipulated with a novel integration of SPARQL and Lisp.

Downloading and Installing

Illoura requires Java Runtime Environment 6.0 (or above) with Java3D installed. Java3D can be downloaded from the Java 3D website.

Click here to download Illoura (25 megabytes).

To start Illoura in Windows, unzip the distribution package (into an appropriate folder) and execute illoura.jar, or on most platforms:

java -jar Illoura.jar

It is almost always necessary to allocate more heap space when working with larger models or visualisations. If Illoura freezes up when loading a model, this is the likely cause of the problem. Start Illoura with the -Xmx command line argument, followed immediately by the heap size. For example, to start Illoua with 1G (one gigabyte) of heap space:

java -Xmx1G -jar Illoura.jar

In Windows, it might be necessary to expicitly specify Java 6 if you have multiple versions of Java installed on the machine:

"c:\Program Files\Java\jre1.6.0\bin\java" -Xmx1g -jar Illoura.jar

NVIDIA graphics cards

On certain NVIDIA graphics cards, we have noticed that 'flickering' of widgets in the Illoura interface can sometimes occur. In our experience this is an indication that the running version of Java is not 6.0 (or above). If the problem persists, even with Java 6.0, then disable graphics acceleration through the NVIDIA interface. As a side note, we have not heard of this problem happening in Java 6.0 and later versions, so this particular bug might have been resolved by Sun.

Example and Tutorial

Please visit this page for a tutorial on the basic features of Illoura.

Configuration

The configuration information for Illoura is contained in the file "config.dat", which is located in the installation directory (in the directory where the JAR files reside). The format of the file is simple, consisting of configuration options, denoted by some string inside square brackets, followed by the value of that option, followed by [END]. Lines that begin with two semicolons (";;") are ignored, and can serve as comments.

Probably the most helpful configuration option to change is the "resource" URL protocol descriptor. In Illoura, any URL that is prefixed with "resource:" will have "resource:" substituted with the value of the configuration option [UI.ResourceLocation]. For example, if the configuration file set

[UI.ResourceLocation]
http://myserver.com/vc/
[END]

then in Illoura the URL "resource:obj1.mesh" would resolve to "http://myserver.com/vc/obj1.mesh". The main advantage of constructing a model using resource URL's is that one can easily change the location of where referenced files reside, without altering the model.

Other configuration options that may be of interest are:

[Ontology.Prefixes] This is a list of URI prefixes which can be helpful for abbreviating commonly referenced ontologies. The format is prefix = <URI>
[Lisp.Environment] This contains LISP code that forms the default LISP environment made available within Illoura. Custom functions which are often used can be added here.

Standard Properties

All objects in an Illoura model support property associations. Because the underlying representation of data in Illoura is RDF, the properties are themselves predicates, which have an object and a type.

Model object type Predicate RDF Type Description
vc:Project      
  vc:name xsd:string Project name.
  vc:description xsd:string Description of project.
vc:Folder      
  vc:name xsd:string Folder name.
vc:View      
  vc:name xsd:string View name.
  vc:contains xsd:anyURI A pointer to an object which is contained in this view.
  vc:hasrdf xsd:string This is a base64 encoding of a complete RDF triple associated with the view.
vc:Sphere      
  vc:name xsd:string Sphere name.
  vc:x xsd:float Coordinates of sphere center .
  vc:y xsd:float
  vc:z xsd:float
  vc:radius xsd:float Radius of sphere.
  vc:colour xsd:string Hexadecimal colour string ("#xxxxxx").
  vc:opacity xsd:float Opacity, between 0.0 (transparent) and 1.0 (opaque).
vc:Mesh      
  vc:name xsd:string Mesh name.
  vc:url xsd:string The location of the point and connectivity data.
  vc:colour xsd:string Hexadecimal colour string ("#xxxxxx").
  vc:opacity xsd:float Opacity, between 0.0 (transparent) and 1.0 (opaque).
vc:Bitmap      
  vc:name xsd:string Bitmap name.
  vc:url xsd:string The location of a bitmap file (many formats supported).
vc:Text      
  vc:name xsd:string Name of text store.
  vc:text xsd:string Content encoded in base64.

VCP File Format

The VCP file format (Visible Cell Project) is a convenient representation of the RDF, even though OWL (XML) is also supported. The main reason Illoura uses VCP as an internal file format rather than OWL is that it is relatively fast to parse, and easy to construct using scripts (e.g. Perl).

The grammar for this file is as follows ("\n" represents a literal newline):

vcp-file ::= (object-code "\n" object-uri "\n" folder-uri "\n" properties "\n")+
object-code ::= "P" | "F" | "M" | "S" | "V" | "B" | "T"
object-uri ::= <uri>
folder-uri ::= <uri> | "NA"
properties ::= (<uri> "\n" value "\n" type "\n")+
rdfliteral ::= [^\n]*
rdftype ::= <uri>

Note that the object-code stands for Project, Folder, Mesh, Sphere, View, Bitmap, and Text respectively, and the folder-uri "NA" is used for the project object (which is not in a folder).