我正在尝试使用schema.org作为lanquage在我的网站上使用json-ld.
原因是协助搜索引擎的抓取工具了解我的网站.
Schema.org为Items of Items提供了许多键/值属性对.
有时,这些键的值本身就是具有自己的Type的Item,并且具有自己的一组键/值对.
在实践中,相同的项目是几个不同键的适当答案,并且希望给出该项目的键/值集是必要的/必要的.
例如,在我的情况下,我正在使用schema.org的"WebPage"类型在网站上标记网页.
我想给出与WebPage类型上的各种键的答案相同的人:author,creator,copyrightHolder等.
我想我每次都可以用以下的方式重复这些值:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type" : "WebPage",
"name" : "The Name of the Webpage",
"author" :
{
"@type" : "Person",
"name" : "Tim"
}
"creator":
{
"@type" : "Person",
"name" : "Tim"
}
"copyrightHolder" :
{
"@type" : "Person"
"name" : "Tim",
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
然而,这对我来说是重复和冗长的.
我宁愿分配/定义一次这个人,然后根据需要使用关键字引用他(我).
我不太了解json-ld或编码/编程,作为一个外行人,我发现信息(spec + jsonld.org + here)有点令人困惑.
据我所知,除了将相关的"语言"声明为schema.or之外,还可以为文档(此处为网页)扩展@context以定义"事物",并且json-ld似乎也支持使用'引用特定项目' IRI'作为身份证.
因此,似乎我可以根据需要定义Person一次,类似于以下内容:
<script type="application/ld+json">
{
"@context":
["http://schema.org",
{
"Tim" :
{
"@type" : "Person",
"@id" : "https://www.example.com/tim#tim"
"name" : "Tim"
}
}],
"@type" : "WebPage",
"name" : "The Name of the Webpage",
"author" : "Tim",
"creator": "Tim"
}
</script>
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:
我们可以这样做,如果是这样,怎么做?
在很多文档中,IRI似乎是最后加上#value的URL.#value只是一个声明来区分它与页面URL(对于其他一些键可能是一个值),或者是#value引用页面上的div,例如id ="value"的div或者其他一些协议?
如果我这样做,会说Google的抓取工具只是缓存IRI以便稍后引用相关的URL或div,或者它可能会分配定义的值吗?理想情况下,我希望每次使用都返回扩展值.
我在这个网站上看了很多,以获得这些问题的答案.我见过类似的问题和答案,可能已经回答了这些问题但是我无法理解.例如,我不知道"节点"或"对象"是什么.
请原谅我缺乏知识.任何使用简单的简单语言将不胜感激.实际上,任何帮助将不胜感激!
谢谢.
你的榜样几乎是对的.您需要为@id在其他地方重用的person对象分配一个:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type" : "WebPage",
"name" : "The Name of the Webpage",
"author" : {
"@type" : "Person",
"@id": "#tim",
"name" : "Tim"
},
"creator": {
"@id": "#tim"
},
"copyrightHolder": {
"@id": "#tim"
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
701 次 |
| 最近记录: |