首页 文章

微数据,RDFa或JSON-LD适当或最佳用途?

提问于
浏览
60

我一直想知道哪种格式“最好”? Schema.org,Microdata和RDFa实施起来有点痛苦 . 它们可能会破坏验证并需要付出相当大的努力才能放入文档中 .

对我而言,JSON-LD最终是一种更好地实现结构化数据的方法 . 但它有效吗?它有多大程度的支持(至少谷歌)?

6 回答

  • 0

    Google使用JSON-LD作为其知识图(公司和人员)的结构化数据SEO的参考示例 . 见https://developers.google.com/structured-data/customize/overview

    我个人在我的网站上使用JSON-LD和Microdata的组合(目前) .

    我想说他们还有其他方法来确定你通过JSON-LD提供的信息是否与他们的搜索引擎相关(比如检查你的网页实际上是在谈论它声称要谈的内容) .

  • 48

    Schema.org是一个词汇表,可以像许多其他词汇一样,以多种形式使用 . 网站http://schema.org/有使用 Microdata 和RDF语法 RDFaJSON-LD 的示例,但这些并不是它可以使用的唯一语法 . 例如,您可以将其与 TurtleRDF/XML 等任何其他RDF语法一起使用 .

    没有最好的语法 . 它们都有优点和缺点 . 请参阅我的答案differences between Microdata and RDFa . 请注意you can use different syntaxes (and vocabularies)在同一文档中 .

    现在,如果您有特定的消费者,您应该查阅他们的文档 . 但是,语法的支持来来往往,并不是它们可能支持的所有内容都必须记录在案,而且所记录的所有内容都不一定有效 .

    对于Google,您可能对他们的Rich Snippets感兴趣 . 他们的documentation about Rich Snippets提到微数据,微格式和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更复杂,因为您必须使其适应现有标记 . (但是,除非你犯了错误,否则它不应该“破坏验证” . )

  • 5

    MicrodataRDFaJSON-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一样支持它 .

    2017更新

    在过去的三到三年里,Google一直非常积极地推广JSON-LD-schema.org .

  • 16

    谷歌似乎倾向于使用JSON-LD,但它没有为每个用例实现它!

    Google正在为更多基于标记的功能添加JSON-LD支持 . 到目前为止,所有Knowledge Graph功能,附加链接搜索框,Event Rich Snippets和Recipe Rich Snippets都支持JSON-LD; Google建议将JSON-LD用于这些功能 . 对于剩余的Rich Snippets类型和面包屑,Google建议使用微数据或RDFa . http://developers.google.com/structured-data/schema-org

  • 9

    (更新答案!)

    关于"popularity",请参阅this question/answers .

    Microdata今天最受欢迎:在3400万个域中,563万(约17%)使用"content markup"(我将使用行话 markup )由RDFa(090万), Microdata (2.5 million) 或Microformats,不到一半使用 separated 语义描述符,注意到最受欢迎的JSON-LD,有212万(6%) .
    PS:我们更喜欢"per-domain statistics"(而不是每页统计数据),因为同一域中的页面通常具有相同的模板和其他本地权限约定强制 .

    在“表达语义的域”(7,75百万)的范围内,统计概要是:

    • 73% markup 语义

    • 27% separated 语义

    • (...交叉混合"separated+markup"可以为零以简化......)

    2017年的经验法则

    如果您需要向机器表达更多内容,请使用 markup semantic with Microdataafter ituse JSON-LD .


    使用标记语义因为它是最受欢迎的,并且因为标记的满足将由人和机器同时验证/可审计 .

    重要提示:请记住,Microdata,RDFa(W3C标准)和JSON-LD(W3C标准)可以(轻松)转换为RDF,因此所有这些格式都是兼容的 .


    PS:对于HTML表格,另见W3C's tabular-metadata . 对于打开的非HTML资源,如 CSV files ,请使用与RDF兼容的W3C's tabular-data-model和/或frictionlessdata/specs .

  • 6

    从头开始,JSON-LD将是最佳选择 . 让我们让one of the primary creators of JSON-LD,Manu Sporny称重:

    对更好的Web API的渴望促成了JSON-LD的创建,而不是语义Web . 如果你想让语义网成为现实,那就停止为它做好准备并花时间做一些更有用的事情,比如实际上让机器变得更聪明,或者帮助人们以对他们有用的方式发布数据 .

    JSON-LD就是以有用/易于实现的方式发布数据,因为......

    它基于大多数Web开发人员目前使用的技术 .

相关问题