SPARQL查询(帮助!)

时间:2013-10-29 09:35:19

标签: ontology owl protege

所以,我有一个Ontology,需要一些关于我的SPARQL查询的帮助。 本体基于不同的啤酒成分和酿造设备。 例如,它具有类“Ingredients”和子类“Malt / Grain”,然后是子类“Dark”。现在我有一些不同的,更具体的黑麦芽类型,即个体和黑暗类的成员。

如果我进入Protege中的一个人,例如“Dark_Crystal”,则会在“类型”字段下显示“黑暗”

所以,我希望能够提出如下问题:“向我展示所有黑麦芽”“向我展示麦芽”Dark_Crystal“,如果没有库存则显示相同类型的替代麦芽。 我对SPARQL不太好,因为很多时间都没有使用本体。我知道一点,但我不知道我将如何制定它,或者应该定义它们的标签。

这是我对查询的不良反应,我只是不知道如何正确地制定它。

SELECT ?Malt WHERE
{
?malt rdfs:subClassOf [
    owl:someValuesFrom :Dark

}

非常感谢,希望我能够解释得很清楚,你们中的一些人可能会有一些例子。

1 个答案:

答案 0 :(得分:1)

我无法测试,因为我没有你的本体论,但在我的头脑中,我就是这样做的:

如果Dark是文字:

SELECT ?malt WHERE
{
?malt :hasColor "Dark"
}

如果Dark是一个类:

SELECT ?malt WHERE
{
?malt :hasColor ?color.
?color rdf:type :Dark
}