Filter SPARQL-过滤器注释。标签和英文摘要,保留整数和uri值

Filter SPARQL-过滤器注释。标签和英文摘要,保留整数和uri值,filter,sparql,Filter,Sparql,我正试图从DBPedia获取有关某些资源的可用信息。 但是,我想过滤掉标签、评论和摘要,使其只使用英语 我最初的问题是: SELECT ?property ?value (lang(?value ) as ?lang) { <http://dbpedia.org/resource/England> ?property ?value . } 不幸的是,我没有得到任何结果,因为查询为false。 任何帮助都将不胜感激。经过深入研究,我已经回答了自己的问题。 您可以使用FILTER功能获

我正试图从DBPedia获取有关某些资源的可用信息。 但是,我想过滤掉标签、评论和摘要,使其只使用英语

我最初的问题是:

SELECT ?property ?value (lang(?value ) as ?lang) { <http://dbpedia.org/resource/England> ?property ?value . }
不幸的是,我没有得到任何结果,因为查询为false。
任何帮助都将不胜感激。

经过深入研究,我已经回答了自己的问题。 您可以使用
FILTER
功能获取所有值,包括或不包括任何可用的
@en
语言
部分。为此,您可以使用以下部分:

FILTER(LANG(?value) = "" || LANGMATCHES(LANG(?value), "en")
但是,这会导致丢失所有可用的
uri
和其他
链接。
如果还想获得除英文过滤结果之外的所有链接,还需要一个类似于
startsWith
函数的函数。它在SPARQL语言中的等价物称为
strstarts
。我已将以下部分添加到查询中的
过滤器中,并获得了最初需要的所有结果

strstarts(str(?value), 'http'))
这就是结果查询。提示我已经删除了前缀,因为我在查询中不需要它们

 SELECT ?property ?value { <http://dbpedia.org/resource/England> ?property ?value .
      FILTER(LANG(?value) = "" || LANGMATCHES(LANG(?value), "en") || strstarts(str(?value), 'http'))}
选择属性值{属性值。
过滤器(LANG(?value)=“LANGMATCHES(LANG(?value),“en”)| | strstarts(str(?value),“http”)}

@StanislavKralin使用以下命令没有结果:
前缀rdfs:SELECT?property?value(lang(?value)as?lang){?property?value.FILTER(lang(rdfs:label)=“en”)}
更新:我处理查询并像这样编写:
SELECT?property?value(lang(?value)as?lang){property?value.FILTER(lang(?value)=“| | LANGMATCHES(LANG(?value),“en”)}
提供了我几乎想要的结果。执行此查询将导致丢失所有可用的uri链接。有没有一种方法可以得到相同的结果,但也包括所有的链接?我建议你的答案是原始答案的改进。我不会因为它不是最有效的查询而像你一样给出否定的观点。应该清楚的是,我不是SPARQL方面的专家,否则我就不会首先提出这个问题。尽管如此,还是要感谢您的输入。确认执行字符串操作的实体类型更有效,但我不在乎。顺便说一句,我也没有否决你的答案,你应该小心这样的假设,因为你看不出是谁做了什么。无论如何,我会删除我之前的评论,你的查询是有效的,因此,谁在乎。别忘了接受自己的答案,将问题标记为已解决。
strstarts(str(?value), 'http'))
 SELECT ?property ?value { <http://dbpedia.org/resource/England> ?property ?value .
      FILTER(LANG(?value) = "" || LANGMATCHES(LANG(?value), "en") || strstarts(str(?value), 'http'))}