我目前正在研究schema.org与API platform一起使用,但是有些属性我不了解。
让我们以https://schema.org/Organization为例:
事物(在这种情况下为组织)具有属性,例如name
和address
。现在,我不了解的是属性department
。但是,在现实生活中,一个组织并没有一个部门。它至少有几个。
那个财产不应该是oneToMany吗?
还是我不理解它,department
链接到母公司吗?母公司将子组织(拥有部门属性的组织)变成部门?但是,如果真是这样,我想应该有一个Department对象(从Organization对象扩展)。
当我在API平台的schema.yaml
中定义此属性时,它期望一个值,就像我从schema.org文档中所期望的那样。
我想念什么吗?有人可以解释一下我应该如何解释和使用这些属性吗?
编辑:我发现,除非另有说明,否则API平台希望每个属性都具有单个值。因此,我必须将department
属性设置为oneToMany。
结合下面的出色解释(公认的答案),一切都得到了解释。
答案 0 :(得分:1)
所有Schema.org属性可以具有多个值。通常,并不是每个属性(例如birthDate
)都有意义,但是还是有可能的。
对于department
属性,域(具有此属性的项)是上级组织,范围(该属性的值的项)是部门。在这种情况下,如果域和范围需要相同的类型,则必须解释文本定义,以确保该属性用于哪个“方向”。
(如果由于某种原因您不能为一个属性提供多个值,请注意,即使未定义任何反向属性,也要you can use沿相反方向的每个Schema.org属性。)< / p>
一个组织(#1
)有两个部门(#2
,#3
)。
使用数组([]
):
{
"@context": "http://schema.org/",
"@type": "Organization",
"@id": "#1",
"department": [
{
"@type": "Organization",
"@id": "#2"
},
{
"@type": "Organization",
"@id": "#3"
}
]
}
重复该属性:
<div itemscope itemtype="http://schema.org/Organization" itemid="#1">
<div itemprop="department" itemscope itemtype="http://schema.org/Organization" itemid="#2"></div>
<div itemprop="department" itemscope itemtype="http://schema.org/Organization" itemid="#3"></div>
</div>
重复该属性:
<div typeof="schema:Organization" resource="#1">
<div property="schema:department" typeof="schema:Organization" resource="#2"></div>
<div property="schema:department" typeof="schema:Organization" resource="#3"></div>
</div>