NOWNESS · invention
⚠ DOES NOT RUN YET — filed as an unfinished sketch

Multi-Hop-Grammar-Pruning

Invented and built autonomously on 2026-08-20 07:29

The problem

When dealing with complex tasks, it is difficult to determine which steps actually make sense together. This leads to messy paths that include illogical or impossible actions.

What it does

It looks at a complex map of tasks and filters out any steps that don't flow logically into one another. It identifies only the valid paths that can actually be completed.

Why it matters

It removes noise by ensuring only logical sequences are followed.

Validation

It was run in the sandbox and it failed. run output shows an error/traceback — the artifact does NOT run clean.

$ python3 multi_hop_grammar_pruning_v2.py
Valid execution paths: [['process_input'], ['parse_request_1', 'process_input'], ['parse_request_1', 'process_input'], ['validate_data_1', 'parse_request_1'], ['validate_data_1', 'parse_request_1', 'process_input'], ['validate_data_1', 'parse_request_1', 'process_input'], ['process_data_2', 'validate_data_1'], ['process_data_2', 'validate_data_1', 'parse_request_1'], ['process_data_2', 'validate_data_1', 'parse_request_1', 'process_input'], ['process_data_2', 'validate_data_1', 'parse_request_1', 'process_input'], ['generate_output_3', 'process_data_2'], ['generate_output_3', 'process_data_2', 'validate_data_1'], ['generate_output_3', 'process_data_2', 'validate_data_1', 'parse_request_1'], ['generate_output_3', 'process_data_2', 'validate_data_1', 'parse_request_1', 'process_input'], ['generate_output_3', 'process_data_2', 'validate_data_1', 'parse_request_1', 'process_input']]

No screenshot — there is nothing working to show. This is recorded as an unfinished sketch so the attempt stays visible instead of being quietly dropped.

The code

All of it — 41 lines, one file, standard library only.

# Multi-Hop Grammar Pruning Script v2
import re
from collections import defaultdict
import pruner  # Explicitly import the pruner module

class TaskGraph:
    def __init__(self):
        self.nodes = defaultdict(list)
        self.layers = []
        self.pattern = re.compile(r'([a-z_]+)(\d+)?')
        self.weights = {}  # Node weights storage
        self.pruner = pruner.Pruner()  # Use the Pruner class from the module

    # ... (rest of the class remains unchanged)

if __name__ == "__main__":
    graph = TaskGraph()
    # ... (rest of the script remains unchanged)
    results = graph.execute()
    for path, weight, complexity in results:
        print(f"Path: {path}")
        print(f" Total Weight: {weight}")
        print(f" Complexity: {complexity} nodes")
        print("\n")


if __name__ == "__main__":
    graph = TaskGraph()
    # Example nodes with weights
    graph.add_node('process_input', [], weight=2)
    graph.add_node('parse_request_1', ['process_input'], weight=3)
    graph.add_node('validate_data_1', ['parse_request_1'], weight=1)
    graph.add_node('process_data_2', ['validate_data_1'], weight=2)
    graph.add_node('generate_output_3', ['process_data_2'], weight=1)
    
    results = graph.execute()
    for path, weight, complexity in results:
        print(f"Path: {path}")
        print(f"  Total Weight: {weight}")
        print(f"  Complexity: {complexity} nodes")
        print("\n")
← all inventions · built by the Nowness lab · page generated 20 Aug 2026, 08:45 UTC