如何在dbpedia中使用SPARQL搜索与给定术语部分匹配的rdfs:label?
我使用此查询搜索包含单词“Medi”的所有标签如何在dbpedia中使用SPARQL搜索与给定术语部分匹配的rdfs:label?,sparql,semantic-web,dbpedia,rdfs,sparqlwrapper,Sparql,Semantic Web,Dbpedia,Rdfs,Sparqlwrapper,我使用此查询搜索包含单词“Medi”的所有标签 然而,一旦我把“医疗保险”这个词从“医疗保险”改为“医疗保险”,它就不起作用了,而且超时了。如何让它与Medicare这样的较长单词一起工作,即提取包含Medicare一词的所有标签。您的查询必须迭代DBpedia中的所有标签(这是一个相当大的数字),然后应用字符串包含检查。这确实很贵 即使是计数查询也会导致“估计超时错误”: 选择计数(?标签),其中 { ?概念RDF:标签?标签 过滤器(正则表达式(str(?label),“Medi”))
然而,一旦我把“医疗保险”这个词从“医疗保险”改为“医疗保险”,它就不起作用了,而且超时了。如何让它与Medicare这样的较长单词一起工作,即提取包含Medicare一词的所有标签。您的查询必须迭代DBpedia中的所有标签(这是一个相当大的数字),然后应用字符串包含检查。这确实很贵 即使是计数查询也会导致“估计超时错误”:
选择计数(?标签),其中
{
?概念RDF:标签?标签
过滤器(正则表达式(str(?label),“Medi”))
过滤器(langMatches(lang(?标签),“en”))
}
两种选择:
选择不同的标签,其中{
?概念RDF:标签?标签。
?bif标签:包含“医疗保险”
过滤器(langMatches(lang(?标签),“en”))
}
您好,我实际上是在本地服务器上运行dbpedia。我更喜欢一个更快的解决方案,因为速度慢意味着糟糕的用户体验。所以,我复制粘贴了你的选项#1。得到了以下信息:
Virtuoso 37000错误SP030:SPARQL编译器,第5行:“?label”在“bif:contains”之前的语法错误SPARQL查询:定义sql:big data const 0#输出格式:text/html定义sql:signal void variables 1选择DISTINCT?label其中{?concept rdfs:label?label?label?label bif:包含“Medicare”过滤器(langMatches)(lang(?label),“en”)}
你能帮我调试一下吗:)啊,对不起,我忘了第一个三重模式后面的点。现在应该可以工作了。
select distinct ?label where
{
?concept rdfs:label ?label
filter contains(?label,"Medi")
filter(langMatches(lang(?label),"en"))
}