A generic phrase becomes a name, and a name is a bridge
Maintainers usually reply within 1 day
Nobody has claimed this yet.
- #862 by @iuiu-py — closed without merging
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 45/100
Research direction
Start by examining the server checks name_not_in_text and name_claimed_by_another to understand current name validation. Review the extraction contract to see how it distinguishes named entities from descriptions. Consider the two proposed approaches: either modify the contract to mark passage-fixed referents as descriptions, or add a structural check refusing names that duplicate the entity's class word. Check the linked PR #862 for existing work. Verify fixes using the NVIDIA entity panel and e2e bases to ensure generic phrases like 'the company' are not recorded as known_as names.
Written by the indexing model from the issue text.
Description
The entity panel for NVIDIA lists six names: NVIDIA, NVIDIA CORPORATION, NVDA, company,
the registrant, the company. The first three are names. The last three are not, and the
contract already says so.
prior-work item 6: a thing is named only by a proper name or a fixed
term that means the same in any document; a role or a generic phrase whose referent the passage
decides is described, scoped to its document and never merged by string. the registrant is
whoever filed the document. the company is whoever the paragraph is about.
It has already bridged two companies
In one e2e base, the company is a known_as name of both NVIDIA and SB Energy. A name is
the recall bridge and the key identity evidence will merge on (0041), so a generic phrase invites
exactly the merge that must never happen. Counts across the bases on hand:
| name | bases where it appears | entities claiming it |
|---|---|---|
the company |
4 | NVIDIA, SB Energy |
registrant / the registrant |
3 | NVIDIA, NVIDIA CORPORATION |
company |
1 | NVIDIA |
Why nothing catches it
Two server checks guard names: name_not_in_text (the name, or its quote, occurs in the chunk) and
name_claimed_by_another (no other entity in this document already claims the string). A generic
phrase passes both: it is written in the passage, and within one document it really does refer to
one company.
What a fix has to avoid
A word list. The shape checks look at structure, never vocabulary, and most lowercase names in these
bases are legitimate: free cash flow, non-GAAP gross margin, inline XBRL, safe harbor are
fixed terms that mean the same in any document, which is what item 6 admits on purpose. The gate is
a term gate, not a proper-name gate.
The distinguishing property is not the string, it is that the referent is decided by the passage.
Two directions worth measuring before either is built:
- Ask the contract for it. The model already separates a described thing from a named one
(#736); the extraction contract could say that a phrase whose referent the passage fixes is a
description, and the statement keeps it in the qualifier rather than as a name. - Refuse the name when the entity's own class word is the name.
the companynaming an
organization,the registrantnaming an organization: the name adds nothing the class does not
already say. This is structural against the ontology rather than against a word list, but it
needs measuring on a base where a class word is a real name.
Not this
The same base holds a second entity literally called NVIDIA CORPORATION, separate from NVIDIA.
That is the same company split across documents, which is expected until identity evidence lands
(0044 cut 4). It is not this bug.
Smaller and related: a possessive reaches known_as too (NVIDIA's, NVIDIA Corporation's).
- Dominant language
- Rust
- Stars
- 8.1k
- Forks
- 1.1k
- Avg merge
- 23h 41m
- Merged PRs (30d)
- 224
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from deeplethe/utopia
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
deeplethe/utopia#1471 · 1 comment ·
Maintainers usually reply within 1 day
-
The ontology agent never reads a base's ontology_lang, so its labels and definitions come out in whichever language the model picksPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 25/100
deeplethe/utopia#1472 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 12/100
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
deeplethe/utopia#1341 · 1 comment ·
Maintainers usually reply within 1 day
All issues in deeplethe/utopia
Similar issues
-
priority: low ☕️ type: bug 🐛
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Maintainers usually reply within 1 day
-
area:docs documentation good first issue priority:medium
Difficulty 1/5 Under an hour Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
feature
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
calagopus/panel#285 · 1 comment ·
Maintainers usually reply within 1 day
-
agent-self
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
yologdev/yoyo-evolve#1117 · 1 comment ·
-
[Bug]: streamed Responses API flex_unavailable error maps to 500 InternalServerError instead of 429Openllm translation
Difficulty 2/5 Under an hour Newbie friendliness 85/100
BerriAI/litellm#49736 · 1 comment ·
Maintainers usually reply within 1 day