我不太明白为什么在SPARQL中他们没有实现基本的逻辑运算符.然而,在大多数情况下,可以以多种方式获得相同的结果.
这个问题的目的是快速参考可以用"或"语句替代的低谷.
这是我能想到的:
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)
FILTER例如:
SELECT * WHERE
{
?s ?p ?o.
FILTER …Run Code Online (Sandbox Code Playgroud) 是否可以使用 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查询中以某种方式使用数值作为字符串值吗?例如,考虑以下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) 我需要根据时间动态生成图表的名称.有些人认为我很难
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?