【问题标题】:Can Fuseki both use OWL resoner and rule reasonerFuseki 可以同时使用 OWL 共振器和规则推理器吗
【发布时间】:2020-03-26 11:22:23
【问题描述】:

我正在使用 Jena Fuseki 加载 Jena TDB 文件以构建 SPARQL 服务。 fuseki reasoner 配置如下:

<#inf_model> a ja:InfModel ;
    ja:baseModel <#union_model>;
    ja:reasoner [ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLMicroFBRuleReasoner>] ;

现在,我还想为 Fuseki 服务器编写一些规则并设置通用规则推理器。我应该如何配置 Fuseki 以结合 OWL 推理器和通用规则推理器?

我尝试了以下配置:

<#inf_model> a ja:InfModel ;
    ja:baseModel <#union_model>;
    ja:reasoner [ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLMicroFBRuleReasoner>] ;

    ja:reasoner [
        ja:reasonerURL <http://jena.hpl.hp.com/2003/GenericRuleReasoner> ; 
        ja:rulesFrom <file://D:/Program%20Files/apache-jena-fuseki-3.13.1/run/rule.ttl>; ]

但它失败了

...multiple values for the unique property http://jena.hpl.hp.com/2005/11/Assembler#reasoner

Fuseki 可以有多个推理者吗?

【问题讨论】:

    标签: rdf jena semantic-web ontology tdb


    【解决方案1】:

    inference documentation 有一个名为“将 RDFS/OWL 与自定义规则相结合”的部分。他们提出的第一个建议是“使用另一个 InfModel 作为基础数据构建一个 InfModel。”

    他们没有给出示例,但基于此,我能够让以下工作:

    config:dataset a ja:RDFDataset ;
        ja:defaultGraph       <#model_inf2> ;
         .
    
    <#model_inf2> a ja:InfModel ;
         ja:baseModel <#model_inf1> ;
    
         ja:reasoner [
            ja:rulesFrom <file:/my-rules.rules> ;
            ja:reasonerURL <http://jena.hpl.hp.com/2003/GenericRuleReasoner>
         ] .
    
    <#model_inf1> a ja:InfModel ;
         ja:baseModel <#graph> ;
         ja:reasoner [
            ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
         ] .
    
    <#graph> rdf:type tdb:GraphTDB ;
      tdb:dataset config:tdb_dataset_readwrite .
    
    config:tdb_dataset_readwrite
            a             tdb:DatasetTDB ;
            tdb:location  "<path-to-tbd-dataset>"
            .
    

    【讨论】:

      【解决方案2】:

      您可以使用 GenericRuleReasoner 使用文件中的规则,并使用 (@include) 在规则文件中包含其他推理器,例如(使用 OWLMicroFBRuleReasoner):

      @prefix ex: http://ex.org/
      @prefix foaf: http://xmlns.com/foaf/0.1/
      @include <owlmicro>
      
      # Some rule:
      (?s ?p ?o) -> (?o ?p ?s) .
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多