Qwiratry

Declarative queries and flexible data walking for Raku

=begin rakudoc

Overview

Qwiratry is a Raku architecture for declarative queries and flexible data walking, suitable for trees, tables, relational structures, logic-programming environments, and anything reasonably structured and traversable.

Qwiratry provides a general-purpose query execution pipeline that separates what to query from how to walk the data. This design enables the same query to work across different data models without forcing a single semantic interpretation.

Key Features

  • Separation of concerns: queries describe intent; walkers interpret and execute; query iterators yield results.

  • Reusability: walkers can produce multiple iterators, and queries can be reused and optimized.

  • Composability: supports composite walker handovers for multi-domain queries.

  • Declarative transformations: XSLT-like mold system for structured data manipulation.

  • Flexible execution: supports backtracking, multi-phase execution, and optimization planning.

  • Domain flexibility: works with trees, tables, logic programming, and hybrid systems.

Installation

Install from the package manager:

zef install Qwiratry

Qwiratry currently requires RakuAST support when running:

export RAKUDO_RAKUAST=1

Quick Start

#!/usr/bin/env raku

use     Qwiratry::Mold::Slang;
use	Qwiratry;

my %data-structure = type => 'element', value => 42;

# Declare a transformer with molds.
#transformer MyTransform is Transformer {
transformer MyTransform {
        mold when { .<type> eq 'element' } do {
                %( |$_, transformed => True )
        }

        mold do {
                $_
        }
}

# Apply the transformer to the tree
say MyTransform(%data-structure);

Requirements

  • Raku 6.e or later.

  • Slangify.

  • Implementation::Loader v0.0.7 or later.

  • RAKUDO_RAKUAST=1 in the environment.

Documentation

  • Operators: query operator reference.

  • t/examples/: example code and usage patterns.

License

See the repository for license information.

Author

Tim Nelson (wayland at wayland dot id dot au)

=end rakudoc

Qwiratry v0.0.9

Declarative query and data-walking architecture for Raku, with transformers, molds, walkers, and I/O pipelines.

Authors

  • Tim Nelson

License

Dependencies

SlangifyImplementation::Loader:ver<0.0.9+>Glob::Grammar

Test Dependencies

Provides

  • Qwiratry
  • Qwiratry::Context
  • Qwiratry::Format
  • Qwiratry::Format::Base
  • Qwiratry::Format::CSVdemo
  • Qwiratry::Format::JSONdemo
  • Qwiratry::Location
  • Qwiratry::Location::Base
  • Qwiratry::Location::File
  • Qwiratry::Mold
  • Qwiratry::Mold::Compiler
  • Qwiratry::Mold::Registry
  • Qwiratry::Mold::Slang
  • Qwiratry::Operator::Capability
  • Qwiratry::Operator::IO
  • Qwiratry::Operator::MapReduce
  • Qwiratry::Operator::Navigation
  • Qwiratry::Operator::Set
  • Qwiratry::Query::Evaluator::Eager
  • Qwiratry::Query::Evaluator::Filter
  • Qwiratry::Query::Evaluator::Join
  • Qwiratry::Query::Evaluator::Lazy
  • Qwiratry::Query::Evaluator::MapReduce
  • Qwiratry::Query::Evaluator::Navigation
  • Qwiratry::Query::Evaluator::Relational
  • Qwiratry::Query::Evaluator::Row
  • Qwiratry::Query::Evaluator::Set
  • Qwiratry::Query::Evaluator::Union
  • Qwiratry::Query::Extract
  • Qwiratry::Query::NamedJoins
  • Qwiratry::Query::RelationCommon
  • Qwiratry::Query::Runtime
  • Qwiratry::Query::Selector
  • Qwiratry::Query::Slang
  • Qwiratry::Query::Specificity
  • Qwiratry::Query::Topic
  • Qwiratry::QueryIterator
  • Qwiratry::QueryMatch
  • Qwiratry::Setup
  • Qwiratry::Strategy
  • Qwiratry::Strategy::ControlSignal
  • Qwiratry::Strategy::FinishResult
  • Qwiratry::Strategy::RewriteSpec
  • Qwiratry::Strategy::Traversal
  • Qwiratry::Suggest
  • Qwiratry::Table
  • Qwiratry::Table::Schema
  • Qwiratry::Transformer
  • Qwiratry::Transformer::Copy
  • Qwiratry::Transformer::TreeRewrite
  • Qwiratry::Tree::Navigator
  • Qwiratry::Tree::Navigator::Base
  • Qwiratry::Tree::Navigator::Filesystem
  • Qwiratry::Tree::Navigator::Match
  • Qwiratry::Tree::Navigator::RakuAST
  • Qwiratry::Tree::Replace
  • Qwiratry::Walker
  • Qwiratry::Walker::Capabilities
  • Qwiratry::Walker::Factory
  • Qwiratry::Walker::Implementation::Table
  • Qwiratry::Walker::Implementation::Tree
  • Qwiratry::Walker::Master
  • Qwiratry::Walker::Providing
  • X::Qwiratry

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.