小编ffa*_*ffa的帖子

SPARQL查询中的"或"

我不太明白为什么在SPARQL中他们没有实现基本的逻辑运算符.然而,在大多数情况下,可以以多种方式获得相同的结果.

这个问题的目的是快速参考可以用"或"语句替代的低谷.

这是我能想到的:

1)UNION

例如:

SELECT * WHERE
{  { ?s :propA ?o } UNION { ?s :propB ?o }  }
Run Code Online (Sandbox Code Playgroud)

- 通常不合适,因为它可能变得非常冗长,因为

SELECT * WHERE { 
    { GRAPH ?g {?s ?p ?o. ?o ?pp ?data1}} UNION 
    { GRAPH ?g {?s ?p ?o. ?o ?pp ?data2}}
} 
Run Code Online (Sandbox Code Playgroud)

不起作用

SELECT * WHERE { 
    GRAPH ?g {
       ?s ?p ?o. 
       {?o ?pp ?data1} UNION 
       {?o ?pp ?data2} 
    }
 }
Run Code Online (Sandbox Code Playgroud)

(至少没有Stardog)

2)FILTER

例如:

SELECT * WHERE
    { 
        ?s ?p ?o.
        FILTER …
Run Code Online (Sandbox Code Playgroud)

sparql stardog linked-data

16
推荐指数
2
解决办法
1万
查看次数

使用 sparql 更新重命名图形

是否可以使用 sparql 更新重命名图形?

我看到的唯一方法是:

INSERT {GRAPH uri:graphNEW {?s ?p ?o}}
WHERE  {GRAPH uri:graphOLD {?s ?p ?o}};
DROP GRAPH uri:graphOLD
Run Code Online (Sandbox Code Playgroud)

但我不能 100% 确定所有三元组和属性(如语言标签和 xsd 格式)都将复制到新图中。

有没有更聪明的方法来做到这一点?

编辑:由于罗曼苏西的建议,问题得到了改善

sparql linked-data

7
推荐指数
1
解决办法
713
查看次数

在SPARQL中使用数值作为字符串值

可以在SPARQL查询中以某种方式使用数值作为字符串值吗?例如,考虑以下RDF数据,查询和所需结果:

知识库

@prefix gr:  <http://purl.org/goodrelations/v1#>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.

:o a gr:QuantitativeValueFloat;
     gr:hasMinValueFloat "1,0"^^xsd:float
     gr:hasMaxValueFloat "10,0"^^xsd:float
Run Code Online (Sandbox Code Playgroud)

询问

PREFIX gr: <http://purl.org/goodrelations/v1#>    
SELECT ?o ?v
WHERE {
  ?o a gr:QuantitativeValueFloat;
       gr:hasMinValueFloat ?vMin;
       gr:hasMaxValueFloat ?vMax.
  CONCAT((?vMin, ?vMax) as ?v)
}
Run Code Online (Sandbox Code Playgroud)

理想的结果

-----------------
| o  | v        | 
=================
| :o | 1,0-10,0 | 
-----------------
Run Code Online (Sandbox Code Playgroud)

sparql linked-data

4
推荐指数
1
解决办法
443
查看次数

动态生成urn/iri/uri

我需要根据时间动态生成图表的名称.有些人认为我很难

select ?g where { 
    bind(concat("<urn:myNewGraph_",str(now()),">") as ?g)
}
Run Code Online (Sandbox Code Playgroud)

本来可以做到这一点,但是使用Stardog我得到一个空结果.

相反,我运行这个

select ?g where { 
    bind(concat("urn:myNewGraph_",str(now())) as ?g)
}
Run Code Online (Sandbox Code Playgroud)

我明白了 urn:myNewGraph_2015-05-28T09:37:11.823Z

有任何想法吗?

而且我不确定即使我能以某种方式得到一个字符串,就像它<urn:myNewGraph_2015-05-28T09:37:11.823Z>可以作为图形名称的有效参数一样,从这个不工作的测试中可以看出:

INSERT {graph ?g {<urn:s> <urn:p> <urn:o>}
where { 
    ?g="<rn:myNewGraph_2015-05-28T09:37:11.823Z>"
}
Run Code Online (Sandbox Code Playgroud)

是否有正确的方法来动态生成urn/iri/uri?

sparql

3
推荐指数
1
解决办法
1833
查看次数

标签 统计

sparql ×4

linked-data ×3

stardog ×1