【问题标题】:Generating URIs in Jena for RDF在 Jena 中为 RDF 生成 URI
【发布时间】:2011-10-11 06:28:18
【问题描述】:

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

例子:

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

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

【问题讨论】:

标签: rdf semantic-web jena


【解决方案1】:

有一个 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 是不错的选择。

【讨论】:

    【解决方案2】:

    如果您只想要唯一的 ID,您可以使用 UUID.randomUUID()UUID.fromString(name) 之类的东西

    UUIDjava.util 包中

    【讨论】:

      【解决方案3】:

      我使用URN's 来标识我的RDF 资源,因为URL 没有增加太多价值,因为我没有发布我的资源。有一个 Jena 库以URN 的形式生成UUID

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多