Rdf Sparql where子句
我试图创建一个sparql查询,返回列“subject”为“”的每一列 在sql中,应该是这样的:Rdf Sparql where子句,rdf,sparql,triplestore,fuseki,Rdf,Sparql,Triplestore,Fuseki,我试图创建一个sparql查询,返回列“subject”为“”的每一列 在sql中,应该是这样的: SELECT * WHERE Subject = "<http://purl.org/dc/elements/1.1/creator>" SELECT ?subject ?predicate ?object WHERE { <http://purl.org/dc/elements/1.1/creator> ?object ?predicate optional
SELECT * WHERE Subject = "<http://purl.org/dc/elements/1.1/creator>"
SELECT ?subject ?predicate ?object
WHERE {
<http://purl.org/dc/elements/1.1/creator> ?object ?predicate optional {
?subject ?predicate ?object
}
}
选择*WHERE Subject=“”
接近我想要的sparql查询如下所示:
SELECT * WHERE Subject = "<http://purl.org/dc/elements/1.1/creator>"
SELECT ?subject ?predicate ?object
WHERE {
<http://purl.org/dc/elements/1.1/creator> ?object ?predicate optional {
?subject ?predicate ?object
}
}
选择主语谓语宾语
何处{
?对象?谓词可选{
主语、谓语、宾语
}
}
它返回一个包含所有三列的表,但是?subject列由于某种原因是空的。谓词和对象列不是空的,并显示正确的数据
有人能帮我吗
非常感谢:D假设您的Triplestore中填充了正确的语句,然后重试-
SELECT ?subject ?predicate ?object
WHERE {
VALUES ?subject { <http://purl.org/dc/elements/1.1/creator> }
?subject ?predicate ?object .
}
选择主语谓语宾语
何处{
值?主题{}
主语?谓语?宾语。
}
有几种方法可以做到这一点。除了Anthony给出的解决方案外,使用VALUES
子句,还可以使用FILTER
条件:
SELECT ?subject ?predicate ?object
WHERE {
?subject ?predicate ?object .
FILTER(?subject = <http://purl.org/dc/elements/1.1/creator>)
}
选择主语谓语宾语
何处{
主语?谓语?宾语。
过滤器(?主题=)
}
或者,如果您的目标不一定是获取一个包含三列的表,而是获取包含该特定主题的所有三元组,那么您也可以使用构造查询:
CONSTRUCT
WHERE { <http://purl.org/dc/elements/1.1/creator> ?predicate ?object }
构造
其中{?谓词?对象}
事实上,它应该是一个属性,所以您真的想获取有关该属性的所有三元组吗?你知道RDF知识库中三元组的基本概念吗?太棒了!这很有魅力:D非常感谢:D@BrentLobbezoo很乐意帮忙。顺便说一句,既然你的帐户是相当新的,你现在可能意识到这一点,但是,你应该考虑投票或接受你发现有用的答案,而不是感谢别人的评论。请参阅“帮助”部分中的部分。