如何在HTML5中嵌入/编码的SVG图像格式中为电子书编写Microdata或JSON-LD?

时间:2016-08-04 10:32:55

标签: html5 svg schema.org microdata json-ld

我刚刚发现了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 / encoding / encodesCreativeWork / encodingFormat? (虽然,我的理解是转换器应该添加一个提取的文本文件或只是提取文本以方便搜索,但我找不到。)

  3. 添加:整本书的numberOfPages(不是单个块或html文件),about,sameAs(对于主站点),描述。

  4. 我的问题是,我不确定(根据我目前的知识)如上所述为我的上下文选择哪些Schema.org类型和属性,如何正确和简明地用正确/有效的语法编写它,以及在哪里将它放在HTML文件的源代码中。这些文件的内容在我看来都是混乱的,几乎无法解读的代码在这里和那里非常稀疏地散布着一些原始文本。在我看来,原始的所有字体,文本和图像都在这里编码在同一个地方。这几乎与我无法区分。所以,我的想法是从带有Microdata的body标记开始,并在一个或两个divspan内封装其他所有内容。无需单独识别项目。

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

    基于UNOR&S的回复

    以下是我认为我会解决的代码(仍然存在一些问题):

    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>
      
    3. 如果这完全正确,我想知道什么?

      此外,我如何能够并且应该在{1}中加入contentLocation - 以表明本书主要内容的地理限制或重点?如下:

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

1 个答案:

答案 0 :(得分:1)

语法

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

  • JS​​ON-LD
  • 微数据
  • RDFa的

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

仅仅因为它代表了一本书(而不是#34;普通&#34;网站)并没有改变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>

第一个@idhttp://example.com/foobar#book)中的URI将是代表该书的URI。我添加了#book片段来区分实际图书和包含(或即将出版)图书的网页(details)。如果您有本书的单独网站,则使用网站的主页URI(理想情况下使用片段,如#book或其他内容)是有意义的。

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