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

本体中的类关联

陶博耘
2023-03-14

我在我的本体论中有关于类(而不是个体)的问题。我需要知道OWL(full-dl-lite)允许哪一个关联类。我的意思是属性的域和范围是http://www.w3.org/2002/07/owl#class。那有可能吗?谢谢你的提示。

共有1个答案

戚俊美
2023-03-14

首先,忘掉http://www.w3.org/tr/owl-guide/、http://www.w3.org/tr/owl-ref/和http://www.w3.org/tr/owl-semantics/上的规范。官方推荐的Web本体语言是OWL2,其中的各种子语言是OWL 2 EL,OWL 2 QL,OWL 2 RL,OWL 2 DL和OWL 2 Full(阅读OWL 2的新特性)。猫头鹰Lite已经不存在了,应该永远被遗忘。

其次,在OWL(1和2)中,始终可以使用注释属性来关联类,就像在Turtle中这样:

# valid in all variants and OWL 1 and OWL 2
:prop  a  owl:AnnotationProperty .
:C1  a  owl:Class .
:C2  a  owl:Class;
     :prop  :C2 .

在OWL1中,不可能为注释属性定义域或范围,但现在在OWL2中可以定义:

# works in all variants of OWL 2
:prop  a  owl:AnnotationProperty;
       rdfs:domain  owl:Class;
       rdfs:range  owl:Class .

您的另一个选择是依赖“双关语”的概念,也就是说,为个人使用类的IRI,如下所示:

# works in all variants of OWL 2
:prop  a  owl:ObjectProperty .
:C1  a  owl:Class .
:C2  a  owl:Class;
     :prop  :C2 .

但是,不能将owl:class用作对象属性的域或范围。最后一种可能是不在乎,使用OWL(1/2)Full:

# works in OWL 1 Full, OWL 2 Full
:prop  rdfs:domain  owl:Class;
       rdfs:range  owl:Class .
:C1  a  owl:Class;
     :prop  :C2 .

请注意,大多数OWL DL推理器不会在该输入上崩溃(更准确地说,我测试过的所有推理器都不会崩溃),所以实际上它是相当安全的。

 类似资料:
  • 我在半年多前开始学习使用Python编程语言。正如Swaroop在本书中所说的那样,它很快就成为“我最喜欢的编程语言”。目前我的几乎所有编程工作都使用Python。从我的切身体会来说,Python最大的特点就是易懂、易用、高效率。我相信,如果你已经学完了本书,并且尝试着编写了一些程序后,你一定会有相同的感受。 Swaroop C. H.的这本书是我学习Python时的第一本教材。它简单明晰,可以在

  • 我有一个抽象的BaseEntity类,所有具体的entity类都是从它扩展的。 以上设计是否有问题;at线 因为我希望连接表“baseentity_tag”(列“baseuid”)在每个具体实体类中都有引用,比如concrete1.java、concrete2.java等? 我想一个通用的连接表“baseEntity_tag”将不能满足所有具体实体的需要。

  • 注意:  Typekit 现已更名为 Adobe Fonts,包含在 Creative Cloud 和其他订阅中。了解详情。 关于字体 字体是由一组具有相同粗细、宽度和样式的字符(字母、数字和符号)构成的完整集合,如 10 磅 Adobe Garamond 粗体。 字样(也称为文字系列或字体系列)是由具有相同的整体外观的字体形成的集合,专为一同使用而设计,如 Adobe Garamond。 字体样

  • 在开始部分,请看官非常非常耐心地阅读下面几个枯燥的术语解释,本来这不符合本教程的风格,但是,请看官谅解,因为列位将来一定要阅读枯燥的东西的。这些枯燥的属于解释,均来自维基百科。 1、问题空间 问题空间是问题解决者对一个问题所达到的全部认识状态,它是由问题解决者利用问题所包含的信息和已贮存的信息主动地构成的。 一个问题一般有下面三个方面来定义: 初始状态——一开始时的不完全的信息或令人不满意的状况;

  • 我从这段代码得到的结果是一个值列表,形式为:className1、className5等。 但是,当我使用Protege打开本体时,同一个类的成员具有正常的名称。是适合我使用的函数吗?如果是这样,我看到的与Protege一起存储在本体中的名称在哪里,我如何获得它们的值?

  • 两个表格: 实体类(基本结构): SQL查询和结果: JPQL查询: *我知道我在上面给定的结构中没有它,但我想知道如何正确操作。我该如何从“ManyToOne”、“OneToOne”等选项中进行选择。 如何修改实体类和JPQL查询以获得与SQL查询相同的结果?我一直在尝试各种各样的事情,但都不管用。它不允许我创建两个具有相同列名的字段,也不允许我将字符串定义为@JoinColumn。我几乎成功了