[英]Right way to set microdata for Q&A HTML
假设有一个简单的问题并回答HTML并想添加微数据,应该如何进行?
<h2>My Question</h2>
<p>My Answer</p>
我知道schema.org的例子,但我不太清楚。 看起来有点矫枉过正。 我需要一个简单的解决方案 我可以这样做吗?
<h2 itemscope itemtype="http://schema.org/Question">My Question</h2>
<p itemscope itemtype="http://schema.org/Answer">My Answer</p>
我只想说出问题是什么,答案是什么。 这对搜索引擎来说足够了吗? 或者我应该有更复杂的东西,如:
<div itemscope itemtype="http://schema.org/Question">
<h2 itemprop="name">My Question</h2>
<p itemscope itemtype="http://schema.org/Answer">My Answer</p>
</div>
使用itemprop="name"
正确的方法来说明问题是什么? 在上面提到的schema.org示例中, itemprop="name"
和itemprop="text"
之间有什么区别?
从您的第一个示例开始,Microdata解析器只会知道有一个Question
和一个Answer
项目,没有任何进一步的内容。 微数据没有指定必须考虑具有itemscope
属性的HTML元素的内容,它只关心属性值 。
使用一些在线Microdata解析器测试您的示例:
W3C的微型数据到RDF Distiller提取这个RDF(在Turtle中):
<> md:item ( [ a schema:Question ] [ a schema:Answer ] ); rdfa:usesVocabulary schema: .
结构化数据锁定器具有几乎相同的输出。
Yandex的结构化数据验证器具有类似的输出。
谷歌的结构化数据测试工具不提取任何东西。
name
与text
对于这个问题, name
将是“为Q&A HTML设置微数据的正确方法”, text
将是问题正文(“Say one有一个简单的问题......”)。
如果整个问题只包含这样一条短线,我会使用text
属性而不是name
(*)。 如果你想要/需要, name
也可以是“问题1”。
但是你也可以将这两个属性用于一个简短的问题,即itemprop="name text"
,但这可能不是很优雅(但是如果你知道某些数据使用者使用了name
属性,它就会有意义)。
* Answer
的示例也使用text
(并且没有name
)。
您可能还想使用Question的suggestedAnswer
属性和/或Answer的parentItem
属性来关联这两个项目。
所以对于一个简短的问题,它可能看起来像:
<section itemscope itemtype="http://schema.org/Question">
<h2 itemprop="name text">My Question</h2>
<div itemprop="suggestedAnswer" itemscope itemtype="http://schema.org/Answer">
<p itemprop="text">My Answer</p>
</div>
</section>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.