Sparql 基于具有特定值的特定属性筛选结果(导致连接到DBpedia超时)

Sparql 基于具有特定值的特定属性筛选结果(导致连接到DBpedia超时),sparql,semantic-web,dbpedia,Sparql,Semantic Web,Dbpedia,我正在尝试使用Prolog和DBpedia进行SPARQL查询。我的目标是在文本中标记所有人,所以为了检索名人,我做了这个查询,删除了所有结果,如音乐组(乐队)和组织,因为我只想标记真实的人,而不是抽象的人 select ?person where{ { ?person a dbpedia-owl:Person; rdfs:label "Name Surname" @it. } UNION { ?person a dbpedia-owl:Person; foaf

我正在尝试使用Prolog和DBpedia进行SPARQL查询。我的目标是在文本中标记所有人,所以为了检索名人,我做了这个查询,删除了所有结果,如音乐组(乐队)和组织,因为我只想标记真实的人,而不是抽象的人

 select ?person where{
  {
    ?person a dbpedia-owl:Person; rdfs:label "Name Surname" @it. 
  }
 UNION
  {
    ?person a dbpedia-owl:Person; foaf:name "Name"@it; foaf:surname "Surname"@it.      
  }
 UNION
  {
    ?person a dbpedia-owl:Person; foaf:name "Name Surname"@it.
  }

  FILTER NOT EXISTS  {
    {  ?subject <http://airpedia.org/ontology/type_with_conf#10> dbpedia-owl:Band .
       ?subject rdfs:label ?artistName .
       FILTER ( str(?artistName) = "Name Surname" ) 
    }
    UNION 
    { 
      ?subject <http://airpedia.org/ontology/type_with_conf#10>  dbpedia-owl:Organisation .
      ?subject rdfs:label ?artistName .
      FILTER ( str(?artistName) = "Name Surname" )
    }
  }
}
选择人在哪里{
{
?person a dbpedia owl:person;rdfs:label“Name-姓氏”@it。
}
联合
{
?person a dbpedia owl:person;foaf:name“name”@it;foaf:name“姓氏”@it。
}
联合
{
?person a dbpedia猫头鹰:person;foaf:name“name-name”@it。
}
筛选器不存在{
{?主题dbpedia owl:Band。
?主题rdfs:标签?艺术家姓名。
过滤器(str(?artistName)=“Name-Name”)
}
联合
{ 
?主题dbpedia owl:组织。
?主题rdfs:标签?艺术家姓名。
过滤器(str(?artistName)=“Name-Name”)
}
}
}
我用它。Dbpedia的版本如果运行此查询,请使用此版本,尽管结果对我不好。 例如,如果我搜索“Metallica”作为一个我不想得到结果的人,原因是它是一个乐队还是(对我来说,但在这个例子中,Metallica也是一个组织)一个组织 而且效果很好这是结果这些是给“迈克尔·杰克逊”的

我的问题是,当我把一个不是歌手或乐队的人放进去时,例如,如果我尝试像“吉姆·凯利”这样的东西,我会得到“错误转换超时吉姆·凯利”

我想我遇到这个问题是因为Jim Carrey没有定义这些属性,但是我尝试在第一个过滤器的每个子查询中放置一个可选的标记,但是我得到了同样的错误 我将代码放在一个pastebin文件中,这样您就可以找到所有三个查询

我知道我不应该在查询中使用静态字符串,或者有很多更好的模式,但我需要这样做,因为我用prolog编写查询,然后发送到sparql online,所以我必须这样做

对于@Joshua,我试图删除notexist(FILTER)中的过滤器(字符串),但我将不再工作,感谢您的帮助

请原谅我做了太多的编辑,但我解决了部分启动问题,但没有找到解决方案 第一个问题:基于具有特定值的特定属性筛选结果 第二:第一种方法仅适用于具有特定属性(如上所示)的对象,如(Metallica、Michael Jackson、甲壳虫乐队等),但不适用于过滤器中没有属性的对象


(我不能使用两个以上的链接,因为我是新手,所以我会在评论中添加一个带有pastebin链接的链接,链接有3个查询及其结果)

,因为可能没有一个或多个名称为
“name name-names”的链接“@it
在DBpedia中,很难重现您的结果。你有没有可能在这里使用一个真实的名字,从而得到有问题的结果?然后我们可以测试解决方案是否实际有效。在这个pastebin文件中,您可以找到我的3个查询(始终是同一个查询,具有不同的值,并将结果链接到Jim Carrey查询,因为我无法链接: