changeset 0:08675ab08e7f

New
author Steven Hargreaves <steve.harg@gmail.com>
date Sat, 29 Dec 2012 17:41:06 +0000
parents
children 1939dda92099
files .classpath .hgignore .project src/org/qmul/eecs/c4dm/sia/SiaDatapointFactory.java src/org/qmul/eecs/c4dm/sia/SiaDimensionValueFactory.java src/org/qmul/eecs/c4dm/sia/SiaMain.java src/org/qmul/eecs/c4dm/sia/SiaVectorTableElementFactory.java src/org/qmul/eecs/c4dm/sia/exceptions/DimensionException.java src/org/qmul/eecs/c4dm/sia/model/Datapoint.java src/org/qmul/eecs/c4dm/sia/model/DimensionValue.java src/org/qmul/eecs/c4dm/sia/model/DirectlyFollows.java src/org/qmul/eecs/c4dm/sia/model/FromDatapoint.java src/org/qmul/eecs/c4dm/sia/model/MemberOfOrderedSet.java src/org/qmul/eecs/c4dm/sia/model/NDimensionalObject.java src/org/qmul/eecs/c4dm/sia/model/OrderedIndex.java src/org/qmul/eecs/c4dm/sia/model/OrderedSet.java src/org/qmul/eecs/c4dm/sia/model/ToDatapoint.java src/org/qmul/eecs/c4dm/sia/model/VectorTableElement.java src/rdf/finalModel.n3 src/rdf/finalModel.rdf src/rdf/siaDatapointOntology.n3 src/rules/functor_example.rules src/sparql/ask.sparql src/sparql/construct_vector_table_bnodes.sparql src/sparql/construct_vector_table_details.sparql src/sparql/select_all.sparql src/sparql/select_sia_results.sparql
diffstat 27 files changed, 2881 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.classpath	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/PelletLibs"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.hgignore	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,25 @@
+syntax: glob
+re:^bin/org/qmul/eecs/c4dm/sia/SiaDatapointFactory\.class$
+re:^bin/org/qmul/eecs/c4dm/sia/SiaDimensionValueFactory\.class$
+re:^bin/org/qmul/eecs/c4dm/sia/SiaMain\.class$
+re:^bin/org/qmul/eecs/c4dm/sia/SiaVectorTableElementFactory\.class$
+re:^bin/org/qmul/eecs/c4dm/sia/exceptions/DimensionException\.class$
+re:^bin/org/qmul/eecs/c4dm/sia/model/Datapoint\.class$
+re:^bin/org/qmul/eecs/c4dm/sia/model/DimensionValue\.class$
+re:^bin/org/qmul/eecs/c4dm/sia/model/DirectlyFollows\.class$
+re:^bin/org/qmul/eecs/c4dm/sia/model/FromDatapoint\.class$
+re:^bin/org/qmul/eecs/c4dm/sia/model/MemberOfOrderedSet\.class$
+re:^bin/org/qmul/eecs/c4dm/sia/model/NDimensionalObject\.class$
+re:^bin/org/qmul/eecs/c4dm/sia/model/OrderedIndex\.class$
+re:^bin/org/qmul/eecs/c4dm/sia/model/OrderedSet\.class$
+re:^bin/org/qmul/eecs/c4dm/sia/model/ToDatapoint\.class$
+re:^bin/org/qmul/eecs/c4dm/sia/model/VectorTableElement\.class$
+re:^bin/rdf/finalModel\.n3$
+re:^bin/rdf/finalModel\.rdf$
+re:^bin/rdf/siaDatapointOntology\.n3$
+re:^bin/rules/functor_example\.rules$
+re:^bin/sparql/ask\.sparql$
+re:^bin/sparql/construct_vector_table_bnodes\.sparql$
+re:^bin/sparql/construct_vector_table_details\.sparql$
+re:^bin/sparql/select_all\.sparql$
+re:^bin/sparql/select_sia_results\.sparql$
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.project	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Sia</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/qmul/eecs/c4dm/sia/SiaDatapointFactory.java	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,99 @@
+package org.qmul.eecs.c4dm.sia;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Vector;
+
+import org.qmul.eecs.c4dm.sia.model.Datapoint;
+import org.qmul.eecs.c4dm.sia.model.DimensionValue;
+import org.qmul.eecs.c4dm.sia.model.DirectlyFollows;
+import org.qmul.eecs.c4dm.sia.model.MemberOfOrderedSet;
+import org.qmul.eecs.c4dm.sia.model.OrderedIndex;
+import org.qmul.eecs.c4dm.sia.model.OrderedSet;
+
+import com.hp.hpl.jena.ontology.Individual;
+import com.hp.hpl.jena.ontology.OntClass;
+import com.hp.hpl.jena.ontology.OntModel;
+import com.hp.hpl.jena.rdf.model.AnonId;
+import com.hp.hpl.jena.rdf.model.Literal;
+import com.hp.hpl.jena.rdf.model.Property;
+import com.hp.hpl.jena.rdf.model.RDFNode;
+import com.hp.hpl.jena.rdf.model.Resource;
+import com.hp.hpl.jena.rdf.model.Statement;
+import com.hp.hpl.jena.rdf.model.StmtIterator;
+import com.hp.hpl.jena.util.iterator.ExtendedIterator;
+import com.hp.hpl.jena.vocabulary.RDF;
+
+public class SiaDatapointFactory {
+
+	public static List<Datapoint> create(OntModel ontModel) {
+		
+		OntClass datapointClass = ontModel.getOntClass(Datapoint.RESOURCE_URI);
+
+		Resource datapointResource = ontModel.getOntResource(datapointClass);
+		ExtendedIterator<Individual> datapointIter = ontModel.listIndividuals(datapointResource);
+
+		List<Datapoint> datapointsList = new ArrayList<Datapoint>();
+		Datapoint datapoint;
+		DimensionValue dimVal;
+		
+		// Find all rdf datapoints
+		Individual datapointIndividual;
+		StmtIterator dimValStmtIter;
+		while (datapointIter.hasNext())
+		{
+			datapointIndividual = datapointIter.next();
+			System.out.println(datapointIndividual.toString());
+			datapoint = new Datapoint();
+			datapoint.setResource(datapointIndividual);
+
+			Resource subject = ontModel.getResource(datapointIndividual.toString());
+			Vector<DimensionValue> dimValsList = SiaDimensionValueFactory.getDimensionValuesForResource(
+					ontModel, subject);
+			
+			datapoint.setDimensionValues(dimValsList);
+			datapointsList.add(datapoint);
+			
+		}
+		return datapointsList;
+	}
+
+	public static void assertOrder(OntModel ontModel, List<Datapoint> datapoints) {
+		
+		Resource bnode = ontModel.createResource(AnonId.create());
+		Resource siaOrderedSet = ontModel.createResource(OrderedSet.RESOURCE_URI);
+		
+		ontModel.add(bnode, RDF.type, siaOrderedSet);
+		
+		int numDatapoints = datapoints.size();
+
+		Datapoint datapoint;
+		Datapoint nextDatapoint;
+		Property memberOfOrderedSetProperty;
+		Property directlyFollowsProperty;
+		Property orderedIndexProperty;
+		
+		for (int orderedIndex = 0; orderedIndex < numDatapoints; orderedIndex++)
+		{
+			// Assert <bnode, rdf:type, sia:OrderedSet>
+			datapoint = datapoints.get(orderedIndex);
+			datapoint.setOrderedIndex(orderedIndex);
+			memberOfOrderedSetProperty = ontModel.getProperty(MemberOfOrderedSet.PROPERTY_URI);
+			ontModel.add(datapoint.getResource(), memberOfOrderedSetProperty, bnode);
+			
+			if (orderedIndex < numDatapoints - 1)
+			{
+				// Assert <nextDatapoint, sia:directlyFollows, currentDatapoint>
+				nextDatapoint = datapoints.get(orderedIndex + 1);
+				directlyFollowsProperty = ontModel.getProperty(DirectlyFollows.PROPERTY_URI);
+				ontModel.add(nextDatapoint.getResource(), directlyFollowsProperty, datapoint.getResource());
+			}
+			
+			// Assert <currentDatapoint, sia:orderedIndex, orderedIndex>
+			orderedIndexProperty = ontModel.getProperty(OrderedIndex.PROPERTY_URI);
+			ontModel.addLiteral(datapoint.getResource(), orderedIndexProperty, orderedIndex);
+			
+		}
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/qmul/eecs/c4dm/sia/SiaDimensionValueFactory.java	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,57 @@
+package org.qmul.eecs.c4dm.sia;
+
+import java.util.Vector;
+
+import org.qmul.eecs.c4dm.sia.model.DimensionValue;
+
+import com.hp.hpl.jena.ontology.OntModel;
+import com.hp.hpl.jena.rdf.model.Literal;
+import com.hp.hpl.jena.rdf.model.Property;
+import com.hp.hpl.jena.rdf.model.RDFNode;
+import com.hp.hpl.jena.rdf.model.Resource;
+import com.hp.hpl.jena.rdf.model.Statement;
+import com.hp.hpl.jena.rdf.model.StmtIterator;
+
+public class SiaDimensionValueFactory {
+
+	public static Vector<DimensionValue> getDimensionValuesForResource(
+			OntModel ontModel, Resource subject) {
+		DimensionValue dimVal;
+		StmtIterator dimValStmtIter;
+		Property dimValProperty = ontModel.getOntProperty(DimensionValue.PROPERTY_URI);
+		Property dimensionProperty = ontModel.getOntProperty(DimensionValue.DIMENSION_URI);
+		Property valueProperty = ontModel.getOntProperty(DimensionValue.VALUE_URI);
+		dimValStmtIter = ontModel.listStatements(subject, dimValProperty, (RDFNode)null);
+		
+		Vector<DimensionValue> dimValsList = new Vector<DimensionValue>();
+		StmtIterator dimValDimensionStmtIter;
+		StmtIterator dimValValueStmtIter;
+
+		while (dimValStmtIter.hasNext())
+		{
+			Statement dimValStmt = dimValStmtIter.next();
+			System.out.println(dimValStmt.getSubject().toString() + " " + dimValStmt.getPredicate().toString() + " " + dimValStmt.getObject().toString());
+			
+			Resource dimValResource = dimValStmt.getResource();
+			
+			dimValDimensionStmtIter = ontModel.listStatements(dimValResource, dimensionProperty, (RDFNode)null);
+			dimValValueStmtIter = ontModel.listStatements(dimValResource, valueProperty, (RDFNode)null);
+			dimVal = new DimensionValue();
+
+			Statement dimValDimensionStmt = dimValDimensionStmtIter.next();
+			Statement dimValValueStmt = dimValValueStmtIter.next();
+			Literal dimension = dimValDimensionStmt.getObject().asLiteral();
+			dimVal.setDimension(dimension.getInt());
+
+			Literal value = dimValValueStmt.getObject().asLiteral();
+
+			dimVal.setValue(value.getDouble());
+			
+			dimValsList.add(dimVal);				
+			System.out.println("dim: " + dimension.getInt() + " val: " + value.getDouble());
+			
+		}
+		return dimValsList;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/qmul/eecs/c4dm/sia/SiaMain.java	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,274 @@
+// Copyright (c) 2006 - 2008, Clark & Parsia, LLC. <http://www.clarkparsia.com>
+// This source code is available under the terms of the Affero General Public
+// License v3.
+//
+// Please see LICENSE.txt for full license terms, including the availability of
+// proprietary exceptions.
+// Questions, comments, or requests for clarification: licensing@clarkparsia.com
+
+package org.qmul.eecs.c4dm.sia;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import org.mindswap.pellet.jena.PelletReasonerFactory;
+import org.qmul.eecs.c4dm.sia.model.Datapoint;
+import org.qmul.eecs.c4dm.sia.model.VectorTableElement;
+
+import com.clarkparsia.pellet.sparqldl.jena.SparqlDLExecutionFactory;
+import com.hp.hpl.jena.ontology.OntModel;
+import com.hp.hpl.jena.query.Query;
+import com.hp.hpl.jena.query.QueryExecution;
+import com.hp.hpl.jena.query.QueryExecutionFactory;
+import com.hp.hpl.jena.query.QueryFactory;
+import com.hp.hpl.jena.query.ResultSet;
+import com.hp.hpl.jena.query.ResultSetFormatter;
+import com.hp.hpl.jena.query.Syntax;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelFactory;
+import com.hp.hpl.jena.rdf.model.Statement;
+import com.hp.hpl.jena.rdf.model.StmtIterator;
+
+/**
+ * <p>
+ * Title: SPARQLDLExample
+ * </p>
+ * <p>
+ * Description: This program shows how to use the Pellet SPARQL-DL engine
+ * </p>
+ * <p>
+ * Copyright: Copyright (c) 2008
+ * </p>
+ * <p>
+ * Company: Clark & Parsia, LLC. <http://www.clarkparsia.com>
+ * </p>
+ * 
+ * @author Markus Stocker
+ */
+public class SiaMain {
+
+	// The ontology loaded as dataset
+	private static final String ontology = "file:src/rdf/siaDatapointOntology.n3";
+
+	// The final output file
+	private static final String finalModelFileName = "src/rdf/finalModel";
+
+	// SPARQL queries
+	private static final String[] selectQueries = new String[] {
+		// A SPARQL-DL query
+//		"file:src/sparql/select_all.sparql" };
+		"file:src/sparql/select_sia_results.sparql" };
+
+	// CONSTRUCT queries
+	private static final String[] constructQueries = new String[] {
+		// A SPARQL-DL CONSTRUCT query
+		"file:src/sparql/construct_vector_table_bnodes.sparql",
+		"file:src/sparql/construct_vector_table_details.sparql" };
+
+	// ASK queries
+	private static final String[] askQueries = new String[] {
+		// A SPARQL-DL ASK query
+		"file:src/sparql/ask.sparql"
+		};
+	
+	public static String SIA_NS_URI = null;
+
+	public void run() {
+
+		// First create a Jena ontology model backed by the Pellet reasoner
+		// (note, the Pellet reasoner is required)
+		OntModel ontModel = ModelFactory
+				.createOntologyModel(PelletReasonerFactory.THE_SPEC);
+
+		// Then read the data from the file into the ontology model
+		ontModel.read(ontology, "N3");
+		
+		SIA_NS_URI = ontModel.getNsPrefixURI("sia");
+
+		// Print out what we've got so far
+		StmtIterator stmtIterator = ontModel.listStatements();
+		printStmts(stmtIterator);
+		
+		// Create custom sia Datapoint objects
+		List<Datapoint> datapoints = SiaDatapointFactory.create(ontModel);
+		Collections.sort(datapoints);
+		
+		// Add datapoint order info to model
+		SiaDatapointFactory.assertOrder(ontModel, datapoints);
+		
+		for (Datapoint datapoint : datapoints)
+		{
+			System.out.println(datapoint.getResource().getLocalName());
+		}
+
+		// Run all the CONSTRUCT queries
+		for (int i = 0; i < constructQueries.length; i++) {
+			String constructQuery = constructQueries[i];
+
+			Model newModel = executeConstructQuery(constructQuery, ontModel);
+
+			// Add new triples to the current model
+			ontModel.add(newModel);
+
+			// Print out what we've got now
+			System.out.println("------------------");
+			stmtIterator = ontModel.listStatements();
+			printStmts(stmtIterator);
+		}
+
+//		// Create custom sia VectorTableElement objects
+		List<VectorTableElement> vteList = SiaVectorTableElementFactory.create(ontModel, datapoints);
+		Iterator<VectorTableElement> vteIter = vteList.iterator();
+		System.out.println("Unsorted");
+		System.out.println("----------");
+		while (vteIter.hasNext())
+		{
+			VectorTableElement vte = vteIter.next();
+			System.out.println("from: " + vte.getFromDatapoint().getResource().getLocalName() + " to: " + vte.getToDatapoint().getResource().getLocalName());			
+		}
+		Collections.sort(vteList);
+		vteIter = vteList.iterator();
+		System.out.println("Now Sorted");
+		System.out.println("----------");
+		while (vteIter.hasNext())
+		{
+			VectorTableElement vte = vteIter.next();
+			System.out.println("from: " + vte.getFromDatapoint().getResource().getLocalName() + " to: " + vte.getToDatapoint().getResource().getLocalName());			
+		}
+
+		// Add vector table element order info to model
+		SiaVectorTableElementFactory.assertOrder(ontModel, vteList);
+
+		// Run all the SELECT queries
+		for (int i = 0; i < selectQueries.length; i++) {
+
+			String selectQuery = selectQueries[i];
+			queryTheModel(selectQuery, ontModel);
+
+		}
+
+		// Run all the ASK queries
+		for (int i = 0; i < askQueries.length; i++) {
+
+			String askQuery = askQueries[i];
+			askTheModel(askQuery, ontModel);
+
+		}
+
+		// Write the model to a file
+		File outFileRdf = new File(finalModelFileName + ".rdf");
+		File outFileN3 = new File(finalModelFileName + ".n3");
+		FileOutputStream outFileOutputStreamRdf;
+		FileOutputStream outFileOutputStreamN3;
+		System.out.println("Model written to files: "
+				+ outFileRdf.getAbsolutePath() + " and " + outFileN3.getAbsolutePath());
+		try {
+			outFileOutputStreamRdf = new FileOutputStream(outFileRdf);
+			outFileOutputStreamN3 = new FileOutputStream(outFileN3);
+			ontModel.writeAll(outFileOutputStreamRdf, "RDF/XML", null);
+			ontModel.writeAll(outFileOutputStreamN3, "N3", null);
+		} catch (FileNotFoundException e) {
+			// TODO Auto-generated catch block
+			System.out.println("Unable to write to one or both of files: "
+					+ outFileRdf.getAbsolutePath() + " and " + outFileN3.getAbsolutePath());
+			e.printStackTrace();
+		}
+	}
+
+	private Model executeConstructQuery(String query, Model m) {
+
+		// Now read the query file into a query object
+		Query q = QueryFactory.read(query, Syntax.syntaxARQ); // only required
+																// if using
+																// (e.g.) LET in
+																// SPARQL
+
+		QueryExecution qe = QueryExecutionFactory.create(q, m);
+
+		// We want to execute a CONSTRUCT query, do it, and return the new
+		// triples
+		Model newModel = qe.execConstruct();
+
+		// Print the query for better understanding
+		System.out.println(q.toString());
+
+		// Print the new triples
+		StmtIterator iter = newModel.listStatements();
+		printStmts(iter);
+
+		return newModel;
+	}
+
+	private void printStmts(StmtIterator iter) {
+		Statement statement;
+
+		while (iter.hasNext()) {
+			statement = iter.nextStatement();
+			System.out.println(" | <" + statement.getSubject() + "> | <"
+					+ statement.getPredicate() + "> | <"
+					+ statement.getObject() + "> | ");
+		}
+
+		// And an empty line to make it pretty
+		System.out.println();
+	}
+
+	private void queryTheModel(String query, Model m) {
+
+		// Now read the query file into a query object
+		Query q = QueryFactory.read(query, Syntax.syntaxARQ); // only required
+																// if using
+																// (e.g.) LET in
+																// SPARQL
+
+		// Create a SPARQL-DL query execution for the given query and
+		// ontology model
+		QueryExecution qe = SparqlDLExecutionFactory.create(q, m);
+
+		// We want to execute a SELECT query, do it, and return the result set
+		ResultSet rs = qe.execSelect();
+
+		// Print the query for better understanding
+		System.out.println(q.toString());
+
+		// There are different things we can do with the result set, for
+		// instance iterate over it and process the query solutions or, what we
+		// do here, just print out the results
+		ResultSetFormatter.out(rs);
+
+		// And an empty line to make it pretty
+		System.out.println();
+	}
+
+	private void askTheModel(String query, Model m) {
+
+		// Now read the query file into a query object
+		Query q = QueryFactory.read(query);
+
+		// Create a SPARQL-DL query execution for the given query and
+		// ontology model
+		QueryExecution qe = SparqlDLExecutionFactory.create(q, m);
+
+		// We want to execute a SELECT query, do it, and return the result set
+		boolean result = qe.execAsk();
+
+		// Print the query for better understanding
+		System.out.println(q.toString());
+
+		// Print the result
+		System.out.println("Result: " + result);
+
+		// And an empty line to make it pretty
+		System.out.println();
+	}
+
+	public static void main(String[] args) {
+		SiaMain app = new SiaMain();
+		app.run();
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/qmul/eecs/c4dm/sia/SiaVectorTableElementFactory.java	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,143 @@
+package org.qmul.eecs.c4dm.sia;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
+
+import org.qmul.eecs.c4dm.sia.model.Datapoint;
+import org.qmul.eecs.c4dm.sia.model.DimensionValue;
+import org.qmul.eecs.c4dm.sia.model.DirectlyFollows;
+import org.qmul.eecs.c4dm.sia.model.FromDatapoint;
+import org.qmul.eecs.c4dm.sia.model.MemberOfOrderedSet;
+import org.qmul.eecs.c4dm.sia.model.OrderedIndex;
+import org.qmul.eecs.c4dm.sia.model.OrderedSet;
+import org.qmul.eecs.c4dm.sia.model.ToDatapoint;
+import org.qmul.eecs.c4dm.sia.model.VectorTableElement;
+
+import com.hp.hpl.jena.ontology.Individual;
+import com.hp.hpl.jena.ontology.OntClass;
+import com.hp.hpl.jena.ontology.OntModel;
+import com.hp.hpl.jena.rdf.model.AnonId;
+import com.hp.hpl.jena.rdf.model.Literal;
+import com.hp.hpl.jena.rdf.model.Property;
+import com.hp.hpl.jena.rdf.model.RDFNode;
+import com.hp.hpl.jena.rdf.model.Resource;
+import com.hp.hpl.jena.rdf.model.Statement;
+import com.hp.hpl.jena.rdf.model.StmtIterator;
+import com.hp.hpl.jena.util.iterator.ExtendedIterator;
+import com.hp.hpl.jena.vocabulary.RDF;
+
+public class SiaVectorTableElementFactory {
+
+	public static List<VectorTableElement> create(OntModel ontModel, List<Datapoint> datapoints) {
+		
+		OntClass vteClass = ontModel.getOntClass(VectorTableElement.RESOURCE_URI);
+
+		Resource vteResource = ontModel.getOntResource(vteClass);
+		ExtendedIterator<Individual> vteIter = ontModel.listIndividuals(vteResource);
+		
+		Property dimValProperty = ontModel.getOntProperty(DimensionValue.PROPERTY_URI);
+		Property dimensionProperty = ontModel.getOntProperty(DimensionValue.DIMENSION_URI);
+		Property valueProperty = ontModel.getOntProperty(DimensionValue.VALUE_URI);
+		Property fromDatapointProperty = ontModel.getOntProperty(FromDatapoint.PROPERTY_URI);
+		Property toDatapointProperty = ontModel.getOntProperty(ToDatapoint.PROPERTY_URI);
+
+		List<VectorTableElement> vteList = new ArrayList<VectorTableElement>();
+		VectorTableElement vte;
+		DimensionValue dimVal;
+		
+		Individual vteIndividual;
+		StmtIterator dimValStmtIter;
+		StmtIterator fromDPStmtIter;
+		StmtIterator toDPStmtIter;
+		StmtIterator dimValDimensionStmtIter;
+		StmtIterator dimValValueStmtIter;
+		Statement fromDatapointStmt;
+		Statement toDatapointStmt;
+		Resource dimValResource;
+		Statement dimValDimensionStmt;
+		Statement dimValValueStmt;
+		Literal dimension;
+		Literal value;
+
+		// Find all rdf VectorTableElements
+		while (vteIter.hasNext())
+		{
+			vteIndividual = vteIter.next();
+			System.out.println(vteIndividual.toString());
+			vte = new VectorTableElement();
+			vte.setResource(vteIndividual);
+
+			// Find the 'fromDatapoint' for this VectorTableElement
+			fromDPStmtIter = ontModel.listStatements(vteIndividual, fromDatapointProperty, (RDFNode)null);			
+			fromDatapointStmt = fromDPStmtIter.next();
+			Datapoint fromDatapoint = findDatapoint(ontModel, datapoints, fromDatapointStmt.getResource());
+			vte.setFromDatapoint(fromDatapoint);
+
+			// Find the 'toDatapoint' for this VectorTableElement
+			toDPStmtIter = ontModel.listStatements(vteIndividual, toDatapointProperty, (RDFNode)null);			
+			toDatapointStmt = toDPStmtIter.next();
+			Datapoint toDatapoint = findDatapoint(ontModel, datapoints, toDatapointStmt.getResource());
+			vte.setToDatapoint(toDatapoint);
+
+			// Find all dimensionValues for this VectorTableElement
+			Vector<DimensionValue> dimensionValues = SiaDimensionValueFactory.getDimensionValuesForResource(ontModel, vteIndividual);
+			vte.setDimensionValues(dimensionValues);
+			
+			vteList.add(vte);
+			
+		}
+		return vteList;
+	}
+
+	public static Datapoint findDatapoint(OntModel ontModel, List<Datapoint> datapoints, Resource resource) {
+		Iterator<Datapoint> datapointsIter = datapoints.iterator();
+		Datapoint datapoint;
+		while (datapointsIter.hasNext())
+		{
+			datapoint = datapointsIter.next();
+			if (datapoint.getResource().getLocalName().equals(resource.getLocalName()))
+				return datapoint;
+		}
+		datapoint = new Datapoint();
+		datapoint.setResource(resource);
+		Vector<DimensionValue> dimensionValues = SiaDimensionValueFactory.getDimensionValuesForResource(ontModel, resource);
+		datapoint.setDimensionValues(dimensionValues);
+		return datapoint;
+	}
+
+	public static void assertOrder(OntModel ontModel, List<VectorTableElement> vteList) {
+		
+		Resource bnode = ontModel.createResource(AnonId.create());
+		Resource siaOrderedSet = ontModel.createResource(OrderedSet.RESOURCE_URI);
+		
+		ontModel.add(bnode, RDF.type, siaOrderedSet);
+		
+		int numVectorTableElements = vteList.size();
+
+		VectorTableElement vte;
+		for (int orderedIndex = 0; orderedIndex < numVectorTableElements; orderedIndex++)
+		{
+			// Assert <bnode, rdf:type, sia:OrderedSet>
+			vte = vteList.get(orderedIndex);
+			Property memberOfOrderedSetProperty = ontModel.getProperty(MemberOfOrderedSet.PROPERTY_URI);
+			ontModel.add(vte.getResource(), memberOfOrderedSetProperty, bnode);
+			
+			if (orderedIndex < numVectorTableElements - 1)
+			{
+				// Assert <nextVectorTable, sia:directlyFollows, currentVectorTableElement>
+				VectorTableElement nextVte = vteList.get(orderedIndex + 1);
+				Property directlyFollowsProperty = ontModel.getProperty(DirectlyFollows.PROPERTY_URI);
+				ontModel.add(nextVte.getResource(), directlyFollowsProperty, vte.getResource());
+			}
+			
+			// Assert <currentVectorTableElement, sia:orderedIndex, orderedIndex>
+			Property orderedIndexProperty = ontModel.getProperty(OrderedIndex.PROPERTY_URI);
+			ontModel.addLiteral(vte.getResource(), orderedIndexProperty, orderedIndex);
+			
+		}
+		
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/qmul/eecs/c4dm/sia/exceptions/DimensionException.java	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,15 @@
+package org.qmul.eecs.c4dm.sia.exceptions;
+
+public class DimensionException extends Exception {
+	
+	public DimensionException(String description) {
+		// TODO Auto-generated constructor stub
+		super(description);
+	}
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -3820412804966910012L;
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/qmul/eecs/c4dm/sia/model/Datapoint.java	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,95 @@
+package org.qmul.eecs.c4dm.sia.model;
+
+import java.util.Iterator;
+import java.util.Vector;
+
+import org.qmul.eecs.c4dm.sia.SiaMain;
+import org.qmul.eecs.c4dm.sia.exceptions.DimensionException;
+
+import com.hp.hpl.jena.rdf.model.Resource;
+
+public class Datapoint extends NDimensionalObject implements Comparable {
+	
+	private Resource resource;
+	private int orderedIndex;
+	
+	public static final String RESOURCE_URI    = SiaMain.SIA_NS_URI + "Datapoint";
+
+	/**
+	 * @return the resource
+	 */
+	public Resource getResource() {
+		return resource;
+	}
+
+	/**
+	 * @param resource the node to set
+	 */
+	public void setResource(Resource resource) {
+		this.resource = resource;
+	}
+
+	/**
+	 * @return the orderedIndex
+	 */
+	public int getOrderedIndex() {
+		return orderedIndex;
+	}
+
+	/**
+	 * @param orderedIndex the orderedIndex to set
+	 */
+	public void setOrderedIndex(int orderedIndex) {
+		this.orderedIndex = orderedIndex;
+	}
+
+	@Override
+	public int compareTo(Object o2) {
+		Datapoint datapoint2 = (Datapoint)o2;
+		
+		Vector<DimensionValue> datapoint2DimVals = datapoint2.getDimensionValues();
+		
+		int datapoint2DimSize = datapoint2DimVals.size();
+		
+		if (datapoint2DimSize != this.getDimensionValues().size())
+			throw new ClassCastException("Datapoints have an unequal number of dimensions");
+		
+		Iterator<DimensionValue> datapoint1DimValsIter = this.getDimensionValues().iterator();
+		Iterator<DimensionValue> datapoint2DimValsIter = datapoint2DimVals.iterator();
+		
+		DimensionValue datapoint1DimVal;
+		DimensionValue datapoint2DimVal;
+		
+		for (int dimension = 1; dimension <= datapoint2DimSize; dimension++)
+		{
+			double dimension1 = 0;
+			try {
+				dimension1 = this.getDimensionValue(dimension);
+			} catch (DimensionException e) {
+				// TODO Auto-generated catch block
+				System.out.println(e.getMessage());
+				e.printStackTrace();
+			}
+			double dimension2 = 0;
+			try {
+				dimension2 = datapoint2.getDimensionValue(dimension);
+			} catch (DimensionException e) {
+				// TODO Auto-generated catch block
+				System.out.println(e.getMessage());
+				e.printStackTrace();
+			}
+			
+			if (dimension1 < dimension2)
+			{
+				return -1;
+			}
+			else if (dimension1 > dimension2)
+			{
+				return 1;
+			}
+		}
+		
+		return 0;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/qmul/eecs/c4dm/sia/model/DimensionValue.java	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,27 @@
+package org.qmul.eecs.c4dm.sia.model;
+
+import org.qmul.eecs.c4dm.sia.SiaMain;
+
+public class DimensionValue {
+	
+	private int dimension;
+	private double value;
+	
+	public static final String PROPERTY_URI    = SiaMain.SIA_NS_URI + "dimVal";
+	public static final String DIMENSION_URI    = SiaMain.SIA_NS_URI + "dimension";
+	public static final String VALUE_URI    = SiaMain.SIA_NS_URI + "value";
+
+	public int getDimension() {
+		return dimension;
+	}
+	public void setDimension(int dimension) {
+		this.dimension = dimension;
+	}
+	public double getValue() {
+		return value;
+	}
+	public void setValue(double value) {
+		this.value = value;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/qmul/eecs/c4dm/sia/model/DirectlyFollows.java	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,9 @@
+package org.qmul.eecs.c4dm.sia.model;
+
+import org.qmul.eecs.c4dm.sia.SiaMain;
+
+public class DirectlyFollows {
+		
+	public static final String PROPERTY_URI    = SiaMain.SIA_NS_URI + "directlyFollows";
+	
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/qmul/eecs/c4dm/sia/model/FromDatapoint.java	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,9 @@
+package org.qmul.eecs.c4dm.sia.model;
+
+import org.qmul.eecs.c4dm.sia.SiaMain;
+
+public class FromDatapoint {
+		
+	public static final String PROPERTY_URI    = SiaMain.SIA_NS_URI + "fromDatapoint";
+	
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/qmul/eecs/c4dm/sia/model/MemberOfOrderedSet.java	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,9 @@
+package org.qmul.eecs.c4dm.sia.model;
+
+import org.qmul.eecs.c4dm.sia.SiaMain;
+
+public class MemberOfOrderedSet {
+		
+	public static final String PROPERTY_URI    = SiaMain.SIA_NS_URI + "memberOfOrderedSet";
+	
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/qmul/eecs/c4dm/sia/model/NDimensionalObject.java	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,38 @@
+package org.qmul.eecs.c4dm.sia.model;
+
+import java.util.Vector;
+
+import org.qmul.eecs.c4dm.sia.exceptions.DimensionException;
+
+public class NDimensionalObject {
+
+	private Vector<DimensionValue> dimensionValues;
+
+	public NDimensionalObject() {
+		super();
+	}
+
+	/**
+	 * @return the dimensionValue
+	 */
+	public Vector<DimensionValue> getDimensionValues() {
+		return dimensionValues;
+	}
+
+	/**
+	 * @param dimensionValue the dimensionValue to set
+	 */
+	public void setDimensionValues(Vector<DimensionValue> dimensionValues) {
+		this.dimensionValues = dimensionValues;
+	}
+
+	public double getDimensionValue(int dimension) throws DimensionException {
+		for (DimensionValue dv : this.getDimensionValues())
+		{
+			if (dv.getDimension() == dimension)
+				return dv.getValue();
+		}
+		throw new DimensionException("No value for dimension " + dimension);
+	}
+
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/qmul/eecs/c4dm/sia/model/OrderedIndex.java	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,9 @@
+package org.qmul.eecs.c4dm.sia.model;
+
+import org.qmul.eecs.c4dm.sia.SiaMain;
+
+public class OrderedIndex {
+		
+	public static final String PROPERTY_URI    = SiaMain.SIA_NS_URI + "orderedIndex";
+	
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/qmul/eecs/c4dm/sia/model/OrderedSet.java	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,9 @@
+package org.qmul.eecs.c4dm.sia.model;
+
+import org.qmul.eecs.c4dm.sia.SiaMain;
+
+public class OrderedSet {
+		
+	public static final String RESOURCE_URI    = SiaMain.SIA_NS_URI + "OrderedSet";
+	
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/qmul/eecs/c4dm/sia/model/ToDatapoint.java	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,9 @@
+package org.qmul.eecs.c4dm.sia.model;
+
+import org.qmul.eecs.c4dm.sia.SiaMain;
+
+public class ToDatapoint {
+		
+	public static final String PROPERTY_URI    = SiaMain.SIA_NS_URI + "toDatapoint";
+	
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/qmul/eecs/c4dm/sia/model/VectorTableElement.java	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,125 @@
+package org.qmul.eecs.c4dm.sia.model;
+
+import java.util.Iterator;
+import java.util.Vector;
+
+import org.qmul.eecs.c4dm.sia.SiaMain;
+import org.qmul.eecs.c4dm.sia.exceptions.DimensionException;
+
+import com.hp.hpl.jena.rdf.model.Resource;
+
+/**
+ * @author stevenhargreaves
+ *
+ */
+public class VectorTableElement extends NDimensionalObject implements Comparable {
+	
+	private Datapoint fromDatapoint;
+	private Datapoint toDatapoint;
+	private Resource resource;
+	
+	public static final String RESOURCE_URI = SiaMain.SIA_NS_URI + "VectorTableElement";
+
+	/**
+	 * @return
+	 */
+	public Resource getResource() {
+		return resource;
+	}
+
+	/**
+	 * @param resource
+	 */
+	public void setResource(Resource resource) {
+		this.resource = resource;
+	}
+
+	/**
+	 * @return
+	 */
+	public Datapoint getFromDatapoint() {
+		return fromDatapoint;
+	}
+
+	/**
+	 * @param fromDatapoint
+	 */
+	public void setFromDatapoint(Datapoint fromDatapoint) {
+		this.fromDatapoint = fromDatapoint;
+	}
+
+	/**
+	 * @return
+	 */
+	public Datapoint getToDatapoint() {
+		return toDatapoint;
+	}
+
+	/**
+	 * @param toDatapoint
+	 */
+	public void setToDatapoint(Datapoint toDatapoint) {
+		this.toDatapoint = toDatapoint;
+	}
+
+	/* (non-Javadoc)
+	 * @see java.lang.Comparable#compareTo(java.lang.Object)
+	 */
+	@Override
+	public int compareTo(Object o2) {
+		VectorTableElement vte2 = (VectorTableElement)o2;
+		
+		Vector<DimensionValue> vte2DimVals = vte2.getDimensionValues();
+		
+		int vte2DimSize = vte2DimVals.size();
+		
+		if (vte2DimSize != this.getDimensionValues().size())
+			throw new ClassCastException("VectorTableElements have an unequal number of dimensions");
+		
+		Iterator<DimensionValue> vte1DimValsIter = this.getDimensionValues().iterator();
+		Iterator<DimensionValue> vte2DimValsIter = vte2DimVals.iterator();
+		
+		DimensionValue vte1DimVal;
+		DimensionValue vte2DimVal;
+		
+		for (int dimension = 1; dimension <= vte2DimSize; dimension++)
+		{
+			double dimension1 = 0;
+			try {
+				dimension1 = this.getDimensionValue(dimension);
+			} catch (DimensionException e) {
+				System.out.println(e.getMessage());
+				e.printStackTrace();
+				System.exit(-1);
+			}
+			double dimension2 = 0;
+			try {
+				dimension2 = vte2.getDimensionValue(dimension);
+			} catch (DimensionException e) {
+				System.out.println(e.getMessage());
+				e.printStackTrace();
+				System.exit(-1);
+			}
+			
+			if (dimension1 < dimension2)
+			{
+				return -1;
+			}
+			else if (dimension1 > dimension2)
+			{
+				return 1;
+			}
+		}
+		
+		if (this.getFromDatapoint().getOrderedIndex() < vte2.getFromDatapoint().getOrderedIndex())
+		{
+			return -1;
+		}
+		else if (this.getFromDatapoint().getOrderedIndex() > vte2.getFromDatapoint().getOrderedIndex())
+		{
+			return 1;
+		}
+		return 0;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/rdf/finalModel.n3	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,678 @@
+@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix abc:     <http://example.org/abc#> .
+@prefix sia:     <http://example.org/sia#> .
+@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
+@prefix owl:     <http://www.w3.org/2002/07/owl#> .
+@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+
+sia:toDatapoint
+      a       owl:ObjectProperty ;
+      rdfs:subPropertyOf sia:toDatapoint , owl:topObjectProperty ;
+      owl:equivalentProperty
+              sia:toDatapoint ;
+      owl:propertyDisjointWith
+              owl:bottomObjectProperty .
+
+_:b1  a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 2 ;
+      sia:value 0.0e0 ;
+      =       _:b1 .
+
+_:b2  a       sia:OrderableThing , owl:Thing , sia:VectorTableElement ;
+      sia:dimVal _:b3 , _:b4 ;
+      sia:directlyFollows _:b5 ;
+      sia:follows _:b6 , _:b7 , _:b8 , _:b5 , _:b9 , _:b10 , _:b11 , _:b12 , _:b13 , _:b14 , _:b15 , _:b16 ;
+      sia:fromDatapoint sia:A ;
+      sia:memberOfOrderedSet
+              _:b17 ;
+      sia:orderedIndex "12"^^xsd:int ;
+      sia:precedes _:b18 , _:b19 ;
+      sia:toDatapoint sia:E ;
+      =       _:b2 .
+
+sia:precedes
+      a       owl:TransitiveProperty , owl:ObjectProperty ;
+      rdfs:domain sia:OrderableThing ;
+      rdfs:range sia:OrderableThing ;
+      rdfs:subPropertyOf sia:precedes , owl:topObjectProperty ;
+      owl:equivalentProperty
+              sia:precedes ;
+      owl:inverseOf sia:follows ;
+      owl:propertyDisjointWith
+              owl:bottomObjectProperty .
+
+_:b20
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 2 ;
+      sia:value 1.0e0 , "1"^^xsd:double ;
+      =       _:b20 .
+
+_:b9  a       sia:OrderableThing , owl:Thing , sia:VectorTableElement ;
+      sia:dimVal _:b21 , _:b22 ;
+      sia:directlyFollows _:b6 ;
+      sia:follows _:b6 , _:b10 , _:b12 , _:b13 ;
+      sia:fromDatapoint sia:B ;
+      sia:memberOfOrderedSet
+              _:b17 ;
+      sia:orderedIndex "4"^^xsd:int ;
+      sia:precedes _:b2 , _:b18 , _:b7 , _:b8 , _:b5 , _:b11 , _:b19 , _:b14 , _:b15 , _:b16 ;
+      sia:toDatapoint sia:C ;
+      =       _:b9 .
+
+sia:dvB2
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 2 ;
+      sia:value "3"^^xsd:double ;
+      =       sia:dvB2 .
+
+sia:F
+      a       sia:Datapoint , sia:OrderableThing , owl:Thing ;
+      sia:dimVal sia:dvF2 , sia:dvF1 ;
+      sia:directlyFollows sia:E ;
+      sia:follows sia:A , sia:D , sia:E , sia:B , sia:C ;
+      sia:memberOfOrderedSet
+              _:b23 ;
+      sia:orderedIndex "5"^^xsd:int ;
+      =       sia:F .
+
+sia:dvA2
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 2 ;
+      sia:value "1"^^xsd:double ;
+      =       sia:dvA2 .
+
+_:b24
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 1 ;
+      sia:value 0.0e0 ;
+      =       _:b24 .
+
+sia:orderedIndex
+      a       owl:DatatypeProperty ;
+      rdfs:subPropertyOf owl:topDataProperty , sia:orderedIndex ;
+      owl:equivalentProperty
+              sia:orderedIndex ;
+      owl:propertyDisjointWith
+              owl:bottomDataProperty .
+
+_:b13
+      a       sia:OrderableThing , owl:Thing , sia:VectorTableElement ;
+      sia:dimVal _:b25 , _:b24 ;
+      sia:directlyFollows _:b10 ;
+      sia:follows _:b10 , _:b12 ;
+      sia:fromDatapoint sia:A ;
+      sia:memberOfOrderedSet
+              _:b17 ;
+      sia:orderedIndex "2"^^xsd:int , 2 ;
+      sia:precedes _:b2 , _:b18 , _:b6 , _:b7 , _:b8 , _:b5 , _:b9 , _:b11 , _:b19 , _:b14 , _:b15 , _:b16 ;
+      sia:toDatapoint sia:B ;
+      =       _:b13 .
+
+_:b7  a       sia:OrderableThing , owl:Thing , sia:VectorTableElement ;
+      sia:dimVal _:b26 , _:b27 ;
+      sia:directlyFollows _:b9 ;
+      sia:follows _:b6 , _:b9 , _:b10 , _:b12 , _:b13 ;
+      sia:fromDatapoint sia:B ;
+      sia:memberOfOrderedSet
+              _:b17 ;
+      sia:orderedIndex "5"^^xsd:int ;
+      sia:precedes _:b2 , _:b18 , _:b8 , _:b5 , _:b11 , _:b19 , _:b14 , _:b15 , _:b16 ;
+      sia:toDatapoint sia:D ;
+      =       _:b7 .
+
+sia:dimVal
+      a       owl:ObjectProperty ;
+      rdfs:range sia:DimensionValue ;
+      rdfs:subPropertyOf sia:dimVal , owl:topObjectProperty ;
+      owl:equivalentProperty
+              sia:dimVal ;
+      owl:propertyDisjointWith
+              owl:bottomObjectProperty .
+
+_:b28
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 1 ;
+      sia:value 0.0e0 ;
+      =       _:b28 .
+
+_:b29
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 2 ;
+      sia:value 2.0e0 , "2"^^xsd:double ;
+      =       _:b29 .
+
+_:b30
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 2 ;
+      sia:value -1.0e0 ;
+      =       _:b30 .
+
+_:b31
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 2 ;
+      sia:value 1.0e0 , "1"^^xsd:double ;
+      =       _:b31 .
+
+sia:B
+      a       sia:Datapoint , sia:OrderableThing , owl:Thing ;
+      sia:dimVal sia:dvB2 , sia:dvB1 ;
+      sia:directlyFollows sia:A ;
+      sia:follows sia:A ;
+      sia:memberOfOrderedSet
+              _:b23 ;
+      sia:orderedIndex "1"^^xsd:int , 1 ;
+      sia:precedes sia:D , sia:E , sia:F , sia:C ;
+      =       sia:B .
+
+_:b32
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 1 ;
+      sia:value 1.0e0 , "1"^^xsd:double ;
+      =       _:b32 .
+
+sia:DimensionValue
+      a       owl:Class ;
+      rdfs:subClassOf owl:Thing ;
+      owl:disjointWith owl:Nothing ;
+      owl:equivalentClass sia:DimensionValue .
+
+_:b33
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 1 ;
+      sia:value 2.0e0 , "2"^^xsd:double ;
+      =       _:b33 .
+
+sia:dvD1
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 1 ;
+      sia:value "2"^^xsd:double ;
+      =       sia:dvD1 .
+
+_:b34
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 1 ;
+      sia:value 1.0e0 , "1"^^xsd:double ;
+      =       _:b34 .
+
+_:b5  a       sia:OrderableThing , owl:Thing , sia:VectorTableElement ;
+      sia:dimVal _:b35 , _:b36 ;
+      sia:directlyFollows _:b8 ;
+      sia:follows _:b6 , _:b7 , _:b8 , _:b9 , _:b10 , _:b11 , _:b12 , _:b13 , _:b14 , _:b15 , _:b16 ;
+      sia:fromDatapoint sia:C ;
+      sia:memberOfOrderedSet
+              _:b17 ;
+      sia:orderedIndex "11"^^xsd:int ;
+      sia:precedes _:b2 , _:b18 , _:b19 ;
+      sia:toDatapoint sia:F ;
+      =       _:b5 .
+
+_:b10
+      a       sia:OrderableThing , owl:Thing , sia:VectorTableElement ;
+      sia:dimVal _:b28 , _:b37 ;
+      sia:directlyFollows _:b12 ;
+      sia:follows _:b12 ;
+      sia:fromDatapoint sia:D ;
+      sia:memberOfOrderedSet
+              _:b17 ;
+      sia:orderedIndex "1"^^xsd:int , 1 ;
+      sia:precedes _:b2 , _:b18 , _:b8 , _:b5 , _:b9 , _:b19 , _:b11 , _:b13 , _:b15 , _:b6 , _:b7 , _:b14 , _:b16 ;
+      sia:toDatapoint sia:E ;
+      =       _:b10 .
+
+sia:follows
+      a       owl:TransitiveProperty , owl:ObjectProperty ;
+      rdfs:domain sia:OrderableThing ;
+      rdfs:range sia:OrderableThing ;
+      rdfs:subPropertyOf sia:follows , owl:topObjectProperty ;
+      owl:equivalentProperty
+              sia:follows ;
+      owl:inverseOf sia:precedes ;
+      owl:propertyDisjointWith
+              owl:bottomObjectProperty .
+
+sia:OrderedSet
+      a       owl:Class ;
+      rdfs:subClassOf owl:Thing ;
+      owl:disjointWith owl:Nothing ;
+      owl:equivalentClass sia:OrderedSet .
+
+_:b19
+      a       sia:OrderableThing , owl:Thing , sia:VectorTableElement ;
+      sia:dimVal _:b30 , _:b38 ;
+      sia:directlyFollows _:b2 ;
+      sia:follows _:b2 , _:b8 , _:b5 , _:b9 , _:b10 , _:b11 , _:b12 , _:b13 , _:b15 , _:b6 , _:b7 , _:b14 , _:b16 ;
+      sia:fromDatapoint sia:B ;
+      sia:memberOfOrderedSet
+              _:b17 ;
+      sia:orderedIndex "13"^^xsd:int ;
+      sia:precedes _:b18 ;
+      sia:toDatapoint sia:F ;
+      =       _:b19 .
+
+sia:dvE1
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 1 ;
+      sia:value "2"^^xsd:double ;
+      =       sia:dvE1 .
+
+_:b15
+      a       sia:OrderableThing , owl:Thing , sia:VectorTableElement ;
+      sia:dimVal _:b39 , _:b40 ;
+      sia:directlyFollows _:b14 ;
+      sia:follows _:b6 , _:b7 , _:b9 , _:b10 , _:b12 , _:b13 , _:b14 ;
+      sia:fromDatapoint sia:A ;
+      sia:memberOfOrderedSet
+              _:b17 ;
+      sia:orderedIndex "7"^^xsd:int ;
+      sia:precedes _:b2 , _:b18 , _:b8 , _:b5 , _:b11 , _:b19 , _:b16 ;
+      sia:toDatapoint sia:C ;
+      =       _:b15 .
+
+_:b6  a       sia:OrderableThing , owl:Thing , sia:VectorTableElement ;
+      sia:dimVal _:b29 , _:b41 ;
+      sia:directlyFollows _:b13 ;
+      sia:follows _:b10 , _:b12 , _:b13 ;
+      sia:fromDatapoint sia:C ;
+      sia:memberOfOrderedSet
+              _:b17 ;
+      sia:orderedIndex "3"^^xsd:int ;
+      sia:precedes _:b2 , _:b18 , _:b7 , _:b8 , _:b5 , _:b9 , _:b11 , _:b19 , _:b14 , _:b15 , _:b16 ;
+      sia:toDatapoint sia:E ;
+      =       _:b6 .
+
+sia:dvC2
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 2 ;
+      sia:value "1"^^xsd:double ;
+      =       sia:dvC2 .
+
+_:b25
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 2 ;
+      sia:value 2.0e0 , "2"^^xsd:double ;
+      =       _:b25 .
+
+owl:Thing
+      a       owl:Class ;
+      owl:complementOf owl:Nothing ;
+      owl:disjointWith owl:Nothing ;
+      owl:equivalentClass owl:Thing .
+
+_:b26
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 1 ;
+      sia:value 1.0e0 , "1"^^xsd:double ;
+      =       _:b26 .
+
+sia:fromDatapoint
+      a       owl:ObjectProperty ;
+      rdfs:subPropertyOf sia:fromDatapoint , owl:topObjectProperty ;
+      owl:equivalentProperty
+              sia:fromDatapoint ;
+      owl:propertyDisjointWith
+              owl:bottomObjectProperty .
+
+_:b35
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 1 ;
+      sia:value 1.0e0 , "1"^^xsd:double ;
+      =       _:b35 .
+
+_:b38
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 1 ;
+      sia:value 2.0e0 , "2"^^xsd:double ;
+      =       _:b38 .
+
+sia:dvF1
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 1 ;
+      sia:value "3"^^xsd:double ;
+      =       sia:dvF1 .
+
+sia:C
+      a       sia:Datapoint , sia:OrderableThing , owl:Thing ;
+      sia:dimVal sia:dvC2 , sia:dvC1 ;
+      sia:directlyFollows sia:B ;
+      sia:follows sia:A , sia:B ;
+      sia:memberOfOrderedSet
+              _:b23 ;
+      sia:orderedIndex "2"^^xsd:int , 2 ;
+      sia:precedes sia:D , sia:E , sia:F ;
+      =       sia:C .
+
+_:b42
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 2 ;
+      sia:value -1.0e0 ;
+      =       _:b42 .
+
+_:b37
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 2 ;
+      sia:value 1.0e0 , "1"^^xsd:double ;
+      =       _:b37 .
+
+sia:dvD2
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 2 ;
+      sia:value "2"^^xsd:double ;
+      =       sia:dvD2 .
+
+sia:Datapoint
+      a       owl:Class ;
+      rdfs:subClassOf sia:OrderableThing , owl:Thing ;
+      owl:disjointWith owl:Nothing ;
+      owl:equivalentClass sia:Datapoint .
+
+_:b8  a       sia:OrderableThing , owl:Thing , sia:VectorTableElement ;
+      sia:dimVal _:b20 , _:b43 ;
+      sia:directlyFollows _:b16 ;
+      sia:follows _:b6 , _:b7 , _:b9 , _:b10 , _:b11 , _:b12 , _:b13 , _:b14 , _:b15 , _:b16 ;
+      sia:fromDatapoint sia:A ;
+      sia:memberOfOrderedSet
+              _:b17 ;
+      sia:orderedIndex "10"^^xsd:int ;
+      sia:precedes _:b2 , _:b18 , _:b5 , _:b19 ;
+      sia:toDatapoint sia:D ;
+      =       _:b8 .
+
+_:b3  a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 1 ;
+      sia:value 1.0e0 , "1"^^xsd:double ;
+      =       _:b3 .
+
+sia:D
+      a       sia:Datapoint , sia:OrderableThing , owl:Thing ;
+      sia:dimVal sia:dvD1 , sia:dvD2 ;
+      sia:directlyFollows sia:C ;
+      sia:follows sia:A , sia:B , sia:C ;
+      sia:memberOfOrderedSet
+              _:b23 ;
+      sia:orderedIndex "3"^^xsd:int ;
+      sia:precedes sia:E , sia:F ;
+      =       sia:D .
+
+sia:value
+      a       owl:DatatypeProperty ;
+      rdfs:subPropertyOf sia:value , owl:topDataProperty ;
+      owl:equivalentProperty
+              sia:value ;
+      owl:propertyDisjointWith
+              owl:bottomDataProperty .
+
+sia:dimension
+      a       owl:DatatypeProperty ;
+      rdfs:subPropertyOf owl:topDataProperty , sia:dimension ;
+      owl:equivalentProperty
+              sia:dimension ;
+      owl:propertyDisjointWith
+              owl:bottomDataProperty .
+
+_:b11
+      a       sia:OrderableThing , owl:Thing , sia:VectorTableElement ;
+      sia:dimVal _:b44 , _:b32 ;
+      sia:directlyFollows _:b15 ;
+      sia:follows _:b6 , _:b7 , _:b9 , _:b10 , _:b12 , _:b13 , _:b14 , _:b15 ;
+      sia:fromDatapoint sia:B ;
+      sia:memberOfOrderedSet
+              _:b17 ;
+      sia:orderedIndex "8"^^xsd:int ;
+      sia:precedes _:b2 , _:b18 , _:b8 , _:b5 , _:b19 , _:b16 ;
+      sia:toDatapoint sia:E ;
+      =       _:b11 .
+
+sia:dvE2
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 2 ;
+      sia:value "3"^^xsd:double ;
+      =       sia:dvE2 .
+
+_:b45
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 1 ;
+      sia:value 1.0e0 , "1"^^xsd:double ;
+      =       _:b45 .
+
+sia:memberOfOrderedSet
+      a       owl:ObjectProperty ;
+      rdfs:subPropertyOf owl:topObjectProperty , sia:memberOfOrderedSet ;
+      owl:equivalentProperty
+              sia:memberOfOrderedSet ;
+      owl:propertyDisjointWith
+              owl:bottomObjectProperty .
+
+_:b36
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 2 ;
+      sia:value 1.0e0 , "1"^^xsd:double ;
+      =       _:b36 .
+
+_:b22
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 1 ;
+      sia:value 1.0e0 , "1"^^xsd:double ;
+      =       _:b22 .
+
+sia:directlyFollows
+      a       owl:ObjectProperty ;
+      rdfs:domain sia:OrderableThing ;
+      rdfs:range sia:OrderableThing ;
+      rdfs:subPropertyOf sia:directlyFollows , sia:follows , owl:topObjectProperty ;
+      owl:equivalentProperty
+              sia:directlyFollows ;
+      owl:propertyDisjointWith
+              owl:bottomObjectProperty .
+
+_:b44
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 2 ;
+      sia:value 0.0e0 ;
+      =       _:b44 .
+
+sia:OrderableThing
+      a       owl:Class ;
+      rdfs:subClassOf owl:Thing ;
+      owl:disjointWith owl:Nothing ;
+      owl:equivalentClass sia:OrderableThing .
+
+_:b39
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 2 ;
+      sia:value 0.0e0 ;
+      =       _:b39 .
+
+owl:bottomObjectProperty
+      a       owl:ObjectProperty , owl:IrreflexiveProperty , owl:AsymmetricProperty , owl:SymmetricProperty ;
+      rdfs:domain sia:OrderableThing , sia:DimensionValue ;
+      rdfs:range sia:OrderableThing , sia:DimensionValue ;
+      rdfs:subPropertyOf sia:toDatapoint , sia:directlyFollows , sia:precedes , sia:dimVal , owl:bottomObjectProperty , sia:fromDatapoint , sia:follows , owl:topObjectProperty , sia:memberOfOrderedSet ;
+      owl:equivalentProperty
+              owl:bottomObjectProperty ;
+      owl:propertyDisjointWith
+              sia:toDatapoint , sia:directlyFollows , sia:precedes , sia:dimVal , owl:bottomObjectProperty , sia:fromDatapoint , sia:follows , owl:topObjectProperty , sia:memberOfOrderedSet .
+
+sia:dvC1
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 1 ;
+      sia:value "2"^^xsd:double ;
+      =       sia:dvC1 .
+
+sia:dvF2
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 2 ;
+      sia:value "2"^^xsd:double ;
+      =       sia:dvF2 .
+
+owl:topDataProperty
+      a       owl:DatatypeProperty ;
+      rdfs:subPropertyOf owl:topDataProperty ;
+      owl:equivalentProperty
+              owl:topDataProperty ;
+      owl:propertyDisjointWith
+              owl:bottomDataProperty .
+
+owl:topObjectProperty
+      a       owl:TransitiveProperty , owl:ObjectProperty , owl:SymmetricProperty , owl:ReflexiveProperty ;
+      rdfs:subPropertyOf owl:topObjectProperty ;
+      owl:equivalentProperty
+              owl:topObjectProperty ;
+      owl:propertyDisjointWith
+              owl:bottomObjectProperty .
+
+_:b41
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 1 ;
+      sia:value 0.0e0 ;
+      =       _:b41 .
+
+_:b4  a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 2 ;
+      sia:value 2.0e0 , "2"^^xsd:double ;
+      =       _:b4 .
+
+owl:Nothing
+      a       owl:Class ;
+      rdfs:subClassOf sia:Datapoint , sia:OrderableThing , owl:Thing , sia:OrderedSet , sia:VectorTableElement , sia:DimensionValue ;
+      owl:complementOf owl:Thing ;
+      owl:disjointWith sia:Datapoint , sia:OrderableThing , owl:Thing , sia:OrderedSet , sia:VectorTableElement , sia:DimensionValue , owl:Nothing ;
+      owl:equivalentClass owl:Nothing .
+
+_:b16
+      a       sia:OrderableThing , owl:Thing , sia:VectorTableElement ;
+      sia:dimVal _:b1 , _:b45 ;
+      sia:directlyFollows _:b11 ;
+      sia:follows _:b6 , _:b7 , _:b9 , _:b10 , _:b11 , _:b12 , _:b13 , _:b14 , _:b15 ;
+      sia:fromDatapoint sia:D ;
+      sia:memberOfOrderedSet
+              _:b17 ;
+      sia:orderedIndex "9"^^xsd:int ;
+      sia:precedes _:b2 , _:b18 , _:b8 , _:b5 , _:b19 ;
+      sia:toDatapoint sia:F ;
+      =       _:b16 .
+
+_:b18
+      a       sia:OrderableThing , owl:Thing , sia:VectorTableElement ;
+      sia:dimVal _:b33 , _:b31 ;
+      sia:directlyFollows _:b19 ;
+      sia:follows _:b2 , _:b8 , _:b5 , _:b9 , _:b10 , _:b19 , _:b11 , _:b12 , _:b13 , _:b15 , _:b6 , _:b7 , _:b14 , _:b16 ;
+      sia:fromDatapoint sia:A ;
+      sia:memberOfOrderedSet
+              _:b17 ;
+      sia:orderedIndex "14"^^xsd:int ;
+      sia:toDatapoint sia:F ;
+      =       _:b18 .
+
+_:b23
+      a       owl:Thing , sia:OrderedSet ;
+      =       _:b23 .
+
+sia:E
+      a       sia:Datapoint , sia:OrderableThing , owl:Thing ;
+      sia:dimVal sia:dvE2 , sia:dvE1 ;
+      sia:directlyFollows sia:D ;
+      sia:follows sia:A , sia:D , sia:B , sia:C ;
+      sia:memberOfOrderedSet
+              _:b23 ;
+      sia:orderedIndex "4"^^xsd:int ;
+      sia:precedes sia:F ;
+      =       sia:E .
+
+_:b21
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 2 ;
+      sia:value -2.0e0 ;
+      =       _:b21 .
+
+sia:dvB1
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 1 ;
+      sia:value "1"^^xsd:double ;
+      =       sia:dvB1 .
+
+_:b12
+      a       sia:OrderableThing , owl:Thing , sia:VectorTableElement ;
+      sia:dimVal _:b46 , _:b47 ;
+      sia:fromDatapoint sia:C ;
+      sia:memberOfOrderedSet
+              _:b17 ;
+      sia:orderedIndex "0"^^xsd:int ;
+      sia:precedes _:b2 , _:b18 , _:b8 , _:b5 , _:b9 , _:b10 , _:b19 , _:b11 , _:b13 , _:b15 , _:b6 , _:b7 , _:b14 , _:b16 ;
+      sia:toDatapoint sia:D ;
+      =       _:b12 .
+
+_:b40
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 1 ;
+      sia:value 1.0e0 , "1"^^xsd:double ;
+      =       _:b40 .
+
+_:b27
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 2 ;
+      sia:value -1.0e0 ;
+      =       _:b27 .
+
+owl:bottomDataProperty
+      a       owl:DatatypeProperty ;
+      rdfs:subPropertyOf sia:value , owl:topDataProperty , sia:dimension , sia:orderedIndex , owl:bottomDataProperty ;
+      owl:equivalentProperty
+              owl:bottomDataProperty ;
+      owl:propertyDisjointWith
+              sia:value , owl:topDataProperty , sia:dimension , sia:orderedIndex , owl:bottomDataProperty .
+
+sia:dvA1
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 1 ;
+      sia:value "1"^^xsd:double ;
+      =       sia:dvA1 .
+
+sia:A
+      a       sia:Datapoint , sia:OrderableThing , owl:Thing ;
+      sia:dimVal sia:dvA2 , sia:dvA1 ;
+      sia:memberOfOrderedSet
+              _:b23 ;
+      sia:orderedIndex "0"^^xsd:int ;
+      sia:precedes sia:D , sia:E , sia:F , sia:B , sia:C ;
+      =       sia:A .
+
+_:b17
+      a       owl:Thing , sia:OrderedSet ;
+      =       _:b17 .
+
+_:b46
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 1 ;
+      sia:value 0.0e0 ;
+      =       _:b46 .
+
+_:b43
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 1 ;
+      sia:value 1.0e0 , "1"^^xsd:double ;
+      =       _:b43 .
+
+sia:VectorTableElement
+      a       owl:Class ;
+      rdfs:subClassOf owl:Thing ;
+      owl:disjointWith owl:Nothing ;
+      owl:equivalentClass sia:VectorTableElement .
+
+_:b14
+      a       sia:OrderableThing , owl:Thing , sia:VectorTableElement ;
+      sia:dimVal _:b34 , _:b42 ;
+      sia:directlyFollows _:b7 ;
+      sia:follows _:b6 , _:b7 , _:b9 , _:b10 , _:b12 , _:b13 ;
+      sia:fromDatapoint sia:E ;
+      sia:memberOfOrderedSet
+              _:b17 ;
+      sia:orderedIndex "6"^^xsd:int ;
+      sia:precedes _:b2 , _:b18 , _:b8 , _:b5 , _:b11 , _:b19 , _:b15 , _:b16 ;
+      sia:toDatapoint sia:F ;
+      =       _:b14 .
+
+_:b47
+      a       owl:Thing , sia:DimensionValue ;
+      sia:dimension 2 ;
+      sia:value 1.0e0 , "1"^^xsd:double ;
+      =       _:b47 .
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/rdf/finalModel.rdf	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,1029 @@
+<rdf:RDF
+    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+    xmlns:owl="http://www.w3.org/2002/07/owl#"
+    xmlns:abc="http://example.org/abc#"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
+    xmlns:sia="http://example.org/sia#"
+    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" > 
+  <rdf:Description rdf:about="http://example.org/sia#toDatapoint">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topObjectProperty"/>
+    <rdfs:subPropertyOf rdf:resource="http://example.org/sia#toDatapoint"/>
+    <owl:equivalentProperty rdf:resource="http://example.org/sia#toDatapoint"/>
+    <owl:propertyDisjointWith rdf:resource="http://www.w3.org/2002/07/owl#bottomObjectProperty"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A0">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A0"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A1">
+    <rdf:type rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdf:type rdf:resource="http://example.org/sia#VectorTableElement"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A1"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#int">12</sia:orderedIndex>
+    <sia:precedes rdf:nodeID="A2"/>
+    <sia:precedes rdf:nodeID="A3"/>
+    <sia:memberOfOrderedSet rdf:nodeID="A4"/>
+    <sia:follows rdf:nodeID="A5"/>
+    <sia:follows rdf:nodeID="A6"/>
+    <sia:follows rdf:nodeID="A7"/>
+    <sia:follows rdf:nodeID="A8"/>
+    <sia:follows rdf:nodeID="A9"/>
+    <sia:follows rdf:nodeID="A10"/>
+    <sia:follows rdf:nodeID="A11"/>
+    <sia:follows rdf:nodeID="A12"/>
+    <sia:follows rdf:nodeID="A13"/>
+    <sia:follows rdf:nodeID="A14"/>
+    <sia:follows rdf:nodeID="A15"/>
+    <sia:follows rdf:nodeID="A16"/>
+    <sia:fromDatapoint rdf:resource="http://example.org/sia#A"/>
+    <sia:directlyFollows rdf:nodeID="A12"/>
+    <sia:dimVal rdf:nodeID="A17"/>
+    <sia:dimVal rdf:nodeID="A18"/>
+    <sia:toDatapoint rdf:resource="http://example.org/sia#E"/>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#precedes">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#TransitiveProperty"/>
+    <rdfs:subPropertyOf rdf:resource="http://example.org/sia#precedes"/>
+    <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topObjectProperty"/>
+    <owl:equivalentProperty rdf:resource="http://example.org/sia#precedes"/>
+    <owl:inverseOf rdf:resource="http://example.org/sia#follows"/>
+    <owl:propertyDisjointWith rdf:resource="http://www.w3.org/2002/07/owl#bottomObjectProperty"/>
+    <rdfs:domain rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdfs:range rdf:resource="http://example.org/sia#OrderableThing"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A19">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A19"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</sia:value>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A8">
+    <rdf:type rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdf:type rdf:resource="http://example.org/sia#VectorTableElement"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A8"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#int">4</sia:orderedIndex>
+    <sia:precedes rdf:nodeID="A1"/>
+    <sia:precedes rdf:nodeID="A5"/>
+    <sia:precedes rdf:nodeID="A7"/>
+    <sia:precedes rdf:nodeID="A6"/>
+    <sia:precedes rdf:nodeID="A2"/>
+    <sia:precedes rdf:nodeID="A9"/>
+    <sia:precedes rdf:nodeID="A11"/>
+    <sia:precedes rdf:nodeID="A12"/>
+    <sia:precedes rdf:nodeID="A3"/>
+    <sia:precedes rdf:nodeID="A16"/>
+    <sia:memberOfOrderedSet rdf:nodeID="A4"/>
+    <sia:follows rdf:nodeID="A10"/>
+    <sia:follows rdf:nodeID="A13"/>
+    <sia:follows rdf:nodeID="A14"/>
+    <sia:follows rdf:nodeID="A15"/>
+    <sia:fromDatapoint rdf:resource="http://example.org/sia#B"/>
+    <sia:directlyFollows rdf:nodeID="A10"/>
+    <sia:dimVal rdf:nodeID="A20"/>
+    <sia:dimVal rdf:nodeID="A21"/>
+    <sia:toDatapoint rdf:resource="http://example.org/sia#C"/>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#dvB2">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:resource="http://example.org/sia#dvB2"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">3</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#F">
+    <rdf:type rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdf:type rdf:resource="http://example.org/sia#Datapoint"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:resource="http://example.org/sia#F"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#int">5</sia:orderedIndex>
+    <sia:memberOfOrderedSet rdf:nodeID="A22"/>
+    <sia:follows rdf:resource="http://example.org/sia#A"/>
+    <sia:follows rdf:resource="http://example.org/sia#B"/>
+    <sia:follows rdf:resource="http://example.org/sia#E"/>
+    <sia:follows rdf:resource="http://example.org/sia#C"/>
+    <sia:follows rdf:resource="http://example.org/sia#D"/>
+    <sia:directlyFollows rdf:resource="http://example.org/sia#E"/>
+    <sia:dimVal rdf:resource="http://example.org/sia#dvF1"/>
+    <sia:dimVal rdf:resource="http://example.org/sia#dvF2"/>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#dvA2">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:resource="http://example.org/sia#dvA2"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A23">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A23"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#orderedIndex">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:subPropertyOf rdf:resource="http://example.org/sia#orderedIndex"/>
+    <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
+    <owl:equivalentProperty rdf:resource="http://example.org/sia#orderedIndex"/>
+    <owl:propertyDisjointWith rdf:resource="http://www.w3.org/2002/07/owl#bottomDataProperty"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A15">
+    <rdf:type rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdf:type rdf:resource="http://example.org/sia#VectorTableElement"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A15"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:orderedIndex>
+    <sia:precedes rdf:nodeID="A1"/>
+    <sia:precedes rdf:nodeID="A5"/>
+    <sia:precedes rdf:nodeID="A7"/>
+    <sia:precedes rdf:nodeID="A6"/>
+    <sia:precedes rdf:nodeID="A8"/>
+    <sia:precedes rdf:nodeID="A2"/>
+    <sia:precedes rdf:nodeID="A9"/>
+    <sia:precedes rdf:nodeID="A11"/>
+    <sia:precedes rdf:nodeID="A10"/>
+    <sia:precedes rdf:nodeID="A12"/>
+    <sia:precedes rdf:nodeID="A3"/>
+    <sia:precedes rdf:nodeID="A16"/>
+    <sia:memberOfOrderedSet rdf:nodeID="A4"/>
+    <sia:follows rdf:nodeID="A13"/>
+    <sia:follows rdf:nodeID="A14"/>
+    <sia:fromDatapoint rdf:resource="http://example.org/sia#A"/>
+    <sia:directlyFollows rdf:nodeID="A14"/>
+    <sia:dimVal rdf:nodeID="A23"/>
+    <sia:dimVal rdf:nodeID="A24"/>
+    <sia:toDatapoint rdf:resource="http://example.org/sia#B"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#int">2</sia:orderedIndex>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A16">
+    <rdf:type rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdf:type rdf:resource="http://example.org/sia#VectorTableElement"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A16"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#int">5</sia:orderedIndex>
+    <sia:precedes rdf:nodeID="A1"/>
+    <sia:precedes rdf:nodeID="A5"/>
+    <sia:precedes rdf:nodeID="A7"/>
+    <sia:precedes rdf:nodeID="A6"/>
+    <sia:precedes rdf:nodeID="A2"/>
+    <sia:precedes rdf:nodeID="A9"/>
+    <sia:precedes rdf:nodeID="A11"/>
+    <sia:precedes rdf:nodeID="A12"/>
+    <sia:precedes rdf:nodeID="A3"/>
+    <sia:memberOfOrderedSet rdf:nodeID="A4"/>
+    <sia:follows rdf:nodeID="A8"/>
+    <sia:follows rdf:nodeID="A10"/>
+    <sia:follows rdf:nodeID="A13"/>
+    <sia:follows rdf:nodeID="A14"/>
+    <sia:follows rdf:nodeID="A15"/>
+    <sia:fromDatapoint rdf:resource="http://example.org/sia#B"/>
+    <sia:directlyFollows rdf:nodeID="A8"/>
+    <sia:dimVal rdf:nodeID="A25"/>
+    <sia:dimVal rdf:nodeID="A26"/>
+    <sia:toDatapoint rdf:resource="http://example.org/sia#D"/>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#dimVal">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topObjectProperty"/>
+    <rdfs:subPropertyOf rdf:resource="http://example.org/sia#dimVal"/>
+    <owl:equivalentProperty rdf:resource="http://example.org/sia#dimVal"/>
+    <owl:propertyDisjointWith rdf:resource="http://www.w3.org/2002/07/owl#bottomObjectProperty"/>
+    <rdfs:range rdf:resource="http://example.org/sia#DimensionValue"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A27">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A27"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A28">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A28"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2</sia:value>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A29">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A29"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">-1.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A30">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A30"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</sia:value>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#B">
+    <rdf:type rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdf:type rdf:resource="http://example.org/sia#Datapoint"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:resource="http://example.org/sia#B"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:orderedIndex>
+    <sia:precedes rdf:resource="http://example.org/sia#E"/>
+    <sia:precedes rdf:resource="http://example.org/sia#C"/>
+    <sia:precedes rdf:resource="http://example.org/sia#D"/>
+    <sia:precedes rdf:resource="http://example.org/sia#F"/>
+    <sia:memberOfOrderedSet rdf:nodeID="A22"/>
+    <sia:follows rdf:resource="http://example.org/sia#A"/>
+    <sia:directlyFollows rdf:resource="http://example.org/sia#A"/>
+    <sia:dimVal rdf:resource="http://example.org/sia#dvB2"/>
+    <sia:dimVal rdf:resource="http://example.org/sia#dvB1"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#int">1</sia:orderedIndex>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A31">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A31"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</sia:value>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#DimensionValue">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
+    <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:equivalentClass rdf:resource="http://example.org/sia#DimensionValue"/>
+    <owl:disjointWith rdf:resource="http://www.w3.org/2002/07/owl#Nothing"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A32">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A32"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2</sia:value>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#dvD1">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:resource="http://example.org/sia#dvD1"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A33">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A33"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</sia:value>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A12">
+    <rdf:type rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdf:type rdf:resource="http://example.org/sia#VectorTableElement"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A12"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#int">11</sia:orderedIndex>
+    <sia:precedes rdf:nodeID="A1"/>
+    <sia:precedes rdf:nodeID="A2"/>
+    <sia:precedes rdf:nodeID="A3"/>
+    <sia:memberOfOrderedSet rdf:nodeID="A4"/>
+    <sia:follows rdf:nodeID="A5"/>
+    <sia:follows rdf:nodeID="A6"/>
+    <sia:follows rdf:nodeID="A7"/>
+    <sia:follows rdf:nodeID="A8"/>
+    <sia:follows rdf:nodeID="A9"/>
+    <sia:follows rdf:nodeID="A10"/>
+    <sia:follows rdf:nodeID="A11"/>
+    <sia:follows rdf:nodeID="A13"/>
+    <sia:follows rdf:nodeID="A14"/>
+    <sia:follows rdf:nodeID="A15"/>
+    <sia:follows rdf:nodeID="A16"/>
+    <sia:fromDatapoint rdf:resource="http://example.org/sia#C"/>
+    <sia:directlyFollows rdf:nodeID="A5"/>
+    <sia:dimVal rdf:nodeID="A34"/>
+    <sia:dimVal rdf:nodeID="A35"/>
+    <sia:toDatapoint rdf:resource="http://example.org/sia#F"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A14">
+    <rdf:type rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdf:type rdf:resource="http://example.org/sia#VectorTableElement"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A14"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:orderedIndex>
+    <sia:precedes rdf:nodeID="A1"/>
+    <sia:precedes rdf:nodeID="A5"/>
+    <sia:precedes rdf:nodeID="A7"/>
+    <sia:precedes rdf:nodeID="A6"/>
+    <sia:precedes rdf:nodeID="A8"/>
+    <sia:precedes rdf:nodeID="A2"/>
+    <sia:precedes rdf:nodeID="A9"/>
+    <sia:precedes rdf:nodeID="A11"/>
+    <sia:precedes rdf:nodeID="A10"/>
+    <sia:precedes rdf:nodeID="A12"/>
+    <sia:precedes rdf:nodeID="A3"/>
+    <sia:precedes rdf:nodeID="A16"/>
+    <sia:precedes rdf:nodeID="A15"/>
+    <sia:memberOfOrderedSet rdf:nodeID="A4"/>
+    <sia:follows rdf:nodeID="A13"/>
+    <sia:fromDatapoint rdf:resource="http://example.org/sia#D"/>
+    <sia:directlyFollows rdf:nodeID="A13"/>
+    <sia:dimVal rdf:nodeID="A36"/>
+    <sia:dimVal rdf:nodeID="A27"/>
+    <sia:toDatapoint rdf:resource="http://example.org/sia#E"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#int">1</sia:orderedIndex>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#follows">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#TransitiveProperty"/>
+    <rdfs:subPropertyOf rdf:resource="http://example.org/sia#follows"/>
+    <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topObjectProperty"/>
+    <owl:equivalentProperty rdf:resource="http://example.org/sia#follows"/>
+    <owl:inverseOf rdf:resource="http://example.org/sia#precedes"/>
+    <owl:propertyDisjointWith rdf:resource="http://www.w3.org/2002/07/owl#bottomObjectProperty"/>
+    <rdfs:domain rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdfs:range rdf:resource="http://example.org/sia#OrderableThing"/>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#OrderedSet">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
+    <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:equivalentClass rdf:resource="http://example.org/sia#OrderedSet"/>
+    <owl:disjointWith rdf:resource="http://www.w3.org/2002/07/owl#Nothing"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A2">
+    <rdf:type rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdf:type rdf:resource="http://example.org/sia#VectorTableElement"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A2"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#int">13</sia:orderedIndex>
+    <sia:precedes rdf:nodeID="A3"/>
+    <sia:memberOfOrderedSet rdf:nodeID="A4"/>
+    <sia:follows rdf:nodeID="A5"/>
+    <sia:follows rdf:nodeID="A1"/>
+    <sia:follows rdf:nodeID="A6"/>
+    <sia:follows rdf:nodeID="A7"/>
+    <sia:follows rdf:nodeID="A8"/>
+    <sia:follows rdf:nodeID="A9"/>
+    <sia:follows rdf:nodeID="A10"/>
+    <sia:follows rdf:nodeID="A11"/>
+    <sia:follows rdf:nodeID="A12"/>
+    <sia:follows rdf:nodeID="A13"/>
+    <sia:follows rdf:nodeID="A14"/>
+    <sia:follows rdf:nodeID="A15"/>
+    <sia:follows rdf:nodeID="A16"/>
+    <sia:fromDatapoint rdf:resource="http://example.org/sia#B"/>
+    <sia:directlyFollows rdf:nodeID="A1"/>
+    <sia:dimVal rdf:nodeID="A37"/>
+    <sia:dimVal rdf:nodeID="A29"/>
+    <sia:toDatapoint rdf:resource="http://example.org/sia#F"/>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#dvE1">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:resource="http://example.org/sia#dvE1"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A9">
+    <rdf:type rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdf:type rdf:resource="http://example.org/sia#VectorTableElement"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A9"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#int">7</sia:orderedIndex>
+    <sia:precedes rdf:nodeID="A1"/>
+    <sia:precedes rdf:nodeID="A5"/>
+    <sia:precedes rdf:nodeID="A7"/>
+    <sia:precedes rdf:nodeID="A2"/>
+    <sia:precedes rdf:nodeID="A11"/>
+    <sia:precedes rdf:nodeID="A12"/>
+    <sia:precedes rdf:nodeID="A3"/>
+    <sia:memberOfOrderedSet rdf:nodeID="A4"/>
+    <sia:follows rdf:nodeID="A6"/>
+    <sia:follows rdf:nodeID="A8"/>
+    <sia:follows rdf:nodeID="A10"/>
+    <sia:follows rdf:nodeID="A13"/>
+    <sia:follows rdf:nodeID="A14"/>
+    <sia:follows rdf:nodeID="A15"/>
+    <sia:follows rdf:nodeID="A16"/>
+    <sia:fromDatapoint rdf:resource="http://example.org/sia#A"/>
+    <sia:directlyFollows rdf:nodeID="A6"/>
+    <sia:dimVal rdf:nodeID="A38"/>
+    <sia:dimVal rdf:nodeID="A39"/>
+    <sia:toDatapoint rdf:resource="http://example.org/sia#C"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A10">
+    <rdf:type rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdf:type rdf:resource="http://example.org/sia#VectorTableElement"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A10"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#int">3</sia:orderedIndex>
+    <sia:precedes rdf:nodeID="A1"/>
+    <sia:precedes rdf:nodeID="A5"/>
+    <sia:precedes rdf:nodeID="A7"/>
+    <sia:precedes rdf:nodeID="A6"/>
+    <sia:precedes rdf:nodeID="A8"/>
+    <sia:precedes rdf:nodeID="A2"/>
+    <sia:precedes rdf:nodeID="A9"/>
+    <sia:precedes rdf:nodeID="A11"/>
+    <sia:precedes rdf:nodeID="A12"/>
+    <sia:precedes rdf:nodeID="A3"/>
+    <sia:precedes rdf:nodeID="A16"/>
+    <sia:memberOfOrderedSet rdf:nodeID="A4"/>
+    <sia:follows rdf:nodeID="A13"/>
+    <sia:follows rdf:nodeID="A14"/>
+    <sia:follows rdf:nodeID="A15"/>
+    <sia:fromDatapoint rdf:resource="http://example.org/sia#C"/>
+    <sia:directlyFollows rdf:nodeID="A15"/>
+    <sia:dimVal rdf:nodeID="A28"/>
+    <sia:dimVal rdf:nodeID="A40"/>
+    <sia:toDatapoint rdf:resource="http://example.org/sia#E"/>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#dvC2">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:resource="http://example.org/sia#dvC2"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A24">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A24"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2</sia:value>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#Thing">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
+    <owl:equivalentClass rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:complementOf rdf:resource="http://www.w3.org/2002/07/owl#Nothing"/>
+    <owl:disjointWith rdf:resource="http://www.w3.org/2002/07/owl#Nothing"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A25">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A25"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</sia:value>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#fromDatapoint">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdfs:subPropertyOf rdf:resource="http://example.org/sia#fromDatapoint"/>
+    <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topObjectProperty"/>
+    <owl:equivalentProperty rdf:resource="http://example.org/sia#fromDatapoint"/>
+    <owl:propertyDisjointWith rdf:resource="http://www.w3.org/2002/07/owl#bottomObjectProperty"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A35">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A35"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</sia:value>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A37">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A37"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2</sia:value>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#dvF1">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:resource="http://example.org/sia#dvF1"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">3</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#C">
+    <rdf:type rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdf:type rdf:resource="http://example.org/sia#Datapoint"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:resource="http://example.org/sia#C"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:orderedIndex>
+    <sia:precedes rdf:resource="http://example.org/sia#E"/>
+    <sia:precedes rdf:resource="http://example.org/sia#D"/>
+    <sia:precedes rdf:resource="http://example.org/sia#F"/>
+    <sia:memberOfOrderedSet rdf:nodeID="A22"/>
+    <sia:follows rdf:resource="http://example.org/sia#A"/>
+    <sia:follows rdf:resource="http://example.org/sia#B"/>
+    <sia:directlyFollows rdf:resource="http://example.org/sia#B"/>
+    <sia:dimVal rdf:resource="http://example.org/sia#dvC1"/>
+    <sia:dimVal rdf:resource="http://example.org/sia#dvC2"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#int">2</sia:orderedIndex>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A41">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A41"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">-1.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A36">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A36"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</sia:value>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#dvD2">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:resource="http://example.org/sia#dvD2"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#Datapoint">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
+    <rdfs:subClassOf rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:equivalentClass rdf:resource="http://example.org/sia#Datapoint"/>
+    <owl:disjointWith rdf:resource="http://www.w3.org/2002/07/owl#Nothing"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A5">
+    <rdf:type rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdf:type rdf:resource="http://example.org/sia#VectorTableElement"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A5"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#int">10</sia:orderedIndex>
+    <sia:precedes rdf:nodeID="A1"/>
+    <sia:precedes rdf:nodeID="A2"/>
+    <sia:precedes rdf:nodeID="A12"/>
+    <sia:precedes rdf:nodeID="A3"/>
+    <sia:memberOfOrderedSet rdf:nodeID="A4"/>
+    <sia:follows rdf:nodeID="A6"/>
+    <sia:follows rdf:nodeID="A7"/>
+    <sia:follows rdf:nodeID="A8"/>
+    <sia:follows rdf:nodeID="A9"/>
+    <sia:follows rdf:nodeID="A10"/>
+    <sia:follows rdf:nodeID="A11"/>
+    <sia:follows rdf:nodeID="A13"/>
+    <sia:follows rdf:nodeID="A14"/>
+    <sia:follows rdf:nodeID="A15"/>
+    <sia:follows rdf:nodeID="A16"/>
+    <sia:fromDatapoint rdf:resource="http://example.org/sia#A"/>
+    <sia:directlyFollows rdf:nodeID="A7"/>
+    <sia:dimVal rdf:nodeID="A42"/>
+    <sia:dimVal rdf:nodeID="A19"/>
+    <sia:toDatapoint rdf:resource="http://example.org/sia#D"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A18">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A18"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</sia:value>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#D">
+    <rdf:type rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdf:type rdf:resource="http://example.org/sia#Datapoint"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:resource="http://example.org/sia#D"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#int">3</sia:orderedIndex>
+    <sia:precedes rdf:resource="http://example.org/sia#E"/>
+    <sia:precedes rdf:resource="http://example.org/sia#F"/>
+    <sia:memberOfOrderedSet rdf:nodeID="A22"/>
+    <sia:follows rdf:resource="http://example.org/sia#A"/>
+    <sia:follows rdf:resource="http://example.org/sia#B"/>
+    <sia:follows rdf:resource="http://example.org/sia#C"/>
+    <sia:directlyFollows rdf:resource="http://example.org/sia#C"/>
+    <sia:dimVal rdf:resource="http://example.org/sia#dvD1"/>
+    <sia:dimVal rdf:resource="http://example.org/sia#dvD2"/>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#value">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
+    <rdfs:subPropertyOf rdf:resource="http://example.org/sia#value"/>
+    <owl:equivalentProperty rdf:resource="http://example.org/sia#value"/>
+    <owl:propertyDisjointWith rdf:resource="http://www.w3.org/2002/07/owl#bottomDataProperty"/>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#dimension">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:subPropertyOf rdf:resource="http://example.org/sia#dimension"/>
+    <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
+    <owl:equivalentProperty rdf:resource="http://example.org/sia#dimension"/>
+    <owl:propertyDisjointWith rdf:resource="http://www.w3.org/2002/07/owl#bottomDataProperty"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A11">
+    <rdf:type rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdf:type rdf:resource="http://example.org/sia#VectorTableElement"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A11"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#int">8</sia:orderedIndex>
+    <sia:precedes rdf:nodeID="A1"/>
+    <sia:precedes rdf:nodeID="A5"/>
+    <sia:precedes rdf:nodeID="A7"/>
+    <sia:precedes rdf:nodeID="A2"/>
+    <sia:precedes rdf:nodeID="A12"/>
+    <sia:precedes rdf:nodeID="A3"/>
+    <sia:memberOfOrderedSet rdf:nodeID="A4"/>
+    <sia:follows rdf:nodeID="A6"/>
+    <sia:follows rdf:nodeID="A8"/>
+    <sia:follows rdf:nodeID="A9"/>
+    <sia:follows rdf:nodeID="A10"/>
+    <sia:follows rdf:nodeID="A13"/>
+    <sia:follows rdf:nodeID="A14"/>
+    <sia:follows rdf:nodeID="A15"/>
+    <sia:follows rdf:nodeID="A16"/>
+    <sia:fromDatapoint rdf:resource="http://example.org/sia#B"/>
+    <sia:directlyFollows rdf:nodeID="A9"/>
+    <sia:dimVal rdf:nodeID="A31"/>
+    <sia:dimVal rdf:nodeID="A43"/>
+    <sia:toDatapoint rdf:resource="http://example.org/sia#E"/>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#dvE2">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:resource="http://example.org/sia#dvE2"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">3</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A44">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A44"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</sia:value>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#memberOfOrderedSet">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topObjectProperty"/>
+    <rdfs:subPropertyOf rdf:resource="http://example.org/sia#memberOfOrderedSet"/>
+    <owl:equivalentProperty rdf:resource="http://example.org/sia#memberOfOrderedSet"/>
+    <owl:propertyDisjointWith rdf:resource="http://www.w3.org/2002/07/owl#bottomObjectProperty"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A34">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A34"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</sia:value>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A20">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A20"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</sia:value>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#directlyFollows">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdfs:subPropertyOf rdf:resource="http://example.org/sia#follows"/>
+    <rdfs:subPropertyOf rdf:resource="http://example.org/sia#directlyFollows"/>
+    <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topObjectProperty"/>
+    <owl:equivalentProperty rdf:resource="http://example.org/sia#directlyFollows"/>
+    <owl:propertyDisjointWith rdf:resource="http://www.w3.org/2002/07/owl#bottomObjectProperty"/>
+    <rdfs:domain rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdfs:range rdf:resource="http://example.org/sia#OrderableThing"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A43">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A43"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#OrderableThing">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
+    <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:equivalentClass rdf:resource="http://example.org/sia#OrderableThing"/>
+    <owl:disjointWith rdf:resource="http://www.w3.org/2002/07/owl#Nothing"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A38">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A38"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#bottomObjectProperty">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#SymmetricProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#IrreflexiveProperty"/>
+    <rdfs:subPropertyOf rdf:resource="http://example.org/sia#precedes"/>
+    <rdfs:subPropertyOf rdf:resource="http://example.org/sia#fromDatapoint"/>
+    <rdfs:subPropertyOf rdf:resource="http://example.org/sia#follows"/>
+    <rdfs:subPropertyOf rdf:resource="http://example.org/sia#directlyFollows"/>
+    <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topObjectProperty"/>
+    <rdfs:subPropertyOf rdf:resource="http://example.org/sia#dimVal"/>
+    <rdfs:subPropertyOf rdf:resource="http://example.org/sia#toDatapoint"/>
+    <rdfs:subPropertyOf rdf:resource="http://example.org/sia#memberOfOrderedSet"/>
+    <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#bottomObjectProperty"/>
+    <owl:equivalentProperty rdf:resource="http://www.w3.org/2002/07/owl#bottomObjectProperty"/>
+    <owl:propertyDisjointWith rdf:resource="http://example.org/sia#fromDatapoint"/>
+    <owl:propertyDisjointWith rdf:resource="http://example.org/sia#follows"/>
+    <owl:propertyDisjointWith rdf:resource="http://example.org/sia#precedes"/>
+    <owl:propertyDisjointWith rdf:resource="http://example.org/sia#directlyFollows"/>
+    <owl:propertyDisjointWith rdf:resource="http://www.w3.org/2002/07/owl#topObjectProperty"/>
+    <owl:propertyDisjointWith rdf:resource="http://example.org/sia#dimVal"/>
+    <owl:propertyDisjointWith rdf:resource="http://example.org/sia#toDatapoint"/>
+    <owl:propertyDisjointWith rdf:resource="http://example.org/sia#memberOfOrderedSet"/>
+    <owl:propertyDisjointWith rdf:resource="http://www.w3.org/2002/07/owl#bottomObjectProperty"/>
+    <rdfs:domain rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdfs:domain rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdfs:range rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdfs:range rdf:resource="http://example.org/sia#OrderableThing"/>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#dvC1">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:resource="http://example.org/sia#dvC1"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#dvF2">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:resource="http://example.org/sia#dvF2"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#topDataProperty">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
+    <owl:equivalentProperty rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
+    <owl:propertyDisjointWith rdf:resource="http://www.w3.org/2002/07/owl#bottomDataProperty"/>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#topObjectProperty">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#TransitiveProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#SymmetricProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ReflexiveProperty"/>
+    <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topObjectProperty"/>
+    <owl:equivalentProperty rdf:resource="http://www.w3.org/2002/07/owl#topObjectProperty"/>
+    <owl:propertyDisjointWith rdf:resource="http://www.w3.org/2002/07/owl#bottomObjectProperty"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A40">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A40"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A17">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A17"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2</sia:value>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#Nothing">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
+    <rdfs:subClassOf rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdfs:subClassOf rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdfs:subClassOf rdf:resource="http://example.org/sia#VectorTableElement"/>
+    <rdfs:subClassOf rdf:resource="http://example.org/sia#Datapoint"/>
+    <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <rdfs:subClassOf rdf:resource="http://example.org/sia#OrderedSet"/>
+    <owl:equivalentClass rdf:resource="http://www.w3.org/2002/07/owl#Nothing"/>
+    <owl:complementOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:disjointWith rdf:resource="http://example.org/sia#DimensionValue"/>
+    <owl:disjointWith rdf:resource="http://example.org/sia#OrderableThing"/>
+    <owl:disjointWith rdf:resource="http://www.w3.org/2002/07/owl#Nothing"/>
+    <owl:disjointWith rdf:resource="http://example.org/sia#VectorTableElement"/>
+    <owl:disjointWith rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:disjointWith rdf:resource="http://example.org/sia#Datapoint"/>
+    <owl:disjointWith rdf:resource="http://example.org/sia#OrderedSet"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A7">
+    <rdf:type rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdf:type rdf:resource="http://example.org/sia#VectorTableElement"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A7"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#int">9</sia:orderedIndex>
+    <sia:precedes rdf:nodeID="A1"/>
+    <sia:precedes rdf:nodeID="A5"/>
+    <sia:precedes rdf:nodeID="A2"/>
+    <sia:precedes rdf:nodeID="A12"/>
+    <sia:precedes rdf:nodeID="A3"/>
+    <sia:memberOfOrderedSet rdf:nodeID="A4"/>
+    <sia:follows rdf:nodeID="A6"/>
+    <sia:follows rdf:nodeID="A8"/>
+    <sia:follows rdf:nodeID="A9"/>
+    <sia:follows rdf:nodeID="A10"/>
+    <sia:follows rdf:nodeID="A11"/>
+    <sia:follows rdf:nodeID="A13"/>
+    <sia:follows rdf:nodeID="A14"/>
+    <sia:follows rdf:nodeID="A15"/>
+    <sia:follows rdf:nodeID="A16"/>
+    <sia:fromDatapoint rdf:resource="http://example.org/sia#D"/>
+    <sia:directlyFollows rdf:nodeID="A11"/>
+    <sia:dimVal rdf:nodeID="A44"/>
+    <sia:dimVal rdf:nodeID="A0"/>
+    <sia:toDatapoint rdf:resource="http://example.org/sia#F"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A3">
+    <rdf:type rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdf:type rdf:resource="http://example.org/sia#VectorTableElement"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A3"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#int">14</sia:orderedIndex>
+    <sia:memberOfOrderedSet rdf:nodeID="A4"/>
+    <sia:follows rdf:nodeID="A6"/>
+    <sia:follows rdf:nodeID="A8"/>
+    <sia:follows rdf:nodeID="A2"/>
+    <sia:follows rdf:nodeID="A9"/>
+    <sia:follows rdf:nodeID="A11"/>
+    <sia:follows rdf:nodeID="A13"/>
+    <sia:follows rdf:nodeID="A15"/>
+    <sia:follows rdf:nodeID="A1"/>
+    <sia:follows rdf:nodeID="A5"/>
+    <sia:follows rdf:nodeID="A7"/>
+    <sia:follows rdf:nodeID="A10"/>
+    <sia:follows rdf:nodeID="A12"/>
+    <sia:follows rdf:nodeID="A14"/>
+    <sia:follows rdf:nodeID="A16"/>
+    <sia:fromDatapoint rdf:resource="http://example.org/sia#A"/>
+    <sia:directlyFollows rdf:nodeID="A2"/>
+    <sia:dimVal rdf:nodeID="A30"/>
+    <sia:dimVal rdf:nodeID="A32"/>
+    <sia:toDatapoint rdf:resource="http://example.org/sia#F"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A22">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <rdf:type rdf:resource="http://example.org/sia#OrderedSet"/>
+    <owl:sameAs rdf:nodeID="A22"/>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#E">
+    <rdf:type rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdf:type rdf:resource="http://example.org/sia#Datapoint"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:resource="http://example.org/sia#E"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#int">4</sia:orderedIndex>
+    <sia:precedes rdf:resource="http://example.org/sia#F"/>
+    <sia:memberOfOrderedSet rdf:nodeID="A22"/>
+    <sia:follows rdf:resource="http://example.org/sia#A"/>
+    <sia:follows rdf:resource="http://example.org/sia#B"/>
+    <sia:follows rdf:resource="http://example.org/sia#C"/>
+    <sia:follows rdf:resource="http://example.org/sia#D"/>
+    <sia:directlyFollows rdf:resource="http://example.org/sia#D"/>
+    <sia:dimVal rdf:resource="http://example.org/sia#dvE2"/>
+    <sia:dimVal rdf:resource="http://example.org/sia#dvE1"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A21">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A21"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">-2.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#dvB1">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:resource="http://example.org/sia#dvB1"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A13">
+    <rdf:type rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdf:type rdf:resource="http://example.org/sia#VectorTableElement"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A13"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#int">0</sia:orderedIndex>
+    <sia:precedes rdf:nodeID="A1"/>
+    <sia:precedes rdf:nodeID="A5"/>
+    <sia:precedes rdf:nodeID="A7"/>
+    <sia:precedes rdf:nodeID="A6"/>
+    <sia:precedes rdf:nodeID="A8"/>
+    <sia:precedes rdf:nodeID="A2"/>
+    <sia:precedes rdf:nodeID="A9"/>
+    <sia:precedes rdf:nodeID="A11"/>
+    <sia:precedes rdf:nodeID="A10"/>
+    <sia:precedes rdf:nodeID="A12"/>
+    <sia:precedes rdf:nodeID="A3"/>
+    <sia:precedes rdf:nodeID="A16"/>
+    <sia:precedes rdf:nodeID="A15"/>
+    <sia:precedes rdf:nodeID="A14"/>
+    <sia:memberOfOrderedSet rdf:nodeID="A4"/>
+    <sia:fromDatapoint rdf:resource="http://example.org/sia#C"/>
+    <sia:dimVal rdf:nodeID="A45"/>
+    <sia:dimVal rdf:nodeID="A46"/>
+    <sia:toDatapoint rdf:resource="http://example.org/sia#D"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A39">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A39"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</sia:value>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A26">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A26"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">-1.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#bottomDataProperty">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:subPropertyOf rdf:resource="http://example.org/sia#orderedIndex"/>
+    <rdfs:subPropertyOf rdf:resource="http://example.org/sia#dimension"/>
+    <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
+    <rdfs:subPropertyOf rdf:resource="http://example.org/sia#value"/>
+    <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#bottomDataProperty"/>
+    <owl:equivalentProperty rdf:resource="http://www.w3.org/2002/07/owl#bottomDataProperty"/>
+    <owl:propertyDisjointWith rdf:resource="http://example.org/sia#orderedIndex"/>
+    <owl:propertyDisjointWith rdf:resource="http://example.org/sia#dimension"/>
+    <owl:propertyDisjointWith rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
+    <owl:propertyDisjointWith rdf:resource="http://example.org/sia#value"/>
+    <owl:propertyDisjointWith rdf:resource="http://www.w3.org/2002/07/owl#bottomDataProperty"/>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#dvA1">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:resource="http://example.org/sia#dvA1"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#A">
+    <rdf:type rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdf:type rdf:resource="http://example.org/sia#Datapoint"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:resource="http://example.org/sia#A"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#int">0</sia:orderedIndex>
+    <sia:precedes rdf:resource="http://example.org/sia#E"/>
+    <sia:precedes rdf:resource="http://example.org/sia#B"/>
+    <sia:precedes rdf:resource="http://example.org/sia#C"/>
+    <sia:precedes rdf:resource="http://example.org/sia#D"/>
+    <sia:precedes rdf:resource="http://example.org/sia#F"/>
+    <sia:memberOfOrderedSet rdf:nodeID="A22"/>
+    <sia:dimVal rdf:resource="http://example.org/sia#dvA1"/>
+    <sia:dimVal rdf:resource="http://example.org/sia#dvA2"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A4">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <rdf:type rdf:resource="http://example.org/sia#OrderedSet"/>
+    <owl:sameAs rdf:nodeID="A4"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A46">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A46"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A42">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A42"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</sia:value>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0e0</sia:value>
+  </rdf:Description>
+  <rdf:Description rdf:about="http://example.org/sia#VectorTableElement">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
+    <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:equivalentClass rdf:resource="http://example.org/sia#VectorTableElement"/>
+    <owl:disjointWith rdf:resource="http://www.w3.org/2002/07/owl#Nothing"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A6">
+    <rdf:type rdf:resource="http://example.org/sia#OrderableThing"/>
+    <rdf:type rdf:resource="http://example.org/sia#VectorTableElement"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A6"/>
+    <sia:orderedIndex rdf:datatype="http://www.w3.org/2001/XMLSchema#int">6</sia:orderedIndex>
+    <sia:precedes rdf:nodeID="A1"/>
+    <sia:precedes rdf:nodeID="A5"/>
+    <sia:precedes rdf:nodeID="A7"/>
+    <sia:precedes rdf:nodeID="A2"/>
+    <sia:precedes rdf:nodeID="A9"/>
+    <sia:precedes rdf:nodeID="A11"/>
+    <sia:precedes rdf:nodeID="A12"/>
+    <sia:precedes rdf:nodeID="A3"/>
+    <sia:memberOfOrderedSet rdf:nodeID="A4"/>
+    <sia:follows rdf:nodeID="A8"/>
+    <sia:follows rdf:nodeID="A10"/>
+    <sia:follows rdf:nodeID="A13"/>
+    <sia:follows rdf:nodeID="A14"/>
+    <sia:follows rdf:nodeID="A15"/>
+    <sia:follows rdf:nodeID="A16"/>
+    <sia:fromDatapoint rdf:resource="http://example.org/sia#E"/>
+    <sia:directlyFollows rdf:nodeID="A16"/>
+    <sia:dimVal rdf:nodeID="A41"/>
+    <sia:dimVal rdf:nodeID="A33"/>
+    <sia:toDatapoint rdf:resource="http://example.org/sia#F"/>
+  </rdf:Description>
+  <rdf:Description rdf:nodeID="A45">
+    <rdf:type rdf:resource="http://example.org/sia#DimensionValue"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <owl:sameAs rdf:nodeID="A45"/>
+    <sia:dimension rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sia:dimension>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</sia:value>
+    <sia:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.0e0</sia:value>
+  </rdf:Description>
+</rdf:RDF>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/rdf/siaDatapointOntology.n3	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,82 @@
+@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix owl:     <http://www.w3.org/2002/07/owl#> .
+@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
+@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix abc:     <http://example.org/abc#> .
+@prefix sia:     <http://example.org/sia#> .
+
+sia:OrderableThing a owl:Class.
+sia:Datapoint rdfs:subClassOf sia:OrderableThing.
+sia:DimensionValue a owl:Class .
+
+sia:dimVal rdfs:range sia:DimensionValue .
+
+sia:follows rdfs:range sia:OrderableThing .
+sia:follows rdfs:domain sia:OrderableThing .
+sia:precedes owl:inverseOf sia:follows .
+
+sia:follows rdf:type owl:TransitiveProperty .
+sia:directlyFollows rdfs:subPropertyOf sia:follows .
+
+# The data
+
+sia:A sia:dimVal sia:dvA1;
+	sia:dimVal sia:dvA2;
+	a sia:Datapoint .
+	
+sia:dvA1 sia:dimension "1"^^xsd:integer;
+	sia:value "1"^^xsd:double.
+	
+sia:dvA2 sia:dimension "2"^^xsd:integer;
+	sia:value "1"^^xsd:double.
+	
+sia:B sia:dimVal sia:dvB1;
+	sia:dimVal sia:dvB2;
+	a sia:Datapoint .
+	
+sia:dvB1 sia:dimension "1"^^xsd:integer;
+	sia:value "1"^^xsd:double.
+	
+sia:dvB2 sia:dimension "2"^^xsd:integer;
+	sia:value "3"^^xsd:double.
+	
+sia:C sia:dimVal sia:dvC1;
+	sia:dimVal sia:dvC2;
+	a sia:Datapoint .
+	
+sia:dvC1 sia:dimension "1"^^xsd:integer;
+	sia:value "2"^^xsd:double.
+	
+sia:dvC2 sia:dimension "2"^^xsd:integer;
+	sia:value "1"^^xsd:double.
+	
+sia:D sia:dimVal sia:dvD1;
+	sia:dimVal sia:dvD2;
+	a sia:Datapoint .
+	
+sia:dvD1 sia:dimension "1"^^xsd:integer;
+	sia:value "2"^^xsd:double.
+	
+sia:dvD2 sia:dimension "2"^^xsd:integer;
+	sia:value "2"^^xsd:double.
+	
+sia:E sia:dimVal sia:dvE1;
+	sia:dimVal sia:dvE2;
+	a sia:Datapoint .
+	
+sia:dvE1 sia:dimension "1"^^xsd:integer;
+	sia:value "2"^^xsd:double.
+	
+sia:dvE2 sia:dimension "2"^^xsd:integer;
+	sia:value "3"^^xsd:double.
+	
+sia:F sia:dimVal sia:dvF1;
+	sia:dimVal sia:dvF2;
+	a sia:Datapoint .
+	
+sia:dvF1 sia:dimension "1"^^xsd:integer;
+	sia:value "3"^^xsd:double.
+	
+sia:dvF2 sia:dimension "2"^^xsd:integer;
+	sia:value "2"^^xsd:double.
+	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/rules/functor_example.rules	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,19 @@
+@prefix sia: <http://example.org/sia#>.
+
+[allID:
+(?C rdf:type owl:Restriction), (?C owl:onProperty ?P),
+(?C owl:allValuesFrom ?D)
+->
+(?C owl:equivalentClass all(?P, ?D))
+]
+
+[all2: (?C rdfs:subClassOf all(?P, ?D)) -> print('Rule for ', ?C)
+    [all1b: (?Y rdf:type ?D) <- (?X ?P ?Y), (?X rdf:type ?C) ] ]
+    
+[all3:
+(?S owl:owl:equivalentClass all(?P, ?D))
+makeTemp(?blankNode)
+->
+(?P rdf:type sia:MyP),
+(?D rdf:type sia:MyD)
+]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/sparql/ask.sparql	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,10 @@
+PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
+PREFIX abc:<http://example.org/abc#>
+PREFIX sia:<http://example.org/sia#>
+PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>
+PREFIX owl:<http://www.w3.org/2002/07/owl#>
+PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
+
+ASK {
+	sia:E sia:directlyFollows sia:D  .
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/sparql/construct_vector_table_bnodes.sparql	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,21 @@
+PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
+PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
+PREFIX owl: <http://www.w3.org/2002/07/owl#>
+PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
+PREFIX abc: <http://example.org/abc#>
+PREFIX seq: <http://example.org/seq#>
+PREFIX sia: <http://example.org/sia#>
+
+CONSTRUCT { _:vte rdf:type sia:VectorTableElement;
+			sia:fromDatapoint ?datapoint1;
+			sia:toDatapoint ?datapoint2}
+WHERE
+{
+ 	?datapoint1 sia:memberOfOrderedSet ?bnode .
+ 	?datapoint2 sia:memberOfOrderedSet ?bnode .
+	?bnode a sia:OrderedSet .
+	?datapoint1 sia:orderedIndex ?i1 .
+	?datapoint2 sia:orderedIndex ?i2
+	FILTER ((?datapoint1 != ?datapoint2) && (?i1 < ?i2))
+}
+GROUP BY ?datapoint1 ?datapoint2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/sparql/construct_vector_table_details.sparql	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,30 @@
+PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
+PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
+PREFIX owl: <http://www.w3.org/2002/07/owl#>
+PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
+PREFIX abc: <http://example.org/abc#>
+PREFIX seq: <http://example.org/seq#>
+PREFIX sia: <http://example.org/sia#>
+
+CONSTRUCT { ?vte sia:dimVal _:dv .
+			_:dv sia:dimension ?dim;
+			     sia:value ?val}
+WHERE
+{
+	?vte rdf:type sia:VectorTableElement .
+	?vte sia:fromDatapoint ?datapoint1 .
+	?vte sia:toDatapoint ?datapoint2 .
+	?datapoint1 rdf:type sia:Datapoint .
+	?datapoint1 sia:dimVal ?dv1 .
+	?dv1 sia:dimension ?dim .
+	?dv1 sia:value ?val1 .
+	?datapoint2 rdf:type sia:Datapoint .
+	?datapoint2 sia:dimVal ?dv2 .
+	?dv2 sia:dimension ?dim .
+	?dv2 sia:value ?val2 .
+	?datapoint1 sia:orderedIndex ?i1 .
+	?datapoint2 sia:orderedIndex ?i2 .
+	BIND (?val2 - ?val1 AS ?val)
+	FILTER ((?datapoint1 != ?datapoint2) && (?i1 < ?i2))
+}
+GROUP BY ?vte ?datapoint1 ?datapoint2 ?dim ?val
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/sparql/select_all.sparql	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,14 @@
+PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
+PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
+PREFIX owl: <http://www.w3.org/2002/07/owl#>
+PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
+PREFIX abc: <http://example.org/abc#>
+PREFIX seq: <http://example.org/seq#>
+PREFIX sia: <http://example.org/sia#>
+
+SELECT ?s ?p ?o
+WHERE
+{
+	?s ?p ?o
+}
+ORDER BY ?s ?p ?o
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/sparql/select_sia_results.sparql	Sat Dec 29 17:41:06 2012 +0000
@@ -0,0 +1,22 @@
+PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
+PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
+PREFIX owl: <http://www.w3.org/2002/07/owl#>
+PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
+PREFIX abc: <http://example.org/abc#>
+PREFIX seq: <http://example.org/seq#>
+PREFIX sia: <http://example.org/sia#>
+
+SELECT ?vte (group_concat(?val; separator = ",") AS ?vector)
+#SELECT DISTINCT ?vte ?val
+WHERE
+{
+	?vte a sia:VectorTableElement .
+	?vte sia:orderedIndex ?index .
+	?vte sia:fromDatapoint ?fromDP .
+	?vte sia:toDatapoint ?toDP .
+	?vte sia:dimVal ?dv .
+	?dv sia:dimension ?dim .
+	?dv sia:value ?val
+}
+GROUP BY ?vte
+ORDER BY ?vector