我正在尝试使用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>
然而,这对我来说是重复和冗长的。
我宁愿分配/定义一次这个人,然后根据需要使用关键字引用他(我)。
我不太了解json-ld或编码/编程,作为一个非专业人士,我发现信息(spec + jsonld.org + here)有点令人困惑。
我知道@context可以针对文档(这里是一个网页)进行扩展,以定义“事物”。除了宣布相关的语言之外作为schema.or,json-ld似乎也支持使用&#39; IRI&#39;来支持引用特定项目。作为身份证。
因此,似乎我可以根据需要定义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>
所以我的问题是:
我们可以这样做,如果是这样,怎么做?
在很多文档中,IRI似乎是最后添加了#value的网址。 #value只是一个声明来区分它与页面URL(对于其他一些键可能是一个值),或者是#value引用页面上的div,例如id =&#34的div ;值&#34;或者其他一些协议?
如果我这样做,会说Google的抓取工具只是缓存IRI以便稍后引用相关的URL或div,或者它是否可能会分配定义的值?理想情况下,我希望每次使用都会返回扩展值。
我在这个网站上看了很多,以寻找这些问题的答案。我见过类似的问题和答案,可能已经回答了这些问题但是我无法理解。例如,我不知道什么是&#34;节点&#34;或者&#34;对象&#34;是。
请原谅我缺乏知识。任何使用简单的简单语言将不胜感激。实际上,任何帮助都会非常感激!
谢谢。
答案 0 :(得分:9)
你的榜样几乎是正确的。您需要将SELECT Min(t1.ShortName),
Min(t0.cardname),
Str(Sum(t1.debit), 15, 2),
Str(Sum(t1.Credit), 13, 2),
Str(Isnull(Sum(T1.DEBIT) - Abs(Sum(T1.CREDIT)), 0), 13, 2)[FINAL]
into #temp
FROM JDT1 t1
INNER JOIN OCRD t0
ON t1.ShortName = t0.CardCode
WHERE t0.CardType = 'S'
AND Year(t1.taxDate) = Year(@Fecha)
GROUP BY t1.ShortName,
t0.CardName
ORDER BY t1.ShortName
SELECT * FROM #temp where FINAL <> '0'
分配给您在其他地方重用的person对象:
@id