我很好奇将JSON-LD应用到schema.org网站的最佳实践.
如果我有一个页面,Article我也想WebSite在我的页面上定义,我会这样:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebSite",
"url": "http://www.example.com/",
"potentialAction": {
"@type": "SearchAction",
"target": "http://www.example.com/search?&q={query}",
"query-input": "required"
}
}
</script>
<!- … -->
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Article",
"author": "John Doe",
"interactionCount": [
"UserTweets:1203",
"UserComments:78"
],
"name": "How to Tie a Reef Knot"
}
</script>
Run Code Online (Sandbox Code Playgroud)
这是对还是错?是否有任何好处或需要将它们合并到相同的脚本或项目数组中?
我对网站的语义有点困惑.我知道每个URI都应该代表一个资源.我假设RDFa在网页内提供的所有信息都描述了该网页的URI所代表的资源.我的问题是:为网站的子页面提供语义数据的最佳做法是什么.
在我的情况下,我想使用带有schema.org和opengraph词汇表的RDFa为一个名为magma的剧院组创建一个网站.假设我有欢迎页面(http://magma.com/),联系页面(http://magma.com/contact/)和各个游戏的页面(http://magma.com/play/<playid>/).
现在我认为欢迎页面和联系页面都代表相同的资源(岩浆),同时提供有关该资源的不同信息.然而,剧本页面代表恰好由岩浆执行的剧本.或者更好地说,游戏页面也代表了岩浆,但提供了由该组执行的游戏信息?我偶然发现的第三个选项是http://schema.org/WebPage.特别是类似的亚型ContactPage似乎是相关的.
在实现方面,我在哪里放置RDFa?
最后:我的选择将如何改变第三方(谷歌,脸谱,...)对待网站的方式?
我意识到这个问题有点模糊.为了使它更具体,我将添加一个你可能会批评的例子:
<html vocab="http://schema.org/" typeof="TheaterGroup">
<head>
<meta charset="UTF-8"/>
<title>Magma - Romeo and Juliet</title>
<!-- magma sematics from a template file -->
<meta property="name" content="Magma"/>
<meta property="logo" content="/static/logo.png"/>
<link rel="home" property="url" content="http://magma.com/"/>
</head>
<body>
<h1>Romeo and Juliet</h1>
<!-- semantics of the play -->
<div typeof="CreativeWork" name="Romeo and Juliet">
...
</div>
<h2>Shows</h2>
<!-- samantics of magma events -->
<ul property="events">
<li typeof="Event"><time property="startDate">...</time></li>
...
</ul>
</body> …Run Code Online (Sandbox Code Playgroud) 使用http://www.schema.org/Product的特定格式是否有任何优点/缺点?像"Searchengines比JSON-LD更了解Microdata"之类的东西?我想使用JSON-LD,因为它不会弄乱你的html代码,但我不确定使用微数据是否会更好地关注searchengines.