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つの方法があることがわかりました。
構成ファイルでモデルを定義する場所に次を追加できます。
ja:content [ja:externalContent <file://// Path_to_owl_file >] ;
だから私はそれを下に追加しました
<#model_inf> a ja:InfModel ;
が、400個のファイルがあると本当に面倒です。を使用してデータを個別にロードし、
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 に増やしましたが、この単純なクエリでメモリ不足エラーが発生します。なぜそれが起こっているのでしょうか?