From b6070fcd0522c02df2a25e5d0e1a29d0f3251864 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Euzenat?= <Jerome.Euzenat@inria.fr> Date: Mon, 10 Jul 2006 11:01:04 +0000 Subject: [PATCH] - made it work just before the presentation --- html/tutorial/MyApp.java | 161 ++++++++++++ html/tutorial/Skeleton.java | 138 ++++++++++ html/tutorial/index.html | 113 ++++++-- html/tutorial/results/SMOA5.xsl | 148 +++++------ html/tutorial/results/data.xml | 22 +- html/tutorial/results/refalign.rdf | 408 +++++++++++++++++++++++++++++ html/tutorial/script.sh | 61 +++++ 7 files changed, 945 insertions(+), 106 deletions(-) create mode 100644 html/tutorial/MyApp.java create mode 100644 html/tutorial/Skeleton.java create mode 100644 html/tutorial/results/refalign.rdf create mode 100644 html/tutorial/script.sh diff --git a/html/tutorial/MyApp.java b/html/tutorial/MyApp.java new file mode 100644 index 00000000..99150d14 --- /dev/null +++ b/html/tutorial/MyApp.java @@ -0,0 +1,161 @@ +/* + * $Id$ + * + * Copyright (C) 2006, INRIA Rhône-Alpes + * + * 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.AlignmentProcess; +import org.semanticweb.owl.align.AlignmentVisitor; +import org.semanticweb.owl.align.Parameters; +import org.semanticweb.owl.align.Evaluator; + +// Alignment API implementation classes +import fr.inrialpes.exmo.align.impl.BasicAlignment; +import fr.inrialpes.exmo.align.impl.BasicParameters; +import fr.inrialpes.exmo.align.impl.method.StringDistAlignment; +import fr.inrialpes.exmo.align.impl.renderer.SWRLRendererVisitor; +import fr.inrialpes.exmo.align.impl.eval.PRecEvaluator; +import fr.inrialpes.exmo.align.parser.AlignmentParser; + +// OWL API classes +import org.semanticweb.owl.util.OWLManager; +import org.semanticweb.owl.model.OWLOntology; +import org.semanticweb.owl.model.OWLException; +import org.semanticweb.owl.io.owl_rdf.OWLRDFParser; +import org.semanticweb.owl.io.owl_rdf.OWLRDFErrorHandler; + +// SAX standard classes +import org.xml.sax.SAXException; + +// Java standard classes +import java.io.PrintWriter; +import java.io.BufferedWriter; +import java.io.OutputStreamWriter; +import java.io.File; +import java.net.URI; +import java.util.Hashtable; + +/** + * The Skeleton of code for embeding the alignment API + * + * Takes two files as arguments and align them. + */ + +public class MyApp { + + static OWLRDFErrorHandler handler = null; + static Hashtable loaded = null; + + public static void main( String[] args ) { + OWLOntology onto1 = null; + OWLOntology onto2 = null; + Parameters params = new BasicParameters(); + + try { + // Initializing ontology parsers + initErrorHandler(); + loaded = new Hashtable(); + + // Loading ontologies + if (args.length >= 2) { + onto1 = loadOntology(args[0]); + onto2 = loadOntology(args[1]); + } else { + System.err.println("Need two arguments to proceed"); + return ; + } + + // Run two diffent alignment methods (e.g., ngram distance and smoa) + AlignmentProcess a1 = new StringDistAlignment( onto1, onto2 ); + params.setParameter("stringFunction","smoaDistance"); + a1.align( (Alignment)null, params ); + AlignmentProcess a2 = new StringDistAlignment( onto1, onto2 ); + params = new BasicParameters(); + params.setParameter("stringFunction","ngramDistance"); + a1.align( (Alignment)null, params ); + + // Merge the two results. + ((BasicAlignment)a1).ingest(a2); + + // Test its f-measure. + AlignmentParser aparser = new AlignmentParser(0); + Alignment reference = aparser.parse( "file://localhost"+(new File ( "refalign.rdf" ) . getAbsolutePath()), loaded ); + Evaluator evaluator = new PRecEvaluator( reference, a1 ); + + // Threshold at various thresholds (and maybe various threshold methods) + for ( int i = 0; i <= 10 ; i = i+2 ){ + a1.cut( ((double)i)/10 ); + evaluator.eval( new BasicParameters() ); + System.err.println("Threshold "+(((double)i)/10)+" : "+((PRecEvaluator)evaluator).getFmeasure()); + } + + // If it is over a certain value, output the result as SWRL rules. + PrintWriter writer = new PrintWriter ( + new BufferedWriter( + new OutputStreamWriter( System.out, "UTF-8" )), true); + AlignmentVisitor renderer = new SWRLRendererVisitor(writer); + a1.render(renderer); + writer.flush(); + writer.close(); + + } catch (Exception e) { e.printStackTrace(); }; + } + + // Initializes RDF Parser error handlers + private static void initErrorHandler() throws Exception { + try { + handler = new OWLRDFErrorHandler() { + public void owlFullConstruct(int code, String message) + throws SAXException { + } + public void owlFullConstruct(int code, String message, Object o) + throws SAXException { + } + public void error(String message) throws SAXException { + throw new SAXException(message.toString()); + } + public void warning(String message) throws SAXException { + System.err.println("WARNING: " + message); + } + }; + } catch (Exception ex) { + throw ex; + } + } + + // Load an ontology in the OWL API + public static OWLOntology loadOntology(String filename) + throws Exception { + URI uri = new URI ("file://localhost"+(new File ( filename ) . getAbsolutePath())); + if (uri == null) { throw new OWLException( "Bad filename" ); } + OWLRDFParser parser = new OWLRDFParser(); + parser.setOWLRDFErrorHandler(handler); + parser.setConnection(OWLManager.getOWLConnection()); + OWLOntology parsedOnt = parser.parseOntology(uri); + loaded.put( uri, parsedOnt ); + return parsedOnt; + } + +} diff --git a/html/tutorial/Skeleton.java b/html/tutorial/Skeleton.java new file mode 100644 index 00000000..0846b121 --- /dev/null +++ b/html/tutorial/Skeleton.java @@ -0,0 +1,138 @@ +/* + * $Id: Skeleton.java 267 2006-06-06 11:34:32Z euzenat $ + * + * Copyright (C) 2006, INRIA Rhône-Alpes + * + * 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.AlignmentProcess; +import org.semanticweb.owl.align.AlignmentVisitor; +import org.semanticweb.owl.align.Parameters; + +// Alignment API implementation classes +import fr.inrialpes.exmo.align.impl.BasicAlignment; +import fr.inrialpes.exmo.align.impl.BasicParameters; +import fr.inrialpes.exmo.align.impl.method.StringDistAlignment; +import fr.inrialpes.exmo.align.impl.renderer.RDFRendererVisitor; + +// OWL API classes +import org.semanticweb.owl.util.OWLManager; +import org.semanticweb.owl.model.OWLOntology; +import org.semanticweb.owl.model.OWLException; +import org.semanticweb.owl.io.owl_rdf.OWLRDFParser; +import org.semanticweb.owl.io.owl_rdf.OWLRDFErrorHandler; + +// SAX standard classes +import org.xml.sax.SAXException; + +// Java standard classes +import java.io.PrintWriter; +import java.io.BufferedWriter; +import java.io.OutputStreamWriter; +import java.io.File; +import java.net.URI; +import java.util.Hashtable; + +/** + * The Skeleton of code for embeding the alignment API + * + * Takes two files as arguments and align them. + */ + +public class Skeleton { + + static OWLRDFErrorHandler handler = null; + static Hashtable loaded = null; + + public static void main( String[] args ) { + OWLOntology onto1 = null; + OWLOntology onto2 = null; + Parameters params = new BasicParameters(); + + try { + // Initializing ontology parsers + initErrorHandler(); + loaded = new Hashtable(); + + // Loading ontologies + if (args.length >= 2) { + onto1 = loadOntology(args[0]); + onto2 = loadOntology(args[1]); + } else { + System.err.println("Need two arguments to proceed"); + return ; + } + + // Aligning + AlignmentProcess a1 = new StringDistAlignment( onto1, onto2 ); + a1.align( (Alignment)null, params ); + + // Outputing + PrintWriter writer = new PrintWriter ( + new BufferedWriter( + new OutputStreamWriter( System.out, "UTF-8" )), true); + AlignmentVisitor renderer = new RDFRendererVisitor(writer); + a1.render(renderer); + writer.flush(); + writer.close(); + + } catch (Exception e) { e.printStackTrace(); }; + } + + // Initializes RDF Parser error handlers + private static void initErrorHandler() throws Exception { + try { + handler = new OWLRDFErrorHandler() { + public void owlFullConstruct(int code, String message) + throws SAXException { + } + public void owlFullConstruct(int code, String message, Object o) + throws SAXException { + } + public void error(String message) throws SAXException { + throw new SAXException(message.toString()); + } + public void warning(String message) throws SAXException { + System.err.println("WARNING: " + message); + } + }; + } catch (Exception ex) { + throw ex; + } + } + + // Load an ontology in the OWL API + public static OWLOntology loadOntology(String filename) + throws Exception { + URI uri = new URI ("file://localhost"+(new File ( filename ) . getAbsolutePath())); + if (uri == null) { throw new OWLException( "Bad filename" ); } + OWLRDFParser parser = new OWLRDFParser(); + parser.setOWLRDFErrorHandler(handler); + parser.setConnection(OWLManager.getOWLConnection()); + OWLOntology parsedOnt = parser.parseOntology(uri); + loaded.put( uri, parsedOnt ); + return parsedOnt; + } + +} diff --git a/html/tutorial/index.html b/html/tutorial/index.html index 04f634e9..572437a0 100644 --- a/html/tutorial/index.html +++ b/html/tutorial/index.html @@ -220,9 +220,10 @@ $ java -jar ../../lib/procalign.jar -i fr.inrialpes.exmo.align.impl.method.Strin <a href="../../src/fr/inrialpes/exmo/align/impl/method>"../../src/fr/inrialpes/exmo/align/impl/method</a> directory for more simple alignment methods. Also look in the - <tt>StringDistAlignment</tt> class the possible values for <tt>stringFunction</tt>.</p></div></p> + <tt>StringDistances</tt> class the possible values + for <tt>stringFunction</tt> (they are the names of methods).</p></div></p> -<p><div class="logic"><b>Advanced:</b> You can also look at the instructions for +<p><div class="logic"><p><b>Advanced:</b> You can also look at the instructions for installing WordNet and its Java interface and use a WordNet based distance provided with the API implementation by: <div class="fragment"><pre> @@ -272,17 +273,17 @@ See the output in <a href="results/AOMS5.rdf">RDF/XML</a> or <a href="results/AOMS5.html">HTML</a>. The results is an alignement from the source to the target.</p> -<p><div class="logic"><b>More work:</b>There is another switch (<tt>-T</tt>) in Procalign that +<p><div class="logic"><p><b>More work:</b>There is another switch (<tt>-T</tt>) in Procalign that specifies the way a threshold is applied (hard|perc|prop|best|span) the default being "hard". The curious reader can apply these and see the difference in results. How they work is explained in the Alignment API documentation. -</div></p> +</p></div></p> -<p><div class="logic"><b>More work:</b> Try to play with the +<p><div class="logic"><p><b>More work:</b> Try to play with the thresholds in order to find the best values for levenshteinDistance and smoaDistance. -</div></p> +</p></div></p> <hr /> <h2>Output</h2> @@ -510,14 +511,14 @@ content is the table:<br /> $ java -jar ../../lib/Procalign.jar file://localhost$CWD/rdf/edu.umbc.ebiquity.publication.owl file://localhost$CWD/rdf/edu.mit.visus.bibtex.owl -i fr.inrialpes.exmo.align.impl.method.StringDistAlignment -DstringFunction=levenshteinDistance -DprintMatrix=1 -o /dev/null > matrix.tex </pre></div--> -<div class="logic"><p><b>More work:</b> As you can see, +<p><div class="logic"><p><b>More work:</b> As you can see, the <tt>PRecEvaluator</tt> does not only provide precision and recall but also provides F-measure. F-measure is usually used as an "absolute" trade-off between precision and recall (i.e., the optimum F-measure is considered the best precision and recall). Can you establish this point for SMOA and levenshtein and tell which algorithm is more adapted? -</p></div> +</p></div></p> <!--div class="logic"><p><b>More work:</b>If you want to compare several algorithms, there is another class, GroupAlign, that allows to run an @@ -530,29 +531,99 @@ $ java -jar ../../lib/Procalign.jar file://localhost$CWD/rdf/edu.umbc.ebiquity.p line level (even if it is very often very useful). So if you are ready for it, you can develop in Java your own application that take advantage of the API.</p> +<p>A skeleton of program using the Alignment API + is <a href="Skeleton.java">Skeleton.java</a>. It can be compiled by + invoking: +<div class="fragment"><pre> +$ javac -classpath ../../lib/api.jar:../../lib/rdfparser.jar:../../lib/align.jar:../../lib/procalign.jar Skeleton.java +</div> +and run by: +<div class="fragment"><pre> +$ java -cp ../../lib/Procalign.jar:. Skeleton myOnto.owl edu.mit.visus.bibtex.owl +</pre></div></p> -<p>This should be possible to invoque it through: +<p>Now considering the API (that can be consulted through its thin + at <a + href="../../javadoc/org/semanticweb/owl/align/Alignment.html">Javadoc</a> + for instance), can you modify the Skeleton program in order for it + performs the following: +<ul compact="1"> +<li>Run two diffent alignment methods (e.g., ngram distance and + smoa);</li> +<li>Merge the two results;</li> +<li>Threshold at various thresholds;</li> +<li>Evaluate them against the references and choose the one with the + best F-Measure;</li> +<li>Displays it as SWRL Rules.</li> +</ul> +Of course, you can do it progressively. <div class="fragment"><pre> -$ java -cp ../../lib/Procalign.jar MyApp file://localhost$CWD/rdf/edu.umbc.ebiquity.publication.owl file://localhost$CWD/rdf/edu.mit.visus.bibtex.owl +$ javac -classpath ../../lib/api.jar:../../lib/rdfparser.jar:../../lib/align.jar:../../lib/procalign.jar MyApp.java +$ java -cp ../../lib/Procalign.jar:. MyApp myOnto.owl edu.mit.visus.bibtex.owl > results/MyApp.owl </pre></div></p> +<p>Do you want to see a possible solution? +<div class="button"><form> +<input type="button" value="Cheat" onclick="show('qu7')"/> +<input type="button" value="Teacher is comming" onclick="hide('qu7')"/> +</form></div> +<div class="explain" id="qu7"><p> +The main piece of code in Skeleton.java is replaced by +<pre> +// Run two diffent alignment methods (e.g., ngram distance and smoa) +AlignmentProcess a1 = new StringDistAlignment( onto1, onto2 ); +params.setParameter("stringFunction","smoaDistance"); +a1.align( (Alignment)null, params ); +AlignmentProcess a2 = new StringDistAlignment( onto1, onto2 ); +params = new BasicParameters(); +params.setParameter("stringFunction","ngramDistance"); +a1.align( (Alignment)null, params ); + +// Merge the two results. +((BasicAlignment)a1).ingest(a2); + +// Test its f-measure. +AlignmentParser aparser = new AlignmentParser(0); +Alignment reference = aparser.parse( "file://localhost"+(new File ( "refalign.rdf" ) . getAbsolutePath()), loaded ); +Evaluator evaluator = new PRecEvaluator( reference, a1 ); + +// Threshold at various thresholds (and maybe various threshold methods) +for ( int i = 0; i <= 10 ; i = i+2 ){ + a1.cut( ((double)i)/10 ); + evaluator.eval( new BasicParameters() ); + System.err.println("Threshold "+(((double)i)/10)+" : "+((PRecEvaluator)evaluator).getFmeasure()); +} -<div class="logic"><p><b>More work:</b> Can you add a switch like the <tt>-i</tt> switch +// If it is over a certain value, output the result as SWRL rules. +PrintWriter writer = new PrintWriter ( + new BufferedWriter( + new OutputStreamWriter( System.out, "UTF-8" )), true); +AlignmentVisitor renderer = new SWRLRendererVisitor(writer); +a1.render(renderer); +</pre> +</p></div></p> +</p> +<p>A full working solution is <a href="MyApp.java">MyApp.java</a>.</p> +<p><div class="logic"><p><b>More work:</b> Can you add a switch like the <tt>-i</tt> switch of <tt>Procalign</tt> so that the main class of the application can be passed at commant-line. -</p></div> - -<p> +</p></div></p> +<p><div class="logic"><p><b>More work:</b> Implement the F-measure optimization rule + presented above so that you automatically select the threshold that + maximizes F-measure. +</p></div></p> +<p><div class="logic"><p><b>Advanced:</b> +What about writing an editor for the alignment API? +</p></div></p> +<p><div class="logic"><p><b>Advanced:</b> +You can develop a specialized matching algorithm +by subclassing the Java programs provided in the Alignment API +implementation (like BasicAlignment or DistanceAlignment). +</p></div></p> -you can develop a specialized matching algorithm - by subclassing the Java programs provided in -<div class="logic"><p><b>More work:</b> Implement the F-measure optimization rule - presented above so that you automatically select the threshold that - maximizes F-measure. -</p></div> <hr /> <h2>Further exercises</h2> @@ -577,6 +648,6 @@ Planning: <hr /> <center><small>http://alignapi.gforge.inria.fr/tutorial</small></center> <hr /> -$Id$ +$Id:$ </body> </html> diff --git a/html/tutorial/results/SMOA5.xsl b/html/tutorial/results/SMOA5.xsl index ac228ca9..c1233d88 100644 --- a/html/tutorial/results/SMOA5.xsl +++ b/html/tutorial/results/SMOA5.xsl @@ -1,411 +1,411 @@ <?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" - xmlns:owl="http://www.w3.org/2002/07/owl#" +<xsl:stylesheet version="1.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" - xmlns:xsd="http://www.w3.org/2001/XMLSchema#" -xmlns:ns1="http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#" -xmlns:ns2="http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#" -> + xmlns:owl="http://www.w3.org/2002/07/owl#" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:ns1="http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#" + xmlns:ns0="http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#" + xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" + > <xsl:template match="rdf:List"> - <xsl:element name="ns2:Unpublished"> + <xsl:element name="ns0:Unpublished"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:Booklet"> - <xsl:element name="ns2:Booklet"> + <xsl:element name="ns0:Booklet"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:InBook"> - <xsl:element name="ns2:Inbook"> + <xsl:element name="ns0:Inbook"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="rdf:rest"> - <xsl:element name="ns2:hasAddress"> + <xsl:element name="ns0:hasAddress"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:Collection"> - <xsl:element name="ns2:Incollection"> + <xsl:element name="ns0:Incollection"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:Part"> - <xsl:element name="ns2:Article"> + <xsl:element name="ns0:Article"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:keywords"> - <xsl:element name="ns2:hasKeywords"> + <xsl:element name="ns0:hasKeywords"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:number"> - <xsl:element name="ns2:hasNumber"> + <xsl:element name="ns0:hasNumber"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:lang"> - <xsl:element name="ns2:hasLanguage"> + <xsl:element name="ns0:hasLanguage"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:Misc"> - <xsl:element name="ns2:Misc"> + <xsl:element name="ns0:Misc"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:editor"> - <xsl:element name="ns2:hasEditor"> + <xsl:element name="ns0:hasEditor"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:InProceedings"> - <xsl:element name="ns2:Inproceedings"> + <xsl:element name="ns0:Inproceedings"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:type"> - <xsl:element name="ns2:hasType"> + <xsl:element name="ns0:hasType"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:location"> - <xsl:element name="ns2:hasLocation"> + <xsl:element name="ns0:hasLocation"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:isbn"> - <xsl:element name="ns2:hasISBN"> + <xsl:element name="ns0:hasISBN"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:copyright"> - <xsl:element name="ns2:hasCopyright"> + <xsl:element name="ns0:hasCopyright"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:TechReport"> - <xsl:element name="ns2:Techreport"> + <xsl:element name="ns0:Techreport"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:contents"> - <xsl:element name="ns2:hasContents"> + <xsl:element name="ns0:hasContents"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:series"> - <xsl:element name="ns2:hasSeries"> + <xsl:element name="ns0:hasSeries"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:annote"> - <xsl:element name="ns2:hasNote"> + <xsl:element name="ns0:hasNote"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:key"> - <xsl:element name="ns2:hasKey"> + <xsl:element name="ns0:hasKey"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:date"> - <xsl:element name="ns2:pageChapterData"> + <xsl:element name="ns0:pageChapterData"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:lccn"> - <xsl:element name="ns2:hasLCCN"> + <xsl:element name="ns0:hasLCCN"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:Published"> - <xsl:element name="ns2:Unpublished"> + <xsl:element name="ns0:Unpublished"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:Institution"> - <xsl:element name="ns2:Incollection"> + <xsl:element name="ns0:Incollection"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:MastersThesis"> - <xsl:element name="ns2:Mastersthesis"> + <xsl:element name="ns0:Mastersthesis"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:Entry"> - <xsl:element name="ns2:Entry"> + <xsl:element name="ns0:Entry"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:price"> - <xsl:element name="ns2:hasPrice"> + <xsl:element name="ns0:hasPrice"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:Publisher"> - <xsl:element name="ns2:Unpublished"> + <xsl:element name="ns0:Unpublished"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:edition"> - <xsl:element name="ns2:hasEdition"> + <xsl:element name="ns0:hasEdition"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:size"> - <xsl:element name="ns2:hasSize"> + <xsl:element name="ns0:hasSize"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:year"> - <xsl:element name="ns2:hasYear"> + <xsl:element name="ns0:hasYear"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:month"> - <xsl:element name="ns2:hasMonth"> + <xsl:element name="ns0:hasMonth"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:Unpublished"> - <xsl:element name="ns2:Unpublished"> + <xsl:element name="ns0:Unpublished"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:Proceedings"> - <xsl:element name="ns2:Proceedings"> + <xsl:element name="ns0:Proceedings"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:institution"> - <xsl:element name="ns2:hasInstitution"> + <xsl:element name="ns0:hasInstitution"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:humanCreator"> - <xsl:element name="ns2:humanCreator"> + <xsl:element name="ns0:humanCreator"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:Techreport"> - <xsl:element name="ns2:Techreport"> + <xsl:element name="ns0:Techreport"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:volume"> - <xsl:element name="ns2:hasVolume"> + <xsl:element name="ns0:hasVolume"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:affiliation"> - <xsl:element name="ns2:hasAffiliation"> + <xsl:element name="ns0:hasAffiliation"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:issn"> - <xsl:element name="ns2:hasISSN"> + <xsl:element name="ns0:hasISSN"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:short"> - <xsl:element name="ns2:hasAuthor"> + <xsl:element name="ns0:hasAuthor"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:language"> - <xsl:element name="ns2:hasLanguage"> + <xsl:element name="ns0:hasLanguage"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:Article"> - <xsl:element name="ns2:Article"> + <xsl:element name="ns0:Article"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:url"> - <xsl:element name="ns2:hasURL"> + <xsl:element name="ns0:hasURL"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:author"> - <xsl:element name="ns2:hasAuthor"> + <xsl:element name="ns0:hasAuthor"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:BookPart"> - <xsl:element name="ns2:Book"> + <xsl:element name="ns0:Book"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:note"> - <xsl:element name="ns2:hasNote"> + <xsl:element name="ns0:hasNote"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:howPublished"> - <xsl:element name="ns2:howPublished"> + <xsl:element name="ns0:howPublished"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:publisher"> - <xsl:element name="ns2:hasPublisher"> + <xsl:element name="ns0:hasPublisher"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:school"> - <xsl:element name="ns2:hasSchool"> + <xsl:element name="ns0:hasSchool"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:Thesis"> - <xsl:element name="ns2:Phdthesis"> + <xsl:element name="ns0:Phdthesis"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:InCollection"> - <xsl:element name="ns2:Incollection"> + <xsl:element name="ns0:Incollection"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:endPage"> - <xsl:element name="ns2:hasPages"> + <xsl:element name="ns0:hasPages"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:startPage"> - <xsl:element name="ns2:hasPages"> + <xsl:element name="ns0:hasPages"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:organization"> - <xsl:element name="ns2:hasOrganization"> + <xsl:element name="ns0:hasOrganization"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:inJournal"> - <xsl:element name="ns2:hasJournal"> + <xsl:element name="ns0:hasJournal"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:abstract"> - <xsl:element name="ns2:hasAbstract"> + <xsl:element name="ns0:hasAbstract"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:PhdThesis"> - <xsl:element name="ns2:Phdthesis"> + <xsl:element name="ns0:Phdthesis"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:Book"> - <xsl:element name="ns2:Book"> + <xsl:element name="ns0:Book"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:title"> - <xsl:element name="ns2:hasTitle"> + <xsl:element name="ns0:hasTitle"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:numberOrVolume"> - <xsl:element name="ns2:hasNumber"> + <xsl:element name="ns0:hasNumber"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:pages"> - <xsl:element name="ns2:hasPages"> + <xsl:element name="ns0:hasPages"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:pagesOrChapter"> - <xsl:element name="ns2:pageChapterData"> + <xsl:element name="ns0:pageChapterData"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:Manual"> - <xsl:element name="ns2:Manual"> + <xsl:element name="ns0:Manual"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:mrNumber"> - <xsl:element name="ns2:hasMrnumber"> + <xsl:element name="ns0:hasMrnumber"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> <xsl:template match="ns1:chapter"> - <xsl:element name="ns2:hasChapter"> + <xsl:element name="ns0:hasChapter"> <xsl:apply-templates select="*|@*|text()"/> </xsl:element> </xsl:template> diff --git a/html/tutorial/results/data.xml b/html/tutorial/results/data.xml index 4ea9908d..cefcf93b 100644 --- a/html/tutorial/results/data.xml +++ b/html/tutorial/results/data.xml @@ -8,21 +8,21 @@ <dc:description>Bibliographic entries</dc:description> </owl:Ontology> - <ns2:Techreport xmlns:ns2="http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#" rdf:about="#a475526642"> - <ns2:hasAuthor> + <ns0:Techreport xmlns:ns0="http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#" rdf:about="#a475526642"> + <ns0:hasAuthor> <PersonList> <rdf:first rdf:resource="http://exmo.inrialpes.fr/people/euzenat/euzenatj.rdf#je"/> - <ns2:hasAddress rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/> + <ns0:hasAddress rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/> </PersonList> - </ns2:hasAuthor> - <ns2:hasInstitution rdf:resource="http://www.inria.fr"/> - <ns2:hasTitle>An API for ontology alignment</ns2:hasTitle> - <ns2:pageChapterData><Date><ns2:hasYear>1996</ns2:hasYear></Date></ns2:pageChapterData> - <ns2:hasCopyright>INRIA Rhône-Alpes 2004-2006</ns2:hasCopyright> - <ns2:hasNumber>Unfilled</ns2:hasNumber> - </ns2:Techreport> + </ns0:hasAuthor> + <ns0:hasInstitution rdf:resource="http://www.inria.fr"/> + <ns0:hasTitle>An API for ontology alignment</ns0:hasTitle> + <ns0:pageChapterData><Date><ns0:hasYear>1996</ns0:hasYear></Date></ns0:pageChapterData> + <ns0:hasCopyright>INRIA Rhône-Alpes 2004-2006</ns0:hasCopyright> + <ns0:hasNumber>Unfilled</ns0:hasNumber> + </ns0:Techreport> - <ns2:Incollection xmlns:ns2="http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#" rdf:ID="http://www.inria.fr"/> + <ns0:Incollection xmlns:ns0="http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#" rdf:ID="http://www.inria.fr"/> <Person rdf:ID="http://exmo.inrialpes.fr/people/euzenat/euzenatj.rdf#je"/> diff --git a/html/tutorial/results/refalign.rdf b/html/tutorial/results/refalign.rdf new file mode 100644 index 00000000..52513b5e --- /dev/null +++ b/html/tutorial/results/refalign.rdf @@ -0,0 +1,408 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<rdf:RDF xmlns='http://knowledgeweb.semanticweb.org/heterogeneity/alignment' + xml:base='http://knowledgeweb.semanticweb.org/heterogeneity/alignment' + xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' + xmlns:xsd='http://www.w3.org/2001/XMLSchema#'> +<Alignment> + <xml>yes</xml> + <level>0</level> + <type>11</type> + <method>Manually generated</method> + <onto1>file://localhost/JAVA/alignapi/html/tutorial/myOnto.owl</onto1> + <onto2>file://localhost/JAVA/alignapi/html/tutorial/edu.mit.visus.bibtex.owl</onto2> + <uri1>http://alignapi.gforge.inria.fr/tutorial/myOnto.owl</uri1> + <uri2>http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl</uri2> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#InProceedings'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#Inproceedings'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#key'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasKey'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#Entry'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#Entry'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#contents'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasContents'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#lang'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasLanguage'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#keywords'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasKeywords'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#size'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasSize'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#type'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasType'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#howPublished'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#howPublished'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#volume'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasVolume'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#month'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasMonth'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#copyright'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasCopyright'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#chapter'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasChapter'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#InBook'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#Inbook'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#editor'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasEditor'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#series'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasSeries'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#title'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasTitle'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#Booklet'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#Booklet'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#numberOrVolume'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasVolume'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#Unpublished'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#Unpublished'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#MastersThesis'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#Mastersthesis'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>0.9230769230769231</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#inJournal'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasJournal'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <!--map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#mrNumber'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasNumber'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map--> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#pages'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasPages'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#edition'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasEdition'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#affiliation'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasAffiliation'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#year'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasYear'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#organization'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasOrganization'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#school'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasSchool'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#publisher'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasPublisher'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#Misc'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#Misc'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#Techreport'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#Techreport'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#institution'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasInstitution'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#abstract'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasAbstract'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#location'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasLocation'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#Article'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#Article'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#price'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasPrice'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#Book'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#Book'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#PhdThesis'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#Phdthesis'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#Proceedings'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#Proceedings'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#number'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasNumber'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#TechReport'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#Techreport'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#InCollection'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#Incollection'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#author'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasAuthor'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#note'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasNote'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#humanCreator'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#humanCreator'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#pagesOrChapter'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasChapter'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#Manual'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#Manual'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> + <map> + <Cell> + <entity1 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/myOnto.owl#language'/> + <entity2 rdf:resource='http://alignapi.gforge.inria.fr/tutorial/edu.mit.visus.bibtex.owl#hasLanguage'/> + <measure rdf:datatype='http://www.w3.org/2001/XMLSchema#float'>1.0</measure> + <relation>=</relation> + </Cell> + </map> +</Alignment> +</rdf:RDF> diff --git a/html/tutorial/script.sh b/html/tutorial/script.sh new file mode 100644 index 00000000..8af6d644 --- /dev/null +++ b/html/tutorial/script.sh @@ -0,0 +1,61 @@ +#!/bin/csh + +##################### +# Preparation + +#mkdir alignapi +#cd alignapi +#unzip align*.zip +#java -jar lib/procalign.jar --help +#cd html/tutorial +setenv CWD `pwd` + +/bin/rm results/* + +##################### +# Matching + +java -jar ../../lib/procalign.jar file://localhost$CWD/myOnto.owl file://localhost$CWD/edu.mit.visus.bibtex.owl +java -jar ../../lib/procalign.jar file://localhost$CWD/myOnto.owl file://localhost$CWD/edu.mit.visus.bibtex.owl -o results/equal.rdf +xsltproc ../form-align.xsl results/equal.rdf > results/equal.html +java -jar ../../lib/procalign.jar -i fr.inrialpes.exmo.align.impl.method.StringDistAlignment -DstringFunction=levenshteinDistance file://localhost$CWD/myOnto.owl file://localhost$CWD/edu.mit.visus.bibtex.owl -o results/levenshtein.rdf +xsltproc ../form-align.xsl results/levenshtein.rdf > results/levenshtein.html +java -jar ../../lib/procalign.jar -i fr.inrialpes.exmo.align.impl.method.StringDistAlignment -DstringFunction=smoaDistance file://localhost$CWD/myOnto.owl file://localhost$CWD/edu.mit.visus.bibtex.owl -o results/SMOA.rdf +xsltproc ../form-align.xsl results/SMOA.rdf > results/SMOA.html +#java -jar ../../lib/alignwn.jar -i fr.inrialpes.exmo.align.ling.JWNLAlignment file://localhost$CWD/myOnto.owl file://localhost$CWD/edu.mit.visus.bibtex.owl -o results/jwnl.rdf +#xsltproc ../form-align.xsl results/jwnl.rdf > results/jwnl.html + +##################### +# Manipulating + +java -jar ../../lib/procalign.jar -i fr.inrialpes.exmo.align.impl.method.StringDistAlignment -DstringFunction=levenshteinDistance -t 0.33 file://localhost$CWD/myOnto.owl file://localhost$CWD/edu.mit.visus.bibtex.owl -o results/levenshtein33.rdf +xsltproc ../form-align.xsl results/levenshtein33.rdf > results/levenshtein33.html +java -jar ../../lib/procalign.jar -i fr.inrialpes.exmo.align.impl.method.StringDistAlignment -DstringFunction=smoaDistance -t 0.5 file://localhost$CWD/myOnto.owl file://localhost$CWD/edu.mit.visus.bibtex.owl -o results/SMOA5.rdf +xsltproc ../form-align.xsl results/SMOA5.rdf > results/SMOA5.html +java -cp ../../lib/procalign.jar fr.inrialpes.exmo.align.util.ParserPrinter -i results/SMOA5.rdf -o results/AOMS5.rdf +xsltproc ../form-align.xsl results/AOMS5.rdf > results/AOMS5.html + +##################### +# Outputing + +java -cp ../../lib/procalign.jar fr.inrialpes.exmo.align.util.ParserPrinter results/SMOA5.rdf -r fr.inrialpes.exmo.align.impl.renderer.OWLAxiomsRendererVisitor +java -cp ../../lib/procalign.jar fr.inrialpes.exmo.align.util.ParserPrinter results/SMOA5.rdf -r fr.inrialpes.exmo.align.impl.renderer.SWRLRendererVisitor +java -cp ../../lib/procalign.jar fr.inrialpes.exmo.align.util.ParserPrinter results/SMOA5.rdf -r fr.inrialpes.exmo.align.impl.renderer.XSLTRendererVisitor -o results/SMOA5.xsl +xsltproc results/SMOA5.xsl data.xml > results/data.xml + +##################### +# Evaluating + +xsltproc ../form-align.xsl refalign.rdf > results/refalign.html +java -cp ../../lib/procalign.jar fr.inrialpes.exmo.align.util.EvalAlign -i fr.inrialpes.exmo.align.impl.eval.PRecEvaluator file://localhost$CWD/refalign.rdf file://localhost$CWD/results/equal.rdf +java -cp ../../lib/procalign.jar fr.inrialpes.exmo.align.util.EvalAlign -i fr.inrialpes.exmo.align.impl.eval.PRecEvaluator file://localhost$CWD/refalign.rdf file://localhost$CWD/results/levenshtein33.rdf +#java -jar ../../lib/Procalign.jar file://localhost$CWD/rdf/myOnto.owl file://localhost$CWD/rdf/edu.mit.visus.bibtex.owl -i fr.inrialpes.exmo.align.impl.method.StringDistAlignment -DstringFunction=levenshteinDistance -DprintMatrix=1 -o /dev/null > matrix.tex +cp refalign.rdf results +java -cp ../../lib/procalign.jar fr.inrialpes.exmo.align.util.GroupEval -r refalign.rdf -l "refalign,equal,SMOA,SMOA5,levenshtein,levenshtein33" -c prf -o results/eval.html + +##################### +# Evaluating + +javac -classpath ../../lib/api.jar:../../lib/rdfparser.jar:../../lib/align.jar:../../lib/procalign.jar MyApp +java -cp ../../lib/Procalign.jar MyApp file://localhost$CWD/rdf/myOnto.owl file://localhost$CWD/rdf/edu.mit.visus.bibtex.owl + -- GitLab