蓄财网(www.aixc.cn) 首页 SEO技术 查看内容

      Schema.org核心信息模型 第三部分:了解和使用Schema.org词汇表

      2021-3-30 12:05| 发布者: admin| 查看: 34| 评论: 0

      摘要: 在本系列的前一部分中,我介绍了Schema.org,描述了其用于Web上机器可读信息的抽象模型,并确定了用于在HTML中表达此类信息的三种替代语法-RDFa,Microdata和JSON-LD。使用这些语法之一,您可以根据页面主题设置词汇 ...
      在本系列的前一部分中,我介绍了Schema.org,描述了其用于Web上机器可读信息的抽象模型,并确定了用于在HTML中表达此类信息的三种替代语法-RDFa,Microdata和JSON-LD。

      使用这些语法之一,您可以根据页面主题设置词汇表。几乎所有Schema.org词汇都使用URL词干http://schema.org/。这些共享的约定和感兴趣社区的贡献使Web发布者可以在Web上使用结构更广泛的数据。它们还允许开发人员更广泛地聚合该数据。

      许多最常用的Schema.org词汇表都建立在较旧的格式上,例如我在第1部分中提到的微格式。其他的则基于“朋友的朋友”词汇,这是RDF应用程序的主要内容。各种词汇都在不断地检查和改进。

      让我们来看看Schema.org,从一些常用术语开始。

      使用Schema.org描述要出售的物品
      由于电子商务非常流行,因此与描述产品和报价有关的Schema.org词汇表区域就是流行的词汇表。这些词汇将机器可读的数据添加到产品或消费者网站,并且数据在搜索引擎(例如Google,Bing和Yandex)上向搜索结果添加行内注释。

      该电子商务词汇表起源于名为GoodRelations的单独的电子商务词汇表,旨在将机器可读数据添加到涵盖提供商/客户关系的页面上。Schema.org吸收了GoodRelations,其类和属性现已得到广泛使用和支持。

      对于电子商务网站,有两个主要类别:

      http://schema.org/Product
      http://schema.org/Offer
      图1显示了http://schema.org/Product文档页面中的屏幕截图。由于页面很长,因此页面已被裁剪,显示的内容少于为该Produce类型实际定义的属性的四分之一。属性的范围从基本(名称,描述,关联的品牌名称等)到专门的(全球贸易商品编号(GTIN),作为通用产品代码(UPC)的标准集和条形码)。

      产品类别


      您会记得在上一篇文章中,您通过HTML元素层次结构或JSON-LD部分表达了此类属性。对于每个属性,Schema.org指定可接受值的类型。在许多情况下,该值仅是纯文本,由您自己决定是否要根据您要交流的内容确定有意义的内容。还有其他类型的简单数据类型资源值,例如Number或DateTime,并且在某些情况下,这些值是从Thing类派生的,在这种情况下,这些值必须是URL引用。指定属性时,通常可以从多种类型的资源或文字值中进行选择。

      有时,Schema.org词汇表可能重叠并且令人困惑。在上图中,该category属性的值可以是PhysicalActivityCategory或Text或Thing。但是,其PhysicalActivityCategory派生自Schema.org的健康与生命科学扩展,并且是相当随意且数量有限的待售商品。

      之所以出现这种差异,是因为Schema.org中的描述尽可能保持统一,而类和属性有时会被重用以引用感兴趣的特定领域。因此,您有时会发现不寻常的概念被纳入主流词汇描述中。Schema.org的意图是非正式的,因此请相信您的直觉来指导您正确使用类和属性。

      有时,您可以在使用结构化的值框架还是仅使用非正式文本字符串之间进行选择。具有纯文本类别很像在社交媒体中添加标签。我们将这种非正式标签集合称为“民俗分类法”,以将其与更正式的分类法区分开。

      如果单击左列中的属性之一,则会获得有关它的更多详细信息。例如,单击aggregateRating。您将获得以下页面:

      AggregateRating属性


      在页面底部,您可以查看示例以帮助您入门。几乎所有的Schema.org类和属性定义都显示了这些示例,您可以选择是否要查看Microdata,RDFa或JSON-LD示例。

      图书销售示例
      清单1显示了在网上出售的《Things Fall Apart》这本书的示例描述。

      预订产品/报价
      <div vocab="http://schema.org/" typeof="Product">
        <img property="image" alt="book cover"
      src="https://images.betterworldbooks.com/039/Things-Fall-Apart-Achebe-Chinua-9780393932195.jpg" />
        <a property="url" href="https://www.betterworldbooks.com/product/detail/Things-Fall-Apart-9780393932195">
          <span property="name">Things Fall Apart</span>
        </a>
        <div property="offers" typeof="Offer">
          <span property="priceCurrency" content="USD">$</span>
          <span property="price" content="8.48">8.48</span>
          (<span property="itemCondition" href="UsedCondition">used</span>,
          <span property="offerCount">2</span> available)
        </div>
      </div>

      该清单显示了该产品的基本描述,名称和图像,以及该产品的报价集合。报价描述如下:

      价格
      价格货币
      使用该物品的事实
      两个项目可用的事实
      枚举
      提供的书的条件是属性itemCondition,其值在Schema.org中具有几个特定的​​,公认的值。称为枚举,它被定义为一种特殊的类OfferItemCondition。此特定枚举的四个成员是:

      DamagedCondition
      NewCondition
      RefurbishedCondition
      UsedCondition
      Offer具有枚举值的的另一个属性是availability。枚举类为ItemAvailability,期望值为:

      Discontinued
      InStock
      InStoreOnly
      LimitedAvailability
      OnlineOnly
      OutOfStock
      PreOrder
      PreSale
      SoldOut
      该属性itemCondition可以在Offer或上使用Product,但availability只能在上使用Offer。

      混合其他词汇
      有时您会发现其他词汇混合在一起。例如,Schema.org的商业描述部分起源于另一个名为GoodRelations的词汇项目。Schema.org仍在几个区域中指定GoodRelations术语。例如,Offer资源可以具有名为的值availableDeliveryMethod。这是一个枚举,其值仍然都是GoodRelations术语,例如:

      http://purl.org/goodrelations/v1#DeliveryModeDirectDownload
      http://purl.org/goodrelations/v1#DeliveryModeMail
      http://purl.org/goodrelations/v1#DeliveryModePickUp
      http://purl.org/goodrelations/v1#FederalExpress
      修改了图书销售说明中的以下代码片段,以说明您可以在RDFa中表达此内容的最直接方法。

      <div property="offers" typeof="Offer">
                    <span property="priceCurrency" content="USD">$</span>
                    <span property="price" content="8.48">8.48</span>
                    (<span property="itemCondition" href="UsedCondition">used</span>,
                    <span property="offerCount">2</span> available)
                    <link property="availableDeliveryMethod" href="http://purl.org/goodrelations/v1#DeliveryModeMail">
                  </div>

      添加的行将突出显示。的值availableDeliveryMethod设置为完整的基于GoodRelations的URL。

      请注意,使用link元素从枚举中提供属性的值。应该使用这种方法来指定枚举值,或者指定Schema.org规范中对URL值的任何其他精确引用。由于没有锚文本,因此该链接实际上不会对用户显示任何内容。那里有一台机器是只读的。您只需将其放在附近的内容旁边。

      表达词汇表URL的另一种方法是使用不同于http://schema.org/的词干。它涉及一个我尚未介绍的RDFa属性:prefix。

      <div vocab="http://schema.org/" prefix="gr: http://purl.org/goodrelations/v1#" typeof="Product">
                 ...
                  <div property="offers" typeof="Offer">
                    <span property="priceCurrency" content="USD">$</span>
                    <span property="price" content="8.48">8.48</span>
                    (<span property="itemCondition" href="UsedCondition">used</span>,
                    <span property="offerCount">2</span> available for shipping by post
                    <link property="availableDeliveryMethod" href="gr:DeliveryModeMail">)
                  </div>
                </div>

      该prefix属性将缩写gr:与GoodRelations URL的词干关联。然后,您可以通过添加URL的末尾写一个缩写形式gr:DeliveryModeMail。请注意,所有此类缩写都必须使用冒号作为分隔符。当您混合使用许多不同种类的URL时,或者如果您将自己的词汇表与Schema.org混合在一起时,此技巧将派上用场。

      组合课程
      在此示例中,要出售的商品实际上至少是两件事:一件商品和一本书。买卖本书的各方都考虑到了它的价格和运输细节。读者会想到它的标题,作者和页数。当然,这些角色是重叠的。您可能会在网上书店中搜索刚认识的作者提供的最负担得起的书。

      这种常见情况强调了事物如何属于多个类,而Schema.org为此类情况提供了现成的支持。以下版本的待售HTML显示了类的组合。

      预订为产品,同时使用这两个课程
      <div vocab="http://schema.org/" typeof="Product Book">
        <img property="image" alt="book cover"
      src="https://images.betterworldbooks.com/039/Things-Fall-Apart-Achebe-Chinua-9780393932195.jpg" />
        <a property="url" href="https://www.betterworldbooks.com/product/detail/Things-Fall-Apart-9780393932195">
          <span property="name">Things Fall Apart</span>
        </a>
        <dl>
          <dt>Author</dt><dd property="author" typeof="Person">Chinua Achebe</dd>
          <dt>ISBN</dt><dd property="isbn" typeof="Person">9780393932195</dd>
        </dl>
        <div property="offers" typeof="Offer">
          <span property="priceCurrency" content="USD">$</span>
          <span property="price" content="8.48">8.48</span>
          (<span property="itemCondition" href="UsedCondition">used</span>,
          <span property="offerCount">2</span> available)
        </div>
      </div>

      该属性typeof="Product Book"将资源同时指定为两种类型,并用空格分隔。指定两种类型后,便可以使用与两种类型关联的属性。清单2中突出显示的文本行显示了产品和书籍的属性信息。

      继承的属性
      正如我在第2部分中指出的那样,Schema.org Book类是从该类派生的CreativeWork。这意味着借助继承,任何Book实例都可以具有为其基类CreativeWork和所派生的属性Thing。为方便起见,任何给定类的Schema.org文档都包含基类的属性。图2显示了Book类页面的屏幕截图,它说明了这一点。您可以看到前六个属性是特定于的Book。紧随其后的是清楚地标记了的属性的部分CreativeWork。在实际页面的最下方是另一部分,标记了来自的属性Thing。

      Book类


      到目前为止,我主要处理简单的描述性文本和枚举。您可以想象,但是Schema.org中的某些事情必须以形式化的方式来表达。让我们来看看您是如何做到的。

      资料输入
      具有规则格式的数据值是使内容机器可读的重要部分。数据以字符串形式从HTML传入,但是共享的格式约定对于丰富的数据类型至关重要。例如,当属性的值类型的Schema.org文档说时Integer,您不希望将其设置1.5为值,因为该数字具有小数部分,并且不是有效的整数。该文档对于数据类型的详细信息并不总是很清楚。但是,在大多数情况下,您可以期望与您最喜欢的编程语言的约定相似的约定。

      覆盖人​​类可读和机器可读的数据
      机器可读版本的数据所需的严格格式对人类并不总是那么友好。毕竟,您的网页仍然适合人类使用。使用Schema.org时,很多时候,您都会为人们提供文字元素文本,并带有标签以提供机器可读版本作为元数据。

      这是图书销售示例中的修改后片段。

      <div property="offers" typeof="Offer">
                    <span property="priceCurrency" content="USD">$</span>
                    <span property="price" content="10">ten</span>
                  </div>

      在此示例中,机器可读货币用ISO 4217标准中的三个字母的代码表示,而人类可读货币用熟悉的美元符号表示$。价格以数字形式指定,但是页面将​​数字显示为英文文本。

      到目前为止,我已经在报价中将价格详细信息作为直接属性提供了,但是您也可以将它们捆绑到PriceSpecification资源中。这对于反映折扣期很有用。考虑一个假日大减价。

      <div property="offers" typeof="Offer">
                  <div property="priceSpecification" typeof="PriceSpecification">
                    <span property="priceCurrency" content="USD">$</span>
                    <span property="price" content="12.5">12.50</span>
                    <meta property="validFrom" content="2018-12-25">
                  </div>
                  <div property="priceSpecification" typeof="PriceSpecification">
                    <strong>
                    Or just
                    <span property="price" content="10">ten</span>
                    <span property="priceCurrency" content="USD">dollars</span>
                    <span property="validTo" content="2018-12-24T11:59:59">until midnight Christmas Eve!</span>
                    </strong>
                  </div>
                </div>

      在这里,您有一个限时销售价格,正常价格标记为之后生效。

      在validTo为折扣价日期再次表明人类和机器可读的数据的叠加。元素的主体使用英语表达“直到圣诞节前夜”,而该content属性使用ISO 8601标准格式表示确切的时间和日期。

      该validFrom日期没有人类可读的内容,但在该属性的ISO 8601的数据。因为它没有人类可读的内容,所以我使用了meta标记,这是Schema.org中的首选方法。如果您拥有机器可读的数据,但是内容没有明显的位置可以覆盖它,或者用于该内容的HTML没有提供自然的语法,则可以使用link或meta标记。该标签应放置在尽可能靠近相关上下文的位置。我link在属性的值是枚举时讨论了上面的用法。如果不是枚举,则使用meta,如最后一个清单所示。

      有时,您可能希望提供有关文本中未提供的材料的详细元数据,例如iamges或嵌入式脚本和媒体对象。在这种情况下,浏览器中显示的实际详细信息是从另一个文件加载的,因此无法提供可能用于简单文本内容的各种内联Schema.org标记。在这种情况下,您将使用link或meta标签。

      结论
      本文讨论Schema.org词汇表的一些重要方面,以及如何使用其文档。现在,您已经熟悉了将事物表示为机器可读数据的语法,以及在特定特定领域内执行此操作的最常见约定。

      因此,如何确保您仔细编写到网页中的Schema.org语法在语法和词汇上都是正确的?什么样的工具可以帮助您有效地使用Schema.org?在本系列的下一个也是最后一部分,我将向您展示如何使用Schema.org验证页面,并讨论在Web页面上使用Schema.org时要记住的其他实际注意事项。

      鲜花

      握手

      雷人

      路过

      鸡蛋

      相关阅读

      QQ|Archiver|手机版|小黑屋|蓄财网 ( 豫ICP备2021002293号 )

      GMT+8, 2021-9-14 12:02 , Processed in 0.097422 second(s), 31 queries .

      蓄财网 ©版权所有

      © 2021 蓄财网(www.aixc.cn)

      返回顶部