写点什么

JSON-LD 进入 W3C 推荐状态

  • 2014-02-08
  • 本文字数:1711 字

    阅读完需:约 6 分钟

W3C RDF 工作组已将 JSON-LD 和 JSON-LD 1.0 处理算法与 API 标准推进到推荐状态。JSON-LD 是一个标准,旨在向 JSON 中加入“链接数据(linked data)”语义。JSON-LD 文档看上去是像下面这样:

复制代码
{
"@context": "http://json-ld.org/contexts/person.jsonld",
"name": "Manu Sporny",
"homepage": "http://manu.sporny.org/",
"image": "http://manu.sporny.org/images/manu.png"
}

如果还不熟悉 W3C 的标准化流程,可以先了解一下:一个规范可以处于三个成熟层次之中。推荐(Recommendation)状态是特定规范的最后一步。W3C 的建议是,推荐状态可以“广泛实现”,也就是说,相应规范已经为广泛的公开使用做好准备,而且足够稳定。

人们投入了很多工作才使 JSON-LD 进入这一状态:在 4 年多的时间里,有着 100 次电话会议,281 份议题纪要,2 000 次代码提交,以及 2 500 封电子邮件。

进一步了解 JSON-LD

下面是一个直接选自规范的例子:

复制代码
{
"name": "Manu Sporny",
"homepage": "http://manu.sporny.org/",
"image": "http://manu.sporny.org/images/manu.png"
}

这个 JSON 文档表示一个人。人们很容易推断这里的语义:“name”是人的名字,“homepage”是其主页,“image”是其某种照片。然而机器不理解“name”和“image”这样的术语。

为解决该问题,我们可以使用链接数据。下面使用 JSON-LD 表示上面的例子:

复制代码
{
"http://schema.org/name": "Manu Sporny",
"http://schema.org/url": { "@id": "http://manu.sporny.org/" },
"http://schema.org/image": { "@id": "http://manu.sporny.org/images/manu.png" }
}

通过链接到 schema.org 上的定义,我们可以教给机器如何理解“name”、“url”和“image”的语义。不过有点复杂了。通过 JSON-LD 所谓的“上下文(context)”,我们可以兼顾第一个例子的简洁性和第二个例子的语义理解。基于第一个例子,我们引入一个 context:

复制代码
{
"@context": "http://json-ld.org/contexts/person.jsonld",
"name": "Manu Sporny",
"homepage": "http://manu.sporny.org/",
"image": "http://manu.sporny.org/images/manu.png"
}

我们现在链接到了 json-ld.org 上的一个 context。context 文档看上去像下面这样:

复制代码
{
"@context":
{
"name": "http://schema.org/name",
"image": {
"@id": "http://schema.org/image"
"@type": "@id"
},
"homepage": {
"@id": "http://schema.org/url",
"@type": "@id"
}
}
}

这种方法的另一个优点是,多个文档可以使用同一个 context。

为什么没有选择 RDF

JSON-LD 呈现出语义 Web 技术的风格,但是两者并不完全一样。它们有着类似的目标:围绕某类知识提供共享的上下文。例如,每个网站不应该围绕“name”重复发明概念。假设我们想研究几个不同的服务,以比较人们识别自身的方式。为了得到人们的名字,我们不得不针对每种 API 重新编写不同的代码,以确定如何取得其名字。

利用语义 Web 技术,每个服务都会暴露出“这是一个人( Person )”这一语义,我们只需要编写一次代码,理解人是什么。而且可以跨多种服务复用代码。

尽管 JSON-LD 和更为传统的语义 Web 技术(如 RDF)有着同样的最终目标,但是二者没有使用同样的构建块,JSON-LD W3C 社区组的主席 Manu Sporny 就两者之间的关系写了一篇博客

这就是我实现 JSON-LD 时没有选择大部分语义 Web 技术栈(TURTLE/SPARQL/Quad Stores),而选择从头做起的原因。这一策略并不适合所有人,但却是唯一适合我们的,而且是我们所能想到的唯一能让更传统的语义 Web 技术从骄傲自满中醒悟过来的方式。

Manu 还就规范简洁、清晰的文风做了详细说明:

我们尽最大努力剔除 JSON-LD 规范中复杂的技术行话。而且我特别注意在 JSON-LD 1.0 规范中完全不提 RDF,因为读者不需要为了理解 JSON-LD 文档转而去读 RDF 相关资料。在这一点上我们推回了很多次,我后面还会讲,但是问题在于我们想以相对于典型的 Internet 和 Web 规范更具谈话风格的方式传达信息,因为在规范中太早进入学究式风格会定下错误的基调。

