Sparql 如何处理多个谓词?

Sparql 如何处理多个谓词?,sparql,rdf,Sparql,Rdf,我的目标是编写一个SPARQL查询,以确定所有操作系统(s:OS)为Android且价格低于400美元的智能手机单元 这很令人困惑,因为在海龟格式中,有多个谓词。有s:OS,但也有rdf:type。我用哪一种 我有以下信息,但我不确定其准确性: SELECT ?phone WHERE { ?phone s:OS|rdf:type ?OS . ?OS rdfs:subClassOf s:Android . ?phone s:price ?price . FILTER (?price < 4

我的目标是编写一个SPARQL查询,以确定所有操作系统(
s:OS
)为Android且价格低于400美元的智能手机单元

这很令人困惑,因为在海龟格式中,有多个谓词。有
s:OS
,但也有
rdf:type
。我用哪一种

我有以下信息,但我不确定其准确性:

SELECT ?phone
WHERE {
?phone s:OS|rdf:type ?OS .
?OS rdfs:subClassOf s:Android .

?phone s:price ?price .
FILTER (?price < 400) .
}
SELECT?电话
在哪里{
?手机s:OS | rdf:type?OS。
?OS rdfs:子类s:Android。
电话s:价格?价格。
过滤器(?价格<400)。
}

看起来不错。也许你也可以试试
?phone(s:OS | rdf:type)/(rdfs:subassof*)s:Android
。或者显示您的数据。在我看来,您的数据已损坏,因为手机的
rdf:type
应该是
http://www.productontology.org/id/Smartphone
http://dbpedia.org/ontology/Device
,而
s:Android
rdf:type
应该类似于
http://dbpedia.org/class/yago/OperatingSystem106568134
http://dbpedia.org/ontology/Software
。(您的
s:
前缀扩展为什么?)