Выполните INSERT в Jena Fuseki с помощью SPARQL gem (Ruby)
Поэтому я разрабатываю API в Rails и использую Jena Fuseki для хранения троек, и сейчас я пытаюсь выполнить INSERT в именованном графе. Запрос правильный, так как я запустил его на Йене и работал отлично. Однако независимо от того, что я делаю при использовании Rails CLI, я получаю одно и то же сообщение об ошибке:
SPARQL::Client::MalformedQuery: Error 400: SPARQL Update: No 'update=' parameter
Я создал метод, который берет параметры объекта, который я пытаюсь вставить, и указал график, где я хочу их.
def self.insert_taxon(uri, label, comment, subclass_of)
endpoint = SPARQL::Client.new("http://app.talkiu.com:8030/talkiutest/update")
query =
"PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix gpc:<http://www.ebusiness-unibw.org/ontologies/pcs2owl/gpc/>
prefix tk: <www.web-experto.com.ar/ontology#>
INSERT DATA {
GRAPH <http://app.talkiu.com:8030/talkiutest/data/talkiu> {
<#{uri}> a owl:Class.
<#{uri}> rdfs:label '#{label}'@es .
<#{uri}> rdfs:comment '#{comment}' .
<#{uri}> rdfs:subClassOf <#{subclass_of}> .
}
}"
resultset = endpoint.query(query)
end
Как видите, я использую конечную точку UPDATE. Есть идеи? заранее спасибо
1 ответ
Решение
Ну... вместо endpoint.query я попробовал
resultset = endpoint.update(query)
и работал. Метод вернулся
<SPARQL::Client:0x2b0158a050e4(http://app.talkiu.com:8030/talkiutest/update)>
и данные отображаются в моей базе данных и графике. Надеюсь, что это помогает любому с той же проблемой.