お問い合わせ

オントロジーとは?役割や構築手順、情報科学における事例までわかりやすく解説

アバター画像
sakakibara_writer

コンサルティング業界に20年以上在籍。IT戦略・構想策定など上流系が得意。

オントロジーは、知識や情報を整理し、理解しやすくするためのフレームワークです。元々は哲学から生まれた概念ですが、今では人工知能(AI)を始めとした情報科学において、コンピュータが理解しやすい情報の整理方法として活用されています。

この記事では、オントロジーの基本的な概念、役割、そして具体的な利用例について詳しく解説します。

また、オントロジーを実装する際のツールやコーディング言語についても触れていくので、ぜひ参考にしてみてください。

オントロジーとは?

情報科学におけるオントロジーは、人間の知識をコンピュータが理解できる形に整理し、表現するための技術です。

簡単に言えば、異なる情報やデータ間の「つながり」を理解しやすくするためのルールやカテゴリーを設定することです。これにより、コンピューターシステムやアプリケーションが、人間のように情報を「理解」し、より賢く動作できるようになります。

例えば、Webサイトの検索エンジンはオントロジーを使って情報を整理しています。あなたが「健康的な朝食レシピ」を検索したとき、検索エンジンは「健康的」と「朝食」そして「レシピ」という言葉の関連性を理解し、それに合ったWebサイトを見つけ出してくれます。

このプロセスは、背後でオントロジーがそれぞれの言葉の意味や関係性を定義しているからできることです。例えば「食パン」は、オントロジーによって以下の情報と関連付けることができます。

  • 食品
  • 朝食
  • 小麦
  • 主食
  • パン
  • バター

これらの関連情報と「食パン」の関係は、”食パンは食品の一種である”というような「上位・下位の関係」であったり、”朝食でよく食べられている”、”パンを食べるときによく使われるのはバター”のように「代表的なユースケース」だったりします。このように、1つのモノに対して、他の関連するモノや概念と紐づけることによって、”そのモノは何であるのか”という情報が明らかになっていきます。

オントロジーの役割と利用方法

オントロジーの役割は、さまざまな分野や情報を整理し、コンピュータが理解しやすくすることです。オントロジーによって、データや知識の関連性を明確にし、情報の検索や分析を効率化できます。

ここからは、医療情報システムを開発するケースを例に、オントロジーがどのような役割を果たしているかみていきます。

知識の共有

たとえば、世界的に流行した新型コロナウイルスが何者なのかを定義するにあたり、「ウイルス」「感染症」「ワクチン有」などといった情報を付与することができます。これにより、人間もAIも、新型コロナウイルスがウイルス性の感染症であり、対応するワクチンが存在することを知ることができます。これが知識の共有です。

ある情報に対して、それを知らない人間やAIがいるとき、それを知る誰かがオントロジーを用いて情報に付加情報を加えていきます。これによって、情報について未知・既知の人間やAIが、オントロジーを通じて共通の知識を得ることができます。

知識の推論

分野や目的に合わせて適切にオントロジーが構成された情報群は、推論に用いることができます。例えば、あるウイルスについて「感染性」「症状」「分子式」などの情報をオントロジーによって整理したとします。同じように、膨大な種類のウイルスが整理されています。この時、新たに発見された未知のウイルスに対し、その「分子式」が類似している他のウイルスの性質によって、あるウイルスの亜種であることがわかり、「感染性」や「症状」が推測できるようになるかもしれません。

このように、オントロジーを利用することにより、類似のオントロジーを持つ既知の物質が持つ性質が、未知の物質にも備わっている可能性を推論することができます。

知識の再利用

オントロジーによって知識を共有し、推論に活かす一連のプロセスが構築できたとき、新たな事象や問題を解決するために流用することができるかもしれません。これを知識の再利用といいます。

