From: <lor...@us...> - 2012-09-03 14:28:44
|
Revision: 3842 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3842&view=rev Author: lorenz_b Date: 2012-09-03 14:28:33 +0000 (Mon, 03 Sep 2012) Log Message: ----------- Fixed bug. Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/DisjointObjectPropertyAxiomLearner.java trunk/components-core/src/main/java/org/dllearner/algorithms/properties/EquivalentObjectPropertyAxiomLearner.java trunk/components-core/src/main/java/org/dllearner/core/owl/EquivalentObjectPropertiesAxiom.java trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/properties/DisjointObjectPropertyAxiomLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/DisjointObjectPropertyAxiomLearner.java 2012-08-30 15:07:38 UTC (rev 3841) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/DisjointObjectPropertyAxiomLearner.java 2012-09-03 14:28:33 UTC (rev 3842) @@ -194,24 +194,24 @@ for(ObjectProperty p : completeDisjointProperties){ if(usePropertyPopularity){ int overlap = 0; - int pop; + int otherPopularity; if(ks.isRemote()){ - pop = reasoner.getPopularity(p); + otherPopularity = reasoner.getPopularity(p); } else { Model model = ((LocalModelBasedSparqlEndpointKS)ks).getModel(); - pop = model.listStatements(null, model.getProperty(p.getName()), (RDFNode)null).toSet().size(); + otherPopularity = model.listStatements(null, model.getProperty(p.getName()), (RDFNode)null).toSet().size(); } - //we skip classes with no instances - if(pop == 0) continue; + //we skip properties with no instances + if(otherPopularity == 0) continue; //we compute the estimated precision - double precision = accuracy(pop, overlap); + double precision = accuracy(otherPopularity, overlap); //we compute the estimated recall double recall = accuracy(popularity, overlap); //compute the overall score double score = 1 - fMEasure(precision, recall); - evalAxiom = new EvaluatedAxiom(new DisjointObjectPropertyAxiom(propertyToDescribe, p), new AxiomScore(score)); + evalAxiom = new EvaluatedAxiom(new DisjointObjectPropertyAxiom(propertyToDescribe, p), new AxiomScore(score, score, popularity, popularity, 0)); } else { evalAxiom = new EvaluatedAxiom(new DisjointObjectPropertyAxiom(propertyToDescribe, p), new AxiomScore(1)); } @@ -223,24 +223,24 @@ for(Entry<ObjectProperty, Integer> entry : sortByValues(property2Count)){ p = entry.getKey(); int overlap = entry.getValue(); - int pop; + int otherPopularity; if(ks.isRemote()){ - pop = reasoner.getPopularity(p); + otherPopularity = reasoner.getPopularity(p); } else { Model model = ((LocalModelBasedSparqlEndpointKS)ks).getModel(); - pop = model.listStatements(null, model.getProperty(p.getName()), (RDFNode)null).toSet().size(); + otherPopularity = model.listStatements(null, model.getProperty(p.getName()), (RDFNode)null).toSet().size(); } - //we skip classes with no instances - if(pop == 0) continue; + //we skip properties with no instances + if(otherPopularity == 0) continue; //we compute the estimated precision - double precision = accuracy(pop, overlap); + double precision = accuracy(otherPopularity, overlap); //we compute the estimated recall double recall = accuracy(popularity, overlap); //compute the overall score double score = 1 - fMEasure(precision, recall); - evalAxiom = new EvaluatedAxiom(new DisjointObjectPropertyAxiom(propertyToDescribe, p), new AxiomScore(score)); + evalAxiom = new EvaluatedAxiom(new DisjointObjectPropertyAxiom(propertyToDescribe, p), new AxiomScore(score, score, popularity, popularity - overlap, overlap)); } property2Count.put(propertyToDescribe, all); @@ -251,7 +251,7 @@ SparqlEndpoint endpoint = SparqlEndpoint.getEndpointDBpedia(); // endpoint = new SparqlEndpoint(new URL("http://dbpedia.aksw.org:8902/sparql"), Collections.singletonList("http://dbpedia.org"), Collections.<String>emptyList())); DisjointObjectPropertyAxiomLearner l = new DisjointObjectPropertyAxiomLearner(new SparqlEndpointKS(endpoint));//.getEndpointDBpediaLiveAKSW())); - l.setPropertyToDescribe(new ObjectProperty("http://dbpedia.org/ontology/aircraftTransport")); + l.setPropertyToDescribe(new ObjectProperty("http://dbpedia.org/ontology/league")); l.setMaxExecutionTimeInSeconds(10); l.init(); l.getReasoner().precomputeObjectPropertyPopularity(); Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/properties/EquivalentObjectPropertyAxiomLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/EquivalentObjectPropertyAxiomLearner.java 2012-08-30 15:07:38 UTC (rev 3841) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/EquivalentObjectPropertyAxiomLearner.java 2012-09-03 14:28:33 UTC (rev 3842) @@ -171,9 +171,9 @@ property2Count.remove(propertyToDescribe); EvaluatedAxiom evalAxiom; - Set<ObjectProperty> properties; + List<ObjectProperty> properties; for(Entry<ObjectProperty, Integer> entry : sortByValues(property2Count)){ - properties = new HashSet<ObjectProperty>(); + properties = new ArrayList<ObjectProperty>(); properties.add(propertyToDescribe); properties.add(entry.getKey()); int popularity = reasoner.getPropertyCount(entry.getKey()); Modified: trunk/components-core/src/main/java/org/dllearner/core/owl/EquivalentObjectPropertiesAxiom.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/core/owl/EquivalentObjectPropertiesAxiom.java 2012-08-30 15:07:38 UTC (rev 3841) +++ trunk/components-core/src/main/java/org/dllearner/core/owl/EquivalentObjectPropertiesAxiom.java 2012-09-03 14:28:33 UTC (rev 3842) @@ -19,21 +19,21 @@ package org.dllearner.core.owl; +import java.util.Collection; import java.util.Iterator; import java.util.Map; -import java.util.Set; public class EquivalentObjectPropertiesAxiom extends PropertyAxiom { private static final long serialVersionUID = -1085651734702155330L; - private Set<ObjectProperty> equivalentProperties; + private Collection<ObjectProperty> equivalentProperties; - public EquivalentObjectPropertiesAxiom(Set<ObjectProperty> equivalentProperties) { + public EquivalentObjectPropertiesAxiom(Collection<ObjectProperty> equivalentProperties) { this.equivalentProperties = equivalentProperties; } - public Set<ObjectProperty> getEquivalentProperties() { + public Collection<ObjectProperty> getEquivalentProperties() { return equivalentProperties; } Modified: trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java 2012-08-30 15:07:38 UTC (rev 3841) +++ trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java 2012-09-03 14:28:33 UTC (rev 3842) @@ -109,6 +109,7 @@ cache = new ExtractionDBCache("cache"); } classPopularityMap = new HashMap<NamedClass, Integer>(); + objectPropertyPopularityMap = new HashMap<ObjectProperty, Integer>(); } public SPARQLReasoner(SparqlEndpointKS ks, ExtractionDBCache cache) { @@ -116,12 +117,14 @@ this.cache = cache; classPopularityMap = new HashMap<NamedClass, Integer>(); + objectPropertyPopularityMap = new HashMap<ObjectProperty, Integer>(); } public SPARQLReasoner(OntModel model) { this.model = model; classPopularityMap = new HashMap<NamedClass, Integer>(); + objectPropertyPopularityMap = new HashMap<ObjectProperty, Integer>(); } public void precomputePopularity(){ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |