我在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。