В документации типов JSON-LD четко указано, что вы можете определить несколько типов для узла.
https://www.w3.org/TR/json-ld11/#specifying-the-type
Если вы откроете пример # 14 из приведенного выше URL-адреса на игровой площадке JSON-LD , вы увидите, что это допустимый синтаксис.
{
"@id": "http://me.markus-lanthaler.com/",
"@type": [
"http://schema.org/Person",
"http://xmlns.com/foaf/0.1/Person"
]
}
Однако, если вы попытаетесь переместить это определение в @context и применить его к определенному свойству, вы получите сообщение об ошибке от анализатора. Проверьте это здесь .
{
"@context": {
"some_property": {
"@id": "http://me.markus-lanthaler.com/",
"@type": [
"http://schema.org/Person",
"http://xmlns.com/foaf/0.1/Person"
]
}
},
"some_property": "value"
}
Отображаемая ошибка:
jsonld.SyntaxError: неверный синтаксис JSON-LD; значение @context @type должно быть строкой.
Я внимательно прочитал документацию и там сказано, что вы можете определить несколько типов для типов узлов, но не для объектов-значений.
Документация ясно говорит, что когда @value и @type используются в одном словаре, ключевое слово @type выражает тип значения. В противном случае ключевое слово @type выражает тип узла.
Но здесь - еще один пример, показывающий, что это может быть не так.
Кто-нибудь знает, как определить несколько типов узлов в @context?