I want to play with freebase data. on the dump webpage, it says it's
n-triples format.
but in this so question:
http://stackoverflow.com/questions/21274368/jena-parsing-issue-for-freebase-rdf-dump-jan-2014
it seems turtle format.
I want to parse a few lines of this file using jena but it throws exception
Exception in thread "main" com.hp.hpl.jena.shared.JenaException:
java.net.MalformedURLException: no protocol:
<http://rdf.freebase.com/ns/american_football.football_player.footballdb_id>
<http://rdf.freebase.com/ns/type.object.type>
<http://rdf.freebase.com/ns/type.property> .
<http://rdf.freebase.com/ns/american_football.football_player.footballdb_id>
<http://rdf.freebase.com/ns/type.object.name> "footballdb ID"@en .
my codes
FileInputStream is = new FileInputStream("freebase-rdf-2014-08-03-00-00.gz");
GZIPInputStream gzis=new GZIPInputStream(is);
BufferedReader br=new BufferedReader(new InputStreamReader(gzis,"UTF8"));
int lineNum=0;
String line;
StringBuilder sb=new StringBuilder();
while((line=br.readLine())!=null){
sb.append(line).append("\n");
lineNum++;
if(lineNum%100==0){
break;
Model model = ModelFactory.createDefaultModel();
String s=sb.toString();
model.read(s, "TURTLE");
// list the statements in the Model
StmtIterator iter = model.listStatements();
// print out the predicate, subject and object of each statement
while (iter.hasNext()) {
Statement stmt = iter.nextStatement(); // get next statement
Resource subject = stmt.getSubject(); // get the subject
Property predicate = stmt.getPredicate(); // get the predicate
RDFNode object = stmt.getObject(); // get the object
System.out.print(subject.toString());
System.out.print(" " + predicate.toString() + " ");
if (object instanceof Resource) {
System.out.print(object.toString());
} else {
// object is a literal
System.out.print(" \"" + object.toString() + "\"");
System.out.println(" .");
br.close();
n-triples format.
but in this so question:
http://stackoverflow.com/questions/21274368/jena-parsing-issue-for-freebase-rdf-dump-jan-2014
it seems turtle format.
I want to parse a few lines of this file using jena but it throws exception
Exception in thread "main" com.hp.hpl.jena.shared.JenaException:
java.net.MalformedURLException: no protocol:
<http://rdf.freebase.com/ns/american_football.football_player.footballdb_id>
<http://rdf.freebase.com/ns/type.object.type>
<http://rdf.freebase.com/ns/type.property> .
<http://rdf.freebase.com/ns/american_football.football_player.footballdb_id>
<http://rdf.freebase.com/ns/type.object.name> "footballdb ID"@en .
my codes
FileInputStream is = new FileInputStream("freebase-rdf-2014-08-03-00-00.gz");
GZIPInputStream gzis=new GZIPInputStream(is);
BufferedReader br=new BufferedReader(new InputStreamReader(gzis,"UTF8"));
int lineNum=0;
String line;
StringBuilder sb=new StringBuilder();
while((line=br.readLine())!=null){
sb.append(line).append("\n");
lineNum++;
if(lineNum%100==0){
break;
Model model = ModelFactory.createDefaultModel();
String s=sb.toString();
model.read(s, "TURTLE");
// list the statements in the Model
StmtIterator iter = model.listStatements();
// print out the predicate, subject and object of each statement
while (iter.hasNext()) {
Statement stmt = iter.nextStatement(); // get next statement
Resource subject = stmt.getSubject(); // get the subject
Property predicate = stmt.getPredicate(); // get the predicate
RDFNode object = stmt.getObject(); // get the object
System.out.print(subject.toString());
System.out.print(" " + predicate.toString() + " ");
if (object instanceof Resource) {
System.out.print(object.toString());
} else {
// object is a literal
System.out.print(" \"" + object.toString() + "\"");
System.out.println(" .");
br.close();