Rdf 进行SPARQL查询时重复行
我想从欧洲议会摘录关于特定议程项目的演讲,可通过SPARQL界面访问: 数据库的架构可在此处找到: 通过以下查询Rdf 进行SPARQL查询时重复行,rdf,sparql,Rdf,Sparql,我想从欧洲议会摘录关于特定议程项目的演讲,可通过SPARQL界面访问: 数据库的架构可在此处找到: 通过以下查询 SELECT ?speaker ?given ?surname ?acronym ?text ?partyLabel ?type WHERE { <http://purl.org/linkedpolitics/eu/plenary/2010-12-16_AgendaItem_4> dcterms:hasPart ?speech. ?speech lpv:spe
SELECT ?speaker ?given ?surname ?acronym ?text ?partyLabel ?type
WHERE {
<http://purl.org/linkedpolitics/eu/plenary/2010-12-16_AgendaItem_4> dcterms:hasPart ?speech.
?speech lpv:speaker ?speaker.
?speaker foaf:givenName ?given.
?speaker foaf:familyName ?surname.
?speaker lpv:countryOfRepresentation ?country.
?country lpv:acronym ?acronym.
?speech lpv:translatedText ?text.
?speaker lpv:politicalFunction ?func.
?func lpv:institution ?institution.
?institution rdfs:label ?partyLabel.
?institution rdf:type ?type.
FILTER(langMatches(lang(?text), "en"))
}
SELECT?speaker?给定?姓氏?首字母缩写?文本?partyLabel?类型
在哪里{
D术语:有部分?演讲。
?语音lpv:扬声器?扬声器。
foaf演讲者:givenName?given。
?发言人foaf:家庭名称?姓氏。
?扬声器lpv:国家/地区?国家/地区。
?国家lpv:首字母缩写?首字母缩写。
?语音lpv:翻译文本?文本。
?扬声器lpv:政治功能?功能。
?职能lpv:机构?机构。
?机构rdfs:标签?零件标签。
?机构rdf:类型?类型。
过滤器(langMatches(lang(?text),“en”))
}
我得到了我想要的信息,但是所有的行都重复了好几次。这种情况发生在我试图通过政治功能来获取党的标签时。如何仅获取唯一行以及重复行出现在第一位的原因是什么?您使用了大量变量,但并没有选择所有变量。这意味着您要返回的行中的差异可能在您没有实际选择的变量中。例如,如果您有数据:
:a :hasChild :b .
:a :hasChild :c .
然后您运行了查询:
select ?parent where {
?parent :hasChild ?child .
}
您将在结果中得到两行:
?parent
-------
:a
:a
因为有两个绑定提供解决方案:一个where?child是:a,另一个where child是?b
为了避免这种情况,您可以使用选择distinct,这将删除“重复”的结果行。只要做:
选择不同的?说话人?给定?姓氏?首字母缩略词?文本?partyLabel?类型
我遇到了类似的问题,我找到了一个解决方案: