根据OWL 2中对称和非对称属性的定义以及子属性对属性特征继承的解释,我假设将非对称属性声明为对称属性的子属性将导致推理者检测到的不一致性(HermiT 1.3.8.413),但Protégé5.2.0的情况并非如此。对此有何解释?
HermiT从下面的断言中正确推断出:isnexture
的范围为:Word
和:W1:isnexture:W2
,并在:W1:follows:W2
时检测到不一致。Protégé5.2.0中的Pellet和Fact 1.6.5也是如此。
:isNeighbour a owl:SymmetricProperty; rdfs:domain :Word .
:follows a owl:AsymmetricProperty; rdfs:subPropertyOf :isNeighbour .
:W1 a :Word .
:W2 a :Word .
:W2 :follows :W1 .
这段代码似乎是文本的一种合理的形式表示(当单词互相跟随时,它们是(对称的)邻居(不对称的)),但是在OWL的定义中,它似乎是不一致的,因为使用属性的每个断言都应该一致地允许使用超类
: isNighbor
所做的断言。我不确定推理者是否没有猫头鹰严格,或者我对猫头鹰有误解。
有些属性特征是通过属性层次结构“自上而下继承的”,而有些不是:
>
P rdfs: subProperty tyOf Q
的意思是×y(P(x, y)→Q(x, y))
(1)
qaaowl:SymmetricProperty
的意思是∀十、∀y(Q(x,y)→ Q(y,x))
(2)
(1)和(2)是否包含∀十、∀y(P(x,y)→ P(y,x))
?你已经找到了一个反模型。你可以用“自然数”来代替“单词”以保证坚固性。
实际上,对称是“自上而下继承的”。
P.S.M.Uschold为企业解密OWL说对称属性的子属性是对称的,这是不正确的。
问题内容: 根据官方的JavaScript文档,您可以使用整数定义对象文字属性名称: 此外,您可以使用数字或字符串文字作为属性的名称。 像这样: 我的问题是,如何引用以整数作为名称的属性?我尝试了平常的尝试,但是遇到了错误。我能想到的唯一解决方法是使用循环。有什么建议? 问题答案: 您可以像引用数组一样引用对象的属性,并使用或
问题内容: 我如何做到这一点: 问题答案: 请改用方括号表示法。 或者,在现代JavaScript中:
问题内容: 在Python中(至少在CPython 2.7.2实现中)属性访问的语法受到限制: 我的问题是双重的: 是否有根本原因禁止使用Python关键字属性名称(如中所述)? 是否/在哪里记录了上述对属性名称的限制? 在我的一个程序中这样做是很有意义的,而我对无法做到这一点感到有点失望(可以工作,但看起来并不那么简单)。 PS :问题显然是,并且是Python关键字。问题是, 为什么 禁止使用
问题内容: 我想知道JavaScript中是否有任何方法可以像这样遍历对象。 但是这样获取每个属性的名称。 我似乎在Google上找不到类似的东西。他们说与他们一起传递变量的名称,但这不是我要实现的选择。 谢谢你的尽心帮助。 问题答案: 使用Object.keys(): 给您一个属于输入对象的属性名称数组。
在使用一个库的时候碰到了一个很奇怪的问题,有个class实例化生成的对象,假设为A 对A的属性进行修改 打印A发现,其中的a属性并没有变,但是直接打印A.a是改变了的,请问这种情况大概会是什么原因呢,是有什么知识盲区吗,目前知道a属性是不可删除的属性,但是一般对象设置configurable=false也不会出现这种情况,如果不允许修改的话应该也会报错。。 (PS:A只是为了表述简化的例子,并不是
问题内容: 为什么JavaScript不允许模板字符串作为对象属性键?例如,当我输入: 到NodeJS REPL中,它会引发带有长堆栈跟踪的“意外模板字符串”。属性值很好,但是,这并不出乎意料。浏览器中也会发生类似的错误,例如Firebug抛出一个带有“无效属性ID”的错误。 “计算的属性名称”中允许使用模板字符串。例如,这在所有支持以下语法的浏览器中都可以完美编译: 并创建对象。 为什么不允许模