JSON ответ для вложенного SPARQL - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть структура, подобная приведенной ниже. В настоящее время я ищу ответ 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}]



1 Ответ

0 голосов
/ 27 апреля 2020

Этот кадр JSON -LD помогает получить требуемый результат

   "@context":{
      "XXX":"http://ABC"
   },
   "@type":"xxx:Reference",
   "contains":{
      "@type":"xxx:Log",
      "hasApprover" :{"@type":"xxx:User","@embed": "@always"},
      "hasRequester" :{"@type":"xxx:User","@embed": "@always"}
   }
}
...