aboutsummaryrefslogtreecommitdiff
path: root/src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderWithGap.java
diff options
context:
space:
mode:
authorRncLsn <rnc.lsn@gmail.com>2015-05-28 17:11:35 +0100
committerRncLsn <rnc.lsn@gmail.com>2015-05-28 17:11:35 +0100
commitde3749532d060f26c966a81c03f9a5d846c33d06 (patch)
tree6cc5ba2837dc3c167b100f5e8be4e8c16da7be98 /src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderWithGap.java
parent4298cdef8e551325cd16b4e24ae6699c44b60751 (diff)
downloadACQuA-de3749532d060f26c966a81c03f9a5d846c33d06.tar.gz
ACQuA-de3749532d060f26c966a81c03f9a5d846c33d06.zip
Merged updates from upstream.
Diffstat (limited to 'src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderWithGap.java')
-rw-r--r--src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderWithGap.java38
1 files changed, 21 insertions, 17 deletions
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 @@
1package uk.ac.ox.cs.pagoda.tracking; 1package uk.ac.ox.cs.pagoda.tracking;
2 2
3import java.util.Collection; 3import org.semanticweb.HermiT.model.*;
4import java.util.LinkedList; 4import org.semanticweb.owlapi.model.IRI;
5
6import org.semanticweb.HermiT.model.AnnotatedEquality;
7import org.semanticweb.HermiT.model.Atom;
8import org.semanticweb.HermiT.model.AtomicConcept;
9import org.semanticweb.HermiT.model.AtomicRole;
10import org.semanticweb.HermiT.model.DLClause;
11import org.semanticweb.HermiT.model.Equality;
12import org.semanticweb.HermiT.model.Variable;
13import org.semanticweb.owlapi.model.OWLClass; 5import org.semanticweb.owlapi.model.OWLClass;
14import org.semanticweb.owlapi.model.OWLObjectProperty; 6import org.semanticweb.owlapi.model.OWLObjectProperty;
15import org.semanticweb.owlapi.model.OWLOntology; 7import org.semanticweb.owlapi.model.OWLOntology;
16
17import uk.ac.ox.cs.pagoda.hermit.DLClauseHelper; 8import uk.ac.ox.cs.pagoda.hermit.DLClauseHelper;
18import uk.ac.ox.cs.pagoda.query.*; 9import uk.ac.ox.cs.pagoda.query.GapTupleIterator;
19import uk.ac.ox.cs.pagoda.reasoner.light.BasicQueryEngine; 10import uk.ac.ox.cs.pagoda.reasoner.light.BasicQueryEngine;
20import uk.ac.ox.cs.pagoda.rules.UpperDatalogProgram; 11import uk.ac.ox.cs.pagoda.rules.UpperDatalogProgram;
21import uk.ac.ox.cs.pagoda.util.Namespace; 12import uk.ac.ox.cs.pagoda.util.Namespace;
22 13
14import java.util.Collection;
15import java.util.HashSet;
16import java.util.LinkedList;
17import java.util.Set;
18
23public class TrackingRuleEncoderWithGap extends TrackingRuleEncoder { 19public class TrackingRuleEncoderWithGap extends TrackingRuleEncoder {
24 20
25 public TrackingRuleEncoderWithGap(UpperDatalogProgram program, BasicQueryEngine store) { 21 public TrackingRuleEncoderWithGap(UpperDatalogProgram program, BasicQueryEngine store) {
@@ -34,8 +30,9 @@ public class TrackingRuleEncoderWithGap extends TrackingRuleEncoder {
34 Variable X = Variable.create("X"); 30 Variable X = Variable.create("X");
35 AtomicRole trackingSameAs = AtomicRole.create(Namespace.EQUALITY + "_tn"); 31 AtomicRole trackingSameAs = AtomicRole.create(Namespace.EQUALITY + "_tn");
36 OWLOntology onto = program.getOntology(); 32 OWLOntology onto = program.getOntology();
37 Atom[] headAtom = new Atom[] {Atom.create(trackingSameAs, X, X)}, bodyAtom; 33 Atom[] headAtom = new Atom[]{Atom.create(trackingSameAs, X, X)}, bodyAtom;
38 for (OWLClass cls: onto.getClassesInSignature(true)) { 34 for(OWLOntology o : onto.getImportsClosure())
35 for(OWLClass cls : o.getClassesInSignature()) {
39 String clsIRI = cls.getIRI().toString(); 36 String clsIRI = cls.getIRI().toString();
40 unaryPredicates.add(clsIRI); 37 unaryPredicates.add(clsIRI);
41 bodyAtom = new Atom[] { 38 bodyAtom = new Atom[] {
@@ -43,9 +40,16 @@ public class TrackingRuleEncoderWithGap extends TrackingRuleEncoder {
43 Atom.create(AtomicConcept.create(GapTupleIterator.getGapPredicate(clsIRI)), X)}; 40 Atom.create(AtomicConcept.create(GapTupleIterator.getGapPredicate(clsIRI)), X)};
44 equalityRelatedClauses.add(DLClause.create(headAtom, bodyAtom)); 41 equalityRelatedClauses.add(DLClause.create(headAtom, bodyAtom));
45 } 42 }
46 43
47 Variable Y = Variable.create("Y"); 44 Variable Y = Variable.create("Y");
48 for (OWLObjectProperty prop: onto.getObjectPropertiesInSignature(true)) { 45 Set<OWLObjectProperty> setOfProperties = new HashSet<OWLObjectProperty>();
46 for(OWLOntology o : onto.getImportsClosure())
47 for(OWLObjectProperty prop : o.getObjectPropertiesInSignature())
48 setOfProperties.add(prop);
49 setOfProperties.add(onto.getOWLOntologyManager()
50 .getOWLDataFactory()
51 .getOWLObjectProperty(IRI.create(Namespace.INEQUALITY)));
52 for(OWLObjectProperty prop : setOfProperties) {
49 String propIRI = prop.getIRI().toString(); 53 String propIRI = prop.getIRI().toString();
50 binaryPredicates.add(propIRI); 54 binaryPredicates.add(propIRI);
51 AtomicRole trackingRole = AtomicRole.create(propIRI + "_tn"); 55 AtomicRole trackingRole = AtomicRole.create(propIRI + "_tn");