我在Jena中以编程方式生成RDF文件,即当我在rdf(实例)中插入数据时,我需要有一个唯一的URI(它将引用资源),有点像rdbms中的主键。我想知道在Jena中可以做的事情就像我为一个实例创建Resource我可以生成URI吗?
示例:
Resource resAnswer = ModelCreation.md.createResource(RDFResourcesURI.Answer_Resource_URI + answer.getAnswer_id());
- 这里我是硬编码(或用户输入)的answer_id,然后附加到预定义的URI。我可以生成它而不是硬编码(比如mysql中的自动增量)吗?
答案 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