From: <chr...@us...> - 2011-05-23 10:55:42
|
Revision: 2815 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2815&view=rev Author: christinaunger Date: 2011-05-23 10:55:34 +0000 (Mon, 23 May 2011) Log Message: ----------- [tbsl] comparatives and superlatives added (plus small bug fixes) 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/ltag/parser/GrammarFilter.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/Query.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Negation.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Pair.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Prefix.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Property.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Triple.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Value.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/Slot.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/templator/SlotBuilder.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/templator/Templator.java Added Paths: ----------- trunk/components-ext/failed.txt trunk/components-ext/src/main/resources/tbsl/lexicon/adj_list.txt trunk/components-ext/src/test/java/org/dllearner/algorithm/tbsl/AdjPolarityTest.java trunk/components-ext/successful.txt Added: trunk/components-ext/failed.txt =================================================================== --- trunk/components-ext/failed.txt (rev 0) +++ trunk/components-ext/failed.txt 2011-05-23 10:55:34 UTC (rev 2815) @@ -0,0 +1,19 @@ +Which presidents were born in 1945? +Who developed the video game World of Warcraft? +List all episodes of the first season of the HBO television series The Sopranos! +Which people have as their given name Jimmy? +Is there a video game called Battle Chess? +Which companies work in the aerospace industry as well as on nuclear reactor technology? +Which country does the Airedale Terrier come from? +Which cities have more than 2 million inhabitants? +Who was Tom Hanks married to? +Which capitals in Europe were host cities of the summer olympic games? +Who has been the 5th president of the United States of America? +Which music albums contain the song Last Christmas? +Which genre does DBpedia belong to? +In which programming language is GIMP written? +In which films did Julia Roberts as well as Richard Gere play? +Who wrote the book The pillars of the Earth? +How many films did Leonardo DiCaprio star in? +Which organizations were founded in 1950? +Is Natalie Portman an actress? Property changes on: trunk/components-ext/failed.txt ___________________________________________________________________ Added: svn:mime-type + text/plain 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 2011-05-19 16:05:12 UTC (rev 2814) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/converter/DRS2SPARQL_Converter.java 2011-05-23 10:55:34 UTC (rev 2815) @@ -213,15 +213,24 @@ if (predicate.startsWith("SLOT")) { for (Slot s : slots) { if (s.getAnchor().equals(predicate)) { + s.setToken(predicate); predicate = "p" + createFresh(); s.setAnchor(predicate); template.addSlot(s); break; } + else if (s.getToken().equals(predicate)) { + predicate = s.getAnchor(); + } } } SPARQL_Property prop = new SPARQL_Property(predicate); prop.setIsVariable(true); + + boolean noliteral = true; + if (simple.getArguments().size() > 1 && simple.getArguments().get(1).getValue().matches("\\d+")) { + noliteral = false; + } if (predicate.equals("count")) { // COUNT(?x) AS ?c @@ -234,41 +243,45 @@ query.addFilter(new SPARQL_Filter( new SPARQL_Pair( new SPARQL_Term(simple.getArguments().get(0).getValue(),true), - new SPARQL_Term(simple.getArguments().get(1).getValue()), + new SPARQL_Term(simple.getArguments().get(1).getValue(),noliteral), 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(),true), - new SPARQL_Term(simple.getArguments().get(1).getValue()), - SPARQL_PairType.LT))); + new SPARQL_Term(simple.getArguments().get(1).getValue(),noliteral), + 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(),true), - new SPARQL_Term(simple.getArguments().get(1).getValue()), - SPARQL_PairType.LTEQ))); + new SPARQL_Term(simple.getArguments().get(1).getValue(),noliteral), + 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(),true), - new SPARQL_Term(simple.getArguments().get(1).getValue()), - SPARQL_PairType.GT))); + new SPARQL_Term(simple.getArguments().get(1).getValue(),noliteral), + SPARQL_PairType.LTEQ))); return query; } else if (predicate.equals("maximum")) { - query.addSelTerm(new SPARQL_Term(simple.getArguments().get(1).getValue(), SPARQL_Aggregate.MAX)); + query.addSelTerm(new SPARQL_Term(simple.getArguments().get(0).getValue(),true)); + query.addOrderBy(new SPARQL_Term(simple.getArguments().get(0).getValue(), SPARQL_OrderBy.DESC)); + query.setLimit(1); return query; } else if (predicate.equals("minimum")) { - query.addSelTerm(new SPARQL_Term(simple.getArguments().get(1).getValue(), SPARQL_Aggregate.MIN)); + query.addSelTerm(new SPARQL_Term(simple.getArguments().get(0).getValue(),true)); + query.addOrderBy(new SPARQL_Term(simple.getArguments().get(0).getValue(), SPARQL_OrderBy.ASC)); + query.setLimit(1); return query; } else if (predicate.equals("equal")) { query.addFilter(new SPARQL_Filter( new SPARQL_Pair( new SPARQL_Term(simple.getArguments().get(0).getValue(),true), - new SPARQL_Term(simple.getArguments().get(1).getValue()), + new SPARQL_Term(simple.getArguments().get(1).getValue(),noliteral), SPARQL_PairType.EQ))); return query; } Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/ltag/parser/GrammarFilter.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/ltag/parser/GrammarFilter.java 2011-05-19 16:05:12 UTC (rev 2814) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/ltag/parser/GrammarFilter.java 2011-05-23 10:55:34 UTC (rev 2815) @@ -124,7 +124,6 @@ */ try { - TreeNode tree = c.construct("NUM:'" + token + "'"); int gid = grammar.addTree(grammar.size(), new Pair<String,TreeNode>(token,tree), @@ -241,12 +240,16 @@ try { for (String[] entry : entries) { String anchor = entry[0]; - String treestring = entry[1]; - String dude = entry[2]; + String treestring = entry[1]; + List<String> dudeStrings = new ArrayList<String>(); + for (String s : entry[2].trim().split(";;")) { + if (!s.equals("")) { + dudeStrings.add(s.trim()); + } + } TreeNode tree = c.construct(treestring); - int gid = grammar.addTree(grammar.size(), new Pair<String,TreeNode>(anchor,tree), - Collections.singletonList(dude)); + int gid = grammar.addTree(grammar.size(), new Pair<String,TreeNode>(anchor,tree), dudeStrings); add(parseG, tree, gid-1, localID); temps.add(gid-1); localID++; Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/Query.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/Query.java 2011-05-19 16:05:12 UTC (rev 2814) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/Query.java 2011-05-23 10:55:34 UTC (rev 2815) @@ -356,4 +356,70 @@ } } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + + ((conditions == null) ? 0 : conditions.hashCode()); + result = prime * result + ((filter == null) ? 0 : filter.hashCode()); + result = prime * result + limit; + result = prime * result + offset; + result = prime * result + ((orderBy == null) ? 0 : orderBy.hashCode()); + result = prime * result + + ((prefixes == null) ? 0 : prefixes.hashCode()); + result = prime * result + ((qt == null) ? 0 : qt.hashCode()); + result = prime * result + + ((selTerms == null) ? 0 : selTerms.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Query other = (Query) obj; + if (conditions == null) { + if (other.conditions != null) + return false; + } else if (!conditions.equals(other.conditions)) + return false; + if (filter == null) { + if (other.filter != null) + return false; + } else if (!filter.equals(other.filter)) + return false; + if (limit != other.limit) + return false; + if (offset != other.offset) + return false; + if (orderBy == null) { + if (other.orderBy != null) + return false; + } else if (!orderBy.equals(other.orderBy)) + return false; + if (prefixes == null) { + if (other.prefixes != null) + return false; + } else if (!prefixes.equals(other.prefixes)) + return false; + if (qt == null) { + if (other.qt != null) + return false; + } else if (!qt.equals(other.qt)) + return false; + if (selTerms == null) { + if (other.selTerms != null) + return false; + } else if (!selTerms.equals(other.selTerms)) + return false; + return true; + } + + + } Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Negation.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Negation.java 2011-05-19 16:05:12 UTC (rev 2814) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Negation.java 2011-05-23 10:55:34 UTC (rev 2815) @@ -17,4 +17,31 @@ return retVal; } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((term == null) ? 0 : term.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + SPARQL_Negation other = (SPARQL_Negation) obj; + if (term == null) { + if (other.term != null) + return false; + } else if (!term.equals(other.term)) + return false; + return true; + } + + + } Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Pair.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Pair.java 2011-05-19 16:05:12 UTC (rev 2814) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Pair.java 2011-05-23 10:55:34 UTC (rev 2815) @@ -46,4 +46,43 @@ return ""; } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((a == null) ? 0 : a.hashCode()); + result = prime * result + ((b == null) ? 0 : b.hashCode()); + result = prime * result + ((type == null) ? 0 : type.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + SPARQL_Pair other = (SPARQL_Pair) obj; + if (a == null) { + if (other.a != null) + return false; + } else if (!a.equals(other.a)) + return false; + if (b == null) { + if (other.b != null) + return false; + } else if (!b.equals(other.b)) + return false; + if (type == null) { + if (other.type != null) + return false; + } else if (!type.equals(other.type)) + return false; + return true; + } + + + } \ No newline at end of file Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Prefix.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Prefix.java 2011-05-19 16:05:12 UTC (rev 2814) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Prefix.java 2011-05-23 10:55:34 UTC (rev 2815) @@ -28,5 +28,35 @@ this.name = name; this.url = url; } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((name == null) ? 0 : name.hashCode()); + result = prime * result + ((url == null) ? 0 : url.hashCode()); + return result; + } + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + SPARQL_Prefix other = (SPARQL_Prefix) obj; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + if (url == null) { + if (other.url != null) + return false; + } else if (!url.equals(other.url)) + return false; + return true; + } + } Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Property.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Property.java 2011-05-19 16:05:12 UTC (rev 2814) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Property.java 2011-05-23 10:55:34 UTC (rev 2815) @@ -33,6 +33,29 @@ } return prefix.getName()+":"+name; } + @Override + public int hashCode() { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + ((prefix == null) ? 0 : prefix.hashCode()); + return result; + } + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (!super.equals(obj)) + return false; + if (getClass() != obj.getClass()) + return false; + SPARQL_Property other = (SPARQL_Property) obj; + if (prefix == null) { + if (other.prefix != null) + return false; + } else if (!prefix.equals(other.prefix)) + return false; + return true; + } Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Triple.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Triple.java 2011-05-19 16:05:12 UTC (rev 2814) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Triple.java 2011-05-23 10:55:34 UTC (rev 2815) @@ -56,4 +56,46 @@ this.value = value; this.optional = optional; } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + (optional ? 1231 : 1237); + result = prime * result + + ((property == null) ? 0 : property.hashCode()); + result = prime * result + ((value == null) ? 0 : value.hashCode()); + result = prime * result + + ((variable == null) ? 0 : variable.hashCode()); + return result; + } + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + SPARQL_Triple other = (SPARQL_Triple) obj; + if (optional != other.optional) + return false; + if (property == null) { + if (other.property != null) + return false; + } else if (!property.equals(other.property)) + return false; + if (value == null) { + if (other.value != null) + return false; + } else if (!value.equals(other.value)) + return false; + if (variable == null) { + if (other.variable != null) + return false; + } else if (!variable.equals(other.variable)) + return false; + return true; + } + + } Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Value.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Value.java 2011-05-19 16:05:12 UTC (rev 2814) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/SPARQL_Value.java 2011-05-23 10:55:34 UTC (rev 2815) @@ -36,4 +36,34 @@ } } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + (isVariable ? 1231 : 1237); + result = prime * result + ((name == null) ? 0 : name.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + SPARQL_Value other = (SPARQL_Value) obj; + if (isVariable != other.isVariable) + return false; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + return true; + } + + + } Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/Slot.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/Slot.java 2011-05-19 16:05:12 UTC (rev 2814) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/Slot.java 2011-05-23 10:55:34 UTC (rev 2815) @@ -7,17 +7,20 @@ public class Slot { String anchor; + String token; SlotType type; List<String> words; public Slot(String a,List<String> ws) { anchor = a; + token = ""; type = SlotType.UNSPEC; words = ws; replaceUnderscores(); } public Slot(String a,SlotType t,List<String> ws) { anchor = a; + token = ""; type = t; words = ws; replaceUnderscores(); @@ -37,6 +40,12 @@ public void setAnchor(String s) { anchor = s; } + public String getToken() { + return token; + } + public void setToken(String t) { + token = t; + } public List<String> getWords() { return words; @@ -84,5 +93,47 @@ return new Slot(anchor,type,newWords); } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((anchor == null) ? 0 : anchor.hashCode()); + result = prime * result + ((token == null) ? 0 : token.hashCode()); + result = prime * result + ((type == null) ? 0 : type.hashCode()); + result = prime * result + ((words == null) ? 0 : words.hashCode()); + return result; + } + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Slot other = (Slot) obj; + if (anchor == null) { + if (other.anchor != null) + return false; + } else if (!anchor.equals(other.anchor)) + return false; + if (token == null) { + if (other.token != null) + return false; + } else if (!token.equals(other.token)) + return false; + if (type == null) { + if (other.type != null) + return false; + } else if (!type.equals(other.type)) + return false; + if (words == null) { + if (other.words != null) + return false; + } else if (!words.equals(other.words)) + return false; + return true; + } + } Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/templator/SlotBuilder.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/templator/SlotBuilder.java 2011-05-19 16:05:12 UTC (rev 2814) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/templator/SlotBuilder.java 2011-05-23 10:55:34 UTC (rev 2815) @@ -1,5 +1,7 @@ package org.dllearner.algorithm.tbsl.templator; +import java.io.BufferedReader; +import java.io.FileReader; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -58,10 +60,11 @@ String tokenfluent = token.replaceAll(" ",""); String slotX = "x/" + type + "/"; String slotP = "SLOT_" + tokenfluent + "/" + type + "/"; + String slotC = "SLOT_" + tokenfluent + "/CLASS/"; for (Iterator<String> i = words.iterator(); i.hasNext();) { String next = i.next().replaceAll(" ","_"); - slotX += next; slotP += next; - if (i.hasNext()) { slotX += "^"; slotP += "^"; } + slotX += next; slotP += next; slotC += next; + if (i.hasNext()) { slotX += "^"; slotP += "^"; slotC += "^"; } } String treetoken = "N:'" + token.toLowerCase() + "'"; if (token.trim().contains(" ")) { @@ -96,31 +99,21 @@ result.add(dpEntry2); } else if (pos.equals("NPREP")) { - /* DP */ - String[] dpEntry1a = {token, + String[] dpEntry1 = {token, "(DP (NP " + treetoken + " DP[pobj]))", - "<x,l1,<<e,t>,t>,[ l1:[ x | SLOT_" + tokenfluent + "(y,x) ] ],[(l2,y,pobj,<<e,t>,t>)],[l2=l1],[" + slotP + "]>"}; - String[] dpEntry1b = {token, - "(DP (NP " + treetoken + " DP[pobj]))", - "<x,l1,<<e,t>,t>,[ l1:[ x | SLOT_" + tokenfluent + "(x), SLOT_of(x,y) ] ],[(l2,y,pobj,<<e,t>,t>)],[l2=l1],[" + slotP + "," + "SLOT_of/PROPERTY/" + "]>"}; - String[] dpEntry2a = {token, + "<x,l1,<<e,t>,t>,[ l1:[ x | SLOT_" + tokenfluent + "(y,x) ] ],[(l2,y,pobj,<<e,t>,t>)],[l2=l1],[" + slotP + "]> ;; " + + "<x,l1,<<e,t>,t>,[ l1:[ x | SLOT_" + tokenfluent + "(x), SLOT_of(x,y) ] ],[(l2,y,pobj,<<e,t>,t>)],[l2=l1],[" + slotC + "," + "SLOT_of/PROPERTY/" + "]>"}; + String[] dpEntry2 = {token, "(DP DET[det] (NP " + treetoken + " DP[pobj]))", - "<x,l1,<<e,t>,t>,[ l1:[ x | SLOT_" + tokenfluent + "(y,x) ] ],[(l2,y,pobj,<<e,t>,t>),(l3,x,det,e)],[l2=l1,l3=l1],[" + slotP + "]>"}; - String[] dpEntry2b = {token, - "(DP DET[det] (NP " + treetoken + " DP[pobj]))", - "<x,l1,<<e,t>,t>,[ l1:[ x | SLOT_" + tokenfluent + "(x), SLOT_of(x,y) ] ],[(l2,y,pobj,<<e,t>,t>),(l3,x,det,e)],[l2=l1,l3=l1],[" + slotP + "," + "SLOT_of/PROPERTY/" + "]>"}; - String[] npEntry1 = {token, + "<x,l1,<<e,t>,t>,[ l1:[ x | SLOT_" + tokenfluent + "(y,x) ] ],[(l2,y,pobj,<<e,t>,t>),(l3,x,det,e)],[l2=l1,l3=l1],[" + slotP + "]> ;; " + + "<x,l1,<<e,t>,t>,[ l1:[ x | SLOT_" + tokenfluent + "(x), SLOT_of(x,y) ] ],[(l2,y,pobj,<<e,t>,t>),(l3,x,det,e)],[l2=l1,l3=l1],[" + slotC + "," + "SLOT_of/PROPERTY/" + "]>"}; + String[] npEntry = {token, "(NP " + treetoken + " DP[pobj])", - "<x,l1,<e,t>,[ l1:[ | SLOT_" + tokenfluent + "(y,x) ] ],[(l2,y,pobj,<<e,t>,t>)],[l2=l1],[" + slotP + "]>"}; - String[] npEntry2 = {token, - "(NP " + treetoken + " DP[pobj])", - "<x,l1,<e,t>,[ l1:[ | SLOT_" + tokenfluent + "(x), SLOT_of(x,y) ] ],[(l2,y,pobj,<<e,t>,t>)],[l2=l1],[" + slotP + "," + "SLOT_of/PROPERTY/" + "]>"}; - result.add(dpEntry1a); - result.add(dpEntry1b); - result.add(dpEntry2a); - result.add(dpEntry2b); - result.add(npEntry1); - result.add(npEntry2); + "<x,l1,<e,t>,[ l1:[ | SLOT_" + tokenfluent + "(y,x) ] ],[(l2,y,pobj,<<e,t>,t>)],[l2=l1],[" + slotP + "]> ;; " + + "<x,l1,<e,t>,[ l1:[ | SLOT_" + tokenfluent + "(x), SLOT_of(x,y) ] ],[(l2,y,pobj,<<e,t>,t>)],[l2=l1],[" + slotC + "," + "SLOT_of/PROPERTY/" + "]>"}; + result.add(dpEntry1); + result.add(dpEntry2); + result.add(npEntry); } } @@ -245,11 +238,41 @@ } /* COMPARATIVE */ else if (pos.equals("JJR")) { - // TODO polarity not given, reference value not determinable + String pol = polarity(token); + String comp; + if (pol.equals("POS")) { + comp = "greater"; + } else { comp = "less"; } + + String[] compEntry1 = {token, + "(ADJ ADJ:'" + token.toLowerCase() + "' P:'than' DP[compobj])", + "<x,l1,<e,t>,[ l1:[ j,i | SLOT_" + token + "(x,j), SLOT_" + token + "(y,i), " + comp + "(j,i) ] ],[ (l2,y,compobj,<<e,t>,t>) ],[l1=l2],["+slot+"]>"}; + result.add(compEntry1); + String[] compEntry2 = {token, + "(NP NP* (ADJ ADJ:'" + token.toLowerCase() + "' P:'than' DP[compobj]))", + "<x,l1,<e,t>,[ l1:[ j,i | SLOT_" + token + "(x,j), SLOT_" + token + "(y,i), " + comp + "(j,i) ] ],[ (l2,y,compobj,<<e,t>,t>) ],[l1=l2],["+slot+"]>"}; + result.add(compEntry2); } /* SUPERLATIVE */ else if (pos.equals("JJS")) { - // ditto + String pol = polarity(token); + String comp; + if (pol.equals("POS")) { + comp = "maximum"; + } else { comp = "minimum"; } + + String[] superEntry1 = {token, + "(DET DET:'the' ADJ:'" + token.toLowerCase() + "')", + "<x,l1,e,[ l1:[ x,j | SLOT_" + token + "(x,j), " + comp + "(j) ] ],[],[],["+slot+"]>"}; + result.add(superEntry1); + String[] superEntry2 = {token, + "(DP (NP DET:'the' ADJ:'" + token.toLowerCase() + "'))", + "<x,l1,<<e,t>,t>,[ l1:[ x,j | SLOT_" + token + "(x,j), " + comp + "(j) ] ],[],[],["+slot+"]>"}; + result.add(superEntry2); + String[] superEntry3 = {token, + "(DP (NP DET:'the' ADJ:'" + token.toLowerCase() + "' NP[noun]))", + "<x,l1,<<e,t>,t>,[ l1:[ x,j | SLOT_" + token + "(x,j), " + comp + "(j) ] ],[ (l2,x,noun,<e,t>) ],[l2=l1],["+slot+"]>"}; + result.add(superEntry3); } } /* PREPOSITIONS */ @@ -274,6 +297,27 @@ return false; } + private String polarity(String adj) { + + String polarity = "POS"; + + BufferedReader in; + try { + in = new BufferedReader(new FileReader("src/main/resources/tbsl/lexicon/adj_list.txt")); + String line; + while ((line = in.readLine()) != null ) { + if (line.contains(adj)) { + polarity = line.split(" ")[0]; + break; + } + } + in.close(); + } catch (Exception e) { + e.printStackTrace(); + } + + return polarity; + } } Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/templator/Templator.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/templator/Templator.java 2011-05-19 16:05:12 UTC (rev 2814) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/templator/Templator.java 2011-05-23 10:55:34 UTC (rev 2815) @@ -31,6 +31,7 @@ LTAG_Lexicon_Constructor LTAG_Constructor = new LTAG_Lexicon_Constructor(); Parser p; + boolean ONE_SCOPE_ONLY = true; public Templator() { @@ -67,45 +68,66 @@ } else { try { - for (TreeNode dtree : p.buildDerivedTrees(g)) { - if (!dtree.getAnchor().trim().equals(tagged.toLowerCase())) { - System.err.println("[Templator.java] Anchors don't match the input. (Nevermind...)"); - break; - } - } + p.buildDerivedTrees(g); +// for (TreeNode dtree : p.buildDerivedTrees(g)) { +// if (!dtree.getAnchor().trim().equals(tagged.toLowerCase())) { +// System.err.println("[Templator.java] Anchors don't match the input. (Nevermind...)"); +// break; +// } +// } } catch (ParseException e) { System.err.println("[Templator.java] ParseException at '" + e.getMessage() + "'"); } } - List<DRS> drses; + List<DRS> drses = new ArrayList<DRS>(); Set<Template> templates = new HashSet<Template>(); for (Dude dude : p.getDudes()) { -// System.out.println("DUDE: " + dude); // DEBUG + // System.out.println("DUDE: " + dude); // DEBUG UDRS udrs = d2u.convert(dude); if (udrs != null) { - drses = new ArrayList<DRS>(); - drses.addAll(udrs.initResolve()); - for (DRS drs : drses) { -// System.out.println("DRS: " + drs); // DEBUG - List<Slot> slots = new ArrayList<Slot>(); - slots.addAll(dude.getSlots()); -// //DEBUG -// for (Slot sl : slots) { -// System.out.println(sl); -// } -// // - try { - Template temp = d2s.convert(drs,slots); - templates.add(temp); - } catch (java.lang.ClassCastException e) { - continue; - } + for (DRS drs : udrs.initResolve()) { +// System.out.println(drs); // DEBUG + if (!drses.contains(drs)) { + drses.add(drs); + List<Slot> slots = new ArrayList<Slot>(); + slots.addAll(dude.getSlots()); +// //DEBUG +// for (Slot sl : slots) { +// System.out.println(sl); +// } +// // + try { + Template temp = d2s.convert(drs,slots); + templates.add(temp); + } catch (java.lang.ClassCastException e) { + continue; + } + } + if (ONE_SCOPE_ONLY) { break; } } } } - + +// for (DRS drs : drses) { +//// System.out.println("DRS: " + drs); // DEBUG +// List<Slot> slots = new ArrayList<Slot>(); +// slots.addAll(dude.getSlots()); +//// //DEBUG +//// for (Slot sl : slots) { +//// System.out.println(sl); +//// } +//// // +// try { +// Template temp = d2s.convert(drs,slots); +// templates.add(temp); +// } catch (java.lang.ClassCastException e) { +// continue; +// } +// if (ONE_SCOPE_ONLY) { break; } +// } + if (clearAgain) { p.clear(g,p.getTemps()); } Added: trunk/components-ext/src/main/resources/tbsl/lexicon/adj_list.txt =================================================================== --- trunk/components-ext/src/main/resources/tbsl/lexicon/adj_list.txt (rev 0) +++ trunk/components-ext/src/main/resources/tbsl/lexicon/adj_list.txt 2011-05-23 10:55:34 UTC (rev 2815) @@ -0,0 +1,269 @@ +POS able abler ablest +POS ample ampler amplest +POS angry angrier angriest +POS apt apter aptest +NEG bad worse worst +POS baggy baggier baggiest +POS bald balder baldest +POS beefy beefier beefiest +POS big bigger biggest +POS bitter bitterer bitterest +POS blind blinder blindest +POS blond blonder blondest +POS bloodthirsty bloodthirstier bloodthirstiest +POS bloody bloodier bloodiest +POS blue bluer bluest +POS blurry blurrier blurriest +POS bold bolder boldest +POS brave braver bravest +POS bright brighter brightest +POS busy busier busiest +POS calm calmer calmest +POS cheap cheaper cheapest +POS cheeky cheekier cheekiest +POS civil civiler civilest +POS clean cleaner cleanest +POS cleanly cleanlier cleanliest +POS clear clearer clearest +POS clever cleverer cleverest +POS close closer closest +POS cloudy cloudier cloudiest +POS clumpy clumpier clumpiest +POS clumsy clumsier clumsiest +POS coarse coarser coarsest +POS cold colder coldest +POS cool cooler coolest +POS costly costlier costliest +POS crafty craftier craftiest +POS cranky crankier crankiest +POS crazy crazier craziest +POS creamy creamier creamiest +POS crisp crisper crispest +POS crispy crispier crispiest +POS cruel crueler cruelest +POS curvy curvier curviest +POS cute cuter cutest +POS dark darker darkest +POS dead deader deadest +POS deaf deafer deafest +POS dear dearer dearest +POS deep deeper deepest +POS dense denser densest +POS dim dimmer dimmest +POS dirty dirtier dirtiest +POS dotty dottier dottiest +POS dry drier driest +POS dull duller dullest +POS dumb dumber dumbest +POS dusty dustier dustiest +POS early earlier earliest +POS easy easier easiest +POS edgy edgier edgiest +POS empty emptier emptiest +POS faint fainter faintest +POS fair fairer fairest +POS fancy fancier fanciest +POS far farther farthest +POS far further furthest +POS fast faster fastest +POS fat fatter fattest +POS fatty fattier fattiest +POS faulty faultier faultiest +NEG few fewer fewest +POS fierce fiercer fiercest +POS filthy filthier filthiest +POS fine finer finest +POS fit fitter fittest +POS flat flatter flattest +POS fond fonder fondest +POS foul fouler foulest +POS freaky freakier freakiest +POS fresh fresher freshest +POS friendly friendlier friendliest +POS full fuller fullest +POS funky funkier funkiest +POS funny funnier funniest +POS furry furrier furriest +POS fussy fussier fussiest +POS fuzzy fuzzier fuzziest +POS gentle gentler gentlest +POS ghastly ghastlier ghastliest +POS glad gladder gladdest +POS godly godlier godliest +POS good better best +POS goodly goodlier goodliest +POS grainy grainier grainiest +POS gray grayer grayest +POS great greater greatest +POS greedy greedier greediest +POS green greener greenest +POS grey greyer greyest +POS grim grimmer grimmest +POS gross grosser grossest +POS hairy hairier hairiest +POS handsome handsomer handsomest +POS handy handier handiest +POS happy happier happiest +POS hard harder hardest +POS hardy hardier hardiest +POS hasty hastier hastiest +POS healthy healthier healthiest +POS hearty heartier heartiest +POS heavy heavier heaviest +POS hefty heftier heftiest +POS high higher highest +POS hip hipper hippest +POS holy holier holiest +POS hot hotter hottest +POS huge huger hugest +POS humble humbler humblest +POS hungry hungrier hungriest +POS icy icier iciest +POS idle idler idlest +POS ill iller illest +POS jerky jerkier jerkiest +POS keen keener keenest +POS kind kinder kindest +POS lame lamer lamest +POS large larger largest +POS late later latest +POS lazy lazier laziest +POS likely likelier likeliest +NEG little littler littlest +POS lively livelier liveliest +POS lonely lonelier loneliest +POS long longer longest +POS loud louder loudest +POS lousy lousier lousiest +NEG low lower lowest +NEG lowly lowlier lowliest +POS lucky luckier luckiest +POS mean meaner meanest +POS merry merrier merriest +POS messy messier messiest +POS mighty mightier mightiest +POS mild milder mildest +POS naive naiver naivest +NEG narrow narrower narrowest +NEG near nearer nearest +POS neat neater neatest +POS new newer newest +POS nice nicer nicest +POS noble nobler noblest +POS noisy noisier noisiest +POS obscure obscurer obscurest +POS old elder eldest +POS old older oldest +POS pale paler palest +POS plain plainer plainest +POS plump plumper plumpest +POS polite politer politest +NEG poor poorer poorest +POS posh posher poshest +POS pretty prettier prettiest +POS proud prouder proudest +POS quick quicker quickest +NEG quiet quieter quietest +POS rainy rainier rainiest +POS rank ranker rankest +NEG rare rarer rarest +POS raw rawer rawest +POS real realer realest +POS red redder reddest +POS remote remoter remotest +POS rich richer richest +POS ripe riper ripest +POS risky riskier riskiest +POS rosy rosier rosiest +POS rough rougher roughest +POS rude ruder rudest +POS rusty rustier rustiest +POS sad sadder saddest +POS safe safer safest +POS sane saner sanest +POS scary scarier scariest +POS secure securer securest +POS severe severer severest +POS shaky shakier shakiest +NEG shallow shallower shallowest +POS sharp sharper sharpest +POS shiny shinier shiniest +NEG short shorter shortest +POS shy shyer shyest +POS sick sicker sickest +POS sickly sicklier sickliest +POS silly sillier silliest +POS simple simpler simplest +POS sleepy sleepier sleepiest +NEG slim slimmer slimmest +NEG slimy slimier slimiest +POS slippery slipperier slipperiest +NEG slow slower slowest +POS sly slier sliest +POS sly slyer slyest +NEG small smaller smallest +POS smart smarter smartest +POS smelly smellier smelliest +POS smoky smokier smokiest +POS snowy snowier snowiest +POS sober soberer soberest +POS soft softer softest +POS solid solider solidest +NEG soon sooner soonest +POS sound sounder soundest +POS sour sourer sourest +POS spare sparer sparest +NEG sparse sparser sparsest +POS speedy speedier speediest +POS spicy spicier spiciest +POS stale staler stalest +POS stark starker starkest +POS steady steadier steadiest +POS stealthy stealthier stealthiest +POS steep steeper steepest +POS sticky stickier stickiest +POS stiff stiffer stiffest +POS still stiller stillest +POS stony stonier stoniest +POS stormy stormier stormiest +POS strict stricter strictest +POS strong stronger strongest +POS stubborn stubborner stubbornest +POS stupid stupider stupidest +POS sunny sunnier sunniest +POS sure surer surest +POS sweet sweeter sweetest +POS swift swifter swiftest +POS talky talkier talkiest +POS tall taller tallest +POS tense tenser tensest +POS thick thicker thickest +NEG thin thinner thinnest +POS thirsty thirstier thirstiest +POS thready threadier threadiest +POS tidy tidier tidiest +NEG tight tighter tightest +NEG tiny tinier tiniest +POS tough tougher toughest +POS tricky trickier trickiest +POS true truer truest +POS trusty trustier trustiest +POS ugly uglier ugliest +POS unhealthy unhealthier unhealthiest +POS vague vaguer vaguest +POS warm warmer warmest +POS weak weaker weakest +POS wealthy wealthier wealthiest +POS weird weirder weirdest +POS wet wetter wettest +POS whiny whinier whiniest +POS white whiter whitest +POS wide wider widest +POS wild wilder wildest +POS windy windier windiest +POS wiry wirier wiriest +POS wise wiser wisest +POS wordy wordier wordiest +POS worldly worldlier worldliest +NEG young younger youngest +POS yummy yummier yummiest Property changes on: trunk/components-ext/src/main/resources/tbsl/lexicon/adj_list.txt ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/components-ext/src/test/java/org/dllearner/algorithm/tbsl/AdjPolarityTest.java =================================================================== --- trunk/components-ext/src/test/java/org/dllearner/algorithm/tbsl/AdjPolarityTest.java (rev 0) +++ trunk/components-ext/src/test/java/org/dllearner/algorithm/tbsl/AdjPolarityTest.java 2011-05-23 10:55:34 UTC (rev 2815) @@ -0,0 +1,31 @@ +package org.dllearner.algorithm.tbsl; + +import java.io.BufferedReader; +import java.io.FileReader; + +public class AdjPolarityTest { + + public static void main(String[] args) { + + String polarity = "POS"; + + BufferedReader in; + try { + in = new BufferedReader(new FileReader("src/main/resources/tbsl/lexicon/adj_list.txt")); + String line; + while ((line = in.readLine()) != null ) { + if (line.contains("small")) { + polarity = line.split(" ")[0]; + break; + } + } + in.close(); + } catch (Exception e) { + e.printStackTrace(); + } + + System.out.println(polarity); + + } + +} Property changes on: trunk/components-ext/src/test/java/org/dllearner/algorithm/tbsl/AdjPolarityTest.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/components-ext/successful.txt =================================================================== --- trunk/components-ext/successful.txt (rev 0) +++ trunk/components-ext/successful.txt 2011-05-23 10:55:34 UTC (rev 2815) @@ -0,0 +1,729 @@ +***************************************************************** +Give me all school types. +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?y rdf:type ?p0 . +} + +>> SLOTS: +p0: CLASS {school types} +***************************************************************** +Who are the presidents of the United States? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?y rdf:type ?p1 . + ?y ?p2 ?v0 . +} + +>> SLOTS: +v0: RESOURCE {United States} +p1: CLASS {presidents,president} +p2: PROPERTY {} +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?v0 ?p0 ?y . +} + +>> SLOTS: +v0: RESOURCE {United States} +p0: PROPERTY {presidents,president} +***************************************************************** +Who was the wife of President Lincoln? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?y rdf:type ?p1 . + ?y ?p2 ?v0 . +} + +>> SLOTS: +v0: RESOURCE {President Lincoln} +p1: CLASS {wife} +p2: PROPERTY {} +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?v0 ?p0 ?y . +} + +>> SLOTS: +v0: RESOURCE {President Lincoln} +p0: PROPERTY {wife} +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?y ?p5 ?v0 . + ?y rdf:type ?p4 . +} + +>> SLOTS: +v0: RESOURCE {President Lincoln} +p4: CLASS {wife} +p5: PROPERTY {} +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?v0 ?p3 ?y . +} + +>> SLOTS: +v0: RESOURCE {President Lincoln} +p3: PROPERTY {wife} +***************************************************************** +What is the official website of Tom Hanks? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?y ?p9 ?v0 . + ?y ?p8 ?j . + ?y rdf:type ?p7 . +} + +>> SLOTS: +v0: RESOURCE {Tom Hanks} +p7: CLASS {website,site} +p8: PROPERTY {} +p9: PROPERTY {} +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?v1 ?p1 ?y . + ?y ?p0 ?j . +} + +>> SLOTS: +v1: RESOURCE {Tom Hanks} +p0: PROPERTY {} +p1: PROPERTY {website,site} +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?y rdf:type ?p2 . + ?y ?p4 ?j . + ?y ?p3 ?v1 . +} + +>> SLOTS: +v1: RESOURCE {Tom Hanks} +p2: CLASS {website,site} +p3: PROPERTY {} +p4: PROPERTY {} +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?y ?p6 ?j . + ?v0 ?p5 ?y . +} + +>> SLOTS: +v0: RESOURCE {Tom Hanks} +p5: PROPERTY {website,site} +p6: PROPERTY {} +***************************************************************** +Who produced the most films? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT COUNT(?y) AS c2 WHERE { + ?x ?p1 ?y . + ?y rdf:type ?p0 . +} +ORDER BY DESC(?c2) +LIMIT 1 OFFSET 0 + +>> SLOTS: +p0: CLASS {films,movie,film,picture,pic} +p1: PROPERTY {produced} +***************************************************************** +Which mountains are higher than the Nanga Parbat? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?y ?p1 ?j . + ?v0 ?p1 ?i . + ?y rdf:type ?p0 . + FILTER(?j > ?i) . +} + +>> SLOTS: +v0: RESOURCE {Nanga Parbat} +p0: CLASS {mountains,mountain,mount} +p1: PROPERTY {degree} +***************************************************************** +Who created English Wikipedia? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?x WHERE { + ?x ?p0 ?y . +} + +>> SLOTS: +y: RESOURCE {English Wikipedia} +p0: PROPERTY {created} +***************************************************************** +Give me all actors starring in Batman Begins. +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?y ?p1 ?v1 . + ?y rdf:type ?p0 . +} + +>> SLOTS: +p0: CLASS {actors,actor,histrion,player,thespian} +p1: PROPERTY {starring} +***************************************************************** +Which software has been developed by organizations founded in California? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?x WHERE { + ?y ?p0 ?v1 . + ?x rdf:type ?p2 . + ?y ?p1 ?x . + ?y rdf:type ?p3 . +} + +>> SLOTS: +v1: RESOURCE {California} +p0: PROPERTY {founded} +p1: PROPERTY {developed} +p2: CLASS {software,package} +p3: CLASS {organizations,organization,organisation} +***************************************************************** +Is Christian Bale starring in Batman Begins? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +ASK WHERE { + ?y ?p0 ?v0 . +} + +>> SLOTS: +y: RESOURCE {Christian Bale} +v0: RESOURCE {Batman Begins} +p0: PROPERTY {starring} +***************************************************************** +Give me the websites of companies with more than 500000 employees. +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y COUNT(?v0) AS ?c WHERE { + ?v1 rdf:type ?p34 . + ?y ?p31 ?v1 . + ?v0 rdf:type ?p32 . + ?y rdf:type ?p35 . + ?v1 ?p33 ?v2 . + FILTER(?c > 500000) . +} + +>> SLOTS: +p31: PROPERTY {} +p32: CLASS {employees,employee} +p33: PROPERTY {} +p34: CLASS {companies,company} +p35: CLASS {websites,website,site} +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y COUNT(?v0) AS ?c WHERE { + ?y ?p13 ?v2 . + ?y rdf:type ?p17 . + ?y ?p14 ?v1 . + ?v2 rdf:type ?p16 . + ?v0 rdf:type ?p15 . + FILTER(?c > 500000) . +} + +>> SLOTS: +p13: PROPERTY {} +p14: PROPERTY {} +p15: CLASS {employees,employee} +p16: CLASS {companies,company} +p17: CLASS {websites,website,site} +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y COUNT(?v0) AS ?c WHERE { + ?y ?p6 ?v3 . + ?y ?p4 ?v1 . + ?y rdf:type ?p8 . + ?v0 rdf:type ?p5 . + ?v3 rdf:type ?p7 . + FILTER(?c > 500000) . +} + +>> SLOTS: +p4: PROPERTY {} +p5: CLASS {employees,employee} +p6: PROPERTY {} +p7: CLASS {companies,company} +p8: CLASS {websites,website,site} +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y COUNT(?v0) AS ?c WHERE { + ?v1 ?p29 ?v2 . + ?v0 rdf:type ?p27 . + ?v1 ?p28 ?y . + ?v1 rdf:type ?p30 . + FILTER(?c > 500000) . +} + +>> SLOTS: +p27: CLASS {employees,employee} +p28: PROPERTY {websites,website,site} +p29: PROPERTY {} +p30: CLASS {companies,company} +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y COUNT(?v0) AS ?c WHERE { + ?y ?p0 ?v1 . + ?v3 ?p3 ?y . + ?v3 rdf:type ?p2 . + ?v0 rdf:type ?p1 . + FILTER(?c > 500000) . +} + +>> SLOTS: +p0: PROPERTY {} +p1: CLASS {employees,employee} +p2: CLASS {companies,company} +p3: PROPERTY {websites,website,site} +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y COUNT(?v0) AS ?c WHERE { + ?v1 ?p20 ?v2 . + ?v1 rdf:type ?p21 . + ?v0 rdf:type ?p18 . + ?v1 ?p19 ?y . + FILTER(?c > 500000) . +} + +>> SLOTS: +p18: CLASS {employees,employee} +p19: PROPERTY {websites,website,site} +p20: PROPERTY {} +p21: CLASS {companies,company} +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y COUNT(?v0) AS ?c WHERE { + ?v1 rdf:type ?p25 . + ?v1 ?p24 ?v2 . + ?y rdf:type ?p26 . + ?y ?p22 ?v1 . + ?v0 rdf:type ?p23 . + FILTER(?c > 500000) . +} + +>> SLOTS: +p22: PROPERTY {} +p23: CLASS {employees,employee} +p24: PROPERTY {} +p25: CLASS {companies,company} +p26: CLASS {websites,website,site} +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y COUNT(?v0) AS ?c WHERE { + ?v2 ?p12 ?y . + ?v0 rdf:type ?p10 . + ?v2 rdf:type ?p11 . + ?y ?p9 ?v1 . + FILTER(?c > 500000) . +} + +>> SLOTS: +p9: PROPERTY {} +p10: CLASS {employees,employee} +p11: CLASS {companies,company} +p12: PROPERTY {websites,website,site} +***************************************************************** +Which actors were born in Germany? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?x WHERE { + ?x rdf:type ?p0 . + ?x ?p1 ?y . +} + +>> SLOTS: +y: RESOURCE {Germany} +p0: CLASS {actors,actor,histrion,player,thespian} +p1: PROPERTY {born} +***************************************************************** +Which birds are there in the United States? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?y ?p1 ?v1 . + ?y rdf:type ?p0 . +} + +>> SLOTS: +v1: RESOURCE {United States} +p0: CLASS {birds,bird} +p1: PROPERTY {} +***************************************************************** +Give me all European Capitals! +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?y ?p1 ?j . + ?y rdf:type ?p0 . +} + +>> SLOTS: +p0: CLASS {Capitals,capital} +p1: PROPERTY {} +***************************************************************** +When was DBpedia released? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?x ?p0 ?y . +} + +>> SLOTS: +x: RESOURCE {DBpedia} +p0: PROPERTY {releasedDate} +***************************************************************** +Which people were born in Heraklion? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?x WHERE { + ?x rdf:type ?p0 . + ?x ?p1 ?y . +} + +>> SLOTS: +y: RESOURCE {Heraklion} +p0: CLASS {people} +p1: PROPERTY {born} +***************************************************************** +Which caves have more than 3 entrances? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?x COUNT(?v0) AS ?c WHERE { + ?x rdf:type ?p0 . + ?x ?p1 ?y . + ?v0 rdf:type ?p2 . + FILTER(?c > 3) . +} + +>> SLOTS: +p0: CLASS {caves,cave} +p1: PROPERTY {have} +p2: CLASS {entrances,entrance,entranceway,entryway,entry} +***************************************************************** +Give me all films produced by Hal Roach. +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?y rdf:type ?p1 . + ?v1 ?p0 ?y . +} + +>> SLOTS: +p0: PROPERTY {produced} +p1: CLASS {films,movie,film,picture,pic} +***************************************************************** +Which software has been published by Mean Hamster Software? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?x WHERE { + ?x rdf:type ?p1 . + ?y ?p0 ?x . +} + +>> SLOTS: +y: RESOURCE {Mean Hamster Software} +p0: PROPERTY {published} +p1: CLASS {software,package} +***************************************************************** +What languages are spoken in Estonia? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?y rdf:type ?p0 . + ?y ?p1 ?v0 . +} + +>> SLOTS: +v0: RESOURCE {Estonia} +p0: CLASS {languages,language} +p1: PROPERTY {spoken} +***************************************************************** +Who owns Aldi? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?x WHERE { + ?x ?p0 ?y . +} + +>> SLOTS: +y: RESOURCE {Aldi} +p0: PROPERTY {owns} +***************************************************************** +Who is called Dana? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?y ?p0 'dana' . +} + +>> SLOTS: +p0: PROPERTY {title,name} +***************************************************************** +Which books were written by Danielle Steel? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?x WHERE { + ?x rdf:type ?p1 . + ?y ?p0 ?x . +} + +>> SLOTS: +y: RESOURCE {Danielle Steel} +p0: PROPERTY {written} +p1: CLASS {books,book} +***************************************************************** +Which companies are located in California, USA? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?y rdf:type ?p1 . + ?y ?p0 ?v0 . +} + +>> SLOTS: +v0: RESOURCE {California USA} +p0: PROPERTY {located} +p1: CLASS {companies,company} +***************************************************************** +Which country has the most official languages? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?j ?x WHERE { + ?x rdf:type ?p0 . + ?y ?p1 ?j . + ?y rdf:type ?p2 . + ?x ?p3 ?y . +} +ORDER BY DESC(?j) +LIMIT 1 OFFSET 0 + +>> SLOTS: +p0: CLASS {country,state,nation,land,commonwealth} +p1: PROPERTY {} +p2: CLASS {languages,language} +p3: PROPERTY {has} +***************************************************************** +Who produced films starring Natalie Portman? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?x WHERE { + ?x ?p1 ?y . + ?y rdf:type ?p0 . + ?y ?p2 ?v1 . +} + +>> SLOTS: +v1: RESOURCE {Natalie Portman} +p0: CLASS {films,movie,film,picture,pic} +p1: PROPERTY {produced} +p2: PROPERTY {starring} +***************************************************************** +Give me all movies with Tom Cruise! +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?y rdf:type ?p1 . + ?y ?p0 ?v1 . +} + +>> SLOTS: +p0: PROPERTY {} +p1: CLASS {movies,movie,film,picture,pic} +***************************************************************** +Give me all female German chancellors! +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?y rdf:type ?p1 . + ?y ?p2 ?j . + ?y ?p0 ?v0 . +} + +>> SLOTS: +p0: PROPERTY {} +p1: CLASS {chancellors,Chancellor} +p2: PROPERTY {} +***************************************************************** +Give me all soccer clubs in the Premier League. +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?y rdf:type ?p1 . + ?y ?p0 ?v1 . +} + +>> SLOTS: +v1: RESOURCE {Premier League} +p0: PROPERTY {} +p1: CLASS {soccer clubs} +***************************************************************** +When was Capcom founded? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?y WHERE { + ?x ?p0 ?y . +} + +>> SLOTS: +x: RESOURCE {Capcom} +p0: PROPERTY {foundedDate} +***************************************************************** +What is the highest mountain? +>> QUERY: + +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + +SELECT ?j ?y WHERE { + ?y ?p1 ?j . + ?y rdf:type ?p0 . +} +ORDER BY DESC(?j) +LIMIT 1 OFFSET 0 + +>> SLOTS: +p0: CLASS {mountain,mount} +p1: PROPERTY {degree} Property changes on: trunk/components-ext/successful.txt ___________________________________________________________________ Added: svn:mime-type + text/plain This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |