Same meaning check
Checks whether two items have the same meaning within a defined scope, allowing for differences in wording, units and format. Returns yes, no or unclear.
Example
Context
- setting
- The data team of an online bookshop compares supplier listings before merging duplicate products.
- scope
- Every fact that identifies the edition counts (title, author, format, page count and year); wording and punctuation do not.
- item_a
- The Lighthouse Keeper's Daughter by Ana Rivas, paperback, 312 pages, published 2021.
Input
Ana Rivas, The Lighthouse Keeper's Daughter (paperback edition, 2021), 312 pp.
- Answer (JSON)
- value yes, confidence 0.971
- Top options
- yes 0.971
- no 0.028
- unclear 0.001
Every fact the scope names agrees between the two book listings, so the answer is yes.
import os import jeff with jeff.Jeff.remote("https://api.jeffhub.ai", token=os.environ["JEFF_API_KEY"], timeout_s=30) as client: decide = client.function("jeff.reasoning.equivalent.equivalent", context={ "setting": "The data team of an online bookshop compares supplier listings before merging duplicate products.", "scope": "Every fact that identifies the edition counts (title, author, format, page count and year); wording and punctuation do not.", "item_a": "The Lighthouse Keeper's Daughter by Ana Rivas, paperback, 312 pages, published 2021.", }) decision = decide("Ana Rivas, The Lighthouse Keeper's Daughter (paperback edition, 2021), 312 pp.") print(decision.value, decision.confidence)
More examples
Same title, different page countanswer no · confidence 1
Context
- setting
- The data team of an online bookshop compares supplier listings before merging duplicate products.
- scope
- Every fact that identifies the edition counts (title, author, format, page count and year); wording and punctuation do not.
- item_a
- The Lighthouse Keeper's Daughter by Ana Rivas, paperback, 312 pages, published 2021.
Input
Ana Rivas, The Lighthouse Keeper's Daughter (paperback, 2021), 296 pp.
- Answer (JSON)
- value no, confidence 1
- Top options
- no 1
- unclear 0
- yes 0
The two listings give 312 and 296 pages, a fact the scope counts, so the answer is
no.import os import jeff with jeff.Jeff.remote("https://api.jeffhub.ai", token=os.environ["JEFF_API_KEY"], timeout_s=30) as client: decide = client.function("jeff.reasoning.equivalent.equivalent", context={ "setting": "The data team of an online bookshop compares supplier listings before merging duplicate products.", "scope": "Every fact that identifies the edition counts (title, author, format, page count and year); wording and punctuation do not.", "item_a": "The Lighthouse Keeper's Daughter by Ana Rivas, paperback, 312 pages, published 2021.", }) decision = decide("Ana Rivas, The Lighthouse Keeper's Daughter (paperback, 2021), 296 pp.") print(decision.value, decision.confidence)
Hardback against paperbackanswer no · confidence 1
Context
- setting
- The data team of an online bookshop compares supplier listings before merging duplicate products.
- scope
- Every fact that identifies the edition counts (title, author, format, page count and year); wording and punctuation do not.
- item_a
- Salt and Iron by Tomas Ekwueme, hardback, 448 pages, published 2024.
Input
Salt and Iron, Tomas Ekwueme, paperback, 448 pages, 2024.
- Answer (JSON)
- value no, confidence 1
- Top options
- no 1
- yes 0
- unclear 0
One listing is the hardback and the other the paperback, so the answer is
no.import os import jeff with jeff.Jeff.remote("https://api.jeffhub.ai", token=os.environ["JEFF_API_KEY"], timeout_s=30) as client: decide = client.function("jeff.reasoning.equivalent.equivalent", context={ "setting": "The data team of an online bookshop compares supplier listings before merging duplicate products.", "scope": "Every fact that identifies the edition counts (title, author, format, page count and year); wording and punctuation do not.", "item_a": "Salt and Iron by Tomas Ekwueme, hardback, 448 pages, published 2024.", }) decision = decide("Salt and Iron, Tomas Ekwueme, paperback, 448 pages, 2024.") print(decision.value, decision.confidence)
Same edition, listed the other way roundanswer yes · confidence 0.995
Context
- setting
- The data team of an online bookshop compares supplier listings before merging duplicate products.
- scope
- Every fact that identifies the edition counts (title, author, format, page count and year); wording and punctuation do not.
- item_a
- Salt and Iron by Tomas Ekwueme, hardback, 448 pages, published 2024.
Input
Ekwueme, Tomas. Salt and Iron. Hardback edition, 2024, 448 pp.
- Answer (JSON)
- value yes, confidence 0.995
- Top options
- yes 0.995
- no 0.005
- unclear 0
The listings give the same title, author, format, year and page count in a different order, so the answer is
yes.import os import jeff with jeff.Jeff.remote("https://api.jeffhub.ai", token=os.environ["JEFF_API_KEY"], timeout_s=30) as client: decide = client.function("jeff.reasoning.equivalent.equivalent", context={ "setting": "The data team of an online bookshop compares supplier listings before merging duplicate products.", "scope": "Every fact that identifies the edition counts (title, author, format, page count and year); wording and punctuation do not.", "item_a": "Salt and Iron by Tomas Ekwueme, hardback, 448 pages, published 2024.", }) decision = decide("Ekwueme, Tomas. Salt and Iron. Hardback edition, 2024, 448 pp.") print(decision.value, decision.confidence)
Same book, a later yearanswer no · confidence 1
Context
- setting
- The data team of an online bookshop compares supplier listings before merging duplicate products.
- scope
- Every fact that identifies the edition counts (title, author, format, page count and year); wording and punctuation do not.
- item_a
- The Orchard at Dusk by Mira Holloway, paperback, 256 pages, published 2019.
Input
The Orchard at Dusk by Mira Holloway, paperback, 256 pages, published 2023.
- Answer (JSON)
- value no, confidence 1
- Top options
- no 1
- unclear 0
- yes 0
The listings differ only in the year, 2019 against 2023, which the scope counts, so the answer is
no.import os import jeff with jeff.Jeff.remote("https://api.jeffhub.ai", token=os.environ["JEFF_API_KEY"], timeout_s=30) as client: decide = client.function("jeff.reasoning.equivalent.equivalent", context={ "setting": "The data team of an online bookshop compares supplier listings before merging duplicate products.", "scope": "Every fact that identifies the edition counts (title, author, format, page count and year); wording and punctuation do not.", "item_a": "The Orchard at Dusk by Mira Holloway, paperback, 256 pages, published 2019.", }) decision = decide("The Orchard at Dusk by Mira Holloway, paperback, 256 pages, published 2023.") print(decision.value, decision.confidence)
Use when
- You need to compare records or statements expressed differently, such as names, amounts or dates in different formats.
Avoid when
- You need to determine which item is better or more complete; this adapter only checks equivalence.
Context and input
| Field | Kind | Description |
|---|---|---|
item_b | input | The second item, to compare with item_a within the scope. |
setting | context | Who is asking: a sentence naming the team and organisation. |
scope | context | What counts when comparing: a sentence saying which details matter (for example every fact, number, date and name). |
item_a | context | The first item: a text (a rule, sentence, record or value). |
Functions
| Key | Interface | Instructions | Labels |
|---|---|---|---|
| equivalent | classify | Do these two items mean the same thing, within the stated scope? Answer yes when every detail that matters under the scope is the same, even if the wording, the order of things whose order does not matter, the units or the formats differ. Answer no when at least one detail that matters differs, or is in one item but not the other. Answer unclear only when sameness depends on something neither item settles, such as a date or a time of day that can be read two ways, or a number given without the unit or sign that decides what it means. | no, unclear, yes |
How it was measured
Test accuracy: the share of test rows whose top answer was right.
- 93.4% on PAWS, a public paraphrase benchmark (1,000 rows). public benchmark
- 98.5% on the in-house test (2,000 rows). in-house: same generator as the training data
- 97.8% on the in-house test in domains never seen in training (1,931 rows). in-house: same generator as the training data
When confident
From the calibration set: at or above the threshold confidence, how often the answer is right, and how often the adapter is that confident. Below it, escalate.
| Function | Right when confident | Confident on | Threshold | Calibration rows |
|---|---|---|---|---|
| equivalent | 98.4% | 100.0% | 0.50 | 2,000 |
Base: Jeff v1.4. Adapter trained: 25 October 2026.
Base
jeff-base v1.4
Call it
jeff.reasoning.equivalent.equivalent, with placeholders for its input and context.
import os import jeff with jeff.Jeff.remote("https://api.jeffhub.ai", token=os.environ["JEFF_API_KEY"], timeout_s=30) as client: decide = client.function("jeff.reasoning.equivalent.equivalent", context={ "setting": "<setting>", "scope": "<scope>", "item_a": "<item_a>", }) decision = decide("<item_b>") print(decision.value, decision.confidence)
Download
Weights: mstrasser/jeff-adapter-equivalent (v1.4)
Licence: Apache-2.0