Drafts

@cm3 の草稿置場 / 少々Wikiっぽく使っているので中身は適宜追記修正されます。

プロパティと述語

オントロジに関する文章を書いているときにプロパティと書くべきか述語(predicate)と書くべきか迷うことがある。一般的に、3項の真ん中の項を指したければ、プロパティで良い。プロパティの方が概念が広いから。主語が Statement のインスタンス(3つ組による記述を指す)で 目的語が真ん中の項の具体的な値 ならば、predicate も使える。

f:id:cm3ak:20150207113719p:plain

全ての上方向の青矢印は rdf:type 。この述語もプロパティの一種であり、この図で他に使われている、rdfs:domain や rdfs:range といった述語もまたプロパティである。rdf:subject rdf:predicate rdf:object といったものもプロパティである。なぜなら、例えば、「この文の 主語は ○○である」という3つ組を記述するときのプロパティが rdf:subject だからだ。

普通 rdf:subject rdf:predicate rdf:object というプロパティを使って何かを記述することは無い。使うと例えばこのような記述になる。

<http://www.openbel.org/bel/namespace/entrez-gene/2074/identifier/eba9f6cb-f254-4847-9bdf-70cba06fcc06>
    a rdf:Statement ;
    rdf:subject eg:2074 ;
    rdf:predicate dc:identifier ;
    rdf:object "2074"^^xsd:string ;
    dc:created "2005-05-10T00:00:00Z"^^xsd:dateTime ;
    belv:obsoleted rdf:nil ;
    dc:provenance _:XXX .

これは、

eg:2074 dc:identifier "2074"^^xsd:string

という記述を冗長にしただけに見えるし、あまりにメタな記述だ。Reificationといって、トリプルに関する記述をするためのテクニックの一つだが、Named Graphを使ってメタな記述は分離した方が綺麗な気がする。メタな記述が複雑に入り組むような哲学的課題については上のように冗長に Reify することに意義があるかもしれないけれども、滅多にそういう場面は無いだろう。dc:provenance という記述も上にあるが、Named Graph は RDF statement のセットについて来歴を取得可能にするために使える。

参考文献:


「使用」と「言及」についての調べものを後でここに流し込む