Expand description
§OxiRS CLI Tool
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 datasetimport: Import RDF data from various formats (data persisted automatically)query: Execute SPARQL queries (SELECT, ASK, CONSTRUCT, DESCRIBE)export: Export RDF data to various formatsinteractive: Interactive REPL for SPARQL queriesserve: Start the OxiRS SPARQL serverbenchmark: Run performance benchmarks
§Phase D: Industrial Connectivity
tsdb: Time-series database operations with SPARQL temporal extensionsmodbus: Modbus TCP/RTU monitoring and RDF mappingcanbus: CANbus/J1939 monitoring, DBC parsing, SAMM generation
§Storage Tools
tdbloader,tdbquery,tdbstats,tdbbackup,tdbcompact
§Validation Tools
shacl: SHACL shape validationshex: ShEx validationinfer: Reasoning and inference
§SAMM/AAS Tools (Java ESMF SDK compatible)
aspect: SAMM Aspect Model toolsaas: Asset Administration Shell toolspackage: 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.nqin 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