Schema.org和对象层次结构

时间:2018-06-25 08:55:27

标签: schema.org

实际上,我对Schema.org对象如何由给定规范“组成”缺乏了解。不幸的是,到目前为止我还没有明确的解释。

让我们以https://schema.org/SoldOut中给出的JSON-LD示例为例。 在“示例1”中,我们提供了类型为offers的属性Offer。在唯一的Offer中,指定了price属性(“ 13.00”)。

但是,如果我查看在https://schema.org/Offer处给出的对象Offer的规范,则根本没有指定price属性。

所以我的问题是,它来自哪里-price属性? 似乎Offer对象合并了类型OfferPriceSpecification。 但是为什么在@type属性中没有提到它呢?

2 个答案:

答案 0 :(得分:0)

price属性有两种:

第一种是SoldOut示例中显示的那种。在下面的示例中,我也会基于SoldOut

向您展示第二种
<script type="application/ld+json">
{
    "@context": "http://schema.org",
    "@type": "Event",
    "location": {
        "@type": "Place",
        "address": {
        "@type": "PostalAddress",
        "addressLocality": "Denver",
        "addressRegion": "CO",
        "postalCode": "80209",
        "streetAddress": "7 S. Broadway"
        },
        "name": "The Hi-Dive"
    },
    "name": "SOLD OUT! Typhoon with Radiation City",
    "offers": {
        "@type": "Offer",
        "availability": "http://schema.org/SoldOut",
        "price": {
            "@type": "PriceSpecification",
            "price": "13.00",
            "priceCurrency": "USD",
        },
        "url": "http://www.ticketfly.com/purchase/309433"
    },
    "startDate": "2013-09-14T21:30"
}
</script>

要用语言表达,可以将price用作独立属性,也可以将其用作类型PriceSpecification的一部分。两种用法都可以,在PriceSpecification类型中使用是一种情况,在这种情况下,您必须指定更多属性,如价格和其货币(如https://schema.org/PriceSpecification所列)。

答案 1 :(得分:0)

  

但是,如果我查看在https://schema.org/Offer处给出的对象Offer的规范,则根本没有指定price属性。

Offer类型确实指定price属性。

price属性在https://schema.org/Offer上列出,并且Offer类型也在https://schema.org/price上的“在这些类型上使用”下列出。

(有时在a bug中,类型页面没有列出所有属性,所以也许这就是为什么您没有看到它的原因。)


类型始终指定其自身的属性及其所有父类型的属性。因此,对于Offer,您可以使用OfferIntangibleThing的属性:

  

Thing> Intangible> Offer

所有可用的属性均列在该类型页面的第一个表格中(除非出现错误)。