たとえば、適切なオントロジーによって整理されたウイルス解析の仕組みは、ワクチン開発においても流用できるかもしれません。ウイルスの持つ特性やDNA、毒素などの中で共通する事項がある場合、その事項に対して有効な成分や挙動を引き起こすワクチンが既に存在するかもしれません。この時、オントロジーを活用したウイルス解析の技術が、ワクチン開発にも再利用できたといえます。

このオントロジーを用いることで、医療従事者や研究者は、特定の症状に対する可能な病気や、その治療方法を素早く見つけることができます。

業務効率化システムを開発したいなら「ジテラ」へ!他社より1.4倍速い開発、お返事は3日以内、開発知識ゼロでもOK!、お見積りは無料。お見積りは無料!

オントロジーの種類

オントロジーにもいくつかの種類があります。ここでは、そのうち代表的なものである2つをご紹介します。

ドメインオントロジー

ドメインオントロジーは、専門的な領域で用いられるオントロジーです。医療関係であれば、生物学、遺伝子工学、薬学、栄養学などの様々な専門分野があります。これらの中で用いられる専門的な知識体系をオントロジーによって整理することで、知識の共有が行えるようになります。

ドメインオントロジーでは、対象のモノを表すオントロジーを構成していきます。そのモノに関連付けられる様々な語彙により、モノの特性・特徴や活用分野、症状などの情報を共有することができます。

タスクオントロジー

タスクオントロジーは、行為やプロセスを定義するオントロジーです。たとえば、「輸血」というプロセスをタスクオントロジーで定義する場合、「患者の状態の確認」「血液型の確認」「医師の確保」など、多くのプロセスを定義する必要があります。これらのプロセスをオントロジーで定義することで、輸血が必要な際に、関係者が共通の認識で行動することができるようになります。

これは従来「マニュアル」「手順書」などで実現していたものと同じですが、業務プロセスの中にAIが組み入れられるようになったことで、人間だけでなくコンピュータも共通認識を持って行動することが必要になりました。タスクオントロジーが定義されることにより、コンピュータが処理すべきタスクやプロセスを明確にでき、知識の共有が行えるようになります。

さらには、がんの発見などの異常検知の世界においては、オントロジーの活躍によって知識の推論や再利用も行えるようになり、人間が実現できないことをAIが実現できるようになるのです。

オントロジー言語やフレームワーク

オントロジーを実装するためには、RDFOWLなどの言語がよく使われます。これらは、情報の関連付けや属性を明確に記述できるため、オントロジーに適しています。

たとえば、動物園の管理システムを作ることを考えてみましょう。このとき、動物、飼育員、エリアなど、さまざまな要素がどのように結びついているかを考える必要があります。

RDF

RDF(Resource Description Framework)は、元々メタデータのデータモデルを記述するために作られた言語です。XML形式で書かれる言語であり、Web上のデータにメタデータを付与し、情報の意味をコンピュータが理解できるようにすることを目的としています。

この、情報にメタデータを付与することでコンピュータが情報の意味を理解できる仕組みを「セマンティックWeb」と呼びます。

RDFのコードは「主語」「述語」「目的語」の3つの要素で構成されています。それぞれの関係は”主語における述語は目的語”というもので、具体的な例を挙げると主語が「日本」で、述語が「地域」であった場合、目的語は「東アジア」もしくは「アジア」となるでしょう。

このとき、目的語が「東アジア」もしくは「アジア」と、どちらにも取れる状況になっているということは、述語の定義がまだ曖昧ということです。たとえば、国連は世界の地域を「世界地理区分」の「大州」と「小地域」で分類しています。大州ならアジア、小地域なら東アジアになるので、述語を大州もしくは小地域として定義しなおすことで、目的語に複数の選択肢が存在しなくなり、適切な情報分類となります。

OWL

OWL(Web Ontology Language)は、RDFを拡張した言語です。RDFでは難しい、推論を実現することができます。本来略称は”WOL”となるべきですが、フクロウになぞらえて順番を入れ替えています。

