首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从HermiT输出中确定问题在本体中的位置

如何从HermiT输出中确定问题在本体中的位置
EN

Stack Overflow用户
提问于 2020-10-27 13:49:25
回答 1查看 31关注 0票数 1

我在门徒方面是个新手。我已经能够运行一些示例,比如pizza.owltravel.owl。然后我打开了别人创建的本体,当我运行HermiT推理器时,我得到了以下错误:

代码语言:javascript
复制
An error occurred during reasoning: String '^(\(?\+?[0-9]*\)?)?[ \.\-])?(\(?[0-9]*\)?)?[0-9A-Z \.\-\(\)]*((x|ext|extension)? ?[0-9]*)?$' in the datatype restriction org.semanticweb.HermiT.datatypes.rdfplainliteral.RDFPlainLiteralDatatypeHandler@64cf23b2 is not a valid regular expression..
org.semanticweb.HermiT.datatypes.UnsupportedFacetException: String '^(\(?\+?[0-9]*\)?)?[ \.\-])?(\(?[0-9]*\)?)?[0-9A-Z \.\-\(\)]*((x|ext|extension)? ?[0-9]*)?$' in the datatype restriction org.semanticweb.HermiT.datatypes.rdfplainliteral.RDFPlainLiteralDatatypeHandler@64cf23b2 is not a valid regular expression.
    at org.semanticweb.HermiT.datatypes.rdfplainliteral.RDFPlainLiteralDatatypeHandler.validateDatatypeRestriction(RDFPlainLiteralDatatypeHandler.java:126) ~[na:na]
    at org.semanticweb.HermiT.datatypes.DatatypeRegistry.validateDatatypeRestriction(DatatypeRegistry.java:113) ~[na:na]
    at org.semanticweb.HermiT.structural.OWLClausification$DataRangeConverter.visit(OWLClausification.java:880) ~[na:na]
    at uk.ac.manchester.cs.owl.owlapi.OWLDatatypeRestrictionImpl.accept(OWLDatatypeRestrictionImpl.java:136) ~[na:na]
    at org.semanticweb.HermiT.structural.OWLClausification$DataRangeConverter.convertDataRange(OWLClausification.java:820) ~[na:na]
    at org.semanticweb.HermiT.structural.OWLClausification$NormalizedAxiomClausifier.visit(OWLClausification.java:647) ~[na:na]
    at uk.ac.manchester.cs.owl.owlapi.OWLDataAllValuesFromImpl.accept(OWLDataAllValuesFromImpl.java:82) ~[na:na]
    at org.semanticweb.HermiT.structural.OWLClausification.clausify(OWLClausification.java:235) ~[na:na]
    at org.semanticweb.HermiT.structural.OWLClausification.preprocessAndClausify(OWLClausification.java:165) ~[na:na]
    at org.semanticweb.HermiT.Reasoner.loadOntology(Reasoner.java:211) ~[na:na]
    at org.semanticweb.HermiT.Reasoner.<init>(Reasoner.java:202) ~[na:na]
    at org.semanticweb.HermiT.Reasoner.<init>(Reasoner.java:176) ~[na:na]
    at org.semanticweb.HermiT.ReasonerFactory.createHermiTOWLReasoner(ReasonerFactory.java:51) ~[na:na]
    at org.semanticweb.HermiT.ReasonerFactory.createReasoner(ReasonerFactory.java:19) ~[na:na]
    at org.protege.editor.owl.model.inference.ReasonerUtilities.createReasoner(ReasonerUtilities.java:20) ~[na:na]
    at org.protege.editor.owl.model.inference.OWLReasonerManagerImpl$ClassificationRunner.ensureRunningReasonerInitialized(OWLReasonerManagerImpl.java:428) ~[na:na]
    at org.protege.editor.owl.model.inference.OWLReasonerManagerImpl$ClassificationRunner.run(OWLReasonerManagerImpl.java:386) ~[na:na]
    at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_121]

这似乎是本体论中定义的字符串有问题(但我可能错了)。关于如何确定问题在本体中的位置,有什么建议吗?

我使用的是Protege 5.5.0

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-27 19:59:49

从…

代码语言:javascript
复制
at org.semanticweb.HermiT.structural.OWLClausification$DataRangeConverter.convertDataRange(OWLClausification.java:820)

Data propertyRange规范似乎有问题。因此,转到Protege中的"Data properties“选项卡,查找具有范围规范的数据属性,并删除范围规范(假设您已经复制了原始本体)。

通常,在与本体斗争时,我会从本体中删除公理,直到它一致或不给出错误。然后,我将慢慢地添加回公理,直到我再次得到一个失败。

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

https://stackoverflow.com/questions/64548936

复制
相关文章

相似问题

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