我正在尝试在 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
语句也没有出现在存储库中。
那么,我做错了什么,还是耶拿 Fuseki 问题?
PS我正在使用nodejs在标头中带有内容类型的post
请求正文中发送它。text/turtle