2.3.1 Oracle Autonomous Databaseでのセマンティク・データに関するスタート・ガイド

このチュートリアルでは、Autonomous DatabaseでRDFデータを初めて使用する場合のために簡単な方法を説明します。

各ステップで示しているSQL文は、次のいずれかのオプションを使用して実行できます。
  1. 管理権限を持つユーザーとして自律型データベースに接続し、ネットワーク所有者ユーザーを作成します。
    CREATE USER rdfuser
    IDENTIFIED BY <password-for-rdfuser>
    QUOTA 5G ON DATA;

    ノート:

    データベース・アクションを使用している場合は、新しいユーザーがデータベース・アクションにアクセスできるようにするために、ユーザーをREST対応にする必要があります。詳細は、ユーザーの作成を参照してください。
  2. 新しく作成されたネットワーク所有者ユーザーに必要な権限を付与します。
    次の文を実行するには、管理権限があるユーザーとして接続している必要があります。
    GRANT CONNECT, RESOURCE, CREATE VIEW TO rdfuser;

    ノート:

    前のステップで新しいユーザーを作成するためにデータベース・アクションを使用している場合、CONNECTおよびRESOURCE権限がデフォルトで提供されます。したがって、CREATE VIEW権限は新しいユーザーにのみ付与する必要があります。
  3. ネットワーク所有者ユーザーとして接続します。
    CONNECT rdfuser/<password-for-rdfuser>
  4. SEM_APIS.CREATE_SEM_NETWORKをコールして、セマンティク・ネットワークを作成します。

    表領域DATA上に、スキーマプライベート・ネットワークの意図した所有者としてセマンティク・ネットワークを作成する必要があります。

    次の例では、DATA表領域を使用して、ネットワーク所有者ユーザーrdfuserが所有するnet1というスキーマプライベート・セマンティク・ネットワークを作成します。

    EXECUTE SEM_APIS.CREATE_SEM_NETWORK('DATA', network_owner=>'rdfuser', network_name=>'net1');
  5. SEM_APIS.CREATE_SEM_MODELをコールしてモデルを作成します。
    次の例では、net1スキーマプライベート・ネットワークにarticlesというモデルを作成します。
    EXECUTE SEM_APIS.CREATE_SEM_MODEL('articles', NULL, NULL, network_owner=>'rdfuser', network_name=>'net1');
    
  6. 次のいずれかのオプションを使用して、モデルにトリプルを挿入します。
    • SEM_APIS.UPDATE_MODELプロシージャを使用してデータを挿入します。

      ノート:

      共有デプロイメントでAutonomous Databaseインスタンスを使用している場合、SEM_APIS.UPDATE_MODEL関数には、Oracle JVMの有効化が必要です。Autonomous DatabaseインスタンスでOracle JVMを有効にするには、Oracle Javaの使用を参照してください。

      セマンティク・データの例(PL/SQLおよびJava)で示しているように、SEM_APIS.UPDATE_MODELを使用してモデルにトリプルを挿入できます。

    • SQLのINSERT文を使用してデータを挿入します。

      たとえば、次のようにします。

      INSERT INTO rdfuser.net1#rdft_articles(triple) VALUES (
        SDO_RDF_TRIPLE_S ('articles','<http://nature.example.com/Article1>',
          '<http://purl.org/dc/elements/1.1/title>','"All about XYZ"',
          network_owner=>'RDFUSER', network_name=>'NET1'));
      
      INSERT INTO rdfuser.net1#rdft_articles(triple) VALUES (
        SDO_RDF_TRIPLE_S ('articles','<http://nature.example.com/Article1>',
          '<http://purl.org/dc/elements/1.1/creator>','"Jane Smith"',
          network_owner=>'RDFUSER', network_name=>'NET1'));
      
      INSERT INTO rdfuser.net1#rdft_articles(triple) VALUES (
        SDO_RDF_TRIPLE_S ('articles',
          '<http://nature.example.com/Article1>',
          '<http://purl.org/dc/terms/references>',
          '<http://nature.example.com/Article2>',
          network_owner=>'RDFUSER', network_name=>'NET1'));
      
      INSERT INTO rdfuser.net1#rdft_articles(triple) VALUES (
        SDO_RDF_TRIPLE_S ('articles','<http://nature.example.com/Article2>',
          '<http://purl.org/dc/elements/1.1/title>','"A review of ABC"',
          network_owner=>'RDFUSER', network_name=>'NET1'));
      
      INSERT INTO rdfuser.net1#rdft_articles(triple) VALUES (
        SDO_RDF_TRIPLE_S ('articles','<http://nature.example.com/Article2>',
          '<http://purl.org/dc/elements/1.1/creator>','"Joe Bloggs"',
          network_owner=>'RDFUSER', network_name=>'NET1'));
      
      INSERT INTO rdfuser.net1#rdft_articles(triple) VALUES (
        SDO_RDF_TRIPLE_S ('articles',
          '<http://nature.example.com/Article2>',
          '<http://purl.org/dc/terms/references>',
          '<http://nature.example.com/Article3>',
          network_owner=>'RDFUSER', network_name=>'NET1'));
  7. 必要に応じて、次のいずれかのオプションを使用して、挿入したデータに対してSPARQL問合せを実行します。
    • SEM_MATCH表関数を使用したセマンティク・データの問合せ:

      ノート:

      共有デプロイメントでAutonomous Databaseインスタンスを使用している場合、SEM_MATCH表関数には、Oracle JVMの有効化が必要です。Autonomous DatabaseインスタンスでOracle JVMを有効にするには、Oracle Javaの使用を参照してください。

      セマンティク・データの例(PL/SQLおよびJava)で示しているように、SEM_MATCH表関数を使用して、挿入したトリプル・データを問合せできます。

    • RDFグラフ・サーバーおよび問合せUIを使用したセマンティク・データの問合せ:

      RDF問合せUIアプリケーションを起動するには、Oracle Cloud MarketplaceからのRDFグラフ・サーバーおよび問合せUIのデプロイを参照してください。

      挿入されたデータを問い合せるには、RDFグラフ問合せUIのSPARQL問合せページでSPARQL問合せを実行します。

      図2-1 RDFグラフ問合せUIでのSPARQL問合せの実行

      RDF問合せUIでのSPARQL問合せの実行
    • SQL DeveloperでのSPARQLエディタを使用した問合せ:

      SQL Developerで、SPARQLエディタを使用してSPARQL問合せを実行することもできます。

      ノート:

      共有デプロイメントでのAutonomous Databaseインスタンス上のSQL Developerが21.2より前のバージョンである場合は、Oracle JVMの有効化が必要です。Autonomous DatabaseインスタンスでOracle JVMを有効にするには、Oracle Javaの使用を参照してください。

      クラウド・ウォレットを使用して自律型データベースへの接続を作成するには、Oracle SQL Developerとの接続を参照してください。