• 検索結果がありません。

Oracleセマンティック・テクノロジーの推論のベスト・プラクティス(RDFS/OWL)

N/A
N/A
Protected

Academic year: 2021

シェア "Oracleセマンティック・テクノロジーの推論のベスト・プラクティス(RDFS/OWL)"

Copied!
10
0
0

読み込み中.... (全文を見る)

全文

(1)

Oracle セマンティック・テクノロジー

の推論のベスト・プラクティス

(RDFS/OWL)

Oracle ホワイト・ペーパー

2008 年 2 月

(2)

Oracle セマンティック・テクノロジーの推論の

ベスト・プラクティス(RDFS/OWL)

はじめに

このホワイト・ペーパーでは、Oracle Database 11g セマンティック・テクノロジー を使用した RDFS と OWL の推論のベスト・プラクティスについて説明します。 まず、セマンティック・データを使用するための推奨事項を示し、Oracle Database のチューニングに関する考慮事項を説明します。次に、RDFS ルールベース、RDFS ++ルールベース、OWLSIF ルールベース、OWLPrime ルールベースを使用する推 論に関するいくつかのベスト・プラクティスを示し、それぞれのユーザー定義ルー ルに関する考慮事項、および OWLPrime の範囲外のセマンティック・データの取 扱い方法について説明します。最後に、10 億を超えるトリプルに対する LUBM8000 推論ベンチマークの結果を示します。

セマンティック・データを使用するための準備

最新のセマンティック・テクノロジーのパッチ・セットをOracle Databaseにインス トールしてから、以下の 2 つのステップを実行します。パッチ・セットは、OTN Semantic Technologies Softwareページから入手できます。詳細については、『Oracle Jena Adaptor Patch Installation Guide』1の第 2 項を参照してください。

Oracle Database 11g Release 1 RDF/OWLのユーザーは、SEM_APIS.CREATE_ RULES_INDEXの代わりに、SEM_APIS.CREATE_ENTAILMENT APIを使用して ルールの索引を作成することを推奨します。SEM_APIS.CREATE_RULES_INDEX は、おもに下位互換性のために存在しています。 次のシンプルな例は、最大サイズ 300GB の BIGFILE 表領域を作成し、セマン ティック・ネットワークを初期化し、アプリケーション表を作成し、DML 文を使 用して 1 つのトリプルを追加し、OWLPrime ルールベースを使用して推論を実行 するフローを示しています。 ステップ 1:

SQL> -- login as SYS with DBA privilege

SQL> -- Note: you need to customize the following statement SQL> -- based on your setup.

SQL> --

SQL> CREATE BIGFILE TABLESPACE SEMTS

1 Oracle Jena Adaptorのサーバー側のパッチ・インストール・ガイド

(3)

DATAFILE '<path_to_datafile>/SEMTS.DBF' SIZE 512m REUSE AUTOEXTEND ON NEXT 512M MAXSIZE 300G

EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; ステップ 2:

SQL> EXECUTE sem_apis.create_sem_network('SEMTS');

SQL> --

SQL> -- login as a regular user, SCOTT for example SQL> --

SQL> CREATE TABLE owltst(id number, triple sdo_rdf_triple_s); Table created.

SQL> EXECUTE sem_apis.create_sem_model('owltst','owltst','triple'); PL/SQL procedure successfully completed.

SQL> INSERT INTO owltst VALUES (1, sdo_rdf_triple_s('owltst', 'http://foo.com/name/John','http://www.w3.org/2002/07/owl#sameAs', 'http://foo.com/name/JohnQ')); 1 row created. SQL> commit; SQL> EXECUTE sem_apis.create_entailment('owltst_idx', sem_models('owltst'), sem_rulebases('OWLPRIME'));

Oracle Database のチューニングの考慮事項

