Почему запрос модели не возвращает результаты запроса? (CLJ-площадь) - PullRequest
1 голос
/ 01 февраля 2011

Я использую clj-plaza (0.0.5-SNAPSHOT) для запроса модели кунжут / Джена.Функция 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)
=> clojure.lang.LazySeq@2e1e8502

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

Официальный учебник утверждений model-query возвращает список привязок из запроса:

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

1 Ответ

1 голос
/ 03 февраля 2011

Это ошибка.

Вот исправление .Пока он не объединен и не обновлен на clojars, не стесняйтесь использовать мой fork .

Обходной путь будет использовать (query model query) (вместо model-query) после импорта соответствующей Jenaили реализация кунжута.

для кунжута:

(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>} ...
...