我正在为会议建立一个webpage。该页面包含多个对象,例如speaker
(Person)或session
(Event)。
我想在页面中添加语义数据,以便搜索引擎和社交网络可以轻松理解其内容。我想将页面整体描述为部分页面 - 就像单个会话一样
如何以标准方式标记整个页面和内部对象? 我可以在同一页面中使用多个JSON-LD,还是应该将JSON-LD用作整个页面以及内部对象的其他标记?
感谢您指出JSON-LD Schema.org: Multiple video/image page的答案。但是,我不知道我应该在哪里放置不同的JSON-LD对象,以便它们中的每一个都引用文档的特定部分。它们应该使用div ID链接吗? <script>
是否应该放在相关的div中?
答案 0 :(得分:1)
如果您希望根据Google的指南,可以在网页上包含多个结构化数据元素:
判断它是否可以解析预期的JSON-LD对象和属性的最佳方法是使用他们的Structured Data Testing Tool
答案 1 :(得分:0)
我不知道应该在哪里放置不同的JSON-LD对象,以便每个对象引用文档的特定部分。
使用JSON-LD,结构化数据不会耦合&#34;到HTML。 (对于Microdata和RDFa语法,这是可能的,但即使在那里,在提取结构化数据之后,它与指定的HTML元素无关。)
如果您有一个关于两个人的页面,您只需提供一个WebPage
和两个Person
个对象。为了能够从其他地方对这些对象进行陈述,give them URIs是一个很好的做法,可以指定with @id
。对于WebPage
,URI通常是页面的规范URL。
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebPage",
"@id": "",
"about": [
{
"@type": "Person",
"@id": "#person-1"
},
{
"@type": "Person",
"@id": "#person-2"
}
]
}
</script>
理论上,可能有一个属性允许您引用描述实体的HTML元素。 Schema.org目前具有Pending中的属性,用于SpeakableSpecification
(Pending):cssSelector
(Pending)(使用CSS选择器引用元素),xpath
(Pending)(使用XPath引用元素)。但这些不能用于其他情况(如目前所定义)。因此,您必须为此目的定义自己的属性。
它们是否应使用div ID链接?
您可以在对象的id
属性中提供url
值。它没有&#34;链接&#34;但是HTML到结构化数据。它只传达:您可以通过以下URL找到有关此节点对象描述的实体的信息。
通常每个实体都有自己的页面,但当然,在同一页面上描述多个实体完全没问题。
扩展上面的例子:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebPage",
"@id": "",
"about": [
{
"@type": "Person",
"@id": "#person-1",
"url": "#about-person-1"
},
{
"@type": "Person",
"@id": "#person-2",
"url": "#about-person-2"
}
]
}
</script>
<script>
是否应该放在相关的div中?
对于结构化数据,它makes no difference在HTML文档中放置script
元素。
您可以将所有对象放在一个script
元素中(如上面的示例中所示),或者您可以使用多个script
元素,但是您应该引用它们的@id
值,以便您仍然可以使用about
之类的属性(上面链接的答案中的示例)。它在语义上没有区别。