Как написать микроданные или JSON-LD для электронной книги в формате изображения SVG, встроенном/закодированном в HTML5?

Я только что узнал о Schema.org. Я хотел бы использовать его на своих веб-страницах. Я думаю, что до сих пор у меня было очень общее и запутанное представление о Schema.org, но, к сожалению, прямо сейчас я не могу позволить себе время, чтобы углубиться в него и узнать больше, чтобы иметь возможность использовать его правильно и немедленно< /em> на страницах, которые я создаю прямо сейчас.

Итак, вот моя проблема:

Я преобразовал огромную 670-страничную книгу (с большим количеством фотографий в дополнение к тексту) в страницы HTML5. Книга представляет собой PDF-файл. Я разбил его на 23 фрагмента, а затем преобразовал эти фрагменты в равное количество файлов HTML5, используя бесплатный/пробный конвертер (преобразование PDF в HTML5+SVG). Эти файлы HTML5 не имеют видимых зависимостей/внешних ресурсов, как обычные HTML-страницы (особенно со встроенными изображениями, JS, CSS и т. д.). Кроме того, помимо изображений из исходного PDF-файла, исходный текст PDF-файла также был преобразован в формат изображения «svg» вместо текста — и, я думаю, встроен или закодирован в HTML-файлы. Но я не вижу никаких внешних зависимых файлов, они кажутся самодостаточными с большим количеством кода. Другими словами, кажется, что все содержание книги содержится только в этих HTML-файлах. Я не знаком с такими файлами HTML и не уверен, возможно ли это, или я что-то здесь упускаю из-за недостатка знаний.

В любом случае, теперь внутри исходных кодов этих HTML-файлов я хотел бы сообщить поисковым системам (и другим заинтересованным сторонам, если таковые имеются) максимально удобным для Google способом, используя Microdata или JSON-LD, что —

  1. Этот файл (отдельные фрагменты файла HTML5) является частью или фрагментом (не обязательно «главой») (isPartOf? PublicationIssue?) «Книги» или «Электронной книги» (той же книги или электронной книги). Здесь есть и другие подобные файлы, и вместе они составляют целую книгу.

  2. Основное содержание книги (следовательно, отдельных HTML-файлов) в основном представлено в формате изображений, вероятно, SVG+XML. -- bookFormat/BookFormatType/ImageObject/associatedMedia/MediaObject/coding/encodesCreativeWork/codingFormat? (Хотя я так понимаю, что конвертер должен добавлять извлеченный текстовый файл или просто извлеченный текст для облегчения поиска, но я не могу этого найти.)

  3. Добавьте: количество страниц всей книги (не отдельных фрагментов или html-файлов), about, sameAs (для основного сайта), description.

Моя проблема в том, что я не уверен (исходя из своих нынешних знаний), какие типы и свойства Schema.org выбрать для моего контекста, как описано выше, как правильно и лаконично написать его с правильным/допустимым синтаксисом и где его разместить внутри исходный код файлов HTML. Содержимое файлов кажется мне беспорядочным и почти не поддающимся расшифровке кодом, очень редко разбавленным небольшим количеством исходного текста. Мне кажется, что все шрифты, тексты и изображения оригинала здесь закодированы в одном месте. Которые для меня почти неразличимы. Итак, моя идея состоит в том, чтобы начать с тега body с микроданными и инкапсулировать все остальное в один или два div или span. Нет необходимости идентифицировать элементы отдельно.

Вот и все! Кто-нибудь может помочь?

ОБНОВЛЕНИЕ НА ОСНОВЕ ОТВЕТА UNOR

