aboutsummaryrefslogtreecommitdiff
path: root/src/uk/ac/ox/cs/pagoda/rules
diff options
context:
space:
mode:
authorRncLsn <rnc.lsn@gmail.com>2015-07-03 19:09:31 +0100
committerRncLsn <rnc.lsn@gmail.com>2015-07-03 19:09:31 +0100
commit39b60d4225f5efa4e0287a2c6ce69d90391c69db (patch)
tree18c5b05726f39baa4d3ca8b228e24ad1f0182f2a /src/uk/ac/ox/cs/pagoda/rules
parent133dab6e21f263df2baca913d3d0b7a4fd152d08 (diff)
downloadACQuA-39b60d4225f5efa4e0287a2c6ce69d90391c69db.tar.gz
ACQuA-39b60d4225f5efa4e0287a2c6ce69d90391c69db.zip
Many little changes.
Diffstat (limited to 'src/uk/ac/ox/cs/pagoda/rules')
-rw-r--r--src/uk/ac/ox/cs/pagoda/rules/Program.java7
-rw-r--r--src/uk/ac/ox/cs/pagoda/rules/approximators/LimitedSkolemisationApproximator.java4
-rw-r--r--src/uk/ac/ox/cs/pagoda/rules/clauses/Clause.java100
-rw-r--r--src/uk/ac/ox/cs/pagoda/rules/clauses/Conjunction.java4
-rw-r--r--src/uk/ac/ox/cs/pagoda/rules/clauses/DLClause.java12
5 files changed, 122 insertions, 5 deletions
diff --git a/src/uk/ac/ox/cs/pagoda/rules/Program.java b/src/uk/ac/ox/cs/pagoda/rules/Program.java
index 85000e3..a0edf85 100644
--- a/src/uk/ac/ox/cs/pagoda/rules/Program.java
+++ b/src/uk/ac/ox/cs/pagoda/rules/Program.java
@@ -316,9 +316,10 @@ protected PredicateDependency dependencyGraph;
316 private Atom getAtom(OWLObjectPropertyExpression exp, Variable x, Variable y) { 316 private Atom getAtom(OWLObjectPropertyExpression exp, Variable x, Variable y) {
317 if(exp instanceof OWLObjectProperty) 317 if(exp instanceof OWLObjectProperty)
318 return Atom.create(AtomicRole.create(((OWLObjectProperty) exp).toStringID()), x, y); 318 return Atom.create(AtomicRole.create(((OWLObjectProperty) exp).toStringID()), x, y);
319 OWLObjectInverseOf inverseOf; 319 // TODO fixed, test it
320 if(exp instanceof OWLObjectInverseOf && (inverseOf = 320 OWLObjectPropertyExpression inverseOf;
321 (OWLObjectInverseOf) exp).getInverse() instanceof OWLObjectProperty) 321 if(exp instanceof OWLObjectInverseOf && (inverseOf = (
322 (OWLObjectInverseOf) exp).getInverse()) instanceof OWLObjectProperty)
322 return Atom.create(AtomicRole.create(((OWLObjectProperty) inverseOf).toStringID()), x, y); 323 return Atom.create(AtomicRole.create(((OWLObjectProperty) inverseOf).toStringID()), x, y);
323 return null; 324 return null;
324 } 325 }
diff --git a/src/uk/ac/ox/cs/pagoda/rules/approximators/LimitedSkolemisationApproximator.java b/src/uk/ac/ox/cs/pagoda/rules/approximators/LimitedSkolemisationApproximator.java
index dfe1e59..d694b61 100644
--- a/src/uk/ac/ox/cs/pagoda/rules/approximators/LimitedSkolemisationApproximator.java
+++ b/src/uk/ac/ox/cs/pagoda/rules/approximators/LimitedSkolemisationApproximator.java
@@ -64,14 +64,14 @@ public class LimitedSkolemisationApproximator implements TupleDependentApproxima
64 64
65 private Collection<DLClause> overApprox(DLClause clause, DLClause originalClause, Collection<Tuple<Individual>> violationTuples) { 65 private Collection<DLClause> overApprox(DLClause clause, DLClause originalClause, Collection<Tuple<Individual>> violationTuples) {
66 ArrayList<DLClause> result = new ArrayList<>(); 66 ArrayList<DLClause> result = new ArrayList<>();
67 for(Tuple<Individual> violationTuple : violationTuples) 67 for(Tuple<Individual> violationTuple : violationTuples) {
68 if(getMaxDepth(violationTuple) < maxTermDepth) { 68 if(getMaxDepth(violationTuple) < maxTermDepth) {
69 result.addAll(getGroundSkolemisation(clause, originalClause, violationTuple)); 69 result.addAll(getGroundSkolemisation(clause, originalClause, violationTuple));
70 Utility.logDebug("Approximating maximal individual by a constant in rule:" + originalClause); 70 Utility.logDebug("Approximating maximal individual by a constant in rule:" + originalClause);
71 } 71 }
72 else 72 else
73 result.addAll(alternativeApproximator.convert(clause, originalClause, null)); 73 result.addAll(alternativeApproximator.convert(clause, originalClause, null));
74 74 }
75 75
76 return result; 76 return result;
77 } 77 }
diff --git a/src/uk/ac/ox/cs/pagoda/rules/clauses/Clause.java b/src/uk/ac/ox/cs/pagoda/rules/clauses/Clause.java
new file mode 100644
index 0000000..2adb66b
--- /dev/null
+++ b/src/uk/ac/ox/cs/pagoda/rules/clauses/Clause.java
@@ -0,0 +1,100 @@
1package uk.ac.ox.cs.pagoda.rules.clauses;
2
3public class Clause {
4
5// public static final String IF = ":-";
6// public static final String OR = "|";
7// public static final String AND = ",";
8//
9// protected final List<List<Atom>> head;
10// protected final List<Atom> body;
11//
12// protected Clause(Atom[] headAtoms, Atom[] bodyAtoms) {
13// this.head = Collections.singletonList(Arrays.asList(headAtoms));
14// this.body= Arrays.asList(bodyAtoms);
15// }
16//
17// protected Clause(String s) {
18// this.headAtoms = null;
19// this.bodyAtoms = null;
20// }
21//
22// public int getHeadLength() {
23// return headAtoms.length;
24// }
25//
26// public Atom getHeadAtom(int atomIndex) {
27// return headAtoms[atomIndex];
28// }
29//
30// public Atom[] getHeadAtoms() {
31// return headAtoms.clone();
32// }
33//
34// public int getBodyLength() {
35// return bodyAtoms.length;
36// }
37//
38// public Atom getBodyAtom(int atomIndex) {
39// return bodyAtoms[atomIndex];
40// }
41//
42// public Atom[] getBodyAtoms() {
43// return bodyAtoms.clone();
44// }
45//
46// public String toString(Prefixes prefixes) {
47// StringBuilder buffer = new StringBuilder();
48// for(int headIndex = 0; headIndex < headAtoms.length; headIndex++) {
49// if(headIndex != 0)
50// buffer.append(" ").append(OR).append(" ");
51// buffer.append(headAtoms[headIndex].toString(prefixes));
52// }
53// buffer.append(" ").append(IF).append(" ");
54// for(int bodyIndex = 0; bodyIndex < bodyAtoms.length; bodyIndex++) {
55// if(bodyIndex != 0)
56// buffer.append(AND).append(" ");
57// buffer.append(bodyAtoms[bodyIndex].toString(prefixes));
58// }
59// return buffer.toString();
60// }
61//
62// public String toString() {
63// return toString(Prefixes.STANDARD_PREFIXES);
64// }
65//
66// protected static InterningManager<? extends Clause> s_interningManager = new InterningManager<Clause>() {
67// protected boolean equal(Clause object1, Clause object2) {
68// if(object1.head.length != object2.headAtoms.length
69// || object1.bodyAtoms.length != object2.bodyAtoms.length)
70// return false;
71// for(int index = object1.headAtoms.length - 1; index >= 0; --index)
72// if(object1.headAtoms[index] != object2.headAtoms[index])
73// return false;
74// for(int index = object1.bodyAtoms.length - 1; index >= 0; --index)
75// if(object1.bodyAtoms[index] != object2.bodyAtoms[index])
76// return false;
77// return true;
78// }
79//
80// protected int getHashCode(Clause object) {
81// int hashCode = 0;
82// for(int index = object.bodyAtoms.length - 1; index >= 0; --index)
83// hashCode += object.bodyAtoms[index].hashCode();
84// for(int index = object.headAtoms.length - 1; index >= 0; --index)
85// hashCode += object.headAtoms[index].hashCode();
86// return hashCode;
87// }
88// };
89//
90// /**
91// * Creates a clause from a string.
92// *
93// * @param s
94// * @return
95// */
96// public static Clause create(String s) {
97// return s_interningManager.intern(new Clause(s));
98// }
99
100}
diff --git a/src/uk/ac/ox/cs/pagoda/rules/clauses/Conjunction.java b/src/uk/ac/ox/cs/pagoda/rules/clauses/Conjunction.java
new file mode 100644
index 0000000..91bb3e7
--- /dev/null
+++ b/src/uk/ac/ox/cs/pagoda/rules/clauses/Conjunction.java
@@ -0,0 +1,4 @@
1package uk.ac.ox.cs.pagoda.rules.clauses;
2
3public class Conjunction {
4}
diff --git a/src/uk/ac/ox/cs/pagoda/rules/clauses/DLClause.java b/src/uk/ac/ox/cs/pagoda/rules/clauses/DLClause.java
new file mode 100644
index 0000000..7394be0
--- /dev/null
+++ b/src/uk/ac/ox/cs/pagoda/rules/clauses/DLClause.java
@@ -0,0 +1,12 @@
1package uk.ac.ox.cs.pagoda.rules.clauses;
2
3public class DLClause extends Clause {
4
5// private DLClause(Atom[] headAtoms, Atom[] bodyAtoms) {
6// super(headAtoms, bodyAtoms);
7// }
8//
9// public static DLClause create(Atom[] headAtoms, Atom[] bodyAtoms) {
10// return s_interningManager.intern(new DLClause(headAtoms, bodyAtoms));
11// }
12}