如何编写此SPARQL请求?

如何编写此SPARQL请求?,sparql,jena,ontology,Sparql,Jena,Ontology,我在Protege4中构建了以下本体 在这个本体中:主类Frame有一个datatypePropertyhasDuration,其中包含域“Frame”和范围UnsignedShort。类ShortFrame和LongFrame是根据类SizedFrame推断出来的,具有以下限制 短帧类的纠错 SizedFrame that hasDuration some unsignedLong[<=20] SizedFrame that hasDuration some unsignedLong

我在Protege4中构建了以下本体

在这个本体中:主类
Frame
有一个datatypeProperty
hasDuration
,其中包含域“Frame”和范围
UnsignedShort
。类
ShortFrame
LongFrame
是根据类
SizedFrame
推断出来的,具有以下限制

短帧类的纠错

SizedFrame that hasDuration some unsignedLong[<=20]
SizedFrame that hasDuration some unsignedLong[>=200]
我已经手动创建了名为
frame0
的类
frame
的实例,该类的属性
hasDuration
设置为
12

获取all
shortFrame
所需的SPARQL查询是什么。我希望
frame0
会像
shortFrame
一样被推断出来

谢谢你的回复

版本:示例查询

PREFIX frame: <http://www.semantic.org/sample.owl#>
SELECT ?y WHERE {?y rdf:type frame:Frame}
前缀帧:
选择y,其中{y rdf:type frame:frame}

但它不起作用!也许这是不对的

我相信,您将用SPARQL语言编写一些OWL限制信息查询。SPARQL是一种RDF查询语言,不理解OWL的概念。您可以使用数据属性来定义持续时间值,而不是进行限制,并从中使用SPARQL获得所有短帧。我建议的另一个选择是使用SWRL规则而不是SPARQL。希望这有帮助

我相信,您将用SPARQL语言编写一些OWL限制信息查询。SPARQL是一种RDF查询语言,不理解OWL的概念。您可以使用数据属性来定义持续时间值,而不是进行限制,并从中使用SPARQL获得所有短帧。我建议的另一个选择是使用SWRL规则而不是SPARQL。希望这有帮助

您给出的查询请求类型为
frame:frame
的所有实例。由于您只需要较短的帧,因此应按如下方式进行调整:

SELECT ?y WHERE {?y a frame:ShortFrame}
…但只有当推理机理解您的限制,并且能够正确地将
frame0
分类为
ShortFrame
的实例时,上述方法才有效。我不太熟悉Protege的owl限制语法,所以我不能100%确定您的限制表达了您希望它表达的内容

另一种选择是,实际上可以在SPARQL中表达所需的限制。要查询持续时间小于20的所有帧,请执行以下操作:

SELECT ?y 
WHERE {
   ?y a frame:Frame; 
      frame:hasDuration ?d . 
   FILTER (?d <= 20) 
}
SELECT?y
在哪里{
?y帧:帧;
帧:hasDuration?d。

过滤器(?.d您给出的查询要求所有类型为
frame:frame
的实例。因为您只需要短帧,所以应该这样调整:

SELECT ?y WHERE {?y a frame:ShortFrame}
…但只有当推理者理解您的限制,并且能够正确地将
frame0
分类为
ShortFrame
的一个实例时,上述方法才会起作用。我不太熟悉Protege的owl限制语法,因此我不能100%确定您的限制表达了您希望它表达的内容

或者,您可以在SPARQL中实际表达所需的限制。要查询所有持续时间小于20的帧,请执行以下操作:

SELECT ?y 
WHERE {
   ?y a frame:Frame; 
      frame:hasDuration ?d . 
   FILTER (?d <= 20) 
}
SELECT?y
在哪里{
?y帧:帧;
帧:hasDuration?d。

滤器(?d我已经在我的问题中添加了查询。但它不起作用。我是SQPARQL的新手。你有什么链接可以帮助我入门吗?@FopaLéonConstantin我意识到这是一个老问题,但你有没有进一步了解这个问题?Jeen B的回答似乎应该检索到你正在寻找的元素。我已经在我的问题中添加了查询问题。但它不起作用。我是SQPARQL的新手。你有什么链接可以帮助我入门吗?@FopaLéonConstantin我意识到这是一个老问题,但你有没有进一步了解这个问题?Jeen B的答案似乎应该检索你正在寻找的元素。嗨@Swamy,SPARQL和s之间有什么区别在我的例子中,WRL使第一个比第二个更有趣?嗨@Swamy,SPARQL和SWRL之间有什么区别使第一个比第二个更有趣?我认为这里最好的查询应该包括您所展示的两个查询的联合,因为这两个查询都是识别短帧的方法。我认为这里最好的查询应该包括您所展示的两个查询的并集,因为这两个查询都是识别短帧的方法。