标签: dlquery

如何在DL Manchester OWL语法中查询个人?

我知道这听起来像一个非常愚蠢的问题,但我一直试图解决这个问题,但我找不到任何相关内容,尽管这显然应该是可行的.

我正在开发一些使用曼彻斯特OWL语法和HermiT推理器通过其API查询OWL文件的东西.我也可以在Protege 4的DL Query选项卡上运行查询,以检查我在该文件上的查询结果.该文件基本上是添加数据实例的朋友之友(FOAF)本体.

问题:我找不到通过其唯一标识符查询实例的方法.

它应该是URI,所以例如对于具有URI的Person对象 http://xmlns.com/foaf/0.1/Andrew_Kuchling,我试图运行以下查询:

Person and URI value "http://xmlns.com/foaf/0.1/Andrew_Kuchling"

Person value "http://xmlns.com/foaf/0.1/Andrew_Kuchling"

Person and URI value "Andrew_Kuchling"

Person that "Andrew_Kuchling"
Run Code Online (Sandbox Code Playgroud)

这些都不起作用.(URI是通过http://xmlns.com/foaf/0.1/为您输入的任何字符串添加前缀来构造的,并且URI实际上并未在本体中标识为属性).

在FOAF中,mbox_sha1sum是邮箱的sha1sum.邮箱与个人有着独特的联系.所以我尝试了以下查询:

Person and mbox_sha1sum value "mbox_sha1sum-property-value-here"
Run Code Online (Sandbox Code Playgroud)

但是,它甚至不执行此查询,因为它感觉查询不正确.该mbox_sha1sum值与我为此Person添加的值相同.它存在于个人中.

它确实执行此查询:

Person and firstName value "Andrew"
Run Code Online (Sandbox Code Playgroud)

所有数据属性都不是专用数据类型.默认情况下作为文字处理.

我真的不知道我做错了什么.请有人请帮忙吗?

uri foaf dlquery manchester-syntax

7
推荐指数
1
解决办法
1900
查看次数

推理使用逆属性的OWL本体?

我正在使用Protege v4.3来制作本体.我有一个关于OWL本体和DL查询的问题.

例如,在Pizza ontology中, http://owl.cs.manchester.ac.uk/co-ode-files/ontologies/pizza.owl

我可以执行DL查询

hasTopping some CheeseTopping

结果是American,AmericanHot,Cajun,..等等没关系.

现在,我尝试了DL查询

isToppingOf some American

但结果却一无所获.

由于物业isToppingOf是hasTopping的逆属性,我希望得到的结果,包括FourCheesesTopping,CheeseyVegetableTopping等从该查询(通过推理).芽它没有.

这样的自动推理有什么办法吗?

owl dlquery protege

7
推荐指数
2
解决办法
2889
查看次数

为什么这个DL-Query没有返回任何个人?

此DL-Query不会返回任何个人:

  • 查询(Protégé语法): hasPet exactly 1 DomesticAnimal

这是本体的一部分:

:hasPet a           owl:ObjectProperty;
        rdfs:domain :Human;
        rdfs:range  :DomesticAnimal;
        owl:inverseOf : petOf;


:Joe    a           :Human;
        hasPet      :Lassy.

:Bob    a           :Human;
        hasPet      :Sparkey, Lucky.
Run Code Online (Sandbox Code Playgroud)

查询:

  • petOf value Bob 回归SparkeyLucky
  • petOf value Joe 回报 Lassy
  • hasPet exactly 1 没有回报.

为什么不是最后一个查询返回Joe?我在使用Pellet,HermiT和FaCT ++的Protégé中尝试过它,但它没有用.

rdf owl dlquery protege description-logic

5
推荐指数
1
解决办法
1587
查看次数

OWL中的奇怪查询行为!

在OWL中,此查询工作正常

"person and hasChild min 3"
Run Code Online (Sandbox Code Playgroud)

它工作正常,它给了我所有超过3个孩子的人

但是这个不起作用

"person and hasChild max 3"
Run Code Online (Sandbox Code Playgroud)

它应该给我所有少于3个孩子的人,但它不起作用

有没有人对此有所了解?

为什么"min"工作,而"max"没有给出任何结果!??

谢谢

semantic-web owl dlquery manchester-syntax

3
推荐指数
1
解决办法
268
查看次数