diff --git a/html/relnotes.html b/html/relnotes.html index 9e69bff18c1e22ceda9dbc7e660aa060228c7cb8..7c79777b3036666f9019a960be5179c9c1e0d7e5 100644 --- a/html/relnotes.html +++ b/html/relnotes.html @@ -39,6 +39,9 @@ The development of 4 versions continues. <p><ul compact="1"> <li>Provide several URIs for the same alignment (serv)</li> <li>Implement database store for EDOAL (serv)</li> +<li>Implementation of a provenance metadata tag (serv/impl)</li> +<li>Complete tutorial4 (doc).</li> +<li>Implement metadata edition (serv)</li> <li>Add simple "harder" test generator (gen)</li> <li>Add simple "hidden" test generator (gen)</li> <li>Add a <tt>dependsOn</tt> alignment property (api)</li> @@ -46,18 +49,14 @@ The development of 4 versions continues. <li>Use the OWLReasoner interface and HermiT for adding inference to Ontowrap (ontowrap)</li> <li>Integrate tests from generator (test)</li> <li>Integrate some basic reasoning (impl).</li> -<li>Complete tutorial4 with distributed reasoning.</li> <li>Genericize evaluators in <tt>GraphEvaluator</tt> and <tt>GenPlot</tt> (eval)</li> -<li>Implementation of a provenance metadata tag (serv/impl)</li> <li>Replace <tt>DistanceAlignment</tt> and <tt>Similarity</tt> with a version more in line with <a href="http://ontosim.gforge.inria.fr">OntoSim</a> (impl)</tt> <!--li>Implemented transformations in EDOAL (edoal)</li--> <li>Improve HTML interface layout and usability (serv)</li> -<li>Implement metadata edition (serv)</li> <li>Implement correspondence selection (serv)</li> <li>Automatically switch to correct <tt>ontowrap</tt> implementation in parsers (parser)</li> <li>Render alignments as module descriptions (impl)</li> <li>Implement extensive evaluation framework (impl)</li> -<li>Implement debug options with log4j</li> <li>Matcher plugin for OpenII? (util)</li> <li>Add more tests</li> </ul></p> diff --git a/src/fr/inrialpes/exmo/align/service/AServProtocolManager.java b/src/fr/inrialpes/exmo/align/service/AServProtocolManager.java index ca642fa89922e58839deb8eff78e88b91dcd035a..303e040573b34ce1223316cce5ca83771c0a73ba 100644 --- a/src/fr/inrialpes/exmo/align/service/AServProtocolManager.java +++ b/src/fr/inrialpes/exmo/align/service/AServProtocolManager.java @@ -1,5 +1,5 @@ /* - * $Id$ + * $id: AServProtocolManager.java 1902 2014-03-17 19:39:04Z euzenat $ * * Copyright (C) INRIA, 2006-2014 * @@ -233,9 +233,8 @@ public class AServProtocolManager implements Service { // DONE // Implements: store (different from store below) - public Message load( Message mess ) { + public Message load( Properties params ) { boolean todiscard = false; - Properties params = mess.getParameters(); // load the alignment String name = params.getProperty("url"); String file = null; @@ -251,7 +250,7 @@ public class AServProtocolManager implements Service { al = aparser.parse( name ); //logger.trace(" Alignment parsed"); } catch (Exception e) { - return new UnreachableAlignment(newId(),mess,serverId,mess.getSender(),name,(Properties)null); + return new UnreachableAlignment( params, newId(), serverId,name ); } // We preserve the pretty tag within the loaded ontology String pretty = al.getExtension( Namespace.ALIGNMENT.uri, Annotations.PRETTY ); @@ -265,43 +264,42 @@ public class AServProtocolManager implements Service { if ( al != null && al != null ) { // try unlink } - return new AlignmentId(newId(),mess,serverId,mess.getSender(),id,(Properties)null,pretty); + return new AlignmentId( params, newId(), serverId, id ,pretty ); } // Implements: align @SuppressWarnings( "unchecked" ) - public Message align( Message mess ){ + public Message align( Properties params ){ Message result = null; - Properties p = mess.getParameters(); // These are added to the parameters wich are in the message //for ( String key : commandLineParams ) { // Unfortunately non iterable for ( Enumeration<String> e = (Enumeration<String>)commandLineParams.propertyNames(); e.hasMoreElements();) { //[W:unchecked] String key = e.nextElement(); - if ( p.getProperty( key ) == null ){ - p.setProperty( key , commandLineParams.getProperty( key ) ); + if ( params.getProperty( key ) == null ){ + params.setProperty( key , commandLineParams.getProperty( key ) ); } } // Do the fast part (retrieve) - result = retrieveAlignment( mess ); + result = retrieveAlignment( params ); if ( result != null ) return result; // [JE2013:ID] String uri = alignmentCache.generateAlignmentUri(); // [JE2013:ID] - Aligner althread = new Aligner( mess, uri ); + Aligner althread = new Aligner( params, uri ); Thread th = new Thread(althread); // Do the slow part (align) - if ( mess.getParameters().getProperty("async") != null ) { + if ( params.getProperty("async") != null ) { th.start(); // Parameters are used // [JE2013:ID] - return new AlignmentId(newId(),mess,serverId,mess.getSender(),uri,mess.getParameters()); + return new AlignmentId( params, newId(), serverId, uri ); } else { th.start(); try{ th.join(); } catch ( InterruptedException is ) { - return new ErrorMsg(newId(),mess,serverId,mess.getSender(),"Interrupted exception",(Properties)null); + return new ErrorMsg( params, newId(), serverId,"Interrupted exception" ); }; return althread.getResult(); } @@ -311,25 +309,24 @@ public class AServProtocolManager implements Service { * returns null if alignment not retrieved * Otherwise returns AlignmentId or an ErrorMsg */ - private Message retrieveAlignment( Message mess ){ - Properties params = mess.getParameters(); + private Message retrieveAlignment( Properties params ){ String method = params.getProperty("method"); // find and access o, o' URI uri1 = null; URI uri2 = null; try { - uri1 = new URI(params.getProperty("onto1")); - uri2 = new URI(params.getProperty("onto2")); + uri1 = new URI( params.getProperty("onto1")); + uri2 = new URI( params.getProperty("onto2")); } catch (Exception e) { - return new NonConformParameters(newId(),mess,serverId,mess.getSender(),"nonconform/params/onto",(Properties)null); + return new NonConformParameters( params, newId(), serverId,"nonconform/params/onto" ); }; Set<Alignment> alignments = alignmentCache.getAlignments( uri1, uri2 ); if ( alignments != null && params.getProperty("force") == null ) { for ( Alignment al: alignments ){ String meth2 = al.getExtension( Namespace.ALIGNMENT.uri, Annotations.METHOD ); if ( meth2 != null && meth2.equals(method) ) { - return new AlignmentId(newId(),mess,serverId,mess.getSender(), - al.getExtension( Namespace.ALIGNMENT.uri, Annotations.ID ),(Properties)null, + return new AlignmentId( params, newId(), serverId, + al.getExtension( Namespace.ALIGNMENT.uri, Annotations.ID ) , al.getExtension( Namespace.ALIGNMENT.uri, Annotations.PRETTY ) ); } } @@ -339,8 +336,7 @@ public class AServProtocolManager implements Service { // DONE // Implements: query-aligned - public Message existingAlignments( Message mess ){ - Properties params = mess.getParameters(); + public Message existingAlignments( Properties params ){ // find and access o, o' String onto1 = params.getProperty("onto1"); String onto2 = params.getProperty("onto2"); @@ -356,7 +352,7 @@ public class AServProtocolManager implements Service { } alignments = alignmentCache.getAlignments( uri1, uri2 ); } catch (Exception e) { - return new ErrorMsg(newId(),mess,serverId,mess.getSender(),"MalformedURI problem",(Properties)null); + return new ErrorMsg( params, newId(), serverId,"MalformedURI problem" ); }; //done below String msg = ""; String prettys = ""; @@ -364,25 +360,24 @@ public class AServProtocolManager implements Service { msg += al.getExtension( Namespace.ALIGNMENT.uri, Annotations.ID )+" "; prettys += al.getExtension( Namespace.ALIGNMENT.uri, Annotations.PRETTY )+ ":"; } - return new AlignmentIds(newId(),mess,serverId,mess.getSender(),msg,(Properties)null,prettys); + return new AlignmentIds( params, newId(), serverId, msg, prettys ); } - public Message findCorrespondences( Message mess ) { - Properties params = mess.getParameters(); + public Message findCorrespondences( Properties params ) { // Retrieve the alignment Alignment al = null; String id = params.getProperty("id"); try { al = alignmentCache.getAlignment( id ); } catch (Exception e) { - return new UnknownAlignment(newId(),mess,serverId,mess.getSender(),id,(Properties)null); + return new UnknownAlignment( params, newId(), serverId,id ); } // Find matched URI uri = null; try { uri = new URI( params.getProperty("entity") ); } catch (Exception e) { - return new ErrorMsg(newId(),mess,serverId,mess.getSender(),"MalformedURI problem",(Properties)null); + return new ErrorMsg( params, newId(), serverId,"MalformedURI problem" ); }; // Retrieve correspondences String msg = params.getProperty("strict"); @@ -398,26 +393,25 @@ public class AServProtocolManager implements Service { } } } catch ( AlignmentException alex ) { // should never happen - return new ErrorMsg(newId(),mess,serverId,mess.getSender(),"Unexpected Alignment API Error",(Properties)null); + return new ErrorMsg( params, newId(), serverId,"Unexpected Alignment API Error" ); } - return new EntityList( newId(), mess, serverId, mess.getSender(), msg, (Properties)null ); + return new EntityList( params, newId(), serverId, msg ); } // ABSOLUTELY NOT IMPLEMENTED // But look at existingAlignments // Implements: find // This may be useful when calling WATSON - public Message find(Message mess){ + public Message find(Properties params){ //\prul{search-success}{a --request ( find (O, T) )--> S}{O' <= Match(O,T); S --inform (O')--> a}{reachable(O) & Match(O,T)!=null} //\prul{search-void}{a - request ( find (O, T) ) \rightarrow S}{S - failure (nomatch) \rightarrow a}{reachable(O)\wedge Match(O,T)=\emptyset} //\prul{search-unreachable}{a - request ( find (O, T) ) \rightarrow S}{S - failure ( unreachable (O) ) \rightarrow a}{\neg reachable(O)} - return new OntologyURI(newId(),mess,serverId,mess.getSender(),"Find not implemented",(Properties)null); + return new OntologyURI( params, newId(), serverId,"Find not implemented" ); } // Implements: translate // This should be applied to many more kind of messages with different kind of translation - public Message translate(Message mess){ - Properties params = mess.getParameters(); + public Message translate(Properties params){ // Retrieve the alignment String id = params.getProperty("id"); BasicAlignment al = null; @@ -425,21 +419,20 @@ public class AServProtocolManager implements Service { // JE:This one is risky al = (BasicAlignment)alignmentCache.getAlignment( id ); } catch (Exception e) { - return new UnknownAlignment(newId(),mess,serverId,mess.getSender(),id,(Properties)null); + return new UnknownAlignment( params, newId(), serverId,id ); } // Translate the query try { String translation = al.rewriteSPARQLQuery( params.getProperty("query") ); - return new TranslatedMessage(newId(),mess,serverId,mess.getSender(),translation,(Properties)null); + return new TranslatedMessage( params, newId(), serverId,translation ); } catch (AlignmentException e) { - return new ErrorMsg(newId(),mess,serverId,mess.getSender(),e.toString(),(Properties)null); + return new ErrorMsg( params, newId(), serverId,e.toString() ); } } // DONE // Implements: render - public Message render( Message mess ){ - Properties params = mess.getParameters(); + public Message render( Properties params ){ // Retrieve the alignment String id = params.getProperty( "id" ); Alignment al = null; @@ -448,7 +441,7 @@ public class AServProtocolManager implements Service { al = alignmentCache.getAlignment( id ); logger.trace("Alignment found"); } catch (Exception e) { - return new UnknownAlignment(newId(),mess,serverId,mess.getSender(),id,(Properties)null); + return new UnknownAlignment( params, newId(), serverId,id ); } // Render it String method = params.getProperty("method"); @@ -468,22 +461,22 @@ public class AServProtocolManager implements Service { } catch ( ClassNotFoundException cnfex ) { // should return the message logger.error( "Unknown method", cnfex ); - return new UnknownMethod(newId(),mess,serverId,mess.getSender(),method,(Properties)null); + return new UnknownMethod( params, newId(), serverId,method ); } renderer.init( params ); al.render( renderer ); } catch ( AlignmentException e ) { - return new CannotRenderAlignment(newId(),mess,serverId,mess.getSender(),id,(Properties)null); + return new CannotRenderAlignment( params, newId(), serverId,id ); } catch ( Exception e ) { // These are exceptions related to I/O writer.flush(); //logger.trace( "Resulting rendering : {}", result.toString() ); logger.error( "Cannot render alignment", e ); - return new Message(newId(),mess,serverId,mess.getSender(),"Failed to render alignment",(Properties)null); + return new Message( params, newId(), serverId,"Failed to render alignment" ); } finally { writer.flush(); writer.close(); } - return new RenderedAlignment(newId(),mess,serverId,mess.getSender(),result.toString(),params); + return new RenderedAlignment( params, newId(), serverId, result.toString() ); } @@ -492,8 +485,8 @@ public class AServProtocolManager implements Service { *********************************************************************/ // Implementation specific - public Message store( Message mess ) { - String id = mess.getContent(); + public Message store( Properties params ) { + String id = params.getProperty("id"); Alignment al = null; try { @@ -520,16 +513,16 @@ public class AServProtocolManager implements Service { } // register by them // Could also be an AlreadyStoredAlignment error - return new AlignmentId(newId(),mess,serverId,mess.getSender(),id,(Properties)null, + return new AlignmentId( params, newId(), serverId, id, al.getExtension( Namespace.ALIGNMENT.uri, Annotations.PRETTY )); } catch (Exception e) { - return new UnknownAlignment(newId(),mess,serverId,mess.getSender(),id,(Properties)null); + return new UnknownAlignment( params, newId(), serverId,id ); } } // Implementation specific - public Message erase( Message mess ) { - String id = mess.getContent(); + public Message erase( Properties params ) { + String id = params.getProperty("id"); Alignment al = null; try { al = alignmentCache.getAlignment( id ); @@ -547,10 +540,10 @@ public class AServProtocolManager implements Service { logger.debug( "IGNORED Cannot erase alignment", ex ); } // Should be a SuppressedAlignment - return new AlignmentId(newId(),mess,serverId,mess.getSender(),id,(Properties)null, + return new AlignmentId( params, newId(), serverId, id , al.getExtension( Namespace.ALIGNMENT.uri, Annotations.PRETTY )); } catch ( Exception ex ) { - return new UnknownAlignment(newId(),mess,serverId,mess.getSender(),id,(Properties)null); + return new UnknownAlignment( params, newId(), serverId,id ); } } @@ -558,26 +551,26 @@ public class AServProtocolManager implements Service { * Returns only the metadata of an alignment and returns it in * parameters */ - public Message metadata( Message mess ){ + public Message metadata( Properties params ){ // Retrieve the alignment - String id = mess.getParameters().getProperty("id"); + String id = params.getProperty("id"); Alignment al = null; try { al = alignmentCache.getMetadata( id ); } catch (Exception e) { - return new UnknownAlignment(newId(),mess,serverId,mess.getSender(),id,(Properties)null); + return new UnknownAlignment( params, newId(), serverId,id ); } // JE: Other possibility is to render the metadata through XMLMetadataRendererVisitor into content... // Put all the local metadata in parameters - Properties params = new Properties(); - params.setProperty( "file1", al.getFile1().toString() ); - params.setProperty( "file2", al.getFile2().toString() ); - params.setProperty( Namespace.ALIGNMENT.uri+"#level", al.getLevel() ); - params.setProperty( Namespace.ALIGNMENT.uri+"#type", al.getType() ); + Properties p = new Properties(); + p.setProperty( "file1", al.getFile1().toString() ); + p.setProperty( "file2", al.getFile2().toString() ); + p.setProperty( Namespace.ALIGNMENT.uri+"#level", al.getLevel() ); + p.setProperty( Namespace.ALIGNMENT.uri+"#type", al.getType() ); for ( String[] ext : al.getExtensions() ){ - params.setProperty( ext[0]+ext[1], ext[2] ); + p.setProperty( ext[0]+ext[1], ext[2] ); } - return new AlignmentMetadata(newId(),mess,serverId,mess.getSender(),id,params); + return new AlignmentMetadata( params, newId(), serverId, id, p ); } /********************************************************************* @@ -587,86 +580,84 @@ public class AServProtocolManager implements Service { * There is no way an alignment server could modify an alignment *********************************************************************/ - public Message trim( Message mess ) { + public Message trim( Properties params ) { // Retrieve the alignment - String id = mess.getParameters().getProperty("id"); + String id = params.getProperty("id"); Alignment al = null; try { al = alignmentCache.getAlignment( id ); } catch (Exception e) { - return new UnknownAlignment(newId(),mess,serverId,mess.getSender(),id,(Properties)null); + return new UnknownAlignment( params, newId(), serverId,id ); } // get the trim parameters - String type = mess.getParameters().getProperty("type"); + String type = params.getProperty("type"); if ( type == null ) type = "hard"; - double threshold = Double.parseDouble(mess.getParameters().getProperty("threshold")); + double threshold = Double.parseDouble( params.getProperty("threshold")); al = (BasicAlignment)((BasicAlignment)al).clone(); try { al.cut( type, threshold );} catch (AlignmentException e) { - return new ErrorMsg(newId(),mess,serverId,mess.getSender(),e.toString(),(Properties)null); + return new ErrorMsg( params, newId(), serverId,e.toString() ); } String pretty = al.getExtension( Namespace.ALIGNMENT.uri, Annotations.PRETTY ); if ( pretty != null ){ al.setExtension( Namespace.ALIGNMENT.uri, Annotations.PRETTY, pretty+"/trimmed "+threshold ); }; String newId = alignmentCache.recordNewAlignment( al, true ); - return new AlignmentId(newId(),mess,serverId,mess.getSender(),newId,(Properties)null, + return new AlignmentId( params, newId(), serverId, newId, al.getExtension( Namespace.ALIGNMENT.uri, Annotations.PRETTY )); } - public Message harden( Message mess ){ - return new AlignmentId(newId(),mess,serverId,mess.getSender(),"Harden not implemented",(Properties)null); + public Message harden( Properties params ){ + return new NonConformParameters( params, newId(), serverId, "Harden not implemented" ); } - public Message inverse( Message mess ){ - Properties params = mess.getParameters(); + public Message inverse( Properties params ){ // Retrieve the alignment String id = params.getProperty("id"); Alignment al = null; try { al = alignmentCache.getAlignment( id ); } catch (Exception e) { - return new UnknownAlignment(newId(),mess,serverId,mess.getSender(),"unknown/Alignment/"+id,(Properties)null); + return new UnknownAlignment( params, newId(), serverId,"unknown/Alignment/"+id ); } // Invert it try { al = al.inverse(); } catch (AlignmentException e) { - return new ErrorMsg(newId(),mess,serverId,mess.getSender(),e.toString(),(Properties)null); + return new ErrorMsg( params, newId(), serverId,e.toString() ); } String pretty = al.getExtension( Namespace.ALIGNMENT.uri, Annotations.PRETTY ); if ( pretty != null ){ al.setExtension( Namespace.ALIGNMENT.uri, Annotations.PRETTY, pretty+"/inverted" ); }; String newId = alignmentCache.recordNewAlignment( al, true ); - return new AlignmentId(newId(),mess,serverId,mess.getSender(),newId,(Properties)null, + return new AlignmentId( params, newId(), serverId, newId, al.getExtension( Namespace.ALIGNMENT.uri, Annotations.PRETTY )); } - public Message meet( Message mess ){ + public Message meet( Properties params ){ // Retrieve alignments - return new AlignmentId(newId(),mess,serverId,mess.getSender(),"Meet not available",(Properties)null); + return new NonConformParameters( params, newId(), serverId, "Meet not available" ); } - public Message join( Message mess ){ + public Message join( Properties params ){ // Retrieve alignments - return new AlignmentId(newId(),mess,serverId,mess.getSender(),"Join not available",(Properties)null); + return new NonConformParameters( params, newId(), serverId, "Join not available" ); } - public Message compose( Message mess ){ + public Message compose( Properties params ){ // Retrieve alignments - return new AlignmentId(newId(),mess,serverId,mess.getSender(),"Compose not available",(Properties)null); + return new NonConformParameters( params, newId(), serverId, "Compose not available" ); } - public Message eval( Message mess ){ - Properties params = mess.getParameters(); + public Message eval( Properties params ){ // Retrieve the alignment String id = params.getProperty("id"); Alignment al = null; try { al = alignmentCache.getAlignment( id ); } catch (Exception e) { - return new UnknownAlignment(newId(),mess,serverId,mess.getSender(),"unknown/Alignment/"+id,(Properties)null); + return new UnknownAlignment( params, newId(), serverId,"unknown/Alignment/"+id ); } // Retrieve the reference alignment String rid = params.getProperty("ref"); @@ -674,7 +665,7 @@ public class AServProtocolManager implements Service { try { ref = alignmentCache.getAlignment( rid ); } catch (Exception e) { - return new UnknownAlignment(newId(),mess,serverId,mess.getSender(),"unknown/Alignment/"+rid,(Properties)null); + return new UnknownAlignment( params, newId(), serverId,"unknown/Alignment/"+rid ); } // Set the comparison method String classname = params.getProperty("method"); @@ -688,32 +679,31 @@ public class AServProtocolManager implements Service { eval = (Evaluator)evaluatorConstructor.newInstance( mparams ); } catch ( ClassNotFoundException cnfex ) { logger.error( "Unknown method", cnfex ); - return new UnknownMethod(newId(),mess,serverId,mess.getSender(),classname,(Properties)null); + return new UnknownMethod( params, newId(), serverId,classname ); } catch ( InvocationTargetException itex ) { String msg = itex.toString(); if ( itex.getCause() != null ) msg = itex.getCause().toString(); - return new ErrorMsg(newId(),mess,serverId,mess.getSender(),msg,(Properties)null); + return new ErrorMsg( params, newId(), serverId,msg ); } catch ( Exception ex ) { - return new ErrorMsg(newId(),mess,serverId,mess.getSender(),ex.toString(),(Properties)null); + return new ErrorMsg( params, newId(), serverId,ex.toString() ); } // Compare it - try { eval.eval(params); } + try { eval.eval( params); } catch ( AlignmentException e ) { - return new ErrorMsg(newId(),mess,serverId,mess.getSender(),e.toString(),(Properties)null); + return new ErrorMsg( params, newId(), serverId,e.toString() ); } // Could also be EvaluationId if we develop a more elaborate evaluation description - return new EvalResult(newId(),mess,serverId,mess.getSender(),classname,eval.getResults()); + return new EvalResult( params, newId(), serverId, classname, eval.getResults() ); } - public Message diff( Message mess ){ - Properties params = mess.getParameters(); + public Message diff( Properties params ){ // Retrieve the alignment String id1 = params.getProperty("id1"); Alignment al1 = null; try { al1 = alignmentCache.getAlignment( id1 ); } catch (Exception e) { - return new UnknownAlignment(newId(),mess,serverId,mess.getSender(),"unknown/Alignment/"+id1,(Properties)null); + return new UnknownAlignment( params, newId(), serverId,"unknown/Alignment/"+id1 ); } // Retrieve the reference alignment String id2 = params.getProperty("id2"); @@ -721,23 +711,23 @@ public class AServProtocolManager implements Service { try { al2 = alignmentCache.getAlignment( id2 ); } catch (Exception e) { - return new UnknownAlignment(newId(),mess,serverId,mess.getSender(),"unknown/Alignment/"+id2,(Properties)null); + return new UnknownAlignment( params, newId(), serverId,"unknown/Alignment/"+id2 ); } try { DiffEvaluator diff = new DiffEvaluator( al1, al2 ); diff.eval( params ); // This will only work with HTML - return new EvalResult(newId(),mess,serverId,mess.getSender(),diff.HTMLString(),(Properties)null); + return new EvalResult( params, newId(), serverId, diff.HTMLString(), (Properties)null ); } catch (AlignmentException e) { - return new ErrorMsg(newId(),mess,serverId,mess.getSender(),e.toString(),(Properties)null); + return new ErrorMsg( params, newId(), serverId,e.toString() ); } } /** * Store evaluation result from its URI */ - public Message storeEval( Message mess ){ - return new ErrorMsg(newId(),mess,serverId,mess.getSender(),"Not yet implemented",(Properties)null); + public Message storeEval( Properties params ){ + return new ErrorMsg( params, newId(), serverId,"Not yet implemented" ); } /** @@ -749,27 +739,27 @@ public class AServProtocolManager implements Service { // ~~> PRGraph (but this may be a Evaluator) // ~~> Triangle // ~~> Cross - public Message groupEval( Message mess ){ - return new ErrorMsg(newId(),mess,serverId,mess.getSender(),"Not yet implemented",(Properties)null); + public Message groupEval( Properties params ){ + return new ErrorMsg( params, newId(), serverId,"Not yet implemented" ); } /** * Store the result */ - public Message storeGroupEval( Message mess ){ - return new ErrorMsg(newId(),mess,serverId,mess.getSender(),"Not yet implemented",(Properties)null); + public Message storeGroupEval( Properties params ){ + return new ErrorMsg( params, newId(), serverId,"Not yet implemented" ); } /** * Retrieve the results (all registered result) of a particular test */ - public Message getResults( Message mess ){ - return new ErrorMsg(newId(),mess,serverId,mess.getSender(),"Not yet implemented",(Properties)null); + public Message getResults( Properties params ){ + return new ErrorMsg( params, newId(), serverId,"Not yet implemented" ); } - public boolean storedAlignment( Message mess ) { + public boolean storedAlignment( Properties params ) { // Retrieve the alignment - String id = mess.getParameters().getProperty("id"); + String id = params.getProperty("id"); Alignment al = null; try { al = alignmentCache.getAlignment( id ); @@ -808,16 +798,16 @@ public class AServProtocolManager implements Service { */ // Implements: reply-with - public Message replywith(Message mess){ + public Message replywith(Properties params){ //\prul{redirect}{a - request ( q(x)~reply-with:~i) \rightarrow S}{ //Q \Leftarrow Q\cup\{\langle a, i, !i', q(x), S'\rangle\}\ \ //S - request( q( R(x) )~reply-with:~i')\rightarrow S'}{S'\in C(q)} - return new Message(newId(),mess,serverId,mess.getSender(),"dummy//",(Properties)null); + return new Message( params, newId(), serverId,"dummy//" ); } // Implements: reply-to - public Message replyto(Message mess){ + public Message replyto(Properties params){ //\prul{handle-return}{S' - inform ( y~reply-to:~i') \rightarrow S}{ //Q \Leftarrow Q-\{\langle a, i, i', _, S'\rangle\}\ \ @@ -827,16 +817,16 @@ public class AServProtocolManager implements Service { //Q \Leftarrow Q-\{\langle a, i, i', _, S'\rangle\}\ \ //R \Leftarrow R\cup\{\langle a, !y', y, S'\rangle\}\ \ //S - inform( R^{-1}(y)~reply-to:~i)\rightarrow a}{\langle a, i, i', _, S'\rangle \in Q, surr(y)} - return new Message(newId(),mess,serverId,mess.getSender(),"dummy//",(Properties)null); + return new Message( params, newId(), serverId,"dummy//" ); } // Implements: failure - public Message failure(Message mess){ + public Message failure(Properties params){ //\prul{failure-return}{S' - failure ( y~reply-to:~i') \rightarrow S}{ //Q \Leftarrow Q-\{\langle a, i, i', _, S'\rangle\}\ \ //S - failure( R^{-1}(y)~reply-to:~i)\rightarrow a}{\langle a, i, i', _, S'\rangle \in Q} - return new Message(newId(),mess,serverId,mess.getSender(),"dummy//",(Properties)null); + return new Message( params, newId(), serverId,"dummy//" ); } /********************************************************************* @@ -1085,12 +1075,12 @@ public class AServProtocolManager implements Service { } protected class Aligner implements Runnable { - private Message mess = null; + private Properties params = null; private Message result = null; private String id = null; - public Aligner( Message m, String id ) { - mess = m; + public Aligner( Properties p, String id ) { + params = p; this.id = id; } @@ -1099,17 +1089,16 @@ public class AServProtocolManager implements Service { } public void run() { - Properties params = mess.getParameters(); String method = params.getProperty("method"); // find and access o, o' URI uri1 = null; URI uri2 = null; try { - uri1 = new URI(params.getProperty("onto1")); - uri2 = new URI(params.getProperty("onto2")); + uri1 = new URI( params.getProperty("onto1")); + uri2 = new URI( params.getProperty("onto2")); } catch (Exception e) { - result = new NonConformParameters(newId(),mess,serverId,mess.getSender(),"nonconform/params/onto",(Properties)null); + result = new NonConformParameters( params, newId(), serverId,"nonconform/params/onto" ); return; }; @@ -1121,11 +1110,11 @@ public class AServProtocolManager implements Service { try { init = alignmentCache.getAlignment( params.getProperty("init") ); } catch (Exception e) { - result = new UnknownAlignment(newId(),mess,serverId,mess.getSender(),params.getProperty("init"),(Properties)null); + result = new UnknownAlignment( params, newId(), serverId,params.getProperty("init") ); return; } } catch (Exception e) { - result = new UnknownAlignment(newId(),mess,serverId,mess.getSender(),params.getProperty("init"),(Properties)null); + result = new UnknownAlignment( params, newId(), serverId,params.getProperty("init") ); return; } } @@ -1153,33 +1142,33 @@ public class AServProtocolManager implements Service { // The unreachability test has already been done // JE 15/1/2009: commented the unreachability test if ( reachable( uri1 ) == null ){ - result = new UnreachableOntology(newId(),mess,serverId,mess.getSender(),params.getProperty("onto1"),(Properties)null); + result = new UnreachableOntology( params, newId(), serverId,params.getProperty("onto1") ); } else if ( reachable( uri2 ) == null ){ - result = new UnreachableOntology(newId(),mess,serverId,mess.getSender(),params.getProperty("onto2"),(Properties)null); + result = new UnreachableOntology( params, newId(), serverId,params.getProperty("onto2") ); } else { - result = new NonConformParameters(newId(),mess,serverId,mess.getSender(),"nonconform/params/"+e.getMessage(),(Properties)null); + result = new NonConformParameters( params, newId(), serverId,"nonconform/params/"+e.getMessage() ); } return; } // ask to store A' alignmentCache.recordNewAlignment( id, aresult, true ); - result = new AlignmentId(newId(),mess,serverId,mess.getSender(),id,(Properties)null, + result = new AlignmentId( params, newId(), serverId, id, aresult.getExtension( Namespace.ALIGNMENT.uri, Annotations.PRETTY )); } catch ( ClassNotFoundException cnfex ) { logger.error( "Unknown method", cnfex ); - result = new UnknownMethod(newId(),mess,serverId,mess.getSender(),method,(Properties)null); + result = new UnknownMethod( params, newId(), serverId,method ); } catch (NoSuchMethodException e) { - result = new RunTimeError(newId(),mess,serverId,mess.getSender(),"No such method: "+method+"(Object, Object)",(Properties)null); + result = new RunTimeError( params, newId(), serverId, "No such method: "+method+"(Object, Object)" ); } catch (InstantiationException e) { - result = new RunTimeError(newId(),mess,serverId,mess.getSender(),"Instantiation",(Properties)null); + result = new RunTimeError( params, newId(), serverId, "Instantiation" ); } catch (IllegalAccessException e) { - result = new RunTimeError(newId(),mess,serverId,mess.getSender(),"Cannot access",(Properties)null); + result = new RunTimeError( params, newId(), serverId, "Cannot access" ); } catch (InvocationTargetException e) { - result = new RunTimeError(newId(),mess,serverId,mess.getSender(),"Invocation target",(Properties)null); + result = new RunTimeError( params, newId(), serverId, "Invocation target" ); } catch (AlignmentException e) { - result = new NonConformParameters(newId(),mess,serverId,mess.getSender(),"nonconform/params/",(Properties)null); + result = new NonConformParameters( params, newId(), serverId, "nonconform/params/" ); } catch (Exception e) { - result = new RunTimeError(newId(),mess,serverId,mess.getSender(),"Unexpected exception :"+e,(Properties)null); + result = new RunTimeError( params, newId(), serverId, "Unexpected exception :"+e ); } } } diff --git a/src/fr/inrialpes/exmo/align/service/HTMLAServProfile.java b/src/fr/inrialpes/exmo/align/service/HTMLAServProfile.java index a2881f74a048c8d8341d4f43028e9590be49bd2d..2e6c2376fd963c0f37e324808d4628312bb8c9d0 100644 --- a/src/fr/inrialpes/exmo/align/service/HTMLAServProfile.java +++ b/src/fr/inrialpes/exmo/align/service/HTMLAServProfile.java @@ -70,18 +70,16 @@ public class HTMLAServProfile implements AlignmentServiceProfile { private AServProtocolManager manager; - private String myId; - private String serverId; + private String serverURL; private int localId = 0; - private int newId() { return localId++; } - public static final int MAX_FILE_SIZE = 10000; public static final String HEADER = "<style type=\"text/css\">body { font-family: sans-serif } button {background-color: #DDEEFF; margin-left: 1%; border: #CCC 1px solid;}</style>"; public void init( Properties params, AServProtocolManager manager ) throws AServException { this.manager = manager; + serverURL = manager.serverURL()+"/html/"; } public boolean accept( String prefix ) { @@ -258,7 +256,7 @@ public class HTMLAServProfile implements AlignmentServiceProfile { } else if ( perf.equals("errrazze") ){ // Suppress an alignment String id = params.getProperty("id"); if ( id != null && !id.equals("") ) { // Erase it - Message answer = manager.erase( new Message(newId(),(Message)null,myId,serverId,id, params) ); + Message answer = manager.erase( params ); if ( answer instanceof ErrorMsg ) { msg = testErrorMessages( answer, params ); } else { @@ -273,7 +271,7 @@ public class HTMLAServProfile implements AlignmentServiceProfile { for ( Alignment al : manager.alignments() ) { String id = al.getExtension( Namespace.ALIGNMENT.uri, Annotations.ID); params.setProperty("id", id); - if ( !manager.storedAlignment( new Message(newId(),(Message)null,myId,serverId,"", params ) ) ){ + if ( !manager.storedAlignment( params ) ){ String pid = al.getExtension( Namespace.ALIGNMENT.uri, Annotations.PRETTY ); if ( pid == null ) pid = id; else pid = id+" ("+pid+")"; msg += "<option value=\""+id+"\">"+pid+"</option>"; @@ -286,7 +284,7 @@ public class HTMLAServProfile implements AlignmentServiceProfile { String id = params.getProperty("id"); String url = params.getProperty("url"); if ( url != null && !url.equals("") ) { // Load the URL - Message answer = manager.load( new Message(newId(),(Message)null,myId,serverId,"", params) ); + Message answer = manager.load( params ); if ( answer instanceof ErrorMsg ) { msg = testErrorMessages( answer, params ); } else { @@ -294,7 +292,7 @@ public class HTMLAServProfile implements AlignmentServiceProfile { } } if ( id != null ){ // Store it - Message answer = manager.store( new Message(newId(),(Message)null,myId,serverId,id, params) ); + Message answer = manager.store( params ); if ( answer instanceof ErrorMsg ) { msg = testErrorMessages( answer, params ); } else { @@ -322,7 +320,7 @@ public class HTMLAServProfile implements AlignmentServiceProfile { String id = params.getProperty("id"); String threshold = params.getProperty("threshold"); if ( id != null && !id.equals("") && threshold != null && !threshold.equals("") ){ // Trim it - Message answer = manager.trim( new Message(newId(),(Message)null,myId,serverId,id, params) ); + Message answer = manager.trim( params ); if ( answer instanceof ErrorMsg ) { msg = testErrorMessages( answer, params ); } else { @@ -344,7 +342,7 @@ public class HTMLAServProfile implements AlignmentServiceProfile { } else if ( perf.equals("inv") ) { String id = params.getProperty("id"); if ( id != null && !id.equals("") ){ // Invert it - Message answer = manager.inverse( new Message(newId(),(Message)null,myId,serverId,id, params) ); + Message answer = manager.inverse( params ); if ( answer instanceof ErrorMsg ) { msg = testErrorMessages( answer, params ); } else { @@ -381,7 +379,7 @@ public class HTMLAServProfile implements AlignmentServiceProfile { msg += " <input type=\"checkbox\" name=\"force\" /> Force <input type=\"checkbox\" name=\"async\" /> Asynchronous<br />"; msg += "Additional parameters:<br /><input type=\"text\" name=\"paramn1\" size=\"15\"/> = <input type=\"text\" name=\"paramv1\" size=\"65\"/><br /><input type=\"text\" name=\"paramn2\" size=\"15\"/> = <input type=\"text\" name=\"paramv2\" size=\"65\"/><br /><input type=\"text\" name=\"paramn3\" size=\"15\"/> = <input type=\"text\" name=\"paramv3\" size=\"65\"/><br /><input type=\"text\" name=\"paramn4\" size=\"15\"/> = <input type=\"text\" name=\"paramv4\" size=\"65\"/></form>"; } else if ( perf.equals("match") ) { - Message answer = manager.align( new Message(newId(),(Message)null,myId,serverId,"", params) ); + Message answer = manager.align( params ); if ( answer instanceof ErrorMsg ) { msg = testErrorMessages( answer, params ); } else { @@ -391,7 +389,7 @@ public class HTMLAServProfile implements AlignmentServiceProfile { } else if ( perf.equals("prmfind") ) { msg ="<h1>Find alignments between ontologies</h1><form action=\"find\">Ontology 1: <input type=\"text\" name=\"onto1\" size=\"80\"/> (uri)<br />Ontology 2: <input type=\"text\" name=\"onto2\" size=\"80\"/> (uri)<br /><small>These are the URI identifying the ontologies. Not those of places where to upload them.</small><br /><input type=\"submit\" name=\"action\" value=\"Find\"/></form>"; } else if ( perf.equals("find") ) { - Message answer = manager.existingAlignments( new Message(newId(),(Message)null,myId,serverId,"", params) ); + Message answer = manager.existingAlignments( params ); if ( answer instanceof ErrorMsg ) { msg = testErrorMessages( answer, params ); } else { @@ -399,7 +397,7 @@ public class HTMLAServProfile implements AlignmentServiceProfile { msg += displayAnswer( answer, params ); } } else if ( perf.equals("corresp") ) { - Message answer = manager.findCorrespondences( new Message(newId(),(Message)null,myId,serverId,"", params) ); + Message answer = manager.findCorrespondences( params ); if ( answer instanceof ErrorMsg ) { msg = testErrorMessages( answer, params ); } else { @@ -427,7 +425,7 @@ public class HTMLAServProfile implements AlignmentServiceProfile { } msg += "</select><br /><input type=\"submit\" value=\"Retrieve\"/></form>"; } else if ( perf.equals("retrieve") ) { - Message answer = manager.render( new Message(newId(),(Message)null,myId,serverId,"", params) ); + Message answer = manager.render( params ); if ( answer instanceof ErrorMsg ) { msg = testErrorMessages( answer, params ); } else { @@ -451,7 +449,7 @@ public class HTMLAServProfile implements AlignmentServiceProfile { params.setProperty("method", "fr.inrialpes.exmo.align.impl.renderer.HTMLMetadataRendererVisitor"); else params.setProperty("method", "fr.inrialpes.exmo.align.impl.renderer.XMLMetadataRendererVisitor"); - Message answer = manager.render( new Message(newId(),(Message)null,myId,serverId,"", params) ); + Message answer = manager.render( params ); //logger.trace( "Content: {}", answer.getContent() ); if ( answer instanceof ErrorMsg ) { msg = testErrorMessages( answer, params ); @@ -474,7 +472,7 @@ public class HTMLAServProfile implements AlignmentServiceProfile { msg += " </form>"; } else if ( perf.equals("load") ) { // load - Message answer = manager.load( new Message(newId(),(Message)null,myId,serverId,"", params) ); + Message answer = manager.load( params ); if ( answer instanceof ErrorMsg ) { msg = testErrorMessages( answer, params ); } else { @@ -493,7 +491,7 @@ public class HTMLAServProfile implements AlignmentServiceProfile { msg += "</select><br />"; msg += "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .<br /><br />SPARQL query:<br /> <textarea name=\"query\" rows=\"20\" cols=\"80\">PREFIX foaf: <http://xmlns.com/foaf/0.1/>\nSELECT *\nFROM <>\nWHERE {\n\n}</textarea> (SPARQL)<br /><small>A SPARQL query (PREFIX prefix: <uri> SELECT variables FROM <url> WHERE { triples })</small><br /><input type=\"submit\" value=\"Translate\"/></form>"; } else if ( perf.equals("translate") ) { - Message answer = manager.translate( new Message(newId(),(Message)null,myId,serverId,"", params) ); + Message answer = manager.translate( params ); if ( answer instanceof ErrorMsg ) { msg = testErrorMessages( answer, params ); } else { @@ -531,7 +529,7 @@ public class HTMLAServProfile implements AlignmentServiceProfile { msg += "</select><br /><input type=\"submit\" name=\"action\" value=\"Evaluate\"/>\n"; msg += "</form>\n"; } else if ( perf.equals("eval") ) { - Message answer = manager.eval( new Message(newId(),(Message)null,myId,serverId,"", params) ); + Message answer = manager.eval( params ); if ( answer instanceof ErrorMsg ) { msg = testErrorMessages( answer, params ); } else { @@ -567,7 +565,7 @@ public class HTMLAServProfile implements AlignmentServiceProfile { msg += "<br /><input type=\"submit\" name=\"action\" value=\"Compare\"/>\n"; msg += "</form>\n"; } else if ( perf.equals("diff") ) { - Message answer = manager.diff( new Message(newId(),(Message)null,myId,serverId,"", params) ); + Message answer = manager.diff( params ); if ( answer instanceof ErrorMsg ) { msg = testErrorMessages( answer, params ); } else { diff --git a/src/fr/inrialpes/exmo/align/service/HTTPTransport.java b/src/fr/inrialpes/exmo/align/service/HTTPTransport.java index caceb554ea5aaede7b4205e9b50e092ef017fa5c..fba2095302c58b3195b1b22ef056fb59eed8c051 100644 --- a/src/fr/inrialpes/exmo/align/service/HTTPTransport.java +++ b/src/fr/inrialpes/exmo/align/service/HTTPTransport.java @@ -358,7 +358,7 @@ public class HTTPTransport { params.setProperty( "method", "fr.inrialpes.exmo.align.impl.renderer.HTMLRendererVisitor" ); } logger.trace( "Bloody URI : {}", manager.serverURL()+uri); - Message answer = manager.render( new Message( newId(), (Message)null, myId, serverId, "", params) ); + Message answer = manager.render( params ); if ( answer instanceof ErrorMsg ) { return new HTTPResponse( HTTPResponse.HTTP_NOTFOUND, HTTPResponse.MIME_PLAINTEXT, "Alignment server: unknown alignment : "+answer.getContent() ); } else { diff --git a/src/fr/inrialpes/exmo/align/service/WSAServProfile.java b/src/fr/inrialpes/exmo/align/service/WSAServProfile.java index d2db0461d57cfb03beeb197761df321c3883307a..08f95fb88bde7c393525404bf6dd5162f61c895a 100644 --- a/src/fr/inrialpes/exmo/align/service/WSAServProfile.java +++ b/src/fr/inrialpes/exmo/align/service/WSAServProfile.java @@ -307,14 +307,14 @@ public class WSAServProfile implements AlignmentServiceProfile { if ( newparameters.getProperty( "id" ) == null ) { answer = new NonConformParameters(0,(Message)null,myId,"",message,(Properties)null); } else { - answer = manager.store( new Message(newId(),(Message)null,myId,serverURL,newparameters.getProperty( "id" ), newparameters) ); + answer = manager.store( newparameters ); } msg += render( "storeResponse", answer, param.getProperty("returnType"), newparameters); } else if ( method.equals("invertRequest") || method.equals("invert") ) { // URI -> URI if ( newparameters.getProperty( "id" ) == null ) { answer = new NonConformParameters(0,(Message)null,myId,"",message,(Properties)null); } else { - answer = manager.inverse( new Message(newId(),(Message)null,myId,serverURL, newparameters.getProperty( "id" ), newparameters) ); + answer = manager.inverse( newparameters ); } msg += render( "invertResponse", answer, param.getProperty("returnType"), newparameters); } else if ( method.equals("trimRequest") || method.equals("trim") ) { // URI * string * float -> URI @@ -326,7 +326,7 @@ public class WSAServProfile implements AlignmentServiceProfile { if ( newparameters.getProperty( "type" ) == null ) { newparameters.setProperty( "type", "hard" ); } - answer = manager.trim( new Message(newId(),(Message)null,myId,serverURL,newparameters.getProperty( "id" ), newparameters) ); + answer = manager.trim( newparameters ); } msg += render( "trimResponse", answer, param.getProperty("returnType"), newparameters); } else if ( method.equals("matchRequest") || method.equals("match") ) { // URL * URL * URI * String * boolean * (newparameters) -> URI @@ -335,7 +335,7 @@ public class WSAServProfile implements AlignmentServiceProfile { } else if ( newparameters.getProperty( "onto2" ) == null ) { answer = new NonConformParameters(0,(Message)null,myId,"",message,(Properties)null); } else { - answer = manager.align( new Message(newId(),(Message)null,myId,serverURL,"", newparameters) ); + answer = manager.align( newparameters ); } msg += render( "matchResponse", answer, param.getProperty("returnType"), newparameters); } else if ( method.equals("align") ) { // URL * URL * (newparameters) -> URI @@ -350,7 +350,7 @@ public class WSAServProfile implements AlignmentServiceProfile { } else { newparameters.setProperty( "method", newparameters.getProperty( "wsmethod" ) ); } // Match the two ontologies - Message result = manager.align( new Message(newId(),(Message)null,myId,serverURL,"", newparameters) ); + Message result = manager.align( newparameters ); if ( result instanceof ErrorMsg ) { answer = result; } else { @@ -362,7 +362,7 @@ public class WSAServProfile implements AlignmentServiceProfile { } else { newparameters.setProperty( "method", "fr.inrialpes.exmo.align.impl.renderer.RDFRendererVisitor" ); newparameters.setProperty( "embedded", "true" ); - answer = manager.render( new Message(newId(),(Message)null,myId,serverURL, "", newparameters) ); + answer = manager.render( newparameters ); } } } @@ -373,14 +373,14 @@ public class WSAServProfile implements AlignmentServiceProfile { } else if ( newparameters.getProperty( "entity" ) == null ) { answer = new NonConformParameters(0,(Message)null,myId,"",message,(Properties)null); } else { - answer = manager.findCorrespondences( new Message(newId(),(Message)null,myId,serverURL,"", newparameters) ); + answer = manager.findCorrespondences( newparameters ); } msg += render( "correspResponse", answer, param.getProperty("returnType"), newparameters); } else if ( method.equals("findRequest") || method.equals("find") ) { // URI * URI -> List of URI if ( newparameters.getProperty( "onto1" ) == null && newparameters.getProperty( "onto2" ) == null ) { answer = new NonConformParameters(0,(Message)null,myId,"",message,(Properties)null); } else { - answer = manager.existingAlignments( new Message(newId(),(Message)null,myId,serverURL,"", newparameters) ); + answer = manager.existingAlignments( newparameters ); } msg += render( "findResponse", answer, param.getProperty("returnType"), newparameters); } else if ( method.equals("retrieveRequest") || method.equals("retrieve")) { // URI * method -> XML @@ -390,7 +390,7 @@ public class WSAServProfile implements AlignmentServiceProfile { answer = new NonConformParameters(0,(Message)null,myId,"",message,(Properties)null); } else { newparameters.setProperty( "embedded", "true" ); - answer = manager.render( new Message(newId(),(Message)null,myId,serverURL, "", newparameters) ); + answer = manager.render( newparameters ); } msg += render( "retrieveResponse", answer, param.getProperty("returnType"), newparameters); } else if ( method.equals("metadataRequest") || method.equals("metadata") ) { // URI -> XML @@ -399,7 +399,7 @@ public class WSAServProfile implements AlignmentServiceProfile { } else { newparameters.setProperty( "embedded", "true" ); newparameters.setProperty( "method", "fr.inrialpes.exmo.align.impl.renderer.XMLMetadataRendererVisitor"); - answer = manager.render( new Message(newId(),(Message)null,myId,serverURL, "", newparameters) ); + answer = manager.render( newparameters ); } msg += render( "metadataResponse", answer, param.getProperty("returnType"), newparameters); } else if ( method.equals("loadRequest") || method.equals("load") ) { // URL -> URI @@ -411,7 +411,7 @@ public class WSAServProfile implements AlignmentServiceProfile { param.getProperty( "filename" ) == null ) { answer = new NonConformParameters(0,(Message)null,myId,"",message,(Properties)null); } - answer = manager.load( new Message(newId(),(Message)null,myId,serverURL,"", newparameters) ); + answer = manager.load( newparameters ); msg += render( "loadResponse", answer, param.getProperty("returnType"), newparameters); /* // This has never been in use. @@ -419,7 +419,7 @@ public class WSAServProfile implements AlignmentServiceProfile { if ( newparameters.getProperty( "url" ) == null ) { answer = new NonConformParameters(0,(Message)null,myId,"",message,(Properties)null); } else { - answer = manager.load( new Message(newId(),(Message)null,myId,serverURL,"", newparameters) ); + answer = manager.load( newparameters ); } msg += " <loadResponse"+svcNS+">\n"+answer.SOAPString()+" </loadResponse>\n"; */ @@ -429,7 +429,7 @@ public class WSAServProfile implements AlignmentServiceProfile { } else if ( newparameters.getProperty( "query" ) == null ) { answer = new NonConformParameters(0,(Message)null,myId,"",message,(Properties)null); } else { - answer = manager.translate( new Message(newId(),(Message)null,myId,serverURL,"", newparameters) ); + answer = manager.translate( newparameters ); } msg += render( "translateResponse", answer, param.getProperty("returnType"), newparameters); } else { @@ -539,6 +539,4 @@ public class WSAServProfile implements AlignmentServiceProfile { return params; } - private int newId() { return localId++; } - } diff --git a/src/fr/inrialpes/exmo/align/service/jade/JadeFIPAAServiceAgent.java b/src/fr/inrialpes/exmo/align/service/jade/JadeFIPAAServiceAgent.java index 3f67c5ae630c03bc87cae08fe8e3dd5b5433b834..799b14416abcca30d27ec8b1e1f196f8d8d54bde 100755 --- a/src/fr/inrialpes/exmo/align/service/jade/JadeFIPAAServiceAgent.java +++ b/src/fr/inrialpes/exmo/align/service/jade/JadeFIPAAServiceAgent.java @@ -2,7 +2,7 @@ * $Id$ * * Copyright (C) Orange R&D, 2006 - * Copyright (C) INRIA, 2006, 2008-2009, 2011-2013 + * Copyright (C) INRIA, 2006, 2008-2009, 2011-2014 * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License @@ -61,222 +61,207 @@ import fr.inrialpes.exmo.align.service.jade.messageontology.TRANSLATE; public class JadeFIPAAServiceAgent extends Agent { final static Logger logger = LoggerFactory.getLogger( JadeFIPAAServiceAgent.class ); - private static final long serialVersionUID = 330; - public static final String SERVICE_NAME = "Alignment"; - public static final String SERVICE_TYPE = "Alignment-service"; - - private String myId; - private String serverId; - private AServProtocolManager manager; - private int localId=0; - private Properties initialParameters; - - // FIPA ACL stuff - - private ContentManager CTmanager=new ContentManager(); - private SLCodec codec=new SLCodec(); - private Ontology ontology=JADEFIPAAlignmentServerOntology.getInstance(); - - - protected void setup() { - logger.info( "{} started", getAID().getName() ); - super.setup(); - codec = new SLCodec(); - - // ontology = ContextAgentManagerOntology.getInstance(); - CTmanager = this.getContentManager(); - - // logger.trace("agent {} {} is created", getAID(), getLocalName() ); - - CTmanager.registerOntology(ontology); - CTmanager.registerLanguage(codec); - - - // Read arguments - Object[] args = getArguments(); - if (args != null) { - /**for (int i = 0; i < args.length; ++i) { - logger.debug( "Arg-{} = {}", i, args[i] ); - }**/ - - manager=(AServProtocolManager) args[0]; - initialParameters = (Properties)args[1]; - } - - myId = "LocalJADEInterface"; - serverId = "dummy"; - localId = 0; - - // Add initial behaviours to manage incoming message - addBehaviour(new CyclicBehaviour(this) { - private static final long serialVersionUID = 330; - public void action() { - - String perf; // performative - String info; //parameters - Properties params = initialParameters; + private static final long serialVersionUID = 460; + public static final String SERVICE_NAME = "Alignment"; + public static final String SERVICE_TYPE = "Alignment-service"; + + private AServProtocolManager manager; + private Properties initialParameters; + + // FIPA ACL stuff + + private ContentManager CTmanager=new ContentManager(); + private SLCodec codec=new SLCodec(); + private Ontology ontology=JADEFIPAAlignmentServerOntology.getInstance(); + + + protected void setup() { + logger.info( "{} started", getAID().getName() ); + super.setup(); + codec = new SLCodec(); + + // ontology = ContextAgentManagerOntology.getInstance(); + CTmanager = this.getContentManager(); + + // logger.trace("agent {} {} is created", getAID(), getLocalName() ); + + CTmanager.registerOntology(ontology); + CTmanager.registerLanguage(codec); + + // Read arguments + Object[] args = getArguments(); + if ( args != null ) { + /**for (int i = 0; i < args.length; ++i) { + logger.debug( "Arg-{} = {}", i, args[i] ); + }**/ + manager = (AServProtocolManager)args[0]; + initialParameters = (Properties)args[1]; + } - MessageTemplate tpl =MessageTemplate.and(MessageTemplate.and( + // Add initial behaviours to manage incoming message + addBehaviour(new CyclicBehaviour(this) { + private static final long serialVersionUID = 330; + public void action() { + + String perf; // performative + String info; //parameters + Properties params = initialParameters; + + MessageTemplate tpl = MessageTemplate.and(MessageTemplate.and( MessageTemplate.MatchLanguage( codec.getName()), MessageTemplate.MatchOntology( ontology.getName())), MessageTemplate.MatchPerformative(ACLMessage.REQUEST)); - ACLMessage msg = myAgent.receive(tpl); - if (msg != null) { -// --------------------------------------------------------- - //logger.debug( "Received message: {}", msg.toString() ); - - try{ - ContentElement ce = null; - ce = CTmanager.extractContent(msg); - params = decodeMessage(ce,params); - - if (ce instanceof ALIGN){ - Message answer = manager.align(new Message(newId(), (Message)null,myId,serverId,"",params)); - if(!(answer instanceof ErrorMsg)){ - ACLMessage JADEanswer=msg.createReply(); - JADEanswer.setLanguage(codec.getName()); - JADEanswer.setOntology(ontology.getName()); - JADEanswer.setPerformative(ACLMessage.INFORM); - //JADEanswer.setContent(answer.getContent()); - ((Action)ce).setResult(answer.getContent()); - CTmanager.fillContent(JADEanswer, ce); - myAgent.send(JADEanswer); - }else{ - logger.warn( answer.getContent() ); - } - }else if (ce instanceof LOAD){ - Message answer = manager.load(new Message(newId(), (Message)null,myId,serverId,"",params)); - if(!(answer instanceof ErrorMsg)){ - ACLMessage JADEanswer=msg.createReply(); - JADEanswer.setLanguage(codec.getName()); - JADEanswer.setOntology(ontology.getName()); - JADEanswer.setPerformative(ACLMessage.INFORM); - ((Action)ce).setResult(answer.getContent()); - CTmanager.fillContent(JADEanswer, ce); - //JADEanswer.setContent(answer.getContent()); - myAgent.send(JADEanswer); - }else{ - logger.warn( answer.getContent() ); - } - }else if (ce instanceof RETRIEVE){ - Message answer = manager.render(new Message(newId(), (Message)null,myId,serverId,"",params)); - if(!(answer instanceof ErrorMsg)){ - ACLMessage JADEanswer=msg.createReply(); - JADEanswer.setLanguage(codec.getName()); - JADEanswer.setOntology(ontology.getName()); - JADEanswer.setPerformative(ACLMessage.INFORM); - //JADEanswer.setContent(answer.getContent()); - ((Action)ce).setResult(answer.getContent()); - CTmanager.fillContent(JADEanswer, ce); - myAgent.send(JADEanswer); - }else{ - logger.warn( answer.getContent() ); - } - }else if (ce instanceof TRANSLATE){ - //TODO - }else if (ce instanceof METADATA){ - //TODO - }else if (ce instanceof STORE){ - Message answer = manager.store(new Message(newId(), (Message)null,myId,serverId,params.getProperty("id"),params)); - if(!(answer instanceof ErrorMsg)){ - ACLMessage JADEanswer=msg.createReply(); - JADEanswer.setLanguage(codec.getName()); - JADEanswer.setOntology(ontology.getName()); - JADEanswer.setPerformative(ACLMessage.INFORM); - //JADEanswer.setContent(answer.getContent()); - ((Action)ce).setResult(answer.getContent()); - CTmanager.fillContent(JADEanswer, ce); - myAgent.send(JADEanswer); - }else{ - logger.warn( answer.getContent() ); - } - }else if (ce instanceof FIND){ - Message answer = manager.existingAlignments(new Message(newId(), (Message)null,myId,serverId,"",params)); - if(!(answer instanceof ErrorMsg)){ - ACLMessage JADEanswer=msg.createReply(); - JADEanswer.setLanguage(codec.getName()); - JADEanswer.setOntology(ontology.getName()); - JADEanswer.setPerformative(ACLMessage.INFORM); - //JADEanswer.setContent(answer.getContent()); - ((Action)ce).setResult(answer.getContent()); - CTmanager.fillContent(JADEanswer, ce); - myAgent.send(JADEanswer); - }else{ - logger.warn( answer.getContent() ); - } - }else if (ce instanceof CUT){ - Message answer = manager.trim(new Message(newId(), (Message)null,myId,serverId,"",params)); - if(!(answer instanceof ErrorMsg)){ - ACLMessage JADEanswer=msg.createReply(); - JADEanswer.setLanguage(codec.getName()); - JADEanswer.setOntology(ontology.getName()); - JADEanswer.setPerformative(ACLMessage.INFORM); - //JADEanswer.setContent(answer.getContent()); - ((Action)ce).setResult(answer.getContent()); - CTmanager.fillContent(JADEanswer, ce); - myAgent.send(JADEanswer); - }else{ - logger.warn( answer.getContent() ); - } - }else { - ACLMessage JADEanswer=msg.createReply(); - JADEanswer.setLanguage(codec.getName()); - JADEanswer.setOntology(ontology.getName()); - JADEanswer.setPerformative(ACLMessage.NOT_UNDERSTOOD); - myAgent.send(JADEanswer); - } - } catch( CodecException ce ) { - logger.debug( "IGNORED Exception", ce ); - } catch( OntologyException oe ) { - logger.debug( "IGNORED Exception", oe ); - } - }else { - block(); + ACLMessage msg = myAgent.receive(tpl); + if (msg != null) { + //logger.debug( "Received message: {}", msg.toString() ); + try{ + ContentElement ce = null; + ce = CTmanager.extractContent(msg); + params = decodeMessage(ce,params); + + if (ce instanceof ALIGN) { + Message answer = manager.align( params ); + if(!(answer instanceof ErrorMsg)) { + ACLMessage JADEanswer=msg.createReply(); + JADEanswer.setLanguage(codec.getName()); + JADEanswer.setOntology(ontology.getName()); + JADEanswer.setPerformative(ACLMessage.INFORM); + //JADEanswer.setContent(answer.getContent()); + ((Action)ce).setResult(answer.getContent()); + CTmanager.fillContent(JADEanswer, ce); + myAgent.send(JADEanswer); + } else { + logger.warn( answer.getContent() ); + } + } else if (ce instanceof LOAD) { + Message answer = manager.load( params ); + if(!(answer instanceof ErrorMsg)) { + ACLMessage JADEanswer=msg.createReply(); + JADEanswer.setLanguage(codec.getName()); + JADEanswer.setOntology(ontology.getName()); + JADEanswer.setPerformative(ACLMessage.INFORM); + ((Action)ce).setResult(answer.getContent()); + CTmanager.fillContent(JADEanswer, ce); + //JADEanswer.setContent(answer.getContent()); + myAgent.send(JADEanswer); + } else { + logger.warn( answer.getContent() ); } - params = initialParameters; + } else if (ce instanceof RETRIEVE) { + Message answer = manager.render( params ); + if(!(answer instanceof ErrorMsg)) { + ACLMessage JADEanswer=msg.createReply(); + JADEanswer.setLanguage(codec.getName()); + JADEanswer.setOntology(ontology.getName()); + JADEanswer.setPerformative(ACLMessage.INFORM); + //JADEanswer.setContent(answer.getContent()); + ((Action)ce).setResult(answer.getContent()); + CTmanager.fillContent(JADEanswer, ce); + myAgent.send(JADEanswer); + } else { + logger.warn( answer.getContent() ); + } + } else if (ce instanceof TRANSLATE) { + //TODO + } else if (ce instanceof METADATA) { + //TODO + } else if (ce instanceof STORE) { + Message answer = manager.store( params ); + if(!(answer instanceof ErrorMsg)) { + ACLMessage JADEanswer=msg.createReply(); + JADEanswer.setLanguage(codec.getName()); + JADEanswer.setOntology(ontology.getName()); + JADEanswer.setPerformative(ACLMessage.INFORM); + //JADEanswer.setContent(answer.getContent()); + ((Action)ce).setResult(answer.getContent()); + CTmanager.fillContent(JADEanswer, ce); + myAgent.send(JADEanswer); + } else { + logger.warn( answer.getContent() ); + } + } else if (ce instanceof FIND) { + Message answer = manager.existingAlignments( params ); + if(!(answer instanceof ErrorMsg)) { + ACLMessage JADEanswer=msg.createReply(); + JADEanswer.setLanguage(codec.getName()); + JADEanswer.setOntology(ontology.getName()); + JADEanswer.setPerformative(ACLMessage.INFORM); + //JADEanswer.setContent(answer.getContent()); + ((Action)ce).setResult(answer.getContent()); + CTmanager.fillContent(JADEanswer, ce); + myAgent.send(JADEanswer); + } else { + logger.warn( answer.getContent() ); + } + } else if (ce instanceof CUT) { + Message answer = manager.trim( params ); + if(!(answer instanceof ErrorMsg)) { + ACLMessage JADEanswer=msg.createReply(); + JADEanswer.setLanguage(codec.getName()); + JADEanswer.setOntology(ontology.getName()); + JADEanswer.setPerformative(ACLMessage.INFORM); + //JADEanswer.setContent(answer.getContent()); + ((Action)ce).setResult(answer.getContent()); + CTmanager.fillContent(JADEanswer, ce); + myAgent.send(JADEanswer); + } else { + logger.warn( answer.getContent() ); + } + } else { + ACLMessage JADEanswer=msg.createReply(); + JADEanswer.setLanguage(codec.getName()); + JADEanswer.setOntology(ontology.getName()); + JADEanswer.setPerformative(ACLMessage.NOT_UNDERSTOOD); + myAgent.send(JADEanswer); + } + } catch( CodecException ce ) { + logger.debug( "IGNORED Exception", ce ); + } catch( OntologyException oe ) { + logger.debug( "IGNORED Exception", oe ); } - - });//end of CyclicBehaviour - - - // Register with the DF - registerWithDF(); - }//end of Setup - - protected void takeDown() { - logger.info( "Agent Alignement Service closed" ); - this.doDelete(); - } - - private void registerWithDF() { - DFAgentDescription dfd = new DFAgentDescription(); - dfd.setName(getAID()); - ServiceDescription sd = new ServiceDescription(); - sd.setName(getLocalName()+'-'+SERVICE_NAME); - sd.setType(SERVICE_TYPE); - dfd.addServices(sd); - try { - logger.debug( "Registering with DF..." ); - DFService.register(this, dfd); - logger.debug( "Registration OK." ); - } - catch ( FIPAException fex ) { - logger.warn( "Error registering with DF", fex ); + } else { + block(); + } + params = initialParameters; } + + });//end of CyclicBehaviour + + // Register with the DF + registerWithDF(); + }//end of Setup + + protected void takeDown() { + logger.info( "Agent Alignement Service closed" ); + this.doDelete(); + } + + private void registerWithDF() { + DFAgentDescription dfd = new DFAgentDescription(); + dfd.setName(getAID()); + ServiceDescription sd = new ServiceDescription(); + sd.setName(getLocalName()+'-'+SERVICE_NAME); + sd.setType(SERVICE_TYPE); + dfd.addServices(sd); + try { + logger.debug( "Registering with DF..." ); + DFService.register(this, dfd); + logger.debug( "Registration OK." ); } - - private int newId(){return localId++;} - - private Properties decodeMessage(ContentElement ce, Properties param){ + catch ( FIPAException fex ) { + logger.warn( "Error registering with DF", fex ); + } + } + + private Properties decodeMessage(ContentElement ce, Properties param) { Properties toReturn = param; Action action= (Action)ce; - for( Iterator<Parameter> iter = action.getAllHasParameter(); iter.hasNext(); ){ + for( Iterator<Parameter> iter = action.getAllHasParameter(); iter.hasNext(); ) { Parameter OntoParam = iter.next(); toReturn.setProperty( OntoParam.getName(), OntoParam.getValue() ); } return toReturn; } - } diff --git a/src/fr/inrialpes/exmo/align/service/msg/AlignmentId.java b/src/fr/inrialpes/exmo/align/service/msg/AlignmentId.java index 8b32160dddbf204f60e77324440bb63976b0bfea..226486edd6952b2dfd09b76bf1ca09be6556c855 100644 --- a/src/fr/inrialpes/exmo/align/service/msg/AlignmentId.java +++ b/src/fr/inrialpes/exmo/align/service/msg/AlignmentId.java @@ -33,10 +33,21 @@ public class AlignmentId extends Success { public AlignmentId ( int surr, Message rep, String from, String to, String cont, Properties param ) { super( surr, rep, from, to, cont, param ); } + public AlignmentId ( int surr, Message rep, String from, String to, String cont, Properties param, String pretty ) { super( surr, rep, from, to, cont, param ); this.pretty = pretty; } + + public AlignmentId ( Properties mess, int surr, String from, String cont, String pretty ) { + super( mess, surr, from, cont ); + this.pretty = pretty; + } + + public AlignmentId ( Properties mess, int surr, String from, String cont ) { + super( mess, surr, from, cont ); + } + public String getPretty( String alid ) { if ( pretty == null ) { return alid; diff --git a/src/fr/inrialpes/exmo/align/service/msg/AlignmentIds.java b/src/fr/inrialpes/exmo/align/service/msg/AlignmentIds.java index abf927dc634a46a20af2cd6a051f23130a1f6f0f..8540cc6662eec50fa5eea8baae4c0ccc3b96aa25 100644 --- a/src/fr/inrialpes/exmo/align/service/msg/AlignmentIds.java +++ b/src/fr/inrialpes/exmo/align/service/msg/AlignmentIds.java @@ -37,10 +37,21 @@ public class AlignmentIds extends Success { public AlignmentIds ( int surr, Message rep, String from, String to, String cont, Properties param ) { super( surr, rep, from, to, cont, param ); } + public AlignmentIds ( int surr, Message rep, String from, String to, String cont, Properties param, String pretty ) { super( surr, rep, from, to, cont, param ); this.pretty = pretty; } + + public AlignmentIds ( Properties mess, int surr, String from, String cont, String pretty ) { + super( mess, surr, from, cont ); + this.pretty = pretty; + } + + public AlignmentIds ( Properties mess, int surr, String from, String cont ) { + super( mess, surr, from, cont ); + } + public String HTMLString(){ String id[] = content.split(" "); String pid[] = pretty.split(":"); diff --git a/src/fr/inrialpes/exmo/align/service/msg/AlignmentMetadata.java b/src/fr/inrialpes/exmo/align/service/msg/AlignmentMetadata.java index f017b395621aa4117aaff15ff4c86e5c4dbfbf48..73495ad398e445f4482f5d1e460490e3d763e682 100644 --- a/src/fr/inrialpes/exmo/align/service/msg/AlignmentMetadata.java +++ b/src/fr/inrialpes/exmo/align/service/msg/AlignmentMetadata.java @@ -32,6 +32,11 @@ public class AlignmentMetadata extends Success { super( surr, rep, from, to, cont, param ); } + public AlignmentMetadata ( Properties mess, int surr, String from, String cont, Properties param ) { + super( mess, surr, from, cont ); + parameters = param; + } + public String HTMLString() { return "Metadata not implemented"; } diff --git a/src/fr/inrialpes/exmo/align/service/msg/CannotRenderAlignment.java b/src/fr/inrialpes/exmo/align/service/msg/CannotRenderAlignment.java index 8cee1d1fb48207b5e9e61c127747346c7ef08054..bad36e44b50701e7b7ca52c93f4b821df626d67c 100644 --- a/src/fr/inrialpes/exmo/align/service/msg/CannotRenderAlignment.java +++ b/src/fr/inrialpes/exmo/align/service/msg/CannotRenderAlignment.java @@ -27,9 +27,15 @@ import java.util.Properties; */ public class CannotRenderAlignment extends ErrorMsg { + public CannotRenderAlignment ( int surr, Message rep, String from, String to, String cont, Properties param ) { super( surr, rep, from, to, cont, param ); } + + public CannotRenderAlignment ( Properties mess, int surr, String from, String cont ) { + super( mess, surr, from, cont ); + } + public String HTMLString(){ return "Cannot render alignment "+content; } diff --git a/src/fr/inrialpes/exmo/align/service/msg/EntityList.java b/src/fr/inrialpes/exmo/align/service/msg/EntityList.java index bf334567bfb7cf1cd7d50a55a2d5eb647b22a1e2..175a0b8f021ea2612bf4dc85bc43a1ec72ab5bcd 100644 --- a/src/fr/inrialpes/exmo/align/service/msg/EntityList.java +++ b/src/fr/inrialpes/exmo/align/service/msg/EntityList.java @@ -34,6 +34,10 @@ public class EntityList extends Success { super( surr, rep, from, to, cont, param ); } + public EntityList( Properties mess, int surr, String from, String cont ) { + super( mess, surr, from, cont ); + } + public String HTMLString(){ String id[] = content.split(" "); String result = "No entity."; diff --git a/src/fr/inrialpes/exmo/align/service/msg/ErrorMsg.java b/src/fr/inrialpes/exmo/align/service/msg/ErrorMsg.java index 2020ef07237bd9229e447686b5f546ec27900d32..5e8293ebf66e9f3a6a1c03392d67da06fc951144 100644 --- a/src/fr/inrialpes/exmo/align/service/msg/ErrorMsg.java +++ b/src/fr/inrialpes/exmo/align/service/msg/ErrorMsg.java @@ -31,6 +31,11 @@ public class ErrorMsg extends Message { public ErrorMsg ( int surr, Message rep, String from, String to, String cont, Properties param ) { super( surr, rep, from, to, cont, param ); } + + public ErrorMsg ( Properties mess, int surr, String from, String cont ) { + super( mess, surr, from, cont ); + } + public String HTMLString(){ String message = "Generic error: "+content; if ( parameters != null ) { diff --git a/src/fr/inrialpes/exmo/align/service/msg/EvalResult.java b/src/fr/inrialpes/exmo/align/service/msg/EvalResult.java index 88e87324c1a2d960f9b1b454fd37185012551d76..c21b169c870b20fa27d01b46e6b9488bdff1f6ad 100644 --- a/src/fr/inrialpes/exmo/align/service/msg/EvalResult.java +++ b/src/fr/inrialpes/exmo/align/service/msg/EvalResult.java @@ -31,6 +31,12 @@ public class EvalResult extends Success { public EvalResult ( int surr, Message rep, String from, String to, String cont, Properties param ) { super( surr, rep, from, to, cont, param ); } + + public EvalResult ( Properties mess, int surr, String from, String cont, Properties param ) { + super( mess, surr, from, cont ); + parameters = param; + } + public String HTMLString(){ String results = ""; if ( getParameters() == null ) { @@ -44,6 +50,8 @@ public class EvalResult extends Success { } return results; } + + // A diff will never be rendered outside of HTML public String RESTString(){ String results = "<EvaluationResults>"; for ( String key : getParameters().stringPropertyNames() ) { diff --git a/src/fr/inrialpes/exmo/align/service/msg/Message.java b/src/fr/inrialpes/exmo/align/service/msg/Message.java index b39f3746df89b9ad6e423b59881546715916c1c7..5d8691227a67888075ba30c990f43157cbf7b7db 100644 --- a/src/fr/inrialpes/exmo/align/service/msg/Message.java +++ b/src/fr/inrialpes/exmo/align/service/msg/Message.java @@ -46,6 +46,14 @@ public class Message { parameters = param; } + public Message ( Properties mess, int surr, String from, String cont ) { + surrogate = surr; + //inReplyTo = (Message)mess.getProperty( "msgid" ); + receiver = mess.getProperty( "sender" ); + sender = from; + content = cont; + } + public String HTMLString(){ return "<h1>Message</h1><dl><dt>id:</dt><dd>"+surrogate+"</dd><dt>sender:</dt><dd>"+sender+"</dd><dt>receiver:</dt><dd>"+receiver+"</dd><dt>in-reply-to:</dt><dd>"+inReplyTo+"</dd><dt>content:</dt><dd>"+content+"</dd></dl>"; } diff --git a/src/fr/inrialpes/exmo/align/service/msg/NonConformParameters.java b/src/fr/inrialpes/exmo/align/service/msg/NonConformParameters.java index 6731707f612ad94e1059ed81fb41e0ff794be27b..78a3e129246e6661d850c82f3648808f4a61687b 100644 --- a/src/fr/inrialpes/exmo/align/service/msg/NonConformParameters.java +++ b/src/fr/inrialpes/exmo/align/service/msg/NonConformParameters.java @@ -27,10 +27,15 @@ import java.util.Properties; */ public class NonConformParameters extends ErrorMsg { + public NonConformParameters ( int surr, Message rep, String from, String to, String cont, Properties param ) { super( surr, rep, from, to, cont, param ); } + public NonConformParameters ( Properties mess, int surr, String from, String cont ) { + super( mess, surr, from, cont ); + } + public String HTMLString(){ // Here I may display the parameters in parameters return "<h1>Non conform parameters</h1><dl><dt>id:</dt><dd>"+surrogate+"</dd><dt>sender:</dt><dd>"+sender+"</dd><dt>receiver:</dt><dd>"+receiver+"</dd><dt>in-reply-to:</dt><dd>"+inReplyTo+"</dd><dt>content:</dt><dd>"+content+"</dd></dl>"; diff --git a/src/fr/inrialpes/exmo/align/service/msg/OntologyURI.java b/src/fr/inrialpes/exmo/align/service/msg/OntologyURI.java index 8f8731902604a808a7ab4d283bb5b4ab44cbceb5..595c7e48bffc5fe8c827af05ab392bd2bd0faf65 100644 --- a/src/fr/inrialpes/exmo/align/service/msg/OntologyURI.java +++ b/src/fr/inrialpes/exmo/align/service/msg/OntologyURI.java @@ -31,6 +31,11 @@ public class OntologyURI extends Success { public OntologyURI ( int surr, Message rep, String from, String to, String cont, Properties param ) { super( surr, rep, from, to, cont, param ); } + + public OntologyURI ( Properties mess, int surr, String from, String cont ) { + super( mess, surr, from, cont ); + } + public String HTMLString(){ return "Ontology URI: "+content; } diff --git a/src/fr/inrialpes/exmo/align/service/msg/RenderedAlignment.java b/src/fr/inrialpes/exmo/align/service/msg/RenderedAlignment.java index 829f960941b36822deba5966018e55dec3cd1d4d..8b188ecf34c4967eca945758141d12e00791eb5a 100644 --- a/src/fr/inrialpes/exmo/align/service/msg/RenderedAlignment.java +++ b/src/fr/inrialpes/exmo/align/service/msg/RenderedAlignment.java @@ -31,6 +31,12 @@ public class RenderedAlignment extends Success { public RenderedAlignment ( int surr, Message rep, String from, String to, String cont, Properties param ) { super( surr, rep, from, to, cont, param ); } + + public RenderedAlignment ( Properties mess, int surr, String from, String cont ) { + super( mess, surr, from, cont ); + parameters = mess; // This is used below + } + public String RESTString(){ String method = (parameters==null)?null:parameters.getProperty( "method" ); if ( method != null && method.equals("fr.inrialpes.exmo.align.impl.renderer.RDFRendererVisitor" ) ) { diff --git a/src/fr/inrialpes/exmo/align/service/msg/RunTimeError.java b/src/fr/inrialpes/exmo/align/service/msg/RunTimeError.java index 0404bd6af59a2f8c637e5557799f25f1144aef66..a181f7c7249a97a6e84afb0375d941552988afb0 100644 --- a/src/fr/inrialpes/exmo/align/service/msg/RunTimeError.java +++ b/src/fr/inrialpes/exmo/align/service/msg/RunTimeError.java @@ -27,9 +27,15 @@ import java.util.Properties; */ public class RunTimeError extends ErrorMsg { + public RunTimeError ( int surr, Message rep, String from, String to, String cont, Properties param ) { super( surr, rep, from, to, cont, param ); } + + public RunTimeError ( Properties mess, int surr, String from, String cont ) { + super( mess, surr, from, cont ); + } + public String RESTString(){ return "<RunTimeError>"+getXMLContent()+"</RunTimeError>"; } diff --git a/src/fr/inrialpes/exmo/align/service/msg/Success.java b/src/fr/inrialpes/exmo/align/service/msg/Success.java index da13ce48734b009103cbd20e2c725dd9d4d4f04f..12596ab68ee20d4b19d6bcf403b1053c19dcee49 100644 --- a/src/fr/inrialpes/exmo/align/service/msg/Success.java +++ b/src/fr/inrialpes/exmo/align/service/msg/Success.java @@ -31,6 +31,11 @@ public class Success extends Message { public Success ( int surr, Message rep, String from, String to, String cont, Properties param ) { super( surr, rep, from, to, cont, param ); } + + public Success ( Properties mess, int surr, String from, String cont ) { + super( mess, surr, from, cont ); + } + public String RESTString(){ return "<content>"+getXMLContent()+"</content>"; } diff --git a/src/fr/inrialpes/exmo/align/service/msg/TranslatedMessage.java b/src/fr/inrialpes/exmo/align/service/msg/TranslatedMessage.java index ae35c4c88394d3b304acc89f9ead4b1d4624fa0f..7538fca4b4611429ed496dc5c26d15cfc96cd5e1 100644 --- a/src/fr/inrialpes/exmo/align/service/msg/TranslatedMessage.java +++ b/src/fr/inrialpes/exmo/align/service/msg/TranslatedMessage.java @@ -31,6 +31,11 @@ public class TranslatedMessage extends Success { public TranslatedMessage ( int surr, Message rep, String from, String to, String cont, Properties param ) { super( surr, rep, from, to, cont, param ); } + + public TranslatedMessage ( Properties mess, int surr, String from, String cont ) { + super( mess, surr, from, cont ); + } + public String HTMLString() { return content; } diff --git a/src/fr/inrialpes/exmo/align/service/msg/UnknownAlignment.java b/src/fr/inrialpes/exmo/align/service/msg/UnknownAlignment.java index bfc5998f18e8b7c10f94cf5803e59f0ab4b32951..a7949fb2f35189b58978e24c5ec63e02edd5aeff 100644 --- a/src/fr/inrialpes/exmo/align/service/msg/UnknownAlignment.java +++ b/src/fr/inrialpes/exmo/align/service/msg/UnknownAlignment.java @@ -30,6 +30,11 @@ public class UnknownAlignment extends ErrorMsg { public UnknownAlignment ( int surr, Message rep, String from, String to, String cont, Properties param ) { super( surr, rep, from, to, cont, param ); } + + public UnknownAlignment ( Properties mess, int surr, String from, String cont ) { + super( mess, surr, from, cont ); + } + public String RESTString(){ return "<UnknownAlignment>"+getXMLContent()+"</UnknownAlignment>"; } diff --git a/src/fr/inrialpes/exmo/align/service/msg/UnknownMethod.java b/src/fr/inrialpes/exmo/align/service/msg/UnknownMethod.java index 2de814b415078c0eb6491b751fa8eb90413df8e4..cac8bd30b1d059f03611acd127e54395aac04ac6 100644 --- a/src/fr/inrialpes/exmo/align/service/msg/UnknownMethod.java +++ b/src/fr/inrialpes/exmo/align/service/msg/UnknownMethod.java @@ -30,6 +30,11 @@ public class UnknownMethod extends ErrorMsg { public UnknownMethod ( int surr, Message rep, String from, String to, String cont, Properties param ) { super( surr, rep, from, to, cont, param ); } + + public UnknownMethod ( Properties mess, int surr, String from, String cont ) { + super( mess, surr, from, cont ); + } + public String HTMLString() { return "Unknown method: "+content; } diff --git a/src/fr/inrialpes/exmo/align/service/msg/UnreachableAlignment.java b/src/fr/inrialpes/exmo/align/service/msg/UnreachableAlignment.java index e512d0d3bc4504447d538b045caeadfdebbfb0aa..f2737dcf6b58fccf98bc0c29b89968480542cef7 100644 --- a/src/fr/inrialpes/exmo/align/service/msg/UnreachableAlignment.java +++ b/src/fr/inrialpes/exmo/align/service/msg/UnreachableAlignment.java @@ -30,6 +30,11 @@ public class UnreachableAlignment extends ErrorMsg { public UnreachableAlignment ( int surr, Message rep, String from, String to, String cont, Properties param ) { super( surr, rep, from, to, cont, param ); } + + public UnreachableAlignment ( Properties mess, int surr, String from, String cont ) { + super( mess, surr, from, cont ); + } + public String RESTString() { return "<UnreachableAlignment>"+getXMLContent()+"</UnreachableAlignment>"; } diff --git a/src/fr/inrialpes/exmo/align/service/msg/UnreachableOntology.java b/src/fr/inrialpes/exmo/align/service/msg/UnreachableOntology.java index ebdd67bc249ef760e0a29b4f8efc3938ea181ebd..8137010a4d9b24ed033a3cfb765fca1f8ba2bda5 100644 --- a/src/fr/inrialpes/exmo/align/service/msg/UnreachableOntology.java +++ b/src/fr/inrialpes/exmo/align/service/msg/UnreachableOntology.java @@ -30,6 +30,11 @@ public class UnreachableOntology extends ErrorMsg { public UnreachableOntology ( int surr, Message rep, String from, String to, String cont, Properties param ) { super( surr, rep, from, to, cont, param ); } + + public UnreachableOntology ( Properties mess, int surr, String from, String cont ) { + super( mess, surr, from, cont ); + } + public String RESTString() { return "<UnreachableOntology>"+getXMLContent()+"</UnreachableOntology>"; } diff --git a/src/fr/inrialpes/exmo/align/service/osgi/Service.java b/src/fr/inrialpes/exmo/align/service/osgi/Service.java index d904310235ddd6a38c23d75fee8a081de0f5be6d..8547d57618f664f9180572e12f557502699bf363 100644 --- a/src/fr/inrialpes/exmo/align/service/osgi/Service.java +++ b/src/fr/inrialpes/exmo/align/service/osgi/Service.java @@ -20,6 +20,7 @@ package fr.inrialpes.exmo.align.service.osgi; +import java.util.Properties; import java.util.Set; import java.util.Collection; import java.net.URI; @@ -61,29 +62,29 @@ public interface Service { * Basic protocol primitives *********************************************************************/ - public Message load( Message mess ); + public Message load( Properties mess ); - public Message align( Message mess ); + public Message align( Properties mess ); - public Message existingAlignments( Message mess ); + public Message existingAlignments( Properties mess ); - public Message findCorrespondences( Message mess ); + public Message findCorrespondences( Properties mess ); - public Message find( Message mess ); + public Message find( Properties mess ); - public Message translate( Message mess ); + public Message translate( Properties mess ); - public Message render( Message mess ); + public Message render( Properties mess ); /********************************************************************* * Extended protocol primitives *********************************************************************/ - public Message store( Message mess ); + public Message store( Properties mess ); - //public Message erase( Message mess ); + //public Message erase( Properties mess ); - public Message metadata( Message mess ); + public Message metadata( Properties mess ); /********************************************************************* * Extra alignment primitives @@ -92,23 +93,23 @@ public interface Service { * There is no way an alignment server could modify an alignment *********************************************************************/ - public Message trim( Message mess ); + public Message trim( Properties mess ); - public Message harden( Message mess ); + public Message harden( Properties mess ); - public Message inverse( Message mess ); + public Message inverse( Properties mess ); - public Message meet( Message mess ); + public Message meet( Properties mess ); - public Message join( Message mess ); + public Message join( Properties mess ); - public Message compose( Message mess ); + public Message compose( Properties mess ); - public Message eval( Message mess ); + public Message eval( Properties mess ); - public Message diff( Message mess ); + public Message diff( Properties mess ); - public boolean storedAlignment( Message mess ); + public boolean storedAlignment( Properties mess ); /********************************************************************* * Network of alignment server implementation