我想将Schema.org(带Microdata)添加到基于浏览器的游戏中。整个网站将被视为VideoGame,因此将每个网页标记为$string = iconv('UTF-8', 'UTF-16BE', $string); // .. or mb_convert_encoding
$converted = '';
for ($i = 0; $i < strlen($string); $i++) {
$converted .= sprintf('%02X', ord($string[$i]));
}
标记中的VideoGame
并标记为&#34; Home&#34;链接<html>
属性。
但是,每个拼图级别都有单独的页面(每个&#34;系统&#34;),以及级别集合的页面(&#34;集群&#34;)。我该如何标记这些? sameAs
和gameLocation
都是含糊不等的属性,但不是很好的匹配。我希望能够使每个系统和群集成为自己的项目,而不仅仅是父项gameItem
的属性。
如何在每个级别的页面上表示游戏的各个级别?
答案 0 :(得分:1)
您可以为游戏添加URI并使用此URI作为每个实体的标识符,而不是使用sameAs
属性从VideoGame
实体的每个实体链接到游戏的主页.¹ url
property可用于链接到游戏的主页。 sameAs
property可用于链接到关于游戏的维基百科页面等。
VideoGame
实体代表整个游戏,提供有关游戏的元数据等,但此类型本身并不代表游戏的特定部分。
如果使用其gameLocation
property,则执行会有自己的项目(例如Place
)。与gameItem
property相同(例如Thing
)。这些是VideoGame
的属性,因为否则游戏与其包含的位置/项目之间不存在任何关系。当然,您可以使用Place
/ Thing
作为顶级项目,并使用reverse²属性来引用VideoGame
,但这只是一个实现细节,它不会更改数据
然而,Schema.org的重点当然不是视频游戏,因此大多数游戏内容都无法充分代表。例如,gameLocation
可能不适合益智游戏关卡,除非例如游戏角色实际上是在游戏中访问一个谜题。
如果您想提供有关游戏内容的更详细的结构化数据,您必须使用不同的,理想的以游戏为重点的词汇表(和/或等待或建议Schema.org扩展名)。
¹微数据:itemid
/ RDFa Lite:resource
/ JSON-LD:@id
²在JSON-LD中的RDFa(不是RDFa Lite)/ itemprop-reverse
中的微数据(rev
建议)/ @reverse
中没有标准方法