我在Protege中有一个本体,想写一些SParqL查询。
本体是这样建立的:
Thing > Beverages > Wine > Red_wine
然后,我添加了不同的red wines
作为实例。它们还具有一些对象属性,例如fromCountry
,goesWellWith
和priceRange
如何创建SParqL查询,以返回例如法国的红酒,它与猪肉搭配,价格范围在100-199之间?
如果要返回知识库中的某些资源,则需要SELECT查询。
正如评论者所说,由于您没有提供足够的信息来建模数据,并且希望您展示自己的努力以及失败之处,因此无法完全回答您的问题。
您可以在https://www.w3.org/TR/2013/REC-sparql11-overview-20130321/上找到SPARQL 1.1的详细概述,或者在https://www.w3.org/2009/Talks/0615-qbe/上找到更通俗易懂的教程。
据我的猜测,您的查询应类似于以下内容:
SELECT ?wine WHERE
{
?wine a :RedWine;
:goesWellWith :Pork;
:priceRange :PriceRange100To199.
}
请将该查询调整为您的确切模型,然后向我们显示您的结果。
如果您用“红酒”表示“仅一个结果”,则可以添加“ LIMIT 1”。
您还可以对价格范围进行不同的建模,例如通过设置minPrice
和maxPrice
,因为这样可以使用过滤器进行更精确的查询。
P.S .:我将您的:Red_wine更改为:RedWine,因为通常将驼峰大小写用于类URI。