2013-03-31 88 views
2

我是Freebase的新手,我一直在試圖找到2個節點之間沒有成功的關係。[Freebase]:查找節點之間的關係

例如,我想要找出路易斯漢密爾頓(/ en/lewis_hamilton)和一級方程式(/ en/formula_one)之間是否存在關聯,但在現實生活中卻存在,但似乎無法找到它。

我曾嘗試以下MQL代碼,交替的ID以及:

1)

[{ 
"type" : "/type/link", 
"source" : { "id" : "/en/lewis_hamilton" }, 
"master_property" : null, 
"target" : { "id" : "/en/formula_one" }, 
"target_value" : null 
}] 

2)

{ 
    "id":"/en/lewis_hamilton", 
    "/type/reflect/any_master":[{ 
    "link":null, 
    "name":null 
    }], 
    "/type/reflect/any_reverse":[{ 
    "link":null, 
    "name":null 
    }], 
    "/type/reflect/any_value":[{ 
    "link":null, 
    "value":null 
    }] 
} 

我也不能使用了幾個他們的應用程序可以這樣做,因爲它每次都會返回「超出用戶訪問量限制」。應用程序是:

  1. http://between.freebaseapps.com
  2. http://shortestpath.freebaseapps.com

。你們有什麼建議?

回答

5

您提供的查詢是正確的,只是它們只查看一條鏈接的關係。令人驚訝的是,現在還沒有從路易斯漢密爾頓到Freebase的一級方程式。如果有可能是這個樣子:

/en/lewis_hamilton → /type/object/type → /base/formula1/formula_1_driver 
/base/formula1/formula_1_driver → /type/type/domain → /base/formula1 
/base/formula1 → /freebase/domain_profile/equivalent_topic → /en/formula_one 

的遊離鹼不支持遞歸查詢,以便有找話題之間的這些多連桿的路徑沒有什麼好辦法。您嘗試的應用程序通過使用日益嵌套的子查詢生成查詢來模擬遞歸。不幸的是,它們已經過時,並且錯過了正確的API密鑰,現在就可以正常運行。以下是這些嵌套查詢看起來像:

{ 
    "id": "/en/lewis_hamilton", 
    "name": null, 
    "/type/reflect/any_master": [{ 
    "link": { 
     "master_property": null, 
     "target": { 
     "id": null, 
     "name": null, 
     "/type/reflect/any_master": [{ 
      "link": { 
      "master_property": null, 
      "target": { 
       "id": "//base/formula1", 
       "name": null 
      } 
      }, 
      "name": null 
     }] 
     } 
    }, 
    "name": null 
    }] 
} 

這些類型的查詢可能需要很長的時間來運行,並可能會更好,如果在Freebase data dumps本地運行。現在

+0

感謝您的解釋肖恩!但是,假設漢密爾頓和F1之間的路線完全如你所描述的那樣,是不是2個鏈接分開?搜索將如何進行?謝謝! – Cassio

+0

我已經更新了答案,以顯示如何進行嵌套鏈接查詢。我不建議你使用這種方法,因爲它很慢並且容易超時。 –

+0

我也在尋找類似的東西。 Freebase沒有任何有用的API能夠做出Google迄今爲止還沒有做過的重要事情。 我會建議獲取您關心的freebase數據,準備您自己的重要實體的小圖數據庫。 –

1

的遊離鹼將返回不過503S,所以這是一個有點難以實驗,但

  • 上Freebaseapps所有的應用程序都是開源的,所以看着來源爲您找到應該給你的應用程序一些好的提示。應用程序目錄是https://www.freebase.com/apps(但不是現在渲染)

  • Freebaseapps上的所有應用程序都可以通過單擊進行克隆。幾乎每個在基礎設施上編寫的應用程序停止工作時,谷歌切換到新的API和開發人員不太可能修復它們,如果他們沒有看過多年,但你可能會感興趣的工作通過克隆他們,b)註冊一個API密鑰,以及c)將該API密鑰添加到克隆的應用程序。

相關問題