Json-ld, определяющий тип для узла
У меня есть простой файл JSON, как:
{
"name": "something"
}
Теперь у меня есть определение json-ld, где есть объекты. Есть объект с идентификатором #something - он существует, скажем, на http://example.com/test.jsonld.
Теперь я хочу добавить контекст без модификации исходных данных, чтобы имя стало типом, а значение стало IRI для http://example.com/test.jsonld.
Я сделал что-то вроде этого:
{
"@context":{
"name":"@type"
},
"@id":"1234",
"name":"something"
}
Это дает мне на детской площадке почти то, что я хочу:
{
"@id": "1234",
"@type": "http://json-ld.org/playground/something",
}
Как добавить контекст, чтобы значение "что-то расширилось в IRI http://example.com/test.jsonld вместо playgorund?
Пробовал с "@base", но он также меняет @id на URL.
1 ответ
Вы можете использовать термины (строки, сопоставленные с IRI) в качестве значений @type
, Как вы псевдоним name
в @type
уже все, что вам нужно сделать, это добавить отображение из something
в http://example.com/test.jsonld#something
:
{
"@context":{
"name": "@type",
"something": "http://example.com/test.jsonld#something"
},
"@id": "1234",
"name": "something"
}
Пробовал с "@base", но он также меняет @id на URL.
Значение @id
это всегда IRI. Это просто не раскрывается, если у вас нет базы ("@base": null
)