From de3749532d060f26c966a81c03f9a5d846c33d06 Mon Sep 17 00:00:00 2001 From: RncLsn Date: Thu, 28 May 2015 17:11:35 +0100 Subject: Merged updates from upstream. --- .../tracking/TrackingRuleEncoderWithGap.java | 38 ++++++++++++---------- 1 file changed, 21 insertions(+), 17 deletions(-) (limited to 'src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderWithGap.java') diff --git a/src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderWithGap.java b/src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderWithGap.java index 67d07a8..c3694ad 100644 --- a/src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderWithGap.java +++ b/src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderWithGap.java @@ -1,25 +1,21 @@ package uk.ac.ox.cs.pagoda.tracking; -import java.util.Collection; -import java.util.LinkedList; - -import org.semanticweb.HermiT.model.AnnotatedEquality; -import org.semanticweb.HermiT.model.Atom; -import org.semanticweb.HermiT.model.AtomicConcept; -import org.semanticweb.HermiT.model.AtomicRole; -import org.semanticweb.HermiT.model.DLClause; -import org.semanticweb.HermiT.model.Equality; -import org.semanticweb.HermiT.model.Variable; +import org.semanticweb.HermiT.model.*; +import org.semanticweb.owlapi.model.IRI; import org.semanticweb.owlapi.model.OWLClass; import org.semanticweb.owlapi.model.OWLObjectProperty; import org.semanticweb.owlapi.model.OWLOntology; - import uk.ac.ox.cs.pagoda.hermit.DLClauseHelper; -import uk.ac.ox.cs.pagoda.query.*; +import uk.ac.ox.cs.pagoda.query.GapTupleIterator; import uk.ac.ox.cs.pagoda.reasoner.light.BasicQueryEngine; import uk.ac.ox.cs.pagoda.rules.UpperDatalogProgram; import uk.ac.ox.cs.pagoda.util.Namespace; +import java.util.Collection; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.Set; + public class TrackingRuleEncoderWithGap extends TrackingRuleEncoder { public TrackingRuleEncoderWithGap(UpperDatalogProgram program, BasicQueryEngine store) { @@ -34,8 +30,9 @@ public class TrackingRuleEncoderWithGap extends TrackingRuleEncoder { Variable X = Variable.create("X"); AtomicRole trackingSameAs = AtomicRole.create(Namespace.EQUALITY + "_tn"); OWLOntology onto = program.getOntology(); - Atom[] headAtom = new Atom[] {Atom.create(trackingSameAs, X, X)}, bodyAtom; - for (OWLClass cls: onto.getClassesInSignature(true)) { + Atom[] headAtom = new Atom[]{Atom.create(trackingSameAs, X, X)}, bodyAtom; + for(OWLOntology o : onto.getImportsClosure()) + for(OWLClass cls : o.getClassesInSignature()) { String clsIRI = cls.getIRI().toString(); unaryPredicates.add(clsIRI); bodyAtom = new Atom[] { @@ -43,9 +40,16 @@ public class TrackingRuleEncoderWithGap extends TrackingRuleEncoder { Atom.create(AtomicConcept.create(GapTupleIterator.getGapPredicate(clsIRI)), X)}; equalityRelatedClauses.add(DLClause.create(headAtom, bodyAtom)); } - - Variable Y = Variable.create("Y"); - for (OWLObjectProperty prop: onto.getObjectPropertiesInSignature(true)) { + + Variable Y = Variable.create("Y"); + Set setOfProperties = new HashSet(); + for(OWLOntology o : onto.getImportsClosure()) + for(OWLObjectProperty prop : o.getObjectPropertiesInSignature()) + setOfProperties.add(prop); + setOfProperties.add(onto.getOWLOntologyManager() + .getOWLDataFactory() + .getOWLObjectProperty(IRI.create(Namespace.INEQUALITY))); + for(OWLObjectProperty prop : setOfProperties) { String propIRI = prop.getIRI().toString(); binaryPredicates.add(propIRI); AtomicRole trackingRole = AtomicRole.create(propIRI + "_tn"); -- cgit v1.2.3