まずは手段から始めましょう。今日は、基本の基礎であるRDFです。
リソース記述フレームワークは、リソース、特にリソースメタデータを記述するためにW3Cコンソーシアムによって開発されたモデルです。
RDFは知識記述言語です。 これは正確なXMLではありません。 つまり、 XMLではなく、構文が似ているだけです。 RDFには、「オブジェクト-述語-主題」という3つのデータが含まれています。 さて、「柱の高さは15mです」の例。 以下に簡単な例を示します。 RDF。:
@prefix : <http: www.example.org> .
:john a :Person .
:john :hasMother :helga .
:john :hasFather :henrich .
:richard :hasSister :jane .
それをドキュメント#1と呼び、後で便利になります。
まだ明確ですか? いや?
@prefix - ( , , -)
:john a :Person
-
()
()
:john :hasMother :
helga
.
.
:john :hasFather :
-
:richard :has
Sister
:
ジェーン-父親には妹がいる-ジェーン
そのような家族。 ちなみに、これはRDFレコードの短い形式で、 N3 (表記法3)と呼ばれます。 私が理解しているように、 LISPの影響下で作成され、XMLが大きすぎることに気づいた後です。 場合によっては非常に視覚的であるため、例として使用します。 しかし、XMLライクなバージョンもあり、Webでも使用されています-RSS 0.9(私が間違っていない場合)の例です。 同じJohnに関するXMLのような例は次のとおりです。
<rdf:rdf xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ns = "http://www.example.org/#"> <ns:person rdf:about = "http://www.example.org/#john"> <ns:hasmother rdf:resource = "http://www.example.org/#helga" /> <ns:hasfather> <rdf:説明rdf:about = "http://www.example.org/#henrich"> <ns:hassister rdf:resource = "http://www.example.org/#jane"> </ ns:hassister> </ rdf:説明> </ ns:hasfather> </ ns:person> </ rdf:rdf>
理解不能で読みにくい。 同意しますが、どのプログラミング言語でもXMLファイルを簡単に解析してデータを取得できるため、コンピューターにとっては便利です。
RDFとXMLの最大の違いは、RDFが分散データ用であることです。 たとえば、 私のSIOです。 John Breslinの投稿を転載したので、SIOCは彼のSIOCに接続され、コンピューターはリンクを介して簡単に接続できます(リンクはセマンティックネットワークの主要な柱です、覚えていますか?)、1つのディスカッションを収集します。 ロボットは、さまざまな人々によって書かれたさまざまなRDFを収集し、どのドキュメントにも明らかに含まれていないものを見つけることができます。マトリックスのアプローチを感じますか?
例:
ドキュメント#1から、ジョンには父親のヘンリーがいることがわかります。
2番目のドキュメント(ドキュメント#2)は次のとおりです。
@prefix : <http:> :</http:>
henrich
<http:> :hasBrother :han
{ ?a :hasFather ?b . ?b :hasBrother ?c . } => { ?a :hasUncle ?c }
</http:>
<http:> :hasBrother :han
{ ?a :hasFather ?b . ?b :hasBrother ?c . } => { ?a :hasUncle ?c }
</http:>
ヘンリーには兄のカーンがいると書かれています。 そして、一番下の行は、ある人Aの父親が兄弟を持っている場合、彼は人Aの叔父であるというルールです。ドキュメント#1と#2を組み合わせて、ルールに従います。
リチャード・シガニアックは、RDFの主な用途を表明しました。
- 特殊なプログラムの作成に頼ることなく、さまざまなソースからのデータを結合する必要があります。
- 他のユーザーにデータへのアクセスを許可する必要があります。
- 誰もデータを「所有」しないように、データを分散化する必要があります。
- 入力、取得、表示、分析、検索など、大量のデータに対して何か特別なことをする必要があります。 RDFデータモデルに基づいてこれをすべて実行できるようにする汎用ツールを作成(または既製)したい(DBMS方言とは異なり、閉じたデータストレージおよびプレゼンテーションテクノロジーに縛られないという利点がある)
一般に、これは、 階層型およびネットワークデータベースの分散ユニオンのようなものです。
RDFの名前には、リテラル(テキストのみ)とURIの 2つのタイプがあります 。 URIはWebサイト(http://futuri.us)へのリンクでもかまいませんが、必須ではありません。 一般に、URIはオブジェクトへの参照であり(独自の表現はありません)、たとえばurn:isbn: 5-3180-0093-2です。 これは、 Ed Brooksbank 著の本「 Samba。システム管理者ガイド。専門家向け 」へのリンク です。 この本にはページがありそうにありませんが、このURIが本を指しているのは明らかであり、どの本も明らかです。 URIは一意です。 したがって、RDFを単一のオブジェクトにバインドできます。
@prefix : <www.example.org/>
<futuri.us/> a :Website
<futuri.us/> dc:title ""
<futuri.us/> dc:contributor " "
<futuri.us/> dc:creator " "
<futuri.us/> dc:language ru-RU
<futuri.us/> dc:rights by-nc-sa
ダブリンコア名前空間を使用した私のサイトの簡単な説明。 しかし、彼については後で話します。
要約すると:
- RDFは知識を記述するために使用されます
- 値のトリプル「subject-predicate-object」で記述
- いくつかの記述形式があります:XMLおよびN3
- 値にリテラルまたは一意識別子(URI)を使用します
役に立つ
これはすべて私のブログから。