zotero / citeproc-rs

CSL processor in Rust.
https://cormacrelf.github.io/citeproc-wasm-demo/
Other
75 stars 11 forks source link

Name Disambiguation #11

Closed cormacrelf closed 5 years ago

cormacrelf commented 5 years ago

This PR implements everything about name disambiguation.

38 out of 67 disambiguation tests now pass. The rest are implicit year-suffixes attached to dates, and other semi-related features like cite collapsing, citation labels, and bibliographies; none of the disambiguation failure diffs relate to names!

How it works for given name expansion

Example:

Two matching refs had [{Jones | B. Jones | Bernie Jones}] and [{Jones | A. Jones | Andy Jones}] respectively. The first is our cite's proper/own reference. The cite is initially [Jones]. There is only one slot. For that slot, it initially matches two refs. It ratchets to [B. Jones], and now matches only one. It's done, so it saves the change and the change gets flushed out to the IR.