OWLにはサブ言語として「OWL Lite」「OWL DL」「OWL Full」が提供されており、さらに複雑な定義を行うことができます。OWLでは定義したモノを「クラス」と呼びますが、異なるクラス同士が同一である、または異義であることを定義したり、積や和といった集合の概念を用いてクラス間の関係性を定義することなどができます。

オントロジーを記述するためのツール

次に、この構造をコードに落とし込むために、適切なプログラミング言語やツールを選びます。

まず、実際にコーディングを始める前に、全体の設計をしっかりと行うことが重要です。そして、どのような情報が必要で、それらがどのように関連するのか、全体像を把握しておくことで、後の作業がスムーズに進みます。この段階で、具体的なクラスや関係、属性などを定義しておくと良いでしょう。

最後に、実際にコードを書き始めるときは、再利用可能なコンポーネントや既存のオントロジーを活用することが効率的です。オープンソースのオントロジーやライブラリを使うことで、開発時間を短縮し、より複雑なオントロジーを構築できるようになります。

オントロジーを実装する際のコーディングは、情報を体系的に整理し、効率的に扱うための非常に強力な手段です。正しく設計し、適切なツールを使うことで、複雑なデータや知識もわかりやすく扱うことができるようになります。

Protege

Protégéは、スタンフォード大学が開発した無料のオープンソースツールで、世界中で最も広く使用されています。グラフィカルユーザーインターフェース(GUI)を備え、直感的なオントロジーの編集が可能です。プラグインによる拡張機能も豊富で、様々な形式でのエクスポートやインポートが可能です。

WebベースのアプリケーションやセマンティックWeb技術での使用に適しています。

TopBraidComposer

TopBraidComposerは、商用のオントロジー開発ツールで、OWLやRDFデータの編集に特化しています。

GUIが備わっており、データの視覚化やSPARQLクエリの実行が可能です。企業レベルでのオントロジー開発やセマンティックWebプロジェクトに適しています。

オントロジーの構築手順

システムエンジニアとプログラマーの違いを仕事内容や将来性、年収まで掘り下げて紹介!

オントロジーの構築にはいくつかのステップがあります。オントロジーを構築する目的は、情報の内容や使い方を、コンピュータが理解できるように情報や属性を関連付けていくことです。ここでは、それぞれのステップでどのようなことを行うのかを見ていきます。

要件定義

オントロジーを使いたいドメインを明らかにします。たとえば医療分野で使う、といったことがドメインの決定になります。ドメインが決定すれば、そのドメインでオントロジーを構築するにあたり、どのような情報に、どのような情報を関係づけたいのかが決まってきます。

たとえば、病院の総合受付で、AIがさまざまな来訪者の対応をし、適切な診療科を案内することを想像してください。このとき、熱があるなら内科、ケガをしたら外科といった風に、患者の症状に応じた診療科を案内します。

こうした具体的なユースケースを明確にすることで、どのようなオントロジーを構築するのかが固まっていきます。

概念の抽出

要件定義の次は、概念の抽出です。上の例では、内科・外科・耳鼻科などの診療科を抽出することになります。言い換えれば「用語」となるかもしれません。これから、要件定義で定めた目的を達成するために、どんな用語にオントロジーを構築していくべきかを考え、洗い出しを行っていきます。

概念には上位・下位の関係も存在します。たとえば内科は広範な概念であり、下位に循環器内科、呼吸器内科、神経内科などのさまざまな分野が存在しています。これから行いたいことは”息苦しい”という相談を聞き、それが呼吸器内科で処理されるべき症状であり、したがって内科を案内することです。この情報処理を行うためには、ユースケース上で登場する可能性のある用語は洗い出しておかなければなりません。

関係の定義

次は用語間の関係を定義します。内科と呼吸器内科が上位・下位概念の関係にあることを定義するといった作業です。ユースケース上で登場しうる用語について、その用語が登場した時に正しく情報処理できるようにするため、関係の定義もしっかりと洗い出しておかなければなりません。

