On the Talmud lexical concordance

“But Sefaria Already Has This”

What a Talmud dictionary actually has to do — and why looking up a word isn’t it.

Every time I describe this project, someone says the same thing: Sefaria already does this. You double-click a word, you get Jastrow. What are you building?

It’s a fair question, and the honest answer starts with a concession: Sefaria’s word lookup is excellent, this project depends on it, and it would be much harder to build without them. We use their digitised Jastrow. We use their word index. We use their Steinsaltz translation. None of this is a replacement for Sefaria.

But there is a difference between a dictionary and a concordance of meanings, and it’s the difference between “here are the entries this word could belong to” and “here is what this word means here, on this line, in this sugya.” The first is a filing cabinet. The second is what you actually wanted when you double-clicked.

Let me explain the gap without any linguistics jargon.


The problem in one word from the first line of Bava Metzia

שְׁנַיִם אוֹחֲזִין בְּטַלִּית

Take שנים. Four letters. In our line it means two [people]. In a different line the identical four letters mean years. Nothing in the consonants tells you which — the vowels would, but the Gemara you learn from doesn’t have vowels. You know which one it is instantly, because you’ve learned for twenty years and you’re reading the sentence, not the word.

A computer isn’t reading the sentence. It sees four letters.

Now take בטלית. You know that’s ב + טליתin a cloak. The ב isn’t part of the word, it’s attached to the front. Hebrew and Aramaic glue letters onto the front and back of words constantly: ו, ב, כ, ל, מ, ש, ה, and the possessive endings on the back. So a computer looking at בטלית has to work out that the entry it wants in Jastrow is טלית, not בטלית, which doesn’t exist as an entry at all.

And take דבר. Depending on vowels and context: a thing, a plague, or he spoke. Three different Jastrow entries. Same three letters.

This is the whole problem, and it has two halves that people tend to blur together:

Sefaria, as it works today, gives you a good answer to the first question and essentially leaves you the second one.


What Sefaria’s lookup actually is

Under the hood, Sefaria maintains an index of word-forms: a big table that says “the written form ובני belongs to the entry בְּנֵי,” “the written form בטלית belongs to טלית,” and so on. Double-click, it looks you up in that table, and shows you the Jastrow entry or entries it matched.

That’s genuinely valuable, and it’s better than people realise — it resolves a lot of those glued-on prefixes correctly. When I measured it on our pilot chapter, roughly 78% of words got at least one dictionary entry out of it.

But notice three things about what you’re handed.

First, it’s a list, not an answer. If the form matches three entries, you get three entries. The tool has no opinion about which one is right on your line. You do the disambiguation — which is fine if you’re a Kollel fellow with a decade of Gemara, and useless if you’re a beginner, and always useless if you’re a piece of software trying to build something on top of it.

Second, it stops at the entry, not the meaning. Open a substantial Jastrow entry. It has numbered senses, sub-senses, idioms, and a dozen citations. Getting told “this word is in the entry קנה” when קנה covers reed, to acquire, to create, and a fistful of idioms is not the same as being told which one your Gemara means. The hardest part of the work — the part where you actually needed help — is exactly the part that isn’t done.

Third, the ~22% that gets nothing gets nothing. No entry, no guess, no “here are three possibilities, probably this one.” Silence. And the missing 22% is not random — it skews toward Aramaic, toward unusual conjugations, toward the words that made you open a dictionary in the first place.

There’s also the small matter that Jastrow is a 1903 book written for scholars of that era: dense abbreviations, Victorian English, and an occasional etymology that a modern scholar would raise an eyebrow at. Handing a beginner raw Jastrow is handing them a second thing to decode.


What we’re building instead

The shift is simple to state and hard to do.

Instead of storing words → possible entries, we store every single word-occurrence in the Bavli → its ranked, probable meanings, with a confidence number on each.

That word “occurrence” is the whole trick. The unit isn’t שנים. The unit is “the שנים at Bava Metzia 2a, line 1.” A different שנים, forty dapim later, is a different record with a different answer. Every word on every daf gets its own row, its own ranked list, its own confidence.

