2012-03-23 27 views
0

これまで、私はfreebaseからいくつかのデータを得ることができるように、私はgoogle-api for javaで遊んでいました。私は正常にmqlreadを使用しました。さて、私はテキストサービスを試してみたいと思います。問題は、私はドキュメントに何かが足りないと思われることです。 Freebase.Text.get(List id)の使い方を理解できません。新しいFreebase APIをJavaクライアントで使用する

List idパラメータには何を入力する必要がありますか?私は次のことを試してみました:

HttpTransport httpTransport = new NetHttpTransport(); 
    JsonFactory jsonFactory = new JacksonFactory(); 

    JsonHttpRequestInitializer requestInitializer = new JsonHttpRequestInitializer() { 
     public void initialize(JsonHttpRequest jsonHttpRequest) throws IOException { 
      FreebaseRequest freebaseRequest = (FreebaseRequest) jsonHttpRequest; 
      freebaseRequest.setPrettyPrint(true); 
     } 
    }; 

    Freebase freebase = Freebase.builder(httpTransport, jsonFactory).setJsonHttpRequestInitializer(requestInitializer).build(); 
    ArrayList<String> list = new ArrayList<String>(); 

    JSONObject j = new JSONObject(); 
    j.put("id", "en/bob_dylan"); 
    list.add(j.toJSONString()); 
    Freebase.Text.Get text = freebase.text().get(list); 
    ContentserviceGet get = text.execute(); 
    System.out.println(get.toPrettyString()); 

list.add("en/linux_kernel"); 

どちらの例は、すべてのヘルプは高く評価されて404を返しました。

答えて

0

私はJava APIを使用していませんが、ここでは2つの例があります。

APIエクスプローラ http://code.google.com/apis/explorer/#_s=freebase&_v=v1-sandbox&_m=text.get&id=en/bob_dylan

(JSON例である)バッチリクエストIDフィールドが/で始まっていないこと http://wiki.freebase.com/wiki/ApiText#Batch_Requests

注意の例 - 例えば上記の例ではid = en/bob_dylanです。

代わりに、アレイID = [ "EN"、 "bob_dylan"]この作品

希望としてそれを渡すことができます。

+0

それはまだ動作しません:( おそらく、私は今それをしようとするJava APIを使用しません。 – Silanglaya

0

Google Freebase API for Javaはバグです。私は、問題の原因を見つけて、次の問題に入った: http://code.google.com/p/google-api-java-client/issues/detail?id=493

APIを使用しての所期の方法は、このようなものですが、それは動作しません:

ContentserviceGet result = freebase.text().get(Arrays.asList("en", "avenue_q")).execute(); 
0

あなたがする必要はありませんListを介してJSON文字列を渡します。単純な文字列型のIDはその仕事を行います。次のテキストを取得するためのコードです:

HttpTransport httpTransport = new NetHttpTransport(); 
    JsonFactory jsonFactory = new JacksonFactory(); 
    HttpRequestInitializer httpRequestInitializer = new HttpRequestInitializer() { 
     @Override 
     public void initialize(HttpRequest arg0) throws IOException { 
      // TODO Auto-generated method stub 
     } 
    }; 
    JsonHttpRequestInitializer requestInitializer = new JsonHttpRequestInitializer() { 
     public void initialize(JsonHttpRequest jsonHttpRequest) throws IOException { 
      FreebaseRequest freebaseRequest = (FreebaseRequest) jsonHttpRequest; 
      freebaseRequest.setPrettyPrint(true); 
     } 
    }; 
    Freebase.Builder fbb = new Freebase.Builder(httpTransport, jsonFactory, httpRequestInitializer); 
    Freebase freebase = fbb.setJsonHttpRequestInitializer(requestInitializer).build(); 
    ArrayList<String> list = new ArrayList<String>(); 
    try { 
     list.add("/en/bob_dylan"); 
     Freebase.Text.Get text = freebase.text().get(list); 
     ContentserviceGet get = text.execute(); 
     System.out.println(get.toPrettyString()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
関連する問題