我需要定期處理持續存儲在Jena數據存儲區中的數據。插入數據時,有沒有辦法爲RDF記錄存儲插入時間?按插入時間在Apache Jena中插入和搜索記錄
2
A
回答
0
RDF的一個有趣而實用的功能是數據和元數據都存儲在同一級別 - 基本上在一個圖表中(儘管下面有關於此的注意事項)。因此,在RDF中,您不必將單獨的位置(例如附加到數據庫表的元數據)記錄爲更新時間,而是將這些信息作爲三元組與數據本身一起放入。
因此,假設我將example:Book
資源添加到我的三重商店。我可以簡單地一dcTerms:modified
屬性添加到資源本身,編碼變更的日期:
example:eloquent_ruby
a example:Book ;
dcTerms:title "Eloquent Ruby"@en ;
dcTerms:modified "2012-12-07T08:00:00"^^xsd:dateTime.
一個潛在的疑難雜症是,在這樣做,我將不得不相信使用該商店瞭解到,所有的應用程序modified
triple表示資源更新的時間,而不是書本身的最後更新。如果資源類型更明顯地表示對事物的描述而非事物本身,則此模式可能更好,例如,如果主題資源是example:PatientRecord
而不是example:Book
。
我可以減輕風險更新時間不明確的明確記錄更新主體資源的事件:
example:eloquent_ruby
a example:Book ;
dcTerms:title "Eloquent Ruby"@en ;
dcTerms:identifier "0-321-58410-4".
<urn:uuid:6ba3f8ea-4048-11e2-82bc-ab86fea9a379>
a example:UpdateEvent ;
example:about example:eloquent_ruby ;
dcTerms:modified "2012-12-07T08:00:00"^^xsd:dateTime ;
example:changed dcTerms:identifier , dcTerms:title.
注意:您不必使用UUID作爲的主題更改記錄 - 任何其他合成的ID或甚至bNode都可以。就我個人而言,我最近使用的是bNodes較少,僅僅是因爲在UI中使用命名資源更容易。
如果在您的應用程序中,您不想將內容數據和源出版物元數據放入同一個RDF圖中,則可以將更新記錄放入不同的命名圖中。這意味着您必須記住在您使用的任何SPARQL查詢中使用圖名(除非您依賴Jena TDB的union default graph功能),但它確實允許您單獨管理內容數據和元數據,並將其隱藏用戶如有必要。
相關問題
- 1. Apache Derby插入觸發器 - 檢索插入的記錄
- 2. Ecto插入中間記錄
- 3. Logstash正在跳過記錄,同時在彈性搜索中插入記錄
- 4. 在表格中間插入新記錄
- 5. 插入記錄
- 6. 插入記錄
- 7. 插入記錄
- 8. 在asp.net中插入記錄
- 9. 插入父表時插入在外鍵表中的新記錄
- 10. 插入時缺失記錄
- 11. sql - 在兩條記錄之間插入
- 12. 記錄MSSQL插入
- 13. has_many記錄插入
- 14. sqltransaction在插入數據時插入雙記錄
- 15. Android SQLite按時間插入和排序
- 16. 如何在輸入框中插入一個搜索按鈕
- 17. 在兩個表之間插入記錄插入(選擇何時計算年齡)
- 18. 如何在SQL中的特定記錄之間插入記錄
- 19. 從記錄中插入html
- 20. 插入表中的記錄
- 21. 從表中插入記錄
- 22. 插入100000+記錄在MySQL
- 23. 插入記錄到在SQL
- 24. 標記記錄插入
- 25. 在插入記錄時鎖定
- 26. 插入後檢索記錄ID
- 27. 插入排序和二進制搜索插入排序
- 28. 時間插入
- 29. sql - 測試記錄按順序插入
- 30. Mysql:在一張表中插入記錄時間過長
有沒有辦法讓數據存儲設置時間,而不是我的應用程序? – user743556