Sparql查询有两个变量

use*_*072 2 sparql

如何使用2个变量进行sparql查询?让我解释一下:我有历史地图的本体论.我的实体有:HistoricalMap,Language,Color 以及连接它们的对象的属性有:hasLanguage,hasColor(该hist.map有语言,有颜色).如果我进行查询:

SELECT ?HistoricalMap ?Language ?Color
        WHERE { ?HistoricalMap p1:hasLanguage ?Language.
                       ?HistoricalMap p1:hasColor ?Color.
}
Run Code Online (Sandbox Code Playgroud)

我得到了所有有颜色和语言的地图.

我怎么能要求hasColor"红色"和hasLanguage法国人的地图?

And*_*dyS 5

因为你想要"AND",你可以在模式中使用常量.

SELECT ?HistoricalMap
        WHERE { ?HistoricalMap p1:hasLanguage "French".
                       ?HistoricalMap p1:hasColor "Red" .
}
Run Code Online (Sandbox Code Playgroud)

如果您还想要返回变量,请使用FILTER:

SELECT ?HistoricalMap ?Language ?Color
        WHERE { ?HistoricalMap p1:hasLanguage ?Language.
                       ?HistoricalMap p1:hasColor ?Color.
                FILTER(?Language = "French" && ?Color = "Red")
}
Run Code Online (Sandbox Code Playgroud)