如何在 HTML5 中为 SVG 图像格式 embedded/encoded 的电子书编写微数据或 JSON-LD?

How to write Microdata or JSON-LD for ebook in SVG image format embedded/encoded in HTML5?

我刚知道 Schema.org。我想在我的网页中使用它。到目前为止,我想我已经对 Schema.org 有了一个非常基本且令人困惑的想法,但不幸的是,现在我没有时间深入研究它并了解更多信息以正确使用它 立即在我正在构建的页面中。

所以,这是我的问题:

我将一本 670 页的巨著(除了文字之外还有很多图片)转换成了 HTML5 页。这本书是一个PDF文件。我将其分解为 23 个块,然后将这些块转换为相同数量的 HTML5 文件 - 使用 free/trial 转换器(将 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 / encoding / encodesCreativeWork / encodingFormat? (虽然,我的理解是转换器应该添加一个提取的文本文件或只是提取文本以方便搜索,但我找不到。)

  3. Add: numberOfPages of pages of the entire book (not of Pages of pages of the individual chunks or html files), about, sameAs (for main site), 描述。

我的问题是,我不确定(根据我目前的知识)如上所述为我的上下文选择哪种 Schema.org 类型和属性,如何使用 [=69= 正确简洁地编写它] 语法,以及将其放置在 HTML 文件的源代码中的什么位置。在我看来,这些文件的内容都是杂乱无章的,几乎无法辨认的代码,零星地散落着一些原始文本。在我看来,原件的所有字体、文本和图像都编码在同一个地方。这对我来说几乎无法区分。因此,我的想法是从带有微数据的 body 标记开始,并将其他所有内容封装在一两个 divspan 中。无需单独识别物品。

就是这样!有人可以帮忙吗?

根据 UNOR 的回复更新

这是我认为我会解决的代码(仍有一些问题):

  1. 放置在 book/ebook 的目录(以书名作为页眉)页的 Table - 这也将是入口页:- -

    <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" ?

语法

如果这些是 HTML5 个文档,您可以使用三个选项来提供结构化数据 Schema.org:

  • JSON-LD
  • 微数据
  • RDFa

虽然 Microdata 和 RDFa 定义了添加到现有 HTML 元素的属性,但 JSON-LD 被添加到单独的 script 元素中。

仅仅因为它代表一本书(而不是 "normal" 网站)并不会改变 JSON-LD/Microdata/RDFa 的添加方式。选择最适合您的语法。

词汇

对于整本书,你应该使用 Book type. EBook is not a type, but an enumeration value for the 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>

第一个 @id (http://example.com/foobar#book) 中的 URI 将是代表该书的 URI。我添加了 #book 片段来区分实际的书和包含(或关于)书的网页 (details)。如果本书有一个单独的网站,那么使用该网站的主页 URI 是有意义的(最好使用片段,例如 #book 或其他内容)。

每当您引用本书时,您都可以使用此 URI 而不是在每一页上重复数据(例如,对于 isPartOf 中的每一页)。