また、オントロジーは単に上位・下位概念でつなぐ関係だけでなく、プロセスを定義する場合もあります。たとえば、新型コロナウイルス感染症が拡がった2020年以降、熱がある人が来訪する場合、まず抗原検査を行うケースが主流になりました。いきなり内科を紹介して診察することは、今ではほとんどありません。このユースケースを実現するためには、抗原検査という概念が必要で、この検査プロセスを定義するだけでなく、熱があれば診療科を紹介せず抗原検査のプロセスへ進むように案内する必要があります。これは、用語同士の概念をつなぐだけでなく、用語が表すプロセスとの関係を定義する必要があります。

このような作業も、関係の定義の一環です。

属性の定義

また、属性の定義も行う必要があります。一般的に属性のことは「プロパティ」と言われます。PCを普段使う方なら、プロパティという用語を知っている人も多いでしょう。ファイルを右クリックすると登場するメニューであるプロパティは、そのファイルがどのようなものなのか、付属情報を確認することができます。ファイルのサイズ、更新日時、作成者などの情報を確認できます。

オントロジーにおける属性の定義も、ある概念に対してさまざまなプロパティを付与していく作業です。プロパティを定義する方法は2種類あり「データ型プロパティ」「オブジェクトプロパティ」があります。これらは、属性を定義するうえで、入力される値を限定する役割があります。

データ型プロパティでは、データ型を設定します。たとえば、受付システムに年齢を入力させるとします。年齢という概念は、数値型で入力されるべきです。また、16進数を使って”A”や”B”などといった数値を入力することもありません。これらを制御するために型を定義しています。

オブジェクトプロパティは、データが取りうる範囲を決定します。たとえば、年齢は稀に100歳を超える人はいても、1000歳を超える人や、マイナスになる人、小数点がある人はいません。したがって、年齢という概念は正の整数で3桁までと定義されるべきでしょう。

インスタンスの追加

次にインスタンスを追加します。インスタンスとは「実体」を表す言葉ですが、プログラミングの世界では「クラスに基づいて生成された実体」と考えます。クラスはいわば設計図のことであり、ここでいう「インスタンスの追加」とは、これまでに抽出した概念・関係・属性を組み合わせて、実際のオントロジー設計図を作成することと理解してください。

これによって、要件定義で定めた内容に従ってオントロジーを構築し、形として整えた状態になります。

評価

インスタンスの追加を行った後は、その「設計図」を評価する必要があります。机上、ときには実地での実証実験を十分に行い、構築したインスタンスが想定通りに作用し、ユースケースに漏れがないことを確認したうえで、実用に耐えうるかを評価する必要があります。

結果、想定不足によってインスタンスの追加や修正が必要かもしれません。また、重大な想定不足が発覚した場合は、元々の目的が達成できない、あるいは達成のための予算が大きく膨張するなどの理由で、開発を断念することもあるかもしれません。

情報科学におけるオントロジーの応用事例

ここまでにも、医療分野などを例にオントロジーの活用方法を例示しましたが、改めて活用事例について掘り下げてみましょう。現代のソフトウェア開発においては、オントロジーが重要な役割を果たしています。

セマンティックWeb

セマンティックWebとは、コンピュータにとってわかりやすいWebページの構造を整え、情報収集や判断を行いやすくするための仕組みです。具体的には、Webページの内容をXMLによってメタデータとして付与します。

メタデータを付与する際には、RDFやOWLといったオントロジー構築言語が活用されています。

セマンティックWebを使って構築されたWebページでは、記述されている情報にメタデータが付与されているため、その情報が何であるのかをコンピュータが判別しやすくなります。これにより、コンピュータがアクセスする際に、必要な情報を識別して抽出できるようになるため、シームレスな情報の連携も行いやすくなります。

ただ、普及のためには現在の膨大な数のWebページにメタデータを付与する必要があり、今後の拡がりについては未知数な面もあります。

人工知能(AI)

オントロジーは人工知能(AI)の実装に大いに活用されています。

オントロジーは情報の構造化や関連性の明確化に役立ち、機械学習はその構造化されたデータを使ってパターンを学習し、予測や分析を行います。