That has consequences that a lookup table structurally cannot produce:


How you get an answer instead of a menu

Three ideas do the work. All three have close analogues in how a sugya operates, which is not a coincidence — they’re just what careful reasoning under uncertainty looks like.

1. First gather every possibility, then judge

The system runs in two separate stages, and keeps them strictly separate.

Stage one’s only job is to miss nothing. It throws every plausible reading of a word onto the table, from several independent methods at once: Sefaria’s word index, a hand-built list of the small closed set of particles and pronouns (דְּ, קָא, מַאי, and friends — a few hundred words that make up a huge share of the text), and a morphology engine that works out which dictionary headwords could have produced these letters once you allow for prefixes, suffixes and conjugation. Over-generating is fine at this stage. Producing junk alongside the truth is fine. Losing the truth is not.

Stage two’s only job is to choose well from that table. It weighs the possibilities against evidence and ranks them.

This split is the reason the thing can work. A system that tries to be clever and careful in a single step ends up doing both badly — it quietly discards the right answer early on, and no amount of downstream cleverness recovers it. Bring every shittah first; hold the discussion second.

Current state on the pilot: at least one candidate for 96.9% of words, with an average of about six possibilities per word for stage two to choose among. (More on how honest that number is below.)

2. Use evidence Jastrow himself supplied

To judge between the possibilities, you need evidence that comes from outside the guessing process — otherwise you’re just grading your own homework.

The main source is beautiful, and it was sitting in plain sight. Jastrow cites his sources. When he defines a word, he very often names the exact place in Shas he’s drawing on. Which means that for tens of thousands of specific words in specific locations, the dictionary itself is on record telling us the answer. Sefaria has these citations digitised and machine-readable down to the line.

So we mine those citations into a map: this location, this word, this entry — attested by Jastrow. On the pilot chapter that gave us solid external evidence for 70% of words. That map becomes the system’s ground truth: partly training material, partly a scoring key.

Other independent evidence gets stacked on top — most usefully the Steinsaltz/Davidson English translation, aligned line by line. If a word is ambiguous between two and years, and the English on that exact line says “two,” that’s a vote. Not proof. A vote.

The rule we hold to throughout: every piece of evidence used to judge a word must come from somewhere that didn’t participate in generating the guess. Otherwise the system marks its own exam, scores 100%, and is wrong everywhere.

3. Confidence has to mean something

Every answer carries a number, and the number is not decoration. It is calibrated — checked and tuned against a set of words that human scholars have ruled on by hand — so that of all the answers labelled 90%, close to 90% of them are in fact correct.

This matters more than raw accuracy. A system that’s right 85% of the time and honest about which 15% it’s shaky on is far more useful for learning than a system that’s right 92% of the time and radiates total confidence about everything. The first one you can lean on, because it tells you when to check. The second one will burn you, and you won’t see it coming.

And where AI does and doesn’t get to touch it

There’s an obvious question here, so let me answer it directly: no, this is not “ask ChatGPT what the word means.”

A language model is never allowed to decide what a word means and is never allowed to produce a citation. Models invent citations — confidently, fluently, in perfect format, to a Tosafos that doesn’t exist. That’s disqualifying for anything a person is going to learn from.

The model has exactly one job, at the very end: taking the public-domain dictionary material we’ve already assembled and rewriting it into clear modern English — unpacking Jastrow’s abbreviations, dropping the Victorian phrasing. It rewrites what it’s given. It doesn’t research, judge, or cite. Every claim traces back to a source you can open.


Where it actually stands

Written honestly, because overclaiming is how projects like this lose trust:

The pilot is Bava Metzia chapter 1. The target is the full Bavli.

The short version

Sefaria answers “what entries could this word belong to?” — well, quickly, for most words.

This answers “what does this word mean, right here, and how sure are we?” — for every word in Shas, worked out in advance, with the reasoning traceable to real sources and the uncertainty stated out loud.

Different question. That’s all. And it happens to be the question you were actually asking when you double-clicked.