- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经创建了关系 A 'is functional parent of' B
并定义 'has functional parent'
作为 'is functional parent of'
的倒数. 'A'
和 'B'
都是 'chemical entity'
的子类.
我想让 Protege 推断 B 'has functional parent' A
.查询'has functional parent' some A
失败。
错误 #1:不理解开放世界
我意识到some
意味着并非所有 B
有关系'has functional parent'
与 'A'
. 然而,查询'chemical entity' and 'has functional parent'
仍然失败。
我的本体没有实例。我希望查询伤口找到子类。
海龟文件
@prefix : <http://www.semanticweb.org/michaelchary/ontologies/2020/8/untitled-ontology-10#> .
@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#> .
@base <http://www.semanticweb.org/michaelchary/ontologies/2020/8/untitled-ontology-10> .
<http://www.semanticweb.org/michaelchary/ontologies/2020/8/untitled-ontology-10> rdf:type owl:Ontology .
#################################################################
# Object Properties
#################################################################
### http://www.semanticweb.org/michaelchary/ontologies/2020/8/untitled-ontology-10#hasFunctionalParent
:hasFunctionalParent rdf:type owl:ObjectProperty ;
owl:inverseOf :isFunctionalParentOf .
### http://www.semanticweb.org/michaelchary/ontologies/2020/8/untitled-ontology-10#isFunctionalParentOf
:isFunctionalParentOf rdf:type owl:ObjectProperty .
#################################################################
# Classes
#################################################################
### http://www.semanticweb.org/michaelchary/ontologies/2020/8/untitled-ontology-10#A
:A rdf:type owl:Class ;
rdfs:subClassOf :Z ,
[ rdf:type owl:Restriction ;
owl:onProperty :isFunctionalParentOf ;
owl:someValuesFrom :B
] .
### http://www.semanticweb.org/michaelchary/ontologies/2020/8/untitled-ontology-10#B
:B rdf:type owl:Class ;
rdfs:subClassOf :Z .
### http://www.semanticweb.org/michaelchary/ontologies/2020/8/untitled-ontology-10#Z
:Z rdf:type owl:Class .
### Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi
最佳答案
根据您在本体论中陈述的公理,推理者绝对无法从中推导出 B hasFunctionalParent A
.
要理解为什么会这样,即使您的本体不包括任何明确的个人,从个人的角度思考也是有帮助的。当推理器运行时,它会尝试根据本体中的公理生成模型。模型由遵循本体公理的生成个体组成。
出于说明目的,让我们假设个人的整体由以下数字组成:
域 = {0, 1, 2, 3, 4, 5, 6, 7}
,Z = {1, 2, 3, 5, 6, 7}
,A = {5, 7}
和B = {2, 3, 6}
然后你有一个对象属性 hasFunctionalParent
与其逆。简而言之我会引用hasFunctionalParent
如 R
和它的倒数 invR
.什么R
和 invR
意思?它基本上表明,当我们域中的 2 个人通过 R
相关时,它们也通过 invR
相关.也就是说,如果我们有 R(1, 2)
,然后 invR(2, 1)
还抱。
声明 A subClassOf invR some B
意味着 A
的每个个体相关通过 invR
至少 1 个人 B
.因此,如果我们有 invR(5, 2)
和 invR(7, 3)
,我们也会有R(2, 5)
和 R(3, 7)
.然而,这并没有说明类 B
一般来说。 R(6, 0)
完全有可能持有。因此推理者不能推断出B hasFunctionalParent A
.
获取B
和 Z
对于查询“查找 hasFunctionalParent some B
的父类(super class)”(这意味着在进行查询时必须在 Protege 中勾选“父类(super class)”)您必须声明 isFunctionalParentOf
有域名A
和范围 B
.这表明每当 2 个人 x
和 y
相关通过 isFunctionalParentOf
,我们可以假设 x
是 A
的一个实例和 y
是 B
的一个实例.
最后,您会注意到您需要使用 Protege 中的 DL 查询选项卡来进行此推理。尤其是在推理之后,它不会作为推论的一部分显示出来。这是为什么?这是因为 Protege 只显示命名类的推断。 hasFunctionalParent some B
是匿名类,因此未显示此推论。在 Protege 中制作这个节目的一个技巧是添加一个任意的概念,比如 X
您设置为等效于 hasFunctionalParent some B
.如果您现在运行推理器,Protege 将推断出 X subClassOf B
.
关于ontology - 推断 Protege 中的逆属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63747637/
当使用模板模板参数时,我如何推断或删除模板模板的模板类型? 考虑以下 SSCCE: #include #include #include using namespace std; templat
假设我有一些特质: trait A[T] { def foo: T } 一个扩展它的类: class B[T](t: T) extends A[T] { def foo = t } 以及父特征的子特征
一边玩-rectypes在某些时候选择 OCaml 我只是迷路了。 这个表达式几乎可以打字: # fun x -> x x;; - : ('a -> 'b as 'a) -> 'b = 但是这里 O
我正在编写一个类似 CRUD 的应用程序,并且通过主键进行大量查找(主键可以有不同的类型)。所以我定义了以下类型类: {-# LANGUAGE MultiParamTypeClasses #-} cl
我已经创建了关系 A 'is functional parent of' B并定义 'has functional parent'作为 'is functional parent of' 的倒数. '
给定一个使用 Kotlin 版本 1.3.61 和 JOOQ 版本 3.13.1 的系统,这样的方法会构建 union正常查询: val selectCommonPart = coalesce
考虑以下错误代码: fun x = if (null x) then 0 else (take 50 x) : (fun (drop 50 x)) 我注意到,我可以毫无问题地将它加载到
给定一个具有以下类型的函数 a: a::x -> Bool 和以下类型的另一个函数 b: b::Bool -> y 我正在尝试找出推断以下函数类型的步骤: c =\d -> d a b 有人可以帮助解
我正在尝试使用 Infer 工具来分析我的应用代码。我关注了these steps每次我尝试运行 infer -- gradle build 时,我都会收到以下错误: infer -- gradle
所以我制作了这个模板来定义内联仿函数: template struct AsFunctor { template std::invoke_result_t operator()(A
是否可以推断 CRTP 基类中模板化成员函数的返回类型? 虽然推断参数类型效果很好,但它因返回类型而失败。考虑以下示例。 #include template struct base { tem
使用 Series.interpolate 很容易在 Pandas.DataFrame 中插入值,如何进行外推? 例如,给定一个如图所示的 DataFrame,我们如何将它外推 14 个月到 2014
我想知道为什么这不起作用(缺少参数类型)? Seq(1,2,3).toSet.map(_ + 1) 但这确实: val foo = Seq(1,2,3).toSet foo.map(_ + 1)
我没有必要使用 SQLite3 shell 工具来维护一个小型数据库。我正在使用 -header -ascii标志,尽管据我所知,这适用于任何输出选择。我正在寻找一种方法来避免对返回的任何一个值的类型
我有以下组件 type PropTypes = { items: T[], header: (item: T) => React.Element, body: (item: T) => R
我想在 Eclipse/JSDT 中指定实例变量的类型,如下例所示: /** * @constructor */ function A() { /** @type Node */
我正在用 Python 编写一个方法,它看起来像这样: def rgb_to_grayscale(image): print(image.shape) pass 此处预期的类型是 nu
我有一个 my_values 数组,我正在尝试为其推断 true_values 数组中最接近、较小的值。使用下面的 find_nearest 函数并不能完成我想要的。我如何追加它以找到最近的、较小的值
在下面的代码中: template int b(int q, const std::array& types) { int r = q; for (int t : types)
在 Pandas DataFrame 中插入 NaN 单元非常容易: In [98]: df Out[98]: neg neu pos av
我是一名优秀的程序员,十分优秀!