Skip to main content

A plugin to nodestream for building a graph of the schema of the graph.

Project description

Nodestream Meta Plugin

This plugin allows you to build a Graph of your Graph's Schema.

Installation

pip install nodestream-plugin-meta

Meta-Schema

The schema of the graph schema is as follows:

Meta Schema

For extra meta characteristics, the schema of the schema schema is also added to the projects schema like any other pipeline. In other words, the types NodeType, Property, and so on are added to the schema of the graph.

Getting Started

Unlike other schema plugins, this plugin uses the ingestion system to build the metagraph in your graph. That means that you need to build a pipeline to do the ingestion. For the simple case, you can build a single step pipeline that looks like this:

- implementation: nodestream_plugin_meta:SchemaRenderer

This will locate the project file located inside the current working directory (or its parent directories) and render the schema to the graph. You can also specify the path to the project file:

- implementation: nodestream_plugin_meta:SchemaRenderer
  parameters:
    project_path: /path/to/nodestream.yaml

You may also specify an overrides file to enrich the inferred schema:

- implementation: nodestream_plugin_meta:SchemaRenderer
  parameters:
    project_path: /path/to/nodestream.yaml
    overrides_path: /path/to/overrides.yaml

The overrides file should look like this:

nodes:
  - name: Person
    properties:
      is_cool:
        type: BOOLEAN
relations:
  - name: Knows
    properties:
      since:
        type: DATE

The file is merged with the inferred schema, so you can add new nodes, relations, or properties, or override parts of existing ones.

Querying the Meta Graph

The meta graph can be queried like any other graph data. For example, to get all the node types in the graph:

MATCH (n:NodeType) RETURN n.name

Or to get all the properties of a node type:

MATCH (n:NodeType {name: 'Person'})-[:HAS_PROPERTY]->(p:Property) RETURN p.name, p.type, p.is_key

Same goes for relations and their properties:

MATCH (r:RelationshipType {name: 'Knows'})-[:HAS_PROPERTY]->(p:Property) RETURN p.name, p.type, p.is_key

Also you can get the adjacencies the graph schema:

MATCH (a:NodeType)<-[:TO|FROM]-(adj:Adjacency)-[:TO|FROM]->(b:NodeType)
MATCH (adj)-[:THROUGH]->(r:RelationshipType)
RETURN a.name, r.name, b.name

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nodestream_plugin_meta-0.15.0a0.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nodestream_plugin_meta-0.15.0a0-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file nodestream_plugin_meta-0.15.0a0.tar.gz.

File metadata

File hashes

Hashes for nodestream_plugin_meta-0.15.0a0.tar.gz
Algorithm Hash digest
SHA256 0d9a529e7e47462759f42ab42e0dc1397350954b07b41bd6367655ef690c51e6
MD5 6577ede692435df0dbfae0f0c0daa9d0
BLAKE2b-256 4b38cd584df1f6e7735608c17ea49cbbbeecb41e6029b7cea89192b5483bc2b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for nodestream_plugin_meta-0.15.0a0.tar.gz:

Publisher: release.yaml on nodestream-proj/nodestream-plugin-meta

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nodestream_plugin_meta-0.15.0a0-py3-none-any.whl.

File metadata

File hashes

Hashes for nodestream_plugin_meta-0.15.0a0-py3-none-any.whl
Algorithm Hash digest
SHA256 65f28c5222a08dd4ca4038b273c20eb5f90d5368a53b91a4bc1277ddfb1e263f
MD5 383550b626c3c93d3c9aed0c12771035
BLAKE2b-256 ce0c73d17e1ad949c0eedf3dcca6087e9496b917813311e76060b32f673ed81d

See more details on using hashes here.

Provenance

The following attestation bundles were made for nodestream_plugin_meta-0.15.0a0-py3-none-any.whl:

Publisher: release.yaml on nodestream-proj/nodestream-plugin-meta

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page