私は、XML構文について心配するべきではないと他の回答者に同意しますが、私はトリプルについてもすぐに考えてみません。最初にモデリングしようとしていることを明確に考え始めると、トリプルがより明白になります。
だから、あなたの車は、車の一種です。一般的にどんな種類の車でも、特にあなたの車であるということは、2つの異なる考え方です。したがって、すべての車のクラスとあなたの車のインスタンスを表すために、RDFがリソースと呼ぶ2つの別々の名前が必要です。同様に、GPSの一般的なもの、特に車内のGPSがあります。次いで、適切な名前空間を想定:
:car127 rdf:type :Car .
:gps99 rdf:type :GPS.
所与車(被写体car127
)は(述語rdf:type
)すべての車のクラス(オブジェクトCar
)のメンバーであることを発現する三重だと同様にGPSのための1つすなわち。
あなたの車は、ニナが所有しています。だから、2人の関係、ニーナが人であることを言って1、および(車を識別し、再使用して同じリソースによる)ニーナは、その特定の車を所有している一つです:
:nina rdf:type foaf:Person.
:nina foaf:name "Nina".
:car127 :ownedBy :nina.
(OK、私は余分なトリプルを追加しましたリソースURI :nina
を名前Ninaに関連付ける)。
:car127 :containsComponent :gps99.
今、私たちはGPSが与えられた緯度と長い位置を「持っている」ことを非公式に言う:
特定のGPSは、特定の車の部品です。明らかにこれらは時間の経過とともに変化する(そうでなければ、新しい車を得る:)。これをモデル化するには、xとyの述語をGPSリソースに直接アタッチし、モデルの値を繰り返し更新します。しかし、あなたのGPSが特定の時間に一連の読み取り値を与えていると考えるなら、それはちょっと明瞭で説明力があるようです。我々が説明することができますが、そのアイデンティティ私たちは知っていないかを気にしない - 関係 -
:gps99 :reading [
rdf:type :Reading;
:lat 51.14276;
:long -2.71619;
:at "2011-09-02T123400"^^xsd:dateTime
].
角括弧[...]
は、その特性が新しいリソースを導入するの短手の方法です:その後、我々は持っています。技術的には、匿名ノードまたはbNodeと呼ばれていますが、これは現在心配する細部ではありません。 GPSデバイスからタイプ:Reading
のリソース(「大文字のR」に注意してください - それは他の種類のリソースからクラスを識別するリソースを区別するための規則です)との関係(「読書」)があることに留意すれば十分です。この読み込みリソースには、型、観測された緯度と経度、および読み込み時間という4つのプロパティがあります。私たちが望むならば、他のポイントの読みを追加して、トラックのモデリングを構築することもできますが、それは別の議論です!
ありがとうございます。最初はrdfトリプルの有向グラフを描き、次にw3schools.comのオンラインRDFチュートリアルの例に従おうとしました。あなたが投稿した構文は私には新しく、今はさらに質問があります:トリプルを書くこの構文と、どの名前空間を使うべきですか?私はあなたがfoafとxsdを使ったのを見ます。必要な関連する名前空間を簡単に見つけることができる場所かURLがありますか? –
構文はタートルと呼ばれます。たとえば、http://en.wikipedia.org/wiki/Turtle_%28syntax%29 –
を参照してください。名前空間については、使用する語彙を説明するドキュメント(FOAF、DCなど)に名前が付けられています。しかし、接頭辞を一緒に収集する良いリファレンスポイントはhttp://接頭辞です。cc –