这是一个适合建筑物的Schema.org/Microdata标记吗?

时间:2017-07-27 23:02:16

标签: html markup schema.org microdata

我正在尝试将微数据符号(使用Schema.org)添加到我的网站,该网站主要讨论建筑物。我一直在阅读很多相关信息,但我仍然无法确定使用itemscopeitemtypeitemprop的位置。

有人能告诉我这是不是很好的Microdata / Schema.org标记,还是我错过了什么?

<div class="infobox infobox_building" itemscope itemtype="http://schema.org/LandmarksOrHistoricalBuildings">

    <!-- Building Name -->
    <h1 class="page_title">Puente Golden Horn Metro</h1>

    <!-- Architect -->
    <div class="data_row architect" itemscope itemtype="http://schema.org/creator">
        <div class="tag cell">Arquitecto</div>
        <div class="value cell">
            <a href="https://stage.wikiarquitectura.com/arquitecto/virlogeux-michel/" itemprop="Person">Michel Virlogeux</a>
            <a href="https://stage.wikiarquitectura.com/arquitecto/kiran-hakan/" itemprop="Person">Hakan Kıran</a>                                                  
        </div>
    </div>

    <!-- Height -->
    <div class="data_row" itemscope itemtype="http://schema.org/height">
        <div class="tag cell">Altura</div>
        <div class="value cell" itemprop="QuantitativeValue">65m</div>
    </div>

    <!-- Width -->
    <div class="data_row" itemscope itemtype="http://schema.org/width">
        <div class="tag cell">Ancho</div>
        <div class="value cell" itemprop="QuantitativeValue">12,6m</div>
    </div>

    <!-- Location -->
    <div class="data_row" itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
        <div class="tag cell">Ubicación</div>
        <div class="value cell" itemprop="streetAddress">Arap Cami Mahallesi, Beyoğlu/İstanbul, Turquía</div>
    </div>

</div> <!-- infobox -->

2 个答案:

答案 0 :(得分:2)

您似乎混淆了属性和类型。

在Microdata中,属性在itemprop属性中指定,而类型在itemtype属性中指定。

如果您只使用词汇表Schema.org,那么您将使用类型的完整URI(itemtype="http://schema.org/PostalAddress"),而只使用slug for properties(itemprop="address")。

在Schema.org中,很容易看出它是什么,因为它们遵循the convention属性的第一个字母是小写的(address),并且类型的第一个字母是大写的({ {1}})。

从语法上讲,您使用PostalAddress + address正确执行此操作,但PostalAddress + creatorPerson / height +错误width

那就是说,你也犯了一些词汇错误。 QuantitativeValue类型首先不能包含LandmarksOrHistoricalBuildingscreatorheight属性。

您可以访问类型页面(LandmarksOrHistoricalBuildings)并查看第一个表格,查看某个类型可以拥有的属性。

答案 1 :(得分:0)

我也遇到了和你一样的问题或问题。因为我的建筑物甚至不是历史建筑物(什么时候是历史建筑?),我创建了own schema

{
   "@context":
   {
      "Place": "http://schema.org/Place",
      "name": "http://purl.org/dc/terms/title",
      "alternateName":"http://purl.org/dc/terms/title",
      "description": "http://purl.org/dc/terms/description",
      "geo": "http://schema.org/geo",
      "image":
      {
        "@id": "http://schema.org/image",
        "@type": "@id"
      },
      "latitude":
      {
        "@id": "http://www.w3.org/2003/01/geo/wgs84_pos#lat",
        "@type": "xsd:decimal"
      },
      "longitude":
      {
        "@id": "http://www.w3.org/2003/01/geo/wgs84_pos#long",
        "@type": "xsd:decimal"
      },


      "containedInPlace":"http://schema.org/Place",
      "containsPlace":"http://schema.org/Place",
      "architect":"http://schema.org/Creator",
      "Address": "http://www.w3.org/2006/vcard/ns#Address",
      "address": "http://www.w3.org/2006/vcard/ns#address",
      "street": "http://www.w3.org/2006/vcard/ns#street-address",      
      "locality": "http://www.w3.org/2006/vcard/ns#locality",
      "region": "http://www.w3.org/2006/vcard/ns#region",
      "country": "http://www.w3.org/2006/vcard/ns#country",
      "postalCode": "http://www.w3.org/2006/vcard/ns#postal-code",

      "meter": "http://purl.org/measurement#meter",
      "kilometer": "http://purl.org/measurement#kilometer",
      "feet": "http://purl.org/measurement#feet",
      "miles": "http://purl.org/measurement#miles",

      "xsd": "http://www.w3.org/2001/XMLSchema#"
   }
}

但我不确定谷歌或其他一些搜索服务是否会得到这个想法。如果您对架构有任何改进或想法,请告诉我!