すべてのアプリケーションに合う単一のデータベース構成はありません。この項 では、Linux PCのテスト・システム(2GBの物理メモリ搭載)上での推論の実行 に役立つガイドラインを示します。ただし、ユーザーのハードウェア、アプリケー ション構成、およびデータセットによっては、異なる結果が生じる場合がありま す。そのため、ユーザー環境におけるテストとベンチマークの実行を含め、Oracle Databaseのチューニングに関する標準のベスト・プラクティスに従うことを推奨し ます。『Oracle Databaseパフォーマンス・チューニング・ガイド』2は優れたリソー スです。 最新の統計情報を維持します。PL/SQL APIのSEM_PERF.GATHER_STATSまたは SEM_APIS.ANALYZE_MODELは、推論に関与する複数のセマンティック・モデ ルのいずれかに大量のデータが追加されてから起動する必要があります。最初の APIは、セマンティック・ネットワーク内のすべてのモデルの統計情報を収集し、 2 番目のAPIは、モデルごとに統計情報を収集します。 SGA/PGA。一般的に、SGAおよびPGAに十分な量の専用メモリが割り当てられる ようにデータベースを構成します。MEMORY_TARGETパラメータを変更して、割 り当てられるメモリの合計を変更し、Oracle DatabaseがSGAおよびPGAの各値を自 動的に設定できるようにします。 2 『Oracle Databaseパフォーマンス・チューニング・ガイド 11gリリース 1(11.1)』、原本部品番号:B28274-01

(4)

2GB の物理メモリがあるテスト・マシンで、次の設定が DBA 権限を備えた SYS として使用されています(その後、データベースを再起動する必要があります)。 Oracle Database のプロセスとメモリ・リソースに対し競合するほかのアプリケー ションはありません。

SQL> alter system set memory_target=’1600M’ scope=spfile;

MEMORY_TARGET初期化パラメータを 03に設定して、SGAおよびPGAを手動で設 定するとよい結果につながる場合があります(詳細については、『Oracle Database 管理者ガイド』を参照)。とくに、メモリの量に制限があり、オントロジーが非 常に大きい場合に有効です。たとえば、次の構成は、8,000 の大学と 10 億を超え る ト リ プ ル に よ る Lehigh University Benchmark オ ン トロジ ー ・ ベン チマ ー ク (LUBM)4でOWLPrime推論を実行するときに、わずか 2GBの物理メモリを備えた テスト・システムで使用されています。メモリ・プールの最小値を制御する DB_CACHE_SIZEは多めに割り当てられています。次を参照してください。 db_cache_size=832M java_pool_size=32M large_pool_size=16M shared_pool_size=160M sga_target=1056M pga_aggregate_target=352M filesystemio_options。Linuxテスト・システムでは、filesystemio_options='SETALL' に設定すると、推論のパフォーマンスが大幅に向上することが確認されています。 このことは、そのほかのプラットフォームでは確認されていません。新しい設定 に変更したあとは、データベースを再起動する必要があります。

SQL> alter system set filesystemio_options='SETALL' scope=spfile;

物理I/O。物理I/Oは推論のボトルネックとなることがあります。Oracle Database 11g の推論プロセスでは、多くのテーブル結合とソートがおこなわれます。巨大な RDF/OWLデータ・モデルを扱う場合、推論プロセスは、ソース・トリプル・デー タ、および推論されたトリプルの永続性を読み取るために物理I/O処理をおこない、 中間結果のソートおよび交換をおこないます。 メモリの量が固定されている場合、複数のハード・ディスク間で I/O を均等に分 散することが、I/O の待ち時間を短縮するシンプルな戦略です。テスト・システム では、データベースで使用される一時表領域を保持するために 1 台の専用ハード・ ディスクが使用されます。そのほかのハード・ディスクは、セマンティック・ネッ トワークのデータベース・ログ・ファイルと表領域を格納しています。(Automatic Storage Management を使用してもおこなえます。)この構成は、テスト・システ ムのハードウェアに適しています(後述するベンチマークの結果の項を参照)。 これは、一時表領域が大量のデータの結合とソートに頻繁に使用され、物理メモ リが制限されるためです。 3 『Oracle Database管理者ガイド 11gリリース 1(11.1)、原本部品番号:B28310- 03 4 http://swat.cse.lehigh.edu/projects/lubm/

(5)

次のコマンドラインは、BIGFILE 一時表領域を作成し、それをデフォルトで使用 するようにデータベースに指示を出します。コマンドは、マシン構成とハード・ ディスクの容量に基づいて、カスタマイズする必要があります。

SQL> create bigfile temporary tablespace tmp_ts tempfile '<path_to_your_datafile>'

size 512M reuse

autoextend on next 512M maxsize 300G EXTENT MANAGEMENT LOCAL

;

SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tmp_ts;

推論のベスト・プラクティス

RDFS ルールベース

すべての RDFS ルールが均一に情報を提供するわけではありません。たとえば、 ルール RDFS12 では、アプリケーションが簡単に取得できない新しい情報は提供 されません。推論中にこのルールをスキップまたは選択解除するには、5 番目の パラメータとして'RDFS12-'を指定します。 BEGIN SEM_APIS.CREATE_ENTAILMENT( 'example_rdfsidx', SEM_Models('my_example'), SEM_Rulebases('RDFS'), SEM_APIS.REACH_CLOSURE, 'RDFS12-'); END; / 複数のコンポーネントを選択解除して、INF_COMPONENTS_INパラメータに次の 値を使用する推論を速めることもできます。RDF Semantics Webサイト5には、ルー ルの詳細な説明があります。この情報を参照してから、ルールをスキップするか どうかを決めてください。 'RDFS12-, RDFS4A-, RDFS4B-, RDFS6-, RDFS8-, RDFS10-, RDFS13-'

RDFS++、OWLSIF、および OWLPrime ルールベース

以下の情報は、サポートされているRDFS/OWLボキャブラリ構成に関するもので、 『Oracle Databaseセマンティク・テクノロジ開発者ガイド』6の情報を補完するもの です。それぞれのルールベースに含まれている一連のRDFS/OWLボキャブラリ構 成は、以下のとおりです。 ルールベース名 含まれる RDFS/OWL 構成 RDFS++ すべての RDFS ボキャブラリ構成 owl:InverseFunctionalProperty, owl:sameAs 5 http://www.w3.org/TR/2004/REC-rdf-mt-20040210/ 6 『Oracle Databaseセマンティク・テクノロジ開発者ガイド 11gリリース 1(11.1)

(6)

OWLSIF すべての RDFS ボキャブラリ構成 owl:FunctionalProperty, owl:InverseFunctionalProperty, owl:SymmetricProperty, owl:TransitiveProperty, owl:sameAs, owl:inverseOf, owl:equivalentClass, owl:equivalentProperty, owl:hasValue, owl:someValuesFrom, owl:allValuesFrom OWLPRIME rdfs:subClassOf, rdfs:subPropertyOf, rdfs:domain, rdfs:range, owl:FunctionalProperty, owl:InverseFunctionalProperty, owl:SymmetricProperty, owl:TransitiveProperty, owl:sameAs, owl:inverseOf, owl:equivalentClass, owl:equivalentProperty, owl:hasValue, owl:someValuesFrom, owl:allValuesFrom, owl:differentFrom, owl:disjointWith, owl:complementOf RDFSルールベースでの推論と同様、明確に推論の結果が予測できる場合は、1 つま たは複数のコンポーネントを選択解除できます。たとえば、クラスとプロパティの 階層、および推移関係だけに関心がある場合は、owl:sameAsとowl:differentFrom のコンポーネントを選択解除できます。

ユーザー定義のルール

『Oracle Databaseセマンティク・テクノロジ開発者ガイド』に記載されているよう に、オラクルが提供しているRDFS、RDFS++、OWLSIF、およびOWLPRIMEに加 えて、ユーザー定義のルールを推論で使用する場合は、'USER_RULES=T'を指定す る必要があります。次のコマンドは、そのような推論の例を示しています。

SQL> -- In the following statement, 'USER_RULES=T' is required SQL> EXECUTE sem_apis.create_entailment('owltst2_idx',

sem_models('owltst'),

sem_rulebases('OWLPRIME','USER_RULEBASE'), SEM_APIS.REACH_CLOSURE, null, 'USER_RULES=T');

(7)

ユーザー定義のルールのほとんどは、1 つのパターンをもちます。つまり、ルー ル・ヘッドには 1 つのパターンしかありません。まれに、ユーザー定義のルール が結果的に複数のパターンをもつことがありますが、1 つのパターンをもつよう にルールを複数のルールに分割するほうがより効率的です。

OWLPrime の範囲外のセマンティックの定義

OWLPrimeには、非常に多様な表現が可能なOWL DL構成のサブセットが用意され ていますが、より多くのセマンティックを必要とするアプリケーションもありま す。より多くのセマンティックの利用を可能にする方法は、2 つあります。詳細 については、ホワイト・ペーパー7を参照してください。 • ユーザー定義のルールの追加

• Oracle Jena Adaptor を使用した完全な DL Reasoner との統合

次の例は、owl:intersectionOfのコア・セマンティックをサポートする方法 を示しています。左の列には、OWLの概念の簡単な定義がRDF/XML形式で示さ れています。右の列には、3 つの対応するユーザー定義のルールが示されていま す。本当に必要なのは、最後のルールだけです。最初の 2 つのルールは、2 つの スキーマ・トリプルとしてオントロジーに追加できます。 RDF/XML 形式の OWL ユーザー定義のルール <owl:Class rdf:ID=“FemaleAstronaut"> <rdfs:label>female astronaut</rdfs:label> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Female" /> <owl:Class rdf:about="#Astronaut" /> </owl:intersectionOf> </owl:Class> 1. ➜ :FemaleAstronaut rdfs:subClassOf :Female 2. ➜ :FemaleAstronaut rdfs:subClassOf :Astronaut 3. ?x rdf:type :Female . ?x rdf:type :Astronaut . ➜ x rdf:type :FemaleAstronaut 表1 owl:intersectionOf用のユーザー定義のルール 完全なDL Reasoner8を使用して、クラス・サブサンプション・ツリーを計算し(TBox が適度なサイズであると想定した場合)、完全なクラス・サブサンプション・ツ リーとABoxデータの組合せにオラクルのOWL推論を適用できます。次のOracle Jena Adaptor APIに基づくコードは、考え方を示しています。

Model modelOracle = ModelOracleSem.createOracleSemModel( oracle, modelName);

// Creates an in-memory Jena model based on an Oracle RDF/OWL // model

Model model = ModelFactory.createDefaultModel(); model.add(modelOracle);

modelOracle.getGraph().close();

7 『A scalable RDBMS-based inference engine for RDFS/OWL』、2007 年 10 月

http://ontolog.cim3.net/file/work/DatabaseAndOntology/2007-10-18_AlanWu/RDBMS-RDFS-OWL-InferenceEng ine--AlanWu_20071018.pdf

(8)

PelletInfGraph pelletInfGraph = new PelletInfGraph( model.getGraph(),new PelletReasoner());

上述のpelletInfGraphは、元のOracle OWLモデルに追加できます。詳細については、 OTN Semantic Technologies Webページ9のOracle Jena AdaptorのJavaコード例も参 照してください。

LUBM8000(10 億を超えるトリプル)推論ベンチマークの結果

オラクルは、次の 4 つのよく知られたベンチマークを使用した、Oracle Database 11g Release 1 OWLPrimeとRDFSのスケーラブルな推論のパフォーマンスについてすで に報告しています。UniProt、LUBM50、LUBM500、およびLUBM1000。3 つのPC システムで構成され、ギガビット・ネットワーク7,10 11, を使用しています。LUBM1000 ベンチマーク・オントロジーには、1 億 3,300 万を超えるトリプルがあります。こ のパフォーマンス・テストの目的は、10 億を超えるトリプルをもつベンチマーク LUBM8000 オントロジーに対してOWLPrimeの推論を実行して、Oracle Database 11gの推論エンジンのスケーラビリティをさらにテストすることにありました。 このパフォーマンス・テストは、ユーザーがレプリケートしやすいように構成さ れています。ハイパー・スレッド・モードで稼動している 1 基の CPU(3.0GHz) を備えた 1 台の PC から成り、3.0GB/秒の物理 SATA ハード・ディスクを 2 台搭 載しています。また、各ディスクには、500GB のデータを格納できます。メモリ のタイプは、DDR2 533(PC2 4200)デュアル・チャネル・メモリです。この PC では、最大 4GB の物理メモリを使用できます。使用しているオペレーティング・ システムは Linux 2.6.9-34.Elsmp で、Oracle Database 11g(11.1.0.6)for Linux を実 行しています。 テストは、2GBと 4GBの物理メモリ構成で 2 回おこなっています。いずれの場合 も、推論終了後に 5 億 2,170 万の新しいトリプルが生成されています。次の図 1 は、 推論の時間とメモリ量によるトレードオフを示しています。物理メモリの量を増 やせば、推論のパフォーマンスが大幅に向上することがわかります。メイン・メ モリに 2GBを加えただけで、推論時間が 88.5 時間から 56.7 時間12に短縮されてい ます。今後、より強力なハードウェアでテストをおこなえばスケーラブルなパフォー マンスが得られることが予想されます。PGA_AGGREGATE_TARGET = 2000M、 SGA_TARGET = 1256M、DB_CACHE_SIZE = 832M、SHARED_POOL_SIZE = 160M となっています。

