rdf
turtle
wikidata

1-A

RDF はトリプルで書きます。turtle 形式で概念を表現すると、こんな感じになる。

PREFIX ex: <http://ns.example.org/>

ex:S ex:p ex:O

ここまでは普通の例。

1-B

裏面。rdf:Statement を使うと、別の形でも書ける。

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX ex: <http://ns.example.org/>

_:ST a rdf:Statement ;
    rdf:subject ex:S 
    rdf:predicate ex:p
    rdf:object ex:O .

こうすると Statement 自体にメタ情報を付けることができるようになる。

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX ex: <http://ns.example.org/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema>

_:ST a rdf:Statement ;
  rdf:subject ex:S ;
  rdf:predicate ex:p ;
  rdf:object ex:O ;
  dcterms:created "2017-10-04"^^xsd:date .

まぁ普通は面倒くさくなって、こうモデル化してしまうかもしれない。ex:p 1つしかない場合はこれで十分だろう。

PREFIX ex: <http://ns.example.org/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema>

ex:S ex:p ex:O ;
  dcterms:created "2017-10-04"^^xsd:date .

1-C

さらに裏面。wikidata でのやりかた。

PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>

wd:Q39231 wdt:P31 wd:Q8502

これを、こうじゃ。名前空間を豪勢に使って対応してます。

PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX ps: <http://www.wikidata.org/prop/statement/>
PREFIX pr: <http://www.wikidata.org/prop/reference/>
PREFIX prov: <http://www.w3.org/ns/prov#>

wd:Q39231 p:P31 _:ST . # 富士山, 分類
_:ST ps:31 wd:Q8502 ; # 分類, 山
  prov:wasDerivedFrom [ pr:P143 wd:Q328 ] . # 移入元, 英語版ウィキペディア

ステートメントへは比較的簡単にアクセスできるので、便利ですね。こうすることのデメリットは、名前空間の意味をエンジンとして対応しないといけないところでしょう。

https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries

https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Data_model