生成临时 URI

问题描述

我有一个应用程序,它针对 URI x 处的特定资源生成一个 URI 系统,例如 x#ax#b 等,并将它们存储在 RDF 图中的三元组中的任何位置,甚至作为谓词。

这很好,但是当应该以这种方式描述的资源是“内联”提供的,即没有 URI 时,就会出现问题。在 RDF 中,我可以选择使用空白节点,但它们有两个问题:

  • 空白节点通常被认为具有存在意义,即它们表示某些节点。应用程序产生的节点不仅仅是一些节点——它们正是从在特定时间提供给它们的一种特定资源产生的节点。相比之下,空白节点可以通过与其他节点具有相同关系的具体 URI 节点来“满足”,如果存在这样的节点,则变得多余。

  • 遗憾的是,不能将空白节点用作 RDF 中的谓词(或至少在某些格式化方案中)。

这意味着我必须找到一个URI,但我想知道选择什么方案。到目前为止,我已经考虑了这些选项:

  • 生成新的 UUID 并使用 urn:uuid:。这已经足够了,但我更喜欢更好地表达 URI 临时状态的东西,这样很明显它只是为这种情况生成的。相比之下,UUID 也可以用作更持久资源的稳定标识符,并且没有内在的区别。

  • 使用专有 URI,例如 nodeID:,它有时用于空白节点,但仍然是有效的 URI。我也会向其附加一个新的 UUID。这对我来说似乎更好一些,因为它模仿空白节点但没有不同的语义,但我仍然更喜欢更标准化的东西。

  • 使用 tag: URI。标签具有时间分量,因此时间概念被充分表达。但是,我不确定权限,因为运行该应用程序的人本质上将成为权限。另一种选择是使用我自己的域,并以某种方式“授予”运行该应用程序的任何人(或仅授予任何人)铸造标签的权利。通过这种方式,我可以表达我需要的一切(资源的临时概念、唯一性,因为我还将在 URI 中包含一个新的 UUID,以及对网站本身标签的用途和用途的描述)。>

    在我看来这不是一个糟糕的解决方案,但它在某种程度上限制了应用程序的使用,因为一旦我对域的控制到期,应用程序的用户将不再有权在原始权限下创建新标签,他们将不得不找到一个新的(除非我将权限留空;虽然规范没有严格规定,但任何东西在技术上都是有效的,因为实现不能拒绝不符合规范的权限)。我还担心时间组件本身,因为它可能会带来安全风险(尽管它可能不太具体)。我也不太习惯标签的概念,所以我不确定这是否违背了他们的精神。

我可以在应用程序中提供所有这些方法作为选项,但我想知道是否有更好的选择。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...