From 8afaabd580b97d0e97a7147a215f8be155221ee4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Euzenat?= <Jerome.Euzenat@inria.fr> Date: Tue, 26 Aug 2008 17:05:38 +0000 Subject: [PATCH] - added init( Parameters ) arguments to visitors - implemented "embedded" parameter allowing to avoid ?xml declaration when embedded --- .../impl/renderer/COWLMappingRendererVisitor.java | 3 +++ .../align/impl/renderer/HTMLRendererVisitor.java | 13 +++++++++++-- .../impl/renderer/OWLAxiomsRendererVisitor.java | 3 +++ .../align/impl/renderer/RDFRendererVisitor.java | 6 ++++-- .../impl/renderer/SEKTMappingRendererVisitor.java | 3 +++ .../align/impl/renderer/SKOSRendererVisitor.java | 7 +++++++ .../align/impl/renderer/SWRLRendererVisitor.java | 10 +++++++++- .../impl/renderer/XMLMetadataRendererVisitor.java | 9 ++++++++- .../align/impl/renderer/XSLTRendererVisitor.java | 10 +++++++++- src/org/semanticweb/owl/align/AlignmentVisitor.java | 6 +++--- 10 files changed, 60 insertions(+), 10 deletions(-) diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/COWLMappingRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/COWLMappingRendererVisitor.java index 0c137e00..33c53725 100644 --- a/src/fr/inrialpes/exmo/align/impl/renderer/COWLMappingRendererVisitor.java +++ b/src/fr/inrialpes/exmo/align/impl/renderer/COWLMappingRendererVisitor.java @@ -29,6 +29,7 @@ import java.lang.reflect.InvocationTargetException; import org.semanticweb.owl.align.Alignment; import org.semanticweb.owl.align.AlignmentVisitor; import org.semanticweb.owl.align.AlignmentException; +import org.semanticweb.owl.align.Parameters; import org.semanticweb.owl.align.Cell; import org.semanticweb.owl.align.Relation; @@ -56,6 +57,8 @@ public class COWLMappingRendererVisitor implements AlignmentVisitor this.writer = writer; } + public void init( Parameters p ) {} + public void visit( Alignment align ) throws AlignmentException { if ( !(align instanceof ObjectAlignment) ) throw new AlignmentException("COWLMappingRenderer: cannot render simple alignment. Turn them into ObjectAlignment, by toObjectAlignement()"); diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/HTMLRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/HTMLRendererVisitor.java index 4c8d2bf5..b2974f21 100644 --- a/src/fr/inrialpes/exmo/align/impl/renderer/HTMLRendererVisitor.java +++ b/src/fr/inrialpes/exmo/align/impl/renderer/HTMLRendererVisitor.java @@ -28,6 +28,7 @@ import java.net.URI; import org.semanticweb.owl.align.Alignment; import org.semanticweb.owl.align.AlignmentVisitor; import org.semanticweb.owl.align.AlignmentException; +import org.semanticweb.owl.align.Parameters; import org.semanticweb.owl.align.Cell; import org.semanticweb.owl.align.Relation; @@ -55,11 +56,17 @@ public class HTMLRendererVisitor implements AlignmentVisitor Alignment alignment = null; Cell cell = null; Hashtable<String,String> nslist = null; + boolean embedded = false; // if the output is XML embeded in a structure public HTMLRendererVisitor( PrintWriter writer ){ this.writer = writer; } + public void init( Parameters p ) { + if ( p.getParameter( "embedded" ) != null + && !p.getParameter( "embedded" ).equals("") ) embedded = true; + }; + public void visit( Alignment align ) throws AlignmentException { alignment = align; nslist = new Hashtable<String,String>(); @@ -81,8 +88,10 @@ public class HTMLRendererVisitor implements AlignmentVisitor else { tag += ":"+name; } //extensionString += " <"+tag+">"+((String[])ext)[2]+"</"+tag+">\n"; } - writer.print("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n"); - writer.print("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML+RDFa 1.0//EN\" \"http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd\">\n"); + if ( embedded == false ) { + writer.print("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n"); + writer.print("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML+RDFa 1.0//EN\" \"http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd\">\n"); + } writer.print("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\""); for ( Enumeration e = nslist.keys() ; e.hasMoreElements(); ) { String k = (String)e.nextElement(); diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/OWLAxiomsRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/OWLAxiomsRendererVisitor.java index 0a0308ee..edf925dd 100644 --- a/src/fr/inrialpes/exmo/align/impl/renderer/OWLAxiomsRendererVisitor.java +++ b/src/fr/inrialpes/exmo/align/impl/renderer/OWLAxiomsRendererVisitor.java @@ -29,6 +29,7 @@ import java.lang.reflect.InvocationTargetException; import org.semanticweb.owl.align.Alignment; import org.semanticweb.owl.align.AlignmentVisitor; import org.semanticweb.owl.align.AlignmentException; +import org.semanticweb.owl.align.Parameters; import org.semanticweb.owl.align.Cell; import org.semanticweb.owl.align.Relation; @@ -54,6 +55,8 @@ public class OWLAxiomsRendererVisitor implements AlignmentVisitor { this.writer = writer; } + public void init( Parameters p ) {}; + public void visit( Alignment align ) throws AlignmentException { if ( !( align instanceof ObjectAlignment )) { throw new AlignmentException("OWLAxiomsRenderer: cannot render simple alignment. Turn them into ObjectAlignment, by toObjectAlignement()"); diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/RDFRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/RDFRendererVisitor.java index aa563304..7e9087f0 100644 --- a/src/fr/inrialpes/exmo/align/impl/renderer/RDFRendererVisitor.java +++ b/src/fr/inrialpes/exmo/align/impl/renderer/RDFRendererVisitor.java @@ -28,6 +28,7 @@ import java.net.URI; import org.semanticweb.owl.align.Alignment; import org.semanticweb.owl.align.AlignmentVisitor; import org.semanticweb.owl.align.AlignmentException; +import org.semanticweb.owl.align.Parameters; import org.semanticweb.owl.align.Cell; import org.semanticweb.owl.align.Relation; @@ -63,8 +64,9 @@ public class RDFRendererVisitor implements AlignmentVisitor this.writer = writer; } - public void setEmbeded( boolean b ) { - embedded = b; + public void init( Parameters p ) { + if ( p.getParameter( "embedded" ) != null + && !p.getParameter( "embedded" ).equals("") ) embedded = true; } public void visit( Alignment align ) throws AlignmentException { diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/SEKTMappingRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/SEKTMappingRendererVisitor.java index 4badb16d..8b5f6435 100644 --- a/src/fr/inrialpes/exmo/align/impl/renderer/SEKTMappingRendererVisitor.java +++ b/src/fr/inrialpes/exmo/align/impl/renderer/SEKTMappingRendererVisitor.java @@ -30,6 +30,7 @@ import java.lang.reflect.InvocationTargetException; import org.semanticweb.owl.align.Alignment; import org.semanticweb.owl.align.AlignmentVisitor; import org.semanticweb.owl.align.AlignmentException; +import org.semanticweb.owl.align.Parameters; import org.semanticweb.owl.align.Cell; import org.semanticweb.owl.align.Relation; @@ -58,6 +59,8 @@ public class SEKTMappingRendererVisitor implements AlignmentVisitor { generator = new Random(); } + public void init( Parameters p ) {}; + public void visit( Alignment align ) throws AlignmentException { if ( !(align instanceof ObjectAlignment) ) throw new AlignmentException("SEKTMappingRenderer: cannot render simple alignment. Turn them into ObjectAlignment, by toObjectAlignement()"); diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/SKOSRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/SKOSRendererVisitor.java index 0079d490..3da56553 100644 --- a/src/fr/inrialpes/exmo/align/impl/renderer/SKOSRendererVisitor.java +++ b/src/fr/inrialpes/exmo/align/impl/renderer/SKOSRendererVisitor.java @@ -29,6 +29,7 @@ import java.lang.reflect.InvocationTargetException; import org.semanticweb.owl.align.Alignment; import org.semanticweb.owl.align.AlignmentVisitor; import org.semanticweb.owl.align.AlignmentException; +import org.semanticweb.owl.align.Parameters; import org.semanticweb.owl.align.Cell; import org.semanticweb.owl.align.Relation; @@ -49,11 +50,17 @@ public class SKOSRendererVisitor implements AlignmentVisitor { LoadedOntology onto1 = null; LoadedOntology onto2 = null; Cell cell = null; + boolean embedded = false; // if the output is XML embeded in a structure public SKOSRendererVisitor( PrintWriter writer ){ this.writer = writer; } + public void init( Parameters p ) { + if ( p.getParameter( "embedded" ) != null + && !p.getParameter( "embedded" ).equals("") ) embedded = true; + }; + // This must be considered public void visit( Alignment align ) throws AlignmentException { if ( align instanceof ObjectAlignment ) { diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/SWRLRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/SWRLRendererVisitor.java index fe848b6b..fe62720f 100644 --- a/src/fr/inrialpes/exmo/align/impl/renderer/SWRLRendererVisitor.java +++ b/src/fr/inrialpes/exmo/align/impl/renderer/SWRLRendererVisitor.java @@ -30,6 +30,7 @@ import java.lang.reflect.InvocationTargetException; import org.semanticweb.owl.align.Alignment; import org.semanticweb.owl.align.AlignmentVisitor; import org.semanticweb.owl.align.AlignmentException; +import org.semanticweb.owl.align.Parameters; import org.semanticweb.owl.align.Cell; import org.semanticweb.owl.align.Relation; @@ -51,18 +52,25 @@ public class SWRLRendererVisitor implements AlignmentVisitor { LoadedOntology onto1 = null; LoadedOntology onto2 = null; Cell cell = null; + boolean embedded = false; // if the output is XML embeded in a structure public SWRLRendererVisitor( PrintWriter writer ){ this.writer = writer; } + public void init( Parameters p ) { + if ( p.getParameter( "embedded" ) != null + && !p.getParameter( "embedded" ).equals("") ) embedded = true; + }; + public void visit( Alignment align ) throws AlignmentException { if ( !( align instanceof ObjectAlignment) ) throw new AlignmentException("SWRLRenderer: cannot render simple alignment. Turn them into ObjectAlignment, by toObjectAlignement()"); alignment = align; onto1 = (LoadedOntology)((ObjectAlignment)alignment).getOntologyObject1(); onto2 = (LoadedOntology)((ObjectAlignment)alignment).getOntologyObject2(); - writer.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); + if ( embedded == false ) + writer.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); writer.println("<swrlx:Ontology swrlx:name=\"generatedAl\""); writer.println(" xmlns:swrlx=\"http://www.w3.org/2003/11/swrlx#\""); writer.println(" xmlns:owlx=\"http://www.w3.org/2003/05/owl-xml\""); diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/XMLMetadataRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/XMLMetadataRendererVisitor.java index 83cf451b..88e8e85e 100644 --- a/src/fr/inrialpes/exmo/align/impl/renderer/XMLMetadataRendererVisitor.java +++ b/src/fr/inrialpes/exmo/align/impl/renderer/XMLMetadataRendererVisitor.java @@ -41,13 +41,20 @@ public class XMLMetadataRendererVisitor implements AlignmentVisitor { PrintWriter writer = null; + boolean embedded = false; // if the output is XML embeded in a structure public XMLMetadataRendererVisitor( PrintWriter writer ){ this.writer = writer; } + public void init( Parameters p ) { + if ( p.getParameter( "embedded" ) != null + && !p.getParameter( "embedded" ).equals("") ) embedded = true; + }; + public void visit( Alignment align ) throws AlignmentException { - writer.print("<?xml version='1.0' encoding='utf-8' standalone='yes'?>\n"); + if ( embedded == false ) + writer.print("<?xml version='1.0' encoding='utf-8' standalone='yes'?>\n"); writer.println("<Alignment>"); writer.print(" <level>"); writer.print( align.getLevel() ); diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/XSLTRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/XSLTRendererVisitor.java index 49c00b26..a8c65978 100644 --- a/src/fr/inrialpes/exmo/align/impl/renderer/XSLTRendererVisitor.java +++ b/src/fr/inrialpes/exmo/align/impl/renderer/XSLTRendererVisitor.java @@ -30,6 +30,7 @@ import java.net.URI; import org.semanticweb.owl.align.Alignment; import org.semanticweb.owl.align.AlignmentVisitor; import org.semanticweb.owl.align.AlignmentException; +import org.semanticweb.owl.align.Parameters; import org.semanticweb.owl.align.Cell; import org.semanticweb.owl.align.Relation; @@ -53,6 +54,7 @@ public class XSLTRendererVisitor implements AlignmentVisitor { LoadedOntology onto2 = null; Hashtable<String,String> namespaces = null; int nsrank = 0; + boolean embedded = false; // if the output is XML embeded in a structure public XSLTRendererVisitor( PrintWriter writer ){ this.writer = writer; @@ -63,6 +65,11 @@ public class XSLTRendererVisitor implements AlignmentVisitor { namespaces.put( "http://www.w3.org/2000/01/rdf-schema#", "rdfs" ); } + public void init( Parameters p ) { + if ( p.getParameter( "embedded" ) != null + && !p.getParameter( "embedded" ).equals("") ) embedded = true; + }; + public void visit( Alignment align ) throws AlignmentException { if ( align instanceof ObjectAlignment ) { onto1 = (LoadedOntology)((ObjectAlignment)alignment).getOntologyObject1(); @@ -72,7 +79,8 @@ public class XSLTRendererVisitor implements AlignmentVisitor { collectURIs( (Cell)e.nextElement() ); } alignment = align; - writer.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); + if ( embedded == false ) + writer.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); writer.println("<xsl:stylesheet version=\"1.0\""); for ( Enumeration e = namespaces.keys(); e.hasMoreElements(); ){ Object ns = e.nextElement(); diff --git a/src/org/semanticweb/owl/align/AlignmentVisitor.java b/src/org/semanticweb/owl/align/AlignmentVisitor.java index 8f8d123b..1cae81e8 100644 --- a/src/org/semanticweb/owl/align/AlignmentVisitor.java +++ b/src/org/semanticweb/owl/align/AlignmentVisitor.java @@ -1,7 +1,7 @@ /* * $Id$ * - * Copyright (C) INRIA Rhône-Alpes, 2004 + * Copyright (C) INRIA Rhône-Alpes, 2004, 2008 * * 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 @@ -27,8 +27,8 @@ package org.semanticweb.owl.align; * @version $Id$ */ -public interface AlignmentVisitor -{ +public interface AlignmentVisitor { + public void init( Parameters p ); public void visit( Alignment a ) throws AlignmentException; public void visit( Cell c ) throws AlignmentException; public void visit( Relation r ) throws AlignmentException; -- GitLab