嵌套级别重复键的 JSONLD 上下文

问题描述

我将以下 json 与下面的上下文合并,

目前我面临两个问题

1 JSON 中不同级别的重复键或属性如何处理,以便我可以将正确的三元组相互连接?

2 @vocab 被忽略,我在 rowid 上使用了 @id,它在 json-ld 游乐场中添加一个认前缀

        {
        "@context": {
            "@vocab": "http://xyz.qte.com/01#","xxx": "http://xyz.qte.com/01#","@base": "http://xyz.qte.com/01#","rowid": "@id","values": "@nest","relation": "@nest","blobs": "@nest","displaytypename": {
                "@id": "http://www.w3.org/2000/01/rdf-schema#label","@type": "@id"
            },"type": "@type","blobid": {
                "@id": "cccmi:blobid","@type": "@id"
            }
        },"@id": "xxx:abs","type": "abs","objectversion": 15,"displaytypename": "ABS","displaytypenamelang": "en","objectid": "123456","typeversion": "r34","values": [{
            "value": 278494
        }],"rows": [{
                "rowid": "123","displaytypename": "asdf","type": "affected_objects","values": [{
                    "value": "1234"
                }]
            },{
                "rowid": "345","displaytypename": "bla","type": "affected_objects2","values": [{
                    "value": "5678"
                }],"relation": {
                    "rows": [{
                        "rowid": "678","displaytypename": "baba","type": "affected_objects3","values": [{
                            "value": "General"
                        }],"relation": {
                            "rows": [{
                                    "rowid": "546","type": "affected_objects4","values": [{
                                        "value": "2002-09-04"
                                    }]
                                },{
                                    "rowid": "874","displaytypename": "blah","type": "affected_objects5","values": [{
                                        "value": "TMBLA"
                                    }]
                                },{
                                    "rowid": "973","type": "affected_objects6","values": [{
                                        "value": "456"
                                    }]
                                }
                            ]
                        }
                    }]
                }
            },{
                "rowid": "987","displaytypename": "bllah","type": "co_issue","values": [{
                    "value": 3
                }],"relation": {
                    "rows": [{
                            "rowid": "163","displaytypename": "blaj","type": "affected_objects7","values": [{
                                "value": "Exists"
                            }],"blobs": [{
                                "mime_type": "abc","blobid": "2344"
                            }]
                        }

                    ]
                }
            }


        ]
    }

解决方法

“重复键”是指在 JSON 文档的不同级别用作属性键的相同术语。为此,JSON-LD 具有 Scoped Context 的概念,由此您可以在某些属性的值内或类型有效的地方使用上下文。通过这种方式,例如,您可以定义“值”以映射到顶层的一个 IRI,并在“值”(或一些其他中间属性)的术语定义内,定义一个新的上下文,该上下文重新定义“价值”

关于 @vocab@id@id 被视为文档相关术语,并且字符串值从文档库或 @base(如果在活动上下文(见section 4.1.3 Base IRI)。 @vocab 用于扩展与词汇相关的术语,例如 @type 和对象属性键,它们没有另外定义为术语(请参阅 section 4.1.2 Default Vocabulary

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...