(57)【要約】【課題】データ交換に係るオントロジーの作成を簡素化し、誤作成を防止する。【解決手段】一実施形態に係るオントロジー作成装置は、オントロジーのクラスの候補の定義を表す情報に基づいてクラスを選択するための入力操作を受け付ける第１の選択手段と、目的語としてのクラス、および主語としてのクラスの接続関係を示すプロパティの定義を表す情報に基づいて、選択されたクラスを目的語としたときの主語としてのクラスの候補を取得する取得手段と、当該候補に基づいて、選択されたクラスを目的語としたときの主語としてのクラスに属するインスタンスを選択するための入力操作を受け付ける第２の選択手段と、選択されたクラスに属するインスタンスと選択されたインスタンスとの間の接続関係を設定する関係設定手段と、選択されたクラス、インスタンスおよび設定された接続関係をそれぞれ示すオントロジーを作成して出力する出力手段とを有する。【選択図】図１
2020098484.tif 000002
【特許請求の範囲】
【請求項１】
オントロジーのクラスの候補の定義を表す情報を格納する第１の格納部と、
前記第１の格納部に格納される定義を表す情報に基づいて行われる、前記オントロジーのクラスの候補からクラスを選択するための入力操作を受け付ける第１の選択手段と、
目的語としてのクラス、および主語としてのクラスの接続関係を示すプロパティの定義を表す情報を格納する第２の格納部と、
前記第２の格納部に格納される定義を表す情報に基づいて、前記第１の選択手段により選択されたクラスを目的語としたときの、当該目的語に対する主語としてのクラスの候補を取得する取得手段と、
前記取得手段により取得された主語としてのクラスの候補に基づいて行われる、前記第１の選択手段により選択されたクラスを目的語としたときの、当該目的語に対する主語としてのクラスに属するインスタンスを選択するための入力操作を受け付ける第２の選択手段と、
前記第１の選択手段により選択されたオントロジーのクラスに属するインスタンス、および前記第２の選択手段により選択されたインスタンスの間の接続関係を設定する関係設定手段と、
前記第１の選択手段により選択されたオントロジーのクラス、前記第２の選択手段により選択されたインスタンス、および前記関係設定手段により設定された接続関係をそれぞれ示すオントロジーを作成して出力する出力手段と、
を備えたオントロジー作成装置。
【請求項２】
クラスおよびリテラルの関係を示すプロパティの候補の定義を表す情報を格納する第３の格納部と、
前記第３の格納部に格納されたプロパティの候補の定義を表す情報に基づいて、前記第１の選択手段により選択されたクラスに属するインスタンスと前記第２の選択手段により選択されたインスタンスとを含むインスタンス群が属するクラスに関係するリテラルを取得する第２の取得手段と、
前記第２の取得手段により取得されたリテラルの編集に係る入力操作を受け付ける編集手段と、
をさらに備える、
請求項１に記載のオントロジー作成装置。
【請求項３】
前記出力手段は、
前記第１の選択手段により選択されたオントロジーのクラスと当該クラスに属するインスタンスとの関係を示す情報、前記第１の選択手段により選択されたオントロジーのクラスに属するインスタンスと前記第２の選択手段により選択されたインスタンスとを含むインスタンス群に属するインスタンス間の関係を示す情報、および前記インスタンス群に属するインスタンスとリテラルとの関係を示す情報の少なくとも１つを生成し、前記生成した情報をオントロジーに変換して出力する、
請求項１に記載のオントロジー作成装置。
【請求項４】
前記第２の取得手段により取得されるリテラルは、前記インスタンス群に属するインスタンスのデータタイプである、
請求項２に記載のオントロジー作成装置。
【請求項５】
オントロジー作成装置が行うオントロジー作成方法であって、
第１の格納部に格納される情報である、オントロジーのクラスの候補の定義を表す情報に基づいて、クラスを入力操作により選択し、
第２の格納部に格納される情報である、目的語としてのクラス、および主語としてのクラスの接続関係を示すプロパティの定義を表す情報に基づいて、前記選択されたクラスを目的語としたときの、当該目的語に対する主語としてのクラスの候補を取得し、
前記取得された主語としてのクラスの候補に基づいて、前記選択されたクラスを目的語としたときの、当該目的語に対する主語としてのクラスに属するインスタンスを入力操作により選択し、
前記選択されたオントロジーのクラスに属するインスタンス、および前記選択されたインスタンスの間の接続関係を設定し、
前記選択されたオントロジーのクラス、前記選択されたインスタンス、および前記設定された接続関係をそれぞれ示すオントロジーを作成して出力する、
オントロジー作成方法。
【請求項６】
請求項１乃至４のいずれか１項に記載のオントロジー作成装置の前記各手段としてプロセッサを機能させるオントロジー作成処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、オントロジー作成装置、方法およびプログラムに関する。
【背景技術】
【０００２】
近年、オントロジー(Ontology)はWEB分野だけでなく、IoT(Internet of Things)を含め様々な分野で意味・体系表現のツールとして活躍している。  
ところが、オントロジーを記述する言語（RDF(Resource Description Framework)、JSON-LD…）は手動で作成することが困難な上、作成の際にオントロジー運用アプリケーションプログラム（アプリケーション、又はアプリ）に必要な制約(restriction)を適切に設けることができない。
【０００３】
ここで、IoTにおけるオントロジー構築について説明する。図１３は、IoTにおけるオントロジー構築の一例を説明する図である。  
IoTデータの意味・体系を表現する手段として、オントロジーを利用するIoTプラットフォームがある。
【０００４】
例えば、データ提供者としての各事業者に共通して設けられてアプリとの間でデータ交換を行なう共通プラットフォーム(PF)と他規格PF/Deviceとの間に変換プロシキを設け、この変換プロシキが、各規格に共通するデータ構造が記述されたオントロジーデータを用いて、共通プラットフォーム(PF)と他規格PF/Deviceとの間でデータ交換を行なう。
【０００５】
ここでは、IoTデバイス（Device）はサービス（Service）経由でデータの送受信を行うことを想定する。RESTfulインタフェースを持つ異種規格の場合は、サービスの下にDataPointを定義する。  
また、複雑なIoTデバイスの場合には、「ConsistsOf」フィールドを利用して、子デバイスと子サービスを表現することによって、階層関係を定義する。
【０００６】
例えば、クラス「Device」とクラス「Service」との間はObjectProperty「hasService」で関連付けられ、クラス「Service」とクラス「OutputDataPoint」との間はObjectProperty「hasOutputDataPoint」で関連付けられ、クラス「Service」とクラス「InputDataPoint」との間はObjectProperty「hasInputDataPoint」で関連付けられる。また、クラス「Service」とリテラル「API（Application Programming Interface（アプリケーションプログラミングインタフェース））」との間はDatatypeProperty「Protocol:hasAPI」で関連付けられる。ObjectPropertyは、クラス間の関係と、クラスに属するインスタンス間の関係を示す。
【０００７】
オントロジーを用いて相互連携を行なうためには、連携したい他規格PF/Deviceのデータを形式化する。  
この形式化を行なうには、以下の（１）〜（３）のように一定的な制約がある。  
制約（１）：クラスはThing/Device/Service/DataPointなどに限られる。  
制約（２）：クラスの間のObjectPropertyは一定である。  
例えば、{Device, hasService, Service}は適切であるが、{Device, hasInputDataPoint, InputDataPoint}は適切でない。  
制約（３）：各クラスに付与できるDatatypePropertyは一定である。  
例えば、{Service, hasAPI, API}は適切であるが、{Device, hasAPI, API}は適切でない。
【０００８】
従来のオントロジー構築プロセスでは、例えば、オントロジー構築対象世界から（１）直感的理解の表出を行ない、この結果をもとに（２）直感的理解の分析を行ない、この分析結果をもとに、（３）オントロジーの形式化を行なう（例えば非特許文献１、２参照）。このようなプロセスは、属人性が高く、形式化されたオントロジーの正確性は保証しにくい。
【０００９】
ここで、（２）直感的理解の分析と（３）オントロジーの形式化を支援するOntoClean方法論の手順を説明する。  
まず、正規化前のオントロジーに対して、まずそれぞれの概念について概念タイプを表すメタプロパティを判定する。  
次に、メタプロパティ間の制約が定義されているので、この制約に従ってDL(Description Logic)推論による一貫性検証を行なう。  
そして、発見された矛盾点を修正し、矛盾が生じなくなるまで繰り返す。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】上田  俊夫、池田  満、概念化アスペクト：オントロジー構築の手掛かり、人工知能学会研究会資料、SIG-SWO-A602-03
【非特許文献２】古崎  晃司、溝口  理一郎、オントロジー構築ツールの現状
【発明の概要】
【発明が解決しようとする課題】
【００１１】
従来の構築プロセスの課題について、以下の（１）〜（３）にて説明する。  
（１）直感的理解の表出で、概念のメタプロパティを判定するには、客観的な観点から様々な状況を想定して考察する能力が要求される。この能力の習得は容易ではない。  
（２）直感的理解の分析には、高度なオントロジーリテラシーが要求される。
【００１２】
（３）オントロジーの形式化では、直感的表現について曖昧な表現、又は誤っているところなどを修正するには、記述論理などの推論による支援が必要である。（メタプロパティ間の制約ルールを事前定義）
矛盾点、又は誤った記述などは形式化の後に行なうため、作成時の防止策はない。
【００１３】
次に、従来のオントロジー構築ツールと仕様手順について説明する。  
従来のオントロジー構築ツールでは、例えばDevice/Serviceなどのクラス、Instance、ObjectProperty、DatatypePropertyを新規作成する。次に、クラスの説明文書であるラベルを追加する。例えばDeviceクラスのラベルは「データを発生し、コマンドを受け取る機器」などに定義することができる。  
そして、クラスとクラスの間、クラスとインスタンスの間の関係性をプロパティを用いて定義し、結果を出力する。このような手順では、上記の課題が存在する。
【００１４】
この発明は、上記事情に着目してなされたもので、その目的とするところは、データ交換に係るオントロジーの作成を簡素化し、誤作成を防止することができるようにしたオントロジー作成装置、方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、この発明の一実施形態に係るオントロジー作成装置の第１の態様は、オントロジーのクラスの候補の定義を表す情報を格納する第１の格納部と、前記第１の格納部に格納される定義を表す情報に基づいて行われる、前記オントロジーのクラスの候補からクラスを選択するための入力操作を受け付ける第１の選択手段と、目的語としてのクラス、および主語としてのクラスの接続関係を示すプロパティの定義を表す情報を格納する第２の格納部と、前記第２の格納部に格納される定義を表す情報に基づいて、前記第１の選択手段により選択されたクラスを目的語としたときの、当該目的語に対する主語としてのクラスの候補を取得する取得手段と、前記取得手段により取得された主語としてのクラスの候補に基づいて行われる、前記第１の選択手段により選択されたクラスを目的語としたときの、当該目的語に対する主語としてのクラスに属するインスタンスを選択するための入力操作を受け付ける第２の選択手段と、前記第１の選択手段により選択されたオントロジーのクラスに属するインスタンス、および前記第２の選択手段により選択されたインスタンスの間の接続関係を設定する関係設定手段と、前記第１の選択手段により選択されたオントロジーのクラス、前記第２の選択手段により選択されたインスタンス、および前記関係設定手段により設定された接続関係をそれぞれ示すオントロジーを作成して出力する出力手段と、を備えるようにしたものである。
【００１６】
この発明のオントロジー作成装置の第２の態様は、第１の態様において、クラスおよびリテラルの関係を示すプロパティの候補の定義を表す情報を格納する第３の格納部と、前記第３の格納部に格納されたプロパティの候補の定義を表す情報に基づいて、前記第１の選択手段により選択されたクラスに属するインスタンスと前記第２の選択手段により選択されたインスタンスとを含むインスタンス群が属するクラスに関係するリテラルを取得する第２の取得手段と、前記第２の取得手段により取得されたリテラルの編集に係る入力操作を受け付ける編集手段と、をさらに備えるようにしたものである。
【００１７】
この発明のオントロジー作成装置の第３の態様は、第１の態様において、前記出力手段は、前記第１の選択手段により選択されたオントロジーのクラスと当該クラスに属するインスタンスとの関係を示す情報、前記第１の選択手段により選択されたオントロジーのクラスに属するインスタンスと前記第２の選択手段により選択されたインスタンスとを含むインスタンス群に属するインスタンス間の関係を示す情報、および前記インスタンス群に属するインスタンスとリテラルとの関係を示す情報の少なくとも１つを生成し、前記生成した情報をオントロジーに変換して出力するようにしたものである。
【００１８】
この発明のオントロジー作成装置の第４の態様は、第２の態様において、前記第２の取得手段により取得されるリテラルは、前記インスタンス群に属するインスタンスのデータタイプであるようにしたものである。
【００１９】
本発明の一実施形態に係る、オントロジー作成装置が行うオントロジー作成方法の一つの態様は、第１の格納部に格納される情報である、オントロジーのクラスの候補の定義を表す情報に基づいて、クラスを入力操作により選択し、第２の格納部に格納される情報である、目的語としてのクラス、および主語としてのクラスの接続関係を示すプロパティの定義を表す情報に基づいて、前記選択されたクラスを目的語としたときの、当該目的語に対する主語としてのクラスの候補を取得し、前記取得された主語としてのクラスの候補に基づいて、前記選択されたクラスを目的語としたときの、当該目的語に対する主語としてのクラスに属するインスタンスを入力操作により選択し、前記選択されたオントロジーのクラスに属するインスタンス、および前記選択されたインスタンスの間の接続関係を設定し、前記選択されたオントロジーのクラス、前記選択されたインスタンス、および前記設定された接続関係をそれぞれ示すオントロジーを作成して出力するようにしたものである。
【００２０】
本発明の一実施形態に係るオントロジー作成処理プログラムの一つの態様は、第１乃至第４の態様のいずれか１つにおけるオントロジー作成装置の前記各手段としてプロセッサを機能させるものである。
【発明の効果】
【００２１】
この発明の一実施形態に係るオントロジー作成装置の第１の態様によれば、オントロジーのクラスの候補の定義を表す情報に基づいて、クラスを入力操作により選択し、目的語としてのクラス、および主語としてのクラスの接続関係を示すプロパティの定義を示す情報に基づいて、選択されたクラスを目的語としたときの、目的語に対する主語としてのクラスの候補を取得し、取得された候補から、選択されたクラスを目的語としたときの主語としてのクラスに属するインスタンスを入力操作により選択し、選択されたクラス、インスタンスの間の接続関係を設定し、選択されたクラス、インスタンスおよび設定された接続関係をそれぞれ示すオントロジーを作成して出力するので、オントロジーの作成を簡素化し、誤作成を防止することができる。
【００２２】
この発明の一実施形態に係るオントロジー作成装置の第２および第４の態様によれば、クラスおよびリテラルの関係を示すプロパティの候補の定義を表す情報に基づいて、インスタンス群が属するクラスに関係するリテラルを取得して、このリテラルの編集を行えるので、ユーザは、編集できるリテラルの誤認識を防止することができる。
【００２３】
この発明の一実施形態に係るオントロジー作成装置の第３の態様によれば、クラスとインスタンスとの関係を示す情報、インスタンス間の関係を示す情報、およびインスタンスとリテラルとの関係を示す情報をオントロジーに変換して出力するので、適切に選択または編集されたクラス、インスタンス、リテラルに基づくオントロジーを出力することができる。
【００２４】
すなわち、本発明の各態様によれば、データ交換に係るオントロジーの作成を簡素化し、誤作成を防止することが可能になる。
【図面の簡単な説明】
【００２５】
【図１】本発明の一実施形態に係るオントロジー作成装置による手順の一例を示す図。
【図２】制約付きオントロジー作成GUIの画面構成の一例を示す図。
【図３】本発明の一実施形態に係るオントロジー作成GUIシステムの構成例を示す図。
【図４】インスタンスの新規作成に係るワークフローの一例を示す図。
【図５】DatatypeProperty設定サブフローの一例を示す図。
【図６】owl出力サブフローの一例を示す図。
【図７】オントロジーの作成の一例を説明する図。
【図８】作成できるインスタンスに制約を設けたGUI画面の一例を説明する図。
【図９】インスタンス間の関係に制約を設けたGUI画面の一例を説明する図。
【図１０】インスタンスのDatatypePropertyに制約を設けたGUI画面の一例を説明する図。
【図１１】インスタンスのDatatypePropertyに制約を設けたGUI画面の一例を説明する図。
【図１２】オントロジーの出力の一例を説明する図。
【図１３】IoTにおけるオントロジー構築の一例を説明する図。
【発明を実施するための形態】
【００２６】
以下、図面を参照しながら、この発明に係わる一実施形態を説明する。  
本発明の一実施形態に係るオントロジー作成装置では、GUI（グラフィカルユーザインタフェース）を用いて、オントロジーを作成する際に、オントロジー運用アプリに必要な制約を設けると共に、オントロジーの作成を簡素化する。
【００２７】
第１に、作成できるクラスをテンプレートとして用意することによって、想定外のクラスのインスタンスの作成を防ぐ。  
第２に、目的語インスタンスを選択してから、設計上許容できる主語インスタンスを本来設計のクラス間関係（述語）で自動的に選定してアクティブにし、その中から主語インスタンスをユーザが選択することによって、プロパティの誤作成を防ぐ。
【００２８】
第３に、各インスタンスに対して作成できるデータタイププロパティをシステムで自動的に本来設計のクラスとプロパティの関係を参照して選別し、ユーザの編集可能な状態にすることによって、属性の誤作成も防ぐ。
【００２９】
上記により、オントロジーの文法的な制約だけでなく、実運用における必要な意味的な制約も設けることができ、オントロジーの作成を簡素化した上、誤作成を防ぐことを可能とする。  
また、エンドユーザにオントロジー作成を任せる場面、ユーザがオントロジーに関する知識が不足な場面などに対応でき、オントロジーを利用するアプリの推進を加速できる。
【００３０】
次に、GUIを用いた制約付きオントロジーの作成の手順について説明する。図１は、本発明の一実施形態に係るオントロジー作成装置による手順の一例を示す図である。  
本発明の一実施形態に係るオントロジー作成装置は、従来のオントロジー構築プロセスとは異なり、オントロジー作成時にGUIを用いて制約をかけ、オントロジーの誤作成、設計との矛盾を有効に防ぐ。
【００３１】
例えば、従来の手順では、クラス群、インスタンス、ObjectProperty、DatatypePropertyを新規作成し、ラベル、インスタンスの所属クラスの関係性、literal(API)を設定し、整合性を検証した上で出力する。この手順はすべてユーザ操作（手動）による手順である。
【００３２】
これに対し、本発明の一実施形態では、クラス群、ObjectProperty、DatatypePropertyをGUIで事前に用意する。ここでは、設計上の限られたクラスだけ用意される。そして、ユーザ操作によりインスタンスを新規作成する。そして、インスタンスの所属クラスの関係性を自動で設定し、インスタンスの所属クラスのDatatypePropertyを継承し、対応のliteral編集画面を自動で表示する。  
そして、ユーザ操作によりliteralを設定し、ラベル自動で設定し、リアルタイムで自動出力する。
【００３３】
次に、制約付きオントロジー作成GUIの概要を説明する。  
まず、制約付きオントロジー作成GUIの画面構成について説明する。図２は、制約付きオントロジー作成GUIの画面構成の一例を示す図である。  
図２に示した例では、GUIで事前用意されたクラス（Device, Service, InputDataPoint, OutputDataPoint, SimpleDataType）が表示される。  
この表示されたクラスを組み合わせてオントロジー図を作成することができる。  
この作成されたオントロジー図からOWL(Web Ontology Language)、JSONが自動で作成される。
【００３４】
次に、制約付きオントロジー作成GUIシステム（オントロジー作成装置）の構成について説明する。  
図３は、本発明の一実施形態に係るオントロジー作成GUIシステムの構成例を示す図である。  
図３に示すオントロジー作成GUIシステム１０の機能は、プログラムを実行するＣＰＵ（Central Processing Unit）等のプロセッサ、およびＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等の記憶媒体、キーボードなどの入力装置、ディスプレイなどの表示装置を用いて実現される。
【００３５】
オントロジー作成GUIシステム１０は、クラス選択部１１（A, クラス選択部と表記することがある）、ObjectProperty判定部１２（B, ObjectProperty判定部と表記することがある）、関係性設定部１３（C, 関係性設定部と表記することがある）、DatatypeProperty判定部１４（D, DatatypeProperty判定部と表記することがある）、literal設定部１５（E, literal設定部と表記することがある）、owl出力部１６（F, owl出力部と表記することがある）を有する。
【００３６】
クラス選択部１１は、クラス定義格納部（格納部Ｘと表記することがある）１１ａを有し、ObjectProperty判定部１２は、ObjectProperty情報格納部（格納部Ｙと表記することがある）１２ａを有し、関係性設定部１３は、関係性情報格納部（格納部Ｚと表記することがある）１３ａを有する。DatatypeProperty判定部１４は、DatatypeProperty情報格納部（格納部Uと表記することがある）１４ａを有し、literal設定部１５は、literal情報格納部（格納部Vと表記することがある）１５ａを有し、owl出力部１６は、json/owl情報格納部（格納部Wと表記することがある）１６ａを有する。
【００３７】
格納部X, Y, Uに格納される情報は事前に設定される。  
格納部Xには、オントロジーのクラスの候補の定義を表す情報である、以下の設計クラス群が予め格納される。  
設計クラス群{C1, C2, …, Cn}：{Device, Service, InputDataPoint, OutputDataPoint, SimpleDataType}
【００３８】
格納部Yには、目的語としてのクラス、および主語としてのクラスの接続関係を示すプロパティの定義を表す情報である、以下の設計ObjectProperty群（（１）〜（４）は例）が予め格納される。  
設計ObjectProperty群{OP1, OP2, …, OPn}：
（１）OP1:hasService:(主語)Device→(目的語)Service
（２）OP2:hasInputDataPoint:(主語)Service→(目的語)InputDataPoint
（３）OP3:hasOutputDataPoint:(主語)Service→(目的語)OutputDataPoint
（４）OP3:hasDatatype:(主語)InputDataPoint→(目的語)SimpleDataType|
(主語)InputDataPoint→(目的語)SimpleDataType
【００３９】
格納部Uには、クラスおよびリテラルの関係を示すプロパティの候補の定義を表す情報である、以下の設計DatatypeProperty群（（１）〜（５）は例）が予め格納される。  
設計DatatypeProperty群{DP1, DP2, …, DPn}：
（１）DP1:rdfs:about:(主語)すべてのクラス→literal
（２）DP2:hasAPI:主語Service| InputDataPoint|OutputDataPoint→literal
（３）DP3:storeTimeseries:(主語)Service| OutputDataPoint→literal
（４）DP4:onDemand:(主語)OutputDataPoint→literal
（５）DP5:onDemandTS:(主語)OutputDataPoint→literal
【００４０】
次に、インスタンスの新規作成に係るワークフローについて説明する。図４は、インスタンスの新規作成に係るワークフローの一例を示す図である。  
まず、クラス選択部１１は、ユーザの操作に従い、新規作成するインスタンスの所属クラスCselectをGUI画面（図２に示したような作成用画面）右側に表示される設計クラス群{C1, C2, …, Cn}から選択し、格納部Xに格納する（Ｓ１１）。  
クラス選択部１１は、GUI画面の左側に、Ｓ１１で選択されたCselectのインスタンスIcreatedをユーザによる入力操作または自動で新規作成する（Ｓ１２）。
【００４１】
ObjectProperty判定部１２は、格納部Yに格納される設計ObjectProperty群{OP1, OP2, …, OPn}から、Ｓ１１で選択されたCselectが目的語(Object)になっているObjectProperty群OPSselectを取得する（Ｓ１３）。
【００４２】
ObjectProperty判定部１２は、Ｓ１３で取得したOPSselectを構成する各ObjectPropertyで定義される、主語（Subject）となるクラス群SSselectを取得する（Ｓ１４）。この取得結果は、Ｓ１１で選択されたクラスを目的語としたときの、当該目的語に対する主語として設定可能であるクラスの候補となる。
【００４３】
そして、関係性設定部１３は、GUI画面の左側に、Ｓ１３で取得されたクラス群SSselectに属するインスタンスが存在するか否かを判断し（Ｓ１５）、存在すれば、GUI画面の左側に表示される、Ｓ１３で取得されたクラス群SSselectに属するインスタンス{Parent1, Parent1, …, Parentn}をすべてハイライトにして表示させ、インスタンス間を、ユーザの操作に従って連結可能な状態にする。
【００４４】
GUI画面で、ユーザの入力操作により所望のインスタンスParentselectが選択されると（Ｓ１７）、関係性設定部１３は、この選択されたインスタンスParentselectと、Ｓ１２で作成されたインスタンスIcreatedとを連結して、この連結を示す線分をGUI画面に描画し、各インスタンス間の関係性を示すプロパティ（ObjectProperty）OPselect(OPselect∈OPSselect)を付与し、このプロパティを格納部Zに格納する（Ｓ１８）。Ｓ１８の後、またはＳ１５でインスタンスが存在しなければ、DatatypeProperty設定サブフロー(Ｓ２０：Ｓ２１〜Ｓ２３)、およびowl生成サブフロー(Ｓ３０：Ｓ３１〜Ｓ３５)が実行されて処理が終了する。
【００４５】
次に、DatatypeProperty設定サブフローについて説明する。図５は、DatatypeProperty設定サブフローの一例を示す図である。  
DatatypeProperty設定サブフローが開始されると、DatatypeProperty判定部１４は、Ｓ１２で作成されたインスタンスIeditingが属するクラスに属するインスタンス、およびＳ１７で選択されたインスタンスに関わるDatatypeProperty群を、格納部Uに格納される設計DatatypeProperty群{DP1, DP2, …, DPn}から取得する（Ｓ２１）。この取得結果は、Ｓ１１で選択されたクラスに属するインスタンスとＳ１７で選択されたインスタンスとに関係するリテラルに対応する。
【００４６】
DatatypeProperty判定部１４は、GUI画面上に、Ｓ２１で取得されたDatatypeProperty群で定義されるliteralの編集windowを表示する（Ｓ２２）。この画面上で、ユーザは入力操作によりliteralを編集できる。
【００４７】
literal設定部１５は、Ｓ１２で作成されたIeditingと、上記の編集されたliteralと、このliteralに対応するDatatypePropertyであるDPeditingとを関連付けた情報(Iediting, DPediting, literal)を格納部Vに格納し（Ｓ２３）、DatatypeProperty設定サブフローが終了する。
【００４８】
次に、owl出力サブフローについて説明する。図６は、owl出力サブフローの一例を示す図である。  
owl出力サブフローが開始されると、owl出力部１６は、格納部X, Y, Z, U, Vから、GUI画面の左側に表示される、各種クラスに属するインスタンス群{I1, I2, …, In}を取得する（Ｓ３１）。このインスタンス群は、Ｓ１１で取得されたクラスに属するインスタンスと、Ｓ１７で選択されたインスタンスを含む。
【００４９】
owl出力部１６は、Ｓ３１で取得されたインスタンス群{I1, I2, …, In}を構成する各インスタンスに対して、当該クラスが属するクラスとの関係性を示す情報(Ii, rafs:subClassof, Ci)を作成する（Ｓ３２）。
【００５０】
owl出力部１６は、Ｓ３１で取得されたインスタンス群{I1, I2, …, In}を構成する各インスタンス間の関係性を示す情報(Ii, OPW, Ij)を作成する（Ｓ３３）。この作成結果は、Ｓ１１で選択されたクラスに属するインスタンスと、Ｓ１７で選択されたインスタンスとを含むインスタンス群に属する２つのインスタンス間の関係を示す。
【００５１】
owl出力部１６は、Ｓ３１で取得されたインスタンス群{I1, I2, …, In}を構成する各インスタンスに対して、literalとの関係性を示す情報(Ii, DPW, Ij)を作成する（Ｓ３４）。この作成結果は、上記のインスタンス群に属するインスタンスとリテラルとの関係を示す。owl出力部１６は、Ｓ３２からＳ３４で作成した各情報をowlフォーマットに変換して格納部Wに格納して外部に出力して（Ｓ３５）、owl出力サブフローが終了する。
【００５２】
次に、IoT相互連携のためのデータ形式化により作成されるオントロジーの作成について説明する。図７は、オントロジーの作成の一例を説明する図である。  
図７に示した例では、インスタンス「getData」、「ManageDev」がクラス「Service」に属し、インスタンス「温度」、「湿度」、「CO2」がクラス「OutputDataPoint」に属し、インスタンス「Interval」、「Switch」がクラス「InputDataPoint」に属する。
【００５３】
また、インスタンス「EnvSensor」は、ObjectProperty「hasService」によりインスタンス「getData」、「ManageDev」に関連付けられ、インスタンス「getData」は、ObjectProperty「hasOutputDataPoint」によりインスタンス「温度」、「湿度」、「CO2」に関連付けられ、インスタンス「ManageDev」は、ObjectProperty「hasInputDataPoint」によりインスタンス「Interval」、「Switch」に関連付けられる。
【００５４】
インスタンス「EnvSensor」は、DatatypeProperty「is-a」によりliteral「環境センサー」と関連付けられ、インスタンス「ManageDev」はDatatypeProperty「hasAPI」によりliteral「Sensor/Service1」と関連付けられ、インスタンス「getData」は、DatatypeProperty「hasAPI」によりliteral「Sensor/Service2」と関連付けられる。
【００５５】
インスタンス「温度」は、DatatypeProperty「hasAPI」によりliteral「DATA:arg(argument)1」と、インスタンス「湿度」は、DatatypeProperty「hasAPI」によりliteral「DATA:arg2」と、インスタンス「CO2」は、DatatypeProperty「hasAPI」によりliteral「DATA:arg3」と、インスタンス「Interval」は、DatatypeProperty「hasAPI」によりliteral「DATA:arg4」と、インスタンス「Switch」は、DatatypeProperty「hasAPI」によりliteral「DATA:arg5」とそれぞれ関連付けられる。  
インスタンス「温度」、「湿度」、「CO2」、「Interval」、「Switch」は、DatatypeProperty「hasDatatype」によりliteral「float」と関連付けられる。
【００５６】
次に、GUI画面における、作成できるインスタンスに制約を設けた例を説明する。図８は、作成できるインスタンスに制約を設けたGUI画面の一例を説明する図である。  
図８に示した例では、ユーザは、GUI画面の右側のエリアに用意されたクラスの候補「Device」、「Service」、「InputDataPoint」、「OutputDataPoint」、「SimpleDataType」を利用して、GUI画面の左側のエリアにインスタンスを作成（描画）することができる。図８に示した例では、以下の（１）〜（７）が作成される。
【００５７】
（１）クラス「Device」に属するインスタンス「EnvSensor」
（２）インスタンス「EnvSensor」の下層であって、クラス「Service」に属するインスタンス「getData」、「ManageDev」
（３）インスタンス「getData」の下層であって、クラス「OutputDataPoint」に属するインスタンス「温度」、「湿度」、「CO2」
（４）インスタンス「温度」、「湿度」の下層であって、クラス「SimpleDataType」に属するインスタンス「float」
（５）インスタンス「CO2」の下層であって、クラス「SimpleDataType」に属するインスタンス「integer」
（６）インスタンス「ManageDev」の下層であって、クラス「InputDataPoint」に属するインスタンス「Interval」、「Switch」
（７）インスタンス「Interval」、「Switch」の下層であって、クラス「SimpleDataType」に属するインスタンス「Binary」
【００５８】
次に、GUI画面における、インスタンス間の関係に制約を設けた例を説明する。図９は、インスタンス間の関係に制約を設けたGUI画面の一例を説明する図である。  
インスタンスの間の関係性を示す線分は、設計ObjectProperty群に従った関係性を示す線分としてのみ、GUI画面上で描画することができる。一方で、設計ObjectProperty群に従わない関係性を示す線分をGUI画面上で描画することはできず、関係性設定部１３により該当の関係性を設定することもできない。
【００５９】
図９に示した例では、GUI画面上におけるクラス「Device」に属するインスタンスと、クラス「OutputDataPoint」に属するインスタンスとの間には、線分を描画することができない。
【００６０】
また、図９に示した例では、GUI画面上のクラス「Service」に属するインスタンスと、クラス「InputDataPoint」に属するインスタンスとの間には、関係性を示す１本の線分を描画することができるが、同じインスタンス間に２本以上の線分を描画することはできない。
【００６１】
次に、インスタンスのDatatypePropertyに制約を設けた例を説明する。図１０、図１１は、インスタンスのDatatypePropertyに制約を設けたGUI画面の一例を説明する図である。  
図１０に示した例では、クラス「Device」、「SimpleDataType」に係るノードでは、インスタンスで設定できるDatatypePropertyは、「NAME:名前変更」、「DELETE:削除」に制限される。
【００６２】
また、図１１に示した例では、クラス「Service」、「InputDataPoint」、「OutputDataPoint」に係るノードでは、インスタンスで設定できるDatatypePropertyは、「NAME:名前変更」、「DELETE:削除」、「hasAPI」、「保管状態（storeTimeseries（時系列データの保管）、onDemand（アプリからの要求によりデータを取得）、onDemandTS（アプリからの要求により時系列データを取得））」に制限される。
【００６３】
次に、オントロジーの出力の例について説明する。図１２は、オントロジーの出力の一例を説明する図である。  
上記図７に示した、EnvSensorのセンサーにかかるクラス、インスタンスを図８に示すようにGUI画面上に描画したときは、図１２に示すように、CO2のセンサーと、温度のセンサーと、ON/OFFスイッチを持つLightデバイスのオントロジーであるOWLファイルがowl出力部１６により作成される。
【００６４】
以上のように、本発明の一実施形態に係るオントロジー作成装置は、オントロジーのクラスの候補の定義を表す情報に基づいてクラスを入力操作により選択し、目的語としてのクラス、および主語としてのクラスの接続関係を示すプロパティの定義を表す情報に基づいて、選択されたクラスを目的語としたときの、当該目的語に対する主語としてのクラスの候補を取得し、取得された候補に基づいて、選択されたクラスを目的語としたときの主語としてのクラスに属するインスタンスを入力操作により選択し、選択されたクラスに属するインスタンス、選択されたインスタンスの間の接続関係を設定し、選択されたクラス、選択されたインスタンス、および設定された接続関係をそれぞれ示すオントロジーを作成して出力するので、オントロジーの作成を簡素化し、誤作成を防止することができる。
【００６５】
つまり、IoTシステムにおいてデータ提供者の追加、又はセンサデバイスの変更が生じオントロジーの更新を頻繁に行う際にオントロジーに精通したユーザでなくても、IoTシステムの管理者がオントロジーの文法上の制約、又は実運用において必要な制約が予め設定されているGUIを用いることにより比較的短時間で正しく適切なオントロジーの作成が可能になる。
【００６６】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の発明が含まれており、開示される複数の構成要件から選択された組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、課題が解決でき、効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【００６７】
また、各実施形態に記載した手法は、計算機（コンピュータ）に実行させることができるプログラム（ソフトウエア手段）として、例えば磁気ディスク（フロッピー（登録商標）ディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ、ＭＯ等）、半導体メモリ（ＲＯＭ、ＲＡＭ、フラッシュメモリ等）等の記録媒体に格納し、また通信媒体により伝送して頒布することもできる。なお、媒体側に格納されるプログラムには、計算機に実行させるソフトウエア手段（実行プログラムのみならずテーブル、データ構造も含む）を計算機内に構成させる設定プログラムをも含む。本装置を実現する計算機は、記録媒体に記録されたプログラムを読み込み、また場合により設定プログラムによりソフトウエア手段を構築し、このソフトウエア手段によって動作が制御されることにより上述した処理を実行する。なお、本明細書でいう記録媒体は、頒布用に限らず、計算機内部あるいはネットワークを介して接続される機器に設けられた磁気ディスク、半導体メモリ等の記憶媒体を含むものである。
【符号の説明】
【００６８】
１０…オントロジー作成GUIシステム、１１…クラス選択部、１１ａ…クラス定義格納部、１２…ObjectProperty判定部、１２ａ…ObjectProperty情報格納部、１３…関係性設定部、１３ａ…関係性情報格納部、１４…DatatypeProperty判定部、１４ａ…DatatypeProperty情報格納部、１５…literal設定部、１５ａ…literal情報格納部、１６…owl出力部、１６ａ…json/owl情報格納部。
【図１】
2020098484.tif 000003
【図２】
2020098484.tif 000004
【図３】
2020098484.tif 000005
【図４】
2020098484.tif 000006
【図５】
2020098484.tif 000007
【図６】
2020098484.tif 000008
【図７】
2020098484.tif 000009
【図８】
2020098484.tif 000010
【図９】
2020098484.tif 000011
【図１０】
2020098484.tif 000012
【図１１】
2020098484.tif 000013
【図１２】
2020098484.tif 000014
【図１３】
2020098484.tif 000015