/** * */ package com.maalaang.omtwitter.tools; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Map; import java.util.Properties; import java.util.Set; import com.hp.hpl.jena.rdf.model.Model; import com.maalaang.omtwitter.io.CollectionTextReader; import com.maalaang.omtwitter.io.CollectionTextWriter; import com.maalaang.omtwitter.ontology.DBPediaDomainOntologyBuilder; /** * @author Sangwon Park * */ public class BuildDBPediaDomainOntology { /** * @param args */ public static void main(String[] args) { try { DBPediaDomainOntologyBuilder builder = new DBPediaDomainOntologyBuilder(); Properties prop = new Properties(); prop.load(new InputStreamReader(new FileInputStream(args[0]), "UTF-8")); Set<String> resources = CollectionTextReader.readSetString(prop.getProperty("resource.seed.file")); Set<String> targetProperties = CollectionTextReader.readSetString(prop.getProperty("property.target.file")); Map<String,Integer> stmtPatternFreqMap = builder.stmtPatternFrequency(resources, Integer.parseInt(prop.getProperty("query.interval"))); CollectionTextWriter.writeMapStringInteger(stmtPatternFreqMap, prop.getProperty("resource.seed.pattern.freq.file"), true); builder.expandResources(stmtPatternFreqMap, resources, Double.parseDouble(prop.getProperty("param.seed.commonness")), targetProperties, Integer.parseInt(prop.getProperty("query.interval"))); CollectionTextWriter.writeSetString(resources, prop.getProperty("resource.expanded.file"), true); Model domainOntologyModel = builder.retrieveStmtsForResources(resources, Integer.parseInt(prop.getProperty("query.interval"))); OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(prop.getProperty("domain.ontology.file")), "UTF-8"); domainOntologyModel.write(osw, "N-TRIPLE"); osw.close(); } catch (Exception e) { e.printStackTrace(); } } }