From: <chr...@us...> - 2011-09-13 14:41:45
|
Revision: 3252 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3252&view=rev Author: christinaunger Date: 2011-09-13 14:41:35 +0000 (Tue, 13 Sep 2011) Log Message: ----------- [tbsl] updated BasicQueryTemplate generation Modified Paths: -------------- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/cli/TestFrontend.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/converter/DRS2BasicSPARQL_Converter.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/DRS.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/data/Dude.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/BasicQueryTemplate.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/templator/BasicSlotBuilder.java Added Paths: ----------- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/Path.java Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/cli/TestFrontend.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/cli/TestFrontend.java 2011-09-13 09:54:19 UTC (rev 3251) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/cli/TestFrontend.java 2011-09-13 14:41:35 UTC (rev 3252) @@ -18,9 +18,6 @@ public static void main(String[] args) { - Templator templator = new Templator(); - BasicTemplator btemplator = new BasicTemplator(); - System.out.println("======= SPARQL Templator ================="); System.out.println("Running in " + MODE + " mode."); System.out.println("\nType ':q' to quit."); @@ -33,12 +30,14 @@ } if (MODE.equals("BASIC")) { + BasicTemplator btemplator = new BasicTemplator(); Set<BasicQueryTemplate> querytemps = btemplator.buildBasicQueries(s); for (BasicQueryTemplate temp : querytemps) { System.out.println(temp.toString()); } } else if (MODE.equals("LEIPZG")) { + Templator templator = new Templator(); Set<Template> temps = templator.buildTemplates(s); for (Template temp : temps) { System.out.println(temp.toString()); Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/converter/DRS2BasicSPARQL_Converter.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/converter/DRS2BasicSPARQL_Converter.java 2011-09-13 09:54:19 UTC (rev 3251) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/converter/DRS2BasicSPARQL_Converter.java 2011-09-13 14:41:35 UTC (rev 3252) @@ -13,6 +13,7 @@ import org.dllearner.algorithm.tbsl.sem.drs.Negated_DRS; import org.dllearner.algorithm.tbsl.sem.drs.Simple_DRS_Condition; import org.dllearner.algorithm.tbsl.sparql.BasicQueryTemplate; +import org.dllearner.algorithm.tbsl.sparql.Path; import org.dllearner.algorithm.tbsl.sparql.SPARQL_Aggregate; import org.dllearner.algorithm.tbsl.sparql.SPARQL_Filter; import org.dllearner.algorithm.tbsl.sparql.SPARQL_OrderBy; @@ -69,7 +70,7 @@ } } - for (DiscourseReferent referent : drs.getDRs()) { + for (DiscourseReferent referent : drs.collectDRs()) { if (referent.isMarked()) { SPARQL_Term term = new SPARQL_Term(referent.toString().replace("?","")); term.setIsVariable(true); @@ -177,17 +178,31 @@ SPARQL_Property prop = new SPARQL_Property(predicate); prop.setIsVariable(true); - boolean noliteral = true; + boolean literal = false; if (simple.getArguments().size() > 1 && simple.getArguments().get(1).getValue().matches("\\d+")) { - noliteral = false; + literal = true; } - if (predicate.equals("p")) { - query.addConditions(simple.toString()); + if (predicate.equals("of")) { + if (simple.getArguments().size() == 2) { + Path p = new Path(); + p.setStart(simple.getArguments().get(1).getValue()); + p.setTarget(simple.getArguments().get(0).getValue()); + query.addConditions(p); + } } + if (predicate.startsWith("p")) { + if (simple.getArguments().size() == 2) { + Path p = new Path(); + p.setStart(simple.getArguments().get(0).getValue()); + p.setVia(simple.getPredicate()); + p.setTarget(simple.getArguments().get(1).getValue()); + query.addConditions(p); + } + } else if (predicate.equals("count")) { // COUNT(?x) AS ?c - if (noliteral) { + if (!literal) { query.addSelTerm(new SPARQL_Term(simple.getArguments().get(0).getValue(), SPARQL_Aggregate.COUNT, simple.getArguments().get(1).getValue())); return query; } @@ -208,28 +223,28 @@ 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(),noliteral), + new SPARQL_Term(simple.getArguments().get(1).getValue(),literal), SPARQL_PairType.GT))); return query; } else if (predicate.equals("greaterorequal")) { 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(),noliteral), + new SPARQL_Term(simple.getArguments().get(1).getValue(),literal), SPARQL_PairType.GTEQ))); return query; } else if (predicate.equals("less")) { 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(),noliteral), + new SPARQL_Term(simple.getArguments().get(1).getValue(),literal), SPARQL_PairType.LT))); return query; } else if (predicate.equals("lessorequal")) { 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(),noliteral), + new SPARQL_Term(simple.getArguments().get(1).getValue(),literal), SPARQL_PairType.LTEQ))); return query; } else if (predicate.equals("maximum")) { @@ -256,7 +271,7 @@ 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(),noliteral), + new SPARQL_Term(simple.getArguments().get(1).getValue(),literal), SPARQL_PairType.EQ))); return query; } Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/DRS.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/DRS.java 2011-09-13 09:54:19 UTC (rev 3251) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/DRS.java 2011-09-13 14:41:35 UTC (rev 3252) @@ -151,8 +151,7 @@ } - public Set<DiscourseReferent> getDRs() { - + public Set<DiscourseReferent> getDRs() { return m_DiscourseReferents; } @@ -167,6 +166,18 @@ } return result; } + + public Set<DiscourseReferent> collectDRs() { + Set<DiscourseReferent> result = new HashSet<DiscourseReferent>(); + result.addAll(m_DiscourseReferents); + for (DRS_Condition c : m_DRS_Conditions) { + if (c.isComplexCondition()) { + result.addAll(((Complex_DRS_Condition) c).m_Restrictor.collectDRs()); + result.addAll(((Complex_DRS_Condition) c).m_Scope.collectDRs()); + } + } + return result; + } public Set<DRS_Condition> getConditions() { Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/data/Dude.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/data/Dude.java 2011-09-13 09:54:19 UTC (rev 3251) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/data/Dude.java 2011-09-13 14:41:35 UTC (rev 3252) @@ -270,15 +270,20 @@ for (String var : variables) { String freshbase; - if (var.charAt(0) == '?') { - freshbase = "?"; + String varbase; + if (var.charAt(0) == '?') { + freshbase = "?"; + varbase = ""+var.charAt(1); } - else { + else { freshbase = ""; + varbase = ""+var.charAt(0); } - String fresh = freshbase + "v0"; - for (int i = 0; (allVariables.contains("v"+i) || allVariables.contains("?v"+i)); i++) { - fresh = freshbase + "v"+ (i+1); + + String fresh = freshbase + varbase + "0"; + + for (int i = 0; (allVariables.contains(varbase+i) || allVariables.contains("?"+varbase+i)); i++) { + fresh = freshbase + varbase + (i+1); } allVariables.add(fresh); dude.replaceReferent(var,fresh); Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/BasicQueryTemplate.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/BasicQueryTemplate.java 2011-09-13 09:54:19 UTC (rev 3251) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/BasicQueryTemplate.java 2011-09-13 14:41:35 UTC (rev 3252) @@ -10,7 +10,7 @@ Set<SPARQL_Term> selTerms; // SELECT ?x ?y Set<SPARQL_Prefix> prefixes; - Set<String> conditions; + Set<Path> conditions; Set<SPARQL_Term> orderBy; Set<SPARQL_Filter> filter; SPARQL_QueryType qt = SPARQL_QueryType.SELECT; @@ -24,7 +24,7 @@ super(); selTerms = new HashSet<SPARQL_Term>(); prefixes = new HashSet<SPARQL_Prefix>(); - conditions = new HashSet<String>(); + conditions = new HashSet<Path>(); orderBy = new HashSet<SPARQL_Term>(); filter = new HashSet<SPARQL_Filter>(); slots = new ArrayList<Slot>(); @@ -34,8 +34,8 @@ slots.add(s); } - public void addConditions(String s) { - conditions.add(s); + public void addConditions(Path p) { + conditions.add(p); } @Override @@ -61,8 +61,8 @@ retVal += "WHERE {\n"; - for (String s : conditions) { - retVal += "\t" + s + "\n"; + for (Path p : conditions) { + retVal += "\t" + p.toString() + "\n"; } for (SPARQL_Filter f : filter) Added: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/Path.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/Path.java (rev 0) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/Path.java 2011-09-13 14:41:35 UTC (rev 3252) @@ -0,0 +1,38 @@ +package org.dllearner.algorithm.tbsl.sparql; + +public class Path { + + String start; + String via; + String target; + + public Path() { + start = ""; + via = ""; + target = ""; + } + public Path(String s,String v,String t) { + start = s; + via = v; + target = t; + } + + public void setStart(String s) { + start = s; + } + public void setVia(String v) { + via = v; + } + public void setTarget(String t) { + target = t; + } + + public String toString() { + if (via.isEmpty()) { + return "?" + start + " -- " + "?" + target; + } + else { + return "?" + start + " -- ?" + via + " -- ?" + target; + } + } +} Property changes on: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/Path.java ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/templator/BasicSlotBuilder.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/templator/BasicSlotBuilder.java 2011-09-13 09:54:19 UTC (rev 3251) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/templator/BasicSlotBuilder.java 2011-09-13 14:41:35 UTC (rev 3252) @@ -89,13 +89,13 @@ else if (pos.equals("NPREP")) { String[] dpEntry1 = {token, "(DP (NP " + treetoken + " DP[pobj]))", - "<x,l1,<<e,t>,t>,[ l1:[ x | SLOT_" + tokenfluent + "(x) ] ],[(l2,y,pobj,<<e,t>,t>)],[l2=l1],[" + slot + "]>"}; + "<x,l1,<<e,t>,t>,[ l1:[ x | SLOT_" + tokenfluent + "(x), of(x,y) ] ],[(l2,y,pobj,<<e,t>,t>)],[l2=l1],[" + slot + "]>"}; String[] dpEntry2 = {token, "(DP DET[det] (NP " + treetoken + " DP[pobj]))", - "<x,l1,<<e,t>,t>,[ l1:[ | SLOT_" + tokenfluent + "(x) ] ],[(l2,y,pobj,<<e,t>,t>),(l3,x,det,e)],[l2=l1,l3=l1],[" + slot + "]>"}; + "<x,l1,<<e,t>,t>,[ l1:[ | SLOT_" + tokenfluent + "(x), of(x,y) ] ],[(l2,y,pobj,<<e,t>,t>),(l3,x,det,e)],[l2=l1,l3=l1],[" + slot + "]>"}; String[] npEntry = {token, "(NP " + treetoken + " DP[pobj])", - "<x,l1,<e,t>,[ l1:[ | SLOT_" + tokenfluent + "(x) ] ],[(l2,y,pobj,<<e,t>,t>)],[l2=l1],[" + slot + "]>"}; + "<x,l1,<e,t>,[ l1:[ | SLOT_" + tokenfluent + "(x), of(x,y) ] ],[(l2,y,pobj,<<e,t>,t>)],[l2=l1],[" + slot + "]>"}; result.add(dpEntry1); result.add(dpEntry2); result.add(npEntry); @@ -104,13 +104,13 @@ slot = "SLOT_" + tokenfluent + "/UNSPEC/" + token; String[] dpEntry1 = {token, "(DP (NP " + treetoken + " DP[pobj]))", - "<x,l1,<<e,t>,t>,[ l1:[ x | SLOT_" + tokenfluent + "(p) ] ],[(l2,y,pobj,<<e,t>,t>)],[l2=l1],[" + slot + "]>" }; + "<x,l1,<<e,t>,t>,[ l1:[ x,p | SLOT_" + tokenfluent + "(p), p(x,y) ] ],[(l2,y,pobj,<<e,t>,t>)],[l2=l1],[" + slot + "]>" }; String[] dpEntry2 = {token, "(DP DET[det] (NP " + treetoken + " DP[pobj]))", - "<x,l1,<<e,t>,t>,[ l1:[ | SLOT_" + tokenfluent + "(p) ] ],[(l2,y,pobj,<<e,t>,t>),(l3,x,det,e)],[l2=l1,l3=l1],[" + slot + "]>" }; + "<x,l1,<<e,t>,t>,[ l1:[ p | SLOT_" + tokenfluent + "(p), p(x,y) ] ],[(l2,y,pobj,<<e,t>,t>),(l3,x,det,e)],[l2=l1,l3=l1],[" + slot + "]>" }; String[] npEntry = {token, "(NP " + treetoken + " DP[pobj])", - "<x,l1,<e,t>,[ l1:[ | SLOT_" + tokenfluent + "(p) ] ],[(l2,y,pobj,<<e,t>,t>)],[l2=l1],[" + slot + "]>"}; + "<x,l1,<e,t>,[ l1:[ p | SLOT_" + tokenfluent + "(p), p(x,y) ] ],[(l2,y,pobj,<<e,t>,t>)],[l2=l1],[" + slot + "]>"}; result.add(dpEntry1); result.add(dpEntry2); result.add(npEntry); @@ -136,81 +136,81 @@ if (pos.equals("PASSIVE")) { String[] passEntry1 = {token, "(S DP[subj] (VP V:'" + token + "' DP[obj]))", - "<x,l1,t,[ l1:[|], l4:[ | SLOT_" + token + "(p) ] ],[(l2,x,subj,<<e,t>,t>),(l3,y,obj,<<e,t>,t>)],[ l2<l1,l3<l1,l4<scope(l2),l4<scope(l3) ],[" + slot + "]>"}; + "<x,l1,t,[ l1:[|], l4:[ p | SLOT_" + token + "(p), p(y,x) ] ],[(l2,x,subj,<<e,t>,t>),(l3,y,obj,<<e,t>,t>)],[ l2<l1,l3<l1,l4<scope(l2),l4<scope(l3) ],[" + slot + "]>"}; String[] passEntry2 = {token, "(S DP[wh] (VP DP[dp] V:'" + token + "'))", - "<x,l1,t,[ l1:[|], l4:[ | SLOT_" + token + "(p) ] ],[(l2,x,wh,<<e,t>,t>),(l3,y,dp,<<e,t>,t>)],[ l2<l1,l3<l1,l4<scope(l2),l4<scope(l3) ],[" + slot + "]>"}; + "<x,l1,t,[ l1:[|], l4:[ p | SLOT_" + token + "(p), p(y,x) ] ],[(l2,x,wh,<<e,t>,t>),(l3,y,dp,<<e,t>,t>)],[ l2<l1,l3<l1,l4<scope(l2),l4<scope(l3) ],[" + slot + "]>"}; result.add(passEntry1); result.add(passEntry2); } else if (pos.equals("PASSPART")) { String[] passpartEntry = {token, "(NP NP* (VP V:'" + token + "' DP[dp]))", - "<x,l1,t,[ l1:[ | SLOT_" + token + "(p) ] ],[(l2,y,dp,<<e,t>,t>)],[ l2=l1 ],[" + slot + "]>"}; + "<x,l1,t,[ l1:[ p | SLOT_" + token + "(p), p(y,x) ] ],[(l2,y,dp,<<e,t>,t>)],[ l2=l1 ],[" + slot + "]>"}; result.add(passpartEntry); } else if (pos.equals("VPASS")) { String[] passEntry = {token, "(S DP[subj] (VP V:'" + token + "'))", - "<x,l1,t,[ l1:[|], l4:[ | SLOT_" + token + "(p) ] ],[(l2,x,subj,<<e,t>,t>),(l3,y,obj,<<e,t>,t>)],[ l2<l1,l3<l1,l4<scope(l2),l4<scope(l3) ],[" + slot + "]>"}; + "<x,l1,t,[ l1:[|], l4:[ p | SLOT_" + token + "(p), p(y,x) ] ],[(l2,x,subj,<<e,t>,t>),(l3,y,obj,<<e,t>,t>)],[ l2<l1,l3<l1,l4<scope(l2),l4<scope(l3) ],[" + slot + "]>"}; result.add(passEntry); } else if (pos.equals("VPASSIN")) { String[] passEntry = {token, "(S DP[subj] (VP V:'" + token + "' DP[obj]))", - "<x,l1,t,[ l1:[|], l4:[ | SLOT_" + token + "(p) ] ],[(l2,x,subj,<<e,t>,t>),(l3,y,obj,<<e,t>,t>)],[ l2<l1,l3<l1,l4<scope(l2),l4<scope(l3) ],[" + slot + "]>"}; + "<x,l1,t,[ l1:[|], l4:[ p | SLOT_" + token + "(p), p(y,x) ] ],[(l2,x,subj,<<e,t>,t>),(l3,y,obj,<<e,t>,t>)],[ l2<l1,l3<l1,l4<scope(l2),l4<scope(l3) ],[" + slot + "]>"}; result.add(passEntry); } else if (pos.equals("GERUNDIN")) { String[] gerundinEntry1 = {token, "(NP NP* V:'" + token + "' DP[obj]))", - "<x,l1,t,[ l1:[ | SLOT_" + token + "(p) ] ],[(l2,y,obj,<<e,t>,t>)],[ l2=l1 ],[" + slot + "]>"}; + "<x,l1,t,[ l1:[ p | SLOT_" + token + "(p), p(y,x) ] ],[(l2,y,obj,<<e,t>,t>)],[ l2=l1 ],[" + slot + "]>"}; String[] gerundinEntry2 = {token, "(ADJ V:'" + token + "' DP[obj]))", - "<x,l1,<e,t>,[ l1:[ | SLOT_" + token + "(p) ] ],[(l2,y,obj,<<e,t>,t>)],[ l2=l1 ],[" + slot + "]>"}; + "<x,l1,<e,t>,[ l1:[ p | SLOT_" + token + "(p), p(y,x) ] ],[(l2,y,obj,<<e,t>,t>)],[ l2=l1 ],[" + slot + "]>"}; result.add(gerundinEntry1); result.add(gerundinEntry2); } else if (pos.equals("VPREP")) { String[] passEntry = {token, "(S DP[subj] (VP V:'" + token + "' DP[obj]))", - "<x,l1,t,[ l1:[|], l4:[ | SLOT_" + token + "(p) ] ],[(l2,x,subj,<<e,t>,t>),(l3,y,obj,<<e,t>,t>)],[ l2<l1,l3<l1,l4<scope(l2),l4<scope(l3) ],[" + slot + "]>"}; + "<x,l1,t,[ l1:[|], l4:[ p | SLOT_" + token + "(p), p(x,y) ] ],[(l2,x,subj,<<e,t>,t>),(l3,y,obj,<<e,t>,t>)],[ l2<l1,l3<l1,l4<scope(l2),l4<scope(l3) ],[" + slot + "]>"}; String[] whEntry = {token, "(S DP[obj] (VP DP[subj] V:'" + token + "'))", - "<x,l1,t,[ l1:[|], l4:[ | SLOT_" + token + "(p) ] ],[(l2,x,subj,<<e,t>,t>),(l3,y,obj,<<e,t>,t>)],[ l2<l1,l3<l1,l4<scope(l2),l4<scope(l3) ],[" + slot + "]>"}; + "<x,l1,t,[ l1:[|], l4:[ p | SLOT_" + token + "(p), p(x,y) ] ],[(l2,x,subj,<<e,t>,t>),(l3,y,obj,<<e,t>,t>)],[ l2<l1,l3<l1,l4<scope(l2),l4<scope(l3) ],[" + slot + "]>"}; result.add(passEntry); result.add(whEntry); } else if (pos.equals("VBD") || pos.equals("VBZ") || pos.equals("VBP")) { String[] vEntry = {token, "(S DP[subj] (VP V:'" + token + "' DP[obj]))", - "<x,l1,t,[ l1:[|], l4:[ | SLOT_" + token + "(p) ] ],[(l2,x,subj,<<e,t>,t>),(l3,y,obj,<<e,t>,t>)],[ l2<l1,l3<l1,l4<scope(l2),l4<scope(l3) ],[" + slot + "]>"}; + "<x,l1,t,[ l1:[|], l4:[ p | SLOT_" + token + "(p), p(x,y) ] ],[(l2,x,subj,<<e,t>,t>),(l3,y,obj,<<e,t>,t>)],[ l2<l1,l3<l1,l4<scope(l2),l4<scope(l3) ],[" + slot + "]>"}; result.add(vEntry); } else if (pos.equals("VB")) { String[] whEntry = {token, "(S DP[obj] (VP DP[subj] V:'" + token + "'))", - "<x,l1,t,[ l1:[|], l4:[ | SLOT_" + token + "(p) ] ],[(l2,x,subj,<<e,t>,t>),(l3,y,obj,<<e,t>,t>)],[ l2<l1,l3<l1,l4<scope(l2),l4<scope(l3) ],[" + slot + "]>"}; + "<x,l1,t,[ l1:[|], l4:[ p | SLOT_" + token + "(p), p(x,y) ] ],[(l2,x,subj,<<e,t>,t>),(l3,y,obj,<<e,t>,t>)],[ l2<l1,l3<l1,l4<scope(l2),l4<scope(l3) ],[" + slot + "]>"}; result.add(whEntry); } else if (pos.equals("VBG") || pos.equals("VBN")) { String[] gerEntry = {token, "(NP NP* (VP V:'" + token + "' DP[dp]))", - "<x,l1,t,[ l1:[ | SLOT_" + token + "(p) ] ],[(l2,y,dp,<<e,t>,t>)],[ l2=l1 ],[" + slot + "]>"}; + "<x,l1,t,[ l1:[ p | SLOT_" + token + "(p), p(x,y) ] ],[(l2,y,dp,<<e,t>,t>)],[ l2=l1 ],[" + slot + "]>"}; result.add(gerEntry); } else if (pos.equals("WHEN")) { slot = "SLOT_" + token + "/PROPERTY/" + token + "_date"; String[] whenEntry = {token, "(S DP[subj] (VP V:'" + token + "'))", - "<x,l1,t,[ l1:[ ?y | SLOT_" + token + "(p) ] ],[(l2,x,subj,<<e,t>,t>)],[ l2=l1 ],[ " + slot + " ]>"}; + "<x,l1,t,[ l1:[ ?y,p | SLOT_" + token + "(p), p(x,y) ] ],[(l2,x,subj,<<e,t>,t>)],[ l2=l1 ],[ " + slot + " ]>"}; result.add(whenEntry); } else if (pos.equals("WHERE")) { slot = "SLOT_" + token + "/PROPERTY/" + token + "_place"; String[] whereEntry = {token, "(S DP[subj] (VP V:'" + token + "'))", - "<x,l1,t,[ l1:[ ?y | SLOT_" + token + "(p) ] ],[(l2,x,subj,<<e,t>,t>)],[ l2=l1 ],[ " + slot + " ]>"}; + "<x,l1,t,[ l1:[ ?y,p | SLOT_" + token + "(p), p(x,y) ] ],[(l2,x,subj,<<e,t>,t>)],[ l2=l1 ],[ " + slot + " ]>"}; result.add(whereEntry); } @@ -246,7 +246,7 @@ result.add(compEntry1); String[] compEntry2 = {token, "(NP NP* (ADJ ADJ:'" + token.toLowerCase() + "' P:'than' DP[compobj]))", - "<x,l1,<e,t>,[ l1:[ p,j,i | SLOT_" + token + "(p), p(i), p(j), " + comp + "(i,j) ] ],[ (l2,y,compobj,<<e,t>,t>) ],[l1=l2],["+slot+"]>"}; + "<x,l1,<e,t>,[ l1:[ p,j,i | SLOT_" + token + "(p), p(x,i), p(y,j), " + comp + "(i,j) ] ],[ (l2,y,compobj,<<e,t>,t>) ],[l1=l2],["+slot+"]>"}; result.add(compEntry2); } /* SUPERLATIVE */ @@ -275,7 +275,7 @@ else if (equalsOneOf(pos,preps)) { String[] npAdjunct = {token, "(NP NP* (PP P:'" + token.toLowerCase() + "' DP[pobj]))", - "<x,l1,<e,t>,[ l1:[ | SLOT_" + token + "(p) ] ],[(l2,y,pobj,<<e,t>,t>)],[l2=l1],[]>"}; + "<x,l1,<e,t>,[ l1:[ | SLOT_" + token + "(p), p(x,y) ] ],[(l2,y,pobj,<<e,t>,t>)],[l2=l1],[]>"}; result.add(npAdjunct); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |