2011-02-01 12 views
1

セサミ/イエナモデルを照会するのにclj-plaza(0.0.5-SNAPSHOT)を使用しています。関数model-queryは、クエリを実行するようには見えません。代わりにclj-plazaクエリの内部表現が返されます。クエリからのバインディングのリストを返しますmodel-queryなぜモデルクエリはクエリ結果を返しませんか? (clj-plaza)

(init-jena-framework) 
(def *m* (build-model)) 

(with-model *m* 
(model-add-triples 
    (model-to-triples 
    (document-to-model "http://www.rdfdata.org/dat/rdfdata.rdf" 
         :rdf)))) 

(def all-subjects-query 
(defquery 
    (query-set-vars [:?subject]) 
    (query-set-pattern (make-pattern [[:?subject ?p ?o]])) 
    (query-set-type :select)) 

;; As expected 
(model-query-triples *m* all-subjects-query) 
=> [email protected] 

;; Does not execute query (?) 
(model-query *m* all-subjects-query) 
=> {:kind :select, :pattern [[:?object :?p :?o]], :vars [:?object]} 

公式tutorial請求:

({:?object "http://randomurl.com/asdf"} 
{:?object "http://asdf.com/qwer"}) 
+0

二本!私は[github](https://github.com/antoniogarrote/clj-plaza/issues)の問題をオープンしましたが、返信はありません。 – Nevena

答えて

1

これはバグです。

ここにはfixがあります。それが元に戻ってクロージャーで更新されるまで、私のforkを自由に使用してください。

対応するJenaまたはSesameのインプリメンテーションをインポートした後に、(query model query)model-queryではなく)を使用することを回避することができます。ごまのために

(use 'plaza.rdf.implementations.sesame) 
(init-sesame-framework) 
(def *m* (build-model)) 

(with-model *m* 
(model-add-triples 
    (model-to-triples 
    (document-to-model "http://www.rdfdata.org/dat/rdfdata.rdf" 
         :rdf)))) 

(def all-subjects-query 
(defquery 
    (query-set-vars [:?subject]) 
    (query-set-pattern (make-pattern [[:?subject ?p ?o]])) 
    (query-set-type :select)) 

(query *m* all-subjects-query) 

=> [{:?s #<SesameResource http://www.rdfdata.org/dat/rdfdata.rdf>} 
{:?s #<SesameResource http://www.rdfdata.org/dat/rdfdata.rdf>} 
{:?s #<SesameResource http://www.rdfdata.org/dat/rdfdata.rdf>} 
{:?s #<SesameResource http://www.rdfdata.org/dat/rdfdata.rdf>} 
{:?s #<SesameResource http://rdfweb.org/topic/FOAFBulletinBoard>} 
{:?s #<SesameResource http://rdfweb.org/topic/FOAFBulletinBoard>} ... 
+0

根本的な原因を見つけようとしています。 – Ambrose

関連する問題