#jena #fuseki #jena-rules
#jena #fuseki #jena-правила
Вопрос:
Я пытаюсь создать свои собственные правила свойств в Jena Fuseki. Для этого я использую Generic Rule Reasoning
, что позволяет мне использовать мои собственные правила. Когда я использую эту стратегию со своими правилами из файла, все работает нормально:
:model_inf a ja:InfModel ;
ja:baseModel :tdbGraph ;
ja:reasoner [
ja:reasonerURL <http://jena.hpl.hp.com/2003/GenericRuleReasoner> ;
ja:rulesFrom <file://...> ;
] .
Однако я бы не хотел использовать файл, а добавлял правила непосредственно в виде строки. Я попытался просто скопировать содержимое файлов правил, которые работали в приведенном выше примере, например (небольшой фрагмент файла):
#-*-mode: conf-unix-*-
@prefix time: <http://www.w3.org/2006/time#>
@include <owlmicro>
-> table(owl:sameAs).
#---------------------------------------------------------------------------
# Equality
#---------------------------------------------------------------------------
sameAs_symmetry:
(?x owl:sameAs ?y)
-> (?y owl:sameAs ?x).
sameAs_transitivity:
(?x owl:sameAs ?y)
(?y owl:sameAs ?z)
-> (?x owl:sameAs ?x).
sameAs_Thing1:
-> [(?x rdf:type owl:Thing) <- (?x owl:sameAs ?y)].
sameAs_Thing2:
-> [(?x owl:sameAs ?x) <- (?x rdf:type owl:Thing)].
и поместите это в переменную string_rules_variable
(с правильным экранированием):
:model_inf a ja:InfModel ;
ja:baseModel :tdbGraph ;
ja:reasoner [
ja:reasonerURL <http://jena.hpl.hp.com/2003/GenericRuleReasoner> ;
ja:rules [
${string_rules_variable}
] ;
] .
где ${string_rules_variable} (интерполяция строк javascript) содержит правила, считываемые из файла.
В итоге репозиторий был создан без ошибок, но правила не сработали, и owlmicro
инструкции не появились в репозитории.
Итак, я делаю что-то не так, или это проблема Jena Fuseki?
PS Я использую nodejs для отправки этого в теле post
запроса с text/turtle
типом содержимого в заголовках.