From: <jen...@us...> - 2008-02-19 18:28:34
|
Revision: 615 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=615&view=rev Author: jenslehmann Date: 2008-02-19 10:28:23 -0800 (Tue, 19 Feb 2008) Log Message: ----------- extended KBparser to be able to read object/datatype property domain/range Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/core/owl/KB.java trunk/src/dl-learner/org/dllearner/examples/Carcinogenesis.java trunk/src/dl-learner/org/dllearner/parser/KBParser.java trunk/src/dl-learner/org/dllearner/parser/KBParserConstants.java trunk/src/dl-learner/org/dllearner/parser/KBParserTokenManager.java trunk/src/dl-learner/org/dllearner/parser/kb.jj trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIAxiomConvertVisitor.java Modified: trunk/src/dl-learner/org/dllearner/core/owl/KB.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/owl/KB.java 2008-02-19 16:44:57 UTC (rev 614) +++ trunk/src/dl-learner/org/dllearner/core/owl/KB.java 2008-02-19 18:28:23 UTC (rev 615) @@ -165,6 +165,19 @@ rbox.add(axiom); } + /** + * Add another knowledge base to this one. + * @param kb The knowledge base to add. + */ + public void addKB(KB kb) { + for(AssertionalAxiom axiom : kb.getAbox()) + abox.add(axiom); + for(PropertyAxiom axiom : kb.getRbox()) + rbox.add(axiom); + for(TerminologicalAxiom axiom : kb.getTbox()) + tbox.add(axiom); + } + public int getLength() { int length = 0; for(Axiom a : abox) Modified: trunk/src/dl-learner/org/dllearner/examples/Carcinogenesis.java =================================================================== --- trunk/src/dl-learner/org/dllearner/examples/Carcinogenesis.java 2008-02-19 16:44:57 UTC (rev 614) +++ trunk/src/dl-learner/org/dllearner/examples/Carcinogenesis.java 2008-02-19 18:28:23 UTC (rev 615) @@ -42,6 +42,7 @@ import org.dllearner.core.owl.ObjectProperty; import org.dllearner.core.owl.ObjectPropertyAssertion; import org.dllearner.core.owl.SubClassAxiom; +import org.dllearner.parser.KBParser; import org.dllearner.parser.ParseException; import org.dllearner.parser.PrologParser; import org.dllearner.prolog.Atom; @@ -139,7 +140,9 @@ kb.addAxiom(sc); } // define properties including domain and range - // ... TODO ... + String kbString = "DPDOMAIN(" + getURI2("charge") + ") = " + getURI2("Atom") + "."; + KB kb2 = KBParser.parseKBFile(kbString); + kb.addKB(kb2); // mapping clauses to axioms System.out.print("Mapping clauses to axioms ... "); @@ -332,6 +335,15 @@ return new NamedClass(ontologyURI + "#" + name); } + private static String getURI(String name) { + return ontologyURI + "#" + name; + } + + // returns URI including quotationsmark (need for KBparser) + private static String getURI2(String name) { + return "\"" + getURI(name) + "\""; + } + private static String getFullElementName(String abbreviation) { // return corresponding element or throw an error if it // is not in the list Modified: trunk/src/dl-learner/org/dllearner/parser/KBParser.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/KBParser.java 2008-02-19 16:44:57 UTC (rev 614) +++ trunk/src/dl-learner/org/dllearner/parser/KBParser.java 2008-02-19 18:28:23 UTC (rev 615) @@ -63,6 +63,11 @@ case 30: case 31: case 32: + case 34: + case 35: + case 36: + case 37: + case 38: ; break; default: @@ -97,6 +102,17 @@ rBoxAxiom = Subrole(); kb.addRBoxAxiom(rBoxAxiom); break; + case 34: + case 35: + case 36: + rBoxAxiom = ObjectPropertyDomainAxiom(); + kb.addRBoxAxiom(rBoxAxiom); + break; + case 37: + case 38: + rBoxAxiom = DatatypePropertyDomainAxiom(); + kb.addRBoxAxiom(rBoxAxiom); + break; default: jj_la1[1] = jj_gen; if (jj_2_3(2147483647)) { @@ -248,6 +264,125 @@ throw new Error("Missing return statement in function"); } + final public ObjectPropertyDomainAxiom ObjectPropertyDomainAxiom() throws ParseException { + ObjectProperty op; Description domain; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case 34: + jj_consume_token(34); + break; + case 35: + jj_consume_token(35); + break; + case 36: + jj_consume_token(36); + break; + default: + jj_la1[4] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + jj_consume_token(22); + op = ObjectProperty(); + jj_consume_token(23); + jj_consume_token(25); + domain = Concept(); + jj_consume_token(COMMAND_END); + {if (true) return new ObjectPropertyDomainAxiom(op, domain);} + throw new Error("Missing return statement in function"); + } + + final public DatatypePropertyDomainAxiom DatatypePropertyDomainAxiom() throws ParseException { + DatatypeProperty op; Description domain; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case 37: + jj_consume_token(37); + break; + case 38: + jj_consume_token(38); + break; + default: + jj_la1[5] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + jj_consume_token(22); + op = DatatypeProperty(); + jj_consume_token(23); + jj_consume_token(25); + domain = Concept(); + jj_consume_token(COMMAND_END); + {if (true) return new DatatypePropertyDomainAxiom(op, domain);} + throw new Error("Missing return statement in function"); + } + + final public ObjectPropertyRangeAxiom ObjectPropertyRangeAxiom() throws ParseException { + ObjectProperty op; Description range; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case 39: + jj_consume_token(39); + break; + case 40: + jj_consume_token(40); + break; + case 41: + jj_consume_token(41); + break; + default: + jj_la1[6] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + jj_consume_token(22); + op = ObjectProperty(); + jj_consume_token(23); + jj_consume_token(25); + range = Concept(); + jj_consume_token(COMMAND_END); + {if (true) return new ObjectPropertyRangeAxiom(op, range);} + throw new Error("Missing return statement in function"); + } + + final public DatatypePropertyRangeAxiom DatatypePropertyRangeAxiom() throws ParseException { + DatatypeProperty op; DataRange range; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case 42: + jj_consume_token(42); + break; + case 43: + jj_consume_token(43); + break; + default: + jj_la1[7] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + jj_consume_token(22); + op = DatatypeProperty(); + jj_consume_token(23); + jj_consume_token(25); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case 44: + jj_consume_token(44); + range = new Datatype(Datatype.Type.DOUBLE); + break; + case 45: + jj_consume_token(45); + range = new Datatype(Datatype.Type.BOOLEAN); + break; + case 46: + jj_consume_token(46); + range = new Datatype(Datatype.Type.INT); + break; + default: + jj_la1[8] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + jj_consume_token(COMMAND_END); + {if (true) return new DatatypePropertyRangeAxiom(op, range);} + throw new Error("Missing return statement in function"); + } + final public Description Concept() throws ParseException { Description c,c1,c2; NamedClass ac; @@ -269,7 +404,7 @@ {if (true) return ac;} break; default: - jj_la1[4] = jj_gen; + jj_la1[9] = jj_gen; if (jj_2_5(2147483647)) { jj_consume_token(22); c1 = Concept(); @@ -322,7 +457,7 @@ {if (true) return new ObjectMaxCardinalityRestriction(i,ar,c);} break; default: - jj_la1[5] = jj_gen; + jj_la1[10] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -377,7 +512,7 @@ name = String(); break; default: - jj_la1[6] = jj_gen; + jj_la1[11] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -385,6 +520,24 @@ throw new Error("Missing return statement in function"); } + final public DatatypeProperty DatatypeProperty() throws ParseException { + String name; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ID: + name = Id(); + break; + case STRING: + name = String(); + break; + default: + jj_la1[12] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return new DatatypeProperty(getInternalURI(name));} + throw new Error("Missing return statement in function"); + } + final public ObjectProperty ObjectProperty() throws ParseException { String name; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -395,7 +548,7 @@ name = String(); break; default: - jj_la1[7] = jj_gen; + jj_la1[13] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -413,7 +566,7 @@ name = String(); break; default: - jj_la1[8] = jj_gen; + jj_la1[14] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -499,6 +652,53 @@ finally { jj_save(5, xla); } } + final private boolean jj_3_1() { + if (jj_3R_2()) return true; + if (jj_scan_token(22)) return true; + if (jj_3R_3()) return true; + if (jj_scan_token(23)) return true; + if (jj_scan_token(COMMAND_END)) return true; + return false; + } + + final private boolean jj_3R_22() { + if (jj_scan_token(STRING)) return true; + return false; + } + + final private boolean jj_3R_14() { + if (jj_scan_token(20)) return true; + if (jj_3R_20()) return true; + if (jj_3R_4()) return true; + if (jj_scan_token(COMMAND_END)) return true; + if (jj_3R_2()) return true; + return false; + } + + final private boolean jj_3R_17() { + if (jj_3R_21()) return true; + return false; + } + + final private boolean jj_3R_4() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_17()) { + jj_scanpos = xsp; + if (jj_3R_18()) return true; + } + return false; + } + + final private boolean jj_3R_13() { + if (jj_scan_token(19)) return true; + if (jj_3R_20()) return true; + if (jj_3R_4()) return true; + if (jj_scan_token(COMMAND_END)) return true; + if (jj_3R_2()) return true; + return false; + } + final private boolean jj_3_6() { if (jj_scan_token(22)) return true; if (jj_3R_2()) return true; @@ -512,12 +712,8 @@ return false; } - final private boolean jj_3_1() { - if (jj_3R_2()) return true; - if (jj_scan_token(22)) return true; - if (jj_3R_3()) return true; - if (jj_scan_token(23)) return true; - if (jj_scan_token(COMMAND_END)) return true; + final private boolean jj_3R_20() { + if (jj_scan_token(NUMBER)) return true; return false; } @@ -541,21 +737,6 @@ return false; } - final private boolean jj_3R_17() { - if (jj_3R_21()) return true; - return false; - } - - final private boolean jj_3R_4() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_17()) { - jj_scanpos = xsp; - if (jj_3R_18()) return true; - } - return false; - } - final private boolean jj_3R_10() { if (jj_scan_token(16)) return true; if (jj_3R_4()) return true; @@ -573,8 +754,14 @@ return false; } - final private boolean jj_3R_20() { - if (jj_scan_token(NUMBER)) return true; + final private boolean jj_3_4() { + if (jj_3R_2()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_scan_token(26)) { + jj_scanpos = xsp; + if (jj_scan_token(27)) return true; + } return false; } @@ -587,6 +774,12 @@ return false; } + final private boolean jj_3_3() { + if (jj_3R_2()) return true; + if (jj_scan_token(25)) return true; + return false; + } + final private boolean jj_3R_23() { if (jj_3R_21()) return true; return false; @@ -602,6 +795,11 @@ return false; } + final private boolean jj_3R_16() { + if (jj_3R_22()) return true; + return false; + } + final private boolean jj_3R_7() { if (jj_3R_19()) return true; return false; @@ -651,28 +849,6 @@ return false; } - final private boolean jj_3R_16() { - if (jj_3R_22()) return true; - return false; - } - - final private boolean jj_3_4() { - if (jj_3R_2()) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_scan_token(26)) { - jj_scanpos = xsp; - if (jj_scan_token(27)) return true; - } - return false; - } - - final private boolean jj_3_3() { - if (jj_3R_2()) return true; - if (jj_scan_token(25)) return true; - return false; - } - final private boolean jj_3R_21() { if (jj_scan_token(ID)) return true; return false; @@ -683,15 +859,6 @@ return false; } - final private boolean jj_3R_14() { - if (jj_scan_token(20)) return true; - if (jj_3R_20()) return true; - if (jj_3R_4()) return true; - if (jj_scan_token(COMMAND_END)) return true; - if (jj_3R_2()) return true; - return false; - } - final private boolean jj_3R_15() { if (jj_3R_21()) return true; return false; @@ -707,20 +874,6 @@ return false; } - final private boolean jj_3R_13() { - if (jj_scan_token(19)) return true; - if (jj_3R_20()) return true; - if (jj_3R_4()) return true; - if (jj_scan_token(COMMAND_END)) return true; - if (jj_3R_2()) return true; - return false; - } - - final private boolean jj_3R_22() { - if (jj_scan_token(STRING)) return true; - return false; - } - final private boolean jj_3_2() { Token xsp; xsp = jj_scanpos; @@ -741,7 +894,7 @@ public boolean lookingAhead = false; private boolean jj_semLA; private int jj_gen; - final private int[] jj_la1 = new int[9]; + final private int[] jj_la1 = new int[15]; static private int[] jj_la1_0; static private int[] jj_la1_1; static { @@ -749,10 +902,10 @@ jj_la1_1(); } private static void jj_la1_0() { - jj_la1_0 = new int[] {0xf07f3200,0xf0000000,0x40000,0xc000000,0x203200,0x1f0000,0x200200,0x200200,0x200200,}; + jj_la1_0 = new int[] {0xf07f3200,0xf0000000,0x40000,0xc000000,0x0,0x0,0x0,0x0,0x0,0x203200,0x1f0000,0x200200,0x200200,0x200200,0x200200,}; } private static void jj_la1_1() { - jj_la1_1 = new int[] {0x1,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_1 = new int[] {0x7d,0x7d,0x0,0x2,0x1c,0x60,0x380,0xc00,0x7000,0x0,0x0,0x0,0x0,0x0,0x0,}; } final private JJCalls[] jj_2_rtns = new JJCalls[6]; private boolean jj_rescan = false; @@ -767,7 +920,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 9; i++) jj_la1[i] = -1; + for (int i = 0; i < 15; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -780,7 +933,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 9; i++) jj_la1[i] = -1; + for (int i = 0; i < 15; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -790,7 +943,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 9; i++) jj_la1[i] = -1; + for (int i = 0; i < 15; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -800,7 +953,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 9; i++) jj_la1[i] = -1; + for (int i = 0; i < 15; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -809,7 +962,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 9; i++) jj_la1[i] = -1; + for (int i = 0; i < 15; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -818,7 +971,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 9; i++) jj_la1[i] = -1; + for (int i = 0; i < 15; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -929,12 +1082,12 @@ public ParseException generateParseException() { jj_expentries.removeAllElements(); - boolean[] la1tokens = new boolean[34]; + boolean[] la1tokens = new boolean[47]; if (jj_kind >= 0) { la1tokens[jj_kind] = true; jj_kind = -1; } - for (int i = 0; i < 9; i++) { + for (int i = 0; i < 15; i++) { if (jj_la1[i] == jj_gen) { for (int j = 0; j < 32; j++) { if ((jj_la1_0[i] & (1<<j)) != 0) { @@ -946,7 +1099,7 @@ } } } - for (int i = 0; i < 34; i++) { + for (int i = 0; i < 47; i++) { if (la1tokens[i]) { jj_expentry = new int[1]; jj_expentry[0] = i; Modified: trunk/src/dl-learner/org/dllearner/parser/KBParserConstants.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/KBParserConstants.java 2008-02-19 16:44:57 UTC (rev 614) +++ trunk/src/dl-learner/org/dllearner/parser/KBParserConstants.java 2008-02-19 18:28:23 UTC (rev 615) @@ -59,6 +59,19 @@ "\"Inverse\"", "\"Subrole\"", "\"SUBCONCEPTOF\"", + "\"DOMAIN\"", + "\"OPDOMAIN\"", + "\"OBJECTPROPERTYDOMAIN\"", + "\"DPDOMAIN\"", + "\"DATATYPEPROPERTYDOMAIN\"", + "\"RANGE\"", + "\"OPRANGE\"", + "\"OBJECTPROPERTYRANGE\"", + "\"DPRANGE\"", + "\"DATATYPEPROPERTYRANGE\"", + "\"DOUBLE\"", + "\"BOOLEAN\"", + "\"INTEGER\"", }; } Modified: trunk/src/dl-learner/org/dllearner/parser/KBParserTokenManager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/KBParserTokenManager.java 2008-02-19 16:44:57 UTC (rev 614) +++ trunk/src/dl-learner/org/dllearner/parser/KBParserTokenManager.java 2008-02-19 18:28:23 UTC (rev 615) @@ -63,13 +63,17 @@ case 65: return jjMoveStringLiteralDfa1_0(0x4000L); case 66: - return jjMoveStringLiteralDfa1_0(0x2000L); + return jjMoveStringLiteralDfa1_0(0x200000002000L); + case 68: + return jjMoveStringLiteralDfa1_0(0x1c6400000000L); case 70: return jjMoveStringLiteralDfa1_0(0x20000000L); case 73: - return jjMoveStringLiteralDfa1_0(0x80000000L); + return jjMoveStringLiteralDfa1_0(0x400080000000L); case 79: - return jjMoveStringLiteralDfa1_0(0x8000L); + return jjMoveStringLiteralDfa1_0(0x31800008000L); + case 82: + return jjMoveStringLiteralDfa1_0(0x8000000000L); case 83: return jjMoveStringLiteralDfa1_0(0x34c000000L); case 84: @@ -93,10 +97,16 @@ else if ((active0 & 0x100000L) != 0L) return jjStopAtPos(1, 20); break; + case 65: + return jjMoveStringLiteralDfa2_0(active0, 0x8c000000000L); + case 66: + return jjMoveStringLiteralDfa2_0(active0, 0x21000000000L); case 78: - return jjMoveStringLiteralDfa2_0(active0, 0x4000L); + return jjMoveStringLiteralDfa2_0(active0, 0x400000004000L); case 79: - return jjMoveStringLiteralDfa2_0(active0, 0x3000L); + return jjMoveStringLiteralDfa2_0(active0, 0x300400003000L); + case 80: + return jjMoveStringLiteralDfa2_0(active0, 0x52800000000L); case 82: if ((active0 & 0x8000L) != 0L) return jjStopAtPos(1, 15); @@ -137,13 +147,25 @@ case 68: if ((active0 & 0x4000L) != 0L) return jjStopAtPos(2, 14); - break; + return jjMoveStringLiteralDfa3_0(active0, 0x2800000000L); + case 74: + return jjMoveStringLiteralDfa3_0(active0, 0x21000000000L); + case 77: + return jjMoveStringLiteralDfa3_0(active0, 0x400000000L); + case 78: + return jjMoveStringLiteralDfa3_0(active0, 0x8000000000L); + case 79: + return jjMoveStringLiteralDfa3_0(active0, 0x200000000000L); case 80: if ((active0 & 0x1000L) != 0L) return jjStopAtPos(2, 12); break; + case 82: + return jjMoveStringLiteralDfa3_0(active0, 0x50000000000L); case 84: - return jjMoveStringLiteralDfa3_0(active0, 0x2000L); + return jjMoveStringLiteralDfa3_0(active0, 0x484000002000L); + case 85: + return jjMoveStringLiteralDfa3_0(active0, 0x100000000000L); case 97: return jjMoveStringLiteralDfa3_0(active0, 0x10000000L); case 98: @@ -170,8 +192,20 @@ } switch(curChar) { + case 65: + return jjMoveStringLiteralDfa4_0(active0, 0xd4400000000L); + case 66: + return jjMoveStringLiteralDfa4_0(active0, 0x100000000000L); case 67: return jjMoveStringLiteralDfa4_0(active0, 0x204000000L); + case 69: + return jjMoveStringLiteralDfa4_0(active0, 0x421000000000L); + case 71: + return jjMoveStringLiteralDfa4_0(active0, 0x8000000000L); + case 76: + return jjMoveStringLiteralDfa4_0(active0, 0x200000000000L); + case 79: + return jjMoveStringLiteralDfa4_0(active0, 0x2800000000L); case 84: return jjMoveStringLiteralDfa4_0(active0, 0x2000L); case 99: @@ -200,10 +234,26 @@ } switch(curChar) { + case 67: + return jjMoveStringLiteralDfa5_0(active0, 0x21000000000L); + case 69: + if ((active0 & 0x8000000000L) != 0L) + return jjStopAtPos(4, 39); + return jjMoveStringLiteralDfa5_0(active0, 0x200000000000L); + case 71: + return jjMoveStringLiteralDfa5_0(active0, 0x400000000000L); + case 73: + return jjMoveStringLiteralDfa5_0(active0, 0x400000000L); case 76: - return jjMoveStringLiteralDfa5_0(active0, 0x4000000L); + return jjMoveStringLiteralDfa5_0(active0, 0x100004000000L); + case 77: + return jjMoveStringLiteralDfa5_0(active0, 0x2800000000L); + case 78: + return jjMoveStringLiteralDfa5_0(active0, 0x50000000000L); case 79: return jjMoveStringLiteralDfa5_0(active0, 0x200002000L); + case 84: + return jjMoveStringLiteralDfa5_0(active0, 0x84000000000L); case 101: return jjMoveStringLiteralDfa5_0(active0, 0x40000000L); case 111: @@ -231,13 +281,25 @@ switch(curChar) { case 65: - return jjMoveStringLiteralDfa6_0(active0, 0x4000000L); + return jjMoveStringLiteralDfa6_0(active0, 0x202804000000L); + case 69: + if ((active0 & 0x100000000000L) != 0L) + return jjStopAtPos(5, 44); + return jjMoveStringLiteralDfa6_0(active0, 0x400000000000L); + case 71: + return jjMoveStringLiteralDfa6_0(active0, 0x50000000000L); case 77: if ((active0 & 0x2000L) != 0L) return jjStopAtPos(5, 13); break; case 78: + if ((active0 & 0x400000000L) != 0L) + return jjStopAtPos(5, 34); return jjMoveStringLiteralDfa6_0(active0, 0x200000000L); + case 84: + return jjMoveStringLiteralDfa6_0(active0, 0x21000000000L); + case 89: + return jjMoveStringLiteralDfa6_0(active0, 0x84000000000L); case 105: return jjMoveStringLiteralDfa6_0(active0, 0x30000000L); case 108: @@ -264,6 +326,24 @@ { case 67: return jjMoveStringLiteralDfa7_0(active0, 0x200000000L); + case 69: + if ((active0 & 0x10000000000L) != 0L) + return jjStopAtPos(6, 40); + else if ((active0 & 0x40000000000L) != 0L) + return jjStopAtPos(6, 42); + break; + case 73: + return jjMoveStringLiteralDfa7_0(active0, 0x2800000000L); + case 78: + if ((active0 & 0x200000000000L) != 0L) + return jjStopAtPos(6, 45); + break; + case 80: + return jjMoveStringLiteralDfa7_0(active0, 0xa5000000000L); + case 82: + if ((active0 & 0x400000000000L) != 0L) + return jjStopAtPos(6, 46); + break; case 83: return jjMoveStringLiteralDfa7_0(active0, 0x4000000L); case 101: @@ -295,7 +375,15 @@ switch(curChar) { case 69: - return jjMoveStringLiteralDfa8_0(active0, 0x200000000L); + return jjMoveStringLiteralDfa8_0(active0, 0x84200000000L); + case 78: + if ((active0 & 0x800000000L) != 0L) + return jjStopAtPos(7, 35); + else if ((active0 & 0x2000000000L) != 0L) + return jjStopAtPos(7, 37); + break; + case 82: + return jjMoveStringLiteralDfa8_0(active0, 0x21000000000L); case 83: return jjMoveStringLiteralDfa8_0(active0, 0x4000000L); case 105: @@ -319,9 +407,9 @@ switch(curChar) { case 79: - return jjMoveStringLiteralDfa9_0(active0, 0x4000000L); + return jjMoveStringLiteralDfa9_0(active0, 0x21004000000L); case 80: - return jjMoveStringLiteralDfa9_0(active0, 0x200000000L); + return jjMoveStringLiteralDfa9_0(active0, 0x84200000000L); case 97: return jjMoveStringLiteralDfa9_0(active0, 0x20000000L); case 99: @@ -350,6 +438,10 @@ if ((active0 & 0x4000000L) != 0L) return jjStopAtPos(9, 26); break; + case 80: + return jjMoveStringLiteralDfa10_0(active0, 0x21000000000L); + case 82: + return jjMoveStringLiteralDfa10_0(active0, 0x84000000000L); case 84: return jjMoveStringLiteralDfa10_0(active0, 0x200000000L); case 101: @@ -376,8 +468,10 @@ } switch(curChar) { + case 69: + return jjMoveStringLiteralDfa11_0(active0, 0x21000000000L); case 79: - return jjMoveStringLiteralDfa11_0(active0, 0x200000000L); + return jjMoveStringLiteralDfa11_0(active0, 0x84200000000L); default : break; } @@ -398,11 +492,237 @@ if ((active0 & 0x200000000L) != 0L) return jjStopAtPos(11, 33); break; + case 80: + return jjMoveStringLiteralDfa12_0(active0, 0x84000000000L); + case 82: + return jjMoveStringLiteralDfa12_0(active0, 0x21000000000L); default : break; } return jjStartNfa_0(10, active0); } +private final int jjMoveStringLiteralDfa12_0(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_0(10, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(11, active0); + return 12; + } + switch(curChar) + { + case 69: + return jjMoveStringLiteralDfa13_0(active0, 0x84000000000L); + case 84: + return jjMoveStringLiteralDfa13_0(active0, 0x21000000000L); + default : + break; + } + return jjStartNfa_0(11, active0); +} +private final int jjMoveStringLiteralDfa13_0(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_0(11, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(12, active0); + return 13; + } + switch(curChar) + { + case 82: + return jjMoveStringLiteralDfa14_0(active0, 0x84000000000L); + case 89: + return jjMoveStringLiteralDfa14_0(active0, 0x21000000000L); + default : + break; + } + return jjStartNfa_0(12, active0); +} +private final int jjMoveStringLiteralDfa14_0(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_0(12, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(13, active0); + return 14; + } + switch(curChar) + { + case 68: + return jjMoveStringLiteralDfa15_0(active0, 0x1000000000L); + case 82: + return jjMoveStringLiteralDfa15_0(active0, 0x20000000000L); + case 84: + return jjMoveStringLiteralDfa15_0(active0, 0x84000000000L); + default : + break; + } + return jjStartNfa_0(13, active0); +} +private final int jjMoveStringLiteralDfa15_0(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_0(13, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(14, active0); + return 15; + } + switch(curChar) + { + case 65: + return jjMoveStringLiteralDfa16_0(active0, 0x20000000000L); + case 79: + return jjMoveStringLiteralDfa16_0(active0, 0x1000000000L); + case 89: + return jjMoveStringLiteralDfa16_0(active0, 0x84000000000L); + default : + break; + } + return jjStartNfa_0(14, active0); +} +private final int jjMoveStringLiteralDfa16_0(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_0(14, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(15, active0); + return 16; + } + switch(curChar) + { + case 68: + return jjMoveStringLiteralDfa17_0(active0, 0x4000000000L); + case 77: + return jjMoveStringLiteralDfa17_0(active0, 0x1000000000L); + case 78: + return jjMoveStringLiteralDfa17_0(active0, 0x20000000000L); + case 82: + return jjMoveStringLiteralDfa17_0(active0, 0x80000000000L); + default : + break; + } + return jjStartNfa_0(15, active0); +} +private final int jjMoveStringLiteralDfa17_0(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_0(15, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(16, active0); + return 17; + } + switch(curChar) + { + case 65: + return jjMoveStringLiteralDfa18_0(active0, 0x81000000000L); + case 71: + return jjMoveStringLiteralDfa18_0(active0, 0x20000000000L); + case 79: + return jjMoveStringLiteralDfa18_0(active0, 0x4000000000L); + default : + break; + } + return jjStartNfa_0(16, active0); +} +private final int jjMoveStringLiteralDfa18_0(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_0(16, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(17, active0); + return 18; + } + switch(curChar) + { + case 69: + if ((active0 & 0x20000000000L) != 0L) + return jjStopAtPos(18, 41); + break; + case 73: + return jjMoveStringLiteralDfa19_0(active0, 0x1000000000L); + case 77: + return jjMoveStringLiteralDfa19_0(active0, 0x4000000000L); + case 78: + return jjMoveStringLiteralDfa19_0(active0, 0x80000000000L); + default : + break; + } + return jjStartNfa_0(17, active0); +} +private final int jjMoveStringLiteralDfa19_0(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_0(17, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(18, active0); + return 19; + } + switch(curChar) + { + case 65: + return jjMoveStringLiteralDfa20_0(active0, 0x4000000000L); + case 71: + return jjMoveStringLiteralDfa20_0(active0, 0x80000000000L); + case 78: + if ((active0 & 0x1000000000L) != 0L) + return jjStopAtPos(19, 36); + break; + default : + break; + } + return jjStartNfa_0(18, active0); +} +private final int jjMoveStringLiteralDfa20_0(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_0(18, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(19, active0); + return 20; + } + switch(curChar) + { + case 69: + if ((active0 & 0x80000000000L) != 0L) + return jjStopAtPos(20, 43); + break; + case 73: + return jjMoveStringLiteralDfa21_0(active0, 0x4000000000L); + default : + break; + } + return jjStartNfa_0(19, active0); +} +private final int jjMoveStringLiteralDfa21_0(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_0(19, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(20, active0); + return 21; + } + switch(curChar) + { + case 78: + if ((active0 & 0x4000000000L) != 0L) + return jjStopAtPos(21, 38); + break; + default : + break; + } + return jjStartNfa_0(20, active0); +} private final void jjCheckNAdd(int state) { if (jjrounds[state] != jjround) @@ -818,12 +1138,18 @@ "\76\75", "\74\75", null, "\50", "\51", "\54", "\75", "\123\125\102\103\114\101\123\123\117\106", "\123\125\102", "\124\162\141\156\163\151\164\151\166\145", "\106\165\156\143\164\151\157\156\141\154", "\123\171\155\155\145\164\162\151\143", "\111\156\166\145\162\163\145", -"\123\165\142\162\157\154\145", "\123\125\102\103\117\116\103\105\120\124\117\106", }; +"\123\165\142\162\157\154\145", "\123\125\102\103\117\116\103\105\120\124\117\106", +"\104\117\115\101\111\116", "\117\120\104\117\115\101\111\116", +"\117\102\112\105\103\124\120\122\117\120\105\122\124\131\104\117\115\101\111\116", "\104\120\104\117\115\101\111\116", +"\104\101\124\101\124\131\120\105\120\122\117\120\105\122\124\131\104\117\115\101\111\116", "\122\101\116\107\105", "\117\120\122\101\116\107\105", +"\117\102\112\105\103\124\120\122\117\120\105\122\124\131\122\101\116\107\105", "\104\120\122\101\116\107\105", +"\104\101\124\101\124\131\120\105\120\122\117\120\105\122\124\131\122\101\116\107\105", "\104\117\125\102\114\105", "\102\117\117\114\105\101\116", +"\111\116\124\105\107\105\122", }; public static final String[] lexStateNames = { "DEFAULT", }; static final long[] jjtoToken = { - 0x3ffffff01L, + 0x7fffffffff01L, }; static final long[] jjtoSkip = { 0xfeL, Modified: trunk/src/dl-learner/org/dllearner/parser/kb.jj =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/kb.jj 2008-02-19 16:44:57 UTC (rev 614) +++ trunk/src/dl-learner/org/dllearner/parser/kb.jj 2008-02-19 18:28:23 UTC (rev 615) @@ -123,6 +123,10 @@ { kb.addRBoxAxiom(rBoxAxiom); } | rBoxAxiom = Subrole() { kb.addRBoxAxiom(rBoxAxiom); } + | rBoxAxiom = ObjectPropertyDomainAxiom() + { kb.addRBoxAxiom(rBoxAxiom); } + | rBoxAxiom = DatatypePropertyDomainAxiom() + { kb.addRBoxAxiom(rBoxAxiom); } // da Konfigurationsoptionen ausgeschlossen sind, reicht es bis zum "=" zu suchen | LOOKAHEAD(Concept() "=") equality = TBoxEquiv() { kb.addTBoxAxiom(equality); } @@ -198,6 +202,34 @@ { return new SubClassAxiom(c1,c2);} } +ObjectPropertyDomainAxiom ObjectPropertyDomainAxiom() : {ObjectProperty op; Description domain; } +{ + ("DOMAIN" | "OPDOMAIN" | "OBJECTPROPERTYDOMAIN") "(" op=ObjectProperty() ")" "=" domain=Concept() <COMMAND_END> + { return new ObjectPropertyDomainAxiom(op, domain); } +} + +DatatypePropertyDomainAxiom DatatypePropertyDomainAxiom() : {DatatypeProperty op; Description domain; } +{ + ( "DPDOMAIN" | "DATATYPEPROPERTYDOMAIN" ) "(" op=DatatypeProperty() ")" "=" domain=Concept() <COMMAND_END> + { return new DatatypePropertyDomainAxiom(op, domain); } +} + +ObjectPropertyRangeAxiom ObjectPropertyRangeAxiom() : {ObjectProperty op; Description range; } +{ + ("RANGE" | "OPRANGE" | "OBJECTPROPERTYRANGE") "(" op=ObjectProperty() ")" "=" range=Concept() <COMMAND_END> + { return new ObjectPropertyRangeAxiom(op, range); } +} + +DatatypePropertyRangeAxiom DatatypePropertyRangeAxiom() : {DatatypeProperty op; DataRange range; } +{ + ( "DPRANGE" | "DATATYPEPROPERTYRANGE") "(" op=DatatypeProperty() ")" "=" + ( "DOUBLE" { range = new Datatype(Datatype.Type.DOUBLE); } + | "BOOLEAN" { range = new Datatype(Datatype.Type.BOOLEAN); } + | "INTEGER" { range = new Datatype(Datatype.Type.INT); } ) + <COMMAND_END> + { return new DatatypePropertyRangeAxiom(op, range); } +} + Description Concept() : { Description c,c1,c2; @@ -259,6 +291,17 @@ } } +DatatypeProperty DatatypeProperty() : +{ + String name; +} +{ + (name=Id() | name=String()) + { + return new DatatypeProperty(getInternalURI(name)); + } +} + ObjectProperty ObjectProperty() : { String name; Modified: trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIAxiomConvertVisitor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIAxiomConvertVisitor.java 2008-02-19 16:44:57 UTC (rev 614) +++ trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIAxiomConvertVisitor.java 2008-02-19 18:28:23 UTC (rev 615) @@ -240,8 +240,10 @@ * @see org.dllearner.core.owl.PropertyAxiomVisitor#visit(org.dllearner.core.owl.DatatypePropertyDomainAxiom) */ public void visit(DatatypePropertyDomainAxiom datatypePropertyDomainAxiom) { - // TODO Auto-generated method stub - + OWLDescription d = getOWLDescription(datatypePropertyDomainAxiom.getDomain()); + OWLDataProperty dp = factory.getOWLDataProperty(URI.create(datatypePropertyDomainAxiom.getProperty().getName())); + OWLAxiom axiomOWLAPI = factory.getOWLDataPropertyDomainAxiom(dp, d); + addAxiom(axiomOWLAPI); } /* (non-Javadoc) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |