この章では、Oracle NoSQL Databaseにおけるセマンティック・テクノロジのサポート、具体的にはWorldwide Web Consortium (W3C)のResource Description Framework (RDF)、SPARQL問合せ言語、およびWeb Ontology Language (OWL)のサブセットについて説明します。これらの機能を総称して、Oracle NoSQL Database Enterprise EditionのRDFグラフ機能と呼びます。
この章では、読者がRDFおよびOWLに関連する主な概念、たとえば{主語, 述語, 目的語}
のトリプル、URI、空白ノード、プレーン・リテラルと型付きリテラル、オントロジなどを十分に理解していることを前提とします。また、Apache Jena Javaフレームワークの全体的な機能と使用方法について慣れていることも前提としています。この章では、これらの概念については詳細な説明を省くかわりに、それぞれの概念がOracle NoSQL Databaseでどのように実装されているかを重点的に解説します。
RDFの概念に関するわかりやすい説明は、World Wide Web Consortium (W3C)の『RDF Primer』(http://www.w3.org/TR/rdf-primer/)を参照してください。
OWLの詳細は、『OWL Web Ontology Language Reference』(http://www.w3.org/TR/owl-ref/)を参照してください。
RDFグラフの機能として、Oracle NoSQL Databaseでセマンティック・データを格納し問い合せるJavaベースのインタフェースがあります。そのために、よく知られているApache JenaのGraph、ModelおよびDatasetGraphの各APIが実装されています。Apache Jenaはオープンソースのフレームワークです。ライセンスと著作権条件については、http://www.apache.org/licencesを参照してください。
Apache JenaのGraphおよびModelのAPIは、グラフ・データ(トリプルと呼ばれます)の管理に使用されます。DatasetGraph APIは、名前付きグラフ・データ(クワッドと呼ばれます)の管理に使用されます。
RDFグラフ機能は、Apache Jena Josekiを使用したSPARQLエンドポイントWebサービスの作成をサポートしています。Apache Jena Josekiは、SPARQLプロトコルとSPARQL問合せをサポートするオープンソースのSPARQLサーバーです。「前提条件となるソフトウェア」で説明されているように、Apache Jena、Apache Jena ARQおよびApache Jena JosekiはRDFグラフ機能に含まれています。
Apache Jenaフレームワークの詳細は、http://jena.apache.org/、特にApache Jenaドキュメントのページを参照してください。
Oracle NoSQL Databaseでは、セマンティック・データおよびオントロジの格納と、セマンティック・データの問合せが可能であり、推論を利用してセマンティック・データに対する問合せの能力を拡張できます。これらの機能の相互関係は、次の図のとおりです。
次の図に、NoSQL Databaseと、Webサーバー上で稼働するRDFグラフ・クライアントとの関係を示します。
この図でわかるように、データベースにはセマンティック・データとオントロジ(RDF/OWLモデル)と、従来型のキー/値データが格納されています。RDFデータをロードするにはバルク・ロードが最も効率的ですが、Apache Jena APIを使用して増分的にロードすることもできます。
セマンティック・データとオントロジを問い合せる機能があります。セマンティック・データに対する問合せは、ルールベースのルールを使用する推論を利用して拡張できます。推論とは、データとルールに基づく論理的な演繹です。ルールとルールベースを使用する推論の詳細は、「RDFグラフに対する推論」を参照してください。