Skip to content

Releases: opensanctions/yente

v3.7.3

09 Oct 13:16
Compare
Choose a tag to compare
  • Improvements to matching of company names
  • Disable phonetic matching on names that do not use a Western-style alphabet
  • Fix a race condition in the indexer which can delete the active index

Full Changelog: v3.7.2...v3.7.3

v3.7.2

05 Oct 10:10
Compare
Choose a tag to compare

This release is very focussed on improving the scoring quality of the matcher system. Four areas in particular have seen work:

  • Improvements to the candidate generation system which finds possible matches using ElasticSearch. The candidate generation is the step before the generation of result scores, which pre-selected possible matches from the OpenSanctions database. It has been re-worked to assign higher scores to literal name matches, and to weight the individual terms in a company or person name in more detail (in particular, considering company type information less strongly).
  • We've made the logic-v1 matching implementations for Jaro-Winkler and Metaphone more precise in their ratings, meaning they score higher for close matches but also decrease in score for invalid candidates.
  • We've introduced a method to assign custom weights to the features in the logic-v1 algorithm, allowing API users to fine-tune the scoring system to their needs. More information: https://www.opensanctions.org/docs/api/scoring/#tuning
  • We've re-introcuced the Jaro-Winkler and Soundex implementations from yente 3.6.1 and frozen those in place, providing stability to any adopters.

What's Changed

  • Add schema facet and option to specify which facets are included in the response by @jbothma in #332
  • Bump jellyfish from 1.0.0 to 1.0.1 by @dependabot in #333
  • Bump elasticsearch[async] from 8.9.0 to 8.10.0 by @dependabot in #334
  • Bump fastapi from 0.103.1 to 0.103.2 by @dependabot in #336

New Contributors

Full Changelog: v3.7.0...v3.7.2

v3.7.0

18 Sep 08:50
Compare
Choose a tag to compare

What's Changed

Full Changelog: v3.6.2...v3.7.0

v3.6.2

13 Sep 12:27
Compare
Choose a tag to compare

This is mainly a maintenance release that updates software components. It introduces two new features:

  • The changed_since query parameter on both the /match and /search endpoints constrains results to only entities which have changed since the given ISO timestamp.
  • The API now has CORS access enabled, which is used by the OpenRefine reconciliation API.

What's Changed

New Contributors

Full Changelog: v3.6.1...v3.6.2

v3.6.1

08 Aug 14:04
Compare
Choose a tag to compare

This version includes a lot of small changes based on customer feedback. In particular:

  • Introduce an exclude_dataset query parameter to /match and /search to remove a single dataset from results.
  • Make the maximal result count of /match configurable via the server variable YENTE_MAX_MATCHES
  • The index freshness check now tests if the new index has the given alias assigned, not just if it exists. This should handle partial indexing more gracefully.

What's Changed

Full Changelog: v3.6.0...v3.6.1

v.3.6.0

24 Jul 09:14
Compare
Choose a tag to compare

This release includes improved metadata handling for datasets, introduces some new entity types in the followthemoney data model and allows for less performance-heavy matching queries using the fuzzy flag. In detail:

  • We've introduced several new entity types in the followthemoney data model which will be used to provide more detailed information regarding politically exposed persons. We advise all users to update the API now so that the new entity types will be reflected correctly.
  • Using the /match API on a very large dataset can cause heavy load on the ElasticSearch index because of the Levenshtein-based fuzzy matching it uses. In this version, we've introduced a fuzzy= query parameter, which lets users disable that functionality. Please note that this doesn't affect the scores generated by the API; but it may lead to less recall on very specific queries.

What's Changed

Full Changelog: v3.5.0...v3.6.0

v.3.5.0

04 Jul 10:25
Compare
Choose a tag to compare

This is a simple maintenance release that should improve performance and memory consumption of the application.

What's Changed

Full Changelog: v3.4.1...v3.5.0

v3.4.1

05 Jun 11:46
Compare
Choose a tag to compare

This release tries to improve error handling, and avoid some situations where async gets locked out by slow blocking situations.

The default manifest file included in the container now indexes the default collection instead of all.

What's Changed

Full Changelog: v3.4.0...v3.4.1

v3.4.0

08 May 10:11
Compare
Choose a tag to compare

This release completely re-works the way in which the OpenSanctions API will score matches in the /match API.

Until now, the API has used a simple statistical model to assign a match quality score to each result it has returned. With the new release of yente 3.4, we've made that mechanism more flexible: clients can now select one of a set of supported algorithms to optimise the behaviour of the API for their use case.

With the new release, we've added three new scoring systems to augment the existing model (now called regression-v1):

  • regression-v2 is a new statistical model for matching people and companies. Unlike regression-v1 it uses pronounciation-based (phonetic/soundex) comparison for entity names, and it has reduced the impact of birthdates as a decision criterion. The new model will generally produce much lower scores for results, so you may want to reduce your matching threshold parameter in the API to 0.5 or 0.6.

  • name-based is a simple scoring mechanism based on name similarity only. It uses two criteria, the Jaro-Winkler string distance mechanism and the Soundex phonetic algorithm. This can be a useful tool to conduct matching on data where you only have entity names, and no other details such as birth dates, nationalities, etc.

  • name-qualified uses the score from the name-based mechanism but then considers other criteria, such as birth dates, nationalities, tax and registration identifiers. If any of these mismatch between the query and the result, the score is lowered. This attempts to anticipate a simple review process that a human analyst might otherwise undertake when a result is found.

What's Changed

Full Changelog: v3.3.1...v3.4.0

v3.3.1

25 Apr 13:27
Compare
Choose a tag to compare

Updates nomenklatura to a new version that is fully statement-based.

What's Changed

Full Changelog: v3.3.0...v3.3.1