3.2 トリプルのロード
3.2.2 RDF 形式の例
このセクションでは、次のRDF形式の例について説明します。
• RDF/XML
• Turtle
• RDF/JSON
• N3
• N-Triples
• N-Quads
• TriG
3.2.2.1 RDF/XML
RDF/XMLは、一意のRDFシンタックスをXMLとして記述するオリジナルの標準
です。RDFグラフをXMLドキュメントとしてシリアライズするために使用します。
この例では、3つのプレフィックス「rdf」、「xsd」、「d」を定義します。
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:d="http://example.org/data/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#">
<rdf:Description rdf:about="http://example.org/
data#item22">
<d:shipped rdf:datatype="xsd:date">2013-05-14
</d:shipped>
<d:quantity rdf:datatype="xsd:integer">27</d:quantity>
<d:invoiced rdf:datatype="xsd:boolean">true
</d:invoiced>
<d:costPerItem rdf:datatype="xsd:decimal">10.50
</d:costPerItem>
</rdf:Description>
</rdf:RDF>
3.2.2.2 Turtle
Turtle(Terse RDF Triple Language)シリアライゼーションは、SPARQLに類似のシン
タックスを使用してRDFデータモデル内のデータを表現します。Turtleシンタックス は、RDFデータモデル内のトリプルを3つのIRIのグループで表現します。
例えば以下のようになります。
<http://example.org/item/item22>
<http://example.org/details/shipped>
"2013-05-14"^^<http://www.w3.org/2001/XMLSchema#dateTime> . このトリプルは、アイテム22が2013年5月14日に出荷されたことを記述しています。
Turtleシンタックスでは、@prefixを使用してIRIの共通部分を取り除くことで、複数
のステートメントに関する情報を短縮化できます。これにより、RDFのTurtleステー トメントは迅速に記述できます。シンタックスはRDF/XMLに似ていますが、
RDF/XMLとは異なり、XMLに依存しません。Turtleシンタックスは、有効なN3
(Notation 3)でもあります。これは、TurtleがN3のサブセットであるためです。
注: Turtleは、有効なRDFグラフだけをシリアライズできます。
この例では4つのトリプルで1つのトランザクションを記述しています。「shipped」オ ブジェクトには「date」データ型が割り当てられているため、引用符に囲まれた型付き リテラルになります。「quantity」、「invoiced」、および「costPerItem」オブジェクトに対 応する3つの型なしリテラルが存在します。
@prefix i: <http://example.org/item> .
@prefix dt: <http://example.org/details#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . i:item22 dt:shipped "2013-05-14"^^xsd:date . i:item22 dt:quantity 100 .
i:item22 dt:invoiced true . i:item22 dt:costPerItem 10.50 . 3.2.2.3 RDF/JSON
RDF/JSONはRDFのテキストシンタックスであり、JSON(JavaScript Object Notation)
と互換性のある形式でRDFグラフを記述できます。
例えば以下のようになります。
{ "http://example.com/directory#m":
{ "http://example.com/ns/person#firstName":
[ { "value": "Michelle",
"type": "literal",
"datatype": "http://www.w3.org/2001/
XMLSchema#string" } ]
} }
3.2.2.4 N3
N3(Notation 3)は非XMLシンタックスであり、XML RDF表記よりもよりコンパクト
でわかりやすい形式でRDFグラフをシリアライズする目的で使用します。N3では RDFベースのルールがサポートされます。
N3では、同一の主語について複数のステートメントが存在する場合は、セミコロン
(;)を使用して同じ主語に別のプロパティを導入できます。また、カンマを使用する と、同じ述語と主語に対して別の目的語を導入できます。
例えば以下のようになります。
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix foafcorp: <http://xmlns.com/foaf/corp/> .
@prefix vcard: <http://www.w3.org/2001/vcard-rdf/3.0> .
@prefix sec: <http://www.rdfabout.com/rdf/schema/ussec> .
@prefix id: <http://www.rdfabout.com/rdf/usgov/sec/id> . id:cik0001265081 sec:hasRelation [
dc:date "2008-06-05";
sec:corporation id:cik0001000045;
rdf:type sec:OfficerRelation;
sec:officerTitle "Senior Vice President, CFO"] . id:cik0001000180 sec:cik "0001000180";
foaf:name "SANDISK CORP";
sec:tradingSymbol "SNDK";
rdf:type foafcorp:Company.
id:cik0001009165 sec:cik "0001009165";
rdf:type foaf:Person;
foaf:name "HARARI ELIYAHOU ET AL";
vcard:ADR [ vcard:Street "601 MCCARTHY BLVD.; ";
vcard:Locality "MILPITAS, CA"; vcard:Pcode "95035" ] . 3.2.2.5 N-Triples
N-Triplesは、RDFグラフのプレーンテキストシリアライゼーションです。Turtleのサブ
セットであり、TurtleやN3よりもシンプルに使用できるように設計されています。
N-Triplesシンタックスの各行は、1つのRDFトリプルステートメントをエンコーディ
ングし、次のように構成されています。
• 主語(IRIまたは空白ノード識別子)。1つあるいは複数のスペース文字が続き ます。
• 述語(IRI)。1つあるいは複数のスペース文字が続きます。
• 目的語(IRI、空白ノード識別子、またはリテラル)。ピリオド(.)と改行が続 きます。
型付きリテラルには、言語を識別する言語タグを含めることができます。この
N-Triplesの例では、@en-USは、リソースのタイトルが米国英語であることを示します。
<http://www.w3.org/2001/sw/RDFCore/ntriples>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
<http://xmlns.com/foaf/0.1/Document> .
<http://www.w3.org/2001/sw/RDFCore/ntriples/>
<http://purl.org/dc/terms/title> "Example Doc"@en-US .
<http://www.w3.org/2001/sw/RDFCore/ntriples/>
<http://xmlns.com/foaf/0.1/maker> _:jane .
<http://www.w3.org/2001/sw/RDFCore/ntriples/>
<http://xmlns.com/foaf/0.1/maker> _:joe .
_:jane <http://www.w3.org/1999/02/22-rdf-syntax-ns>
<http://xmlns.com/foaf/0.1/Person> .
_:jane <http://xmlns.com/foaf/0.1/name> "Jane Doe".
_:joe <http://www.w3.org/1999/02/22-rdf-syntax-ns>
<http://xmlns.com/foaf/0.1/Person> .
_:joe <http://xmlns.com/foaf/0.1/name> "Joe Bloggs".
注: 各行は、末尾のピリオドの後で改行されます。わかりやすくするため、
さらに改行が加えられています。
3.2.2.6 N-Quads
N-Quadsは、RDFデータセットのエンコーディングを目的とした、行ベースのプレー
ンテキストシリアライゼーションです。N-QuadsシンタックスはN-Triplesのスーパー セットであり、オプションのコンテキスト値でN-Triplesを拡張します。最もシンプル なステートメントは、RDFトリプルを形成するターム(主語、述語、目的語)と、
トリプルが属するデータセット内のグラフにラベルを付けるオプションのIRIで構成さ れたシーケンスです。これらすべてはスペースで区切られ、各ステートメントの末尾に あるピリオド(.)で終了します。
この例では、関係性の語彙を使用します。語彙のクラスまたはプロパティには、語彙の IRIに「acquaintanceOf」というターム名を付加して構築されるIRIがあります。
<http://example.org/#Jane>
<http://http://purl.org/vocab.org/relationship/#acquaintan ceOf>
<http://example.org/#Joe>
<http://example.org/graphs/directory> .
3.2.2.7 TriG
TriGは、RDFグラフをシリアライズするためのプレーンテキストシリアライゼーショ ンです。TriGはTurtleに似ていますが、波括弧({と})を使用して拡張されていま す。そのため、トリプルを複数のグラフにグループ化し、名前付きグラフの前にその名 前を付けることができます。オプションの等号演算子(=)はグラフ名を割り当てるた めに使用できます。また、Notation 3との互換性を確保するため、オプションで末尾の ピリオド(.)を含めることができます。
TriGシリアライゼーションには次の特徴があります。
• グラフ名はTriGドキュメント内で一意である必要があります。名前なしグラフ は、TriGドキュメントごとに1つです。
• TriGのコンテンツは、「.trig」サフィックスの付いたファイルに格納されます。
また、TriGのMIMEタイプはapplication/trigで、コンテンツのエンコーディン
グはUTF-8です。
この例では、デフォルトグラフと2つの名前付きグラフが使用されています。
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
# default graph is http://marklogic.com/semantics#default-graph
{
<http://example.org/joe> dc:publisher "Joe" .
<http://example.org/jane> dc:publisher "Jane" . }
# first named graph
<http://example.org/joe>
{
_:a foaf:name "Joe" .
_:a foaf:mbox <mailto:[email protected]> . }
# second named graph
<http://example.org/jane>
{
_:a foaf:name "Jane" .
_:a foaf:mbox <mailto:[email protected]> . }