Skip to content
This repository was archived by the owner on Jan 8, 2025. It is now read-only.

ludwigschub/shex-methods

Folders and files

NameName
Last commit message
Last commit date

Latest commit

41d0772 · Nov 19, 2023
Dec 12, 2021
Apr 20, 2021
Sep 28, 2023
Oct 3, 2023
Apr 24, 2021
Jul 24, 2022
May 10, 2022
Mar 22, 2023
Dec 12, 2021
Apr 3, 2021
Mar 22, 2023
Dec 11, 2021
Oct 3, 2023
Oct 3, 2023
Mar 22, 2023
Mar 22, 2023
Oct 3, 2023

Repository files navigation

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(),
  },
});
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.

Configure Environment

Make a copy of example.env and add the required environment variables for running tests that involve authentication/authorization.

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