2012-06-24 32 views
1

我已经建立的门徒4如何编写此SPARQL请求?

enter image description here

在这种本体论的本体论如下:主类Frame有DatatypeProperty属性hasDuration与域“框架”和范围UnsignedShort。类ShortFrameLongFrame从类SizedFrame推断与followiing限制

Rectriction为ShortFrame类

SizedFrame that hasDuration some unsignedLong[<=20] 

Rectriction为长框架类

SizedFrame that hasDuration some unsignedLong[>=200] 

我已经手动创建的一个实例类别frame,名称为frame0,其中有一个属性hasDuration设置为12

什么是SPARQL查询,我需要得到所有shortFrame。我希望frame0将被推断为shortFrame

感谢您的回复!

版:样本查询

PREFIX frame: <http://www.semantic.org/sample.owl#> 
SELECT ?y WHERE {?y rdf:type frame:Frame} 

,但它不工作!也许这是不正确的!

+0

我已经在我的问题中添加了查询。但它不起作用。我是SQPARQL的新手。你有一些链接可以帮助我入门吗? –

+0

@FopaLéonConstantin我意识到现在这是一个古老的问题,但是你有没有得到更远的? Jeen B的回答好像它应该检索你正在寻找的元素。 –

回答

1

我相信你会用SPARQL语言编写一些OWL限制信息查询。 SPARQL是一种RDF查询语言,不了解OWL的概念。您可以使用data属性来定义持续时间值,而不是使用限制,您可以使用SPARQL获取所有shortFrame。我建议的其他选项是使用SWRL规则而不是SPARQL。希望这可以帮助 !!

+0

Hi @Swamy,SPARQL和SWRL之间的区别是什么,使得第一个比第二个更有趣? –

0

您提供的查询要求所有类型为frame:Frame的实例。既然你只想要短帧,你应该像这样适应它:

SELECT ?y WHERE {?y a frame:ShortFrame} 

...但如果推理理解你的限制,可以进行正确分类frame0ShortFrame实例以上才有效。我并不太熟悉用于猫头鹰限制的Protege语法,因此我不能100%确定您的限制表达了您希望表达的内容。

作为替代方案,您实际上可以在SPARQL中表达您需要的限制。查询持续时间小于20的所有帧:

SELECT ?y 
WHERE { 
    ?y a frame:Frame; 
     frame:hasDuration ?d . 
    FILTER (?d <= 20) 
} 
+0

我认为这里最好的查询会包含你展示的两个联合,因为两者都是可以识别ShortFrame的方式。 –