我一直想知道哪种格式是最好的"? Schema.org,Microdata和RDFa实施起来有点痛苦。它们可能会破坏验证并需要付出相当大的努力才能存入文档。
JSON-LD对我来说是一种更好的实现结构化数据的方法。但它有效吗?它有多大程度的支持(至少是谷歌)?
答案 0 :(得分:49)
Schema.org是一种词汇,可以像其他词汇一样,以多种形式使用。网站http://schema.org/包含使用 Microdata 和RDF语法 RDFa 和 JSON-LD 的示例,但这些并不是唯一的语法可以用于。例如,您可以将其与任何其他RDF语法一起使用,例如 Turtle 或 RDF / XML 。
没有最佳语法。它们都有优点和缺点。例如,请参阅我对differences between Microdata and RDFa的回答。请注意同一文档中的you can use different syntaxes (and vocabularies)。
现在,如果您有特定的消费者,您应该查阅他们的文档。但是,对语法的支持来来往往,并不是它们可能支持的所有内容都必须记录在案,并且所记录的所有内容都不一定有效。
如果是谷歌,您可能对他们的 Rich Snippets 感兴趣。他们的documentation about Rich Snippets提到了Microdata,Microformats和RDFa。但请注意,并非所有链接的示例都使用Schema.org词汇表,而是使用较旧的Data-vocabulary.org或Microformats(因为您不能使用Schema.org等词汇表,也不能使用带有微格式的Data-vocabulary.org)。此外,还有一些Rich Snippets未列在该页面上,例如Sitelinks Search Box,他们甚至推荐使用JSON-LD语法。
作为一般建议:搜索引擎通常支持隐藏元数据上的可见内容。例如,将关键字作为隐藏元数据轻松允许作者声称他们的文档与实际不同(或者是因为试图欺骗搜索引擎,或者因为作者忘记更新中的内容地方)。因此,将内容中的元数据解耦,就像JSON-LD的情况一样,可以(可能!)导致当前搜索引擎具有隐藏元数据的相同问题。 (如果或者哪个搜索引擎实际上处理它就像是一个在Stack Overflow上偏离主题的问题。)
将元数据与内容(例如,使用RDFa)耦合的另一个可能的优点是,您可以在JSON-LD,Turtle等中轻松自动生成相同的信息,因为一切都只是RDF。只需解析RDFa,转换为您偏好的格式,然后嵌入(script
)或链接(使用rel
- alternate
),如果它有意义的话。
但是,添加RDFa通常比添加JSON-LD blob更复杂,因为您必须使其适应现有标记。 (但是,它不应该"打破验证"除非你犯错误。)
答案 1 :(得分:16)
Microdata , RDFa 和 JSON-LD 之间的界限确实非常模糊,但仍然没有被广泛接受的事实上三者中。这将不得不等待现在。也许是几年或更长时间。
同时,Microdata不应该像你提到的那样用Schema.org标记,因为这两者是不同的东西。 Schema.org是一个词汇表,因此可用于Microdata,RDFa和JSON-LD。
使用 Schema.org 作为词汇并使用 JSON-LD 作为数据表示可能是最令人期待的一对由于它们的两个共同方面:
但即便如此,两者之间仍然存在断开连接,例如this example。
关于JSON-LD支持,由于Bing, Google, Yahoo!, and Yandex承认使用了schema.org,因此可以肯定地说它们也像this example一样支持它。
谷歌过去几年或三年一直非常积极地推广JSON-LD-schema.org。
答案 2 :(得分:9)
Google似乎倾向于使用JSON-LD,但它没有针对每个用例实现它!
Google正在向更多人添加JSON-LD支持 标记功能。到目前为止,所有人都支持JSON-LD 知识图谱功能,附加链接搜索框,Event Rich Snippets, 和Recipe Rich Snippets; Google建议使用JSON-LD 那些功能。对于剩余的Rich Snippets类型和面包屑, Google建议使用微数据或RDFa。
答案 3 :(得分:6)
Google使用JSON-LD作为其知识图(公司和人员)的结构化数据搜索引擎优化的参考示例。 见https://developers.google.com/structured-data/customize/overview
我个人在我的网站上使用JSON-LD和Microdata的组合(目前)。
我想说他们还有其他方法可以确定您通过JSON-LD提供的信息是否与其搜索引擎相关(例如检查您的网页实际上是在谈论它声称要谈的内容)。
答案 4 :(得分:5)
(更新答案!)
关于“人气”,请参阅this question/answers。
今天的Microdata是最受欢迎的:在3400万个域中,563万(~17%)使用“内容标记”(我将使用行话标记)由RDFa(0 ,900万,微数据(250万)或微格式,不到一半使用分离的语义描述符,注意到最受欢迎的JSON-LD,有212万(6) %)。左:我们更喜欢“每域统计信息”(而不是每页统计信息),因为同一域中的页面通常具有相同的模板和其他本地权限约定强制执行。
在“表达语义的域名”(7,75百万)的范围内,统计资料是:
将标记语义与 Microdata 一起使用,使用 ,如果您需要向计算机表达更多内容,使用 JSON-LD 即可。
使用标记语义因为它是最受欢迎的,并且因为标记的满足将由人和机器同时验证/审核。
重要提示:请记住,Microdata,RDFa(W3C标准)和JSON-LD(W3C标准)可以(轻松)转换为RDF,因此所有这些格式都是兼容的。
PS:对于HTML表格,另见W3C's tabular-metadata。对于打开的非HTML资源,如 CSV文件,请使用与RDF兼容的W3C's tabular-data-model和/或frictionlessdata/specs。
答案 5 :(得分:1)
从头开始,JSON-LD将是最佳选择。让我们让one of the primary creators of JSON-LD,Manu Sporny称重:
对更好的Web API的渴望是推动创建的动力 JSON-LD,而不是语义Web。如果你想制作语义网 现实,停止为它做案并花时间做 一些更有用的东西,比如实际上让机器变得更聪明 帮助人们以对他们有用的方式发布数据。
JSON-LD就是以有用/易于实现的方式发布数据,因为......
它基于大多数Web开发人员目前使用的技术。