View in English

RDFスキーマ・OWL入門 ― データに「意味」を与える

RDFのデータに用語の意味を与える RDF Schema(RDFS)と OWL を、初学者向けに概念から解説します。クラスと階層(subClassOf)、プロパティの domain/range、宣言した意味から機械が新事実を導く「推論」、OWL(sameAs/inverseOf/制約)、推論エンジン、検証の SHACL との違い(推論↔検証)、共有語彙(schema.org/Dublin Core/FOAF/CIDOC CRM)まで。RDF・SPARQL・SHACL入門の続編。CC ライセンス教材を参照した独自構成・実験的な動画です。

RDFSOWLRDFLinked DataDigital Humanities
⚠ この解説は、AIによる実験的な取り組みです(構成・図・音声合成を含む)。不正確な内容を含む可能性があります。ご利用の際はご注意ください。

掛け合い解説(ずんだもん×四国めたん)

別バージョン

ナレーション解説

章立て

  1. 1

    本編

    名札だけでは意味は伝わらない・クラスと階層(subClassOf)・domain/range・推論・OWL(sameAs/inverseOf/推論エンジン)・SHACLとの違い・共有語彙・始め方

    読み上げ原稿

    • 0:00データに「意味」を与える

      皆さん、こんにちは。この動画は、デジタル人文学入門 技術要素シリーズ、なかむらさとるの解説回です。この回のナレーションは合成音声でお届けします。テーマは、RDF Schemaと、OWLです。データに、用語の意味を与えて、機械が推論できるようにする。その考え方を、初学者向けに、図を交えながらゆっくり見ていきます。プログラミングの予備知識はなくても大丈夫です。どうぞ気楽について来てください。

      データに「意味」を与える
    • 0:38この動画について

      はじめに、この動画について簡単にご案内します。この動画は、クリエイティブ・コモンズ(CC)で公開されているオープンな教材を参照しつつ、独自に構成した解説です。スライドと図は新規に作成し、ナレーションはAIの合成音声でつくっています。なお、この回の声は、いつもの中村本人のクローン声ではありません。あくまで実験的な取り組みですので、内容はご確認・ご注意のうえご利用ください。誤りに気づかれたら概要欄からご指摘ください。出典とライセンスは、動画の最後と概要欄にまとめてあります。それでは本編に入りましょう。

      この動画について
    • 1:26この回のゴール

      まず、この回のゴールです。目標は大きく四つ。一つめは、RDF Schemaで、クラスと階層、つまりサブクラスを表す考え方を説明できること。二つめは、宣言した意味から、機械が新しい事実を導く、推論を説明できること。三つめは、OWLで、同一性や逆の関係、制約など、より豊かに意味を表せると知ること。そして四つめは、検証のSHACLとの違いと、デジタル人文学での使いどころを知ることです。RDFやSPARQLの回を見ているとつながりやすいですが、必須ではありません。

      この回のゴール
    • 2:12今日の流れ

      今日の流れです。はじめに、なぜ意味が要るのか、名札だけでは伝わらない、というところから。つぎに、RDF Schemaの、クラスと階層、そして推論。それから、OWLで、もっと豊かに意味を表す。そして、検証のSHACLとの違いや、既存の語彙といった位置づけ。最後に、使いどころと始め方を紹介します。

      今日の流れ
    • 2:42なぜ「意味」が要るのか

      それでは、はじめましょう。まずは、なぜ意味が要るのか。名札を付けるだけでは伝わらない、というところから見ていきます。

      なぜ「意味」が要るのか
    • 2:53RDF=三つ組が重なった「網」

      図を見てください。これまでの回で見たように、RDFは、ものとものを三つ組でつないだ、網のようなグラフでした。ホメロスを中心に、生まれた場所や時期が、線でつながっています。私たちは、このデータに、これから意味を与えていきます。

      RDF=三つ組が重なった「網」
    • 3:14名前は付いても「意味」は伝わらない

      URIで、ものに名札は付きます。けれども機械にとっては、それはまだ、ただの記号です。たとえば、詩人と人物が、どう関係するのか。書いていなければ、機械には分かりません。著した、の逆が、著された、だということも、そのままでは知りません。だから、用語の意味や関係そのものを、データとして宣言したいのです。

      名前は付いても「意味」は伝わらない
    • 3:44用語の意味を決める「語彙」

      そのために、語彙を使います。語彙とは、用語の意味を決めておく仕組みのことです。ものの種類、つまりクラスや、種類どうしの階層を宣言する。プロパティ、つまり述語が、何と何をつなぐのかを宣言する。その基本を担うのが、RDF Schemaです。そして、さらに豊かに表すのが、OWL。オントロジー、つまり、ものごとの体系を記述する言語です。

      用語の意味を決める「語彙」
    • 4:17RDFスキーマ ― クラスと階層

      では、まず、RDF Schemaの、クラスと階層から見ていきます。

      RDFスキーマ ― クラスと階層
    • 4:24クラス=ものの「種類」

      図を見てください。クラスとは、ものの種類のことです。たとえば、人物、という種類を、パーソンというクラスとして決めます。そして、ホメロスや、サッフォーといった個々のものを、これはパーソンの型である、と書きます。種類を決めて、個々のものを、その種類のひとつ、つまりインスタンスとして位置づける、という考え方です。

      クラス=ものの「種類」
    • 4:52subClassOf=種類の「階層」

      種類どうしには、階層もあります。図のように、詩人は、人物の一種です。これを、subClassOf、という関係で宣言します。詩人は人物のサブクラスである、と書いておく。すると、ホメロスは詩人であり、詩人は人物である、という、種類の親子関係が、データの上に乗ります。

      subClassOf=種類の「階層」
    • 5:19プロパティが「何と何をつなぐか」

      プロパティ、つまり述語にも、つなぐ相手の種類を宣言できます。一つは、ドメイン。その述語の主語は、どの種類か。たとえば、生まれた場所、という述語の主語は、人物です。もう一つは、レンジ。その述語の目的語は、どの種類か。生まれた場所の目的語は、場所です。これで、生まれた場所、という関係は、人物から場所へ向かうものだと、はっきりします。

      プロパティが「何と何をつなぐか」
    • 5:54書き方(RDFスキーマ/Turtle)

      実際の書き方を見てみましょう。図の例はTurtle、RDFの記法です。一行めは、詩人は人物のサブクラスである。二つめは、生まれた場所は、ドメインが人物で、レンジが場所。言葉にすると、詩人は人物の一種で、生地は、人物から場所をつなぐ。これを宣言しているわけです。

      書き方(RDFスキーマ/Turtle)
    • 6:21意味から「新しい事実」が導ける

      ここが、いちばんおもしろいところです。図を見てください。ホメロスは詩人である。そして、詩人は人物のサブクラスである。この二つを宣言しておくと、機械は、ホメロスは人物である、という事実を、自動で導き出せます。私たちが直接は書いていない事実が、宣言した意味から、引き出せる。これを、推論と呼びます。

      意味から「新しい事実」が導ける
    • 6:51ここまでのポイント

      ここで、いったん整理します。クラスで、ものの種類を、subClassOfで、種類の階層を宣言する。プロパティのドメインとレンジで、何と何をつなぐかを宣言する。そして、宣言した意味から、機械が、書いていない事実を導ける。これが推論でした。RDF Schemaは、意味づけの基礎です。これを、もっと豊かにするのが、OWLです。

      ここまでのポイント
    • 7:23OWL ― もっと豊かに表す

      ここからは、OWLで、もっと豊かに意味を表す話です。

      OWL ― もっと豊かに表す
    • 7:29OWLでできること

      OWLでは、たとえば、こんなことができます。一つめは、同一性。別々のデータにある、同じものを、これは同じだ、と結ぶ。sameAs、という関係です。二つめは、逆の関係。著した、の逆は、著された、だと宣言する。inverseOf、です。さらに、たどっていける、つまり推移的といった、関係の性質や、この種類は必ず何かを持つ、といった、より細かい制約も表せます。

      OWLでできること
    • 8:07書き方(OWL/Turtle)

      書き方を、少しだけ見てみましょう。図の一行めは、自分のデータのホメロスは、Wikidataの、あるものと、同じものだ、という宣言です。sameAs、を使っています。二つめは、書いた、という述語の逆は、書かれた、だ、という宣言。inverseOf、です。こうして、関係そのものの意味を、データに書き加えていきます。

      書き方(OWL/Turtle)
    • 8:37推論エンジンが事実を増やす

      では、宣言した意味は、どう生きるのでしょう。図を見てください。元のデータと、OWLで書いた語彙の意味を、推論エンジン、reasonerに渡します。すると、元の事実に加えて、そこから導かれた、新しい事実が出てきます。たとえば、sameAsで結んだ先の情報も、自分のデータの一部のように、たどれるようになる。データに意味を重ねるほど、たどれる世界が広がる、というわけです。

      推論エンジンが事実を増やす
    • 9:11ここまでのポイント

      ここまでを整理します。OWLは、同一性や、逆の関係、性質、制約など、より豊かに意味を表します。sameAsで、別データの同じものを結び、データを横断できる。そして、データに語彙を重ねて、推論エンジンにかけると、事実が増える。意味を表して推論する、というのが、OWLの特徴です。これと、よく似て見えるのが、検証のSHACLです。

      ここまでのポイント
    • 9:44位置づけ・使いどころ

      ここからは、この技術の位置づけを整理します。とくに、SHACLとの違いです。

      位置づけ・使いどころ
    • 9:52「推論」と「検証」は別もの

      図を見てください。OWLと、SHACLは、似ているようで、目的が逆です。OWLは、オープンワールドを前提に、宣言した意味から、新しい事実を導きます。広げる方向です。これに対してSHACLは、データが、決めた形に合っているかを判定する、検証でした。締める方向です。同じRDFを相手にしても、推論で広げるのがOWL、検証で締めるのがSHACL、と捉えてください。

      「推論」と「検証」は別もの
    • 10:27語彙は「みんなで共有」する

      もう一つ、大事な実践があります。語彙は、ゼロから作らず、すでにある共通の語彙を借りるのが基本です。汎用的なものでは、schema.orgや、Dublin Core、人物を表すFOAF、などがあります。文化遺産の分野では、出来事を中心に結ぶ、CIDOC CRM、などが知られています。共通の語彙を使うほど、機関をまたいで、意味がぴたりと噛み合います。

      語彙は「みんなで共有」する
    • 11:00考えてみよう

      ここで、少し立ち止まって考えてみましょう。あなたが扱っているデータの、種類や関係を、どう宣言できそうでしょうか。これは、なになにの一種。この関係の逆は、なになに。よろしければ、ここで一度、動画を止めて、思い浮かべてみてください。

      考えてみよう
    • 11:22DHでの活用

      デジタル人文学でも、この意味づけは生きてきます。共有のオントロジーを使って、人物・場所・出来事を、機関を越えて意味づける。sameAsで、自分のデータを、Wikidataなどの同じものへ結ぶ。階層や推論を使えば、ゆるく書いたデータからも、検索や集約を引き出せます。語彙をそろえておくことが、データを、長く使える資産にしてくれます。

      DHでの活用
    • 11:53おさえておきたい前提

      一つ、おさえておきたい前提があります。RDFは、オープンワールドを前提とします。推論は、導ける事実を増やすものであって、誤りを弾く検証ではありません。そこは、SHACLの役割でした。また、表現が豊かになるほど、推論は重くなります。必要な範囲で使うのがよいでしょう。そして、どの語彙を選び、何を同じとみなすかには、研究上の判断が入ります。まずは、クラスと階層から、少しずつ意味を足していくのが、おすすめです。

      おさえておきたい前提
    • 12:33始め方・学ぶには

      では、自分でも試したいと思ったら、どうすればよいでしょう。まず触れてみるなら、Protégé、という道具で、クラスや階層を作ってみるのが、よい入り口です。デジタル人文学向けには、アールト大学、セコ・グループの、リンクトデータ教材が、語彙やオントロジーまで扱っています。正式な定義は、W3Cの、RDF Schemaや、OWL・プライマーで確認できます。コツは、クラスと階層の宣言から、小さく育てていくことです。

      始め方・学ぶには
    • 13:11まとめ

      今日のまとめです。RDF Schemaで、クラス、階層、プロパティの意味を宣言する。宣言した意味から、機械が新しい事実を導ける、推論ができる。OWLは、同一性や逆、制約など、より豊かに意味を表す。検証のSHACLとは目的が逆で、語彙の共有が、データを資産にする。RDFでつなぎ、SPARQLで引き出し、SHACLで検証し、OWLで意味づける。これらは、地続きの考え方として、つかんでいただけたならと思います。

      まとめ
    • 13:52出典・ライセンス

      この動画は、海外でオープンライセンスのもとに公開されている教材を参照して作成しました。主なものは、アールト大学、セコ・グループの、文化遺産とデジタル人文学のための、リンクトデータ教材です。クリエイティブ・コモンズ(CC)の表示ライセンスで公開されています。RDF Schemaや、OWLの仕様そのものは、W3Cの勧告で事実確認に用い、翻案はしていません。スライドと図は、これらを参考にしたうえで、あらためて作成したものです。

      出典・ライセンス
    • 14:31ご清聴ありがとうございました

      以上で、RDF Schemaと、OWLの入門を終わります。データに意味を与えて、機械が推論できるようにする。その第一歩を、つかんでいただけたならと思います。ご清聴、ありがとうございました。

      ご清聴ありがとうございました