From: <lor...@us...> - 2013-05-03 08:49:20
|
Revision: 3940 http://sourceforge.net/p/dl-learner/code/3940 Author: lorenz_b Date: 2013-05-03 08:49:17 +0000 (Fri, 03 May 2013) Log Message: ----------- Added axiomtype column. Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/algorithms/pattern/OWLAxiomPatternFinder.java trunk/components-core/src/main/java/org/dllearner/algorithms/pattern/OWLAxiomRenamer.java Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/pattern/OWLAxiomPatternFinder.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/pattern/OWLAxiomPatternFinder.java 2013-05-03 08:48:11 UTC (rev 3939) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/pattern/OWLAxiomPatternFinder.java 2013-05-03 08:49:17 UTC (rev 3940) @@ -81,7 +81,7 @@ private OWLObjectRenderer axiomRenderer = new ManchesterOWLSyntaxOWLObjectRendererImpl(); - private boolean randomOrder = true; + private boolean randomOrder = false; public OWLAxiomPatternFinder(OWLOntologyDataset dataset) { @@ -113,7 +113,7 @@ ", abox_axioms, classes, object_properties, data_properties, individuals) VALUES(?,?,?,?,?,?,?,?,?,?,?)"); insertOntologyErrorPs = conn.prepareStatement("INSERT INTO Ontology (url, iri, repository) VALUES(?,?,?)"); selectPatternIdPs = conn.prepareStatement("SELECT id FROM Pattern WHERE pattern=?"); - insertPatternIdPs = conn.prepareStatement("INSERT INTO Pattern (pattern,pattern_pretty) VALUES(?,?)"); + insertPatternIdPs = conn.prepareStatement("INSERT INTO Pattern (pattern,pattern_pretty,axiom_type) VALUES(?,?,?)"); insertOntologyPatternPs = conn.prepareStatement("INSERT INTO Ontology_Pattern (ontology_id, pattern_id, occurrences) VALUES(?,?,?)"); } catch (SQLException e) { e.printStackTrace(); @@ -168,6 +168,7 @@ + "id MEDIUMINT NOT NULL AUTO_INCREMENT," + "pattern TEXT NOT NULL," + "pattern_pretty TEXT NOT NULL," + + "axiom_type VARCHAR(15) NOT NULL," + "PRIMARY KEY(id)," + "INDEX(pattern(8000))) DEFAULT CHARSET=utf8"); @@ -216,9 +217,10 @@ try { insertPatternIdPs.setString(1, axiomString); insertPatternIdPs.setString(2, axiomRenderer.render(axiom)); + insertPatternIdPs.setString(3, getAxiomType(axiom)); insertPatternIdPs.execute(); } catch (SQLException e) { - System.out.println(axiomString.length()); + System.err.println("Pattern too long for database?" + axiomString.length()); e.printStackTrace(); } //get the auto generated ID @@ -234,6 +236,22 @@ return -1; } + private String getAxiomType(OWLAxiom axiom){ + AxiomType<?> type = axiom.getAxiomType(); + String s; + if(AxiomType.TBoxAxiomTypes.contains(type)){ + s = "TBox"; + } else if(AxiomType.RBoxAxiomTypes.contains(type)){ + s = "RBox"; + } else if(AxiomType.ABoxAxiomTypes.contains(type)){ + s = "ABox"; + } else {System.out.println(axiom + "-" + type); + //should not happen + s="Non-Logical"; + } + return s; + } + private boolean ontologyProcessed(URI uri){ //check if ontology was already processed try { @@ -287,13 +305,11 @@ insertOntologyPs.setString(1, url); insertOntologyPs.setString(2, ontologyIRI); insertOntologyPs.setString(3, repository.getName()); - Set<OWLAxiom> logicalAxioms = new HashSet<OWLAxiom>(); - logicalAxioms.addAll(ontology.getLogicalAxioms()); - Set<OWLAxiom> tbox = AxiomType.getAxiomsOfTypes(logicalAxioms, new ArrayList<AxiomType>(AxiomType.TBoxAxiomTypes).toArray(new AxiomType[AxiomType.TBoxAxiomTypes.size()])); - Set<OWLAxiom> rbox = AxiomType.getAxiomsOfTypes(logicalAxioms, new ArrayList<AxiomType>(AxiomType.RBoxAxiomTypes).toArray(new AxiomType[AxiomType.RBoxAxiomTypes.size()])); - Set<OWLAxiom> abox = AxiomType.getAxiomsOfTypes(logicalAxioms, new ArrayList<AxiomType>(AxiomType.ABoxAxiomTypes).toArray(new AxiomType[AxiomType.ABoxAxiomTypes.size()])); + Set<OWLAxiom> tbox = ontology.getTBoxAxioms(true); + Set<OWLAxiom> rbox = ontology.getRBoxAxioms(true); + Set<OWLAxiom> abox = ontology.getABoxAxioms(true); - insertOntologyPs.setInt(4, ontology.getLogicalAxiomCount()); + insertOntologyPs.setInt(4, tbox.size() + rbox.size() + abox.size()); insertOntologyPs.setInt(5, tbox.size()); insertOntologyPs.setInt(6, rbox.size()); insertOntologyPs.setInt(7, abox.size()); Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/pattern/OWLAxiomRenamer.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/pattern/OWLAxiomRenamer.java 2013-05-03 08:48:11 UTC (rev 3939) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/pattern/OWLAxiomRenamer.java 2013-05-03 08:49:17 UTC (rev 3940) @@ -48,6 +48,7 @@ import org.semanticweb.owlapi.model.OWLObjectPropertyDomainAxiom; import org.semanticweb.owlapi.model.OWLObjectPropertyExpression; import org.semanticweb.owlapi.model.OWLObjectPropertyRangeAxiom; +import org.semanticweb.owlapi.model.OWLPropertyExpression; import org.semanticweb.owlapi.model.OWLReflexiveObjectPropertyAxiom; import org.semanticweb.owlapi.model.OWLSameIndividualAxiom; import org.semanticweb.owlapi.model.OWLSubAnnotationPropertyOfAxiom; @@ -86,27 +87,14 @@ } @Override - public void visit(OWLAnnotationAssertionAxiom axiom) { - } - - @Override - public void visit(OWLSubAnnotationPropertyOfAxiom axiom) { - } - - @Override - public void visit(OWLAnnotationPropertyDomainAxiom axiom) { - } - - @Override - public void visit(OWLAnnotationPropertyRangeAxiom axiom) { - } - - @Override - public void visit(OWLDeclarationAxiom axiom) { - } - - @Override public void visit(OWLNegativeObjectPropertyAssertionAxiom axiom) { + OWLObjectPropertyExpression property = axiom.getProperty(); + property = expressionRenamer.rename(property); + OWLIndividual subject = axiom.getSubject(); + subject = expressionRenamer.rename(subject); + OWLIndividual object = axiom.getObject(); + object = expressionRenamer.rename(object); + renamedAxiom = df.getOWLNegativeObjectPropertyAssertionAxiom(property, subject, object); } @Override @@ -163,7 +151,13 @@ @Override public void visit(OWLNegativeDataPropertyAssertionAxiom axiom) { -// axiom. + OWLDataPropertyExpression property = axiom.getProperty(); + property = expressionRenamer.rename(property); + OWLIndividual subject = axiom.getSubject(); + subject = expressionRenamer.rename(subject); + OWLLiteral object = axiom.getObject(); + object = expressionRenamer.rename(object); + renamedAxiom = df.getOWLNegativeDataPropertyAssertionAxiom(property, subject, object); } @Override @@ -347,6 +341,14 @@ @Override public void visit(OWLSubPropertyChainOfAxiom axiom) { + OWLObjectPropertyExpression superProperty = axiom.getSuperProperty(); + superProperty = expressionRenamer.rename(superProperty); + List<OWLObjectPropertyExpression> subPropertyChain = axiom.getPropertyChain(); + List<OWLObjectPropertyExpression> renamedSubPropertyChain = axiom.getPropertyChain(); + for (OWLObjectPropertyExpression owlObjectPropertyExpression : subPropertyChain) { + renamedSubPropertyChain.add(expressionRenamer.rename(owlObjectPropertyExpression)); + } + renamedAxiom = df.getOWLSubPropertyChainOfAxiom(subPropertyChain, superProperty); } @Override @@ -360,6 +362,14 @@ @Override public void visit(OWLHasKeyAxiom axiom) { + OWLClassExpression classExpression = axiom.getClassExpression(); + classExpression = expressionRenamer.rename(classExpression); + Set<OWLPropertyExpression<?, ?>> propertyExpressions = axiom.getPropertyExpressions(); + Set<OWLPropertyExpression<?, ?>> renamedPropertyExpressions = new HashSet<OWLPropertyExpression<?,?>>(); + for (OWLPropertyExpression<?, ?> owlPropertyExpression : propertyExpressions) { + renamedPropertyExpressions.add(expressionRenamer.rename(owlPropertyExpression)); + } + renamedAxiom = df.getOWLHasKeyAxiom(classExpression, renamedPropertyExpressions); } @Override @@ -370,6 +380,23 @@ public void visit(SWRLRule axiom) { } - + @Override + public void visit(OWLAnnotationAssertionAxiom axiom) { + } + @Override + public void visit(OWLSubAnnotationPropertyOfAxiom axiom) { + } + + @Override + public void visit(OWLAnnotationPropertyDomainAxiom axiom) { + } + + @Override + public void visit(OWLAnnotationPropertyRangeAxiom axiom) { + } + + @Override + public void visit(OWLDeclarationAxiom axiom) { + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |