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.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/deploy-github-pages.yml +52 -0
  3. data/CHANGELOG.md +68 -2
  4. data/README.md +235 -334
  5. data/docs/DOCUMENTATION_STATUS.md +158 -0
  6. data/docs/advanced/custom-persistence.md +775 -0
  7. data/docs/advanced/debugging.md +726 -0
  8. data/docs/advanced/index.md +8 -0
  9. data/docs/advanced/performance.md +832 -0
  10. data/docs/advanced/testing.md +691 -0
  11. data/docs/api/blackboard.md +1157 -0
  12. data/docs/api/engine.md +978 -0
  13. data/docs/api/facts.md +1212 -0
  14. data/docs/api/index.md +12 -0
  15. data/docs/api/rules.md +1034 -0
  16. data/docs/architecture/blackboard.md +553 -0
  17. data/docs/architecture/index.md +277 -0
  18. data/docs/architecture/network-structure.md +343 -0
  19. data/docs/architecture/rete-algorithm.md +737 -0
  20. data/docs/assets/css/custom.css +83 -0
  21. data/docs/assets/images/blackboard-architecture.svg +136 -0
  22. data/docs/assets/images/compiled-network.svg +101 -0
  23. data/docs/assets/images/fact-assertion-flow.svg +117 -0
  24. data/docs/assets/images/kbs.jpg +0 -0
  25. data/docs/assets/images/pattern-matching-trace.svg +136 -0
  26. data/docs/assets/images/rete-network-layers.svg +96 -0
  27. data/docs/assets/images/system-layers.svg +69 -0
  28. data/docs/assets/images/trading-signal-network.svg +139 -0
  29. data/docs/assets/js/mathjax.js +17 -0
  30. data/docs/examples/expert-systems.md +1031 -0
  31. data/docs/examples/index.md +9 -0
  32. data/docs/examples/multi-agent.md +1335 -0
  33. data/docs/examples/stock-trading.md +488 -0
  34. data/docs/guides/blackboard-memory.md +558 -0
  35. data/docs/guides/dsl.md +1321 -0
  36. data/docs/guides/facts.md +652 -0
  37. data/docs/guides/getting-started.md +383 -0
  38. data/docs/guides/index.md +23 -0
  39. data/docs/guides/negation.md +529 -0
  40. data/docs/guides/pattern-matching.md +561 -0
  41. data/docs/guides/persistence.md +451 -0
  42. data/docs/guides/variable-binding.md +491 -0
  43. data/docs/guides/writing-rules.md +755 -0
  44. data/docs/index.md +157 -0
  45. data/docs/installation.md +156 -0
  46. data/docs/quick-start.md +228 -0
  47. data/examples/README.md +2 -2
  48. data/examples/advanced_example.rb +2 -2
  49. data/examples/advanced_example_dsl.rb +224 -0
  50. data/examples/ai_enhanced_kbs.rb +1 -1
  51. data/examples/ai_enhanced_kbs_dsl.rb +538 -0
  52. data/examples/blackboard_demo_dsl.rb +50 -0
  53. data/examples/car_diagnostic.rb +1 -1
  54. data/examples/car_diagnostic_dsl.rb +54 -0
  55. data/examples/concurrent_inference_demo.rb +5 -5
  56. data/examples/concurrent_inference_demo_dsl.rb +363 -0
  57. data/examples/csv_trading_system.rb +1 -1
  58. data/examples/csv_trading_system_dsl.rb +525 -0
  59. data/examples/knowledge_base.db +0 -0
  60. data/examples/portfolio_rebalancing_system.rb +2 -2
  61. data/examples/portfolio_rebalancing_system_dsl.rb +613 -0
  62. data/examples/redis_trading_demo_dsl.rb +177 -0
  63. data/examples/run_all.rb +50 -0
  64. data/examples/run_all_dsl.rb +49 -0
  65. data/examples/stock_trading_advanced.rb +1 -1
  66. data/examples/stock_trading_advanced_dsl.rb +404 -0
  67. data/examples/temp.txt +7693 -0
  68. data/examples/temp_dsl.txt +8447 -0
  69. data/examples/timestamped_trading.rb +1 -1
  70. data/examples/timestamped_trading_dsl.rb +258 -0
  71. data/examples/trading_demo.rb +1 -1
  72. data/examples/trading_demo_dsl.rb +322 -0
  73. data/examples/working_demo.rb +1 -1
  74. data/examples/working_demo_dsl.rb +160 -0
  75. data/lib/kbs/blackboard/engine.rb +3 -3
  76. data/lib/kbs/blackboard/fact.rb +1 -1
  77. data/lib/kbs/condition.rb +1 -1
  78. data/lib/kbs/dsl/knowledge_base.rb +1 -1
  79. data/lib/kbs/dsl/variable.rb +1 -1
  80. data/lib/kbs/{rete_engine.rb → engine.rb} +1 -1
  81. data/lib/kbs/fact.rb +1 -1
  82. data/lib/kbs/version.rb +1 -1
  83. data/lib/kbs.rb +2 -2
  84. data/mkdocs.yml +181 -0
  85. metadata +66 -6
  86. data/examples/stock_trading_system.rb.bak +0 -563
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dac6e5d71474e589cdd56cab643bc86541e11930e041e2c222d638ae293002e9
4
- data.tar.gz: eeb57cfa21aac11722964a56686eabc3a1319e99b901f4f572069646b5533b97
3
+ metadata.gz: aef07173eec74d0aa657562330a8fda502d390e14e181fddcd2cfb948d158057
4
+ data.tar.gz: da2018b9fb70043a9b12c57d50ea71dcaa60e54f1ba1129f3411b4c603e7a860
5
5
  SHA512:
6
- metadata.gz: 631047e6c4a51d8edb88af779bf0c87daa1d0d7ba4d5217eb57907cedd53a97acea57a416dc3e16dec34bdc6e07a7931a25fad5c6c512e0fa23557ba8149ac42
7
- data.tar.gz: 949bb76e17ea82b047a90b781ff6bbda49aa6594b1e44d0a2a57d6798cb9388e3d44ac4455503aa7846bd5fb2b963c04aa1a74f1ee54cd93a634dace3175e057
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-07
3
+ ## [0.1.0] - 2025-10-09
4
4
 
5
- - Initial release
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)