Skip to main content

CLI tools for OLDAP

Project description

PyPI version GitHub release

OLDAP tools

OLDAP tools is a CLI tool for managing parts of the OLDAP framework. It allows to

  • dump all the data of a given project to a gzipped TriG file
  • load a project from a gzipped TriG file created by oldap-tools
  • load a hierarchical list from a YAML file
  • dump a hierarchical list to a YAML file

Installation

The installation is done using pip: pip install oldap-tools

Usage

The CLI tool provides the following commands:

  • oldap-tools project dump: Dump all the data of a given project to a gzipped TriG file
  • oldap-tools project load: Load a project from a gzipped TriG file created by oldap-tools
  • oldap-tools list dump: Dump a hierarchical list to a YAML file
  • oldap-tools list load: Load a hierarchical list from a YAML file
  • oldap-tools ontology validate: Validate an ontology datamodel YAML file
  • oldap-tools ontology load: Load or update an ontology datamodel from YAML
  • oldap-tools ontology dump: Dump an ontology datamodel to YAML or TriG

Common options

  • --graphdb, -g: URL of the GraphDB server (default: "http://localhost:7200")
  • --repo, -r: Name of the repository (default: "oldap")
  • --user, -u: OLDAP user (required) which performs the operations
  • --password -p: OLDAP password (required)
  • --graphdb_user: GraphDB user (default: None). Not needed if GraphDB runs without athentification.
  • --graphdb_password: GraphDB password (default: None). Not needed if GraphDB runs without athentification.
  • --verbose, -v: Print more information

Command

Project dump

This command dumps all the data of a given project to a gzipped TriG file. It includes user information of all users associated with the project. The command has the following syntax (in addition to the common options):

oldap-tools [common_options] [graphdb-options] project dump [-out <filename>] [--data | --no-data] [-verbose] <project_id>

The graphdb options see above. The other options are defined as follows:

  • -out <filename>: Name of the output file (default: "<project_id>.trig.gz")
  • --data | --no-data: Include or exclude the data of the project (default: include)
  • -verbose: Print more information
  • <project_id>: Project identifier (project shortname)

The file is basically a dump of the project specific named graphs of the GraphDB repository. This are the following graphs:

  • <project_id>:shacl: Contains all the SHACL shapes of the project
  • <project_id>:onto: Contains all the OWL ontology information of the project
  • <project_id>:lists: Contains all the hierarchical lists of the project
  • <project_id>:data: Contains all the resources (instances) of the project

The user information is stored as special comment in the TriG file and is interpreted by oldap-tools project load.

Project load

This command loads a project from a gzipped TriG file created by oldap-tools. It has the following syntax (in addition to the common options):

oldap-tools [common_options] [graphdb-options] project load --i <filename>

The options are as follows:

  • --inf, -i: Name of the input file (required)
  • -verbose: Print more information

If a user does not exist, then the user is created. If the User is already existing, then the user is replaced.

NOTE: This will change in the future in order to only update project specific permissions to the existing user.

List dump

This command dumps a hierarchical list to a YAML file. This file can be edited to add/remove or change list items. The command has the following syntax (in addition to the common options):

oldap-tools [common_options] list dump [-out <filename>] <project_id> <list_id>

This command generates a YAML file which can be edited and contains the list and all it nodes

The options are as follows:

  • -out , -o: Output file
  • <project_id>: Project identifier (project shortname)
  • <list_id>: List identifier

List load

This command loads a hierarchical list from a YAML file into the given project. The command has the following syntax (in addition to the common options):

oldap-tools [common_options] list load --inf <filename> <project_id>

The options are as follows:

  • --inf, -i: Name of the input file (required)
  • <project_id>: Project identifier (project shortname)

Ontology validate

This command validates an ontology YAML file against the bundled schema:

oldap-tools [common_options] ontology validate --inf <filename>

Ontology load

This command loads or updates a project datamodel from a YAML file:

oldap-tools [common_options] ontology load --inf <filename> [--mode update|replace] [--connectors create|replace] [--backup|--no-backup] [--backup-out <filename>]

By default, the command makes a TriG gzip backup of the model and list graphs before loading. The replace mode deletes the existing datamodel graphs (<project>:shacl and <project>:onto) and recreates them from YAML. The update mode compares the YAML classes and properties with the current datamodel and lets oldaplib perform the corresponding updates. Set an attribute to null in update mode to delete it, for example label, comment, name, description, min_count, or max_count.

Hierarchical lists can be referenced as external YAML files or defined inline. A property can point to a list node class with to_class: list:<ListId>.

Lucene connectors can be declared in the same YAML file. They are skipped by default and only applied when --connectors create or --connectors replace is passed. Single-property fields can use a QName directly; multi-step fields use chain.

Example:

ontology:
  project:
    shortname: fasnacht
    iri: https://fasnacht.digital
    namespace: http://fasnacht.digital/ns/
    start: 2025-06-01

  lists:
    CreativeCommons: CreativeCommons.yaml

  external_ontologies:
    schema:
      namespace: https://schema.org/
      label: schema.org
      proposedResourceClass:
        - Person
        - Organization

  classes:
    fasnacht:Person:
      label:
        en: Person
        de: Person
      superclass:
        - schema:Person
      properties:
        - iri: schema:familyName
          datatype: xsd:string
          name:
            en: Family name
            de: Nachname
          min_count: 1
          max_count: 1
          order: 1
          editor: TEXT_FIELD

  lucene_connectors:
    fasnacht_story:
      types:
        - fasnacht:Story
      fields:
        content: fasnacht:storyContent
        abstract: schema:abstract

    fasnacht_archive:
      types:
        - fasnacht:ArchiveObject
        - fasnacht:ArchiveMediaObject
      fields:
        representedArchiveObjectTitle:
          chain:
            - fasnacht:archiveMediaObjectOf
            - fasnacht:archiveObjectTitle

Ontology dump

This command dumps an ontology datamodel either as YAML or as a TriG gzip file containing the <project>:shacl, <project>:onto, and <project>:lists graphs:

oldap-tools [common_options] ontology dump [-out <filename>] [--format yaml|trig] <project_id>

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

oldap_tools-0.3.0.tar.gz (16.8 kB view details)

Uploaded Source

Built Distribution

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

oldap_tools-0.3.0-py3-none-any.whl (20.5 kB view details)

Uploaded Python 3

File details

Details for the file oldap_tools-0.3.0.tar.gz.

File metadata

  • Download URL: oldap_tools-0.3.0.tar.gz
  • Upload date:
  • Size: 16.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.4 CPython/3.14.4 Darwin/25.4.0

File hashes

Hashes for oldap_tools-0.3.0.tar.gz
Algorithm Hash digest
SHA256 a686d3a51255e0d237b800702adf1060604ca342eaf2895e38b587ce5b9c4c4a
MD5 06fe4e0b2593433175bf2645f54de3ce
BLAKE2b-256 f1eb337110c697c100b9fe7e1c74f769c762d05401ac333b9a650441abd0291d

See more details on using hashes here.

File details

Details for the file oldap_tools-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: oldap_tools-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 20.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.4 CPython/3.14.4 Darwin/25.4.0

File hashes

Hashes for oldap_tools-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a8863d8b0db0e1fc0c0201b61cde8538029d20d86e8d2097683b421aaa7864e1
MD5 c6804ca5f51e463ba6cd4e122c1dd4d3
BLAKE2b-256 ec83477eccd72ba5af24372e8c78678f871cc4c8438e51cbabcf5414d50eedd9

See more details on using hashes here.

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