A name pushed in a statements source is an identity, but resolution still proposes it as a duplicate
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 18/100
Research direction
This is a design proposal, so the first step is agreeing a direction in the thread, not writing code. Read decision 3 of 0054, then the write-time resolution paths named in the issue: propose_by_name_vector, containment_reviews (the LIKE patterns) and resolve_by_name with SIM_ATTACH. Done means the maintainers accept or reshape the proposal, and the escaping fix in item 3 can then be split into a small PR.
Written by the indexing model from the issue text.
Description
Thank you for 0054. Pushing statements works well for us; one side effect has grown large enough that I'd like to agree a direction here before writing any code.
What we see. Our backend pushes machine-named entities through a statements source, one knowledge base per repository: owner/repo:specs/x/spec.md (a Spec), owner/repo:specs/x/spec.md#s0003 (a Statement), owner/repo:src/a.test.ts::adds two (a Test), owner/repo:src/a.ts#parseDate (a definition), and so on. Each name is an identity we already know is unique. Every one still goes through write-time resolution (0054 decision 3, "continues unchanged"), and the duplicates queue fills with pairs that can never be the same thing:
- name vectors (
propose_by_name_vector): every name shares theowner/repo:prefix, so unrelated entities clear 0.60 easily; up to 8 pairs per mention, across classes, since the type filter only knows the person/event/org/place families; - containment (
containment_reviews):…::addsinside…::adds two,#fooinside#fooBar; theLIKEpatterns are not escaped, so an_in a name matches any character; - single-candidate split (
resolve_by_name, cosine belowSIM_ATTACH): the same file named in two payloads with different context becomes two entities with one name.
#1192 and #1199 improve the exact-name paths with several candidates and the automatic merge; neither touches these three.
What would help. An entity named in a statements push is a client's identity claim, so resolution could treat it as one:
- a pushed named entity attaches to the unique case-insensitive exact-name entity of its class (or of no class) whatever the profile score, and is created only when there is none;
- a pushed named entity is never proposed by name vector or containment;
- independently useful for prose too: escape
%and_in the containmentLIKEpatterns, and letpropose_by_name_vectorskip pairs whose classes are declared disjoint.
Prose extraction keeps every path it has today. This would be a revision of 0054 decision 3 (and fits the direction #725 describes for write-time resolution). If you'd prefer it opt-in per source (say a config.names_are_identities flag), that works for us too.
Happy to write the revision here first and then send it as small PRs, one at a time, if this direction is welcome.
Related: 0054, 0041, #1192, #1199, #725.
- Dominant language
- Rust
- Stars
- 8.1k
- Forks
- 1.1k
- Avg merge
- 21h 2m
- Merged PRs (30d)
- 263
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 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 56/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
-
bug
Difficulty 5/5 Over a week Newbie friendliness 48/100
deeplethe/utopia#1338 · 2 comments ·
Maintainers usually reply within 1 day
All issues in deeplethe/utopia
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
Maintainers usually reply within 1 day
-
o8 next debug build aborts on Glass to Dark appearance switch (nil identifier messaged before check)Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
hurttlocker/o8#5112 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 79/100
Maintainers usually reply within 1 day
-
memory_patch_page drops the `#` of headings like `## Notes on C#`Possibly taken @viniciusdsandrade claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
akitaonrails/ai-memory#1859 ·
Maintainers usually reply within 1 day
-
bug prio:p3 triaged ux
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day