具体的には、オントロジーはデータのカテゴリー分けや用語の定義を提供し、機械学習アルゴリズムがより効率的にデータを理解し、処理するための基盤を作ります。

たとえば、医療分野の研究において、オントロジーを使って病気、症状、治療法などのデータを整理し、機械学習アルゴリズムがこの整理されたデータからパターンを学習し、新たな治療法の提案や病気の早期発見に貢献します。

オントロジーが提供する明確なデータ構造が機械学習モデルの精度を高め、より有意義な結果をもたらします。

また、機械学習によって新しい知識やパターンが発見された場合、それらをオントロジーに組み込むことで、オントロジー自体の更新や改善にもつながります。

このように、オントロジーと機械学習は相互に影響を及ぼし合いながら、より効率的で精度の高い情報処理を実現するために協力し合っているのです。

ソフトウェア工学

オントロジー構築では、定義=クラスの考え方が重要になります。オブジェクト指向プログラミングで重要な概念であるクラスと、オントロジーの概念の考え方は近しいです。クラスは再利用されることが前提になっており、さまざまな処理からクラスを呼び出すことで、一貫した処理を少量のコードで実現することができます。これにより、開発工数の削減やソフトウェア品質の向上が実現できます。

オントロジーでも、概念は可能な限り再利用することが推奨されており、オブジェクト指向のクラスと同様、工数や品質に対して好影響を与えることができるように作られています。

情報検索

オントロジーは情報検索にも活用されています。たとえば、Googleなどの情報検索サービスを利用する際、検索ボックスに”病院”と入力すると、病院だけでなく”医院”や”クリニック”なども検索結果に表示されます。これは、オントロジーによって病院・医院・クリニックが同義の概念であることが定義されているからです。

このように、オントロジーは情報検索の精度向上には欠かせない存在となっています。

データ分析

オントロジーは、ある概念にメタデータを与えることで他の概念との関係性や、その概念そのものの属性、処理や作業のプロセスを付属情報として与えるものです。これにより、データ分析においても効果を発揮します。

たとえば、2つ以上の概念を分析するにあたり、共通項となる同じ属性を持つ概念を調べるとします。同じように3つ、4つと調査を進めます。そうすると、別々の概念であっても共通項が見つかり、その共通項をキッカケに新たな発見ができる可能性があります。

たとえば、異なる食品を食べた患者が共通の症状をあらわしたとき、それぞれの食品から共通の病原体が見つからなかったとします。しかし、メタデータまで分析すると、共通項が見つかり、別々の物質が持つ共通的な特性が原因であることを突き止めることができるかもしれません。

このように、オントロジーによって分析の視野が格段に拡がり、多角的な示唆が得られる効果が得られるようになりました。

まとめ:オントロジーとは情報科学において重要な枠組み

本記事では、情報やデータの関連性や構造を理解しやすくする枠組みであるオントロジーについて深く掘り下げました。

オントロジーは、データや知識の関連性を明確にし、情報の検索や分析を効率化する役割を果たします。Webを始めとしたさまざまなITに用いられており、特に近年は人工知能(AI)の開発に導入されることにより、さまざまな分野で技術革新に活用されています。

この記事も参考に、AIに興味がある方は、オントロジーについての理解を深めてみてください。

また、Jiteraでは、要件定義を書くだけでAIが生成するツールで、アプリ・システム開発を行っています。制作している途中で要件が変更になっても柔軟に修正しながら開発できるので、アプリ開発・システム開発のご相談があればお気軽に相談ください。

アバター画像
sakakibara_writer

コンサルティング業界に20年以上在籍。IT戦略・構想策定など上流系が得意。

コスト削減も課題解決も同時に実現

「JITERA」で迅速
ソフトウェア開発

開発を相談する
Recommended articles for you

Discover more of
what matters to you

email-img
メルマガ登録
JITERA社内で話題になった生成AIトレンドをいち早くお届けします。
Thank you!

Jiteraのメールマガジン登録が完了しました。