From: <chr...@us...> - 2012-06-16 10:15:06
|
Revision: 3753 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3753&view=rev Author: christinaunger Date: 2012-06-16 10:15:00 +0000 (Sat, 16 Jun 2012) Log Message: ----------- [tbsl] repaired count problem Modified Paths: -------------- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/converter/DRS2SPARQL_Converter.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/DRS_Quantifier.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParser.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParser.jj trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/reader/DUDE_Parser.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/reader/DUDE_Parser.jj trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/reader/DUDE_ParserTokenManager.java trunk/components-ext/src/main/resources/tbsl/lexicon/english.lex trunk/components-ext/src/main/resources/tbsl/lexicon/english_oxford.lex Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/converter/DRS2SPARQL_Converter.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/converter/DRS2SPARQL_Converter.java 2012-06-16 04:19:36 UTC (rev 3752) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/converter/DRS2SPARQL_Converter.java 2012-06-16 10:15:00 UTC (rev 3753) @@ -251,7 +251,17 @@ if (predicate.equals("count")) { // COUNT(?x) AS ?c - query.addSelTerm(new SPARQL_Term(simple.getArguments().get(0).getValue(), SPARQL_Aggregate.COUNT, simple.getArguments().get(1).getValue())); + if (simple.getArguments().get(1).getValue().matches("[0-9]+")) { + String fresh = "v"+createFresh(); + query.addSelTerm(new SPARQL_Term(simple.getArguments().get(0).getValue(), SPARQL_Aggregate.COUNT, fresh)); + query.addFilter(new SPARQL_Filter( + new SPARQL_Pair( + new SPARQL_Term(fresh,false), + new SPARQL_Term(simple.getArguments().get(1).getValue(),literal), + SPARQL_PairType.EQ))); + } else { + query.addSelTerm(new SPARQL_Term(simple.getArguments().get(0).getValue(), SPARQL_Aggregate.COUNT, simple.getArguments().get(1).getValue())); + } return query; } else if (predicate.equals("sum")) { query.addSelTerm(new SPARQL_Term(simple.getArguments().get(1).getValue(), SPARQL_Aggregate.SUM)); @@ -313,25 +323,9 @@ query.addFilter(new SPARQL_Filter( new SPARQL_Pair( new SPARQL_Term(simple.getArguments().get(0).getValue(),false), - new SPARQL_Term(simple.getArguments().get(1).getValue(),true), + new SPARQL_Term(simple.getArguments().get(1).getValue().replace("_","").trim(),true), SPARQL_PairType.REGEX))); } - else if (predicate.equals("regextoken")) { - String arg = simple.getArguments().get(1).getValue(); - String regex = null; - for (Slot slot : slots) { - if (slot.getAnchor().equals(arg)) { - if (!slot.getWords().isEmpty()) regex = slot.getWords().get(0); - } - } - if (regex != null) { - query.addFilter(new SPARQL_Filter( - new SPARQL_Pair( - new SPARQL_Term(simple.getArguments().get(0).getValue(),false), - new SPARQL_Term("'"+regex+"'",false), - SPARQL_PairType.REGEX))); - } - } else { if (arity == 1) { SPARQL_Term term = new SPARQL_Term(simple.getArguments().get(0).getValue(),false);term.setIsVariable(true); @@ -409,8 +403,8 @@ secondArg = c.getArguments().get(1); firstIsURI = isUri(firstArg.getValue()); secondIsURI = isUri(secondArg.getValue()); - firstIsInt = firstArg.getValue().matches("[0..9]+"); - secondIsInt = secondArg.getValue().matches("[0..9]+"); + firstIsInt = firstArg.getValue().matches("(\\?)?[0..9]+"); + secondIsInt = secondArg.getValue().matches("(\\?)?[0..9]+"); drs.removeCondition(c); if (firstIsURI || firstIsInt) { Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/DRS_Quantifier.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/DRS_Quantifier.java 2012-06-16 04:19:36 UTC (rev 3752) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/DRS_Quantifier.java 2012-06-16 10:15:00 UTC (rev 3753) @@ -1,5 +1,5 @@ package org.dllearner.algorithm.tbsl.sem.drs; public enum DRS_Quantifier { - SOME, EVERY, MOST, MANY, HOWMANY, THEMOST, FEW, NO, THELEAST + SOME, EVERY, MOST, MANY, HOWMANY, THEMOST, FEW, NO, THELEAST, OR } Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParser.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParser.java 2012-06-16 04:19:36 UTC (rev 3752) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParser.java 2012-06-16 10:15:00 UTC (rev 3753) @@ -194,6 +194,7 @@ if (quantifier.toString().equals("MANY")) {drs.setQuantifier(DRS_Quantifier.MANY);} if (quantifier.toString().equals("HOWMANY")) {drs.setQuantifier(DRS_Quantifier.HOWMANY);} if (quantifier.toString().equals("NO")) {drs.setQuantifier(DRS_Quantifier.NO);} + if (quantifier.toString().equals("OR")) {drs.setQuantifier(DRS_Quantifier.OR);} {if (true) return drs;} } else { @@ -523,6 +524,11 @@ return false; } + private boolean jj_3_22() { + if (jj_scan_token(A)) return true; + return false; + } + private boolean jj_3_12() { if (jj_scan_token(HOWMANY)) return true; return false; @@ -544,8 +550,13 @@ return false; } - private boolean jj_3_22() { - if (jj_scan_token(A)) return true; + private boolean jj_3R_3() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_22()) { + jj_scanpos = xsp; + if (jj_3_23()) return true; + } return false; } @@ -560,16 +571,6 @@ return false; } - private boolean jj_3R_3() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_22()) { - jj_scanpos = xsp; - if (jj_3_23()) return true; - } - return false; - } - private boolean jj_3_5() { if (jj_scan_token(5)) return true; if (jj_3R_2()) return true; @@ -581,11 +582,6 @@ return false; } - private boolean jj_3_14() { - if (jj_scan_token(NO)) return true; - return false; - } - private boolean jj_3R_4() { Token xsp; xsp = jj_scanpos; @@ -596,6 +592,11 @@ return false; } + private boolean jj_3_14() { + if (jj_scan_token(NO)) return true; + return false; + } + private boolean jj_3R_1() { if (jj_3R_4()) return true; Token xsp; Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParser.jj =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParser.jj 2012-06-16 04:19:36 UTC (rev 3752) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParser.jj 2012-06-16 10:15:00 UTC (rev 3753) @@ -191,6 +191,7 @@ if (quantifier.toString().equals("MANY")) {drs.setQuantifier(DRS_Quantifier.MANY);} if (quantifier.toString().equals("HOWMANY")) {drs.setQuantifier(DRS_Quantifier.HOWMANY);} if (quantifier.toString().equals("NO")) {drs.setQuantifier(DRS_Quantifier.NO);} + if (quantifier.toString().equals("OR")) {drs.setQuantifier(DRS_Quantifier.OR);} return drs; Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/reader/DUDE_Parser.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/reader/DUDE_Parser.java 2012-06-16 04:19:36 UTC (rev 3752) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/reader/DUDE_Parser.java 2012-06-16 10:15:00 UTC (rev 3753) @@ -412,6 +412,7 @@ if (quantifier.toString().equals("MANY")) {drs.setQuantifier(DRS_Quantifier.MANY);} if (quantifier.toString().equals("HOWMANY")) {drs.setQuantifier(DRS_Quantifier.HOWMANY);} if (quantifier.toString().equals("NO")) {drs.setQuantifier(DRS_Quantifier.NO);} + if (quantifier.toString().equals("OR")) {drs.setQuantifier(DRS_Quantifier.OR);} {if (true) return drs;} } else { @@ -830,14 +831,6 @@ finally { jj_save(39, xla); } } - private boolean jj_3R_13() { - if (jj_3R_7()) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_36()) jj_scanpos = xsp; - return false; - } - private boolean jj_3_12() { if (jj_scan_token(2)) return true; if (jj_3R_1()) return true; @@ -891,17 +884,17 @@ return false; } + private boolean jj_3_38() { + if (jj_scan_token(C)) return true; + return false; + } + private boolean jj_3R_11() { if (jj_scan_token(LABEL)) return true; if (jj_scan_token(11)) return true; return false; } - private boolean jj_3_38() { - if (jj_scan_token(C)) return true; - return false; - } - private boolean jj_3R_16() { if (jj_3R_7()) return true; if (jj_scan_token(14)) return true; @@ -923,19 +916,13 @@ return false; } - private boolean jj_3_23() { - if (jj_scan_token(MOST)) return true; - return false; - } - private boolean jj_3_37() { if (jj_scan_token(A)) return true; return false; } - private boolean jj_3_30() { - if (jj_3R_10()) return true; - if (jj_scan_token(6)) return true; + private boolean jj_3_23() { + if (jj_scan_token(MOST)) return true; return false; } @@ -949,6 +936,12 @@ return false; } + private boolean jj_3_30() { + if (jj_3R_10()) return true; + if (jj_scan_token(6)) return true; + return false; + } + private boolean jj_3_34() { if (jj_scan_token(2)) return true; if (jj_3R_4()) return true; @@ -993,17 +986,17 @@ return false; } + private boolean jj_3R_4() { + if (jj_3R_16()) return true; + return false; + } + private boolean jj_3_10() { if (jj_scan_token(9)) return true; if (jj_scan_token(LABEL)) return true; return false; } - private boolean jj_3R_4() { - if (jj_3R_16()) return true; - return false; - } - private boolean jj_3_28() { if (jj_scan_token(NO)) return true; return false; @@ -1175,6 +1168,14 @@ return false; } + private boolean jj_3R_13() { + if (jj_3R_7()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_36()) jj_scanpos = xsp; + return false; + } + private boolean jj_3R_8() { if (jj_3R_10()) return true; Token xsp; Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/reader/DUDE_Parser.jj =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/reader/DUDE_Parser.jj 2012-06-16 04:19:36 UTC (rev 3752) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/reader/DUDE_Parser.jj 2012-06-16 10:15:00 UTC (rev 3753) @@ -382,6 +382,7 @@ if (quantifier.toString().equals("MANY")) {drs.setQuantifier(DRS_Quantifier.MANY);} if (quantifier.toString().equals("HOWMANY")) {drs.setQuantifier(DRS_Quantifier.HOWMANY);} if (quantifier.toString().equals("NO")) {drs.setQuantifier(DRS_Quantifier.NO);} + if (quantifier.toString().equals("OR")) {drs.setQuantifier(DRS_Quantifier.OR);} return drs; @@ -504,8 +505,8 @@ //TOKEN: {<WORD: (["a"-"z","A"-"Z","_",".","#",":","0"-"9"])+>} //TOKEN: {<DR: (["?","!"])?(["a"-"z","A"-"Z","0"-"9","."])+>} -TOKEN: {<A: (["a"-"z","A"-"Z","0"-"9","'","_"])+>} -TOKEN: {<B: (["a"-"z","A"-"Z","_",".","#","0"-"9"])+":"(["a"-"z","A"-"Z","_",".","#","0"-"9"])+>} // oder eher: SLOT_([...])+ +TOKEN: {<A: (["a"-"z","A"-"Z","0"-"9","'","_","-"])+>} +TOKEN: {<B: (["a"-"z","A"-"Z","_",".","#","0"-"9"])+":"(["a"-"z","A"-"Z","_",".","#","0"-"9","-"])+>} // oder eher: SLOT_([...])+ TOKEN: {<C: ["?","!"](["a"-"z","A"-"Z","0"-"9"])+>} Token dr() : { Token t; }{ (t=<A> | t=<C>) { return t; } } Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/reader/DUDE_ParserTokenManager.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/reader/DUDE_ParserTokenManager.java 2012-06-16 04:19:36 UTC (rev 3752) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/reader/DUDE_ParserTokenManager.java 2012-06-16 10:15:00 UTC (rev 3753) @@ -403,7 +403,7 @@ jjCheckNAddTwoStates(3, 4); else if (curChar == 58) jjCheckNAdd(5); - if ((0x3ff008000000000L & l) != 0L) + if ((0x3ff208000000000L & l) != 0L) { if (kind > 26) kind = 26; @@ -417,7 +417,7 @@ jjCheckNAdd(9); else if ((0x8000000200000000L & l) != 0L) jjCheckNAdd(7); - if ((0x3ff008000000000L & l) != 0L) + if ((0x3ff208000000000L & l) != 0L) { if (kind > 26) kind = 26; @@ -432,7 +432,7 @@ jjstateSet[jjnewStateCnt++] = 1; break; case 2: - if ((0x3ff008000000000L & l) == 0L) + if ((0x3ff208000000000L & l) == 0L) break; if (kind > 26) kind = 26; @@ -443,7 +443,7 @@ jjCheckNAddTwoStates(3, 4); break; case 5: - if ((0x3ff400800000000L & l) == 0L) + if ((0x3ff600800000000L & l) == 0L) break; if (kind > 27) kind = 27; Modified: trunk/components-ext/src/main/resources/tbsl/lexicon/english.lex =================================================================== --- trunk/components-ext/src/main/resources/tbsl/lexicon/english.lex 2012-06-16 04:19:36 UTC (rev 3752) +++ trunk/components-ext/src/main/resources/tbsl/lexicon/english.lex 2012-06-16 10:15:00 UTC (rev 3753) @@ -142,8 +142,6 @@ and || (S S* CC:'and' S[s]) || <x,l1,t,[l1:[|]],[(l2,y,s,t)],[l1=l2],[]> and || (DP DP* CC:'and' DP[dp]) || <x,l1,<<e,t>,t>,[l1:[|]],[(l2,y,dp,<<e,t>,t>)],[l1=l2],[]> and || (NP NP* CC:'and' NP[np]) || <x,l1,<e,t>,[l1:[|x=y]],[(l2,y,np,<e,t>)],[l1=l2],[]> - and || (VP VP* CC:'and' VP[vp]) || - - and || (ADJ ADJ* CC:'and' ADJ[adj]) || - but || (S S* CC:'but' S[s]) || <x,l1,t,[l1:[|]],[(l2,y,s,t)],[l1=l2],[]> but || (DP DP* CC:'but' DP[dp]) || <x,l1,<<e,t>,t>,[l1:[|]],[(l2,y,dp,<<e,t>,t>)],[l1=l2],[]> @@ -151,11 +149,10 @@ as well as || (NP NP* CC:'as' CC:'well' CC:'as' NP[np]) || <x,l1,<e,t>,[l1:[|]],[(l2,y,np,<e,t>)],[l1=l2],[]> - or || (S S* CC:'or' S[2]) || - - or || (DP DP* CC:'or' DP[2]) || - - or || (NP NP* CC:'or' NP[2]) || - - or || (VP VP* CC:'or' VP[2]) || - - or || (ADJ ADJ* CC:'or' ADJ[2]) || - + or || (S S* CC:'or' S[cc]) || <y, l2, <<e,t>,t>, [ l1:[ | l2:[ | ] OR y l3:[|] ] ], [ (l4,y,cc,<e,t>) ], [ l4=l3 ],[]> + or || (DP DP* CC:'or' DP[cc]) || <y, l2, <<e,t>,t>, [ l1:[ | l2:[ | ] OR y l3:[|] ] ], [ (l4,y,cc,<e,t>) ], [ l4=l3 ],[]> + or || (NP NP* CC:'or' NP[cc]) || <y, l2, <<e,t>,t>, [ l1:[ | l2:[ | ] OR y l3:[|] ] ], [ (l4,y,cc,<e,t>) ], [ l4=l3 ],[]> + or || (ADJ ADJ* CC:'or' ADJ[cc]) || - // EXISTENTIAL Modified: trunk/components-ext/src/main/resources/tbsl/lexicon/english_oxford.lex =================================================================== --- trunk/components-ext/src/main/resources/tbsl/lexicon/english_oxford.lex 2012-06-16 04:19:36 UTC (rev 3752) +++ trunk/components-ext/src/main/resources/tbsl/lexicon/english_oxford.lex 2012-06-16 10:15:00 UTC (rev 3753) @@ -4,10 +4,10 @@ close to || (NP NP* (PP P:'close' P:'to' DP[dp])) || <x,l1,<e,t>, [ l1:[ | SLOT_closeto(x,y) ] ], [ (l2,y,dp,<<e,t>,t>) ], [ l2=l1 ],[ SLOT_closeto/OBJECTPROPERTY/near ]> near || (NP NP* (PP P:'near' DP[dp])) || <x,l1,<e,t>, [ l1:[ | SLOT_near(x,y) ] ], [ (l2,y,dp,<<e,t>,t>) ], [ l2=l1 ],[ SLOT_near/OBJECTPROPERTY/near ]> nearby || (NP NP* (PP P:'nearby' DP[dp])) || <x,l1,<e,t>, [ l1:[ | SLOT_nearby(x,y) ] ], [ (l2,y,dp,<<e,t>,t>) ], [ l2=l1 ],[ SLOT_nearby/OBJECTPROPERTY/near ]> - within walking distance from || (NP NP* (PP P:'within' (NP N:'walking' N:'distance' P:'from' DP[dp]))) || <x,l1,<e,t>, [ l1:[ | SLOT_near(x,y) ] ], [ (l2,y,dp,<<e,t>,t>) ], [ l2=l1 ],[ SLOT_near/OBJECTPROPERTY/near ]> - within minutes of || (NP NP* (PP P:'within' (NP N:'minutes' P:'of' DP[dp]))) || <x,l1,<e,t>, [ l1:[ | SLOT_near(x,y) ] ], [ (l2,y,dp,<<e,t>,t>) ], [ l2=l1 ],[ SLOT_near/OBJECTPROPERTY/near ]> - in walking distance from || (NP NP* (PP P:'in' (NP N:'walking' N:'distance' P:'from' DP[dp]))) || <x,l1,<e,t>, [ l1:[ | SLOT_near(x,y) ] ], [ (l2,y,dp,<<e,t>,t>) ], [ l2=l1 ],[ SLOT_near/OBJECTPROPERTY/near ]> - at walking distance from || (NP NP* (PP P:'at' (NP N:'walking' N:'distance' P:'from' DP[dp]))) || <x,l1,<e,t>, [ l1:[ | SLOT_near(x,y) ] ], [ (l2,y,dp,<<e,t>,t>) ], [ l2=l1 ],[ SLOT_near/OBJECTPROPERTY/near ]> + within walking distance from || (NP NP* (PP P:'within' (NP N:'walking' N:'distance' P:'from' DP[dp]))) || <x,l1,<e,t>, [ l1:[ | SLOT_near(x,y) ] ], [ (l2,y,dp,<<e,t>,t>) ], [ l2=l1 ],[ SLOT_near/OBJECTPROPERTY/at_walking_distance ]> + within minutes of || (NP NP* (PP P:'within' (NP N:'minutes' P:'of' DP[dp]))) || <x,l1,<e,t>, [ l1:[ | SLOT_near(x,y) ] ], [ (l2,y,dp,<<e,t>,t>) ], [ l2=l1 ],[ SLOT_near/OBJECTPROPERTY/at_walking_distance ]> + in walking distance from || (NP NP* (PP P:'in' (NP N:'walking' N:'distance' P:'from' DP[dp]))) || <x,l1,<e,t>, [ l1:[ | SLOT_near(x,y) ] ], [ (l2,y,dp,<<e,t>,t>) ], [ l2=l1 ],[ SLOT_near/OBJECTPROPERTY/at_walking_distance ]> + at walking distance from || (NP NP* (PP P:'at' (NP N:'walking' N:'distance' P:'from' DP[dp]))) || <x,l1,<e,t>, [ l1:[ | SLOT_near(x,y) ] ], [ (l2,y,dp,<<e,t>,t>) ], [ l2=l1 ],[ SLOT_near/OBJECTPROPERTY/at_walking_distance ]> in || (NP NP* (PP P:'in' DP[dp])) || <x,l1,<e,t>, [ l1:[ | SLOT_location(x,y) ] ], [ (l2,y,dp,<<e,t>,t>) ], [ l2=l1 ],[ SLOT_location/PROPERTY/location^city^postal_code^address^street ]> since || (NP NP* (PP P:'since' DP[dp])) || <x,l1,<e,t>, [ l1:[ | SLOT_since(x,y) ] ], [ (l2,y,dp,<<e,t>,t>) ], [ l2=l1 ],[ SLOT_since/PROPERTY/since ]> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |