Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sparql Blazegraph全文搜索和总计数_Sparql_Blazegraph - Fatal编程技术网

Sparql Blazegraph全文搜索和总计数

Sparql Blazegraph全文搜索和总计数,sparql,blazegraph,Sparql,Blazegraph,在SPARQL中,我可以执行以下查询,以检索一个查询结果中的字段和总计数: SELECT ?total ?s WHERE { { SELECT (COUNT(?s) AS ?total) WHERE { ?s <https://some/predicate/for/var1> ?var1 ; <https://some/predicate/for/var1> ?var2 F

在SPARQL中,我可以执行以下查询,以检索一个查询结果中的字段和总计数:

SELECT  ?total ?s
WHERE
  { 
    { SELECT  (COUNT(?s) AS ?total)
      WHERE
        { ?s  <https://some/predicate/for/var1>  ?var1 ;
              <https://some/predicate/for/var1>  ?var2
          FILTER ( ( ?var1 = "something" ) && ( ?var2 = "something2" ) )
        }
    }
    { SELECT  ?s
      WHERE
        { ?s  <https://some/predicate/for/var1>  ?var1 ;
           <https://some/predicate/for/var1>  ?var2
       FILTER ( ( ?var1 = "something" ) && ( ?var2 = "something2" ) )
        }
   LIMIT   3
  }
 }
我想为做同样的事情,它可以如下使用
的bds:搜索“某物”。
但是,使用与上一个相同的结构组合查询不起作用:

PREFIX  bds:  <http://www.bigdata.com/rdf/search#>
SELECT  ?total ?s ?org
WHERE
{
{ SELECT  (COUNT(?s) AS ?total)
    WHERE{
          ?matchedValue
                    bds:search        "something" ;
                    bds:relevance     ?score ;
                    bds:rank          ?rank .
          ?s        ?matchedProperty  ?matchedValue
          FILTER ( ! isBlank(?s) )
    }
}
{ SELECT  ?s ?matchedProperty ?score ?rank
    WHERE{
          ?matchedValue
                    bds:search        "something" ;
                    bds:relevance     ?score ;
                    bds:rank          ?rank .
          ?s        ?matchedProperty  ?matchedValue
          FILTER ( ! isBlank(?s) )
    }
    LIMIT 10 
 }
}
前缀bds:
选择“总计”组织
哪里
{
{选择(计数(?s)为总计)
在哪里{
?匹配值
搜索“某物”;
bds:相关性?得分;
等级?等级。
?s?匹配属性?匹配值
过滤器(!isBlank(?s))
}
}
{选择?s?匹配属性?分数?排名
在哪里{
?匹配值
搜索“某物”;
bds:相关性?得分;
等级?等级。
?s?匹配属性?匹配值
过滤器(!isBlank(?s))
}
限制10
}
}

即使如此,这些子查询也会分别返回正确的结果。

正如@stanislav kralin所正确提到的,您必须明确使用SERVICE子句:

PREFIX  bds:  <http://www.bigdata.com/rdf/search#>
SELECT  ?total ?s ?org
WHERE
{
  { SELECT  (COUNT(?s) AS ?total)
      WHERE {
         SERVICE <http://www.bigdata.com/rdf/search#search> {
              ?matchedValue
                        bds:search        "something" ;
                        bds:relevance     ?score ;
                        bds:rank          ?rank .
          }
          ?s        ?matchedProperty  ?matchedValue
          FILTER ( ! isBlank(?s) )
        }
}
  { SELECT  ?s ?matchedProperty ?score ?rank
      WHERE {
         SERVICE <http://www.bigdata.com/rdf/search#search> {
            ?matchedValue
                  bds:search        "something" ;
                  bds:relevance     ?score ;
                  bds:rank          ?rank .
          }
          ?s        ?matchedProperty  ?matchedValue
          FILTER ( ! isBlank(?s) )
        }
      LIMIT 10 
 }
}
前缀bds:
选择“总计”组织
哪里
{
{选择(计数(?s)为总计)
在哪里{
服务{
?匹配值
搜索“某物”;
bds:相关性?得分;
等级?等级。
}
?s?匹配属性?匹配值
过滤器(!isBlank(?s))
}
}
{选择?s?匹配属性?分数?排名
在哪里{
服务{
?匹配值
搜索“某物”;
bds:相关性?得分;
等级?等级。
}
?s?匹配属性?匹配值
过滤器(!isBlank(?s))
}
限制10
}
}
Maybe:“全文搜索只能在子查询中使用显式服务调用。”
PREFIX  bds:  <http://www.bigdata.com/rdf/search#>
SELECT  ?total ?s ?org
WHERE
{
  { SELECT  (COUNT(?s) AS ?total)
      WHERE {
         SERVICE <http://www.bigdata.com/rdf/search#search> {
              ?matchedValue
                        bds:search        "something" ;
                        bds:relevance     ?score ;
                        bds:rank          ?rank .
          }
          ?s        ?matchedProperty  ?matchedValue
          FILTER ( ! isBlank(?s) )
        }
}
  { SELECT  ?s ?matchedProperty ?score ?rank
      WHERE {
         SERVICE <http://www.bigdata.com/rdf/search#search> {
            ?matchedValue
                  bds:search        "something" ;
                  bds:relevance     ?score ;
                  bds:rank          ?rank .
          }
          ?s        ?matchedProperty  ?matchedValue
          FILTER ( ! isBlank(?s) )
        }
      LIMIT 10 
 }
}