我對RDF數據表示有問題。該表包含數百萬行和數千個subject_id
。這是一個表格樣本。如何在RDF中表示時間關係如<time:before>?
row_id subject_id DateTime
34951953 144 14/07/2016 22:00
34952051 145 14/07/2016 22:00
34951954 146 14/07/2016 22:00
34951976 144 15/07/2016 3:00
34952105 146 15/07/2016 3:00
34952004 144 15/07/2016 20:00
我已經做了簡單的1:1 rdf映射轉換這樣使用jena。
<foo/data/row_id=34951953> <foo/data/subject_id> "144"
<foo/data/row_id=34951954> <foo/data/subject_id> "146"
<foo/data/row_id=34951954> <foo/data/subject_id> "146"
<foo/data/row_id=34952051> <foo/data/subject_id> "145"
<foo/data/row_id=34951976> <foo/data/subject_id> "144"
<foo/data/row_id=34952105> <foo/data/subject_id> "146"
<foo/data/row_id=34952004> <foo/data/subject_id> "144"
<foo/data/row_id=34951953> <foo/data/DateTime> "14/07/2016 22:00:00"
<foo/data/row_id=34952051> <foo/data/DateTime> "14/07/2016 22:00:00"
<foo/data/row_id=34952054> <foo/data/DateTime> "14/07/2016 22:00:00"
<foo/data/row_id=34951976> <foo/data/DateTime> "15/07/2016 3:00:00"
<foo/data/row_id=34952105> <foo/data/DateTime> "15/07/2016 3:00:00"
<foo/data/row_id=34952004> <foo/data/DateTime> "15/07/2016 20:00:00"
現在,我想添加一些時間屬性一樣<time:before>
所有subject_id
,即,對於連續的信息。這裏是我想要的例子:
對於subject_id = 144;
<foo/data/row_id=34951953> <time:before> <foo/data/row_id=34951976>
<foo/data/row_id=34951976> <time:before> <foo/data/row_id=34952004>
爲subject_id = 146;
<foo/data/row_id=34951954> <time:before> <foo/data/row_id=34952105>
我可以明確地添加時間關係,<time:before>
?有沒有更好的方法來解決這類問題?
我建議你先將標準格式的日期時間值改成(la'2016-07-15T22:00:00'),然後將它們存儲起來(例如'xsd:datetime',而不是' XSD:string')。這使得您可以輕鬆地執行諸如「ORDER BY」之類的操作,其中包括更新到更新或更新的更新... – TallTed
您也可以看看Ian Davis關於[在RDF中表示時間]的博客系列(http ://blog.iandavis.com/2009/08/representing-time-in-rdf-part-1/)......如你所見,這不是一個簡單的問題。 – TallTed
謝謝@TallTed寶貴的建議。 –