Построение IRI из префикса и данных в JSON-LD - PullRequest
0 голосов
/ 25 сентября 2018

У меня проблема с созданием IRI для объекта с использованием префикса и значения данных при преобразовании неотредактированных данных JSON в JSON-LD.Вот пример кода, который я запускаю:

{ 
    "@context" : 
    { "prefix" : "http://www.gerastree.at/",
      "rdfs" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
      "@vocab" : "http://example.com/" ,
      "load" : "prefix:load"
       "items" : "prefix:item"

    }, 
    "@type" : "tree",
    "@id" : "prefix:t1" , 
    "items" : 
    [
        { "@id" : "prefix:t2",
          "@type" : "item",
          "load" : "some111"
         },
        { "@id" : "prefix:t3",
          "@type" : "item",
          "load" : "some2222"
         }    
    ]
}

, но когда я изменяю значения @id с "prefix: t1" на значения простых данных, которые у меня есть в исходном JSON (т.е. просто на "t1"), "t2" и "t3") объекты больше не рассматриваются.Код, который не является правильным JSON-LD (по крайней мере, не читается riot)

{ 
    "@context" : 
    { "prefix" : "http://www.gerastree.at/",
      "rdfs" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
       "@vocab" : "http://example.com/" ,
       "load" : "prefix:load"
       "items" : "prefix:item"

    }, 
    "@type" : "tree",
    "@id" : "t1" , 
    "items" : 
    [
        { "@id" : "t2",
          "@type" : "item",
          "load" : "some111"
         },
        { "@id" : "t3",
          "@type" : "item",
          "load" : "some2222"
         }    
    ]
}

Значение "t1" и т. Д. Уникально, и я хотел бы использовать их с префиксом в качестве IRI длясвязать данные с другими данными.Есть ли способ создания IRI с некоторым дополнением к контексту без изменения программы, которая выдает данные JSON или редактирует файл.

Я нашел решение (на основе решения Json-LD> Определить "человека" для легкого повторного использования в качестве значений на разных ключах для схемы WebPage ), но не понимаю, почему оно работает,

{ 
    "@context" : 
    { "prefix" : "http://www.gerastree.at/",
      "rdfs" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
       "@base" : "http://example.com/" ,
      "load" : "prefix:load",
     "items" : "prefix:item"

    }, 
    "@type" : "tree",
    "@id" : "t1" , 
    "items" : 
    [
        { "@id" : "t2",
          "@type" : "item",
          "load" : "some111"
         },
        { "@id" : "t3",
          "@type" : "item",
          "load" : "some2222"
         }    
    ]
}

Не думаю, что это дубликат Любой способ указать URI по умолчанию для @id @type или значений свойства? .

Какие дополнения и изменения в контексте необходимы?

1 Ответ

0 голосов
/ 25 сентября 2018

Я нашел объяснение, почему моя третья версия работает так, как хотелось бы, с дополнительным чтением рекомендаций и экспериментов JSON-LD.

@vocab применяется только к свойствам и объектам @base используется для завершения IRI для субъекта.

не совсем очевидно, но достаточно гибко для моего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...