Question
What would a basic example of querying Freebase with MQL from the Java Freebase API (google-api-services-freebase) look like and what is the recommended way for processing the resulting data?
I’m especially wondering how to “correctly” use the com.google.api.services.freebase.Freebase
class.
Background – What I Have So Far
I have these dependencies in my project:
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-freebase</artifactId>
<version>v1-rev42-1.17.0-rc</version>
</dependency>
<dependency>
<groupId>com.google.http-client</groupId>
<artifactId>google-http-client-jackson2</artifactId>
<version>1.17.0-rc</version>
</dependency>
Now with the following code I can get unparsed JSON results to stdout:
Freebase freebase = new Freebase(
GoogleNetHttpTransport.newTrustedTransport(),
JacksonFactory.getDefaultInstance(),
null);
Mqlread mqlread = freebase.mqlread(
"[{ \"limit\": 5, \"name\": null, \"type\": \"/medicine/disease\" }]");
mqlread.executeAndDownloadTo(System.out);
But what is the recommended way of parsing the returned JSON? Why would I want to use the Freebase API at all, if I should have to manually parse a JSON result stream anyway?
NB: eventually I would like to query for larger amounts of data; the above query is just a simple example.