1

Jenna TDB と Fuseki は初めてです。Lehigh University Benchmark (LUBM) データジェネレーター (ver.1.7) で生成されたデータを Fuseki にロードしたいと考えています。これは約 400 個の .owl ファイルです。推論のためにFusekiに付属する次の構成ファイルを使用しました。

<#service1>  rdf:type fuseki:Service ;
    fuseki:name              "inf" ;             # http://host/inf
    fuseki:serviceQuery      "sparql" ;          # SPARQL query service
    #fuseki:serviceUpdate     "update" ;
    fuseki:serviceReadWriteGraphStore      "data" ;
    # A separate read-only graph store endpoint:
    fuseki:serviceReadGraphStore       "get" ;
    fuseki:dataset           <#dataset> ;
    .

<#dataset> rdf:type       ja:RDFDataset ;
    ja:defaultGraph       <#model_inf> ;
    .

<#model_inf> a ja:InfModel ;
     ja:baseModel <#tdbGraph> ;
     ja:reasoner [
         ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
     ] .

<#tdbDataset> rdf:type tdb:DatasetTDB ;
    tdb:location "myDB" ;
    tdb:unionDefaultGraph true ;
    .

<#tdbGraph> rdf:type tdb:GraphTDB ;
    tdb:dataset <#tdbDataset> .

伏石は問題なくスタート。ただし、次のコマンドを実行すると:

./s-put http://localhost:3030/inf/data default ~/Owl/univ-bench.owl

エラーが発生します:405 HTTP method PUT is not supported by this URL http://localhost:3030/inf/data?default

いくつか質問があります:

1.構成ファイルの更新が明らかに無効になっていないのに、なぜこのメッセージが表示されるのですか? 2.400 個の .owl ファイルすべてを 1 つのグラフとしてロードするには、更新を無効にして有効にする必要があるようtdb:unionDefaultGraph trueです (これは、Fuseki に付属の構成ファイルに記載されています)。データを伏石に渡す。ここで何が欠けているのか、これを正しく行う方法を教えてください。

助けてくれてありがとう。

編集:以下を追加する必要があることがわかりました:

fuseki:serviceReadWriteGraphStore      "data" ;
# A separate read-only graph store endpoint:
fuseki:serviceReadGraphStore       "get" ;

を使用してデータをロードできるようにするためs-putですが、新しいファイルを追加するたびに、前のファイルのデータが上書きされるため、推論が機能しません。ここで何が間違っていましたか?すべてのファイルが同じグラフにロードされ、推論が機能するように、データを正しくロードするにはどうすればよいですか?

編集 この問題をさらに掘り下げて、データをロードするには2つの方法があることがわかりました。

  1. 構成ファイルでモデルを定義する場所に次を追加できます。

    ja:content [ja:externalContent <file://// Path_to_owl_file >] ;

    だから私はそれを下に追加しました<#model_inf> a ja:InfModel ;が、400個のファイルがあると本当に面倒です。

  2. を使用してデータを個別にロードし、tdbloader2構成ファイルを tdbload がデータベースとして構築するディレクトリにポイントすることができます。ここでも説明されています

    $ tdbloader2 --loc tdb PATH_TO_DIR_or_OWL_Files

現在の問題は、たとえば次のクエリなどの単純なクエリを実行すると、メモリ不足エラーが発生することです。

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>  
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>   
PREFIX ub: <http://cs.uga.edu#>  
SELECT *  
WHERE 
{
    ?X rdf:type ub:GraduateStudent . 
    ?X ub:takesCourse <http://www.Department0.University0.edu/GraduateCourse0>
}

Fuseki-Server (サーバー スクリプト内) のメモリを最大 5 GB に増やしましたが、この単純なクエリでメモリ不足エラーが発生します。なぜそれが起こっているのでしょうか?

4

1 に答える 1

0

s-put は PUT を実行します。これは、「コンテンツの置換」として定義されています。

s-post を使用してグラフに追加します。

LUBM は構造が単純であり、(1) あまり現実的ではないこと、(2) 推論は各大学だけに適用でき、データが読み込まれるため、クエリ時にすべてが拡張されています。

于 2014-07-02T21:37:46.940 に答える