【问题标题】:Controlling conversion of RDF to "prettier" JSON-LD控制 RDF 到“更漂亮”的 JSON-LD 的转换
【发布时间】:2016-06-08 08:37:01
【问题描述】:

我知道 RDF 到 JSON-LD 的转换有一些限制,但我想知道是否有一种避免使用空白节点的转换的好方法?

例如,给定一个 RDF 图:

@prefix ex: <http://example.org/ontology#> .
<http://example.org/x123> ex:house [
                                      a ex:House ;
                                      ex:houseNumber "1a" ;
                                      ex:doorColour "blue"
                                   ] ;
                          ex:house [
                                      a ex:House ;
                                      ex:houseNumber "1b" ;
                                      ex:doorColour "green"
                                   ] .

是否可以使用 (Java) JSON-LD 强制转换为基于数组的 bnode 表示:

{
  "id": "http://example.org/x123",
  "house": [{
    "type": "House",
    "houseNumber": "1a",
    "doorColour": "blue"
  }, {
    "type": "House",
    "houseNumber": "1b",
    "doorColour": "green"
  }],
  "@context": {
      "ex": "http://example.org/ontology#",
      "house": "ex:house",
      "houseNumber": "ex:houseNumber",
      "doorColour": "ex:doorColour",
      "House": "ex:House",
      "id": "@id",
      "type": "@type"
  }
}

而不是类似的东西:

{
  "@graph": [
    {
      "@id": "_:b0",
      "@type": "http://example.org/ontology#House",
      "http://example.org/ontology#doorColour": "blue",
      "http://example.org/ontology#houseNumber": "1a"
    },
    {
      "@id": "_:b1",
      "@type": "http://example.org/ontology#House",
      "http://example.org/ontology#doorColour": "green",
      "http://example.org/ontology#houseNumber": "1b"
    },
    {
      "@id": "http://example.org/x123",
      "http://example.org/ontology#house": [
        {
          "@id": "_:b0"
        },
        {
          "@id": "_:b1"
        }
      ]
    }
  ]
}

目前,我正在遍历图中的语句并手动生成 JSON,但是否可以使用 java-jsonld 之类的库或其他一些 JSON-LD 技术来做到这一点?

【问题讨论】:

    标签: rdf json-ld blank-nodes


    【解决方案1】:

    您可以使用框架来实现这一点。查看 JSON-LD 游乐场中的库示例。不幸的是,它还没有标准化,因此各种实现可能不会产生完全相同的输出和/或超级不同的功能

    【讨论】:

    • 太棒了!我让它以我想要的方式与 jsonld-java 实现一起工作。我想知道是否也可以使用框架来抑制 @id 和/或其他元素?
    • 不,目前这是不可能的,但如果你愿意的话,你可以别名为 id 等
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    • 2017-01-31
    • 1970-01-01
    • 2013-12-06
    相关资源
    最近更新 更多