9 http://www.oracle.com/technology/tech/semantic_technologies/sample_code/index.html 10 『The semantic web for application developers』、Oracle Open World、2007 年

http://download.oracle.com/otndocs/tech/semantic_web/pdf/oow2007_semantics_f orappdev_k.pdf

11 Why, When, and How to Use Oracle Database 11g Semantic Technologies

http://download.oracle.com/otndocs/tech/semantic_web/pdf/oow2007_semantics_techtalk_k.pdf

12 Linuxプラットフォームでは、Oracleデータベースから"Oracle process running out of OS kernel I/O

resources"エラーが表示されないようにするために、バグ修正プログラム(6687381)を適用する必要があ ります。SolarisおよびNTプラットフォームには、影響を及ぼさないようにしてください。

(9)

メモリのサイズが 4GBのときには、LARGE_POOL_SIZE = 16M、JAVA_POOL_ SIZE = 32Mに設定されています。 図1 ベンチマークLUBM800010億を超えるトリプル)でのOWLPrimeの推論のパフォー マンス 最終テストは、問合せ結果の品質を測定するために、14 の LUBM ベンチマーク問 合せを使用して実行しています。これらの問合せの実行結果が一致している数は、 ほかのベンダーから報告されている結果と一致しています。

(10)

Oracle セ マ ン テ ィ ッ ク ・ テ ク ノ ロ ジ ー の 推 論 の ベ ス ト ・ プ ラ ク テ ィ ス (RDFS/OWL)

2008 年 2 月 著者:Zhe Wu

共著者:Souripriya Das、Melli Annamalai、Chuck Murray、Bill Beauregard Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. 海外からのお問い合わせ窓口: 電話:+1.650.506.7000 ファクシミリ:+1.650.506.7200 www.oracle.com

Copyright © 2008, Oracle. All rights reserved.

本文書は情報提供のみを目的として提供されており、ここに記載される内容 は予告なく変更されることがあります。本文書は、その内容に誤りがないこ とを保証するものではなく、また、口頭による明示的保証や法律による黙示 的保証を含め、商品性ないし特定目的適合性に関する黙示的保証および条件 などのいかなる保証および条件も提供するものではありません。オラクルは 本文書に関するいかなる法的責任も明確に否認し、本文書によって直接的ま たは間接的に確立される契約義務はないものとします。本文書はオラクルの 書面による許可を前もって得ることなく、いかなる目的のためにも、電子ま たは印刷を含むいかなる形式や手段によっても再作成または送信することは できません。Oracle は米国 Oracle Corporation およびその子会社、関連会社 の登録商標です。他の製品名は、それぞれの所有者の商標です。

参照

関連したドキュメント

P‐ \ovalbox{\tt\small REJECT}根倍の不定性が生じてしまう.この他対数写像を用いた議論 (Step 1) でも 1のp‐ \ovalbox{\tt\small REJECT}根倍の不定性が

このマニュアル全体を読んで、Oracle Diagnostics Pack に同梱の Oracle Performance Manager、Oracle Capacity Planner、Oracle TopSessions および Oracle Event

この課題のパート 2 では、 Packet Tracer のシミュレーション モードを使用して、ローカル

日林誌では、内閣府や学術会議の掲げるオープンサイエンスの推進に資するため、日林誌の論 文 PDF を公開している J-STAGE

Internet Fraud by Fake Warnings 6 Business Service Outage Caused by Denial of Service Attacks Unauthorized Use of Internet Banking. Credentials 7 User Information Leakage from

Oracle の Sun Storage 16 Gb Fibre Channel PCIe Universal Host Bus Adapter (HBA) (パーツ番号 7101674) は、QLogic テクノロジを使用したスタンドアロンの PCIe ロー

平成 27

平成 27