From: <chr...@us...> - 2012-06-16 11:22:01
|
Revision: 3754 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3754&view=rev Author: christinaunger Date: 2012-06-16 11:21:55 +0000 (Sat, 16 Jun 2012) Log Message: ----------- [tbsl] repaired resource slot 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/ltag/parser/Preprocessor.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/Template.java 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 10:15:00 UTC (rev 3753) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/converter/DRS2SPARQL_Converter.java 2012-06-16 11:21:55 UTC (rev 3754) @@ -117,12 +117,12 @@ // System.out.println("--- referent: " + referent.toString()); // DEBUG for (Slot s : slots) { // System.out.println("--- slot: " + s.toString()); // DEBUG - if (s.getAnchor().equals(referent.getValue()) || s.getAnchor().equals(referent.toString())) { + if (s.getAnchor().equals(referent.getValue()) || s.getAnchor().equals(referent.toString())) { // System.out.println(" fits!"); // DEBUG - template.addSlot(s); - break; - } - } + template.addSlot(s); + break; + } + } } for (Slot s : slots) if (s.getAnchor().equals("SLOT_arg")) template.addSlot(s); @@ -410,16 +410,22 @@ if (firstIsURI || firstIsInt) { drs.replaceEqualRef(secondArg, firstArg, true); for (Slot s : slots) { - if (s.getAnchor().equals(secondArg.getValue())) { - s.setAnchor(firstArg.getValue()); - } + if (s.getAnchor().equals(secondArg.getValue())) + s.setAnchor(firstArg.getValue()); + if (s.getWords().contains(secondArg.getValue())) { + s.getWords().remove(secondArg.getValue()); + s.getWords().add(firstArg.getValue()); + } } } else if (secondIsURI || secondIsInt) { drs.replaceEqualRef(firstArg, secondArg, true); for (Slot s : slots) { - if (s.getAnchor().equals(firstArg.getValue())) { - s.setAnchor(secondArg.getValue()); - } + if (s.getAnchor().equals(firstArg.getValue())) + s.setAnchor(secondArg.getValue()); + if (s.getWords().contains(firstArg.getValue())) { + s.getWords().remove(firstArg.getValue()); + s.getWords().add(secondArg.getValue()); + } } } else { drs.replaceEqualRef(firstArg, secondArg, false); Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/ltag/parser/Preprocessor.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/ltag/parser/Preprocessor.java 2012-06-16 10:15:00 UTC (rev 3753) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/ltag/parser/Preprocessor.java 2012-06-16 11:21:55 UTC (rev 3754) @@ -96,8 +96,8 @@ Pattern whenPattern = Pattern.compile("\\A(when/WRB\\s(.+\\s)(\\w+)/((V[A-Z]+)|(PASS[A-Z]+)))"); Pattern wherePattern = Pattern.compile("\\A(where/WRB\\s(.+\\s)(\\w+)/((V[A-Z]+)|(PASS[A-Z]+)))"); Pattern adjsPattern = Pattern.compile("((\\w+)/JJ.(\\w+)/JJ)"); - Pattern adjnnpPattern = Pattern.compile("((\\w+)(?<!many)/JJ.(\\w+)/NNP(S)?)"); - Pattern adjnounPattern = Pattern.compile("((\\w+)(?<!many)/JJ.(\\w+)/NN(S)?)"); +// Pattern adjnnpPattern = Pattern.compile("((\\w+)(?<!many)/JJ.(\\w+)/NNP(S)?)"); + Pattern adjnounPattern = Pattern.compile("((\\w+)(?<!many)/JJ.(\\w+)/NN(S)?(\\s|\\z))"); Pattern adjnprepPattern = Pattern.compile("((\\w+)(?<!many)/JJ.(\\w+)/NPREP)"); m = compAdjPattern.matcher(condensedstring); @@ -219,15 +219,12 @@ if (VERBOSE) logger.trace("Replacing " + m.group(1) + " by " + m.group(2)+"_"+m.group(3)+"/JJ"); condensedstring = condensedstring.replaceFirst(m.group(1),m.group(2)+"_"+m.group(3)+"/JJ"); } - m = adjnnpPattern.matcher(condensedstring); - while (m.find()) { - if (VERBOSE) logger.trace("Replacing " + m.group(1) + " by " + m.group(2)+"_"+m.group(3)+"/NNP"); - condensedstring = condensedstring.replaceFirst(m.group(1),m.group(2)+"_"+m.group(3)+"/NNP"); - } m = adjnounPattern.matcher(condensedstring); while (m.find()) { +// if (!m.group(4).startsWith("NNP")) { if (VERBOSE) logger.trace("Replacing " + m.group(1) + " by " + m.group(2)+"_"+m.group(3)+"/JJNN"); condensedstring = condensedstring.replaceFirst(m.group(1),m.group(2)+"_"+m.group(3)+"/JJNN"); +// } } m = adjnprepPattern.matcher(condensedstring); while (m.find()) { Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/Template.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/Template.java 2012-06-16 10:15:00 UTC (rev 3753) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sparql/Template.java 2012-06-16 11:21:55 UTC (rev 3754) @@ -33,11 +33,14 @@ public Template checkandrefine() { Set<Slot> argslots = new HashSet<Slot>(); - for (Slot slot : slots) if (slot.anchor.equals("SLOT_arg")) { + for (Slot slot : slots) if (slot.anchor.equals("SLOT_arg")) argslots.add(slot); + + for (Slot slot : argslots) { String var = slot.words.get(0); // check for clash (v=LITERAL && v=RESOURCE) - for (Slot s : argslots) { - if (s.words.get(0).equals(slot.words.get(0)) && !s.type.equals(slot.type)) + for (Slot s : slots) { + if ((s.words.get(0).equals(slot.words.get(0)) || s.anchor.equals(slot.words.get(0))) + && !s.type.equals(slot.type)) return null; } // check for clash (v=LITERAL && p(...,v)=OBJECTPROPERTY) || (v=RESOURCE && p(...,v)=DATATYPEPROPERTY) @@ -53,7 +56,6 @@ } } } - argslots.add(slot); } for (Slot slot : slots) { @@ -99,7 +101,14 @@ } // finally remove all argslots - slots.removeAll(argslots); +// slots.removeAll(argslots); // removes all (argslots + resource slots) +// for (Slot sl : argslots) slots.remove(sl); // removes resource slots + List<Slot> keep = new ArrayList<Slot>(); + for (Slot s : slots) { + if (!s.anchor.startsWith("SLOT_arg")) + keep.add(s); + } + slots = keep; return this; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |