Я пытаюсь использовать JSON-LD, чтобы сделать устаревший файл JSON машиночитаемым. Рассматриваемый файл JSON имеет объект верхнего уровня с членом item
, ссылающимся на объект, который содержит актуальные релевантные данные.
{
"item": {
"id": "123",
"name": "Test"
}
}
Когда я сейчас представляю контекст вроде следующего:
{
"@context": {
"name": "https://example.org/name"
}
}
Никакие знания не извлекаются, а это значит, что из этого нельзя интерпретировать тройки. Чтобы заставить его работать, я понял, что могу сделать следующее:
{
"@context": {
"item": "https://example.org/exists",
"name": "https://example.org/name"
}
}
Это работает, то есть тройка с предикатом имени извлекается хорошо. Однако проблема с этим подходом заключается в том, что также извлекается ненужная тройка с предикатом exists
.
Поэтому я экспериментировал с маркировкой объекта верхнего уровня как контейнера индекса, так что ключ item
полностью игнорировался. Я просто не могу найти способ сделать это без необходимости назначать IRI термину item
, и если я его назначу, снова будет извлечена ненужная тройка.
{
"@context": {
"name": "https://example.org/name"
}
}
Никакие знания не извлекаются, а это значит, что из этого нельзя интерпретировать тройки. Чтобы заставить его работать, я понял, что могу сделать следующее:
Это вообще не работает (потому что термин item
не имеет IRI):
{
"@context": {
"item": {
"@container": "@index"
},
"name": "https://example.org/name"
}
}
И это действительно работает, но снова имеет ненужные тройки:
{
"@context": {
"@container": "@index",
"item": "https://example.org/exists",
"name": "https://example.org/name"
}
}
Что мне здесь не хватает? Как я могу создать контекст, который извлекает только тройку name
?