proposal: source string in eu_journal CSVs
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Active
- Tech stack
- python
- Domain
- data-engineering
Research direction
Start by reviewing the eu_journal extraction script and the linked eu-journal-check-values-in-source comparison. The proposal discusses storing raw source strings in CSV cells and adding deterministic and LLM-assisted validation, but does not identify files or settle the desired implementation; confirm scope and acceptance criteria before coding.
Written by the indexing model from the issue text.
Description
It's a bit painful to review the eu_journal agent PRs.
it could be cool to try requiring the eu journal extraction script to include the raw string used to extract any given entity in a csv cell.
That chunks the validation to a size that's more manageable for a human. It also enables some fairly nice automated validation:
- python script checks if source string exists verbatim in the source as a whole (does this get broken by consolidation edits?)
- python script checks if each value in the csv is contained in that string, llm explains any differences, e.g. paragraph breaks dropped from reason string
- llm checks if each value in the source is extracted to some column in the csv.
Much simpler implementation of the "is everything in the CSV also in the source" direction is in https://github.com/opensanctions/opensanctions/compare/eu-journal-check-values-in-source?expand=1 - the LLM could explain the discrepancies very nicely. We could instruct the crawler to run it on any modified files and comment on discrepancies in the PR.
It was a bit slow at then looking at the source and checking whether everything's been captured in the CSV.
The suggestion of capturing source string is just to try and do the deterministic stuff deterministically, and keep keep llm jobs small.
Is this something we want?
- Dominant language
- Python
- Stars
- 810
- Forks
- 187
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 133
Contributor guide
No contributing guide indexed for this repository
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 opensanctions/opensanctions
-
ru_mfa_sanctions crawler fails with ValueError: Expected 1 elements, got 0 for xpath './/table' Open
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
opensanctions/opensanctions#5588 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
opensanctions/opensanctions#5475 ·
-
daily-issues
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
opensanctions/opensanctions#5238 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
opensanctions/opensanctions#4742 · 1 comment ·
-
daily-issues
Difficulty 2/5 1-3 hours Newbie friendliness 30/100
opensanctions/opensanctions#5700 ·
All issues in opensanctions/opensanctions
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
bancolombia/sentinel#23 ·
-
test md OpenCI
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·
-
bug client
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100