实际上,我对Schema.org对象如何由给定规范“组成”缺乏了解。不幸的是,到目前为止我还没有明确的解释。
让我们以https://schema.org/SoldOut中给出的JSON-LD示例为例。
在“示例1”中,我们提供了类型为offers
的属性Offer
。在唯一的Offer
中,指定了price
属性(“ 13.00”)。
但是,如果我查看在https://schema.org/Offer处给出的对象Offer
的规范,则根本没有指定price
属性。
所以我的问题是,它来自哪里-price
属性?
似乎Offer
对象合并了类型Offer
和PriceSpecification
。
但是为什么在@type
属性中没有提到它呢?
答案 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
,您可以使用Offer
,Intangible
和Thing
的属性:
Thing
>Intangible
>Offer
所有可用的属性均列在该类型页面的第一个表格中(除非出现错误)。