我如何在 Marklogic 中进行推断?

How do I infer in Marklogic?

我在 Marklogic 中存储了三元组。我想推断他们得到一个事实,其中描述了与其他实例有 owl:sameAs 关系的实例,通过使用具有如下 haskey 限制的 ontology。

[要推断的存储三元组]

ex:01   rdf:type ex:Student;
        foaf:name "Bill Clinton";
        ex:hasID "042".
ex:02   rdf:type ex:Student;
        foaf:name "George Walker Bush";
        ex:hasID "043".
ex:03   rdf:type ex:Student;
        foaf:name "Donald John Trump";
        ex:hasID "045".
ex:04   rdf:type ex:Student;
        foaf:name "Barack Hussein Obama II";
        ex:hasID "044".
ex:05   rdf:type ex:Student;
        foaf:name "William Jefferson Clinton";
        ex:hasID "042".
ex:06   rdf:type ex:Student;
        foaf:name "Don Trump";
        ex:hasID "045".

[Ontology]

foaf:name rdf:type owl:DatatypeProperty.
ex:hasId rdf:type owl:DatatypeProperty.
ex:Student rdf:type owl:Class ;
           owl:hasKey ( ex:hasId
                      ) .

[事实-推理的预期结果]

ex:01 owl:sameAs ex:05.
ex:03 owl:sameAs ex:06.
ex:05 owl:sameAs ex:01.
ex:06 owl:sameAs ex:03.

如何让 Marklogic 进行推断?顺带一提,我的Marklogic的版本是10.

owl:hasKey 是在 OWL 2 中引入的。MarkLogic 不提供开箱即用的 OWL 2 规则(目前)。您可以自己创建它。推理指南解释了规则在 MarkLogic 中的工作原理:

https://docs.marklogic.com/10.0/guide/semantics/inferencing#id_46963

HTH!