Schema.org 澄清 JSON-LD 表示和 URI

Schema.org clarification for JSON-LD representation and URIs

我正在尝试使用 Schema.org 在 JSON-LD 中编码与网站相关的语义信息。 该网站非常基础:它包含主页、包含图像列表的画廊页面和图像详细信息页面。

阅读 Schema.org 网站上的不同示例,并查看 "get started" 部分,要理解每个页面中必须提供哪些信息并不容易。

为了澄清这个问题,我可以在阅读 Schema.org 文档后通过推断所需的信息来提供我正在尝试创建的代码片段。

具体问题列表如下:

例子

首页

{ "@context":"http://schema.org",

   "@type":"WebSite",
   "name":"Site name abc",
   "alternateName":"ABC",
   "description":"description",
   "keywords":"keywords",
   "inLanguage":"en",
   "url":"http://www.thewebsiteurl.com",
   "potentialAction":{
     "@type":"SearchAction",
     "target":"http://www.thewebsiteurl.com/find/{search_term_string}",
     "query-input":"required name=search_term_string"
   }
}

画廊页面

{  "@context":"http://schema.org",
   "@type":"ImageGallery",
   "description":"description",
   "keywords":"keywords",
   "associatedMedia":[
   {
       "@type":"ImageObject",
       "contentUrl": "http://...../image1URL.jpg",
   },
   {
           "@type":"ImageObject",
       "contentUrl": "http://...../image2URL.jpg",    
   },
   .....
   ]
}

图片详情页

{
  "@context": "http://schema.org",
  "@type": "ImageObject",
  "author":{
    "@type": "Person",
    "name":"abc"
  },
  "contentLocation":{ 
      "@type": "Place",
      "geo": {
        "@type": "GeoCoordinates",
        "latitude": "[latitude]",
        "longitude": "[longitude]"
      },
      "name": "Place name"
  },
  "copyrightHolder":{
      "@type": "Organization",
      "email": "info@example.mail",
      "url" : "http://www.thewebsiteurl.com"
  },
  "contentUrl": "http://...../image1URL.jpg",
  "datePublished": "[date]",
  "description": "description",
  "keywords":"keywords",
  "name": "Image name",
  "exifData":[
  {
    "@type": "PropertyValue",
    "name": "Exposure Time",
    "value": "1/10 sec."
  },
  .....
  ]   
}

Does the information provided in the home page need to be repeated in all of the other pages?

使用 Microdata 和 RDFa 语法,您通常会标记页面上可用的内容。虽然语法 JSON-LD 与它们不同(因为它不是 标记 ,即它与现有标记分离),但没有理由以不同方式处理它。

如果您在首页、图库页面和详细信息页面上有关于某个图像的内容,您可以(并且,在我看来,应该)在每个页面上提供关于它的结构化数据。

其中一个原因是消费者不一定会解析您的整个网站:

  • 消费者可能会找到一个页面,寻找结构化数据,然后在没有寻找您网站的其他页面的情况下再次离开。
  • 消费者可能会找到一个页面,查找结构化数据,对更多数据感兴趣并访问结构化数据中指定的链接(例如,以 属性 值给出的 URI)。

因此,最好在任何相关的地方提供结构化数据(或参考您网站其他地方提供的结构化数据)。

In this case, how the additional information shall be encoded (how to state that the page is a ImageGallery or ImageObject)?

区分文档的类型(在网页的情况下,WebPage 或其子类型之一)和描述的事物的类型是有意义的这份文件。

因此 ImageGallery (which is a subtype of WebPage) represents the page, and ImageObject 表示可能属于此页面的图像。

如果可能(但通常不是),您应该提供将所有提供的节点关联起来的属性。例如 hasPart/isPartOf, mainEntity/mainEntityOfPage, or of course properties like author

How to match (in the image detail page) the image with a URI to semantically link the thing in the image to a real world thing (using for example a dbpedia.org/resource/URI)?

Schema.org 的 sameAs property 可用于此目的。但是你当然也可以使用其他词汇表的属性,比如 owl:sameAs.