Вы можете использовать процессор JSON-LD (вос) создать более хороший JSON для вашей БД. Хорошей возможностью предписать структуру документов JSON-LD является to define a frame.
Цитата спецификации:
JSON-LD Обрамление позволяет разработчикам запрашивать пример и заставить конкретный макет дерева с JSON-LD документа.
Пример:
Предполагая, что ваш документ выглядит
{
"@context": {
"contributor": {
"@type": "@id",
"@id": "http://purl.org/dc/terms/contributor",
"@container": "@list"
},
"label": {
"@id": "http://www.w3.org/2004/02/skos/core#prefLabel"
}
},
"@graph": [
{
"@type": "MainResource",
"@id": "_:foo",
"contributor": [
{
"@id": "_:N6e57c55b35b74782ada714fdc6d66bf1"
},
{
"@id": "_:N810e115dfb3348579a7b826a7548095b"
}
]
},
{
"@id": "_:N6e57c55b35b74782ada714fdc6d66bf1",
"@type": "Person",
"label": "Isely, Duane, 1918-"
},
{
"@id": "_:N810e115dfb3348579a7b826a7548095b",
"@type": "Person",
"label": "Cronquist, Arthur"
}
]
}
Добавить JSON-LD кадр как
{
"@context": {
"contributor": {
"@type": "@id",
"@id": "http://purl.org/dc/terms/contributor",
"@container": "@list"
},
"label": {
"@id": "http://www.w3.org/2004/02/skos/core#prefLabel"
}
},
"@type": "MainResource",
"@embed": "always"
}
Брось его к JSON-LD процессор вашего выбора и вы получите что-то вроде
{
"@context": {
"contributor": {
"@type": "@id",
"@id": "http://purl.org/dc/terms/contributor",
"@container": "@list"
},
"label": {
"@id": "http://www.w3.org/2004/02/skos/core#prefLabel"
}
},
"@graph": [
{
"@id": "_:b0",
"@type": "http://json-ld.org/playground/MainResource",
"contributor": [
{
"@id": "_:b1",
"@type": "http://json-ld.org/playground/Person",
"label": "Isely, Duane, 1918-"
},
{
"@id": "_:b2",
"@type": "http://json-ld.org/playground/Person",
"label": "Cronquist, Arthur"
}
]
}
]
}
Вот полный пример json-ld.org/playground
К сожалению обрамление не equaly хорошо поддерживается. Таким образом, результат зависит от используемого вами процессора JSON-LD.
Дополнительную информацию можно найти, удалив из ваших данных знаки "@". Просто добавьте следующие строки в контекст:
"type" : "@type",
"id" :"@id"
Кроме того, вы можете добавить рассыпчатости для типов в контексте документ
"MainResource": "http://json-ld.org/playground/MainResource"
См пример json-ld.org/playground
Для полного примера кода Java с rdf4j взглядом здесь: How to convert RDF to pretty nested JSON using java rdf4j.