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.0.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.0-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nodestream_plugin_meta-0.15.0.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nodestream_plugin_meta-0.15.0.tar.gz
Algorithm Hash digest
SHA256 78116967c1e7ccbcaed0d7d408f9712843b95f20609acd9fc6a94b20951d28cd
MD5 b8a712c640e6a92b235d292cbd968844
BLAKE2b-256 0014ee25387590f007bcf151689940fb56055494bb510e4c2d55d9bff8c864b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for nodestream_plugin_meta-0.15.0.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.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nodestream_plugin_meta-0.15.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d7228dca44d0325e30bec3ee3000f84b1784fe80ca41f1a08d96baa055581cd6
MD5 97e2a09000bf9257c0f3e601b1bf4937
BLAKE2b-256 8d8010e9d27641d32d192991ec01df10c02d5aa82191896527b49dedc59a8ebf

See more details on using hashes here.

Provenance

The following attestation bundles were made for nodestream_plugin_meta-0.15.0-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