У меня есть структура, подобная приведенной ниже. В настоящее время я ищу ответ JSON, подобный этому, с запросом SPARQL. Я пробовал несколько вещей, таких как concat и str, но dint сработал так, что для меня это было сложно на 3-м уровне
Теперь я добавил 2 кадра, которые я пробовал с JSON -LD. Обрамление дает правильный вывод, пока на первом уровне на втором уровне не удается расширить данные
:Reference xx1:timestamp "12/15/2020" .
:Reference xx2:logs xxx:log1 .
:log1 rdf:type xxx:Logs .
:log1 xx1:approver "xxx:bob" .
:log1 xx1:requester "xxx:daisy" .
:log1 xx1:timestamp "12/15/2020" .
:log1 xx1:name "log1" .
:log2 rdf:type xxx:Logs .
:log2 xx1:approver "xxx:bob" .
:log2 xx1:requester "xxx.daisy" .
:log2 xx1:timestamp "18/15/2020" .
:log2 xx1:name "log2" .
:bob rdf:type xxx:User .
:bob xx1:name "bob" .
:daisy rdf:type xxx:User .
:daisy xx1:name "daisy" .```
Required Response with SPARQL (3 Levels)
[
{
"timestamp": "12/15/2020",
"logs": [
{ "name": "log1", "timestamp": "12/15/2020" "approver" : {name: bob },"requester" : {name: bob }},
{ "name": "log2", "timestamp": "12/15/2020" "approver" : {name: bob },"requester" : {name: bob }},
]
}
]
JSON-LD FRAMING
FRAME 1
{
"@context":{
"XXX":"http://ABC"
},
"@type":"xxx:Reference",
"contains":{
"@type":"xxx:Log",
"contains":{
"@type":"xxx:User"
}
}
}
FRAME 2
{
"@context":{
"XXX":"http://ABC"
},
"@type":"xxx:Reference",
"contains":{
"@type":"xxx:Log",
"hasApprover" :{"@type":"xxx:User"},
"hasRequester" :{"@type":"xxx:User"}
}
}
The output that I get is
Reference [Log 1 {User is expnded}, Log2{User is not expanded}]
What I need is
Reference [Log 1 {User is expanded}, Log2{User is expanded}]