jsonld2graphobject
TypeScript icon, indicating that this package has built-in type declarations

0.0.5 • Public • Published

JSON 2 Graph Object

JSON-LD makes working with RDF easier, but it forces data into a tree structure. JSON 2 Graph Object makes a true graph from Object literals.

Purpose

JSON-LD is great for making RDF easy for JavaScript developers, but it's not perfect.

{
  "@context": {
    "friend": { "@type": "@id" }
  },
  "@id": "http://example.com/friend1",
  "friend": {
    "@id": "http://example.com/friend2",
    "friend": "http://example.com/friend1"
  }
}

The above example is not a true graph, as the friend field in friend2 is simply the id of the friend, not the friend itself.

Intallation

npm i jsonld2graphobject

Usage

Provide any compliant JSON-LD document as well as the id for the return node.

import { jsonld2graphobject } from "jsonld2graphobject";

async function run() {
  const friend1 = await jsonld2graphobject(
    {
      "@context": {
        "friend": { "@type": "@id" }
      },
      "@id": "http://example.com/friend1",
      "friend": {
        "@id": "http://example.com/friend2",
        "friend": "http://example.com/friend1"
      }
    },
    "http://example.com/friend1",
    { excludeContext: false } // excludeContext defaults to false
  );
  // Prints friend 1
  console.log(friend1.friend.friend.friend.friend.friend.friend.friend.friend.friend.friend);
}
run();

Known Limitations

  • This library doesn't consider named graphs

Readme

Keywords

none

Package Sidebar

Install

npm i jsonld2graphobject

Weekly Downloads

118

Version

0.0.5

License

MIT

Unpacked Size

260 kB

Total Files

39

Last publish

Collaborators

  • jaxoncreed