2012-03-23 98 views
1

如何在不丟失連接的情況下爲RDF中的實體指定一對(或多個)屬性? (對不起,我是新手)RDF中的一對屬性

例如,我想說的是GPS有緯度和經度的讀數,但是我想指定'GPS has(緯度,經度)'而不是' GPS具有緯度'和'GPS具有經度',因爲當我有多個讀數並且需要知道哪個緯度與哪個經度一致時,它變得有問題。

我已經看過RDF的例子,但是對於我來說這並不是很明顯。
謝謝你的指點。

[編輯]經過進一步研究,我跑過了bnode或匿名節點。這會保留配對嗎?

回答

4

本質上,除非您使用RDF列表,否則我不強烈建議您出於可用性原因使用RDF列表。好消息是,空白節點可以非常接近你所需要的。舉個例子:

:gps :hasReading [ 
      :longitud "x"; 
      :latitude "y"; 
     ] . 

從根本上說這個例子中不產生對,但有兩個出未來弧:longitud:latitude創建一個空白點。我想,你需要的是記錄多個讀數,這可以完美地與這種模式實現:

:gps :hasReading [ 
      :longitud "x1"; 
      :latitude "y1"; 
     ]; 
     :hasReading [ 
      :longitud "x2"; 
      :latitude "y2"; 
     ]. 

此外,如果您需要爲閱讀,只要你想,你可以添加儘可能多的性能記錄額外的屬性。

另外,還要考慮尋找到Semantic W3C Geo Effort,在那裏你會發現標準表示類似如下:

@prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>. 
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. 
_:bnode a geo:Point; 
    geo:lat "55.701"; 
    geo:long "12.552". 
+0

太棒了!正是我需要的。謝謝。 – Rolonoa 2012-04-04 18:48:40

1

究竟阻止你使用相同的謂詞創建兩個三倍。我不明白提供抽象層的原因。但是,如果您需要提供一個容器,其中包含這兩個變量,那麼我會使用一個包,如果訂單無關緊要,或者如果訂單確實重要,則可以使用seq。例子here