Rdf Sparql where子句

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

我试图创建一个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 {
    ?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很乐意帮忙。顺便说一句,既然你的帐户是相当新的,你现在可能意识到这一点,但是,你应该考虑投票或接受你发现有用的答案,而不是感谢别人的评论。请参阅“帮助”部分中的部分。