Как следует интерпретировать реляционные свойства schema.org? - PullRequest
1 голос
/ 05 мая 2019

Я сейчас ищу schema.org , чтобы использовать его с платформой API , но есть некоторые свойства, которые я не понимаю.

Давайте рассмотримhttps://schema.org/Organization например:

У Вещи (и в данном случае Организации) есть свойства, такие как name и address.Теперь, что я не понимаю, это свойство department.Однако в реальной жизни организация не имеет только одного отдела;у него есть по крайней мере несколько.

Разве это свойство не должно быть oneToMany?

Или я не понимаю его и связывает department родительскую компанию, что делает дочернюю организацию (один с имуществом отдела) отдел?Но если бы это было так, я бы подумал, что вместо этого будет объект Department (выходящий из объекта Organization).

Когда я определяю это свойство в schema.yaml моей платформы API, он ожидает единственноезначение, как я и ожидал от документации schema.org.

Я что-то упустил?Может кто-нибудь объяснить, как мне следует интерпретировать и использовать такие свойства?

Редактировать: Я обнаружил, что API-платформа ожидает, что каждое свойство имеет одно значение, если не указано иное.Поэтому я должен установить свойство department как oneToMany.Это в сочетании с большим объяснением ниже (принятый ответ) объясняет все это.

1 Ответ

1 голос
/ 06 мая 2019

Все свойства Schema.org могут иметь несколько значений.Обычно это не имеет смысла для каждого свойства (например, birthDate), но в любом случае это возможно.

Для свойства department домен(элемент, который имеет это свойство) является родительской организацией, а диапазон (элемент, который является значением этого свойства) является отделом.В подобных случаях, когда домен и диапазон ожидают одинаковые типы, необходимо интерпретировать текстовое определение, чтобы убедиться в том, для какого «направления» предназначено свойство.

(Если по какой-либо причине вы можетене предоставляйте несколько значений для свойства, обратите внимание, что вы можете использовать каждое свойство Schema.org и в другом направлении, даже если обратное свойство не определено.)

Примеры

В организации (#1) есть два отдела (#2, #3).

JSON-LD

Использование массива ([]):

{
  "@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>

RDFa

Повторение свойства:

<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>
...