0

librdf_model_add はステートメントをハッシュストレージに書き込んでいますか?

それらを取得するためにsparqlクエリを実行するのに問題があります。db ファイルは、ファイル サイズが増加し続けるにつれておそらく読み込まれますが、それらに対して sparql クエリを実行しようとすると、結果が得られないようです。クエリを発行する前に、ステートメントをストレージからモデルに手動でロードする必要がありますか?

クエリを発行するステートメント

$query = librdf_new_query(
    $world,
    'sparql',
    NULL,
<<<SPARQL
PREFIX sensei: <http://coolsilon.com/flickr_schema/>
SELECT  ?a ?c
WHERE   {?a ?b ?c}
SPARQL
    ,
    NULL
);
$result = librdf_query_execute($query, $model);
var_dump(librdf_query_results_get_count($result)); // returns 0

私は PHP (5.3.5) 言語バインディングを使用しています。レッドランド バージョンは 1.0.12 で、Ubuntu Natty で実行されています。

p/s: postgresql ストレージで再度確認したところ、上記のコードが機能しました:/

4

1 に答える 1

1

これは、セマンティック オーバーフローまたは redland-dev リストで尋ねたほうがよいでしょう。

最も可能性が高いのは、モデルにデータがないことです。

一部の librdf 関数を使用してモデルを出力するか、シリアライザーを使用します。

https://github.com/dajobe/redland-bindings/tree/master/phptest.phpのポインタを試してみてください

于 2011-05-04T18:02:50.387 に答える