Schema.org属性将项目链接到WebPage

时间:2014-04-02 22:23:18

标签: microdata schema.org

这是我所有网页的HTML格式:

 <html>
    <head>
      ...
    </head>
    <body>
      <p>...</p>

      <slide>...</slide>
    </body>
    </html>

我想为此设置Microdata。哪种格式正确?

<html itemscope itemtype="http://schema.org/WebPage">
<head>
  <meta itemprop="name" content="webpage"/>
</head>
<body>
  <p itemprop="mainContentOfPage" itemscope itemtype="http://schema.org/Article">
    <meta itemprop="name" content="article"/>
  </p>

  <slide itemscope itemtype="http://schema.org/WPSideBar">.
    <meta itemprop="name" content="slide"/>
  </slide>
</body>
</html>

上面的代码似乎是正确的,但是当我在Google实验室检查时,它并未显示slide标记是WebPage的子代。这是结果:

 Item 
    type:   http://schema.org/webpage
    property:   
    name:   webpage
    maincontentofpage:  
    Item 1

 Item 1
    type:   http://schema.org/article
    property:   
    name:   article

  Item 
    type:   http://schema.org/wpsidebar
    property:   
    name:   slide

所以我尝试通过添加新的itemprop来解决此问题。我能找到的最好的itemprop是'text'或'about':

<html itemscope itemtype="http://schema.org/WebPage">
<head>
  <meta itemprop="name" content="webpage"/>
</head>

<body>
  <p itemprop="about mainContentOfPage" itemscope itemtype="http://schema.org/Article">
    <meta itemprop="name" content="article"/>
  </p>

  <slide itemprop="about"  itemscope itemtype="http://schema.org/WPSideBar">.
    <meta itemprop="name" content="slide"/>
  </slide>
</body>
</html>

现在,如果我在Google实验室进行测试,结果如下:

Item 
    type:   http://schema.org/webpage
    property:   
    name:   webpage
    about:  Item 1
    maincontentofpage:  Item 1
    about:  Item 2

Item 1
    type:   http://schema.org/article
    property:   
    name:   article

Item 2
    type:   http://schema.org/wpsidebar
    property:   
    name:   slide

显然问题已经解决,现在谷歌知道'幻灯片'是WebPage的孩子! 但我的问题是:

我感觉不舒服。这个属性真的适合吗? ('about'或'text')

1 个答案:

答案 0 :(得分:1)

是的,如果您想将项目与WebPage相关联,则必须使用属性。

对于主要内容,我们有mainContentOfPage。但是那些不是主要内容(部分)的元素呢?

以下是关于将WebPageElement链接到WebPage的这种通用属性的讨论:
Am I right that WebPage lacks a generic property for linking to WebPageElement?

proposal for a hasPart property:“相关的CreativeWork在逻辑上或物理上包含在此CreativeWork中”。这将是一个很好的匹配,但直到它成为Schema.org的一部分(如果有的话),我们必须使用已经存在的东西。

可能的现有属性可能是:

text有一个问题,就是它需要 Text ,而不是另一个项目。 citation可能,至少根据其描述,可能适用于更具体的案例。这给我们留下了mentionsabout,但两者都不合适。

所以我要说:目前没有好的解决方案。

就个人而言,我只是省略了一个属性并将该项目取消链接(直到合适的属性被添加到Schema.org)。