Я использую Jena Fuseki для загрузки файла Jena TDB для создания службы SPARQL. Конфигурация логического устройства fuseki имеет следующее:
<#inf_model> a ja:InfModel ; ja:baseModel <#union_model>; ja:reasoner [ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLMicroFBRuleReasoner>] ;
Теперь я также хочу написать некоторые правила и установить общий логический оператор c для сервера Fuseki. Как мне сконфигурировать Fuseki, чтобы он сочетал в себе и OWL-рассуждение, и обобщенный c правило?
Я попробовал следующую конфигурацию:
<#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 иметь более одного логика?
Документация содержит раздел под названием "Объединение 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>" .