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

时间:2016-03-21 13:47:08

标签: uri semantic-web schema.org json-ld linked-data

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

阅读Schema.org网站上的不同示例,并查看“入门”部分,了解每个页面中必须提供哪些信息并不容易。

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

在具体问题列表下方:

  • 主页中提供的信息是否需要在所有其他页面中重复?在这种情况下,如何编码附加信息(如何声明页面是ImageGalleryImageObject)?
  • 如何匹配(在图像详细信息页面中)带有URI的图像,以便将图像中的东西语义链接到现实世界中(例如使用dbpedia.org/resource/ URI )?

实施例

主页

{ "@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"
   }
}

GALLERY PAGE

{  "@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."
  },
  .....
  ]   
}

1 个答案:

答案 0 :(得分:1)

  

主页中提供的信息是否需要在所有其他页面中重复?

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

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

这样做的一个原因是消费者不一定会解析整个网站:

  • 消费者可能会找到一个页面,查找结构化数据,并且在不查找您网站的其他页面的情况下再次消失。
  • 消费者可能会找到单个页面,查找结构化数据,对更多数据感兴趣并遵循结构化数据中指定的链接(例如,作为属性值提供的URI)。

理想情况下,无论何处相关,都要提供结构化数据(或在您网站上其他地方提供的参考结构化数据)。

  

在这种情况下,如何编码附加信息(如何声明页面是ImageGalleryImageObject)?

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

因此ImageGalleryWebPage的子类型)代表页面,而ImageObject代表可能属于此页面的图像。

如果可能(但通常不是),您应该提供将所有提供的节点放在关系中的属性。例如,hasPart / isPartOfmainEntity / mainEntityOfPage,或者author等属性

  

如何匹配(在图像详细信息页面中)带有URI的图像,以便将图像中的东西语义链接到现实世界中(例如使用dbpedia.org/resource/URI)?

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