diff --git a/src/fr/inrialpes/exmo/align/impl/edoal/EDOALVisitor.java b/src/fr/inrialpes/exmo/align/impl/edoal/EDOALVisitor.java index e60dfbed3fabbfdaf5659021a145cb60fac486ca..8d784e9087b8ff5d06b7d54ad9eb7e3d3833648f 100644 --- a/src/fr/inrialpes/exmo/align/impl/edoal/EDOALVisitor.java +++ b/src/fr/inrialpes/exmo/align/impl/edoal/EDOALVisitor.java @@ -24,37 +24,24 @@ import org.semanticweb.owl.align.AlignmentException; public interface EDOALVisitor { - //public void visit( Id o ) throws AlignmentException; - public void visit( PathExpression o ) throws AlignmentException; - public void visit( Expression o ) throws AlignmentException; - public void visit( ClassExpression o ) throws AlignmentException; public void visit( ClassId o ) throws AlignmentException; public void visit( ClassConstruction o ) throws AlignmentException; - public void visit( ClassRestriction o ) throws AlignmentException; public void visit( ClassTypeRestriction o ) throws AlignmentException; public void visit( ClassDomainRestriction o ) throws AlignmentException; public void visit( ClassValueRestriction o ) throws AlignmentException; public void visit( ClassOccurenceRestriction o ) throws AlignmentException; - public void visit( PropertyExpression o ) throws AlignmentException; public void visit( PropertyId o ) throws AlignmentException; public void visit( PropertyConstruction o ) throws AlignmentException; - public void visit( PropertyRestriction o ) throws AlignmentException; public void visit( PropertyDomainRestriction o ) throws AlignmentException; public void visit( PropertyTypeRestriction o ) throws AlignmentException; public void visit( PropertyValueRestriction o ) throws AlignmentException; - public void visit( RelationExpression o ) throws AlignmentException; public void visit( RelationId o ) throws AlignmentException; public void visit( RelationConstruction o ) throws AlignmentException; - public void visit( RelationRestriction o ) throws AlignmentException; public void visit( RelationDomainRestriction o ) throws AlignmentException; public void visit( RelationCoDomainRestriction o ) throws AlignmentException; - public void visit( InstanceExpression o ) throws AlignmentException; public void visit( InstanceId o ) throws AlignmentException; public void visit( Transformation o ) throws AlignmentException; - //public void visit( TransfService o ) throws AlignmentException; - //public void visit( ValueConstraint o ) throws AlignmentException; - public void visit( ValueExpression o ) throws AlignmentException; public void visit( Value o ) throws AlignmentException; public void visit( Apply o ) throws AlignmentException; public void visit( Datatype o ) throws AlignmentException; diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/OWLAxiomsRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/OWLAxiomsRendererVisitor.java index c5e12e2de9ae12f8d70bbff6c27e08f47ec9475b..f9544b4e5a73192205c5657f14f694e37117efea 100644 --- a/src/fr/inrialpes/exmo/align/impl/renderer/OWLAxiomsRendererVisitor.java +++ b/src/fr/inrialpes/exmo/align/impl/renderer/OWLAxiomsRendererVisitor.java @@ -50,7 +50,6 @@ import fr.inrialpes.exmo.align.impl.edoal.Expression; import fr.inrialpes.exmo.align.impl.edoal.ClassExpression; import fr.inrialpes.exmo.align.impl.edoal.ClassId; import fr.inrialpes.exmo.align.impl.edoal.ClassConstruction; -import fr.inrialpes.exmo.align.impl.edoal.ClassRestriction; import fr.inrialpes.exmo.align.impl.edoal.ClassTypeRestriction; import fr.inrialpes.exmo.align.impl.edoal.ClassDomainRestriction; import fr.inrialpes.exmo.align.impl.edoal.ClassValueRestriction; @@ -58,14 +57,12 @@ import fr.inrialpes.exmo.align.impl.edoal.ClassOccurenceRestriction; import fr.inrialpes.exmo.align.impl.edoal.PropertyExpression; import fr.inrialpes.exmo.align.impl.edoal.PropertyId; import fr.inrialpes.exmo.align.impl.edoal.PropertyConstruction; -import fr.inrialpes.exmo.align.impl.edoal.PropertyRestriction; import fr.inrialpes.exmo.align.impl.edoal.PropertyDomainRestriction; import fr.inrialpes.exmo.align.impl.edoal.PropertyTypeRestriction; import fr.inrialpes.exmo.align.impl.edoal.PropertyValueRestriction; import fr.inrialpes.exmo.align.impl.edoal.RelationExpression; import fr.inrialpes.exmo.align.impl.edoal.RelationId; import fr.inrialpes.exmo.align.impl.edoal.RelationConstruction; -import fr.inrialpes.exmo.align.impl.edoal.RelationRestriction; import fr.inrialpes.exmo.align.impl.edoal.RelationDomainRestriction; import fr.inrialpes.exmo.align.impl.edoal.RelationCoDomainRestriction; import fr.inrialpes.exmo.align.impl.edoal.InstanceExpression; @@ -385,18 +382,6 @@ public class OWLAxiomsRendererVisitor extends IndentedRendererVisitor implements // ******* EDOAL - public void visit( Expression o ) throws AlignmentException { - throw new AlignmentException( "Cannot dispatch generic Expression "+o ); - } - - public void visit( final PathExpression p ) throws AlignmentException { - throw new AlignmentException( "Cannot dispatch generic PathExpression "+p ); - } - - public void visit( final ClassExpression e ) throws AlignmentException { - throw new AlignmentException( "Cannot dispatch ClassExpression "+e ); - } - public void visit( final ClassId e ) throws AlignmentException { if ( toProcess == null ) { indentedOutput("<owl:Class "+SyntaxElement.RDF_ABOUT.print(DEF)+"=\""+e.getURI()+"\"/>"); @@ -459,10 +444,6 @@ public class OWLAxiomsRendererVisitor extends IndentedRendererVisitor implements } } - public void visit(final ClassRestriction e) throws AlignmentException { - throw new AlignmentException( "Cannot dispatch ClassExpression "+e ); - } - public void visit( final ClassValueRestriction c ) throws AlignmentException { Relation toProcessNext = toProcess; toProcess = null; @@ -572,10 +553,6 @@ public class OWLAxiomsRendererVisitor extends IndentedRendererVisitor implements indentedOutput("</owl:Restriction>"); } - public void visit(final PropertyExpression e) throws AlignmentException { - throw new AlignmentException( "Cannot dispatch ClassExpression "+e ); - } - public void visit(final PropertyId e) throws AlignmentException { if ( toProcess == null ) { indentedOutput("<owl:DatatypeProperty "+SyntaxElement.RDF_ABOUT.print(DEF)+"=\""+e.getURI()+"\"/>"); @@ -629,10 +606,6 @@ public class OWLAxiomsRendererVisitor extends IndentedRendererVisitor implements decreaseIndent(); indentedOutput("</owl:DatatypePropety>"); } - - public void visit(final PropertyRestriction e) throws AlignmentException { - throw new AlignmentException( "Cannot dispatch ClassExpression "+e ); - } public void visit(final PropertyValueRestriction c) throws AlignmentException { Relation toProcessNext = toProcess; @@ -720,10 +693,6 @@ public class OWLAxiomsRendererVisitor extends IndentedRendererVisitor implements decreaseIndent(); indentedOutput("</owl:DatatypeProperty>"); } - - public void visit( final RelationExpression e ) throws AlignmentException { - throw new AlignmentException( "Cannot dispatch ClassExpression "+e ); - } public void visit( final RelationId e ) throws AlignmentException { if ( toProcess == null ) { @@ -787,10 +756,6 @@ public class OWLAxiomsRendererVisitor extends IndentedRendererVisitor implements decreaseIndent(); indentedOutput("</owl:ObjectProperty>"); } - - public void visit( final RelationRestriction e ) throws AlignmentException { - throw new AlignmentException( "Cannot dispatch ClassExpression "+e ); - } public void visit(final RelationCoDomainRestriction c) throws AlignmentException { Relation toProcessNext = toProcess; @@ -823,10 +788,6 @@ public class OWLAxiomsRendererVisitor extends IndentedRendererVisitor implements decreaseIndent(); indentedOutput("</owl:ObjectProperty>"); } - - public void visit( final InstanceExpression e ) throws AlignmentException { - throw new AlignmentException( "Cannot handle InstanceExpression "+e ); - } public void visit( final InstanceId e ) throws AlignmentException { if ( toProcess == null ) { @@ -842,10 +803,6 @@ public class OWLAxiomsRendererVisitor extends IndentedRendererVisitor implements indentedOutput("</owl:Individual>"); } } - - public void visit( final ValueExpression e ) throws AlignmentException { - throw new AlignmentException( "Cannot dispatch generic ValueExpression "+e ); - } // Unused: see ClassValueRestriction above public void visit( final Value e ) throws AlignmentException { diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/RDFRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/RDFRendererVisitor.java index 3ac5b2c3c4108ce26b03d9bc4fda9070a284e105..49d936101dc8d6300f68660dbcb04439b1c42661 100644 --- a/src/fr/inrialpes/exmo/align/impl/renderer/RDFRendererVisitor.java +++ b/src/fr/inrialpes/exmo/align/impl/renderer/RDFRendererVisitor.java @@ -52,7 +52,6 @@ import fr.inrialpes.exmo.align.impl.edoal.Expression; import fr.inrialpes.exmo.align.impl.edoal.ClassExpression; import fr.inrialpes.exmo.align.impl.edoal.ClassId; import fr.inrialpes.exmo.align.impl.edoal.ClassConstruction; -import fr.inrialpes.exmo.align.impl.edoal.ClassRestriction; import fr.inrialpes.exmo.align.impl.edoal.ClassTypeRestriction; import fr.inrialpes.exmo.align.impl.edoal.ClassDomainRestriction; import fr.inrialpes.exmo.align.impl.edoal.ClassValueRestriction; @@ -60,14 +59,12 @@ import fr.inrialpes.exmo.align.impl.edoal.ClassOccurenceRestriction; import fr.inrialpes.exmo.align.impl.edoal.PropertyExpression; import fr.inrialpes.exmo.align.impl.edoal.PropertyId; import fr.inrialpes.exmo.align.impl.edoal.PropertyConstruction; -import fr.inrialpes.exmo.align.impl.edoal.PropertyRestriction; import fr.inrialpes.exmo.align.impl.edoal.PropertyDomainRestriction; import fr.inrialpes.exmo.align.impl.edoal.PropertyTypeRestriction; import fr.inrialpes.exmo.align.impl.edoal.PropertyValueRestriction; import fr.inrialpes.exmo.align.impl.edoal.RelationExpression; import fr.inrialpes.exmo.align.impl.edoal.RelationId; import fr.inrialpes.exmo.align.impl.edoal.RelationConstruction; -import fr.inrialpes.exmo.align.impl.edoal.RelationRestriction; import fr.inrialpes.exmo.align.impl.edoal.RelationDomainRestriction; import fr.inrialpes.exmo.align.impl.edoal.RelationCoDomainRestriction; import fr.inrialpes.exmo.align.impl.edoal.InstanceExpression; @@ -311,19 +308,7 @@ public class RDFRendererVisitor extends IndentedRendererVisitor implements Align rel.write( writer ); }; - - public void visit( Expression o ) throws AlignmentException { - throw new AlignmentException( "Cannot dispatch Expression "+o ); - } - - public void visit( final PathExpression p ) throws AlignmentException { - throw new AlignmentException( "Cannot dispatch PathExpression "+p ); - } - - public void visit( final ClassExpression e ) throws AlignmentException { - throw new AlignmentException( "Cannot dispatch ClassExpression "+e ); - } - + // ********** EDOAL public void renderVariables( Expression expr ) { if ( expr.getVariable() != null ) { @@ -362,11 +347,7 @@ public class RDFRendererVisitor extends IndentedRendererVisitor implements Align decreaseIndent(); indentedOutput("</"+SyntaxElement.CLASS_EXPR.print(DEF)+">"); } - - public void visit(final ClassRestriction e) throws AlignmentException { - throw new AlignmentException( "Cannot dispatch ClassExpression "+e ); - } - + public void visit( final ClassValueRestriction c ) throws AlignmentException { indentedOutput("<"+SyntaxElement.VALUE_COND.print(DEF)); if ( isPattern ) renderVariables( c ); @@ -460,10 +441,6 @@ public class RDFRendererVisitor extends IndentedRendererVisitor implements Align indentedOutput("</"+SyntaxElement.OCCURENCE_COND.print(DEF)+">"); } - public void visit(final PropertyExpression e) throws AlignmentException { - throw new AlignmentException( "Cannot dispatch ClassExpression "+e ); - } - public void visit(final PropertyId e) throws AlignmentException { indentedOutput("<"+SyntaxElement.PROPERTY_EXPR.print(DEF)); if ( e.getURI() != null ){ @@ -503,10 +480,6 @@ public class RDFRendererVisitor extends IndentedRendererVisitor implements Align indentedOutput("</"+SyntaxElement.PROPERTY_EXPR.print(DEF)+">"); } - public void visit(final PropertyRestriction e) throws AlignmentException { - throw new AlignmentException( "Cannot dispatch ClassExpression "+e ); - } - public void visit(final PropertyValueRestriction c) throws AlignmentException { indentedOutput("<"+SyntaxElement.PROPERTY_VALUE_COND.print(DEF)); if ( isPattern ) renderVariables( c ); @@ -551,10 +524,6 @@ public class RDFRendererVisitor extends IndentedRendererVisitor implements Align indentedOutput("</"+SyntaxElement.PROPERTY_TYPE_COND.print(DEF)+">"); } - public void visit( final RelationExpression e ) throws AlignmentException { - throw new AlignmentException( "Cannot dispatch ClassExpression "+e ); - } - public void visit( final RelationId e ) throws AlignmentException { indentedOutput("<"+SyntaxElement.RELATION_EXPR.print(DEF)); if ( e.getURI() != null ) { @@ -593,10 +562,6 @@ public class RDFRendererVisitor extends IndentedRendererVisitor implements Align decreaseIndent(); indentedOutput("</"+SyntaxElement.RELATION_EXPR.print(DEF)+">"); } - - public void visit( final RelationRestriction e ) throws AlignmentException { - throw new AlignmentException( "Cannot dispatch ClassExpression "+e ); - } public void visit(final RelationCoDomainRestriction c) throws AlignmentException { indentedOutput("<"+SyntaxElement.RELATION_CODOMAIN_COND.print(DEF)); @@ -627,10 +592,6 @@ public class RDFRendererVisitor extends IndentedRendererVisitor implements Align decreaseIndent(); indentedOutput("</"+SyntaxElement.RELATION_DOMAIN_COND.print(DEF)+">"); } - - public void visit( final InstanceExpression e ) throws AlignmentException { - throw new AlignmentException( "Cannot handle InstanceExpression "+e ); - } public void visit( final InstanceId e ) throws AlignmentException { indentedOutput("<"+SyntaxElement.INSTANCE_EXPR.print(DEF)); @@ -642,10 +603,6 @@ public class RDFRendererVisitor extends IndentedRendererVisitor implements Align writer.print("/>"); } - public void visit( final ValueExpression e ) throws AlignmentException { - throw new AlignmentException( "Cannot dispatch ClassExpression "+e ); - } - public void visit( final Value e ) throws AlignmentException { indentedOutput("<"+SyntaxElement.LITERAL.print(DEF)+" "); if ( e.getType() != null ) { diff --git a/src/fr/inrialpes/exmo/align/parser/TypeCheckingVisitor.java b/src/fr/inrialpes/exmo/align/parser/TypeCheckingVisitor.java index f5f9c357dc864da7acfc5734529548773abb58ae..7b485fbd95ad74d5b49a1e3d8f6354dd68b44c57 100644 --- a/src/fr/inrialpes/exmo/align/parser/TypeCheckingVisitor.java +++ b/src/fr/inrialpes/exmo/align/parser/TypeCheckingVisitor.java @@ -34,30 +34,27 @@ import org.semanticweb.owl.align.AlignmentException; import fr.inrialpes.exmo.align.impl.Namespace; import fr.inrialpes.exmo.align.parser.SyntaxElement.Constructor; +import fr.inrialpes.exmo.align.impl.edoal.EDOALAlignment; +import fr.inrialpes.exmo.align.impl.edoal.EDOALCell; + import fr.inrialpes.exmo.align.impl.edoal.PathExpression; import fr.inrialpes.exmo.align.impl.edoal.Expression; import fr.inrialpes.exmo.align.impl.edoal.ClassExpression; import fr.inrialpes.exmo.align.impl.edoal.ClassId; import fr.inrialpes.exmo.align.impl.edoal.ClassConstruction; -import fr.inrialpes.exmo.align.impl.edoal.ClassRestriction; import fr.inrialpes.exmo.align.impl.edoal.ClassTypeRestriction; import fr.inrialpes.exmo.align.impl.edoal.ClassDomainRestriction; import fr.inrialpes.exmo.align.impl.edoal.ClassValueRestriction; import fr.inrialpes.exmo.align.impl.edoal.ClassOccurenceRestriction; -import fr.inrialpes.exmo.align.impl.edoal.PropertyExpression; import fr.inrialpes.exmo.align.impl.edoal.PropertyId; import fr.inrialpes.exmo.align.impl.edoal.PropertyConstruction; -import fr.inrialpes.exmo.align.impl.edoal.PropertyRestriction; import fr.inrialpes.exmo.align.impl.edoal.PropertyDomainRestriction; import fr.inrialpes.exmo.align.impl.edoal.PropertyTypeRestriction; import fr.inrialpes.exmo.align.impl.edoal.PropertyValueRestriction; -import fr.inrialpes.exmo.align.impl.edoal.RelationExpression; import fr.inrialpes.exmo.align.impl.edoal.RelationId; import fr.inrialpes.exmo.align.impl.edoal.RelationConstruction; -import fr.inrialpes.exmo.align.impl.edoal.RelationRestriction; import fr.inrialpes.exmo.align.impl.edoal.RelationDomainRestriction; import fr.inrialpes.exmo.align.impl.edoal.RelationCoDomainRestriction; -import fr.inrialpes.exmo.align.impl.edoal.InstanceExpression; import fr.inrialpes.exmo.align.impl.edoal.InstanceId; import fr.inrialpes.exmo.align.impl.edoal.Transformation; @@ -67,9 +64,6 @@ import fr.inrialpes.exmo.align.impl.edoal.Apply; import fr.inrialpes.exmo.align.impl.edoal.Datatype; import fr.inrialpes.exmo.align.impl.edoal.Comparator; -import fr.inrialpes.exmo.align.impl.edoal.EDOALAlignment; -import fr.inrialpes.exmo.align.impl.edoal.EDOALCell; - /** * Checks if an EDOALAlignment is well-typed * This is called by AlignmentParser (with debug>0) @@ -96,13 +90,14 @@ public class TypeCheckingVisitor { nslist = new Hashtable<URI,TYPE>(); } - public TYPE visit( Visitable o ) throws AlignmentException { + /* + public TYPE visit( Visitable o ) throws AlignmentException { throw new AlignmentException( "Cannot type check all" ); } public TYPE visit( Expression o ) throws AlignmentException { throw new AlignmentException("Cannot export abstract Expression: "+o ); - } + }*/ public TYPE visit( EDOALAlignment align ) throws AlignmentException { alignment = align; @@ -125,6 +120,10 @@ public class TypeCheckingVisitor { return TYPE.ANY; } + public TYPE visit( Relation o ) throws AlignmentException { + throw new AlignmentException("This is not used yet and not implemented: "+o ); + } + public boolean compatible( TYPE t1, TYPE t2 ) { if ( t1 == TYPE.ERROR || t2 == TYPE.ERROR ) return true; //nomore if ( t1 == TYPE.ANY || t2 == TYPE.ANY || t1 == t2 ) return true; @@ -155,7 +154,7 @@ public class TypeCheckingVisitor { if ( !compatible( tp2, TYPE.VALUE ) ) return raiseError( null, tp2, TYPE.VALUE ); return TYPE.ANY; } - + /* public TYPE visit( final PathExpression p ) throws AlignmentException { throw new AlignmentException( "Cannot dispatch PathExpression "+p ); } @@ -163,7 +162,7 @@ public class TypeCheckingVisitor { public TYPE visit( final ClassExpression e ) throws AlignmentException { throw new AlignmentException( "Cannot dispatch ClassExpression "+e ); } - + */ public TYPE visit( final ClassId e ) throws AlignmentException { TYPE type = nslist.get( e.getURI() ); if ( type == null ) nslist.put( e.getURI(), TYPE.CLASS ); @@ -184,11 +183,11 @@ public class TypeCheckingVisitor { if ( allright ) return TYPE.CLASS; else return TYPE.ERROR; } - + /* public TYPE visit(final ClassRestriction e) throws AlignmentException { throw new AlignmentException( "Cannot dispatch ClassRestriction "+e ); } - + */ public TYPE visit( final ClassValueRestriction c ) throws AlignmentException { TYPE ptype = c.getRestrictionPath().accept( this ); TYPE tp = c.getValue().accept( this ); @@ -220,11 +219,11 @@ public class TypeCheckingVisitor { !compatible( ptype, TYPE.PROPERTY ) ) return raiseError( null, ptype, TYPE.RELATION ); return TYPE.CLASS; } - + /* public TYPE visit(final PropertyExpression e) throws AlignmentException { throw new AlignmentException( "Cannot dispatch PropertyExpression "+e ); } - + */ public TYPE visit(final PropertyId e) throws AlignmentException { TYPE type = nslist.get( e.getURI() ); if ( type == null ) nslist.put( e.getURI(), TYPE.PROPERTY ); @@ -245,11 +244,11 @@ public class TypeCheckingVisitor { if ( allright ) return TYPE.PROPERTY; else return TYPE.ERROR; } - + /* public TYPE visit(final PropertyRestriction e) throws AlignmentException { throw new AlignmentException( "Cannot dispatch PropertyRestriction "+e ); } - + */ public TYPE visit(final PropertyValueRestriction c) throws AlignmentException { //c.getComparator().getURI(); // do we test the operator? TYPE type = c.getValue().accept( this ); @@ -268,11 +267,11 @@ public class TypeCheckingVisitor { if ( !compatible( type, TYPE.DATATYPE ) ) return raiseError( null, type, TYPE.DATATYPE ); return TYPE.PROPERTY; } - + /* public TYPE visit( final RelationExpression e ) throws AlignmentException { throw new AlignmentException( "Cannot dispatch RelationExpression "+e ); } - + */ public TYPE visit( final RelationId e ) throws AlignmentException { TYPE type = nslist.get( e.getURI() ); if ( type == null ) nslist.put( e.getURI(), TYPE.RELATION ); @@ -293,11 +292,11 @@ public class TypeCheckingVisitor { if ( allright ) return TYPE.RELATION; else return TYPE.ERROR; } - + /* public TYPE visit( final RelationRestriction e ) throws AlignmentException { throw new AlignmentException( "Cannot dispatch RelationRestriction "+e ); } - + */ public TYPE visit(final RelationCoDomainRestriction c) throws AlignmentException { TYPE type = c.getCoDomain().accept( this ); if ( !compatible( type, TYPE.CLASS ) ) return raiseError( null, type, TYPE.CLASS ); @@ -309,10 +308,10 @@ public class TypeCheckingVisitor { if ( !compatible( type, TYPE.CLASS ) ) return raiseError( null, type, TYPE.CLASS ); return TYPE.RELATION; } - + /* public TYPE visit( final InstanceExpression e ) throws AlignmentException { throw new AlignmentException( "Cannot handle InstanceExpression "+e ); - } + }*/ public TYPE visit( final InstanceId e ) throws AlignmentException { TYPE type = nslist.get( e.getURI() );