1

所以,我有一个本体,需要一些关于我的 SPARQL 查询的帮助。该本体基于不同的啤酒成分和酿造设备。例如,它有“Ingredients”类、“Malt/Grain”子类和“Dark”子类。现在我有一些不同的、更具体的深色麦芽威士忌,它们是个体,是 Dark 类的成员。

如果我进入 Protege 中的一个人,例如“Dark_Crystal”,其“类型”字段下将有“黑暗”

所以,我希望能够提出这样的问题:“给我看所有深色麦芽”“给我看“Dark_Crystal”麦芽,如果没有库存,请显示相同类型的替代麦芽。我不太喜欢 SPARQL很多时间都花在本体上。我知道一点,但我只是不知道我将如何制定它,或者应该定义哪些标签。

这是我在查询时的糟糕表现,我只是不知道如何正确地制定它。

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

}

非常感谢大家,希望我解释得足够好,并且你们中的一些人可能有一些例子。

4

1 回答 1

1

我无法测试,因为我没有你的本体,但在我的头顶上,我会这样做:

如果Dark是文字:

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

如果Dark是一个类:

SELECT ?malt WHERE
{
?malt :hasColor ?color.
?color rdf:type :Dark
}
于 2013-10-29T09:51:47.780 回答