Я думал о том, как использовать JSON-LD для управления приложением в соответствии с принципом HATEOAS.
Например, у меня может быть простой объект точки входа, который определяет ссылку:
{
"@context": {
"users": { "@id": "http://example.com/onto#users", "@type": "@id" }
},
"@id": "http://example.com/api",
"users": "http://example.com/users"
}
И предикат #users
будет определен как Link
с помощью Hydra:
{
"@context": "http://www.w3.org/ns/hydra/context.jsonld",
"@id": "http://example.com/onto#users",
"@type": "Link"
}
Пока все хорошо: приложение извлекает ресурс, затем ресурс onto#users
будет разыменован для обнаружения семантики.
Вопрос в том, как разработчик должен обнаружить URI свойства users
из документа JSON-LD. Конечно, в моем примере это четко определено в @context
, но этот URI можно было бы объявить как QName:
"@context": {
"onto": "http://example.com/onto#",
"users": { "@id": "onto:users", "@type": "@id" }
}
или внешний контекст может использоваться или несколько/вложенных контекстов.
Есть ли в библиотеке Javacript JSON-LD функция, которая возвращает абсолютные URI любого заданного свойства? Или есть простой способ найти его? Способ, который будет работать независимо от структуры @context
? Что-то типа
var jsonLd = /* some odc */
var usersUri = jsonLd.uriOf('users');
expect(usersUri).toBe('http://example.com/onto#users');
Другими словами, я думаю, что ищу единый API для чтения @context
.
jsonld.expand
: stackoverflow.com/questions/24265543/ - person mb21   schedule 04.07.2014