我目前正在使用freebase數據爲我的應用程序...只想在電影,電視等領域的一些信息發現tsv轉儲將不被支持在未來,是不完整的。四元轉儲具有所需的所有信息。問題是更新數據庫,整個轉儲應該再次下載,並與已下載和處理的數據進行交叉檢查,然後進行更新。是否有任何其他方式來更新數據或獲取增量更新?有沒有辦法找到的遊離鹼的數據的增量更新?
1
A
回答
1
您可以在自己感興趣的域中查詢自上次更新以來發生更改的事件,但取決於可能遇到配額問題的更改數量。
沒有生成增量轉儲,因此您可以使用兩個完整轉儲自己生成差異,但這樣做很直接,因爲新的RDF轉儲似乎按照主題MID進行排序,與四元轉儲不同。
1
正如湯姆指出的那樣,新的RDF轉儲按主題進行排序,允許您通過遍歷文件有效地區分整個數據集。基本的僞代碼如下:
- 在這兩個文件
- 而有行留在這兩個文件的開頭跳過前綴頭:
- 讀取每個文件一行
- 如果從舊文件的主題ID是不是新文件的主題ID更大:
- 讀取所有後續行從同一主題標識的新文件
- 添加此蘇bject到的「添加主題」
- 列表中添加的所有行這個主題,以「補充事實」
- 其他的列表中,如果從舊文件的主題ID小於來自新文件的主題ID :
- 讀取所有後續行從舊的文件與相同主題ID
- 這個主題增添的「刪除主題」
- 列表中添加的所有行這個主題爲「解除事實」 名單
- 否則,如果在這兩個文件主題的ID匹配:
- 讀取兩個文件具有相同主題ID
- DIFF線找出已添加以外的所有後續行/刪除
- 添加所有添加行補充說:「事實」的名單
- 全部去掉行添加到「已刪除的事實」
- 輸出你的補丁通過合併人名單順序的變化l列出:
- 刪除事實
- 移除的主題
- 添加的主題
- 添加事實
該算法以線性時間用很少的內存使用情況運行,因此您可以在本地機器上輕鬆處理多GB的文件。
一旦你有RDF的差異轉儲,你需要編寫一些代碼補丁應用到現有的數據庫。由於修補程序的排序方式,在嘗試添加或刪除事實之前,可以始終依賴數據庫中存在的主題。
相關問題
- 1. 有沒有辦法找到accurev中促銷的最大數量?
- 2. Java的遊離鹼查詢
- 3. 使用的遊離鹼
- 4. 是遊離鹼的開源
- 5. 有沒有辦法更新dataTables中的一行數據?
- 6. 如何得到的遊離鹼
- 7. 有沒有辦法找到分組數據的TOP X記錄?
- 8. 有沒有什麼辦法可以找到新增的設備使用asp.net C#
- 9. 有沒有辦法脫離了Heroku的
- 10. 的遊離鹼MQL VS遊離鹼的建議:在結果(n型)
- 11. 有沒有辦法根據列表更新數據庫字段?
- 12. 有沒有辦法增加API的V4的度量限制?
- 13. UpdatePanel沒有更新大量的數據
- 14. 有沒有辦法找到尚未合併的SVN更改?
- 15. Windows Phone 7:沒有辦法從WebClient增量下載數據?
- 16. 有沒有辦法找出win32信號量的當前計數?
- 17. 有多個獨特的子項的遊離鹼查詢
- 18. 的遊離鹼的Twitter擴展
- 19. 如何遊離鹼的使用Yago2的數據?
- 20. 如何增加的遊離鹼API結果限制
- 21. 有沒有辦法找到在特定時間更新特定字段的SQL?
- 22. 有沒有辦法找出哪個PHP腳本更新了MySQL數據庫?
- 23. 有沒有辦法更新User.IsInRole?
- 24. 有沒有辦法恢復wordpress更新?
- 25. 有沒有辦法找到網絡數據服務?
- 26. 遊離鹼 - MQL在Javascript
- 27. 遊離鹼自動提示
- 28. 有沒有辦法得到沒有CONNECTION變量的mysqli_error?
- 29. NSFetchedResultsController沒有更新數據到的UITableViewController
- 30. 有沒有辦法找到一年內使用PHP的週數?