当前位置: 首页 > 知识库问答 >
问题:

使用OWLAPI实现SWRL规则的OWL-XML序列化

皇甫雨华
2023-03-14

OWLAPI用于序列化SWRL规则的OWL-XML序列化格式在哪里指定?例如。通过使用Protege(据我所知,它使用OWLAPI)序列化一个简单的规则,我得到以下代码:

<DLSafeRule>...
        <ClassAtom>
            <Class IRI="#Person"/>
            <Variable IRI="x"/>
        </ClassAtom>
</DLSafeRule>

这与SWRL规范[1]:

<swrlx:classAtom> 
  <owlx:Class owlx:name="Person" />
  <ruleml:var>x1</ruleml:var>
</swrlx:classAtom>
<owl:ClassAtom>
  <owl:Class IRI="#Person"/>
  <owl:IndividuialVariable IRI="#x"/>
</owl:ClassAtom>

谢谢你![1]https://www.w3.org/submission/swrl/[2]http://dl.acm.org/citation.cfm?id=2890050

共有1个答案

蔺弘
2023-03-14

据我所知你要找的文件是这样的:

https://www.w3.org/tr/owl-XMLSyntax/

注意,OWL/XML和RDF/XML是非常不同的序列化格式。RDF/XML是W3C标准,而OWL/XML不是。

该文档中没有提到SWRL,因此技术上没有OWL/XML中SWRL输出的规范。但是附录https://www.w3.org/tr/2009/rec-owl2-xml-serialization-20091027/#附录:_the_derivation_from_the_functional_syntax_.28informative.29中的注释描述了标签是如何设计的;因此,使用Aksw的关于功能语法标记的理论,简单地以同样的方式进行翻译是有意义的。

 类似资料:
  • 我一直在尝试设置一个查询打印机:https://github.com/owlcs/owlapi/wiki/dl-queries-with-a-real-reasoner,如果我用曼彻斯特语法给它一个查询,我就可以得到一个响应,它反映了我在Protege中得到的结果。我用Openllet替换了Hermit reasoner,它似乎不能再检索任何个体了。 出于原因,如果可能的话,我想远离耶拿。 ont

  • haspart(x,FruitA) HasShape(x,Round) 我检索我的个人所属的每个类(在本例中,这应该包括SpeciesA)。 我根本不确定应该使用什么:我可以使用SWRL Species(?x)^HasPart(?x,Fruit)^HasShape(?x,“$round$”)还是应该使用Reasoner?

  • 我刚开始用Protegé做本体论方面的工作,我正在尝试理解如何使用SWRL规则。我恐怕我不知道如何正确地对待它们,因为我不能产生任何输出。我将更多地解释我创建的一个简单的案例来测试这一点: 我创建了三个个体,称为A、B和C,每个个体都有一个测试属性,具有一个布尔范围。在每个属性断言选项卡上,我都初始化了它们的值,因此它们是、和。为了测试规则是如何工作的,我创建了这样一个规则:。我的理解是,如果A和

  • 用户和首选项由objectProperty链接。 objectProperty断言需要通过SWRL规则从其他用户方面推断。例如,如果用户有听力困难,则需要将设置为,因此: 这很好用。但是,由于我有其他SWRL规则,这些规则也为相同的用户推断,例如: 我需要的是一个规则,不知怎么的,只有在没有更高的级别已经断言的情况下才会断言偏好。在给定的示例中,即使为true,唯一断言的级别也应该是,因为是其他规

  • 我正在尝试使用owlapi彻底的net beans加载.owl文件,以插入个人及其数据属性(使用owlapi文档中列出的代码),但它无法加载文件,但当我将.owl文件转换为.rdf格式时,它被成功加载,并且能够插入所需的数据。我需要操作.owl文件而不是.rdf格式 下面是我用来加载.owl而没有成功的代码 但是当我使用了如下所示的rdf fromat时,它就成功地加载了 那么我如何克服这个问题并

  • 我需要在Protégé中实现一个OWL-ontology,它包含两个类:和,这两个类都是类的实例。这两个类由连接类连接,该连接类包含属性。该财产必须根据下列法律取值: 欧米茄=1*S1。完成 我如何在Protégé中实现它,这样我就可以在将来的SWRL-rule中使用它了?