1

我正在尝试在 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

4

0 回答 0