Crate oxirs

Crate oxirs 

Source
Expand description

§OxiRS CLI Tool

Version docs.rs

Status: Production Release (v0.1.0) Stability: Public APIs are stable. Production-ready with comprehensive testing.

Command-line interface for OxiRS providing import, export, SPARQL queries, benchmarking, and server management tools.

§Features

  • Persistent RDF Storage: Data automatically saved to disk in N-Quads format
  • SPARQL Queries: Support for SELECT, ASK, CONSTRUCT, and DESCRIBE queries
  • Multi-format Import/Export: Turtle, N-Triples, RDF/XML, JSON-LD, N-Quads, TriG
  • Interactive REPL: Explore RDF data interactively
  • 🚧 Prefix Support: Coming soon in next release

§Commands

§Core RDF Operations

  • init: Initialize a new knowledge graph dataset
  • import: Import RDF data from various formats (data persisted automatically)
  • query: Execute SPARQL queries (SELECT, ASK, CONSTRUCT, DESCRIBE)
  • export: Export RDF data to various formats
  • interactive: Interactive REPL for SPARQL queries
  • serve: Start the OxiRS SPARQL server
  • benchmark: Run performance benchmarks

§Phase D: Industrial Connectivity

  • tsdb: Time-series database operations with SPARQL temporal extensions
  • modbus: Modbus TCP/RTU monitoring and RDF mapping
  • canbus: CANbus/J1939 monitoring, DBC parsing, SAMM generation

§Storage Tools

  • tdbloader, tdbquery, tdbstats, tdbbackup, tdbcompact

§Validation Tools

  • shacl: SHACL shape validation
  • shex: ShEx validation
  • infer: Reasoning and inference

§SAMM/AAS Tools (Java ESMF SDK compatible)

  • aspect: SAMM Aspect Model tools
  • aas: Asset Administration Shell tools
  • package: Package management

§Advanced Tools

  • graph-analytics: RDF graph analytics using scirs2-graph
  • Various utilities: arq, riot, rdfcat, etc.

§Quick Start

# 1. Initialize a new dataset
oxirs init mykg

# 2. Import RDF data (automatically persisted to mykg/data.nq)
oxirs import mykg data.ttl --format turtle

# 3. Query the data (data loaded from disk automatically)
oxirs query mykg "SELECT * WHERE { ?s ?p ?o } LIMIT 10"

# 4. Query with specific patterns
oxirs query mykg "SELECT ?name WHERE { ?person <http://example.org/name> ?name }"

# 5. Start SPARQL server
oxirs serve mykg/oxirs.toml --port 3030

§Dataset Name Rules

Dataset names must follow these rules:

  • Only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-)
  • No dots (.), slashes (/), or other special characters
  • Maximum length: 255 characters
  • Cannot be empty

Valid examples: mykg, my_dataset, test-data-2024 Invalid examples: dataset.oxirs, my/data, data.ttl

§SPARQL Query Examples

# Get all triples
oxirs query mykg "SELECT ?s ?p ?o WHERE { ?s ?p ?o }"

# Filter by type
oxirs query mykg "SELECT ?s WHERE {
  ?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/Person>
}"

# ASK query (returns true/false)
oxirs query mykg "ASK { ?s <http://example.org/age> \"30\" }"

# CONSTRUCT new triples
oxirs query mykg "CONSTRUCT { ?s <http://example.org/hasName> ?name }
                  WHERE { ?s <http://example.org/name> ?name }"

§Phase D: Industrial Connectivity Examples (0.1.0)

§Time-Series Operations

# Query time-series with aggregation
oxirs tsdb query mykg --series 1 --start 2026-01-01T00:00:00Z --end 2026-01-31T23:59:59Z --aggregate avg

# Insert data point
oxirs tsdb insert mykg --series 1 --value 22.5

# Show compression statistics
oxirs tsdb stats mykg --detailed

# Export to CSV
oxirs tsdb export mykg --series 1 --output data.csv --format csv

§Modbus Operations

# Monitor Modbus TCP device (real-time)
oxirs modbus monitor-tcp --address 192.168.1.100:502 --start 40001 --count 10 --interval 1000

# Read registers
oxirs modbus read --device 192.168.1.100:502 --address 40001 --count 5 --datatype float32

# Generate RDF from Modbus data
oxirs modbus to-rdf --device 192.168.1.100:502 --config modbus_map.toml --output data.ttl

# Start mock server for testing
oxirs modbus mock-server --port 5020

§CANbus Operations

# Monitor CAN interface
oxirs canbus monitor --interface can0 --dbc vehicle.dbc --j1939

# Parse DBC file
oxirs canbus parse-dbc --file vehicle.dbc --detailed

# Decode CAN frame
oxirs canbus decode --id 0x0CF00400 --data DEADBEEF --dbc vehicle.dbc

# Generate SAMM Aspect Models from DBC
oxirs canbus to-samm --dbc vehicle.dbc --output ./models/

# Generate RDF from live CAN data
oxirs canbus to-rdf --interface can0 --dbc vehicle.dbc --output can_data.ttl --count 1000

§Data Persistence

  • Data is automatically saved to <dataset>/data.nq in N-Quads format
  • On oxirs import, data is appended and persisted
  • On oxirs query, data is loaded from disk automatically
  • No manual save/load commands needed!

Re-exports§

pub use cli_actions::*;

Modules§

cli
Enhanced CLI Infrastructure
cli_actions
CLI action enums for various oxirs commands
commands
Command implementations for the Oxirs CLI
config
CLI configuration management
export
Data export utilities
profiling
Profiling utilities for SPARQL query performance analysis
tools
OxiRS CLI Tools Suite

Structs§

Cli
OxiRS CLI application

Enums§

Commands
Available CLI commands

Functions§

run
Run the CLI application