13.1 データ・ソース

データ・ソースはRDFオブジェクトのリポジトリです。

データ・ソースは、Oracleデータベース、またはDbpediaやJena Apache FusekiなどのエンドポイントURLからアクセスできる外部RDFサービスを参照できます。データ・ソースは、汎用および特定のパラメータで定義できます。汎用パラメータには、名前、タイプおよび説明があります。特定のパラメータは、JDBCプロパティ(データベース・データ・ソースの場合)およびエンドポイント・ベースURL (外部データ・ソースの場合)です。

13.1.1 Oracleデータ・ソース

Oracleデータ・ソースはJDBC接続を使用して定義されます。次の3つのタイプのOracle JDBCデータ・ソースを定義できます:

  • SIDまたはサービス名、ホスト、ポートおよびユーザー資格証明を含む標準のOracle JDBCパラメータを含むJDBC URLデータ・ソース。
  • アプリケーション・サーバー(WebLogic、Tomcatなど).内で定義できるコンテナJDBCデータ・ソース
  • データベース接続の確立に必要なファイルを含むOracleウォレット・データ・ソース

Oracleデータベース・データ・ソースを定義するパラメータは次のとおりです。

  • name: データ・ソースの汎用名。
  • type: データ・ソースのタイプ。データベースの場合はDATABASEである必要があります。
  • description (オプション): データ・ソースの一般的な説明。
  • properties: データ・ソース・プロパティの値を持つ特定のマッピング・パラメータ:
    • JDBC URLの場合:
      • データベースSIDまたはサービス名
      • ホスト・マシン
      • データベース・リスニング・ポート
      • ユーザー名およびパスワード資格証明
    • コンテナ・データ・ソースの場合:
      • JNDI名 - Java naming and directory interface (JNDI)名
    • ウォレット・データ・ソースの場合:
      • ウォレット・サービスを説明する文字列
      • ユーザー名およびパスワード資格証明(ユーザー資格証明がウォレットに格納されていない場合は必須)
      • オプションのプロキシ詳細

      クラウド・ウォレットの場合、通常は tnsnames.oraファイルに格納される名ですが、単純なウォレットの場合は、ホストポートおよびサービス名の情報が含まれます。

次の例は、JDBC URLデータ・ソースのJSON表現を示しています。

{
    "name" : "rdfuser_jdbc_sid",
    "type" : "DATABASE",
    "description" : "",
    "properties" : {
	"host" : "127.0.0.1"	 
	"sid" : "orcl193"
	"port" : "1524",
	"user" : "rdfuser",
        "password" : "<password>"      
    }
}

次の例は、コンテナ・データ・ソースのJSON表現を示しています。


{
   "name": "rdfuser_ds_ct",
   "type": "DATABASE",
   "description": "Database Container connection",
   "properties": {
       "jndiName": "jdbc/RDFUSER193c"
   }
}

次の例は、資格証明がウォレットに格納されているウォレット・データ・ソースのJSON表現を示しています:


{
   "name": "rdfuser_ds_wallet",
   "type": "DATABASE",
   "description": "Database wallet connection",
   "properties": {
       "walletService": "db202002041627_medium"
   }
}

13.1.2 エンドポイントURLデータ・ソース

外部RDFデータ・ソースは、エンドポイントURLを使用して定義されます。通常、各RDFストアには、SPARQL問合せおよびSPARQL更新を受け入れる汎用URLがあります。RDFストア・サービスによっては、使用可能なデータセットを取得する機能リクエストも提供される場合があります。

表13-1 外部データ・ソースのパラメータ

パラメータ 説明

name

データ・ソースの汎用名。

type

データ・ソースのタイプ。外部データ・ソースの場合、タイプはENDPOINTである必要があります。

description

データ・ソースの一般的な説明。

properties

データ・ソース・プロパティの値を持つ特定のマッピング・パラメータ:

  • ベースURL: RDFストアにSPARQL問合せを発行するベースURL。これはデフォルトのURLです。
  • クエリーURL (オプション): SPARQL問合せを実行するURL。定義されている場合は、ベースURL値が上書きされます。
  • 更新URL (オプション): SPARQL更新を実行するURL。定義されている場合は、ベースURL値が上書きされます。
  • 機能(オプション): 一部のRDFストア(Apache Jena Fusekiなど)では、サービスで使用可能なデータセットを返す機能URLが提供される場合があります。この場合、JSONレスポンスが必要です。
  • 取得URL: 機能URLの取得。
  • データセット・パラメータ: RDFデータセット情報を含むJSONパラメータを定義します。
  • データセット・パラメータ名: RDFデータセット名を含むJSONパラメータを定義します。

次の例は、Dbpedia外部データ・ソースのJSON表現を示しています。

{
  "name": "dbpedia",
  "type": "ENDPOINT",
  "description": "Dbpedia RDF data - Dbpedia.org",
  "properties": {
      "baseUrl": "http://dbpedia.org/sparql",
      "provider": "Dbpedia"
   }
}

次の例に、Apache Jena Fuseki外部データ・ソースのJSON表現を示します。${DATASET}は、実行時にFusekiデータセット名に置き換えられるパラメータです。

{
    "name": "Fuseki",
    "type": "ENDPOINT",
    "description": "Jena Fuseki server",
    "properties": {
      "queryUrl": "http://localhost:8080/fuseki/${DATASET}/query",
      "baseUrl": "http://localhost:8080/fuseki",
      "capabilities": {
        "getUrl": "http://localhost:8080/fuseki/$/server",
        "datasetsParam": "datasets",
        "datasetNameParam": "ds.name"
      },
      "provider": "Apache",
      "updateUrl": "http://localhost:8080/fuseki/${DATASET}/update"
    }
}