其他分享
首页 > 其他分享> > 可验证凭证学习总结

可验证凭证学习总结

作者:互联网

1.什么是json-ld?

json-ld翻译过来就是链接数据,那么如何做到数据的链接呢?其实原理很简单,给不同的对象赋予不同的名字就可以了。
假设世界上有500个叫小明的人,有一天有一个小明见义勇为。许多人都想写关于那个小明的事迹。1000年后,未来人想知道当年小明到底做了什么事情,于是从网上查找小明的资料。那么1000年前叫小明的有500人,每个人都在网上有记录。如何搜出他们要找的那个小明呢?
前面说到了给不同的对象赋予不同的名字,如何做到呢?也很简单,就是加一个URI。比如上面那个小明,其实他在网上的名字为:uri:“小明”。比如"http://schema.org/name": “小明”。
那么,如果要写小明的英勇事迹,所有人就得把小明的名字替换成"http://schema.org/name": “小明”。那么你在网上搜小明的时候,只要明确了是这个"http://schema.org/name": “小明”,那么这个小明的所有资料就可以被浏览器给统一搜出来了。也就是说,如果A写的小明跟B写的小明跟C写的小明跟其他人写的小明,只要网上出现了"http://schema.org/name": “小明”,这些相关都可以被链接起来。这就是链接数据的道理。
详细用法参见:JSON-LD简介(转)

关于以上链接博客的相关信息说明:
context是什么东西?如何引用?如何创建?
也就是说有一个叫做http://json-ld.org/contexts/person.jsonld的context文档。它的内容是:
{

“@context”:

{

"name": "http://schema.org/name",

"image": {

  "@id": "http://schema.org/image"

  "@type": "@id"

},

"homepage": {

  "@id": "http://schema.org/url",

  "@type": "@id"

}

}

}
可验证凭证官网中5.3 EXAMOPLE16和EXAMOPLE17也用到了。
为什么url和image属性是个对象,里边还有一个@id属性?
答:The ‘@id’ keyword means ‘This value is an identifier that is an IRI’。也就是是,是一个IRI的话,就得加个@id属性说明一下。

所以想要写小明的英勇故事,只需要在你的文档里加上小明的context就行了,就不必要每次都写"http://schema.org/name": “小明”,之间写小明,只要文档里有了这个context,机器就知道你所指的小明就是"http://schema.org/name": "小明"了,因为contex中包含了http://schema.org/name这个部分。

2.为什么可验证凭证里会有多个context?那不就乱了吗?如果context冲突了怎么办?

答:官网上第四章4.1NOTE中支持必须保证context的顺序,我猜想,如果第一个context跟第二个context中有相同的属性的话,那么默认按照context顺序来给于解释。
例子:
“@context”: [
“https://www.w3.org/2018/credentials/v1”,
“https://www.w3.org/2018/credentials/examples/v1”
]
假设第一个context文档中有issuer这个属性:
”issuer“: “https://www.w3.org/2018/credentials/v1/issuer”
第二个context文档中也有issuer这个属性:
”issuer“: “https://www.w3.org/2018/credentials/examples/v1/issuer”
如果可验证凭证出现了issuer这个数据。应该优先被解释为: “https://www.w3.org/2018/credentials/v1/issuer”。
如果想要表达成第二个issuer,那么必须得写出issuer全名。

3.可验证凭证官网上B部分Base Context给出的"https://www.w3.org/2018/credentials/v1"文档?
怎么各种套娃啊,看不懂了都!

标签:总结,可验证,凭证,小明,http,context,org,schema,issuer
来源: https://blog.csdn.net/qq_39286701/article/details/116894231