From f07e8ccbaafdb0c96326fd879ffa57dd7a6735ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Euzenat?= <Jerome.Euzenat@inria.fr> Date: Sat, 9 Mar 2013 18:18:05 +0000 Subject: [PATCH] - updated with new iddl; new IDDLReasoner interface --- lib/iddl/iddl.jar | Bin 50694 -> 50794 bytes lib/iddl/iddl.pom | 4 +- .../exmo/align/impl/IDDLOntologyNetwork.java | 35 ++++++++++-------- .../align/impl/eval/SemPRecEvaluator.java | 32 +++++++++------- .../owl/align/LogicOntologyNetwork.java | 8 ++-- test/src/READMETest.java | 2 +- 6 files changed, 45 insertions(+), 36 deletions(-) diff --git a/lib/iddl/iddl.jar b/lib/iddl/iddl.jar index 74b8fb8970b9164cf3a3a813df5ee16e48c4ebf3..5947b750ed8aab6089c8d9f5b1a0a791fcc60b50 100644 GIT binary patch delta 29203 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 Xzt`m~=l@X`%KS$sF$9yQzsCO`NMwud delta 29153 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 diff --git a/lib/iddl/iddl.pom b/lib/iddl/iddl.pom index 201fefb0..42795d5a 100644 --- a/lib/iddl/iddl.pom +++ b/lib/iddl/iddl.pom @@ -3,8 +3,8 @@ <groupId>fr.paris8.iut.info.iddl</groupId> <artifactId>iddl</artifactId> - <version>1.4d</version> - <!-- Unreleased version of 2013-03-01 --> + <version>1.4e</version> + <!-- Unreleased version of 2013-03-06 --> <name>Integrated Distributed Description Logic</name> <description>A Resonner for Integrated Distributed Description Logic</description> <licenses> diff --git a/src/fr/inrialpes/exmo/align/impl/IDDLOntologyNetwork.java b/src/fr/inrialpes/exmo/align/impl/IDDLOntologyNetwork.java index efe7a817..1955813e 100644 --- a/src/fr/inrialpes/exmo/align/impl/IDDLOntologyNetwork.java +++ b/src/fr/inrialpes/exmo/align/impl/IDDLOntologyNetwork.java @@ -25,6 +25,7 @@ import java.lang.Iterable; import java.util.Enumeration; import java.util.Iterator; import java.util.Set; +import java.util.ArrayList; import java.util.HashSet; import java.util.Hashtable; import java.net.URI; @@ -49,21 +50,24 @@ import fr.paris8.iut.info.iddl.conf.Semantics; public class IDDLOntologyNetwork extends BasicOntologyNetwork implements LogicOntologyNetwork { IDDLReasoner reasoner = null; - String semantics = ""; + String semantics = "DL"; - protected void init(){ + protected void init() throws AlignmentException { + //for( URI u : getOntologies() ){ + // reasoner.addOntology( u ); + //} + ArrayList<Alignment> allist = new ArrayList<Alignment>(); + for( Alignment al : alignments ){ + //reasoner.addAlignment( al ); + allist.add( al ); + } if ( reasoner == null ){ - if ( semantics.equals("DL") ) { - reasoner = new IDDLReasoner( Semantics.DL ); - } else { - reasoner = new IDDLReasoner( Semantics.IDDL ); - } - for( URI u : getOntologies() ){ - reasoner.addOntology( u ); - } - for( Alignment al : alignments ){ - reasoner.addAlignment( al ); + try { + reasoner = new IDDLReasoner( allist ); + } catch ( IDDLException iddlex ) { + throw new AlignmentException( "Cannot initialise IDDLReasoner", iddlex ); } + setSemantics( semantics ); } } @@ -76,17 +80,16 @@ public class IDDLOntologyNetwork extends BasicOntologyNetwork implements LogicOn public String getSemantics(){ return semantics; }; - public boolean isConsistent(){ + public boolean isConsistent() throws AlignmentException { init(); return reasoner.isConsistent(); }; - public boolean isEntailed( Alignment al ) { + public boolean isEntailed( Alignment al ) throws AlignmentException { init(); try { return reasoner.isEntailed( al ); } catch ( IDDLException idex ) { - idex.printStackTrace(); - return false; + throw new AlignmentException( "Cannot test entailment", idex ); } }; diff --git a/src/fr/inrialpes/exmo/align/impl/eval/SemPRecEvaluator.java b/src/fr/inrialpes/exmo/align/impl/eval/SemPRecEvaluator.java index b0103186..3e5b00fa 100644 --- a/src/fr/inrialpes/exmo/align/impl/eval/SemPRecEvaluator.java +++ b/src/fr/inrialpes/exmo/align/impl/eval/SemPRecEvaluator.java @@ -86,6 +86,7 @@ import java.util.Properties; import java.util.Enumeration; import java.util.Iterator; import java.util.Set; +import java.util.ArrayList; import java.io.PrintWriter; import java.net.URI; @@ -100,7 +101,7 @@ import java.net.URI; public class SemPRecEvaluator extends PRecEvaluator implements Evaluator { - final Logger logger = LoggerFactory.getLogger( SemPRecEvaluator.class ); + final static Logger logger = LoggerFactory.getLogger( SemPRecEvaluator.class ); private int nbfoundentailed = 0; // nb of returned cells entailed by the reference alignment private int nbexpectedentailed = 0; // nb of reference cells entailed by returned alignment @@ -114,7 +115,7 @@ public class SemPRecEvaluator extends PRecEvaluator implements Evaluator { **/ public SemPRecEvaluator( Alignment al1, Alignment al2) throws AlignmentException { super( al1, al2 ); - logger.info( "Created one SemPREvaluator" ); + logger.info( "Created a SemPREvaluator" ); convertToObjectAlignments( al1, al2 ); } @@ -169,13 +170,17 @@ public class SemPRecEvaluator extends PRecEvaluator implements Evaluator { } public int nbEntailedCorrespondences( ObjectAlignment al1, ObjectAlignment al2 ) throws AlignmentException { - logger.debug( "Computing entailment (semantics: {})", semantics ); + logger.trace( "Computing entailment (semantics: {})", semantics ); if ( semantics != null ) { // IDDL - IDDLReasoner iddlreasoner = new IDDLReasoner( semantics ); - loadOntology( iddlreasoner, ((BasicAlignment)al1).getOntologyObject1() ); - loadOntology( iddlreasoner, ((BasicAlignment)al1).getOntologyObject2() ); - iddlreasoner.addAlignment( al1 ); - reasoner = iddlreasoner; + ArrayList<Alignment> allist = new ArrayList<Alignment>(); + allist.add( al1 ); + try { + IDDLReasoner iddlreasoner = new IDDLReasoner( allist ); + iddlreasoner.setSemantics( semantics ); + reasoner = iddlreasoner; + } catch ( IDDLException idex ) { + throw new AlignmentException( "Cannot create IDDLReasoner", idex ); + } } else { // Hermit loadPipedAlignedOntologies( al1 ); } @@ -254,8 +259,8 @@ public class SemPRecEvaluator extends PRecEvaluator implements Evaluator { } manager = OWLManager.createOWLOntologyManager(); - logger.debug( "{} ----> {}", align.getOntology1URI(), align.getFile1() ); - logger.debug( "{} ----> {}", align.getOntology2URI(), align.getFile2() ); + //logger.trace( "{} ----> {}", align.getOntology1URI(), align.getFile1() ); + //logger.trace( "{} ----> {}", align.getOntology2URI(), align.getFile2() ); manager.addIRIMapper(new SimpleIRIMapper( IRI.create( align.getOntology1URI() ), IRI.create( align.getFile1() ) ) ); manager.addIRIMapper(new SimpleIRIMapper( IRI.create( align.getOntology2URI() ), @@ -300,8 +305,8 @@ public class SemPRecEvaluator extends PRecEvaluator implements Evaluator { // Load the ontology manager = OWLManager.createOWLOntologyManager(); - logger.debug( "{} ----> {}", align.getOntology1URI(), align.getFile1() ); - logger.debug( "{} ----> {}", align.getOntology2URI(), align.getFile2() ); + //logger.trace( "{} ----> {}", align.getOntology1URI(), align.getFile1() ); + //logger.trace( "{} ----> {}", align.getOntology2URI(), align.getFile2() ); manager.addIRIMapper(new SimpleIRIMapper( IRI.create( align.getOntology1URI() ), IRI.create( align.getFile1() ) ) ); manager.addIRIMapper(new SimpleIRIMapper( IRI.create( align.getOntology2URI() ), @@ -392,12 +397,13 @@ public class SemPRecEvaluator extends PRecEvaluator implements Evaluator { } // load ontology for the IDDLReasoner + /* public void loadOntology( IDDLReasoner reasoner, Object onto ) { Ontology oo = (Ontology)onto; URI f = oo.getFile(); if ( f == null ) f = oo.getURI(); reasoner.addOntology( f ); - } + }*/ } diff --git a/src/org/semanticweb/owl/align/LogicOntologyNetwork.java b/src/org/semanticweb/owl/align/LogicOntologyNetwork.java index 7b54ff85..e605084e 100644 --- a/src/org/semanticweb/owl/align/LogicOntologyNetwork.java +++ b/src/org/semanticweb/owl/align/LogicOntologyNetwork.java @@ -1,7 +1,7 @@ /* * $Id$ * - * Copyright (C) INRIA, 2009 + * Copyright (C) INRIA, 2009, 2013 * * 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 @@ -39,8 +39,8 @@ public interface LogicOntologyNetwork extends OntologyNetwork { public void setSemantics( String s ); public String getSemantics(); - public boolean isConsistent(); - public boolean isEntailed( Alignment al ); - //public boolean isEntailed( URI ontology, Object axiom ); + public boolean isConsistent() throws AlignmentException; + public boolean isEntailed( Alignment al ) throws AlignmentException; + //public boolean isEntailed( URI ontology, Object axiom ) throws AlignmentException; } diff --git a/test/src/READMETest.java b/test/src/READMETest.java index bdef873a..bbee258b 100644 --- a/test/src/READMETest.java +++ b/test/src/READMETest.java @@ -337,7 +337,7 @@ $ java -cp lib/procalign.jar fr.inrialpes.exmo.align.cli.EvalAlign -i fr.inrialp assertEquals( eval.getOverall(), 0.5 ); } - @Test(groups = { "full", "sem" }, dependsOnMethods = {"routineEvalTest"}, expectedExceptions = fr.paris8.iut.info.iddl.IDDLRuntimeException.class) + @Test(groups = { "full", "sem" }, dependsOnMethods = {"routineEvalTest"}, expectedExceptions = org.semanticweb.owl.align.AlignmentException.class) public void semanticIDDLEvalTest() throws Exception { AlignmentParser aparser1 = new AlignmentParser( 0 ); assertNotNull( aparser1 ); -- GitLab