From 05bad73fb5c44d951674943020c1ee188341bf21 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Euzenat?= <Jerome.Euzenat@inria.fr>
Date: Wed, 31 Mar 2010 08:45:58 +0000
Subject: [PATCH] - delete tutorial2 ??

---
 html/tutorial/tutorial2/MyApp.java    | 408 -------------------------
 html/tutorial/tutorial2/Skeleton.java | 220 --------------
 html/tutorial/tutorial2/index.html    | 413 --------------------------
 html/tutorial/tutorial2/ontology1.owl | 309 -------------------
 html/tutorial/tutorial2/ontology2.owl | 311 -------------------
 5 files changed, 1661 deletions(-)
 delete mode 100644 html/tutorial/tutorial2/MyApp.java
 delete mode 100644 html/tutorial/tutorial2/Skeleton.java
 delete mode 100644 html/tutorial/tutorial2/index.html
 delete mode 100644 html/tutorial/tutorial2/ontology1.owl
 delete mode 100644 html/tutorial/tutorial2/ontology2.owl

diff --git a/html/tutorial/tutorial2/MyApp.java b/html/tutorial/tutorial2/MyApp.java
deleted file mode 100644
index df0a739e..00000000
--- a/html/tutorial/tutorial2/MyApp.java
+++ /dev/null
@@ -1,408 +0,0 @@
-/*
- * $Id$
- *
- * Copyright (C) INRIA, 2009-2010
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.  Authorship
- * of the modifications may be determined from the ChangeLog placed at
- * the end of this file.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- * USA.
- */
-
-// Alignment API classes
-import org.semanticweb.owl.align.Alignment;
-import org.semanticweb.owl.align.AlignmentException;
-import org.semanticweb.owl.align.AlignmentProcess;
-import org.semanticweb.owl.align.AlignmentVisitor;
-
-// Alignment API implementation classes
-import fr.inrialpes.exmo.align.impl.BasicParameters;
-import fr.inrialpes.exmo.align.impl.ObjectAlignment;
-import fr.inrialpes.exmo.align.impl.URIAlignment;
-import fr.inrialpes.exmo.align.impl.BasicAlignment;
-import fr.inrialpes.exmo.align.impl.method.StringDistAlignment;
-import fr.inrialpes.exmo.align.impl.renderer.OWLAxiomsRendererVisitor;
-import fr.inrialpes.exmo.align.util.NullStream;
-import fr.inrialpes.exmo.align.parser.AlignmentParser;
-
-// Jena
-import com.hp.hpl.jena.rdf.model.ModelFactory;
-import com.hp.hpl.jena.rdf.model.Model;
-import com.hp.hpl.jena.ontology.OntModelSpec;
-import com.hp.hpl.jena.query.QueryFactory;
-import com.hp.hpl.jena.query.Query;
-import com.hp.hpl.jena.query.ResultSet;
-import com.hp.hpl.jena.query.ResultSetFormatter;
-import com.hp.hpl.jena.query.QueryExecution;
-import com.hp.hpl.jena.query.QueryExecutionFactory;
-
-// OWL API
-import org.semanticweb.owlapi.model.IRI;
-import org.semanticweb.owlapi.model.OWLOntologyManager;
-import org.semanticweb.owlapi.model.OWLOntology;
-import org.semanticweb.owlapi.model.OWLOntologyCreationException;
-import org.semanticweb.owlapi.model.OWLClass;
-import org.semanticweb.owlapi.model.OWLAxiom;
-import org.semanticweb.owlapi.model.OWLClassExpression;
-import org.semanticweb.owlapi.model.OWLNamedIndividual;
-import org.semanticweb.owlapi.apibinding.OWLManager;
-import org.semanticweb.owlapi.reasoner.OWLReasoner;
-
-// Pellet
-import com.clarkparsia.pellet.owlapiv3.PelletReasoner;
-
-// IDDL
-import fr.inrialpes.exmo.iddl.IDDLReasoner;
-import fr.inrialpes.exmo.iddl.conf.Semantics;
-
-// SAX standard classes
-import org.xml.sax.SAXException;
-
-// DOM Standard classes
-import org.w3c.dom.Document;
-import org.w3c.dom.NodeList;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.xpath.XPathFactory;
-import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathExpression;
-import javax.xml.xpath.XPathExpressionException;
-import javax.xml.xpath.XPathConstants;
-
-// Java standard classes
-import java.util.Set;
-import java.util.Properties;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.io.BufferedWriter;
-import java.io.OutputStreamWriter;
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.io.InputStream;
-import java.io.FileInputStream;
-import java.io.PrintStream;
-import java.io.FileNotFoundException;
-import java.io.ByteArrayInputStream;
-import java.io.StringReader;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.io.File;
-import java.io.FileWriter;
-import java.net.URI;
-import java.net.URL;
-import java.net.MalformedURLException;
-import java.net.URISyntaxException;
-
-/**
- * MyApp
- *
- * Reconcile two ontologies in various ways
- */
-
-public class MyApp {
-
-    String RESTServ = "http://aserv.inrialpes.fr/rest/";
-
-    public static void main( String[] args ) {
-	new MyApp().run( args );
-    }
-
-    public void run( String[] args ) {
-	String myId = "JETest";
-	Alignment al = null;
-	URI uri1 = null;
-	URI uri2 = null;
-	//String u1 = "http://alignapi.gforge.inria.fr/tutorial/tutorial2/ontology1.owl";
-	//String u2 = "http://alignapi.gforge.inria.fr/tutorial/tutorial2/ontology2.owl";
-	String u1 = "file:ontology1.owl";
-	String u2 = "file:ontology2.owl";
-	String method = "fr.inrialpes.exmo.align.impl.method.StringDistAlignment";
-	String tempOntoFileName = "/tmp/myresult.owl";
-	Properties params = new BasicParameters();
-	try {
-	    uri1 = new URI( u1 );
-	    uri2 = new URI( u2 );
-	} catch (URISyntaxException use) { use.printStackTrace(); }
-
-	// ***** First exercise: matching *****
-	// (Sol1) Try to find an alignment between two ontologies from the server
-	// ask for it
-	String found = getFromURLString( RESTServ+"find?onto1="+u1+"&onto2="+u2, false );
-	// retrieve it
-	// If there exists alignments, ask for the first one
-	NodeList alset = extractFromResult( found, "//findResponse/alignmentList/alid[1]/text()", false );
-
-	// (Sol3) Match the ontologies on the server
-	if ( alset.getLength() == 0 ) {
-	    // call for matching
-	    // * tested (must add force = true)
-	    //String match = getFromURLString( RESTServ+"match?onto1="+u1+"&onto2="+u2+"&method="+method+"&pretty="+myId+"&action=Match", true );
-	    // This returns a URI
-	}
-
-	if ( alset.getLength() > 0 ) {
-	    // Ask it
-	    String alid = alset.item(0).getNodeValue();
-	    found = getFromURLString( RESTServ+"retrieve?method=fr.inrialpes.exmo.align.impl.renderer.RDFRendererVisitor&id="+alid, false );
-	    alset = extractFromResult( found, "//retrieveResponse/result/*[1]",true );
-
-	    // This code is heavy as hell
-	    String xmlString = null;
-	    try {
-		// Set up the output transformer
-		TransformerFactory transfac = TransformerFactory.newInstance();
-		Transformer trans = transfac.newTransformer();
-		trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
-		trans.setOutputProperty(OutputKeys.INDENT, "yes");
-
-		// Print the DOM node
-		StringWriter sw = new StringWriter();
-		DOMSource source = new DOMSource( alset.item(0) );
-		trans.transform(source, new StreamResult(sw));
-		xmlString = sw.toString();
-		//System.out.println(xmlString);
-	    } catch (TransformerException e) {
-		e.printStackTrace();
-	    }
-
-	    // parse it as an alignment
-	    // (better passing to the SAXHandler)
-	    try {
-		AlignmentParser aparser = new AlignmentParser(0);
-		Alignment alu = aparser.parseString( xmlString );
-		al = ObjectAlignment.toObjectAlignment((URIAlignment)alu);
-	    } catch (SAXException saxe) { 
-		saxe.printStackTrace(); 
-	    } catch (AlignmentException ae) { 
-		ae.printStackTrace();
-	    }
-	}
-
-	// (Sol2) Match the ontologies with a local algorithm
-	if ( al == null ){ // Unfortunatelly no alignment was available
-	    AlignmentProcess ap = new StringDistAlignment();
-	    try {
-		ap.init( uri1, uri2 );
-		params.setProperty("stringFunction","smoaDistance");
-		params.setProperty("noinst","1");
-		ap.align( (Alignment)null, params );
-		al = ap;
-		// Supplementary:
-		// upload the result on the server
-		// store it
-	    } catch (AlignmentException ae) { ae.printStackTrace(); }
-	}
-
-	// Alternative: find an intermediate ontology between which there are alignments
-	// find (basically a graph traversal operation)
-	// retrieve them
-	// parse them
-	// compose them
-
-	// ***** Second exercise: merging/transforming *****
-
-	// (Sol1) generate a merged ontology between the ontologies (OWLAxioms)
-	PrintWriter writer = null;
-	File merged = new File( tempOntoFileName );
-	try {
-	    writer = new PrintWriter ( new FileWriter( merged, false ), true );
-	    AlignmentVisitor renderer = new OWLAxiomsRendererVisitor(writer);
-	    al.render(renderer);
-	} catch (UnsupportedEncodingException uee) {
-	    uee.printStackTrace();
-	} catch (AlignmentException ae) {
-	    ae.printStackTrace();
-	} catch (IOException ioe) { 
-	    ioe.printStackTrace();
-	} finally {
-	    if ( writer != null ) {
-		writer.flush();
-		writer.close();
-	    }
-	}
-
-	// (Sol2) import the data from one ontology into the other
-
-	// ***** Third exercise: querying/reasoning *****
-
-	// (Sol1) Use SPARQL to answer queries (at the data level)
-	InputStream in = null;
-	QueryExecution qe = null;
-	try {
-	        in = new FileInputStream( merged );
-		//in = new URL("http://alignapi.gforge.inria.fr/tutorial/tutorial2/ontology1.owl").openStream();
-		//OntModelSpec.OWL_MEM_RDFS_INF or no arguments to see the difference...
-		Model model = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM_RULE_INF,null);
-	    model.read(in,"file:///tmp/myresult.owl"); 
-	    in.close();
-	
-	    // Create a new query
-	    // Could also be selected by supervisor ???
-	    String queryString = 
-		"PREFIX foaf: <http://xmlns.com/foaf/0.1/> " +
-		"PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> " +
-		"PREFIX aa: <http://alignapi.gforge.inria.fr/tutorial/tutorial2/ontology1.owl#> " +
-		"SELECT ?fn ?ln ?t ?s " +
-		//"SELECT ?fn ?ln " +
-		"WHERE {" +
-                "      ?student rdf:type aa:Estudiante . " +
-		"      ?student aa:firstname  ?fn. " +
-		"      ?student aa:lastname  ?ln. " +
-		"OPTIONAL   {   ?student aa:affiliation ?t . } " +
-		"OPTIONAL   {   ?student aa:supervisor ?s . } " +
-		"      }";
-
-	    Query query = QueryFactory.create(queryString);
-
-	    // Execute the query and obtain results
-	    qe = QueryExecutionFactory.create(query, model);
-	    ResultSet results = qe.execSelect();
-
-	    // Output query results	
-	    ResultSetFormatter.out(System.out, results, query);
-	} catch (FileNotFoundException fnfe) {
-	    fnfe.printStackTrace();
-	} catch (IOException ioe) {
-	    ioe.printStackTrace();
-	} finally {
-	    // Important - free up resources used running the query
-	    if ( qe != null ) qe.close();
-	}
-
-	// Alternative: Use Pellet to answer queries
-
-	// ***** Fourth exercise: reasoning *****
-
-	// Variant 1: reasoning with merged ontologies
-	OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
-	//Pellet
-	OWLReasoner reasoner = null;
-
-	//System.setErr( new PrintStream( new NullStream() ) );
-	// Load the ontology 
-	try {
-	    OWLOntology ontology = manager.loadOntology( IRI.create( "file://"+tempOntoFileName ) );
-	    reasoner = new PelletReasoner( ontology, org.semanticweb.owlapi.reasoner.BufferingMode.NON_BUFFERING );
-	    reasoner.prepareReasoner();
-	} catch (OWLOntologyCreationException ooce) { 
-	    ooce.printStackTrace(); 
-	}
-
-	// get the instances of a class
-	OWLClass estud = manager.getOWLDataFactory().getOWLClass( IRI.create( "http://alignapi.gforge.inria.fr/tutorial/tutorial2/ontology1.owl#Estudiante" ) );   
-	OWLClass person = manager.getOWLDataFactory().getOWLClass( IRI.create( "http://alignapi.gforge.inria.fr/tutorial/tutorial2/ontology2.owl#Person" ) );   
-	OWLClass student = manager.getOWLDataFactory().getOWLClass( IRI.create( "http://alignapi.gforge.inria.fr/tutorial/tutorial2/ontology2.owl#Student" ) );   
-	Set<OWLNamedIndividual> instances  = reasoner.getInstances( estud, false ).getFlattened();
-	System.err.println("Pellet(Merged): There are "+instances.size()+" students "+estud.getIRI());
-
-	testPelletSubClass( manager, reasoner, estud, person );
-	testPelletSubClass( manager, reasoner, estud, student );
-
-	// Variant 2: reasoning with distributed semantics (IDDL)
-	// test consistency of aligned ontologies
-	IDDLReasoner dreasoner = new IDDLReasoner( Semantics.DL );
-	dreasoner.addOntology( uri1 );
-	dreasoner.addOntology( uri2 );
-	dreasoner.addAlignment( al );
-	if ( dreasoner.isConsistent() ) {
-	    System.out.println( "IDDL: the alignment network is consistent");
-	    testIDDLSubClass( dreasoner, uri1, uri2, estud, person );
-	    testIDDLSubClass( dreasoner, uri1, uri2, estud, student );
-         } else {
-	    System.out.println( "IDDL: the alignment network is inconsistent");
-	}
-    }
-
-    public void testPelletSubClass( OWLOntologyManager manager, OWLReasoner reasoner, OWLClassExpression d1, OWLClassExpression d2 ) {
-	OWLAxiom axiom = manager.getOWLDataFactory().getOWLSubClassOfAxiom( d1, d2 );
-	boolean isit = reasoner.isEntailed( axiom );
-	if ( isit ) {
-	    System.out.println( "Pellet(Merged): "+d1+" is subclass of "+d2 );
-	} else {
-	    System.out.println( "Pellet(Merged): "+d1+" is not necessarily subclass of "+d2 );
-	}
-    }
-
-    public void testIDDLSubClass( IDDLReasoner dreasoner, URI onto1, URI onto2, OWLClassExpression d1, OWLClassExpression d2 ) {
-	Alignment al2 = new ObjectAlignment();
-	try {
-	    al2.init( onto1, onto2 );
-	    // add the cell
-	    al2.addAlignCell( d1, d2, "&lt;", 1. );
-	} catch (AlignmentException ae) { ae.printStackTrace(); }
-	if ( dreasoner.isEntailed( al2 ) ) {
-	    System.out.println( "IDDL: "+d1+" <= "+d2+" is entailed" );
-	} else {
-	    System.out.println( "IDDL: "+d1+" <= "+d2+" is not entailed" );
-	}
-    }
-
-    public String getFromURLString( String u, boolean print ){
-	URL url = null;
-	String result = "<?xml version='1.0'?>";
-	try {
-	    url = new URL( u );
-	    BufferedReader in = new BufferedReader(
-    				new InputStreamReader(
-    				  url.openStream()));
-	    String inputLine;
-	    while ((inputLine = in.readLine()) != null) {
-		if (print) System.out.println(inputLine);
-		result += inputLine;
-	    }
-	    in.close();
-	}
-	catch ( MalformedURLException mue ) { mue.printStackTrace(); }
-	catch ( IOException mue ) { mue.printStackTrace(); }
-	return result;
-    }
-
-    public NodeList extractFromResult( String found, String path, boolean print ){
-	Document document = null;
-	NodeList nodes = null;
-	try { // Parse the returned stringAS XML
-	    DocumentBuilder parser =
-		DocumentBuilderFactory.newInstance().newDocumentBuilder();
-	    document = parser.parse(new ByteArrayInputStream( found.getBytes() ));
-	} catch ( ParserConfigurationException pce ) { pce.printStackTrace(); }
-	catch ( SAXException se ) { se.printStackTrace(); }
-	catch ( IOException ioe ) { ioe.printStackTrace(); }
-
-	try { // Apply the Xpath expression
-	    XPathFactory factory = XPathFactory.newInstance();
-	    XPath xpath = factory.newXPath();
-	    //XPathExpression expr = xpath.compile("//book[author='Neal Stephenson']/title/text()");
-	    XPathExpression expr = xpath.compile( path );
-	    Object result = expr.evaluate( document, XPathConstants.NODESET );
-	    nodes = (NodeList)result;
-	    if ( print ) {
-		for ( int i = 0; i < nodes.getLength(); i++) {
-		    System.out.println(nodes.item(i).getNodeValue()); 
-		}
-	    }
-	} catch (XPathExpressionException xpee) { xpee.printStackTrace(); }
-	return nodes;
-    }
-}
diff --git a/html/tutorial/tutorial2/Skeleton.java b/html/tutorial/tutorial2/Skeleton.java
deleted file mode 100644
index 415f0c95..00000000
--- a/html/tutorial/tutorial2/Skeleton.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * $Id$
- *
- * Copyright (C) INRIA, 2009
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.  Authorship
- * of the modifications may be determined from the ChangeLog placed at
- * the end of this file.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- * USA.
- */
-
-// Alignment API classes
-import org.semanticweb.owl.align.Alignment;
-import org.semanticweb.owl.align.AlignmentException;
-import org.semanticweb.owl.align.AlignmentProcess;
-import org.semanticweb.owl.align.AlignmentVisitor;
-import org.semanticweb.owl.align.Parameters;
-
-// Alignment API implementation classes
-import fr.inrialpes.exmo.align.impl.BasicParameters;
-import fr.inrialpes.exmo.align.impl.ObjectAlignment;
-import fr.inrialpes.exmo.align.impl.URIAlignment;
-import fr.inrialpes.exmo.align.impl.BasicAlignment;
-import fr.inrialpes.exmo.align.impl.method.StringDistAlignment;
-import fr.inrialpes.exmo.align.impl.renderer.OWLAxiomsRendererVisitor;
-import fr.inrialpes.exmo.align.parser.AlignmentParser;
-
-// Jena
-import com.hp.hpl.jena.rdf.model.ModelFactory;
-import com.hp.hpl.jena.rdf.model.Model;
-import com.hp.hpl.jena.ontology.OntModelSpec;
-import com.hp.hpl.jena.query.QueryFactory;
-import com.hp.hpl.jena.query.Query;
-import com.hp.hpl.jena.query.ResultSet;
-import com.hp.hpl.jena.query.ResultSetFormatter;
-import com.hp.hpl.jena.query.QueryExecution;
-import com.hp.hpl.jena.query.QueryExecutionFactory;
-
-// Pellet
-
-// IDDL
-import fr.inrialpes.exmo.iddl.IDDLReasoner;
-import fr.inrialpes.exmo.iddl.conf.Semantics;
-
-// SAX standard classes
-import org.xml.sax.SAXException;
-
-// DOM Standard classes
-import org.w3c.dom.Document;
-import org.w3c.dom.NodeList;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.xpath.XPathFactory;
-import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathExpression;
-import javax.xml.xpath.XPathExpressionException;
-import javax.xml.xpath.XPathConstants;
-
-// Java standard classes
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.io.BufferedWriter;
-import java.io.OutputStreamWriter;
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.io.InputStream;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.ByteArrayInputStream;
-import java.io.StringReader;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.io.File;
-import java.io.FileWriter;
-import java.net.URI;
-import java.net.URL;
-import java.net.MalformedURLException;
-import java.net.URISyntaxException;
-
-/**
- * MyApp
- *
- * Reconcile two ontologies in various ways
- */
-
-public class MyApp {
-
-    String RESTServ = "http://aserv.inrialpes.fr/rest/";
-
-    public static void main( String[] args ) {
-	new MyApp().run( args );
-    }
-
-    public void run( String[] args ) {
-
-	// Setting variables
-	String myId = "JETest";
-	Alignment al = null;
-	URI uri1 = null;
-	URI uri2 = null;
-	//String u1 = "http://alignapi.gforge.inria.fr/tutorial2/ontology1.owl";
-	//String u2 = "http://alignapi.gforge.inria.fr/tutorial2/ontology2.owl";
-	String u1 = "file:ontology1.owl";
-	String u2 = "file:ontology2.owl";
-	String method = "fr.inrialpes.exmo.align.impl.method.StringDistAlignment";
-	Parameters params = new BasicParameters();
-	try {
-	    uri1 = new URI( u1 );
-	    uri2 = new URI( u2 );
-	} catch (URISyntaxException use) { use.printStackTrace(); exit(); }
-
-	try {
-
-	    // ***** First exercise: matching *****
-	    // (Sol1) Try to find an alignment between two ontologies from the server
-	    // ask for it
-	    // retrieve it
-	    // parse it as an alignment
-
-	    // (Sol2) Match the ontologies with a local algorithm
-	    // match
-
-	    // (Sol3) Match the ontologies on the server
-	    // call for matching
-	    // retrieve it
-	    // parse it as an alignment
-
-	    // Alternative: find an intermediate ontology between which there are alignments
-	    // find (basically a graph traversal operation)
-	    // retrieve them
-	    // parse them
-	    // compose them
-
-	    // Supplementary:
-	    // upload the result on the server
-	    // store it
-
-	    // ***** Second exercise: merging/transforming *****
-
-	    // (Sol1) generate a merged ontology between the ontologies (OWLAxioms)
-
-	    // (Sol2) import the data from one ontology into the other
-
-	    // ***** Third exercise: querying and reasoning *****
-
-	    // (Sol1) Use SPARQL to answer queries (at the data level)
-
-	    // (Sol2) Use Pellet to answer queries (at the ontology level)
-
-	} catch (Exception e) { e.printStackTrace(); exit();  }
-    }
-
-    public String getFromURLString( String u, boolean print ){
-	URL url = null;
-	String result = "<?xml version='1.0'?>";
-	try {
-	    url = new URL( u );
-	    BufferedReader in = new BufferedReader(
-    				new InputStreamReader(
-    				  url.openStream()));
-	    String inputLine;
-	    while ((inputLine = in.readLine()) != null) {
-		if (print) System.out.println(inputLine);
-		result += inputLine;
-	    }
-	    in.close();
-	}
-	catch ( MalformedURLException mue ) { mue.printStackTrace(); }
-	catch ( IOException mue ) { mue.printStackTrace(); }
-	return result;
-    }
-
-    public NodeList extractFromResult( String found, String path, boolean print ){
-	Document document = null;
-	NodeList nodes = null;
-	try { // Parse the returned string as XML
-	    DocumentBuilder parser =
-		DocumentBuilderFactory.newInstance().newDocumentBuilder();
-	    document = parser.parse(new ByteArrayInputStream( found.getBytes() ));
-	} catch ( ParserConfigurationException pce ) { pce.printStackTrace(); }
-	catch ( SAXException se ) { se.printStackTrace(); }
-	catch ( IOException ioe ) { ioe.printStackTrace(); }
-
-	try { // Apply the Xpath expression
-	    XPathFactory factory = XPathFactory.newInstance();
-	    XPath xpath = factory.newXPath();
-	    XPathExpression expr = xpath.compile( path );
-	    Object result = expr.evaluate( document, XPathConstants.NODESET );
-	    nodes = (NodeList)result;
-	    if ( print ) {
-		for ( int i = 0; i < nodes.getLength(); i++) {
-		    System.out.println(nodes.item(i).getNodeValue()); 
-		}
-	    }
-	} catch (XPathExpressionException xpee) { xpee.printStackTrace(); }
-	return nodes;
-    }
-}
diff --git a/html/tutorial/tutorial2/index.html b/html/tutorial/tutorial2/index.html
deleted file mode 100644
index 6db7a7a8..00000000
--- a/html/tutorial/tutorial2/index.html
+++ /dev/null
@@ -1,413 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<title>Exploiting alignments and reasoning</title>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<link rel="stylesheet" type="text/css" href="../../base.css" />
-<link rel="stylesheet" type="text/css" href="../../style.css" />
-<script type="text/javascript">
-<!--
-function show(id) {
-	var element = document.getElementById(id);
-	element.style.display = "block";
-}
-function hide(id) {
-	var element = document.getElementById(id);
-	element.style.display = "none";
-}
--->
-</script>
-<style type="text/css">
-<!--
-div.logic {
-	padding-left: 5px;
-	padding-right: 5px;
-	margin-top: 10px;
-	margin-bottom: 10px;
-}
--->
-</style>
-</head>
-<body style="background-color: #FFFFFF;">
-
-<h1>Exploiting alignments and reasoning: advanced tutorial on the Alignment <abbr title="Application Programming Interface">API</abbr> and server</h1>
-
-<p>
-<dl>
-<dt>This version:</dt>
-<dd>http://alignapi.gforge.inria.fr/tutorial/tutorial2/</dd>
-<dt>Author:</dt>
-<dd><a href="http://exmo.inrialpes.fr/people/euzenat">J&eacute;r&ocirc;me Euzenat</a>, INRIA  &amp; LIG
-</dd>
-</dl>
-</p>
-
-<p style="border-top: 2px solid
-	  #AAAAAA; padding-top: 15px; padding-bottom: 15px;">
-Here is a more advanced tutorial for the
-alignment <abbr>API</abbr> which explains how to interface the API
-with other components.
-This tutorial will show how to:
-<ul>
-<li>communicate the alignment server
-through its REST web service API,</li>
-<li>manipulate alignments with the Alignment API in Java,</li>
-<li>perform OWL reasoning on aligned ontologies and compose
-  alignments.</li>
-</ul>
-This time, the tutorial is based on Java programming and using various
-related APIs.
-</p>
-<p>
-Other tutorials are <a href="../index.html">available</a>.</p>
-<p  style="border-top: 2px solid #AAAAAA;"><small>This tutorial has
-    been designed for the Alignment API version 4.0. It is currently
-    incomplete due to the upgrade of Pellet to version 2.0.2 and IDDL.</small></p>
-	
-<h2>Preparation</h2>
-	
-<p>Just:
-<div class="fragment">
-$ cd tutorial2
-</div>
-</p>
-	
-<h2>Data</h2>
-	
-<p>
-We have two ontologies, <a href="ontology1.owl">ontology1.owl</a>
-and <a href="ontology2.owl">ontology2.owl</a>, under which two sets of
-students are described. Unfortunately, the
-administration started to record participants with their own ontology
-before finding that using <a href="http://foaf-project.org">FOAF</a>
-would be a better idea. We now end up with two incomplete lists of
-participants.
-</p>
-<p>
-The goal is to have a unified view of these participants. For that
-purpose, we will match the two ontologies and reason with the result
-in order to view participants from boths ontologies under the other
-ontology. This is not a difficult task, the goal here is only to show
-how this could be achieved.
-</p>
-	
-<p>For that purpose, you have to develop a program in Java. 
-We first define the CLASSPATH because a lot of external software is required
-<div class="fragment">
-$ setenv CLASSPATH ../../../lib/align.jar:../../../lib/procalign.jar:../../../lib/jena/jena.jar:../../../lib/jena/arq.jar:../../../lib/iddl/iddl.jar:../../../lib/pellet/pellet-core.jar:../../../lib/pellet/pellet-owlapiv3.jar:../../../lib/pellet/pellet-rules.jar:../../../lib/pellet/pellet-datatypes.jar:../../../lib/pellet/aterm-java-1.6.jar:../../../lib/pellet/pellet-query.jar:../../../lib/ontosim/ontosim.jar:../../../lib/pellet/pellet-el.jar:../../../lib/log4j/commons-logging.jar:../../../lib/log4j/log4j.jar:../../../lib/xerces/xercesImpl.jar:../../../lib/jena/iri.jar:../../../lib/jena/icu4j_3_4.jar:../../../lib/jena/concurrent.jar:../../../lib/xsdlib/relaxngDatatype.jar:../../../lib/xsdlib/xsdlib.jar:results
-</div>
-The list of jars is long, but at least it is explicit and you
-should be safe with this one.
-This programme can be compiled by:
-<div class="fragment">
-$ javac -d results MyApp.java
-</div>
-</p>
-<p>This
-  programme can be run by:
-<div class="fragment">
-$ java MyApp
-</div></p>
-You can start with the empty template <a href="Skeleton.java">Skeleton.java</a>.
-</p>
-
-<h2>Matching ontologies</h2>
-
-<p>
-This can be achieved:
-<ul>
-<li>by finding an alignment from the web/server</li>
-<li>by running a matcher locally</li>
-<li>by running a matcher on the alignment server</li>
-<li>by finding a chain of alignments from the web/server</li>
-</ul>
-</p>
-
-<p>
-Write a program that does try to find an alignment on the alignment
-server <a href="http://aserv.inrialpes.fr">http://aserv.inrialpes.fr</a>
-and, if none is found, computes one.
-</p>
-<div class="button">
-  <input type="button" onclick="show('qu0')" value="Various variables"/>
-  <input type="button" onclick="show('qu1')" value="Show solution 1"/>
-  <input type="button" onclick="show('qu2')" value="Show solution 2"/>
-  <input type="button" onclick="show('qu3')" value="Show solution 3"/>
-  <input type="button" onclick="hide('qu1');hide('qu2');hide('qu3');" value="Hide solutions"/>
-</div>
-<div class="explain" id="qu0">
-<p>After introducing the main variables:</p>
-<pre>
-	String myId = "JETest";
-	Alignment al = null;
-	URI uri1 = null;
-	URI uri2 = null;
-	//String u1 = "http://alignapi.gforge.inria.fr/tutorial/tutorial2/ontology1.owl";
-	//String u2 = "http://alignapi.gforge.inria.fr/tutorial/tutorial2/ontology2.owl";
-	String u1 = "file:ontology1.owl";
-	String u2 = "file:ontology2.owl";
-	String method = "fr.inrialpes.exmo.align.impl.method.StringDistAlignment";
-	String tempOntoFileName = "/tmp/myresult.owl";
-	Parameters params = new BasicParameters();
-	try {
-	    uri1 = new URI( u1 );
-	    uri2 = new URI( u2 );
-	} catch (URISyntaxException use) { use.printStackTrace(); }
-</pre>
-</div>
-<div class="explain" id="qu1">
-<p>The programme will invoke the alignment server:</p>
-<pre>
-	// (Sol1) Try to find an alignment between two ontologies from the server
-	// ask for it
-	String found = getFromURLString( RESTServ+"find?onto1="+u1+"&onto2="+u2, false );
-</pre>
-<p>Retrieve the alignment itself:</p>
-<pre>
-	// retrieve it
-	// If there exists alignments, ask for the first one
-	NodeList alset = extractFromResult( found, "//findResponse/alignmentList/alid[1]/text()", false );
-</pre>
-<p>And parse it:</p>
-<pre>
-	// parse it as an alignment
-	// (better passing to the SAXHandler)
-	AlignmentParser aparser = new AlignmentParser(0);
-	Alignment alu = aparser.parseString( xmlString );
-	al = ObjectAlignment.toObjectAlignment((URIAlignment)alu);
-</pre>
-</div>
-<div class="explain" id="qu2"><p>Just create an instance of
-    AlignmentProcess and call it:</p>
-<pre>
-	// (Sol2) Match the ontologies with a local algorithm
-	if ( al == null ){ // Unfortunatelly no alignment was available
-	    AlignmentProcess ap = new StringDistAlignment();
-	    ap.init( uri1, uri2 );
-	    params.setParameter("stringFunction","smoaDistance");
-	    ap.align( (Alignment)null, params );
-	    al = ap;
-	}
-</pre>
-</div>
-<div class="explain" id="qu3"><p>Match on the server:</p>
-<pre>
-	// (Sol3) Match the ontologies on the server
-	if ( alset.getLength() == 0 ) {
-	    // call for matching
-	    String match = getFromURLString( RESTServ+"match?onto1="+u1+"&onto2="+u2+"&method="+method+"&pretty="+myId+"&action=Match&force=true", true );
-	}
-</pre>
-<p>The remainder is the same as in the first solution.</p>
-</div>
-<div class="logic">
-<p><b>More work:</b> You can also store localy computed alignments on
-  the alignment server.</p>
-</div>
-<div class="button">
-  <input type="button" onclick="show('qu4')" value="Show solution"/>
-  <input type="button" onclick="hide('qu4');" value="Hide solution"/>
-</div>
-<div class="explain" id="qu4"><p>Not ready yet (but not difficult)</p>
-<pre>
-</pre>
-</div>
-
-<h2>Manipulate the data</h2>
-
-<p>
-Again, this is either:
-<ul>
-<li>generating OWL axioms from the alignments and merge the ontologies</li>
-<li>transforming data from one ontology to another</li>
-</ul>
-</p>
-<p>
-This can be done with the alignment API support.
-</p>
-
-<div class="button">
-  <input type="button" onclick="show('qu5')" value="Show solution 1"/>
-  <!--input type="button" onclick="show('qu6')" value="Show solution 2"/-->
-  <input type="button" onclick="hide('qu5');hide('qu6');" value="Hide solutions"/>
-</div>
-<div class="explain" id="qu5">
-<p>In fact everything is done in one step:</p>
-<pre>
-	// (Sol1) generate a merged ontology between the ontologies (OWLAxioms)
-	File merged = new File( tempOntoFileName );
-	PrintWriter writer = new PrintWriter ( new FileWriter( merged, false ), true );
-	AlignmentVisitor renderer = new OWLAxiomsRendererVisitor(writer);
-	al.render(renderer);
-	writer.flush();
-	writer.close();
-</pre>
-<p>You can look at the result in myresult.owl</p>
-</div>
-<div class="explain" id="qu6"><p>Not ready yet</p>
-<pre>
-</pre>
-</div>
-
-<h2>Generate the answers</h2>
-
-<p>
-This can be done in three ways:
-<ul>
-<li>using SPARQL</li>
-<li>using a reasonner such as Pellet to answer these queries against
-  the merged ontologies.</li>
-<li>using a "distributed" reasoner, in our case IDDL, to answer these
-  queries against non merged aligned ontologies.</li>
-</ul>
-</p>
-<p>
-In case you go for SPARQL please, take care of the inference regime
-and observe what are the differences in this case. You can of course
-run various queries and start by runing them in one of the initial
-ontologies instead of the merged one.
-</p>
-</p>
-<div class="button">
-  <input type="button" onclick="show('qu7')" value="Show solution 1"/>
-  <!--input type="button" onclick="show('qu8')" value="Show solution 2"/>
-  <input type="button" onclick="show('qu9')" value="Show solution 3"/-->
-  <input type="button" onclick="hide('qu7');hide('qu8');hide('qu9');" value="Hide solutions"/>
-</div>
-<div class="explain" id="qu7">
-<p>Prepare the system:</p>
-<pre>
-	// (Sol1) Use SPARQL to answer queries (at the data level)
-	InputStream in = new FileInputStream( merged );
-	//OntModelSpec.OWL_MEM_RDFS_INF or no arguments to see the difference...
-	Model model = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM_RULE_INF,null);
-	model.read(in,"file:///tmp/myresult.owl"); 
-	in.close();
-</pre>	
-<p>Query (please play by changing the query)</p>
-<pre>
-        // Create a new query
-	String queryString = 
-		"PREFIX foaf: <http://xmlns.com/foaf/0.1/> " +
-		"PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> " +
-		"PREFIX aa: <http://alignapi.gforge.inria.fr/tutorial/tutorial2/ontology1.owl#> " +
-		"SELECT ?fn ?ln ?t " +
-		"WHERE {" +
-                "      ?student rdf:type aa:Person . " +
-		"      ?student aa:firstname  ?fn. " +
-		"      ?student aa:lastname  ?ln. " +
-		"      ?student aa:topic ?t . " +
-		"      }";
-</pre>	
-<p>Evaluation:</p>
-<pre>
-	Query query = QueryFactory.create(queryString);
-
-	// Execute the query and obtain results
-	QueryExecution qe = QueryExecutionFactory.create(query, model);
-	ResultSet results = qe.execSelect();
-	
-	// Output query results	
-	ResultSetFormatter.out(System.out, results, query);
-</pre>
-</div>
-<div class="explain" id="qu8">
-<p>Create Reasoner instance and load the merged ontologies:</p>
-<pre>
-	OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
-	Reasoner reasoner = new Reasoner( manager );
-	try {
-	    OWLOntology ontology = manager.loadOntology( URI.create( "file://"+tempOntoFileName ) );
-	    reasoner.loadOntology( ontology );
-	} catch (OWLOntologyCreationException ooce) { ooce.printStackTrace(); }
-</pre>
-<p>Get the instances of "Estudiantes":</p>
-<pre>
-	OWLClass estud = manager.getOWLDataFactory().getOWLClass( URI.create( "http://alignapi.gforge.inria.fr/tutorial/tutorial2/ontology1.owl#Estudiante" ) );   
-	OWLClass person = manager.getOWLDataFactory().getOWLClass( URI.create( "http://alignapi.gforge.inria.fr/tutorial/tutorial2/ontology2.owl#Person" ) );   
-	OWLClass student = manager.getOWLDataFactory().getOWLClass( URI.create( "http://alignapi.gforge.inria.fr/tutorial/tutorial2/ontology2.owl#Student" ) );   
-	Set instances  = reasoner.getIndividuals( estud, false );
-	System.err.println("Pellet(Merged): There are "+instances.size()+" students "+estud.getURI());
-</pre>
-<p>Some subsumption tests:</p>
-<pre>
-	testPelletSubClass( manager, reasoner, estud, person );
-	testPelletSubClass( manager, reasoner, estud, student );
-</pre>
-<p>Such that:</p>
-<pre>
-    public void testPelletSubClass( OWLOntologyManager manager, Reasoner reasoner, OWLDescription d1, OWLDescription d2 ) {
-	OWLAxiom axiom = manager.getOWLDataFactory().getOWLSubClassAxiom( d1, d2 );
-	boolean isit = reasoner.isEntailed( axiom );
-	if ( isit ) {
-	    System.out.println( "Pellet(Merged): "+d1+" is subclass of "+d2 );
-	} else {
-	    System.out.println( "Pellet(Merged): "+d1+" is not necessarily subclass of "+d2 );
-	}
-    }
-</pre>
-</div>
-<div class="explain" id="qu9">
-<p>Load the two ontologies and the alignment in the IDDL reasoner:</p>
-<pre>
-	IDDLReasoner dreasoner = new IDDLReasoner( Semantics.DL );
-	dreasoner.addOntology( uri1 );
-	dreasoner.addOntology( uri2 );
-	dreasoner.addAlignment( al );
-</pre>
-<p>Test consistency and check if a particular correspondence is a consequence:</p>
-<pre>
-	if ( dreasoner.isConsistent() ) {
-	    System.out.println( "IDDL: the alignment network is consistent");
-	    testIDDLSubClass( dreasoner, uri1, uri2, estud, person );
-	    testIDDLSubClass( dreasoner, uri1, uri2, estud, student );
-         } else {
-	    System.out.println( "IDDL: the alignment network is inconsistent");
-	}
-</pre>
-<p>Such that:</p>
-<pre>
-    public void testIDDLSubClass( IDDLReasoner dreasoner, URI onto1, URI onto2, OWLDescription d1, OWLDescription d2 ) {
-	Alignment al2 = new ObjectAlignment();
-	try {
-	    al2.init( onto1, onto2 );
-	    // add the cell
-	    al2.addAlignCell( d1, d2, "&lt;", 1. );
-	} catch (AlignmentException ae) { ae.printStackTrace(); }
-	if ( dreasoner.isEntailed( al2 ) ) {
-	    System.out.println( "IDDL: "+d1+" <= "+d2+" is entailed" );
-	} else {
-	    System.out.println( "IDDL: "+d1+" <= "+d2+" is not entailed" );
-	}
-    }
-</pre>
-</div>
-
-The results for these execution are (for Pellet):
-<pre>
-Pellet(Merged): There are 47 students http://alignapi.gforge.inria.fr/tutorial/tutorial2/ontology1.owl#Estudiante
-Pellet(Merged): Estudiante is not necessarily subclass of Person
-Pellet(Merged): Estudiante is subclass of Student
-</pre>
-and for IDDL:
-<pre>
-IDDL: the alignment network is consistent
-IDDL: Estudiante <= Person is not entailed
-IDDL: Estudiante <= Student is entailed
-</pre>
-	
-<!--h2>Full solution</h2>
-	
-<p>Do you want to see a possible solution?</p>
-<p>A full working solution is <a href="MyApp.java">MyApp.java</a>.</p-->
-
-<hr />
-<small>
-<p style="text-align: center;">http://alignapi.gforge.inria.fr/tutorial/tutorial2/</p>
-</small>
-<hr />
-<p>$Id$</p>
-</body>
-</html>
diff --git a/html/tutorial/tutorial2/ontology1.owl b/html/tutorial/tutorial2/ontology1.owl
deleted file mode 100644
index 0f025f5b..00000000
--- a/html/tutorial/tutorial2/ontology1.owl
+++ /dev/null
@@ -1,309 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!DOCTYPE rdf:RDF [
-          <!ENTITY xsd		"http://www.w3.org/2001/XMLSchema#" >
-	  <!ENTITY rdf		"http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
-	  <!ENTITY rdfs		"http://www.w3.org/2000/01/rdf-schema#" >
-	  <!ENTITY dc		"http://purl.org/dc/elements/1.1/" > 
-	  <!ENTITY owl		"http://www.w3.org/2002/07/owl#" >
-	  <!ENTITY units	"http://visus.mit.edu/fontomri/0.01/units.owl#" >
-	  <!ENTITY bibtex	"http://purl.org/net/nknouf/ns/bibtex#">
-	  <!ENTITY dcterms 	"http://purl.org/dc/terms/">
-	  <!ENTITY dctype 	"http://purl.org/dc/dcmitype/"> ]>
-
-<rdf:RDF
- xmlns="http://alignapi.gforge.inria.fr/tutorial/tutorial2/ontology1.owl#"
- xml:base="http://alignapi.gforge.inria.fr/tutorial/tutorial2/ontology1.owl#"
- xmlns:units	="&units;"
- xmlns:foaf	="http://xmlns.com/foaf/0.1/"
- xmlns:rdf	="&rdf;"
- xmlns:xsd	="&xsd;"
- xmlns:rdfs	="&rdfs;"
- xmlns:owl	="http://www.w3.org/2002/07/owl#"
- xmlns:wot	="http://xmlns.com/wot/0.1/"
- xmlns:dc	="&dc;"
- xmlns:dcterms	="&dcterms;"
- xmlns:dctype	="&dctype;"
- xmlns:bibtex	="&bibtex;">
-  
-  <owl:Ontology rdf:about="http://alignapi.gforge.inria.fr/tutorial/tutorial2/ontology1.owl">
-    <dc:creator>Jérôme Euzenat</dc:creator>
-    <dc:description>Example for Alignment API advanced turorial</dc:description>
-    <dc:date>2009-07-06</dc:date>
-    <rdfs:label>First ontology</rdfs:label>
-    <dc:title>ontology1.owl: an fake list of students</dc:title>
-    <dc:identifier rdf:datatype="&xsd;anyURI">http://alignapi.gforge.inria.fr/tutorial/tutorial2/ontology1.owl</dc:identifier>
-  </owl:Ontology>
-
-  <owl:Class rdf:ID="Estudiante">
-    <rdfs:label xml:lang="en">Estudiante</rdfs:label>
-  </owl:Class>
-
-<Estudiante>
-  <lastname>Fitzgerald</lastname>
-  <firstname>Ella</firstname>
-  <gender>Female</gender>
-  <affiliation>Vanilla University of Technology</affiliation>
-  <city>Vanilla</city>
-  <country>AT</country>
-  <year>1</year>
-  <topic>Semantic Process Mining</topic>
-  <supervisor>Prof. Giancarlo Cetriolo</supervisor>
-</Estudiante>
-
-<Estudiante>
-  <lastname>Blackey</lastname>
-  <firstname>Art</firstname>
-  <gender>Male</gender>
-  <affiliation>University of Albatra</affiliation>
-  <city>Albatra</city>
-  <country>ES</country>
-  <year>1</year>
-  <topic>Semantic Web applications</topic>
-  <supervisor>Paola Pomodoro</supervisor>
-  <supervisor>Pierluiggi Pomodoro</supervisor>
-</Estudiante>
-
-<Estudiante>
-  <lastname>Coleman</lastname>
-  <firstname>Ornette</firstname>
-  <gender>Male</gender>
-  <affiliation>Trinidad College Dubrovnik</affiliation>
-  <city>Dubrovnik</city>
-  <country>IE</country>
-  <year>1</year>
-  <topic>Conceptualization and Implementation of a ontology based Meta-Layer for the Management of Ontology Mapping Representations in Order to Support Sharing and Reuse of Ontology Mappings</topic>
-  <supervisor>Carla Cipolla</supervisor>
-</Estudiante>
-
-<Estudiante>
-  <lastname>Davis</lastname>
-  <firstname>Miles</firstname>
-  <gender>Male</gender>
-  <affiliation>JOHANNISBEER RESEARCH</affiliation>
-  <city>Guacamole</city>
-  <country>AT</country>
-  <year>1</year>
-  <topic>Automatic Metadata-Based Video Editing Systems</topic>
-  <supervisor>Univ.-Prof. Dr. Paolo Carciofo</supervisor>
-</Estudiante>
-
-<Estudiante>
-  <lastname>Coltrane</lastname>
-  <firstname>John</firstname>
-  <gender>Male</gender>
-  <affiliation>Estrellas</affiliation>
-  <city>Aroma</city>
-  <country>IT</country>
-  <topic>Semantic web applications, ontology management systems</topic>
-</Estudiante>
-
-<Estudiante>
-  <lastname>Holliday</lastname>
-  <firstname>Billie</firstname>
-  <gender>Female</gender>
-  <affiliation>University of Soupaloignon</affiliation>
-  <city>Soupaloignon</city>
-  <country>GB</country>
-  <year>1</year>
-  <topic>Adaptive Hypermedia and Competency Model</topic>
-  <supervisor>Dr.Federico diGuava</supervisor>
-  <supervisor>Mr. Laurenzo Girafiore</supervisor>
-</Estudiante>
-
-<Estudiante>
-  <lastname>Monk</lastname>
-  <firstname>Thelonious</firstname>
-  <gender>Male</gender>
-  <affiliation>Madeira Instutute of Technology</affiliation>
-  <city>Madeira</city>
-  <country>PT</country>
-  <year>1</year>
-  <topic>Semantic Web Annotation and Distributed Resource Authorization</topic>
-  <supervisor>Stefano Zucchini</supervisor>
-</Estudiante>
-
-<Estudiante>
-  <lastname>McRae</lastname>
-  <firstname>Carmen</firstname>
-  <gender>Female</gender>
-  <affiliation>University of the Rainforest</affiliation>
-  <city>Lluvianda</city>
-  <country>SI</country>
-  <year>3</year>
-  <supervisor>Mario Staggioni</supervisor>
-</Estudiante>
-
-<Estudiante>
-  <lastname>Bley</lastname>
-  <firstname>Carla</firstname>
-  <gender>Female</gender>
-  <affiliation>none</affiliation>
-  <city>Yves sur Gifette</city>
-  <country>FR</country>
-  <year>1</year>
-  <supervisor>Christina Melocoton</supervisor>
-</Estudiante>
-
-<Estudiante>
-  <lastname>Simone</lastname>
-  <firstname>Nina</firstname>
-  <gender>Female</gender>
-  <affiliation>Research Center of the Americas</affiliation>
-  <city>Florida</city>
-  <country>IT</country>
-  <year>3</year>
-  <topic>Legal ontologies and legal theory</topic>
-  <supervisor>Domenica Melanzana</supervisor>
-</Estudiante>
-
-<Estudiante>
-  <lastname>Joplin</lastname>
-  <firstname>Janis</firstname>
-  <gender>Female</gender>
-  <affiliation>University of Zoulouland</affiliation>
-  <city>Zouloucity</city>
-  <country>ES</country>
-  <year>1</year>
-  <topic>Semantic Web</topic>
-  <supervisor>Medusa Pesto</supervisor>
-  <supervisor>Fiorenta Pescadore</supervisor>
-</Estudiante>
-
-<Estudiante>
-  <lastname>Powell</lastname>
-  <firstname>Bud</firstname>
-  <gender>Male</gender>
-  <affiliation>SPAM</affiliation>
-  <affiliation>Cogebom</affiliation>
-  <city>Porto Bello</city>
-  <country>FR</country>
-  <year>1</year>
-  <topic>The design and the implementation of an Information resources meta-model and its services : application to the medical field</topic>
-  <supervisor>Giovanni Dolomitti</supervisor>
-</Estudiante>
-
-<Estudiante>
-  <lastname>De Wilde</lastname>
-  <firstname>Laurent</firstname>
-  <gender>Male</gender>
-  <affiliation>University of Sussex</affiliation>
-  <city>Glouchester</city>
-  <country>GB</country>
-  <year>1</year>
-  <supervisor>Ugo Calamari</supervisor>
-  <supervisor>Simona Riccota</supervisor>
-</Estudiante>
-
-<Estudiante>
-  <lastname>Calloway</lastname>
-  <firstname>Cab</firstname>
-  <gender>Male</gender>
-  <affiliation>University of Shepperington</affiliation>
-  <city>Shepperington</city>
-  <country>GB</country>
-</Estudiante>
-
-<Estudiante>
-  <lastname>Goodman</lastname>
-  <firstname>Benny</firstname>
-  <gender>Male</gender>
-  <affiliation>The Univesity of the true way</affiliation>
-  <city>Dehli</city>
-  <country>BR</country>
-  <year>1</year>
-  <topic>Semantic Integration of Information</topic>
-  <supervisor>Prof. Dr. Riccardo Peperoni</supervisor>
-</Estudiante>
-
-<Estudiante>
-  <lastname>Parker</lastname>
-  <firstname>Charlie</firstname>
-  <gender>Male</gender>
-  <affiliation>Institut Von Humboldt</affiliation>
-  <city>Any</city>
-  <country>FR</country>
-  <year>1</year>
-  <topic>semantic Web services discovery</topic>
-  <supervisor>Cecilia Parmiggiano</supervisor>
-</Estudiante>
-
-<Estudiante>
-  <lastname>Peterson</lastname>
-  <firstname>Oscar</firstname>
-  <gender>Male</gender>
-  <affiliation>Institute for Applied Boxology</affiliation>
-  <city>Pariggi</city>
-  <country>IT</country>
-  <year>1</year>
-  <topic>Collaborative building of knowledge resources for the Semantic Web</topic>
-  <supervisor>Dott. Antolio Bresaola</supervisor>
-</Estudiante>
-
-<Estudiante>
-  <lastname>Getz</lastname>
-  <firstname>Stan</firstname>
-  <gender>Male</gender>
-  <affiliation>Altacola research centre</affiliation>
-  <city>Cloppenburg</city>
-  <country>DE</country>
-  <year>1</year>
-  <topic>health informatics</topic>
-  <supervisor>Prof. Pierpaolo Polenta</supervisor>
-</Estudiante>
-
-<Estudiante>
-  <lastname>Zorn</lastname>
-  <firstname>John</firstname>
-  <gender>Male</gender>
-  <affiliation>Altacola research centre</affiliation>
-  <city>Cloppenburg</city>
-  <country>DE</country>
-  <year>1</year>
-  <topic>Complex Event Processing</topic>
-  <supervisor>Prof. Pierpaolo Polenta</supervisor>
-</Estudiante>
-
-<Estudiante>
-  <lastname>Tyner</lastname>
-  <firstname>McCoy</firstname>
-  <gender>Male</gender>
-  <affiliation>University of Soupaloignon</affiliation>
-  <city>Soupaloignon</city>
-  <country>GB</country>
-  <year>1</year>
-  <topic>Trust and the Semantic Web</topic>
-  <supervisor>Dr Nanni Girasole</supervisor>
-</Estudiante>
-
-<Estudiante>
-  <lastname>Hawkins</lastname>
-  <firstname>Coleman</firstname>
-  <gender>Male</gender>
-  <affiliation>University of South Poland</affiliation>
-  <city>Krakow</city>
-  <country>IT</country>
-  <year>1</year>
-  <topic>Markup Languages and Semantic Web</topic>
-  <supervisor>Pepe Frutti di Mare</supervisor>
-</Estudiante>
-
-<Estudiante>
-  <lastname>Franklin</lastname>
-  <firstname>Aretha</firstname>
-  <gender>Female</gender>
-  <affiliation>University of Huelva</affiliation>
-  <city>Huelva</city>
-  <country>ES</country>
-</Estudiante>
-
-<Estudiante>
-  <lastname>Baker</lastname>
-  <firstname>Chet</firstname>
-  <gender>Male</gender>
-  <affiliation>University Pie XXIII</affiliation>
-  <city>Orssini</city>
-  <country>FR</country>
-</Estudiante>
-
-</rdf:RDF>
diff --git a/html/tutorial/tutorial2/ontology2.owl b/html/tutorial/tutorial2/ontology2.owl
deleted file mode 100644
index 62f9262c..00000000
--- a/html/tutorial/tutorial2/ontology2.owl
+++ /dev/null
@@ -1,311 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!DOCTYPE rdf:RDF [
-          <!ENTITY xsd		"http://www.w3.org/2001/XMLSchema#" >
-	  <!ENTITY rdf		"http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
-	  <!ENTITY rdfs		"http://www.w3.org/2000/01/rdf-schema#" >
-	  <!ENTITY dc		"http://purl.org/dc/elements/1.1/" > 
-	  <!ENTITY owl		"http://www.w3.org/2002/07/owl#" >
-	  <!ENTITY units	"http://visus.mit.edu/fontomri/0.01/units.owl#" >
-	  <!ENTITY bibtex	"http://purl.org/net/nknouf/ns/bibtex#">
-	  <!ENTITY dcterms 	"http://purl.org/dc/terms/">
-	  <!ENTITY dctype 	"http://purl.org/dc/dcmitype/"> ]>
-
-<!--
-   xmlns="http://xmlns.com/foaf/0.1/#"
-   xml:base="http://xmlns.com/foaf/0.1/#"
--->
-<rdf:RDF
- xmlns="http://alignapi.gforge.inria.fr/tutorial/tutorial2/ontology2.owl#"
- xml:base="http://alignapi.gforge.inria.fr/tutorial/tutorial2/ontology2.owl#"
- xmlns:units	="&units;"
- xmlns:foaf	="http://xmlns.com/foaf/0.1/"
- xmlns:rdf	="&rdf;"
- xmlns:xsd	="&xsd;"
- xmlns:rdfs	="&rdfs;"
- xmlns:owl	="http://www.w3.org/2002/07/owl#"
- xmlns:wot	="http://xmlns.com/wot/0.1/"
- xmlns:dc	="&dc;"
- xmlns:dcterms	="&dcterms;"
- xmlns:dctype	="&dctype;"
- xmlns:bibtex	="&bibtex;">
-  
-  <owl:Ontology rdf:about="http://alignapi.gforge.inria.fr/tutorial/tutorial2/ontology2.owl">
-    <dc:creator>Jérôme Euzenat</dc:creator>
-    <dc:description>Example for Alignment API advanced turorial</dc:description>
-    <dc:date>2009-07-06</dc:date>
-    <rdfs:label>Second ontology</rdfs:label>
-    <dc:title>ontology2.owl: another fake list of students</dc:title>
-    <dc:identifier rdf:datatype="&xsd;anyURI">http://alignapi.gforge.inria.fr/tutorial/tutorial2/ontology2.owl</dc:identifier>
-  </owl:Ontology>
-
-  <owl:Class rdf:ID="Student">
-    <rdfs:label xml:lang="en">Student</rdfs:label>
-  </owl:Class>
-
-<Student>
-  <name>Krall</name>
-  <first-name>Diana</first-name>
-  <gender>Female</gender>
-  <institution>Royal University of Worchester sauce</institution>
-  <city-of-study>Worchester sauce</city-of-study>
-  <country-of-study>GB</country-of-study>
-  <year-in-phd>1</year-in-phd>
-  <topics-of-interest>OWL and SKOS: Exploring the relationship between formal and informal knowledge representation</topics-of-interest>
-  <phd-advisor>Dr. A. Verdura</phd-advisor>
-  <phd-advisor>C. Fragola</phd-advisor>
-</Student>
-
-<Student>
-  <name>Gordon</name>
-  <first-name>Dexter</first-name>
-  <gender>Male</gender>
-  <institution>Eelberg University</institution>
-  <city-of-study>Eelberg</city-of-study>
-  <country-of-study>DK</country-of-study>
-  <year-in-phd>1</year-in-phd>
-  <topics-of-interest>Social Web Applications, Personalization, Semantic Web</topics-of-interest>
-  <phd-advisor>C. Pannacotta</phd-advisor>
-</Student>
-
-<Student>
-  <name>Reinhardt</name>
-  <first-name>Django</first-name>
-  <gender>Male</gender>
-  <institution>University Pie XXIII</institution>
-  <institution>IRIA Saskatchevan</institution>
-  <city-of-study>Orssini</city-of-study>
-  <country-of-study>FR</country-of-study>
-  <year-in-phd>1</year-in-phd>
-  <topics-of-interest>Ontology Matching and Alignment</topics-of-interest>
-  <phd-advisor>Prof. Chr. Melocoton</phd-advisor>
-</Student>
-
-<Student>
-  <name>Miller</name>
-  <first-name>Glenn</first-name>
-  <gender>Male</gender>
-  <institution>University of Shepperington</institution>
-  <city-of-study>Shepperington</city-of-study>
-  <country-of-study>GB</country-of-study>
-  <year-in-phd>1</year-in-phd>
-  <topics-of-interest>Digital Identities and Contextual Knowledge</topics-of-interest>
-  <phd-advisor>Professor G. Limone</phd-advisor>
-</Student>
-
-<Student>
-  <name>McLean</name>
-  <first-name>Jackie</first-name>
-  <gender>Male</gender>
-  <institution>Polytechnic of Madeira</institution>
-  <city-of-study>Madeira</city-of-study>
-  <country-of-study>PT</country-of-study>
-  <year-in-phd>3</year-in-phd>
-  <topics-of-interest>Ontology Alignment</topics-of-interest>
-  <phd-advisor>S. Zucchini</phd-advisor>
-</Student>
-
-<Student>
-  <name>Merchant</name>
-  <first-name>Natalie</first-name>
-  <gender>Female</gender>
-  <institution>JOHANNISBEER RESEARCH</institution>
-  <city-of-study>Guacamole</city-of-study>
-  <country-of-study>AT</country-of-study>
-  <topics-of-interest>Social Semantic Web</topics-of-interest>
-</Student>
-
-<Student>
-  <name>Hampton</name>
-  <first-name>Lionel</first-name>
-  <gender>Male</gender>
-  <institution>Politecnico di Madalena</institution>
-  <city-of-study>Madalena</city-of-study>
-  <country-of-study>ES</country-of-study>
-  <topics-of-interest>ODEMapster</topics-of-interest>
-  <phd-advisor>A. Gorgonzola</phd-advisor>
-  <phd-advisor>O. Mascarponne</phd-advisor>
-</Student>
-
-<Student>
-  <name>Jones</name>
-  <first-name>Rickie Lee</first-name>
-  <gender>Female</gender>
-  <institution>Philip Vanderbilt Universiteit</institution>
-  <institution>Velo Research</institution>
-  <city-of-study>Amsteelkoog</city-of-study>
-  <country-of-study>NL</country-of-study>
-  <year-in-phd>1</year-in-phd>
-  <topics-of-interest>A combined approach to alignment of patient record data with a clinical context using computerized guidelines and semantic reasoning.</topics-of-interest>
-  <phd-advisor>A. Lambretta</phd-advisor>
-</Student>
-
-<Student>
-  <name>Rollins</name>
-  <first-name>Sonny</first-name>
-  <gender>Male</gender>
-  <institution>Universita di Miggliore</institution>
-  <city-of-study>Miggliore</city-of-study>
-  <country-of-study>IT</country-of-study>
-  <year-in-phd>1</year-in-phd>
-  <topics-of-interest>social construction of semantic models</topics-of-interest>
-  <phd-advisor>M. Pecorino</phd-advisor>
-</Student>
-
-<Student>
-  <name>Burrell</name>
-  <first-name>Kenny</first-name>
-  <gender>Male</gender>
-  <institution>Politecnico di Belladona</institution>
-  <city-of-study>Belladona</city-of-study>
-  <country-of-study>IT</country-of-study>
-  <year-in-phd>1</year-in-phd>
-  <topics-of-interest>Semantic Web</topics-of-interest>
-  <phd-advisor>S. Proscuitto</phd-advisor>
-</Student>
-
-<Student>
-  <name>Brubeck</name>
-  <first-name>Dave</first-name>
-  <gender>Male</gender>
-  <institution>University of Namibia</institution>
-  <city-of-study>Nürnberg am See</city-of-study>
-  <country-of-study>BE</country-of-study>
-  <year-in-phd>3</year-in-phd>
-  <topics-of-interest>Semantic Web Application: Enhancing Web Usability by Handling the Local Contexts of Web Users</topics-of-interest>
-  <phd-advisor>G. Belladonna</phd-advisor>
-  <phd-advisor>P. Tiramissu</phd-advisor>
-</Student>
-
-<Student>
-  <name>Ellington</name>
-  <first-name>Duke</first-name>
-  <gender>Male</gender>
-  <institution>Vanilla University of Technology</institution>
-  <city-of-study>Vanilla</city-of-study>
-  <country-of-study>AT</country-of-study>
-  <year-in-phd>3</year-in-phd>
-  <topics-of-interest>Context-aware Trip Planning</topics-of-interest>
-  <phd-advisor>Prof. G. Cetriolo</phd-advisor>
-</Student>
-
-<Student>
-  <name>Jackson</name>
-  <first-name>Milt</first-name>
-  <gender>Male</gender>
-  <institution>Escena</institution>
-  <city-of-study>Aroma</city-of-study>
-  <country-of-study>IT</country-of-study>
-</Student>
-
-<Student>
-  <name>Lee</name>
-  <first-name>Peggy</first-name>
-  <gender>Female</gender>
-  <institution>University des Mitteleuropa</institution>
-  <city-of-study>Linden</city-of-study>
-  <country-of-study>AT</country-of-study>
-  <year-in-phd>1</year-in-phd>
-  <topics-of-interest>Ontology-driven Information Extraction</topics-of-interest>
-  <phd-advisor>a.Univ.Prof.DI.Dr. Z. Melone</phd-advisor>
-</Student>
-
-<Student>
-  <name>Gilberto</name>
-  <first-name>Astrud</first-name>
-  <gender>Female</gender>
-  <institution>Universität der Gemütlichkeit</institution>
-  <city-of-study>Monte Bianco</city-of-study>
-  <country-of-study>DE</country-of-study>
-  <year-in-phd>1</year-in-phd>
-  <topics-of-interest>Emergent semantics</topics-of-interest>
-  <phd-advisor>Pr. Dr. M. Coppa</phd-advisor>
-</Student>
-
-<Student>
-  <name>Rigby</name>
-  <first-name>Eleonore</first-name>
-  <gender>Female</gender>
-  <institution>Politecnico di Bermudas</institution>
-  <city-of-study>Brest Litovsk</city-of-study>
-  <country-of-study>MX</country-of-study>
-</Student>
-
-<Student>
-  <name>Black</name>
-  <first-name>Cilla</first-name>
-  <gender>Female</gender>
-  <institution>University of Shepperington</institution>
-  <city-of-study>Shepperington</city-of-study>
-  <country-of-study>GB</country-of-study>
-  <year-in-phd>1</year-in-phd>
-  <phd-advisor>Prof. G. Limone</phd-advisor>
-</Student>
-
-<Student>
-  <name>Shepp</name>
-  <first-name>Archie</first-name>
-  <gender>Male</gender>
-  <institution>Occarina University</institution>
-  <city-of-study>Paretto Yeats</city-of-study>
-  <country-of-study>GB</country-of-study>
-  <topics-of-interest>Personal Information Management</topics-of-interest>
-</Student>
-
-<Student>
-  <name>Tatum</name>
-  <first-name>Art</first-name>
-  <gender>Male</gender>
-  <institution>National Kapodistrian University of Athens</institution>
-  <city-of-study>Athens</city-of-study>
-  <country-of-study>GR</country-of-study>
-  <year-in-phd>1</year-in-phd>
-  <topics-of-interest>Query evaluation on spatial and temporal RDF databases in Semantic Web</topics-of-interest>
-  <phd-advisor>B. Tiramisu</phd-advisor>
-</Student>
-
-<Student>
-  <name>Corea</name>
-  <first-name>Chick</first-name>
-  <gender>Male</gender>
-  <institution>University of Ausblick</institution>
-  <city-of-study>Ausblick</city-of-study>
-  <country-of-study>DE</country-of-study>
-  <year-in-phd>1</year-in-phd>
-  <topics-of-interest>Semantic technologies in business processes and rules</topics-of-interest>
-  <phd-advisor>Prof. Dr. A. Belladonna</phd-advisor>
-</Student>
-
-<Student>
-  <name>Bryant</name>
-  <first-name>Ray</first-name>
-  <institution>Handshuh University</institution>
-  <city-of-study>Handshuh</city-of-study>
-  <country-of-study>BE</country-of-study>
-</Student>
-
-<Student>
-  <name>Zawinul</name>
-  <first-name>Joe</first-name>
-  <institution>Institute for Social Coworkers</institution>
-  <city-of-study>Madalena</city-of-study>
-  <country-of-study>ES</country-of-study>
-</Student>
-
-<Student>
-  <name>Sinclair</name>
-  <first-name>Betty</first-name>
-  <institution>Institute for Social Coworkers</institution>
-  <city-of-study>Madalena</city-of-study>
-  <country-of-study>ES</country-of-study>
-</Student>
-
-<Student>
-  <name>Aldderley</name>
-  <first-name>Julian</first-name>
-  <institution>Politecnico di Madalena</institution>
-  <city-of-study>Botella de Mantequilla</city-of-study>
-  <country-of-study>ES</country-of-study>
-</Student>
-
-</rdf:RDF>
-- 
GitLab