定义JSON-LD @context以加入/拆分值?

Bri*_*len 13 javascript json schema.org linked-data json-ld

我想使用jsonld.js库的expandcompact方法将来自各种源的数据转换为通用格式进行处理.如果我获取源JSON文档,添加一个,然后通过该方法传递它我能够获得我需要的通用格式.@contextexpand

我无法找到解决方案的用例是需要合并多个值时.例如,schema.org定义了PostalAddress一个单独的字段streetAddress,但许多系统将街道地址存储为单独的值(街道号,街道名称,街道方向......).要将传入的数据转换为schema.org格式,我需要一种方法来指示我的@context多个字段以streetAddress正确的顺序组成.

压缩文件

{
    "@context": {
        "displaName": "http://schema.org/name",
        "website": "http://schema.org/homepage",
        "icon": "http://schema.org/image",
        "streetNumber": "http://schema.org/streetAddress"
    },
    "displaName": "John Doe",
    "website": "http://example.com/",
    "icon": "http://example.com/images/test.png",
    "streetNumber": "123",
    "streetName": "Main St",
    "streetDirection": "South"
}
Run Code Online (Sandbox Code Playgroud)

扩展文件

{
   "http://schema.org/name":[
      {
         "@value":"John Doe"
      }
   ],
   "http://schema.org/image":[
      {
         "@value":"http://example.com/images/test.png"
      }
   ],
   "http://schema.org/streetAddress":[
      {
         "@value":"123"
      }
   ],
   "http://schema.org/homepage":[
      {
         "@value":"http://example.com/"
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

我已经回顾了我能找到的所有JSON-LD规范,并且无法找到任何指示使用分割或连接值的方法@context.

是否有人知道一种方法,以正确的顺序将多个值映射到一个上下文属性,并可能在值之间添加空格.我还需要找到一个反向场景的解决方案,我需要按正确的顺序将一个字段拆分成多个值.

注意:即使我将所有三个属性都映射到streetAddress,数值都将包含在数组中,但不能保证它们的顺序正确.

Bri*_*len 1

我在 jsonld.js Github 存储库上发布了一个问题。根据 jsonld.js 库的原始创建者 @dlongley 的说法,使用标准 JSON-LD 不可能操作这个庄园中的属性。

https://github.com/digitalbazaar/jsonld.js/issues/115