Schema.org 澄清 JSON-LD 表示和 URI
Schema.org clarification for JSON-LD representation and URIs
我正在尝试使用 Schema.org 在 JSON-LD 中编码与网站相关的语义信息。
该网站非常基础:它包含主页、包含图像列表的画廊页面和图像详细信息页面。
阅读 Schema.org 网站上的不同示例,并查看 "get started" 部分,要理解每个页面中必须提供哪些信息并不容易。
为了澄清这个问题,我可以在阅读 Schema.org 文档后通过推断所需的信息来提供我正在尝试创建的代码片段。
具体问题列表如下:
- 是否需要在所有其他页面中重复主页中提供的信息?在这种情况下,附加信息应该如何编码(如何声明页面是
ImageGallery
或ImageObject
)?
- 如何(在图像详细信息页面中)将图像与 URI 进行语义匹配 link 图像中的事物与真实世界的事物(例如使用 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."
},
.....
]
}
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
.
我正在尝试使用 Schema.org 在 JSON-LD 中编码与网站相关的语义信息。 该网站非常基础:它包含主页、包含图像列表的画廊页面和图像详细信息页面。
阅读 Schema.org 网站上的不同示例,并查看 "get started" 部分,要理解每个页面中必须提供哪些信息并不容易。
为了澄清这个问题,我可以在阅读 Schema.org 文档后通过推断所需的信息来提供我正在尝试创建的代码片段。
具体问题列表如下:
- 是否需要在所有其他页面中重复主页中提供的信息?在这种情况下,附加信息应该如何编码(如何声明页面是
ImageGallery
或ImageObject
)? - 如何(在图像详细信息页面中)将图像与 URI 进行语义匹配 link 图像中的事物与真实世界的事物(例如使用 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."
},
.....
]
}
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
orImageObject
)?
区分文档的类型(在网页的情况下,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
.