这两点都表明, JSON-LD 尝试将语义 Web 技术相关的探讨向如下方向推进:简单、不复杂以及面向一般开发人员。

查看英文原文: JSON-LD Reaches W3C Recommendation Status

2014-02-08 01:335338
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 150.9 次阅读, 收获喜欢 35 次。

关注

评论

发布
暂无评论
发现更多内容

嘉为蓝鲸自动化运维中心V2.6:规范运维范式,保障数字化转型成果

嘉为蓝鲸

AIOPS 自动化运维

从加班到准点走:程序员用飞算 JavaAI 实现需求交付效率翻倍

飞算JavaAI开发助手

火山引擎云上实战: DeepSeek R1 大模型(全尺寸)

火山引擎开发者社区

黑龙江省多家政务服务移动端及政企内部办公应用适配鸿蒙,加速智慧政务升级

最新动态

和鲸科技执行总裁殷自强受邀主讲华中附属同济医院大模型应用通识首期课程

ModelWhale

人工智能 大数据 医疗

三星Neo QLED再次进化:高端电视还能怎么玩?

Alter

如何通过CAD坐标找点?

在路上

cad cad看图 CAD看图王

为什么大厂团队禁用代码片段工具?完整生成工具的 4 大不可替代性

飞算JavaAI开发助手

APISIX 可观测性最佳实践

观测云

APISIX

摊牌了!一文教会你轻松上手豆包MarsCode 编程助手!

火山引擎开发者社区

运维的价值为何经常被挑战?哪些工作更有价值?

巴辉特

运维 SRE

交易所开发:数字文明进化的基础设施革命

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 交易所开发代币开发

DApp开发中的LP分红系统:流动性激励机制的范式革命与生态重构

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

ITSM运营双引擎:科学度量指标体系×LLM智能分析实战

嘉为蓝鲸

运维 AIOPS ITSM

链游冷启动核弹:DeFi清算收益+社交裂变,7天零成本获取10万真实玩家

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

文献解读-SARS-CoV-2 variant Delta rapidly displaced variant Alpha in the United States and led to higher viral loads

INSVAST

生信服务 delta 变异检测 全基因组测序 基因分析

Java 开发者必备:2025 年 AI 工具推荐

飞算JavaAI开发助手

从 Copilot 到垂直工具:AI 编程的 "专精特新" 进化论

飞算JavaAI开发助手

Netty源码—Pipeline和Handler

不在线第一只蜗牛

Netty

CAD中镜像功能真好用,大大提高绘图效率!

在路上

cad cad看图 CAD看图王

中物院超级计算与数字智能2025年大会:嘉为蓝鲸揭秘数智化运维转型关键突破点

嘉为蓝鲸

智能运维 数智化

实战案例|利用MarsCode内置的DeepSeek服务,单元测试耗时缩短70%!

火山引擎开发者社区

行业合作丨Altair 携手政产学研各界,共探AI驱动制造业数字化转型新路径

Altair RapidMiner

AI 数字化转型 HPC 仿真 仿真驱动设计

运维生态重构进行时:从嘉为蓝鲸全栈智能观测中心V4.4看全栈观测的AI化跃迁路径

嘉为蓝鲸

智能运维 产品发布 全栈智能观测中心

数仓架构告别「补丁」时代!全新批流一体 Domino 架构终结“批流缝合”

YMatrix 超融合数据库

数据仓库 数据架构 流式数仓 超融合数据库 YMatrix

🔥 新手也能懂!Shopee商品详情API接口全攻略

Noah

从零到一:如何用 AI 工具一天内完成 Java 项目搭建?

飞算JavaAI开发助手

运维人的AI外挂来了!WeOpsV4.20&V5.20深度集成三大模型实现知识沉淀

嘉为蓝鲸

自动化运维 #WeOps

技术赋能与创新实践:基于低代码平台的高性能应用开发

JeeLowCode低代码平台

低代码 低代码开发 低代码平台 低代码, 低代码选择

什么是权威解析服务器?权威解析服务器有什么用?(国科云)

防火墙后吃泡面

JSON-LD进入W3C推荐状态_语言 & 开发_Steve Klabnik_InfoQ精选文章