※ 本記事はnoteに投稿した記事を転載したものです。
※ https://note.com/super_crow2005/n/nf1ae98384a9e?magazine_key=m1df32e6ef6e1
RDF(resource description framework)のフォーマットの記述について示す。まずはRDFに記載される個々の要素の意味について述べる。
RDFの記述は、RDFトリプルという単位、つまり主語(subject)、述語(predicate)、目的語(object)の組合せよりなる。述語はプロパティと呼ばれる。SVOである。英語の第三文型である。文として関係を述べる最小単位であるが、むしろ物事と物事がある意味関係で繋がっているモデルの最小単位、というところに価値があるような気がする。
主語、述語、目的語はURI参照できる。URIはインターネットで一意性を確保しようとする工夫といえるだろう。URIはuniform resource identifierの略であり、インターネットアドレスのURLに識別子(フラグメント識別子)がくっついたものである。RDFでは、基本的に主語、述語、目的語をURI参照とするとしているようなのだが、タグが指定されたXMLという感じに捉えていたせいか、オントロジー言語OWLで名前空間という、「ことば」の定義を明確にするようになってURIのありがたみが分かるようになる。先々、オントロジーを使うことを考えて、URI参照に慣れておきたい。
URIとは、たとえば、
"http://www.rdf.sample.com/20250614/sample#ex1"
といったものである(ダブルクウォーテーション(")でくくっている)。この右端のex1がフラグメント識別子であり、#より左側がアドレスである。アドレスと入っても、実際には観念上の入れ物やのようなものであって、ディレクトリとか、フォルダ、文書といった感じのものである。ウェブの運用を考えると、文書ファイルのアドレスといったことがもっとも当てはまるかもしれない。フラグメント識別子は、そこにある何らかの概念や個体の対象の名前といえる。
RDFトリプルの関係は、主語と目的語をノードとして、述語を有向エッジとして、有向グラフとして表現する。
「オーナーシェフはレストランを持つ」ということである。
オントロジー的に、SVOとしては次のように書くだろう。
ただ、日本語で書くと、格好がよくないと思うので、英語っぽく書く。
ownerchef holds restaurant .
オーナーシェフ(ownerchef)は普遍者であり、クラスにあたる。イタリックで書く。
このとき述語の「持つ(hold」)もイタリックで書く。
目的語のレストランも、ここでは具体的な店ではなく、一般的な普遍者として書いているので、イタリックとしている。なお個物、具体的なもの、個物(インディビデュアル)は立体で書き、述語も太字で書く。
例えば「そのシェフがこのレストランを持っています」とすると、「あの」「その」といった指示詞がついているのは具体的なインディビデュアルであるとして、
The chef \bf{holds} this restaurant.
となる。主語か目的語の一方が述語かインディビデュアルなら、述語を太字とする。例えば、クラスに対するインスタンスは、普遍者と個物の関係である。つまり次のように書く。
The chef instance_of chef .
RDFにおけるデータについて書いておく。リテラルと呼ばれるが、データ型がある値のことと受けとっていればよい。文字列や数値である。
文字列については、日本語である場合にはアットマーク@jaを付けてデータとする。
"中華一番"@ja
データ型をURI参照する場合にはハット2つ^^を付ける。
"109"^^http://www.w3.org/2001/XMLSchema#integer
このような書き方はProtegeを利用していればそんなに気にはならないだろう。ただデータ型は指定しなければならない。データ型にはXMLスキーマで定義されているものを使うことになる。たとえば、次のようなものである。
文字列データ xsd:string
真偽値 xsd:boolean
数値 xsd:decimal, xsd:float, xsd:double, xsd:integer
日付 xsd:dateTime, xsd:time, xsd:date
