shex-methods

A library to read, create, update or delete rdf nodes that fit a given shape expression.

Usage no npm install needed!

<script type="module">
  import shexMethods from 'https://cdn.skypack.dev/shex-methods';
</script>

README

shex-methods

A library to read, create, update or delete rdf nodes that fit a given shape expression.

Examples | Usage | Features | Contributing

Examples

To create a shape object you can use the generated context and types from shex-codegen.

import { Shape } from "shex-methods";
import {
  chatShex,
  ChatShape,
  ChatShapeType,
  ChatShapeContext,
} from "../resources/shex"; // generated by shex-codegen

const chat = new Shape<ChatShape>({
  id: "https://shaperepo.com/schemas/longChat#ChatShape",
  shape: chatShex,
  context: ChatShapeContext,
  type: ChatShapeType,
});

Then you can use the shape object to create nodes of this shape using plain javascript-objects for specifying data. The id of the input data will be used as the node iri of the shape so make sure to pass a valid url.

const newChat = await chat.create({
  doc: testDoc,
  data: {
    id: firstChatIri,
    type: ChatShapeType.LongChat,
    title: "Test Chat",
    author: webId,
    created: new Date(),
  } as ChatShape,
});
const { data, errors } = newChat;

Usage

Install the package via your preferred node package manager: npm i shex-methods or yarn add shex-methods

See the auto-generated documentation to learn about all methods.

Features

Current features:

  • Can read, create, update and delete a single shape in remote resources
  • Can read multiple shapes in remote resources
  • User can specify data as primitive type or rdf node

Planned features:

  • Can do all operations on a local graph
  • Can create, update and delete many nodes at once
  • Can publish a shape to an index of shapes
  • Can subscribe to an index of shapes

Contributing

Run yarn to install dependencies and generate shape types.

Use yarn develop to start the build process in watch mode and run the tests on file changes.