diff --git a/src/main/java/de/mpii/yagotools/YagoTaxonomy.java b/src/main/java/de/mpii/yagotools/YagoTaxonomy.java index ec9113e..bc88def 100644 --- a/src/main/java/de/mpii/yagotools/YagoTaxonomy.java +++ b/src/main/java/de/mpii/yagotools/YagoTaxonomy.java @@ -4,6 +4,7 @@ import de.mpii.yagotools.utils.YagoDataReader; import de.mpii.yagotools.utils.YagoRelations; +import java.io.File; import java.util.*; @@ -13,7 +14,8 @@ public class YagoTaxonomy { //private static final String SUB_CLASS_OF = "rdfs:subClassOf"; - String TAXONOMY_FILE_PATH="resources/bigData/yagoTaxonomy_withGeo.tsv"; +// String TAXONOMY_FILE_PATH="resources/bigData/yagoTaxonomy_withGeo.tsv"; + String TAXONOMY_FILE_PATH="bigData/yagoTaxonomy_withGeo.tsv"; private static YagoTaxonomy instance; @@ -21,7 +23,11 @@ public class YagoTaxonomy { private Map> transitiveParents; private YagoTaxonomy(){ - typesParents= YagoDataReader.loadDataInMap(TAXONOMY_FILE_PATH,new String[]{YagoRelations.SUB_CLASS_OF}, YagoDataReader.MapType.SUBJ_2_OBJ); + ClassLoader classLoader = getClass().getClassLoader(); + File taxonomyFile = new File(classLoader.getResource(TAXONOMY_FILE_PATH).getFile()); + + typesParents= YagoDataReader.loadDataInMap(taxonomyFile,new String[]{YagoRelations.SUB_CLASS_OF}, YagoDataReader.MapType.SUBJ_2_OBJ); +// typesParents= YagoDataReader.loadDataInMap(TAXONOMY_FILE_PATH,new String[]{YagoRelations.SUB_CLASS_OF}, YagoDataReader.MapType.SUBJ_2_OBJ); loadTransitiveParents(); } @@ -83,6 +89,9 @@ public Set getParents(Collection keys){ public static void main (String [] args){ + +// args=new String[]{""}; + YagoTaxonomy yt= YagoTaxonomy.getInstance(); System.out.println(yt.getParents(args[0])); diff --git a/src/main/java/de/mpii/yagotools/utils/YagoDataReader.java b/src/main/java/de/mpii/yagotools/utils/YagoDataReader.java index fd6645b..8264bb3 100644 --- a/src/main/java/de/mpii/yagotools/utils/YagoDataReader.java +++ b/src/main/java/de/mpii/yagotools/utils/YagoDataReader.java @@ -7,6 +7,7 @@ import mpi.tools.basics3.FactSource; import mpi.tools.javatools.filehandlers.UTF8Reader; +import java.io.File; import java.net.MalformedURLException; /** * Created by gadelrab on 2/11/16. @@ -17,6 +18,9 @@ public enum MapType{SUBJ_2_OBJ,PRED_OBJ_2_SUBJ} public static Multimap loadDataInMap(String filePath, String [] relations, MapType type) { + return loadDataInMap(new File(filePath) ,relations, type); + } + public static Multimap loadDataInMap(File file, String [] relations, MapType type) { // add them to set for searching ImmutableSet relationsSet=null; if (relations!=null) @@ -24,39 +28,35 @@ public static Multimap loadDataInMap(String filePath, String [] r Multimap subjectObjectMap= HashMultimap.create(); - UTF8Reader fileReader; - try { - //String line; + //String line; + + for(Fact f: FactSource.from(file)) + if(relationsSet==null||relationsSet.contains(f.getRelation())){ + String key=null; + String value=null; + switch (type){ + case SUBJ_2_OBJ: + key=f.getSubject(); + value=f.getObject(); + break; + case PRED_OBJ_2_SUBJ: + key=f.getRelation()+"\t"+f.getObject(); + value=f.getSubject(); + break; + } + subjectObjectMap.put(key,value);} + + System.out.println( "Dictionary size: "+ subjectObjectMap.size()); - for(Fact f: FactSource.from(filePath)) - if(relationsSet==null||relationsSet.contains(f.getRelation())){ - String key=null; - String value=null; - switch (type){ - case SUBJ_2_OBJ: - key=f.getSubject(); - value=f.getObject(); - break; - case PRED_OBJ_2_SUBJ: - key=f.getRelation()+"\t"+f.getObject(); - value=f.getSubject(); - break; - } - subjectObjectMap.put(key,value);} + return subjectObjectMap; - System.out.println( "Dictionary size: "+ subjectObjectMap.size()); - return subjectObjectMap; - } catch (MalformedURLException e2) { - e2.printStackTrace(); - } - return null; }