使用schema.org博客架构的RDFa

时间:2012-09-08 05:35:31

标签: schema.org rdfa

我无法弄清楚我是否已经使用RDFa和schema.org博客类型做了正确的事情。我的博客曾经有一个类似的帖子列表:

<h2><a href="essays/why-orm-divides-us.html">Why ORM Divides Us</a></h2>
<h2><a href="essays/heretic-calculus.html">A Heretical Calculus</a></h2>

在尝试使用RDFa信息(特别是BlogBlogPosting类型)对其进行扩充时,我想出了这个:

<div vocab="http://schema.org/" typeof="Blog">
  <h2 property="blogPosting" typeof="BlogPosting" resource="essays/why-orm-divides-us.html">
    <a property="url" href="essays/why-orm-divides-us.html">
      <span property="name">Why ORM Divides Us</span>
    </a>
  </h2>
  <h2 property="blogPosting" typeof="BlogPosting" resource="essays/heretic-calculus.html">
    <a property="url" href="essays/heretic-calculus.html">
      <span property="name">A Heretical Calculus</span>
    </a>
  </h2>
  ...

就谷歌Rich Snippets测试工具而言,这看起来像是正确解析,但我无法说清楚。我还有两个尝试:

<div vocab="http://schema.org/" typeof="Blog">
  <h2 property="blogPosting" typeof="BlogPosting" resource="essays/why-orm-divides-us.html">
    <a href="essays/why-orm-divides-us.html" property="name">Why ORM Divides Us</a>
  </h2>
  <h2 property="blogPosting" typeof="BlogPosting" resource="essays/heretic-calculus.html">
    <a href="essays/heretic-calculus.html" property="name">A Heretical Calculus</a>
  </h2>
  ...

<div vocab="http://schema.org/" typeof="Blog" rel="blogPosting">
  <h2 typeof="BlogPosting" resource="essays/why-orm-divides-us.html">
    <a property="url" href="essays/why-orm-divides-us.html">
      <span property="name">Why ORM Divides Us</span>
    </a>
  </h2>
  <h2 typeof="BlogPosting" resource="essays/heretic-calculus.html">
    <a property="url" href="essays/heretic-calculus.html">
      <span property="name">A Heretical Calculus</span>
    </a>
  </h2>
  ...

所以我要求提供几条信息:

  1. 如何判断您是否符合其中一种模式?
  2. 我的哪一个选择是正确的,为什么?
  3. 为什么我在链接时似乎需要直接指定资源?
  4. 为什么<a>标记在RDFa演示工具和Google Rich Snippets测试工具中解析得如此不同?

1 个答案:

答案 0 :(得分:4)

您的第一个代码段是正确的,我建议您使用它。第二个是不正确的,因为property =“name”将以href值为目标,所以不要使用那个。第三个也是正确的,并使用称为链接的RDFa的更高级功能(通过rel属性)。如果你愿意,使用那个是完全有效的,谷歌也理解它。

  1. 我不知道任何官方的schema.org验证器,但Google Rich Snippet有时会告诉您是否有问题(但并非总是如此)。您还可以使用http://validator.w3.org/nu/http://www.w3.org/2012/pyRdfa/Validator.html验证HTML + RDFa标记。
  2. 你的第一个和第三个是正确的,第二个是错的(见上文)。我推荐第一个。
  3. 嗯,链接的url用于两个目的,首先它用于识别Web上的对象,并且它还明确用于schema.org所需的'url'属性。虽然第二个是schema.org特定属性。
  4. 这是Google在RDFa语法本身之上添加的内容,纯粹的RDFa解析器不会返回值,而href也会像这样返回。我想谷歌为方便起见,但我同意它可能会令人困惑。