digitalbazaar / jsonld.js

A JSON-LD Processor and API implementation in JavaScript
https://json-ld.org/
Other
1.66k stars 195 forks source link

@context interpretation issue in jsonld.js #407

Open jakubklimek opened 4 years ago

jakubklimek commented 4 years ago

Same as https://github.com/json-ld/json-ld.org/issues/740 When the following JSON-LD is loaded (e.g. transformed to N-Quads), the konzultant property is interpreted correctly:

{
    "@context": {
        "@version": 1.1,
        "@import": "https://ofn.gov.cz/věc/2020-07-01/kontexty/věc.jsonld",
        "@propagate": true,
        "nedefinováno": "https://slovník.gov.cz/nedefinováno/",
        "Téma dizertační práce": {
            "@id": "nedefinováno:téma-dizertační-práce",
            "@context": {
                "konzultant": {
                    "@id": "nedefinováno:konzultant",
                    "@context": [
                        "https://pod-test.mvcr.gov.cz/otevřené-formální-normy/věda-a-výzkum/draft/kontexty/věda-a-výzkum.jsonld",
                        "https://ofn.gov.cz/lidé-a-osoby/2020-07-01/kontexty/člověk-či-osoba.jsonld"
                    ]
                }
            }
        }
    },
    "typ": "Téma dizertační práce",
    "název": {
        "cs": "2D nanomateriály pro detekci polutantů v životním prostředí"
    },
    "konzultant": {
        "typ": "Výzkumník",
        "jméno": {
            "cs": "Martin"
        }
    }
}

yields:

_:b0 <http://purl.org/dc/terms/title> "2D nanomateriály pro detekci polutantů v životním prostředí"@cs .
_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://slovník.gov.cz/nedefinováno/téma-dizertační-práce> .
_:b0 <https://slovník.gov.cz/nedefinováno/konzultant> _:b1 .
_:b1 <http://schema.org/givenName> "Martin"@cs .
_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Person> .

However, when I add an unrelated mapping of školitel to the context, not changing the data:

{
    "@context": {
        "@version": 1.1,
        "@import": "https://ofn.gov.cz/věc/2020-07-01/kontexty/věc.jsonld",
        "@propagate": true,
        "nedefinováno": "https://slovník.gov.cz/nedefinováno/",
        "Téma dizertační práce": {
            "@id": "nedefinováno:téma-dizertační-práce",
            "@context": {
                "školitel": {
                    "@id": "nedefinováno:školitel",
                    "@context": "https://pod-test.mvcr.gov.cz/otevřené-formální-normy/věda-a-výzkum/draft/kontexty/věda-a-výzkum.jsonld"
                },
                "konzultant": {
                    "@id": "nedefinováno:konzultant",
                    "@context": [
                        "https://pod-test.mvcr.gov.cz/otevřené-formální-normy/věda-a-výzkum/draft/kontexty/věda-a-výzkum.jsonld",
                        "https://ofn.gov.cz/lidé-a-osoby/2020-07-01/kontexty/člověk-či-osoba.jsonld"
                    ]
                }
            }
        }
    },
    "typ": "Téma dizertační práce",
    "název": {
        "cs": "2D nanomateriály pro detekci polutantů v životním prostředí"
    },
    "konzultant": {
        "typ": "Výzkumník",
        "jméno": {
            "cs": "Martin"
        }
    }
}

the konzultant property is not interpreted anymore, yielding:

_:b0 <http://purl.org/dc/terms/title> "2D nanomateriály pro detekci polutantů v životním prostředí"@cs .
_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://slovník.gov.cz/nedefinováno/téma-dizertační-práce> .
_:b0 <https://slovník.gov.cz/nedefinováno/konzultant> _:b1 .
_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://json-ld.org/playground/Výzkumník> .