diff --git a/src/fr/inrialpes/exmo/align/impl/BasicAlignment.java b/src/fr/inrialpes/exmo/align/impl/BasicAlignment.java index 9dfd99baa5ad72dfffece6f735cd48dd2a40d778..b967353793bf5181f8172f248ed4db22a413e9ec 100644 --- a/src/fr/inrialpes/exmo/align/impl/BasicAlignment.java +++ b/src/fr/inrialpes/exmo/align/impl/BasicAlignment.java @@ -60,6 +60,11 @@ public class BasicAlignment implements Alignment { visitor.visit(this); } + //public static String METHOD = "http://knowledgeweb.semanticweb.org/heterogeneity/alignment:method"; + public static String METHOD = "method"; + //public static String TIME = "http://knowledgeweb.semanticweb.org/heterogeneity/alignment:time"; + public static String TIME = "time"; + protected Object onto1 = null; protected Object onto2 = null; @@ -81,6 +86,8 @@ public class BasicAlignment implements Alignment { protected Parameters extensions = null; + protected Parameters namespaces = null; + /** * This is the URI of the place from which the ontology has been loaded! * This is NOT the Ontology URI which can be obtained by @@ -94,7 +101,8 @@ public class BasicAlignment implements Alignment { hash1 = new Hashtable(); hash2 = new Hashtable(); extensions = new BasicParameters(); - setExtension( "method", getClass().getName() ); + namespaces = new BasicParameters(); + setExtension( METHOD, getClass().getName() ); } public void init( Object onto1, Object onto2, Object cache ) throws AlignmentException { @@ -179,6 +187,16 @@ public class BasicAlignment implements Alignment { return (String)extensions.getParameter( label ); }; + public Parameters getXNamespaces(){ return namespaces; } + + public void setXNamespace( String label, String uri ) { + namespaces.setParameter( label, uri ); + }; + + public String getXNamespace( String label ) { + return (String)namespaces.getParameter( label ); + }; + public Enumeration getElements() { return new MEnumeration( hash1 ); } @@ -525,6 +543,10 @@ public class BasicAlignment implements Alignment { result.setExtension( label, getExtension( label ) ); } result.getExtensions().unsetParameter( "id" ); + for ( Enumeration e = namespaces.getNames() ; e.hasMoreElements(); ){ + String label = (String)e.nextElement(); + result.setXNamespace( label, getXNamespace( label ) ); + } for ( Enumeration e = getElements() ; e.hasMoreElements(); ){ result.addCell(((Cell)e.nextElement()).inverse()); } @@ -567,6 +589,10 @@ public class BasicAlignment implements Alignment { align.setExtension( label, getExtension( label ) ); } align.getExtensions().unsetParameter( "id" ); + for ( Enumeration e = namespaces.getNames() ; e.hasMoreElements(); ){ + String label = (String)e.nextElement(); + align.setXNamespace( label, getXNamespace( label ) ); + } try { align.ingest( this ); } catch (AlignmentException ex) { ex.printStackTrace(); } return align; diff --git a/src/fr/inrialpes/exmo/align/impl/BasicRelation.java b/src/fr/inrialpes/exmo/align/impl/BasicRelation.java index 48d18b092a49751f520739de969641dae9efec47..b0ab77cf63a10191dba7c8185f654541f6b7da38 100644 --- a/src/fr/inrialpes/exmo/align/impl/BasicRelation.java +++ b/src/fr/inrialpes/exmo/align/impl/BasicRelation.java @@ -82,7 +82,9 @@ public class BasicRelation implements Relation Constructor relationConstructor = relationClass.getConstructor((Class[])null); relation = (Relation)relationConstructor.newInstance((Object[])null); } catch ( Exception ex ) { - ex.printStackTrace(); + //ex.printStackTrace(); + //Otherwise, just create a Basic relation + relation = (Relation)new BasicRelation( rel ); } }; return relation;