Вот код, на котором, я думаю, я остановлюсь (остаются некоторые вопросы):

  1. Для размещения на странице оглавления (с названием книги в качестве заголовка) книги/электронной книги, которая также будет страницей входа: --

    <script type="application/ld+json">
     {
       "@context":  "http://schema.org/",  
       "@id": "http://example.com/Archaeological_Heritage_Of_India.html#book", 
       "@type": "Book",  
       "name": "Archaeological Heritage of India",  
       "bookFormat": {"@id": "http://schema.org/EBook"},  
       "inLanguage": "en", 
       "genre": "Archaeological Heritage" **/* OR "genre": "http://vocab.getty.edu/aat/300054328" */**
      }
    </script>
    
  2. Для размещения на остальных страницах книги (т.е. в отдельных отдельных html-файлах):

    <script type="application/ld+json">
      {
        "@context":  "http://schema.org/",
        "isPartOf": "http://example.com/Archaeological_Heritage_Of_India.html#book"
      }
    </script>
    

Что я хотел бы знать, если это полностью правильно?

Кроме того, как я могу и должен включить contentLocation в это (в № 1) - чтобы указать географический предел или фокус основного содержания книги? Как насчет следующего:

"contentLocation": "India" /* OR - the ISO 3166-1 alpha-2 country code: "IN" ?

person Mon    schedule 04.08.2016    source источник


Ответы (1)


Синтаксис

Если это документы HTML5, у вас есть три варианта предоставления структурированных данных с помощью Schema.org:

  • JSON-LD
  • Микроданные
  • РДФа

В то время как микроданные и RDFa определяют атрибуты, которые добавляются к вашим существующим элементам HTML, JSON-LD добавляется в отдельный элемент script.

Тот факт, что он представляет собой книгу (а не «обычный» веб-сайт), не меняет способа добавления JSON-LD/Microdata/RDFa. Выберите любой синтаксис, который лучше всего подходит для вас.

Словарь

Для всей книги следует использовать тип Book. EBook — это не тип, а значение перечисления для bookFormat.

Итак, вы могли бы иметь (пример в JSON-LD):

<script type="application/ld+json">
{
  "@context":  "http://schema.org/",
  "@id": "http://example.com/foobar#book",
  "@type": "Book",
  "name": "Foobar",
  "bookFormat": {"@id": "http://schema.org/EBook"}
}
</script>

URI в первом @id (http://example.com/foobar#book) будет URI, представляющим книгу. Я добавил фрагмент #book, чтобы различать настоящую книгу и веб-страницу, содержащую книгу (или посвященную ей) (подробности) . Если у вас есть отдельный веб-сайт для этой книги, имеет смысл использовать URI домашней страницы веб-сайта (в идеале с фрагментом, например #book или каким-то другим).

Всякий раз, когда вы ссылаетесь на эту книгу, вы можете использовать этот URI вместо повторения данных на каждой странице (например, для каждой страницы в isPartOf< /а>).

person unor    schedule 05.08.2016
comment
Привет, спасибо за ваш ответ. Просто чтобы проверить, правильно ли я вас понял - посмотрите мое последнее обновление (на основе вашего комментария) внизу моего основного сообщения. В нем также есть 1/2 вопроса, требующего уточнения. Еще раз спасибо за ваше время и терпение! - person Mon; 06.09.2016
comment
Хорошо. Позвольте мне тогда полностью сузить круг. Я думаю, это не может быть более узким и конкретным, чем это.. :) Не могли бы вы просто подтвердить пункт № 2 в моем обновлении выше в основном посте? Это часть вашего кода — это то, что вы имели в виду — размещать вот так на остальных страницах кроме главной страницы? (Я надеюсь, что этот вопрос также не нарушает правило об одном основном вопросе для каждой публикации. Это не основной вопрос, и его нельзя задавать как основной или отдельный или независимый вопрос, потому что он полностью связан с вашим предыдущим ответом и зависит от него :)). - person Mon; 07.09.2016
comment
@Mon: Когда ты хочешь сказать, что это часть этой книги, да. Вы можете указать, что это это, т. е. указать тип фрагмента (например, "@type": "CreativeWork", или любой другой подходящий тип). - person unor; 07.09.2016