Rdf 使用TDB2和OWL推理机配置fuseki

Rdf 使用TDB2和OWL推理机配置fuseki,rdf,jena,owl,fuseki,Rdf,Jena,Owl,Fuseki,这里是fuseki/jena的新成员。我设法让fuseki使用tdb1与OWLFBRuleReasoner一起运行没有问题,但无法使其与tdb2()一起工作。我找不到一个同时使用TDB2和OWLFBRuleReasoner的显式配置示例,所以我只是转换了这一个(有效) @前缀:。 @前缀tdb:。 @前缀rdf:。 @前缀ja:。 @前缀rdfs:。 @前缀fuseki:。 #fuseki配置具有OWL蕴涵 #这是s-stf-gin上的配置(fuseki数据文件夹位于c:\) :service_

这里是fuseki/jena的新成员。我设法让fuseki使用tdb1与OWLFBRuleReasoner一起运行没有问题,但无法使其与tdb2()一起工作。我找不到一个同时使用TDB2和OWLFBRuleReasoner的显式配置示例,所以我只是转换了这一个(有效)

@前缀:。
@前缀tdb:。
@前缀rdf:。
@前缀ja:。
@前缀rdfs:。
@前缀fuseki:。
#fuseki配置具有OWL蕴涵
#这是s-stf-gin上的配置(fuseki数据文件夹位于c:\)
:service_tdb_all a fuseki:service;
rdfs:标签“TDB gsip”;
fuseki:dataset:tdb_dataset_readwrite;
fuseki:名称为“gsip”;
fuseki:serviceQuery“查询”、“sparql”;
fuseki:serviceReadGraphStore“获取”;
fuseki:serviceReadWriteGraphStore
“数据”;
fuseki:serviceUpdate“更新”;
fuseki:serviceUpload“上传”。
#上面,删除数据,更新并上传到prod中
:tdb_数据集_读写
a ja:RDFDataset;
rdfs:标签为“GSIP”;
ja:defaultGraph;
tdb:位置“c:\\fuseki/databases/gsip”。
a:ja模型;
ja:基本模型;
ja:推理机[
ja:ReasureUrl
] .
rdf:类型tdb:图形DB;
tdb:dataset:tdb_dataset_读写。
(这一个很好用。我用猫头鹰做了测试:属性反转)

进入这个(不起作用)

@前缀:。
@前缀tdb2:。
@前缀rdf:。
@前缀ja:。
@前缀rdfs:。
@前缀fuseki:。
:service_tdb_all a fuseki:service;
fuseki:dataset:dataset;
fuseki:名称为“gsip”;
fuseki:serviceQuery“查询”、“sparql”;
fuseki:serviceReadGraphStore“获取”;
fuseki:serviceReadWriteGraphStore“数据”;
fuseki:serviceUpdate“更新”;
fuseki:serviceUpload“上传”。
:数据集a ja:RDFDataset;
ja:defaultGraph;
tdb2:位置“c:\\fuseki/databases/gsip”
.
a:ja模型;
ja:基本模型;
ja:推理机[
ja:ReasureUrl
] .
rdf:tdb2型:图形DB;#还尝试了tdb2:GraphTDB2
tdb2:dataset:dataset。
如您所见,我基本上只是将tdb替换为tdb2(名称空间和所有)。Fuseki启动并运行良好,但OWL推理不起作用

任何人都可以向我指出相关文档/示例?或者我完全误解了TDB1和TDB2的交易

谢谢


编辑:修复了我的TDB2配置文件(仍然不工作)

以下内容对我有用:

@prefix :      <http://base/#> .
@prefix tdb:   <http://jena.hpl.hp.com/2008/tdb#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ja:    <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix fuseki: <http://jena.apache.org/fuseki#> .

:service_tdb_all  a                   fuseki:Service ;
        rdfs:label                    "TDB [MyDatasetName]" ;
        fuseki:dataset                :inferred_dataset ;
        fuseki:name                   "[MyDatasetName]" ;
        fuseki:serviceQuery           "query" , "sparql" ;
        fuseki:serviceReadGraphStore  "get" ;
        fuseki:serviceReadWriteGraphStore
                "data" ;
        fuseki:serviceUpdate          "update" ;
        fuseki:serviceUpload          "upload" .

:inferred_dataset a ja:RDFDataset ;
        ja:defaultGraph :inference_model .

:inference_model a ja:InfModel ;
        ja:baseModel :tdb_graph ;
        ja:reasoner [
                ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
        ] .

:tdb_graph a tdb:GraphTDB ;
        tdb:dataset :tdb_dataset_readwrite .

:tdb_dataset_readwrite
        a             tdb:DatasetTDB ;
        tdb:location  "[MyDatasetLocationOnDisk]" .
@前缀:。
@前缀tdb:。
@前缀rdf:。
@前缀ja:。
@前缀rdfs:。
@前缀fuseki:。
:service_tdb_all a fuseki:service;
rdfs:标签“TDB[MyDatasetName]”;
fuseki:数据集:推断的_数据集;
fuseki:name“[MyDatasetName]”;
fuseki:serviceQuery“查询”、“sparql”;
fuseki:serviceReadGraphStore“获取”;
fuseki:serviceReadWriteGraphStore
“数据”;
fuseki:serviceUpdate“更新”;
fuseki:serviceUpload“上传”。
:推断的_数据集a ja:RDFDataset;
ja:defaultGraph:Expression\u模型。
:推理\模型a ja:InfModel;
ja:baseModel:tdb_图;
ja:推理机[
ja:ReasureUrl
] .
:tdb_图形a tdb:GraphTDB;
tdb:dataset:tdb_dataset_读写。
:tdb_数据集_读写
a tdb:datasetdb;
tdb:位置“[MyDatasetLocationOnDisk]”。
与您的版本的主要区别是一个没有推断的独立数据集(而不是已经注意到的回环“Barry NL”)和tdb前缀的不同名称空间。请注意,名称空间前缀可以自由选择(它们没有语义含义),更改名称空间前缀并不重要,只要它指向相同的名称空间URL。

这是我的工作:

@前缀:。
@前缀rdf:。
@前缀tdb2:。
@前缀ja:。
@前缀rdfs:。
@前缀fuseki:。
:service_tdb_all a fuseki:service;
rdfs:标签“TDB2食品”;
fuseki:dataset:tdb_dataset_readwrite;
fuseki:名称“食品”;
fuseki:serviceQuery“查询”、“sparql”;
fuseki:serviceReadGraphStore“获取”;
fuseki:serviceReadWriteGraphStore
“数据”;
fuseki:serviceUpdate“更新”;
fuseki:serviceUpload“上传”。
:tdb_dataset_readwrite一个ja:RDFDataset;
ja:defaultGraph:modelnf;
.
:modelInf a ja:InfModel;
ja:reasoner[ja:reasonerURL];
#ja:reasoner[ja:reasonerURL;
#ja:规则来自];
ja:baseModel:gra;
.
:gra a tdb2:GraphTDB;
tdb2:位置“C:\\Users\\shaoj\\Documents\\IntelligentQA\\apache-jena-fuseki-3.8.0\\run/databases/food”;
tdb2:unionDefaultGraph true;

.
Jena邮件列表无疑是获得有用答案的更好/更快的方法。(尽管核心开发人员Andy Seaborne有时也会回答这个问题)Fuseki日志文件是否包含有用的信息?是否显示了非推断数据?我注意到您对TDB1和TDB2数据库使用相同的文件区域。TDB2不适用于TDB1数据库,也不读取它们。事实上,它的数据库由tdb2:location的子位置保存(所以TDB1数据并没有损坏-它只是被完全忽略)。数据必须单独加载到TDB2。Fuseki日志文件夹us始终为空(这是我需要解决的另一个问题),关于imcompatible TDB1和TDB2-我在测试之间清除了数据库。将尝试邮件列表。谢谢
@prefix :      <http://base/#> .
@prefix tdb2:   <http://jena.apache.org/2016/tdb#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ja:    <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix fuseki: <http://jena.apache.org/fuseki#> .

:service_tdb_all  a                   fuseki:Service ;
        fuseki:dataset                :dataset ;
        fuseki:name                   "gsip" ;
        fuseki:serviceQuery           "query" , "sparql" ;
        fuseki:serviceReadGraphStore  "get" ;
        fuseki:serviceReadWriteGraphStore "data" ;
        fuseki:serviceUpdate          "update" ;
        fuseki:serviceUpload          "upload" .

:dataset a ja:RDFDataset ;
    ja:defaultGraph       <#model_inf> ;
    tdb2:location  "c:\\fuseki/databases/gsip"
     .

<#model_inf> a ja:InfModel ;
     ja:baseModel <#graph> ;
     ja:reasoner [
         ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
     ] .

<#graph> rdf:type tdb2:GraphTDB ; # also tried tdb2:GraphTDB2
  tdb2:dataset :dataset .
@prefix :      <http://base/#> .
@prefix tdb:   <http://jena.hpl.hp.com/2008/tdb#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ja:    <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix fuseki: <http://jena.apache.org/fuseki#> .

:service_tdb_all  a                   fuseki:Service ;
        rdfs:label                    "TDB [MyDatasetName]" ;
        fuseki:dataset                :inferred_dataset ;
        fuseki:name                   "[MyDatasetName]" ;
        fuseki:serviceQuery           "query" , "sparql" ;
        fuseki:serviceReadGraphStore  "get" ;
        fuseki:serviceReadWriteGraphStore
                "data" ;
        fuseki:serviceUpdate          "update" ;
        fuseki:serviceUpload          "upload" .

:inferred_dataset a ja:RDFDataset ;
        ja:defaultGraph :inference_model .

:inference_model a ja:InfModel ;
        ja:baseModel :tdb_graph ;
        ja:reasoner [
                ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
        ] .

:tdb_graph a tdb:GraphTDB ;
        tdb:dataset :tdb_dataset_readwrite .

:tdb_dataset_readwrite
        a             tdb:DatasetTDB ;
        tdb:location  "[MyDatasetLocationOnDisk]" .