1

有没有办法在 SPARQL 中生成 UUID?我正在使用 Jena-Fuseki 版本。我不能使用 b 节点。谢谢!

4

3 回答 3

3

由于 SPARQL 1.1 UUID 生成现在是标准的一部分,并且在 Jena ARQ 中已经支持了一段时间。

UUID()函数将返回 UUID 作为 URI

StrUUID ()函数将 UUID 作为字符串返回

例如

SELECT (UUID() AS ?uuid) (StrUUID() AS ?strUuid) WHERE { }
于 2013-06-21T21:31:14.420 回答
2

Jena 的 ARQ 包括许多作为 SPARQL扩展的内置函数,包括 UUID 生成器。这些函数中的许多都列在ARQ 文档的 ARQ 中的函数uuid页面上,但不是。这是使用 Jena 的命令行工具的示例用法。以下查询位于名为query.sparql.

prefix afn: <http://jena.hpl.hp.com/ARQ/function#>
prefix ex: <http://example.org/>

construct { 
  ?uuid a ex:UUID
}
where {
  BIND( afn:uuid() as ?uuid ) 
}

命令行arq工具需要数据输入,所以我创建了一个名为data.n3. 该construct查询返回一个 RDF 图,表示生成的 UUID 是一个ex:UUID.

$ arq --query query.sparql --data data.n3 
@prefix afn:     <http://jena.hpl.hp.com/ARQ/function#> .
@prefix ex:      <http://example.org/> .

<urn:uuid:295322a3-7eab-4e4c-b0a0-ca8ac77f3205>
      <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
                    ex:UUID .

使用不同的序列化格式:

$ arq --query query.sparql --data data.n3  --results RDF/XML
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:afn="http://jena.hpl.hp.com/ARQ/function#"
    xmlns:ex="http://example.org/">
  <ex:UUID rdf:about="urn:uuid:10c7c8f0-4154-4bbf-ab0c-c52a4196b804"/>
</rdf:RDF>
于 2013-06-21T19:13:43.447 回答
0

实际上,Jena 似乎在 PREFIX afn 中提供了几个函数:斯特鲁伊德()。

于 2013-06-21T18:28:32.170 回答