これを行うには、それぞれに異なるトレードオフを伴ういくつかの異なる方法があります。
このようなクエリで Search API を使用します
https://www.googleapis.com/freebase/v1/search?indent=true&filter=%28all%20name {フル}:%22uss%20constitution%22%29
次のような JSON 結果が返されます。
{
"status": "200 OK",
"result": [
{
"mid": "/m/07y14",
"name": "USS Constitution",
"notable": {
"name": "Ship",
"id": "/boats/ship"
},
"lang": "en",
"score": 1401.410400
},
...
"{full}" を "{phrase}" に切り替えることで、一致をより自由にすることができます。これにより、完全一致ではなく部分文字列一致が得られます。
警告: - 単一の「注目すべきタイプ」のみが取得され、Freebase の (不明な) アルゴリズムによって修正されます - USS コンスティテューションと USS コンスティテューションの両方の結果を取得する方法はないと思います - すべてのタイプのリストを取得できます&mql_output={"type":[]} を追加すると、「注目すべき」タイプが失われます。1回の呼び出しで両方を取得する方法はないと思います。
- MQL を使用する
このクエリは、必要な基本情報を返します。
[{
"name~=":"uss constitution",
"type":[],
"/common/topic/notable_types" : []
}]
警告:
- 主要な名前ではなく別名である「uss 憲法」は見つかりません (ただし、MQL クックブックにはそのためのレシピがあります)。
- 「USS憲法」は見つかりません
- 「notable_types」API は MQL 拡張機能であり、MQL 拡張機能は新しい Freebase API ではサポートされていません。レガシーの非推奨の API のみです。
- Freebase が「特筆性」を計算するために使用する (未知の) アルゴリズムに縛られている
何を達成しようとしているのかによっては、これよりも洗練されたものが必要になるかもしれません (そして Freebase の内容をより深く理解する必要があります)。