有没有办法在SPARQL中生成UUID?我正在使用Jena-Fuseki版本。我不能使用b节点。谢谢!
答案 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()。