所以,我有一个Ontology,需要一些关于我的SPARQL查询的帮助。 本体基于不同的啤酒成分和酿造设备。 例如,它具有类“Ingredients”和子类“Malt / Grain”,然后是子类“Dark”。现在我有一些不同的,更具体的黑麦芽类型,即个体和黑暗类的成员。
如果我进入Protege中的一个人,例如“Dark_Crystal”,则会在“类型”字段下显示“黑暗”
所以,我希望能够提出如下问题:“向我展示所有黑麦芽”“向我展示麦芽”Dark_Crystal“,如果没有库存则显示相同类型的替代麦芽。 我对SPARQL不太好,因为很多时间都没有使用本体。我知道一点,但我不知道我将如何制定它,或者应该定义它们的标签。
这是我对查询的不良反应,我只是不知道如何正确地制定它。
SELECT ?Malt WHERE
{
?malt rdfs:subClassOf [
owl:someValuesFrom :Dark
}
非常感谢,希望我能够解释得很清楚,你们中的一些人可能会有一些例子。
答案 0 :(得分:1)
我无法测试,因为我没有你的本体论,但在我的头脑中,我就是这样做的:
如果Dark
是文字:
SELECT ?malt WHERE
{
?malt :hasColor "Dark"
}
如果Dark
是一个类:
SELECT ?malt WHERE
{
?malt :hasColor ?color.
?color rdf:type :Dark
}