为什么 RDF 中对对象使用代码而不是字符串?

2024-05-13

例如:

entity:f06574 rdfs:label "Orioles"

或者这样的格式:

:tt0268252 a :Movie .

在任一情况下,f06574 and tt0268252是代码,而不是实体或实例的实际字符串。原因之一可能是因为同一个字符串可能指代不同的事物,但在 RDF 世界中,事物的标识符总是以其唯一的 URI 为前缀,因此即使使用字符串,也不会导致歧义,等等可读且不透明的代码。

这种表述的真正原因是什么? Freebase 中的三元组是相似的。


这类似于代理键 https://en.wikipedia.org/wiki/Surrogate_key在关系数据库理论中。代理键不是从应用程序数据派生的,因此不携带任何语义含义。这与从应用程序数据派生的自然键相反。

代理键的主要优点是,如果应用程序数据发生更改,则不需要更改对数据的引用。在自然键的情况下,如果应用程序数据发生变化,就会导致对数据的引用发生变化。因此,所有外键都需要相应更新。

在语义网中,任何三元组指的是tt0268252如果我们本质上希望标签从例如Movie to Film。如果我们使用像这样的字符串http://awesome/movie它需要更改为电影,我们需要更改 IRIhttp://awesome/film,这将违背语义网的原则(IRI 不应改变)。否则我们将不得不忍受http://awesome/movie with http://awesome/movie rdfs:label "Film"。这可能会导致更多的混乱而不是不透明的代码。

顺便说一句,这就是为什么有些人更喜欢使用持久统一资源定位符 https://en.wikipedia.org/wiki/Persistent_uniform_resource_locator当底层网络资源发生变化时提供弹性。以类似的方式,这些“代码”在应用程序数据发生变化时提供弹性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 RDF 中对对象使用代码而不是字符串? 的相关文章

随机推荐

  • 调用 event.preventDefault() 后是否有一种[通用]方法来调用默认操作?

    这个问题是为了开发 jQuery 插件和其他独立的 JavaScript 片段 不需要修改其他脚本文件来实现兼容性 我们都知道 event preventDefault 将阻止默认事件 因此我们可以运行自定义函数 但是如果我们想简单地怎么办
  • 隐藏“隧道到”会话

    我尝试隐藏 Chrome 社交部分生成的会话 但在主机列中隐藏标记为 隧道 的流量不起作用 尽管我成功地根据主机名模式隐藏了另一个会话 if oSession HTTPMethodIs CONNECT oSession ui hide y
  • 在 Swift 中将 gif 保存到 iOS 照片库

    我正在尝试保存位于已使用 Regift 代码创建的临时文件中的 GIF 图像 Regift https github com matthewpalmer Regift https github com matthewpalmer Regif
  • php 验证整数[重复]

    这个问题在这里已经有答案了 我想知道为什么这不起作用 echo gettype GET id returns string if is int GET id echo Integer 如何验证从 GET POST 传递的数据是否为整数 Ca
  • 求任意节点到一个节点的最小公共路径

    我的问题如下 我有一个 backup 节点和其他节点 从这些节点 我需要生成一个到备份节点的最小公共路径 未加权和无向图 我不需要每次都需要解决方案 我如何知道我是否可以生成这条路径 我正在考虑将图分成一些子图并搜索最小的 subpath
  • 将jquery与nodejs一起使用时的基本错误

    我正在尝试在我的项目中使用一些jquery 当我尝试使用它时 我在复制的代码中遇到了错误 并且无法获得任何有关它的谷歌帮助 var jquery require jquery var jquery create TypeError Obje
  • 自定义DataGridView列值在失去焦点后消失

    我在 WinForms 中为我的项目创建了一个自定义 DataGridViewColumn 该控件呈现完美 但一旦我输入值并移动到另一个单元格 当我签入 CellEndEdit 时 该值就会消失并显示为 null 以下是代码 class N
  • mmap() 和锁定文件

    考虑以下代码片段 故意缺少错误处理 void foo const char path off t size int fd void ret fd open path O RDWR lockf fd F LOCK 0 ret mmap NUL
  • PushReplacement 或 PushAndRemoveUntil(Route 路线) => false 不工作

    基于页面的路由无法使用命令式 api 完成 而是提供一个没有相应页面的新列表到 Navigator pages 包 flutter src widgets navigator dart 断言失败 第 3075 行 pos 7 hasPage
  • 如何在 html 5 画布上旋转单个对象?

    我试图弄清楚如何在 html 5 画布上旋转单个对象 例如 http screencast com t NTQ5M2E3Mzct http screencast com t NTQ5M2E3Mzct 我希望每一张卡都能以不同的角度旋转 到目
  • 如何使用AWK脚本检查表的所有列数据类型? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在这里 我正在检查表中第一列的数据类型 但我想知道AWK中表的所有列数据类型 我尝试过 但只能获得一列数据类型 例如 Column 1
  • Facebook API 错误 100 - 无效链接

    我正在使用 Facebook API 在我的 Rails 应用程序中创建发送对话框 我只是在 Javascript 中使用 Facebook 推荐的格式 作为 HTML 中的脚本 我的问题是我得到 API Error code 100 in
  • C# MonoGame 有帮助吗? (Content.Load("入侵者");)

    我正在 MonoGame 中使用 Open GL 制作太空入侵者游戏 并且尝试加载已添加到内容文件夹中的纹理 这是一个名为 Invader 的 PNG 文件 我使用的代码是 invader Content Load
  • 配置 KnpPaginator 以与 Twitter Bootstrap 配合使用

    i m trying to apply twitter bootstrap css style to my knp pagination without modifying the vendor Is there a way to conf
  • PHP MS Word 文件页数

    实际上我正在尝试计算 ms word 文件的页数 我正在使用这个 php 脚本 但是 没有向我显示确切的结果 并且脚本不是那么快 谁能帮助我获得更好的脚本 word new COM word application if word echo
  • Html5 全屏视频

    有什么办法可以做到这一点吗 我想全屏播放视频 没有浏览器 环境width 100 height 100 保持浏览器可见 不 目前还没有办法做到这一点 我希望他们在浏览器中添加这样的未来 EDIT 现在有一个全屏API http dvcs w
  • 将启用的计算机添加到 Active Directory OU

    我正在尝试以编程方式将计算机添加到我公司的 Active Directory 我在互联网上搜索了很长时间 但找不到解决方案 My code DirectoryEntry dirEntry new DirectoryEntry LDAP OU
  • 哪个更快:堆栈分配或堆分配

    这个问题听起来可能相当简单 但这是我与另一位合作的开发人员进行的辩论 我小心翼翼地在可能的地方进行堆栈分配 而不是堆分配它们 他一边跟我说话 一边看着我 并评论说没有必要 因为他们的表现是一样的 我总是有这样的印象 堆栈的增长是恒定的时间
  • 查找矩阵内的匹配子矩阵

    我有一个 100x200 2D 数组 表示为由黑色 0 和白色 255 单元组成的 numpy 数组 它是一个位图文件 然后我有 2D 形状 最容易将它们视为字母 它们也是 2D 黑白单元格 我知道我可以天真地迭代矩阵 但这将是我的代码的
  • 为什么 RDF 中对对象使用代码而不是字符串?

    例如 entity f06574 rdfs label Orioles 或者这样的格式 tt0268252 a Movie 在任一情况下 f06574 and tt0268252是代码 而不是实体或实例的实际字符串 原因之一可能是因为同一个