kbs 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/deploy-github-pages.yml +52 -0
- data/CHANGELOG.md +68 -2
- data/README.md +235 -334
- data/docs/DOCUMENTATION_STATUS.md +158 -0
- data/docs/advanced/custom-persistence.md +775 -0
- data/docs/advanced/debugging.md +726 -0
- data/docs/advanced/index.md +8 -0
- data/docs/advanced/performance.md +832 -0
- data/docs/advanced/testing.md +691 -0
- data/docs/api/blackboard.md +1157 -0
- data/docs/api/engine.md +978 -0
- data/docs/api/facts.md +1212 -0
- data/docs/api/index.md +12 -0
- data/docs/api/rules.md +1034 -0
- data/docs/architecture/blackboard.md +553 -0
- data/docs/architecture/index.md +277 -0
- data/docs/architecture/network-structure.md +343 -0
- data/docs/architecture/rete-algorithm.md +737 -0
- data/docs/assets/css/custom.css +83 -0
- data/docs/assets/images/blackboard-architecture.svg +136 -0
- data/docs/assets/images/compiled-network.svg +101 -0
- data/docs/assets/images/fact-assertion-flow.svg +117 -0
- data/docs/assets/images/kbs.jpg +0 -0
- data/docs/assets/images/pattern-matching-trace.svg +136 -0
- data/docs/assets/images/rete-network-layers.svg +96 -0
- data/docs/assets/images/system-layers.svg +69 -0
- data/docs/assets/images/trading-signal-network.svg +139 -0
- data/docs/assets/js/mathjax.js +17 -0
- data/docs/examples/expert-systems.md +1031 -0
- data/docs/examples/index.md +9 -0
- data/docs/examples/multi-agent.md +1335 -0
- data/docs/examples/stock-trading.md +488 -0
- data/docs/guides/blackboard-memory.md +558 -0
- data/docs/guides/dsl.md +1321 -0
- data/docs/guides/facts.md +652 -0
- data/docs/guides/getting-started.md +383 -0
- data/docs/guides/index.md +23 -0
- data/docs/guides/negation.md +529 -0
- data/docs/guides/pattern-matching.md +561 -0
- data/docs/guides/persistence.md +451 -0
- data/docs/guides/variable-binding.md +491 -0
- data/docs/guides/writing-rules.md +755 -0
- data/docs/index.md +157 -0
- data/docs/installation.md +156 -0
- data/docs/quick-start.md +228 -0
- data/examples/README.md +2 -2
- data/examples/advanced_example.rb +2 -2
- data/examples/advanced_example_dsl.rb +224 -0
- data/examples/ai_enhanced_kbs.rb +1 -1
- data/examples/ai_enhanced_kbs_dsl.rb +538 -0
- data/examples/blackboard_demo_dsl.rb +50 -0
- data/examples/car_diagnostic.rb +1 -1
- data/examples/car_diagnostic_dsl.rb +54 -0
- data/examples/concurrent_inference_demo.rb +5 -5
- data/examples/concurrent_inference_demo_dsl.rb +363 -0
- data/examples/csv_trading_system.rb +1 -1
- data/examples/csv_trading_system_dsl.rb +525 -0
- data/examples/knowledge_base.db +0 -0
- data/examples/portfolio_rebalancing_system.rb +2 -2
- data/examples/portfolio_rebalancing_system_dsl.rb +613 -0
- data/examples/redis_trading_demo_dsl.rb +177 -0
- data/examples/run_all.rb +50 -0
- data/examples/run_all_dsl.rb +49 -0
- data/examples/stock_trading_advanced.rb +1 -1
- data/examples/stock_trading_advanced_dsl.rb +404 -0
- data/examples/temp.txt +7693 -0
- data/examples/temp_dsl.txt +8447 -0
- data/examples/timestamped_trading.rb +1 -1
- data/examples/timestamped_trading_dsl.rb +258 -0
- data/examples/trading_demo.rb +1 -1
- data/examples/trading_demo_dsl.rb +322 -0
- data/examples/working_demo.rb +1 -1
- data/examples/working_demo_dsl.rb +160 -0
- data/lib/kbs/blackboard/engine.rb +3 -3
- data/lib/kbs/blackboard/fact.rb +1 -1
- data/lib/kbs/condition.rb +1 -1
- data/lib/kbs/dsl/knowledge_base.rb +1 -1
- data/lib/kbs/dsl/variable.rb +1 -1
- data/lib/kbs/{rete_engine.rb → engine.rb} +1 -1
- data/lib/kbs/fact.rb +1 -1
- data/lib/kbs/version.rb +1 -1
- data/lib/kbs.rb +2 -2
- data/mkdocs.yml +181 -0
- metadata +66 -6
- data/examples/stock_trading_system.rb.bak +0 -563
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: aef07173eec74d0aa657562330a8fda502d390e14e181fddcd2cfb948d158057
|
|
4
|
+
data.tar.gz: da2018b9fb70043a9b12c57d50ea71dcaa60e54f1ba1129f3411b4c603e7a860
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 18c9bb6a21154803ea89139d8cbb1f7d86583cff83f8f827c63ec29b9dea859569ee18fe7e1d13211b78b9217658331ca128561a0b49ff580b20aef8ff00f215
|
|
7
|
+
data.tar.gz: 7e93213dfc62adf43740c4ac7bc35d4e9abf71445aa02cca59ed112624030a95465c2ec0729deeb3baa4f34b8cc0781dd6c51eea86270b643b51a5bed4da16e8
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
name: Deploy KBS Documentation to GitHub Pages
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches:
|
|
5
|
+
- main
|
|
6
|
+
- develop
|
|
7
|
+
paths:
|
|
8
|
+
- "docs/**"
|
|
9
|
+
- "mkdocs.yml"
|
|
10
|
+
- ".github/workflows/deploy-github-pages.yml"
|
|
11
|
+
workflow_dispatch:
|
|
12
|
+
|
|
13
|
+
permissions:
|
|
14
|
+
contents: write
|
|
15
|
+
pages: write
|
|
16
|
+
id-token: write
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
deploy:
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
steps:
|
|
22
|
+
- name: Checkout code
|
|
23
|
+
uses: actions/checkout@v4
|
|
24
|
+
with:
|
|
25
|
+
fetch-depth: 0
|
|
26
|
+
|
|
27
|
+
- name: Setup Python
|
|
28
|
+
uses: actions/setup-python@v5
|
|
29
|
+
with:
|
|
30
|
+
python-version: 3.x
|
|
31
|
+
|
|
32
|
+
- name: Install dependencies
|
|
33
|
+
run: |
|
|
34
|
+
pip install mkdocs
|
|
35
|
+
pip install mkdocs-material
|
|
36
|
+
pip install mkdocs-macros-plugin
|
|
37
|
+
pip install mike
|
|
38
|
+
|
|
39
|
+
- name: Configure Git
|
|
40
|
+
run: |
|
|
41
|
+
git config --local user.email "action@github.com"
|
|
42
|
+
git config --local user.name "GitHub Action"
|
|
43
|
+
|
|
44
|
+
- name: Deploy to GitHub Pages
|
|
45
|
+
run: |
|
|
46
|
+
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
|
|
47
|
+
echo "Deploying from main branch"
|
|
48
|
+
mkdocs gh-deploy --force --clean
|
|
49
|
+
else
|
|
50
|
+
echo "Deploying from develop branch"
|
|
51
|
+
mkdocs gh-deploy --force --clean
|
|
52
|
+
fi
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,71 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
2
|
|
|
3
|
-
## [0.1.0] - 2025-10-
|
|
3
|
+
## [0.1.0] - 2025-10-09
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
### Added
|
|
6
|
+
- **DSL Example Suite**: Created DSL versions of all raw API examples (12 new files)
|
|
7
|
+
- advanced_example_dsl.rb - Complex trading strategies with DSL syntax
|
|
8
|
+
- ai_enhanced_kbs_dsl.rb - AI-powered sentiment analysis and risk assessment
|
|
9
|
+
- blackboard_demo_dsl.rb - Multi-agent blackboard pattern
|
|
10
|
+
- car_diagnostic_dsl.rb - Simple diagnostic expert system
|
|
11
|
+
- concurrent_inference_demo_dsl.rb - Thread-safe concurrent inference
|
|
12
|
+
- csv_trading_system_dsl.rb - CSV-based trading data processing
|
|
13
|
+
- portfolio_rebalancing_system_dsl.rb - Portfolio optimization and rebalancing
|
|
14
|
+
- redis_trading_demo_dsl.rb - Redis-backed trading system
|
|
15
|
+
- stock_trading_advanced_dsl.rb - Advanced trading with technical indicators
|
|
16
|
+
- timestamped_trading_dsl.rb - Time-aware trading rules
|
|
17
|
+
- trading_demo_dsl.rb - Basic trading scenarios
|
|
18
|
+
- working_demo_dsl.rb - Introductory DSL examples
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
- **Symbol Syntax**: Corrected Ruby symbol syntax from `:'?name'` to `:name?` throughout codebase
|
|
22
|
+
- **Method Scope in Perform Blocks**: Fixed instance method access within DSL perform blocks
|
|
23
|
+
- Implemented self-capture pattern (`obj = self`) before knowledge_base blocks
|
|
24
|
+
- Applied to trading_demo_dsl.rb (demo), timestamped_trading_dsl.rb (ts_sys), ai_enhanced_kbs_dsl.rb (ai_sys), portfolio_rebalancing_system_dsl.rb (port_sys)
|
|
25
|
+
- **Kernel#system Conflict**: Renamed captured variable from `system` to avoid shadowing Ruby's built-in method
|
|
26
|
+
- **Instance Variable Access**: Added `attr_reader :kb` to ai_enhanced_kbs_dsl.rb for fact insertion from perform blocks
|
|
27
|
+
- **Array Processing**: Fixed `portfolio_rebalancing_system.rb:447` - changed `sum` to `map` to prevent calling `compact` on Float
|
|
28
|
+
- **File Operations**: Fixed `run_all.rb:13` - changed `basename` method call for String paths instead of Pathname objects
|
|
29
|
+
|
|
30
|
+
### Changed
|
|
31
|
+
- **DSL Syntax Improvements**: Standardized DSL rule definitions
|
|
32
|
+
- Priority declarations moved inside rule blocks: `rule "name" do priority 15`
|
|
33
|
+
- Hash parameters passed to `on` statements instead of inside blocks
|
|
34
|
+
- Consistent use of `kb.reset` instead of `kb.clear`
|
|
35
|
+
|
|
36
|
+
## [0.0.1] - 2025-10-07
|
|
37
|
+
|
|
38
|
+
### Added
|
|
39
|
+
- **RETE Inference Engine**: Optimized forward-chaining inference with unlinking optimization
|
|
40
|
+
- **Declarative DSL**: Readable rule definition syntax with condition helpers (greater_than, less_than, range, one_of, matches)
|
|
41
|
+
- **Blackboard Architecture**: Multi-agent coordination with message passing and knowledge source registration
|
|
42
|
+
- **Flexible Persistence**:
|
|
43
|
+
- SQLite storage for durable, transactional fact storage with audit trails
|
|
44
|
+
- Redis storage for high-speed in-memory fact storage (100x faster)
|
|
45
|
+
- Hybrid storage combining Redis performance with SQLite durability
|
|
46
|
+
- **Concurrent Execution**: Thread-safe auto-inference mode for real-time processing
|
|
47
|
+
- **AI Integration**: Native LLM support via RubyLLM gem (Ollama, OpenAI) for hybrid symbolic/neural reasoning
|
|
48
|
+
- **Session Management**: Isolated reasoning sessions with UUIDs and cleanup
|
|
49
|
+
- **Query API**: Powerful fact retrieval with pattern matching and SQL queries
|
|
50
|
+
- **Audit Trails**: Complete history of all fact changes and reasoning steps
|
|
51
|
+
|
|
52
|
+
### Examples (13 total)
|
|
53
|
+
- **Basic**: car_diagnostic.rb, working_demo.rb
|
|
54
|
+
- **DSL**: iot_demo_using_dsl.rb, trading_demo.rb
|
|
55
|
+
- **Advanced Trading**: advanced_example.rb, stock_trading_advanced.rb, timestamped_trading.rb, csv_trading_system.rb, portfolio_rebalancing_system.rb
|
|
56
|
+
- **Persistence**: blackboard_demo.rb, redis_trading_demo.rb
|
|
57
|
+
- **Concurrency**: concurrent_inference_demo.rb
|
|
58
|
+
- **AI Integration**: ai_enhanced_kbs.rb
|
|
59
|
+
|
|
60
|
+
### Documentation
|
|
61
|
+
- Comprehensive README.md with architecture diagrams and quick start examples
|
|
62
|
+
- Detailed examples/README.md with learning path and feature showcase
|
|
63
|
+
- 100% test coverage (199 runs, 447 assertions, 0 failures)
|
|
64
|
+
|
|
65
|
+
### Dependencies
|
|
66
|
+
- Ruby >= 3.2.0
|
|
67
|
+
- sqlite3 ~> 1.6 (runtime)
|
|
68
|
+
- minitest ~> 5.16 (development)
|
|
69
|
+
- simplecov ~> 0.22 (development)
|
|
70
|
+
- redis ~> 5.0 (development, optional for Redis storage)
|
|
71
|
+
- ruby_llm (optional for AI integration)
|