Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 499919fe authored by Jérôme Euzenat's avatar Jérôme Euzenat
Browse files

- added provision for extensions (extra annotations in the alignments)

parent 1f8ce496
No related branches found
No related tags found
No related merge requests found
...@@ -68,16 +68,18 @@ public class RDFRendererVisitor implements AlignmentVisitor ...@@ -68,16 +68,18 @@ public class RDFRendererVisitor implements AlignmentVisitor
alignment = align; alignment = align;
writer.print("<?xml version='1.0' encoding='utf-8"); writer.print("<?xml version='1.0' encoding='utf-8");
writer.print("' standalone='no'?>\n"); writer.print("' standalone='no'?>\n");
writer.print("<rdf:RDF xmlns='http://knowledgeweb.semanticweb.org/heterogeneity/alignment'\n xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'\n xmlns:xsd='http://www.w3.org/2001/XMLSchema#'>\n"); writer.print("<rdf:RDF xmlns='http://knowledgeweb.semanticweb.org/heterogeneity/alignment'\n xml:base='http://knowledgeweb.semanticweb.org/heterogeneity/alignment'\n xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'\n xmlns:xsd='http://www.w3.org/2001/XMLSchema#'>\n");
writer.print("<Alignment>\n <xml>yes</xml>\n"); writer.print("<Alignment>\n <xml>yes</xml>\n");
writer.print(" <level>"); writer.print(" <level>");
writer.print( align.getLevel() ); writer.print( align.getLevel() );
writer.print("</level>\n <type>"); writer.print("</level>\n <type>");
writer.print( align.getType() ); writer.print( align.getType() );
writer.print("</type>\n"); writer.print("</type>\n");
writer.print(" <method>"); // Get the keys of the parameter
writer.print( align.getClass().getName()); for( Enumeration e = align.getExtensions().getNames() ; e.hasMoreElements() ; ){
writer.print("</method>\n"); String tag = (String)e.nextElement();
writer.print(" <"+tag+">"+align.getExtension(tag)+"</"+tag+">\n");
}
try { try {
if ( align.getFile1() != null ) if ( align.getFile1() != null )
writer.print(" <onto1>"+align.getFile1().toString()+"</onto1>\n"); writer.print(" <onto1>"+align.getFile1().toString()+"</onto1>\n");
......
/* /*
* $Id$ * $Id$
* MULT
* *
* Copyright (C) 2003-2005 INRIA Rhne-Alpes. * Copyright (C) 2003-2005 INRIA Rhne-Alpes.
* *
...@@ -152,6 +151,12 @@ public class AlignmentParser extends DefaultHandler { ...@@ -152,6 +151,12 @@ public class AlignmentParser extends DefaultHandler {
* XML Parser * XML Parser
1 */ 1 */
protected SAXParser parser = null; protected SAXParser parser = null;
/**
* The parsing level, if equal to 2 we are in the Alignment
* and can find metadata
*/
protected int parselevel = 0;
/** /**
* Creates an XML Parser. * Creates an XML Parser.
...@@ -194,6 +199,7 @@ public class AlignmentParser extends DefaultHandler { ...@@ -194,6 +199,7 @@ public class AlignmentParser extends DefaultHandler {
public void startElement(String namespaceURI, String pName, String qname, Attributes atts) throws SAXException { public void startElement(String namespaceURI, String pName, String qname, Attributes atts) throws SAXException {
if(debugMode > 2) if(debugMode > 2)
System.err.println("startElement AlignmentParser : " + pName); System.err.println("startElement AlignmentParser : " + pName);
parselevel++;
if(namespaceURI.equals("http://knowledgeweb.semanticweb.org/heterogeneity/alignment")) { if(namespaceURI.equals("http://knowledgeweb.semanticweb.org/heterogeneity/alignment")) {
try { try {
if (pName.equals("relation")) { if (pName.equals("relation")) {
...@@ -259,7 +265,7 @@ public class AlignmentParser extends DefaultHandler { ...@@ -259,7 +265,7 @@ public class AlignmentParser extends DefaultHandler {
if ( !pName.equals("RDF") ) { if ( !pName.equals("RDF") ) {
throw new SAXException("[AlignmentParser] unknown element name: "+pName); }; throw new SAXException("[AlignmentParser] unknown element name: "+pName); };
} else { } else {
throw new SAXException("[AlignmentParser] Unknown namespace : "+namespaceURI); if ( parselevel != 2 ) throw new SAXException("[AlignmentParser] Unknown namespace : "+namespaceURI);
} }
} }
...@@ -326,20 +332,12 @@ public class AlignmentParser extends DefaultHandler { ...@@ -326,20 +332,12 @@ public class AlignmentParser extends DefaultHandler {
} else if (pName.equals("map")) { } else if (pName.equals("map")) {
} else if (pName.equals("uri1")) { } else if (pName.equals("uri1")) {
onto1 = (OWLOntology)ontologies.get( content ); onto1 = (OWLOntology)ontologies.get( content );
//try { alignment.setFile1( new URI( content ) );
//} catch (Exception e) {e.printStackTrace();};
} else if (pName.equals("uri2")) { } else if (pName.equals("uri2")) {
onto2 = (OWLOntology)ontologies.get( content ); onto2 = (OWLOntology)ontologies.get( content );
//try { alignment.setFile2( new URI( content ) );
//} catch (Exception e) {e.printStackTrace();};
} else if (pName.equals("onto2")) { } else if (pName.equals("onto2")) {
// If the ontology is already loaded.
//onto2 = (OWLOntology)ontologies.get( content );
//JE: these are URI, I do not try to locate!
try { alignment.setFile2( new URI( content ) ); try { alignment.setFile2( new URI( content ) );
} catch (Exception e) {e.printStackTrace();} } catch (Exception e) {e.printStackTrace();}
} else if (pName.equals("onto1")) { } else if (pName.equals("onto1")) {
//onto1 = (OWLOntology)ontologies.get( content );
try { alignment.setFile1( new URI( content ) ); try { alignment.setFile1( new URI( content ) );
} catch (Exception e) {e.printStackTrace();} } catch (Exception e) {e.printStackTrace();}
} else if (pName.equals("type")) { } else if (pName.equals("type")) {
...@@ -351,7 +349,8 @@ public class AlignmentParser extends DefaultHandler { ...@@ -351,7 +349,8 @@ public class AlignmentParser extends DefaultHandler {
// { throw new SAXException("Non parseable alignment"); } // { throw new SAXException("Non parseable alignment"); }
} else if (pName.equals("Alignment")) { } else if (pName.equals("Alignment")) {
} else { } else {
if ( debugMode > 0 ) System.err.println("[AlignmentParser] Unknown element name : "+pName); if ( debugMode > 0 )
System.err.println("[AlignmentParser] Unknown element name : "+pName);
//throw new SAXException("[AlignmentParser] Unknown element name : "+pName); //throw new SAXException("[AlignmentParser] Unknown element name : "+pName);
}; };
} catch ( AlignmentException e ) { throw new SAXException("[AlignmentParser] OWLException raised"); }; } catch ( AlignmentException e ) { throw new SAXException("[AlignmentParser] OWLException raised"); };
...@@ -359,8 +358,11 @@ public class AlignmentParser extends DefaultHandler { ...@@ -359,8 +358,11 @@ public class AlignmentParser extends DefaultHandler {
if ( !pName.equals("RDF") ) { if ( !pName.equals("RDF") ) {
throw new SAXException("[AlignmentParser] unknown element name: "+pName); }; throw new SAXException("[AlignmentParser] unknown element name: "+pName); };
} else { } else {
throw new SAXException("[AlignmentParser] Unknown namespace : "+namespaceURI); if ( parselevel == 2 ){
alignment.setExtension( pName, content );
} else throw new SAXException("[AlignmentParser] Unknown namespace : "+namespaceURI);
} }
parselevel--;
} //end endElement } //end endElement
/** Can be used for loading the ontology if it is not available **/ /** Can be used for loading the ontology if it is not available **/
......
...@@ -134,6 +134,14 @@ public interface Alignment ...@@ -134,6 +134,14 @@ public interface Alignment
public Set getAlignCells1( Object ob ) throws AlignmentException; public Set getAlignCells1( Object ob ) throws AlignmentException;
public Set getAlignCells2( Object ob ) throws AlignmentException; public Set getAlignCells2( Object ob ) throws AlignmentException;
/**
* Extensions are a way to read and add other information (metadata)
* to the alignment structure itself.
*/
public Parameters getExtensions();
public String getExtension( String label );
public void setExtension( String label, String value );
public Enumeration getElements(); public Enumeration getElements();
public int nbCells(); public int nbCells();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment