首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fuseki reasoner不推断数据(int)范围类

Fuseki reasoner不推断数据(int)范围类
EN

Stack Overflow用户
提问于 2016-03-30 11:30:52
回答 1查看 227关注 0票数 2

为了向您展示问题(这是一个bug),我创建了一个最小的示例:

这是我的最低本体论

代码语言:javascript
复制
@prefix : <http://www.test.com/ts#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://www.test.com/ts> a owl:Ontology .
# 
# 
# #################################################################
# #
# #    Object Properties
# #
# #################################################################
# 
# 
# http://www.test.com/ts#hasSex

:hasSex a owl:ObjectProperty , owl:FunctionalProperty ;
    rdfs:range :Sex .
# 
# 
# 
# #################################################################
# #
# #    Data properties
# #
# #################################################################
# 
# 
# http://www.test.com/ts#hasAge

:hasAge a owl:DatatypeProperty , owl:FunctionalProperty ;
    rdfs:range xsd:int .
# 
# 
# 
# #################################################################
# #
# #    Classes
# #
# #################################################################
# 
# 
# http://www.test.com/ts#FemaleUser

:FemaleUser a owl:Class ;
    owl:equivalentClass _:genid1 .

_:genid1 owl:intersectionOf _:genid4 .

_:genid4 a rdf:List ;
    rdf:first :User ;
    rdf:rest _:genid2 .

_:genid2 a rdf:List ;
    rdf:first _:genid3 .

_:genid3 a owl:Restriction ;
    owl:onProperty :hasSex ;
    owl:hasValue :female .

_:genid2 rdf:rest rdf:nil .

_:genid1 a owl:Class .
# 
# http://www.test.com/ts#MatureUser

:MatureUser a owl:Class ;
    owl:equivalentClass _:genid5 .

_:genid5 owl:intersectionOf _:genid11 .

_:genid11 a rdf:List ;
    rdf:first :User ;
    rdf:rest _:genid6 .

_:genid6 a rdf:List ;
    rdf:first _:genid7 .

_:genid7 a owl:Restriction ;
    owl:onProperty :hasAge ;
    owl:someValuesFrom _:genid8 .

_:genid8 a rdfs:Datatype ;
    owl:onDatatype xsd:int ;
    owl:withRestrictions _:genid9 .

_:genid9 a rdf:List ;
    rdf:first _:genid10 .

_:genid10 xsd:minInclusive "16"^^xsd:int .

_:genid9 rdf:rest rdf:nil .

_:genid6 rdf:rest rdf:nil .

_:genid5 a owl:Class .
# 
# http://www.test.com/ts#Sex

:Sex a owl:Class .
# 
# http://www.test.com/ts#User

:User a owl:Class .
# 
# 
# 
# #################################################################
# #
# #    Individuals
# #
# #################################################################
# 
# 
# http://www.test.com/ts#ania

:ania a owl:NamedIndividual , :User ;
    :hasSex :female ;
    :hasAge "18"^^xsd:int .
# 
# http://www.test.com/ts#female

:female a owl:NamedIndividual , :Sex .
# 
# http://www.test.com/ts#male

:male a owl:NamedIndividual , :Sex .
# 
# Generated by the OWL API (version 4.1.3.20151118-2017) https://github.com/owlcs/owlapi

有两类:

一个MatureUser ( hasAge超过16年的用户)和FemaleUser (作为女性的hasSex用户)

来自抗议者的截图:

你可以看到,抗议者推断:ania既是女性的,也是成熟的用户,然而,fuseki只是推断:ania是雌性的,但不是成熟的。

更新

我还试着用这两种形式来做我的等价类。

用户和hasAge一些xsd:int>=“16”^xsd:int

用户和hasAge的一些xsd:int>=16

但同样的结果,这是被抗议者正确推断,而毛皮不是。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-30 13:15:57

与耶拿一起提供的猫头鹰推理在逻辑上是不完整的;这意味着(从设计上)有猫头鹰的推论,他们不会推断。蛋白酶中可用的OWL推理器在逻辑上应该是完整的;这意味着它们应该产生所有包含的公理。

在这种情况下,Jena的OWL推理器根本不进行数据类型推理。这意味着他们不会真的对xsd:int>= 16类型做任何事情。在这种情况下,这不仅仅是耶拿的猫头鹰推理不完整的问题,也是耶拿的猫头鹰推理是针对OWL 1的,但是数据类型方面的推理是OWL 2的一部分,而Jena并不完全支持这一点。例如,参见2013年耶拿用户邮件列表中的这个关于数据类型限制的线程。戴夫·雷诺兹回答了一个类似于你的问题:

Datatype方面是OWL 2,Jena只支持OWL 1。 它可能是可能使用第三方的理由,如小球提供一些猫头鹰2的能力。

在文档中明确提到了Jena对OWL2的不支持。有一个OWL2词汇表类,它只定义了在OWL2中使用的IRI,它的JavaDoc包括(强调后加):

OWL2词汇注意:Jena不提供OWL2推理或OntModel支持。提供这些常量是为了方便正在使用当前的OWL1支持执行OWL2工作的用户,并且需要一组合适的名称。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36307515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档