在Jena中为RDF生成URI

时间:2011-10-11 06:28:19

标签: rdf semantic-web jena

我在Jena中以编程方式生成RDF文件,即当我在rdf(实例)中插入数据时,我需要有一个唯一的URI(它将引用资源),有点像rdbms中的主键。我想知道在Jena中可以做的事情就像我为一个实例创建Resource我可以生成URI吗?

示例:

Resource resAnswer = ModelCreation.md.createResource(RDFResourcesURI.Answer_Resource_URI + answer.getAnswer_id());

- 这里我是硬编码(或用户输入)的answer_id,然后附加到预定义的URI。我可以生成它而不是硬编码(比如mysql中的自动增量)吗?

3 个答案:

答案 0 :(得分:3)

UUID http://www.ietf.org/rfc/rfc4122.txt有一个URI方案,因此您可以使用它来将UUID转换为URI,例如例如瓮:UUID:2238b240-f3eb-11e0-be50-0800200c9a66

或者,您可以将UUID附加到某个前缀,例如http://my.example/id/2238b240-f3eb-11e0-be50-0800200c9a66

如果您希望能够使其可解析,则基于HTTP的一次性URI很好。

答案 1 :(得分:1)

如果您只想要唯一ID,则可以使用UUID.randomUUID()UUID.fromString(name)

之类的内容

UUID位于java.util

答案 2 :(得分:0)

我使用URN来识别我的RDF资源,因为我没有发布我的资源,所以增加了很多价值。耶拿图书馆以UUID的形式生成URN

scala> import com.hp.hpl.jena.shared.uuid.JenaUUID
import com.hp.hpl.jena.shared.uuid.JenaUUID

scala> val resourceURN = JenaUUID.generate().asURN()
resourceURN: String = urn:uuid:0a9ac70c-2ad1-11b2-8012-10ddb1d60524