Список цитат не распознается SDTT

Я пытаюсь правильно структурировать список цитат, используя JSON-LD, и просто не могу заставить Google SDTT распознавать элементы.

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

<script type="application/ld+json"> 
    "@context": "http://schema.org/",
    "@type": "ItemList" {
        "@type": "citation" {
            "@type" : "periodical" {
                "name": "Log of Mystic Seaport (1948-2003; Vols. 1-54)"
             },
    "@type": "vehicle" {
        "name": "Mary Celeste",
        "category": "brig",
        "date": "1905",
        "nationality": "American",
        "weight": "",
        "id": ""
      }
    }
  }
} 
</script>

person Shawn Fielding    schedule 24.10.2017    source источник
comment
Вы пытались проверить, что ваш json-ld действителен? Вы пробовали протестировать его с помощью инструмента, который Google использует для структурированных данных? Также рекомендуется проверить, действительна ли ваша схема для schema.org.   -  person bated    schedule 24.10.2017
comment
У вас есть четыре { и пять }. -- О форматировании кода: вам не нужно писать < script и < /script, чтобы отобразить разметку в блоке кода. Заключение вашей разметки в ` необходимо только для встроенного кода, но вы используете блок кода.   -  person unor    schedule 24.10.2017
comment
Да, одинарные кавычки были ошибкой при вставке. Он обнаружен, но найденных элементов остается 0, поэтому я предполагаю, что что-то не так. Это близко к schema.org, но не точно. Возможно, это проблема.   -  person Shawn Fielding    schedule 25.10.2017


Ответы (1)


Ошибки

В JSON-LD фигурные скобки всегда должны стоять парами:

  • У вас есть четыре {, но пять }.

Термины Schema.org чувствительны к регистру:

  • Нет periodical, но есть Periodical.
  • Нет vehicle, но есть Vehicle.

@type JSON-LD можно использовать только для типов, а не для свойств:

  • citation — это не тип, а свойство.

За оператором @type не может следовать оператор {:

  • "@type": "ItemList" { (и другие вхождения) недействительны. Кажется, вы хотите использовать свойство здесь в дополнение.

Для типа Schema.org вы должны использовать только те свойства, которые определены для него:

  • Тип Vehicle не определяет свойства date, nationality и id (такого свойства нет в Schema. орг).

ItemList записей

Вам необходимо использовать свойство itemListElement для предоставления записей списка:

{
  "@context": "http://schema.org/",
  "@type": "ItemList",
  "itemListElement": [
    {
      "@type": "CreativeWork"
    },
    {
      "@type": "CreativeWork"
    },
    {
      "@type": "CreativeWork"
    }
  ]
}
person unor    schedule 30.07.2018