如何使用Jena SPARQL UUID?

时间:2013-06-21 18:17:39

标签: sparql uuid jena

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

3 个答案:

答案 0 :(得分:3)

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

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

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

返回

E.g。

SELECT (UUID() AS ?uuid) (StrUUID() AS ?strUuid) WHERE { }

答案 1 :(得分:2)

Jena的ARQ包含许多内置函数SPARQL extensions,包括UUID生成器。其中许多功能都列在ARQ文档的Functions in 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>

答案 2 :(得分:0)

实际上,Jena似乎在PREFIX afn提供了一些功能:&lt; http://jena.hpl.hp.com/ARQ/function#&GT; - afn:uuid()(返回一个URN)和它的对应物afn:struuid()。