package doser.tools.indexcreation; import java.io.IOException; import java.util.HashMap; import org.rdfhdt.hdt.hdt.HDT; import org.rdfhdt.hdt.hdt.HDTManager; import org.rdfhdt.hdtjena.HDTGraph; import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.rdf.model.ModelFactory; import com.hp.hpl.jena.rdf.model.RDFNode; import com.hp.hpl.jena.rdf.model.Statement; import com.hp.hpl.jena.rdf.model.StmtIterator; public class CountYago2sTypes { private final static String TYPES = "/home/quh/HDT/yagoTypes.hdt"; public static void main(String[] args) { HDT hdt = null; try { hdt = HDTManager.mapIndexedHDT(TYPES, null); } catch (IOException e) { e.printStackTrace(); } HDTGraph graph = new HDTGraph(hdt); Model m = ModelFactory.createModelForGraph(graph); StmtIterator iter = m.listStatements(); HashMap<String, Integer> hash = new HashMap<String, Integer>(); int number = 0; while (iter.hasNext()) { if (number % 50000 == 0) { System.out.println("Processed Entries: " + number); } Statement stmt = iter.next(); RDFNode object = stmt.getObject(); String s = null; s = object.asResource().getURI(); hash.put(s, 0); number++; } System.out.println("Anzahl an Typen: " +hash.size()); } }