Step 14: Connect components — chamishim karsay zahav

Three connections built and tested:
- Haskell Shoresh Engine via Erlang Port (JSON lines over stdin/stdout)
- Prolog Talmudic Engine via Unix domain socket (JSON over /tmp/shorashim/talmudic.sock)
- Erlang Sanhedrin via native BEAM calls

New: Server.hs (JSON-line server loop), json_bridge.pl + socket_server.pl
(Prolog socket interface), ShoreshEnginePort + TalmudicEngineSocket +
SanhedrinClient (Elixir GenServer wrappers). BereishitCycle now routes
unresolved cases through Talmudic Engine and Sanhedrin. All connections
gracefully degrade — pipeline falls back to L1 data when engines unavailable.

46 Elixir tests, 33 Haskell tests, 57 Prolog tests — 0 failures.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Scott KarpandClaude Opus 4.6 committed 2026-03-12 17:39:21 -04:00
1 parent f8f70c77e5
commit c67672777b
18 files changed
+1435 -121

No files matched your search

+3
View File
@@ -27,6 +27,7 @@ import Shoresh.Teamim
import Shoresh.KetivQere
import Shoresh.Lexicon
import Shoresh.Graph
import Shoresh.Server (runServer)
import Luchot.Firmware
main :: IO ()
@@ -34,6 +35,7 @@ main = do
args <- getArgs
case args of
["verify"] -> runVerification
["server"] -> runServer
["verse", book, ch, vs] -> runVerse book ch vs
["root", rootText] -> runRoot rootText
["gematria", word] -> runGematria word
@@ -45,6 +47,7 @@ printUsage = do
putStrLn ""
putStrLn "Usage:"
putStrLn " shoresh-engine verify Run Step 7 verification"
putStrLn " shoresh-engine server JSON-line server (Erlang Port mode)"
putStrLn " shoresh-engine verse <book> <ch> <vs> Read and parse a verse from L1"
putStrLn " shoresh-engine root <root> Activate a root through all 7 binyanim"
putStrLn " shoresh-engine gematria <word> Compute gematria of a Hebrew word"