我正在尝试使用Schema.org在JSON-LD中编码与网站相关的语义信息。
该网站非常基础:它包含主页,包含图像列表的画廊页面和图像详细信息页面。
从Schema.org网站上阅读不同的示例,并同时查看“入门”部分,很难理解每个页面中必须提供哪些信息。
为了澄清这个问题,我可以通过阅读Schema.org文档后推导出所需的信息来提供我要创建的代码片段。
在特定问题列表下方:
主页中提供的信息是否需要在所有其他页面中重复?在这种情况下,附加信息应如何编码(如何声明页面是ImageGallery
或ImageObject
)?
如何将图像与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"
}
}
画廊页面
{ "@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."
},
.....
]
}
最佳答案
主页中提供的信息是否需要在所有其他页面中重复?
使用语法Microdata和RDFa,通常可以标记页面上的可用内容。尽管JSON-LD的语法与它们不同(因为它没有标记,即,它与现有标记分离),但没有理由以不同的方式处理它。
如果您在主页,图库页面和详细信息页面上有关于特定图像的内容,则可以(并且我认为应该)在每个页面上提供有关该图像的结构化数据。
造成这种情况的原因之一是,消费者不一定会解析您的整个网站:
消费者可能会找到一个页面,寻找结构化数据,然后又消失了,而没有寻找网站的另一个页面。
消费者可能会找到一个页面,寻找结构化数据,对更多数据感兴趣,并遵循结构化数据中指定的链接(例如,作为属性值给出的URI)。
因此,理想情况下,只要有相关信息,就可以提供结构化数据(或参考网站其他位置提供的结构化数据)。
在这种情况下,附加信息应如何编码(如何声明页面是ImageGallery
或ImageObject
)?
区分文档的类型(对于网页是WebPage
或其子类型之一)和本文档中描述的事物的类型是有意义的。
因此,ImageGallery
(这是WebPage
的子类型)代表页面,而ImageObject
代表可能是该页面一部分的图像。
如果可能(但通常不是),则应提供将所有提供的节点关联起来的属性。例如,使用hasPart
/ isPartOf
,mainEntity
/ mainEntityOfPage
,或者使用author
等属性。
如何将图像与URI匹配(在图像详细信息页面中)以在语义上将图像中的事物链接到现实世界中的事物(例如使用dbpedia.org/resource/URI)?
Schema.org的sameAs
property可以用于此目的。但是您当然也可以使用其他词汇表中的属性,例如owl:sameAs
。