aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Czygan <martin.czygan@gmail.com>2020-12-12 02:21:59 +0100
committerMartin Czygan <martin.czygan@gmail.com>2020-12-12 02:21:59 +0100
commit09b737d1182837635856dfa2fcc4c384dfd58aaf (patch)
tree8009c74a2e98d1037312fc95c2ec71a3380b4744
parent7c22f54bb2b0a3f40b15ee18ee1063a7f3659c95 (diff)
downloadfuzzycat-09b737d1182837635856dfa2fcc4c384dfd58aaf.tar.gz
fuzzycat-09b737d1182837635856dfa2fcc4c384dfd58aaf.zip
get rid of 'ok' and 'miss'
-rw-r--r--fuzzycat/common.py98
-rw-r--r--fuzzycat/verify.py104
-rw-r--r--tests/data/verify.csv276
3 files changed, 238 insertions, 240 deletions
diff --git a/fuzzycat/common.py b/fuzzycat/common.py
index 2bb25c6..9ee1239 100644
--- a/fuzzycat/common.py
+++ b/fuzzycat/common.py
@@ -3,7 +3,8 @@ from enum import Enum
class Status(str, Enum):
"""
- Match status.
+ Match status. The match status "TODO" is a placeholder, e.g. to trigger a
+ test failure.
"""
AMBIGUOUS = 'ambiguous'
DIFFERENT = 'different'
@@ -13,54 +14,51 @@ class Status(str, Enum):
TODO = 'todo'
-class OK(str, Enum):
+class Reason(str, Enum):
"""
- Reason for assuming we have a match.
+ Reason for assuming we have a match or miss. No hard rules on naming.
"""
- ARXIV_VERSION = 'ok.arxiv_version'
- CUSTOM_BSI_SUBDOC = 'ok.custom_bsi_subdoc'
- CUSTOM_BSI_UNDATED = 'ok.custom_bsi_undated'
- CUSTOM_IEEE_ARXIV = 'ok.custom_ieee_arxiv'
- DATACITE_RELATED_ID = 'ok.datacite_related_id'
- DATACITE_VERSION = 'ok.datacite_version'
- DOI = 'ok.doi'
- DUMMY = 'ok.dummy'
- FIGSHARE_VERSION = 'ok.figshare_version'
- JACCARD_AUTHORS = 'ok.jaccard_authors'
- PMID_DOI_PAIR = 'ok.pmid_doi_pair'
- PREPRINT_PUBLISHED = 'ok.preprint_published'
- SLUG_TITLE_AUTHOR_MATCH = 'ok.slug_title_author_match'
- TITLE_AUTHOR_MATCH = 'ok.title_author_match'
- TOKENIZED_AUTHORS = 'ok.tokenized_authors'
- VERSIONED_DOI = 'ok.versioned_doi'
- WORK_ID = 'ok.work_id'
-
-
-class Miss(str, Enum):
- """
- Reasons indicating mismatch.
- """
- APPENDIX = 'miss.appendix'
- ARXIV_VERSION = 'miss.arxiv_version'
- BLACKLISTED = 'miss.blacklisted'
- BLACKLISTED_FRAGMENT = 'miss.blacklisted_fragment'
- BOOK_CHAPTER = 'miss.book_chapter'
- CHEM_FORMULA = 'miss.chem_formula'
- COMPONENT = 'miss.component'
- CONTAINER = 'miss.container'
- CONTRIB_INTERSECTION_EMPTY = 'miss.contrib_intersection_empty'
- CUSTOM_IOP_MA_PATTERN = 'miss.custom_iop_ma_pattern'
- CUSTOM_PREFIX_10_14288 = 'miss.custom_prefix_10_14288'
- CUSTOM_PREFIX_10_5860_CHOICE_REVIEW = 'miss.custom_prefix_10_5860_choice_review'
- CUSTOM_PREFIX_10_7916 = 'miss.custom_prefix_10_7916'
- CUSTOM_VHS = 'miss.vhs' # https://fatcat.wiki/release/44gk5ben5vghljq6twm7lwmxla
- DATASET_DOI = 'miss.dataset_doi'
- JSTOR_ID = 'miss.jstor_id'
- NUM_DIFF = 'miss.num_diff'
- PAGE_COUNT = 'miss.page_count'
- RELEASE_TYPE = 'miss.release_type'
- SHARED_DOI_PREFIX = 'miss.shared_doi_prefix'
- SHORT_TITLE = 'miss.short_title'
- SUBTITLE = 'miss.subtitle'
- TITLE_FILENAME = 'miss.title_filename'
- YEAR = 'miss.year'
+ APPENDIX = 'appendix'
+ ARXIV_VERSION = 'arxiv_version'
+ BLACKLISTED = 'blacklisted'
+ BLACKLISTED_FRAGMENT = 'blacklisted_fragment'
+ BOOK_CHAPTER = 'book_chapter'
+ CHEM_FORMULA = 'chem_formula'
+ COMPONENT = 'component'
+ CONTAINER = 'container'
+ CONTAINER_NAME_BLACKLIST = 'container_name_blacklist'
+ CONTRIB_INTERSECTION_EMPTY = 'contrib_intersection_empty'
+ CUSTOM_BSI_SUBDOC = 'custom_bsi_subdoc'
+ CUSTOM_BSI_UNDATED = 'custom_bsi_undated'
+ CUSTOM_IEEE_ARXIV = 'custom_ieee_arxiv'
+ CUSTOM_IOP_MA_PATTERN = 'custom_iop_ma_pattern'
+ CUSTOM_PREFIX_10_14288 = 'custom_prefix_10_14288'
+ CUSTOM_PREFIX_10_5860_CHOICE_REVIEW = 'custom_prefix_10_5860_choice_review'
+ CUSTOM_PREFIX_10_7916 = 'custom_prefix_10_7916'
+ CUSTOM_VHS = 'vhs' # https://fatcat.wiki/release/44gk5ben5vghljq6twm7lwmxla
+ DATACITE_RELATED_ID = 'datacite_related_id'
+ DATACITE_VERSION = 'datacite_version'
+ DATASET_DOI = 'dataset_doi'
+ DOI = 'doi'
+ DUMMY = 'dummy'
+ FIGSHARE_VERSION = 'figshare_version'
+ JACCARD_AUTHORS = 'jaccard_authors'
+ JSTOR_ID = 'jstor_id'
+ MAX_CLUSTER_SIZE_EXCEEDED = 'max_cluster_size_exceeded'
+ NUM_DIFF = 'num_diff'
+ PAGE_COUNT = 'page_count'
+ PMID_DOI_PAIR = 'pmid_doi_pair'
+ PREPRINT_PUBLISHED = 'preprint_published'
+ PUBLISHER_BLACKLIST = 'publisher_blacklist'
+ RELEASE_TYPE = 'release_type'
+ SHARED_DOI_PREFIX = 'shared_doi_prefix'
+ SHORT_TITLE = 'short_title'
+ SINGULAR_CLUSTER = 'singular_cluster'
+ SLUG_TITLE_AUTHOR_MATCH = 'slug_title_author_match'
+ SUBTITLE = 'subtitle'
+ TITLE_AUTHOR_MATCH = 'title_author_match'
+ TITLE_FILENAME = 'title_filename'
+ TOKENIZED_AUTHORS = 'tokenized_authors'
+ VERSIONED_DOI = 'versioned_doi'
+ WORK_ID = 'work_id'
+ YEAR = 'year'
diff --git a/fuzzycat/verify.py b/fuzzycat/verify.py
index 94e8327..973ea13 100644
--- a/fuzzycat/verify.py
+++ b/fuzzycat/verify.py
@@ -74,7 +74,7 @@ import sys
from glom import PathAccessError, glom
-from fuzzycat.common import OK, Miss, Status
+from fuzzycat.common import Status, Reason
from fuzzycat.data import (CONTAINER_NAME_BLACKLIST, PUBLISHER_BLACKLIST, TITLE_BLACKLIST,
TITLE_FRAGMENT_BLACKLIST)
from fuzzycat.utils import (author_similarity_score, contains_chemical_formula, dict_key_exists,
@@ -115,19 +115,19 @@ class GroupVerifier:
doc = json.loads(line)
k, vs = get_key_values(doc)
if len(vs) < 2:
- self.counter["skip.unique"] += 1
+ self.counter[Reason.SINGULAR_CLUSTER] += 1
continue
if len(vs) > self.max_cluster_size:
- self.counter["skip.too_large"] += 1
+ self.counter[Reason.MAX_CLUSTER_SIZE_EXCEEDED] += 1
continue
for a, b in itertools.combinations(vs, r=2):
for re in (a, b):
container_name = re.get("extra", {}).get("container_name", "") or ""
if container_name.lower().strip() in CONTAINER_NAME_BLACKLIST:
- self.counter["skip.container_name_blacklist"] += 1
+ self.counter[Reason.CONTAINER_NAME_BLACKLIST] += 1
continue
if re.get("publisher", "").lower().strip() in PUBLISHER_BLACKLIST:
- self.counter["skip.publisher_blacklist"] += 1
+ self.counter[Reason.PUBLISHER_BLACKLIST] += 1
continue
result, reason = verify(a, b)
self.counter[reason] += 1
@@ -146,12 +146,12 @@ def verify(a, b):
"""
try:
if glom(a, "ext_ids.doi") == glom(b, "ext_ids.doi"):
- return (Status.EXACT, OK.DOI)
+ return (Status.EXACT, Reason.DOI)
except PathAccessError:
pass
if a.get("work_id") and a.get("work_id") == b.get("work_id"):
- return (Status.EXACT, OK.WORK_ID)
+ return (Status.EXACT, Reason.WORK_ID)
a_title = a.get("title", "")
a_title_lower = a_title.lower()
@@ -159,27 +159,27 @@ def verify(a, b):
b_title_lower = b_title.lower()
if len(a_title) < 5:
- return (Status.AMBIGUOUS, Miss.SHORT_TITLE)
+ return (Status.AMBIGUOUS, Reason.SHORT_TITLE)
if a_title_lower in TITLE_BLACKLIST:
- return (Status.AMBIGUOUS, Miss.BLACKLISTED)
+ return (Status.AMBIGUOUS, Reason.BLACKLISTED)
for fragment in TITLE_FRAGMENT_BLACKLIST:
if fragment in a_title_lower:
- return (Status.AMBIGUOUS, Miss.BLACKLISTED_FRAGMENT)
+ return (Status.AMBIGUOUS, Reason.BLACKLISTED_FRAGMENT)
# https://fatcat.wiki/release/rnso2swxzvfonemgzrth3arumi,
# https://fatcat.wiki/release/caxa7qbfqvg3bkgz4nwvapgnvi
if "subject index" in a_title_lower and "subject index" in b_title_lower:
try:
if glom(a, "container_id") != glom(b, "container_id"):
- return (Status.DIFFERENT, Miss.CONTAINER)
+ return (Status.DIFFERENT, Reason.CONTAINER)
except PathAccessError:
pass
try:
if a_title and a_title == b_title and glom(a, "extra.datacite.metadataVersion") != glom(
b, "extra.datacite.metadataVersion"):
- return (Status.EXACT, OK.DATACITE_VERSION)
+ return (Status.EXACT, Reason.DATACITE_VERSION)
except PathAccessError:
pass
@@ -191,7 +191,7 @@ def verify(a, b):
# https://fatcat.wiki/release/63g4ukdxajcqhdytqla6du3t3u,
# https://fatcat.wiki/release/rz72bzfevzeofdeb342c6z45qu;
# https://api.datacite.org/application/vnd.datacite.datacite+json/10.14288/1.0011045
- return (Status.DIFFERENT, Miss.CUSTOM_PREFIX_10_14288)
+ return (Status.DIFFERENT, Reason.CUSTOM_PREFIX_10_14288)
except PathAccessError:
pass
@@ -200,7 +200,7 @@ def verify(a, b):
b_doi = glom(b, "ext_ids.doi")
if has_doi_prefix(a_doi, "10.3403") and has_doi_prefix(b_doi, "10.3403"):
if a_doi + "u" == b_doi or b_doi + "u" == a_doi:
- return (Status.STRONG, OK.CUSTOM_BSI_UNDATED)
+ return (Status.STRONG, Reason.CUSTOM_BSI_UNDATED)
# Reference to subdocument.
# https://api.fatcat.wiki/v0/release/tcro5wr6brhqnf5wettyiauw34
# https://api.fatcat.wiki/v0/release/s7a4o5v5gfg4tbzna6poyg7nzy
@@ -208,7 +208,7 @@ def verify(a, b):
and not dict_key_exists(b, "extra.subtitle")) or
(dict_key_exists(b, "extra.subtitle")
and not dict_key_exists(a, "extra.subtitle"))):
- return (Status.STRONG, OK.CUSTOM_BSI_SUBDOC)
+ return (Status.STRONG, Reason.CUSTOM_BSI_SUBDOC)
except PathAccessError:
pass
@@ -218,15 +218,15 @@ def verify(a, b):
if has_doi_prefix(a_doi, "10.1149") and has_doi_prefix(b_doi, "10.1149"):
if (a_doi.startswith("10.1149/ma") and not b_doi.startswith("10.1149/ma")
or b_doi.startswith("10.1149/ma") and not a_doi.startswith("10.1149/ma")):
- return (Status.DIFFERENT, Miss.CUSTOM_IOP_MA_PATTERN)
+ return (Status.DIFFERENT, Reason.CUSTOM_IOP_MA_PATTERN)
except PathAccessError:
pass
if "Zweckverband Volkshochschule " in a_title and a_title != b_title:
- return (Status.DIFFERENT, Miss.CUSTOM_VHS)
+ return (Status.DIFFERENT, Reason.CUSTOM_VHS)
if re.match(r"appendix ?[^ ]*$", a_title_lower):
- return (Status.AMBIGUOUS, Miss.APPENDIX)
+ return (Status.AMBIGUOUS, Reason.APPENDIX)
try:
# TODO: figshare versions, "xxx.v1"
@@ -236,7 +236,7 @@ def verify(a, b):
a_doi_v_stripped = re.sub(r"[.]v[0-9]+$", "", glom(a, "ext_ids.doi"))
b_doi_v_stripped = re.sub(r"[.]v[0-9]+$", "", glom(b, "ext_ids.doi"))
if a_doi_v_stripped == b_doi_v_stripped:
- return (Status.STRONG, OK.FIGSHARE_VERSION)
+ return (Status.STRONG, Reason.FIGSHARE_VERSION)
except PathAccessError:
pass
@@ -247,7 +247,7 @@ def verify(a, b):
b_doi = glom(b, "ext_ids.doi")
versioned_doi_pattern = '10[.].*/v[0-9]{1,}$'
if re.match(versioned_doi_pattern, a_doi) and re.match(versioned_doi_pattern, b_doi):
- return (Status.STRONG, OK.VERSIONED_DOI)
+ return (Status.STRONG, Reason.VERSIONED_DOI)
except PathAccessError:
pass
@@ -258,7 +258,7 @@ def verify(a, b):
a_doi = glom(a, "ext_ids.doi")
b_doi = glom(b, "ext_ids.doi")
if a_doi.split(".")[:-1] == b_doi.split(".") or a_doi.split(".") == b_doi.split(".")[:-1]:
- return (Status.STRONG, OK.VERSIONED_DOI)
+ return (Status.STRONG, Reason.VERSIONED_DOI)
except PathAccessError:
pass
@@ -291,7 +291,7 @@ def verify(a, b):
b_doi_rel = get_datacite_related_doi(b)
try:
if glom(b, "ext_ids.doi") in a_doi_rel or glom(a, "ext_ids.doi") in b_doi_rel:
- return (Status.STRONG, OK.DATACITE_RELATED_ID)
+ return (Status.STRONG, Reason.DATACITE_RELATED_ID)
except PathAccessError:
pass
@@ -299,7 +299,7 @@ def verify(a, b):
id_a = re.match(r"(.*)v[0-9]{1,}$", glom(a, "ext_ids.arxiv")).group(1)
id_b = re.match(r"(.*)v[0-9]{1,}$", glom(b, "ext_ids.arxiv")).group(1)
if id_a == id_b:
- return (Status.STRONG, OK.ARXIV_VERSION)
+ return (Status.STRONG, Reason.ARXIV_VERSION)
except (AttributeError, ValueError, PathAccessError) as exc:
pass
@@ -320,31 +320,31 @@ def verify(a, b):
"paper-conference",
])
if len(types & ignore_release_types) == 0:
- return (Status.DIFFERENT, Miss.RELEASE_TYPE)
+ return (Status.DIFFERENT, Reason.RELEASE_TYPE)
if "dataset" in types and ("article" in types or "article-journal" in types):
- return (Status.DIFFERENT, Miss.RELEASE_TYPE)
+ return (Status.DIFFERENT, Reason.RELEASE_TYPE)
if "book" in types and ("article" in types or "article-journal" in types):
- return (Status.DIFFERENT, Miss.RELEASE_TYPE)
+ return (Status.DIFFERENT, Reason.RELEASE_TYPE)
except PathAccessError:
pass
try:
if (glom(a, "release_type") == "dataset" and glom(b, "release_type") == "dataset"
and glom(a, "ext_ids.doi") != glom(b, "ext_ids.doi")):
- return (Status.DIFFERENT, Miss.DATASET_DOI)
+ return (Status.DIFFERENT, Reason.DATASET_DOI)
except PathAccessError:
pass
try:
if (glom(a, "release_type") == "chapter" and glom(b, "release_type") == "chapter"
and glom(a, "extra.container_name") != glom(b, "extra.container_name")):
- return (Status.DIFFERENT, Miss.BOOK_CHAPTER)
+ return (Status.DIFFERENT, Reason.BOOK_CHAPTER)
except PathAccessError:
pass
try:
if glom(a, "extra.crossref.type") == "component" and glom(a, "title") != glom(b, "title"):
- return (Status.DIFFERENT, Miss.COMPONENT)
+ return (Status.DIFFERENT, Reason.COMPONENT)
except PathAccessError:
pass
@@ -353,7 +353,7 @@ def verify(a, b):
a_doi = glom(a, "ext_ids.doi")
b_doi = glom(b, "ext_ids.doi")
if a_doi != b_doi:
- return (Status.DIFFERENT, Miss.COMPONENT)
+ return (Status.DIFFERENT, Reason.COMPONENT)
except PathAccessError:
pass
@@ -367,7 +367,7 @@ def verify(a, b):
a_year = a.get("release_year")
b_year = b.get("release_year")
if a_year and b_year and abs(a_year - b_year) > 40:
- return (Status.DIFFERENT, Miss.YEAR)
+ return (Status.DIFFERENT, Reason.YEAR)
if a_slug_title == b_slug_title:
# via: https://fatcat.wiki/release/ij3yuoh6lrh3tkrv5o7gfk6yyi
@@ -376,7 +376,7 @@ def verify(a, b):
try:
if (glom(a, "ext_ids.doi").split("/")[0] == "10.1109"
and glom(b, "ext_ids.arxiv") != ""):
- return (Status.STRONG, OK.CUSTOM_IEEE_ARXIV)
+ return (Status.STRONG, Reason.CUSTOM_IEEE_ARXIV)
except PathAccessError:
pass
@@ -396,7 +396,7 @@ def verify(a, b):
a_doi = glom(a, "ext_ids.doi")
b_doi = glom(b, "ext_ids.doi")
if has_doi_prefix(a_doi, "10.7916") and has_doi_prefix(b_doi, "10.7916"):
- return (Status.AMBIGUOUS, Miss.CUSTOM_PREFIX_10_7916)
+ return (Status.AMBIGUOUS, Reason.CUSTOM_PREFIX_10_7916)
except PathAccessError:
pass
@@ -407,7 +407,7 @@ def verify(a, b):
for a_sub in a_subtitles:
for b_sub in b_subtitles:
if slugify_string(a_sub) != slugify_string(b_sub):
- return (Status.DIFFERENT, Miss.SUBTITLE)
+ return (Status.DIFFERENT, Reason.SUBTITLE)
except PathAccessError:
pass
@@ -429,54 +429,54 @@ def verify(a, b):
# year; compromise allow a small gap
if a_release_year and b_release_year and abs(int(a_release_year) -
int(b_release_year)) > 1:
- return (Status.DIFFERENT, Miss.YEAR)
- return (Status.EXACT, OK.TITLE_AUTHOR_MATCH)
+ return (Status.DIFFERENT, Reason.YEAR)
+ return (Status.EXACT, Reason.TITLE_AUTHOR_MATCH)
if (len(a.get("title", "").split()) == 1 and re.match(r".*[.][a-z]{2,3}", a.get("title", ""))
or len(b.get("title", "").split()) == 1
and re.match(r".*[.][a-z]{2,3}$", b.get("title", ""))):
if a.get("title") != b.get("title"):
- return (Status.DIFFERENT, Miss.TITLE_FILENAME)
+ return (Status.DIFFERENT, Reason.TITLE_FILENAME)
if a.get("title") and a.get("title") == b.get("title"):
if a_release_year and b_release_year:
if abs(int(a_release_year) - int(b_release_year)) > 2:
- return (Status.DIFFERENT, Miss.YEAR)
+ return (Status.DIFFERENT, Reason.YEAR)
if contains_chemical_formula(a_slug_title) or contains_chemical_formula(b_slug_title) and (
a_slug_title != b_slug_title):
- return (Status.DIFFERENT, Miss.CHEM_FORMULA)
+ return (Status.DIFFERENT, Reason.CHEM_FORMULA)
if len(a_slug_title) < 10 and a_slug_title != b_slug_title:
- return (Status.AMBIGUOUS, Miss.SHORT_TITLE)
+ return (Status.AMBIGUOUS, Reason.SHORT_TITLE)
if re.search(r'\d+', a_slug_title) and a_slug_title != b_slug_title and num_project(
a_slug_title) == num_project(b_slug_title):
- return (Status.DIFFERENT, Miss.NUM_DIFF)
+ return (Status.DIFFERENT, Reason.NUM_DIFF)
if a_slug_title and b_slug_title and a_slug_title == b_slug_title:
if a_authors and len(a_authors & b_authors) > 0:
if arxiv_id_a is not None and arxiv_id_b is None or arxiv_id_a is None and arxiv_id_b is not None:
- return (Status.STRONG, OK.PREPRINT_PUBLISHED)
+ return (Status.STRONG, Reason.PREPRINT_PUBLISHED)
if a_slug_title and b_slug_title and a_slug_title.strip().replace(
" ", "") == b_slug_title.strip().replace(" ", ""):
if len(a_slug_authors & b_slug_authors) > 0:
- return (Status.STRONG, OK.SLUG_TITLE_AUTHOR_MATCH)
+ return (Status.STRONG, Reason.SLUG_TITLE_AUTHOR_MATCH)
# if any([a_authors, b_authors]) and not (a_authors and b_authors):
# Does not cover case, where both authors are empty.
if a_release_year == b_release_year and a_title_lower == b_title_lower:
if ((dict_key_exists(a, "ext_ids.pmid") and dict_key_exists(b, "ext_ids.doi"))
or (dict_key_exists(b, "ext_ids.pmid") and dict_key_exists(a, "ext_ids.doi"))):
- return (Status.STRONG, OK.PMID_DOI_PAIR)
+ return (Status.STRONG, Reason.PMID_DOI_PAIR)
# Two JSTOR items will probably be different.
try:
a_jstor_id = glom(a, "ext_ids.jstor")
b_jstor_id = glom(b, "ext_ids.jstor")
if a_jstor_id != b_jstor_id:
- return (Status.DIFFERENT, Miss.JSTOR_ID)
+ return (Status.DIFFERENT, Reason.JSTOR_ID)
except PathAccessError:
pass
@@ -490,7 +490,7 @@ def verify(a, b):
if a_container_id == b_container_id and a_doi != b_doi and not has_doi_prefix(
a_doi, "10.1126"):
- return (Status.DIFFERENT, Miss.SHARED_DOI_PREFIX)
+ return (Status.DIFFERENT, Reason.SHARED_DOI_PREFIX)
except PathAccessError:
pass
@@ -515,7 +515,7 @@ def verify(a, b):
if len(top_scores) > 0:
avg_score = sum(top_scores) / len(top_scores)
if avg_score > 0.5:
- return (Status.STRONG, OK.TOKENIZED_AUTHORS)
+ return (Status.STRONG, Reason.TOKENIZED_AUTHORS)
else:
pass
# Kuidong Xu, Joong Ki Choi, Eun Jin Yang, Kyu Chul Lee, Yanli Lei
@@ -530,19 +530,19 @@ def verify(a, b):
a_tok = [tok for tok in re.findall(r"[\w]{3,}", " ".join(a_slug_authors)) if tok]
b_tok = [tok for tok in re.findall(r"[\w]{3,}", " ".join(b_slug_authors)) if tok]
if jaccard(set(a_tok), set(b_tok)) > 0.35:
- return (Status.STRONG, OK.JACCARD_AUTHORS)
+ return (Status.STRONG, Reason.JACCARD_AUTHORS)
# TODO: This misses spelling differences, e.g.
# https://fatcat.wiki/release/7nbcgsohrrak5cuyk6dnit6ega and
# https://fatcat.wiki/release/q66xv7drk5fnph7enwwlkyuwqm
- return (Status.DIFFERENT, Miss.CONTRIB_INTERSECTION_EMPTY)
+ return (Status.DIFFERENT, Reason.CONTRIB_INTERSECTION_EMPTY)
# mark choicereview articles as ambiguous, as they seem to be behind a paywall
try:
a_doi = glom(a, "ext_ids.doi")
b_doi = glom(b, "ext_ids.doi")
if has_doi_prefix(a_doi, "10.5860") or has_doi_prefix(b_doi, "10.5860"):
- return (Status.AMBIGUOUS, Miss.CUSTOM_PREFIX_10_5860_CHOICE_REVIEW)
+ return (Status.AMBIGUOUS, Reason.CUSTOM_PREFIX_10_5860_CHOICE_REVIEW)
except PathAccessError:
pass
@@ -562,8 +562,8 @@ def verify(a, b):
b_num_pages = int(b_end) - int(b_start)
if a_num_pages >= 0 and b_num_pages >= 0:
if abs(a_num_pages - b_num_pages) > 5:
- return (Status.DIFFERENT, Miss.PAGE_COUNT)
+ return (Status.DIFFERENT, Reason.PAGE_COUNT)
except PathAccessError:
pass
- return (Status.AMBIGUOUS, OK.DUMMY)
+ return (Status.AMBIGUOUS, Reason.DUMMY)
diff --git a/tests/data/verify.csv b/tests/data/verify.csv
index 5a4f06d..8394744 100644
--- a/tests/data/verify.csv
+++ b/tests/data/verify.csv
@@ -1,165 +1,165 @@
-7kzrmoajzzedxgdvbltgqihszu,bd4crw4p7ber7pzhpoyw2c77bi,Status.STRONG,OK.DATACITE_RELATED_ID
-foddwpevbjao3b3uwccvtuxfi4,versjalccvgdtp3q25elgy2z7a,Status.DIFFERENT,Miss.DATASET_DOI
-v2ypxs2yrbh57cdo6lfuiik64e,6zzx36tlefdtbftzpg4wtump3e,Status.EXACT,OK.WORK_ID
-hdvg6m467bhyng4l7xauk4ymoa,f5fugxp3qze2fht2uxt3xivi4i,Status.EXACT,OK.WORK_ID
-cubz67ifbvacppya3i27yiwr2q,4ojllezvyfehnpnj2pil2h2pdu,Status.EXACT,OK.TITLE_AUTHOR_MATCH
-s46mfwvb4rdyhlforb6yxg3abi,5hvdhbszafhw5fbu4jnrmesdmu,Status.DIFFERENT,Miss.BOOK_CHAPTER
-mn26hwbmqvh23jhsecoder3ixq,544v67u75fazfp5qssqzmh6fta,Status.DIFFERENT,Miss.YEAR
-4srjsirjhvhvtenz23lg6bqnqu,3czbwace7bh4hkfehzntnddt2i,Status.EXACT,OK.WORK_ID
-vokr6qxyqrc55kyn45dyavr2lq,b5helm53ljdxjpxdnn5zjqpjve,Status.EXACT,OK.WORK_ID
-kgeynply6vcxdeiluu6es6w72m,cm536ige6bfdfhhesp26ibfdva,Status.EXACT,OK.DATACITE_VERSION
-knwc764q25f33ib6qnwo7pyaui,n74tqiqi5jcx5d6vl5f7lpokaa,Status.DIFFERENT,Miss.YEAR
-eo4qptzoqrholjslj7nemlne2y,zisq3tsezjcejinlpf7qgk6z2i,Status.DIFFERENT,Miss.YEAR
-crsd5c2fhvd7hodbd4trne3lgi,4547ybo5hvf4xhlh5triaccxai,Status.DIFFERENT,Miss.YEAR
-egxon2iqljf47c4stvacnccvwy,swuxb5owx5g4hff3c7ur5x3awy,Status.DIFFERENT,Miss.YEAR
-kob434ccgbhu3ecnwnqzsb6e3a,wbw3dpl44zew3bjcwfvqtk2b2q,Status.AMBIGUOUS,OK.DUMMY
-c2pranaprjhrxk7x5euws32cg4,liarb7xuizewdafcubg2z3dwou,Status.DIFFERENT,Miss.CONTRIB_INTERSECTION_EMPTY
-tyokc7ccfjaw5nimkkl32dl6ta,gyyxomlfkzfannusvzoypbnel4,Status.AMBIGUOUS,Miss.BLACKLISTED
-2wakwcyb2zhbla2aao3g6ajfli,dryvgf7v3jeergr3gendplglqq,Status.DIFFERENT,Miss.CONTRIB_INTERSECTION_EMPTY
-zvwqju7e3zhf7jpbtoejfe3i4y,fpj5eqgiunfpjn7qkffwvpre5e,Status.DIFFERENT,Miss.CONTRIB_INTERSECTION_EMPTY
-cwfhdsdr6nbtngqwsqpafqj72u,icrvubkwprh6fl2irtrxziqqai,Status.EXACT,OK.WORK_ID
-qlkjwemcrzcpjeeecduiunghui,chejpgnhebcx7of4d4dkuqhkne,Status.DIFFERENT,Miss.YEAR
-no7a4vrfwnfp7jqrliq6n2hpxi,rscsor4cl5fydedr2jb6o7k4zi,Status.DIFFERENT,Miss.CONTRIB_INTERSECTION_EMPTY
-mxfrtcc3njeh5dscwgzhrugzsq,x7lbkuc5afb75nz5l5kyrzy2ia,Status.DIFFERENT,Miss.YEAR
-cqkm3hyn3rgcng3d3alwtciwpq,unwrwze6znf5xouud35i3jlneq,Status.EXACT,OK.WORK_ID
-fzs6y277zbgxnbcsmmfnftyqgy,b2ggrb2mpvh4namvf6mht5nnaq,Status.DIFFERENT,Miss.YEAR
-qgvu7i5eqrakpcnantqikaxpbu,kafrljfrv5favpvbgxavobh46y,Status.AMBIGUOUS,Miss.SHORT_TITLE
-qbfao6tzh5gkxaqaqwmidpme3q,whyzodcvtzehjdvj5ezvbkda34,Status.DIFFERENT,Miss.SUBTITLE
-ml7eci5bmnc4zl6fc6vzscciwu,rsjv7rxzuzdptmfn7orwxr7n6q,Status.EXACT,OK.WORK_ID
-3mup7xynsfdpne3rtp274lmwdy,pbhkek57zrddnllui7pl4vjhai,Status.DIFFERENT,Miss.CONTRIB_INTERSECTION_EMPTY
-lr5emu7qpfdmve6jcfjlrgoi64,revp263aa5dnjft72qynhzjcvi,Status.DIFFERENT,Miss.YEAR
-bvu4qrzfvfdhxpvl4k2ertxkbe,qnteujy54vflrnjtq2k4wtrabq,Status.DIFFERENT,Miss.YEAR
-gzmkqlwx4vd7vdtnlhkd2md2wy,7uu7g6k7grbrzlhhibf4q55odm,Status.DIFFERENT,Miss.CONTRIB_INTERSECTION_EMPTY
-apbr2crzrfamhdqt35c3sgkld4,fwhmikkv7rcjdp6j6vmroggncy,Status.STRONG,OK.SLUG_TITLE_AUTHOR_MATCH
-3x5gxfal75geppn22rck3bdanm,fpjygddf7bgahaaabjl2d67m4i,Status.EXACT,OK.TITLE_AUTHOR_MATCH
-mkqmxbrhozhxphemdgshl57m3u,ahlp3vywzzb5fh5tbjskaym3ri,Status.DIFFERENT,Miss.CONTRIB_INTERSECTION_EMPTY
-2hquztvjlrai3frazkmb6icgzy,ygkmoig5fjhtbg3rcobuy67pnu,Status.AMBIGUOUS,Miss.SHORT_TITLE
-uzrpjthgpbb2hhacohndcgj3qm,gxbp2vmubnhgrhfobb7wceujvm,Status.EXACT,OK.WORK_ID
-fmeud4dykjfudb5kjr2fgmaneq,iid2bnrjjbegtpgmpuppjou4k4,Status.DIFFERENT,Miss.SUBTITLE
-zmivcpjvhba25ldkx27d24oefa,mjapiqe2nzcy3fs3hriw253dye,Status.STRONG,OK.FIGSHARE_VERSION
-lynlkp7wh5hn3mlpzcfz4faoqi,yrbvjd4xrjaq3jxt7pkheysclm,Status.DIFFERENT,Miss.YEAR
-t3vpox5wrvbgtcigp6a6o64oey,q5yaj5zbzjctzapb5bztzctsoe,Status.DIFFERENT,Miss.YEAR
-65qtai5dmjb2hmkwa73nwafyhu,p4lk4tbohjat3g5nn5pb3kjdyu,Status.DIFFERENT,Miss.RELEASE_TYPE
-fqtc2tonfbh7hlcwoxgxzqi4lu,ng7utp7murge3ksuzbtljf5bsq,Status.DIFFERENT,Miss.YEAR
-mbnr3nrdijerto6wfjnlsmfhga,ddikrsxnajblvchthiwcbsmiue,Status.STRONG,OK.DATACITE_RELATED_ID
-nqfv37as6bcohketfrhiuac2mq,ty6megtz35c3hep57bbx2cetja,Status.DIFFERENT,Miss.YEAR
-cedhaxcvkrddpeedqtaxln4zsq,5hzpesjrjrdrzaoahvihorp7eq,Status.EXACT,OK.WORK_ID
-wwiarqhsgbevdc74f6i4qmvyhy,d35gplnuibe6djfhnh42o66zbm,Status.DIFFERENT,Miss.CONTRIB_INTERSECTION_EMPTY
-arzle77ezbbz5e33ghpqlwjw5e,e6ism7bt2vf5jl4v2ffwy3gqvu,Status.DIFFERENT,Miss.SUBTITLE
-yv3ihfy6pfe4xblrj7dcf3674u,tmewuet24jg5dflspneju2cot4,Status.EXACT,OK.WORK_ID
-rh3r3fncmzaulfdfrjzv25tpli,7zp3azvi4vbxxob2cdyzm6pepa,Status.EXACT,OK.TITLE_AUTHOR_MATCH
-lf7w27ma2ncjjpwoy2kl22t77e,mgxkqlohmbhfpedxwg3s5jhrrq,Status.DIFFERENT,Miss.CONTRIB_INTERSECTION_EMPTY
-libbt4mcwng3tiwcutfaxewmjy,6csob32ld5dx7h63cssqly6rfm,Status.DIFFERENT,Miss.YEAR
-2r6dem2qanfttn73lezeislize,4iksfoith5b6zjarfihdtosr3e,Status.EXACT,OK.WORK_ID
-wif435fwunfpfd46vvxo3at5ya,fy3j2l4s55b7ffltpiaic2jj7i,Status.DIFFERENT,Miss.YEAR
-huophilkpbh2ddemt7okzzkuyq,crle5axqrfhfdob464wlwhfrf4,Status.AMBIGUOUS,Miss.SHORT_TITLE
-dcq2jgd5abbjflzun4n3v6gjh4,ptovjgczrvft5fq2plyldafniq,Status.DIFFERENT,Miss.YEAR
-7ah6efvk2ncjzgywch2cmtfumq,nj7v4e3cxbfybozjmdiuwqo4sm,Status.DIFFERENT,Miss.RELEASE_TYPE
-eu4xst6zx5atfj37mvwdm54opq,7b7vnb7bc5g5va4yk72ruajok4,Status.STRONG,OK.FIGSHARE_VERSION
-6ovhnujfsff2nhnoeimjcckgta,qeujgsfrmvft7k7r474maekvua,Status.DIFFERENT,Miss.DATASET_DOI
-muk4xhjhubc3xn6qqddllgfsly,2gywie7yqfflnl6tljfo36keqi,Status.EXACT,OK.WORK_ID
-iywyis7npngxxbco6fgjrclrzy,anhsfjxg3few5nkfsvheehiebq,Status.DIFFERENT,Miss.BOOK_CHAPTER
-rk7mn5uaqjaslgcxc2nl6ijpaq,td3rnxzbxzeslj6ijoce3mtxcq,Status.EXACT,OK.WORK_ID
-ohkfrjjcxfcavoqoqt52wi6eke,egufgu3yubgthex3y7fdt7uupa,Status.DIFFERENT,Miss.DATASET_DOI
-dklwsz4w3rdlfddif4pcxb6ngm,wsbinmv7lragjnaedbgws6bztm,Status.DIFFERENT,Miss.RELEASE_TYPE
-jizydliu2vclvpdtcrajlvuq2m,3g6mdd3tvjabdaez6mwcycso3q,Status.EXACT,OK.WORK_ID
-fvrscdvsznb4zlhuadd6ar7ot4,57la45yryjd73gav22bnl4lyni,Status.STRONG,OK.FIGSHARE_VERSION
-6fedywjyynbxhdqv3etxjuqhba,gls2x7ca4nhzrkf437gdnj6ekq,Status.DIFFERENT,Miss.YEAR
-7lepq6lyyfepdjat6ohpeqycdu,cfm6qhhxovferl2fahf6jmcsiu,Status.DIFFERENT,Miss.YEAR
-ijbm7t2mpjcrrjazrmeli6b42a,7ijg4ar62rgo3olfbxltltrzc4,Status.EXACT,OK.WORK_ID
-hyt2ebpmhjg53f5eu4v5zortfm,ceu2t7fapvg43bvyyqck344pei,Status.DIFFERENT,Miss.SUBTITLE
-uhih3c4gbzdtnciiqlfjx3w6le,lgga6cjz6bgo7cszpjfhpuoaqi,Status.DIFFERENT,Miss.YEAR
-53w5pycrmvgglludwsv44m3czu,mvdjwqdvxfh3vd3zotf3gljm4a,Status.DIFFERENT,Miss.SUBTITLE
-6vejogvunnbb7etjzu4yfs32mm,g53ggmce2rek5lw2l52oaimgiq,Status.DIFFERENT,Miss.SUBTITLE
-325je3kjkjeerkchimvz6qxyji,ir7i7ldr7ffuvigvv6cvyyc7ju,Status.DIFFERENT,Miss.BOOK_CHAPTER
-hqwrsqnzdjbqhbrqnsbooohqse,ydx2wolhvffxnb6as6gekmocx4,Status.EXACT,OK.WORK_ID
-vz7q453kr5ds3ptsldwxedbiii,2wzybzqlmjhjfh75cxjohbvzi4,Status.DIFFERENT,Miss.RELEASE_TYPE
-efumvvpw6jbb7ehp2qfdatgxzy,funn7cwjbrgefji27tzpl4avuu,Status.EXACT,OK.WORK_ID
-pjvosq3ulzeb5d6w7zijrbz75y,pxkm2asxjnflzkdi5qnfd5fpt4,Status.DIFFERENT,Miss.BOOK_CHAPTER
-ji3qg5sajndt7p54u7wumqsjye,hxau2e34bnhhbeucfdrncgmcby,Status.DIFFERENT,Miss.YEAR
+7kzrmoajzzedxgdvbltgqihszu,bd4crw4p7ber7pzhpoyw2c77bi,Status.STRONG,DATACITE_RELATED_ID
+foddwpevbjao3b3uwccvtuxfi4,versjalccvgdtp3q25elgy2z7a,Status.DIFFERENT,DATASET_DOI
+v2ypxs2yrbh57cdo6lfuiik64e,6zzx36tlefdtbftzpg4wtump3e,Status.EXACT,WORK_ID
+hdvg6m467bhyng4l7xauk4ymoa,f5fugxp3qze2fht2uxt3xivi4i,Status.EXACT,WORK_ID
+cubz67ifbvacppya3i27yiwr2q,4ojllezvyfehnpnj2pil2h2pdu,Status.EXACT,TITLE_AUTHOR_MATCH
+s46mfwvb4rdyhlforb6yxg3abi,5hvdhbszafhw5fbu4jnrmesdmu,Status.DIFFERENT,BOOK_CHAPTER
+mn26hwbmqvh23jhsecoder3ixq,544v67u75fazfp5qssqzmh6fta,Status.DIFFERENT,YEAR
+4srjsirjhvhvtenz23lg6bqnqu,3czbwace7bh4hkfehzntnddt2i,Status.EXACT,WORK_ID
+vokr6qxyqrc55kyn45dyavr2lq,b5helm53ljdxjpxdnn5zjqpjve,Status.EXACT,WORK_ID
+kgeynply6vcxdeiluu6es6w72m,cm536ige6bfdfhhesp26ibfdva,Status.EXACT,DATACITE_VERSION
+knwc764q25f33ib6qnwo7pyaui,n74tqiqi5jcx5d6vl5f7lpokaa,Status.DIFFERENT,YEAR
+eo4qptzoqrholjslj7nemlne2y,zisq3tsezjcejinlpf7qgk6z2i,Status.DIFFERENT,YEAR
+crsd5c2fhvd7hodbd4trne3lgi,4547ybo5hvf4xhlh5triaccxai,Status.DIFFERENT,YEAR
+egxon2iqljf47c4stvacnccvwy,swuxb5owx5g4hff3c7ur5x3awy,Status.DIFFERENT,YEAR
+kob434ccgbhu3ecnwnqzsb6e3a,wbw3dpl44zew3bjcwfvqtk2b2q,Status.AMBIGUOUS,DUMMY
+c2pranaprjhrxk7x5euws32cg4,liarb7xuizewdafcubg2z3dwou,Status.DIFFERENT,CONTRIB_INTERSECTION_EMPTY
+tyokc7ccfjaw5nimkkl32dl6ta,gyyxomlfkzfannusvzoypbnel4,Status.AMBIGUOUS,BLACKLISTED
+2wakwcyb2zhbla2aao3g6ajfli,dryvgf7v3jeergr3gendplglqq,Status.DIFFERENT,CONTRIB_INTERSECTION_EMPTY
+zvwqju7e3zhf7jpbtoejfe3i4y,fpj5eqgiunfpjn7qkffwvpre5e,Status.DIFFERENT,CONTRIB_INTERSECTION_EMPTY
+cwfhdsdr6nbtngqwsqpafqj72u,icrvubkwprh6fl2irtrxziqqai,Status.EXACT,WORK_ID
+qlkjwemcrzcpjeeecduiunghui,chejpgnhebcx7of4d4dkuqhkne,Status.DIFFERENT,YEAR
+no7a4vrfwnfp7jqrliq6n2hpxi,rscsor4cl5fydedr2jb6o7k4zi,Status.DIFFERENT,CONTRIB_INTERSECTION_EMPTY
+mxfrtcc3njeh5dscwgzhrugzsq,x7lbkuc5afb75nz5l5kyrzy2ia,Status.DIFFERENT,YEAR
+cqkm3hyn3rgcng3d3alwtciwpq,unwrwze6znf5xouud35i3jlneq,Status.EXACT,WORK_ID
+fzs6y277zbgxnbcsmmfnftyqgy,b2ggrb2mpvh4namvf6mht5nnaq,Status.DIFFERENT,YEAR
+qgvu7i5eqrakpcnantqikaxpbu,kafrljfrv5favpvbgxavobh46y,Status.AMBIGUOUS,SHORT_TITLE
+qbfao6tzh5gkxaqaqwmidpme3q,whyzodcvtzehjdvj5ezvbkda34,Status.DIFFERENT,SUBTITLE
+ml7eci5bmnc4zl6fc6vzscciwu,rsjv7rxzuzdptmfn7orwxr7n6q,Status.EXACT,WORK_ID
+3mup7xynsfdpne3rtp274lmwdy,pbhkek57zrddnllui7pl4vjhai,Status.DIFFERENT,CONTRIB_INTERSECTION_EMPTY
+lr5emu7qpfdmve6jcfjlrgoi64,revp263aa5dnjft72qynhzjcvi,Status.DIFFERENT,YEAR
+bvu4qrzfvfdhxpvl4k2ertxkbe,qnteujy54vflrnjtq2k4wtrabq,Status.DIFFERENT,YEAR
+gzmkqlwx4vd7vdtnlhkd2md2wy,7uu7g6k7grbrzlhhibf4q55odm,Status.DIFFERENT,CONTRIB_INTERSECTION_EMPTY
+apbr2crzrfamhdqt35c3sgkld4,fwhmikkv7rcjdp6j6vmroggncy,Status.STRONG,SLUG_TITLE_AUTHOR_MATCH
+3x5gxfal75geppn22rck3bdanm,fpjygddf7bgahaaabjl2d67m4i,Status.EXACT,TITLE_AUTHOR_MATCH
+mkqmxbrhozhxphemdgshl57m3u,ahlp3vywzzb5fh5tbjskaym3ri,Status.DIFFERENT,CONTRIB_INTERSECTION_EMPTY
+2hquztvjlrai3frazkmb6icgzy,ygkmoig5fjhtbg3rcobuy67pnu,Status.AMBIGUOUS,SHORT_TITLE
+uzrpjthgpbb2hhacohndcgj3qm,gxbp2vmubnhgrhfobb7wceujvm,Status.EXACT,WORK_ID
+fmeud4dykjfudb5kjr2fgmaneq,iid2bnrjjbegtpgmpuppjou4k4,Status.DIFFERENT,SUBTITLE
+zmivcpjvhba25ldkx27d24oefa,mjapiqe2nzcy3fs3hriw253dye,Status.STRONG,FIGSHARE_VERSION
+lynlkp7wh5hn3mlpzcfz4faoqi,yrbvjd4xrjaq3jxt7pkheysclm,Status.DIFFERENT,YEAR
+t3vpox5wrvbgtcigp6a6o64oey,q5yaj5zbzjctzapb5bztzctsoe,Status.DIFFERENT,YEAR
+65qtai5dmjb2hmkwa73nwafyhu,p4lk4tbohjat3g5nn5pb3kjdyu,Status.DIFFERENT,RELEASE_TYPE
+fqtc2tonfbh7hlcwoxgxzqi4lu,ng7utp7murge3ksuzbtljf5bsq,Status.DIFFERENT,YEAR
+mbnr3nrdijerto6wfjnlsmfhga,ddikrsxnajblvchthiwcbsmiue,Status.STRONG,DATACITE_RELATED_ID
+nqfv37as6bcohketfrhiuac2mq,ty6megtz35c3hep57bbx2cetja,Status.DIFFERENT,YEAR
+cedhaxcvkrddpeedqtaxln4zsq,5hzpesjrjrdrzaoahvihorp7eq,Status.EXACT,WORK_ID
+wwiarqhsgbevdc74f6i4qmvyhy,d35gplnuibe6djfhnh42o66zbm,Status.DIFFERENT,CONTRIB_INTERSECTION_EMPTY
+arzle77ezbbz5e33ghpqlwjw5e,e6ism7bt2vf5jl4v2ffwy3gqvu,Status.DIFFERENT,SUBTITLE
+yv3ihfy6pfe4xblrj7dcf3674u,tmewuet24jg5dflspneju2cot4,Status.EXACT,WORK_ID
+rh3r3fncmzaulfdfrjzv25tpli,7zp3azvi4vbxxob2cdyzm6pepa,Status.EXACT,TITLE_AUTHOR_MATCH
+lf7w27ma2ncjjpwoy2kl22t77e,mgxkqlohmbhfpedxwg3s5jhrrq,Status.DIFFERENT,CONTRIB_INTERSECTION_EMPTY
+libbt4mcwng3tiwcutfaxewmjy,6csob32ld5dx7h63cssqly6rfm,Status.DIFFERENT,YEAR
+2r6dem2qanfttn73lezeislize,4iksfoith5b6zjarfihdtosr3e,Status.EXACT,WORK_ID
+wif435fwunfpfd46vvxo3at5ya,fy3j2l4s55b7ffltpiaic2jj7i,Status.DIFFERENT,YEAR
+huophilkpbh2ddemt7okzzkuyq,crle5axqrfhfdob464wlwhfrf4,Status.AMBIGUOUS,SHORT_TITLE
+dcq2jgd5abbjflzun4n3v6gjh4,ptovjgczrvft5fq2plyldafniq,Status.DIFFERENT,YEAR
+7ah6efvk2ncjzgywch2cmtfumq,nj7v4e3cxbfybozjmdiuwqo4sm,Status.DIFFERENT,RELEASE_TYPE
+eu4xst6zx5atfj37mvwdm54opq,7b7vnb7bc5g5va4yk72ruajok4,Status.STRONG,FIGSHARE_VERSION
+6ovhnujfsff2nhnoeimjcckgta,qeujgsfrmvft7k7r474maekvua,Status.DIFFERENT,DATASET_DOI
+muk4xhjhubc3xn6qqddllgfsly,2gywie7yqfflnl6tljfo36keqi,Status.EXACT,WORK_ID
+iywyis7npngxxbco6fgjrclrzy,anhsfjxg3few5nkfsvheehiebq,Status.DIFFERENT,BOOK_CHAPTER
+rk7mn5uaqjaslgcxc2nl6ijpaq,td3rnxzbxzeslj6ijoce3mtxcq,Status.EXACT,WORK_ID
+ohkfrjjcxfcavoqoqt52wi6eke,egufgu3yubgthex3y7fdt7uupa,Status.DIFFERENT,DATASET_DOI
+dklwsz4w3rdlfddif4pcxb6ngm,wsbinmv7lragjnaedbgws6bztm,Status.DIFFERENT,RELEASE_TYPE
+jizydliu2vclvpdtcrajlvuq2m,3g6mdd3tvjabdaez6mwcycso3q,Status.EXACT,WORK_ID
+fvrscdvsznb4zlhuadd6ar7ot4,57la45yryjd73gav22bnl4lyni,Status.STRONG,FIGSHARE_VERSION
+6fedywjyynbxhdqv3etxjuqhba,gls2x7ca4nhzrkf437gdnj6ekq,Status.DIFFERENT,YEAR
+7lepq6lyyfepdjat6ohpeqycdu,cfm6qhhxovferl2fahf6jmcsiu,Status.DIFFERENT,YEAR
+ijbm7t2mpjcrrjazrmeli6b42a,7ijg4ar62rgo3olfbxltltrzc4,Status.EXACT,WORK_ID
+hyt2ebpmhjg53f5eu4v5zortfm,ceu2t7fapvg43bvyyqck344pei,Status.DIFFERENT,SUBTITLE
+uhih3c4gbzdtnciiqlfjx3w6le,lgga6cjz6bgo7cszpjfhpuoaqi,Status.DIFFERENT,YEAR
+53w5pycrmvgglludwsv44m3czu,mvdjwqdvxfh3vd3zotf3gljm4a,Status.DIFFERENT,SUBTITLE
+6vejogvunnbb7etjzu4yfs32mm,g53ggmce2rek5lw2l52oaimgiq,Status.DIFFERENT,SUBTITLE
+325je3kjkjeerkchimvz6qxyji,ir7i7ldr7ffuvigvv6cvyyc7ju,Status.DIFFERENT,BOOK_CHAPTER
+hqwrsqnzdjbqhbrqnsbooohqse,ydx2wolhvffxnb6as6gekmocx4,Status.EXACT,WORK_ID
+vz7q453kr5ds3ptsldwxedbiii,2wzybzqlmjhjfh75cxjohbvzi4,Status.DIFFERENT,RELEASE_TYPE
+efumvvpw6jbb7ehp2qfdatgxzy,funn7cwjbrgefji27tzpl4avuu,Status.EXACT,WORK_ID
+pjvosq3ulzeb5d6w7zijrbz75y,pxkm2asxjnflzkdi5qnfd5fpt4,Status.DIFFERENT,BOOK_CHAPTER
+ji3qg5sajndt7p54u7wumqsjye,hxau2e34bnhhbeucfdrncgmcby,Status.DIFFERENT,YEAR
2gpvznjjcfbmhats6ot2vsodju,qk6arua2snaobfvdvlfvjp3yeq,Status.AMBIGUOUS,
75ky5xniobchzbhzwhmwhu5uoa,uvgwfvwnnbg7xchy63bloyrwvi,Status.STRONG,
jdtngtiz3bdqboypujoni2x3ry,byh7xr5qhjca3bw53ivdotck3e,Status.EXACT,
5lk635o65nc2tnkus3pkf2ggeq,hqrvhbvocvaabg6nr5p43tl3uq,Status.DIFFERENT,
5lk635o65nc2tnkus3pkf2ggeq,zfwf3tefajc6zdxa47vgilm7wm,Status.AMBIGUOUS,
hqrvhbvocvaabg6nr5p43tl3uq,zfwf3tefajc6zdxa47vgilm7wm,Status.AMBIGUOUS,
-ppnzru2opnhxlai7pcmo7phe4i,iitldffmnncijgnf6ujb6zmdfu,Status.DIFFERENT,Miss.NUM_DIFF
-fv35r37pb5c5tioyqburswsute,poeywm5o4raljhatd6zvehcicy,Status.EXACT,OK.TITLE_AUTHOR_MATCH
-s6znyezm4fdqfiihwcdtfapfqu,wz6kycfyqfdhhbcjteotw4jcbu,Status.STRONG,OK.PREPRINT_PUBLISHED
-ocbjm53gxvavrhyupfqlynlq44,olhia3lm2jfsrg3jkisjjnowsu,Status.EXACT,OK.WORK_ID
-ocbjm53gxvavrhyupfqlynlq44,twzjy7m5irdu5gjkvrsp65hefa,Status.EXACT,OK.WORK_ID
-olhia3lm2jfsrg3jkisjjnowsu,twzjy7m5irdu5gjkvrsp65hefa,Status.EXACT,OK.WORK_ID
-q5qkykfazfbahbson4uiopnq4q,s4rrmyvibvdatgj7hiduekcjhe,Status.EXACT,OK.TITLE_AUTHOR_MATCH
-fuaz2iolhjegfpdmob3i3efvgm,uxzn4nznrfbttivwzdc7noptku,Status.EXACT,OK.TITLE_AUTHOR_MATCH
-7j2dsplr45bhvdtrhqa7hykwka,pxzy4k45xjhgfgw6znf5xjayfa,Status.STRONG,OK.TOKENIZED_AUTHORS
-7j2dsplr45bhvdtrhqa7hykwka,ud3tzdfacncvnkj232lkvvg34q,Status.EXACT,OK.DOI
-pxzy4k45xjhgfgw6znf5xjayfa,ud3tzdfacncvnkj232lkvvg34q,Status.DIFFERENT,Miss.RELEASE_TYPE
-b5p5i7phjfejhiecjaz4arkp3m,rzicki3gcjayxaic7ckyx6bcmq,Status.DIFFERENT,Miss.SHARED_DOI_PREFIX
-bkonm3q2dbegde3i4sl6h6lkvq,hhyknlu55vdezg3xsqxa4as2eu,Status.EXACT,OK.TITLE_AUTHOR_MATCH
-bkonm3q2dbegde3i4sl6h6lkvq,s7mpon5havhx3eil563hcz6anu,Status.EXACT,OK.DOI
-hhyknlu55vdezg3xsqxa4as2eu,s7mpon5havhx3eil563hcz6anu,Status.EXACT,OK.TITLE_AUTHOR_MATCH
-r63fa4mqkfb3leafypdwnnj7jq,usifdrmhdbfhlodgaqgzwzi4da,Status.DIFFERENT,Miss.SHARED_DOI_PREFIX
+ppnzru2opnhxlai7pcmo7phe4i,iitldffmnncijgnf6ujb6zmdfu,Status.DIFFERENT,NUM_DIFF
+fv35r37pb5c5tioyqburswsute,poeywm5o4raljhatd6zvehcicy,Status.EXACT,TITLE_AUTHOR_MATCH
+s6znyezm4fdqfiihwcdtfapfqu,wz6kycfyqfdhhbcjteotw4jcbu,Status.STRONG,PREPRINT_PUBLISHED
+ocbjm53gxvavrhyupfqlynlq44,olhia3lm2jfsrg3jkisjjnowsu,Status.EXACT,WORK_ID
+ocbjm53gxvavrhyupfqlynlq44,twzjy7m5irdu5gjkvrsp65hefa,Status.EXACT,WORK_ID
+olhia3lm2jfsrg3jkisjjnowsu,twzjy7m5irdu5gjkvrsp65hefa,Status.EXACT,WORK_ID
+q5qkykfazfbahbson4uiopnq4q,s4rrmyvibvdatgj7hiduekcjhe,Status.EXACT,TITLE_AUTHOR_MATCH
+fuaz2iolhjegfpdmob3i3efvgm,uxzn4nznrfbttivwzdc7noptku,Status.EXACT,TITLE_AUTHOR_MATCH
+7j2dsplr45bhvdtrhqa7hykwka,pxzy4k45xjhgfgw6znf5xjayfa,Status.STRONG,TOKENIZED_AUTHORS
+7j2dsplr45bhvdtrhqa7hykwka,ud3tzdfacncvnkj232lkvvg34q,Status.EXACT,DOI
+pxzy4k45xjhgfgw6znf5xjayfa,ud3tzdfacncvnkj232lkvvg34q,Status.DIFFERENT,RELEASE_TYPE
+b5p5i7phjfejhiecjaz4arkp3m,rzicki3gcjayxaic7ckyx6bcmq,Status.DIFFERENT,SHARED_DOI_PREFIX
+bkonm3q2dbegde3i4sl6h6lkvq,hhyknlu55vdezg3xsqxa4as2eu,Status.EXACT,TITLE_AUTHOR_MATCH
+bkonm3q2dbegde3i4sl6h6lkvq,s7mpon5havhx3eil563hcz6anu,Status.EXACT,DOI
+hhyknlu55vdezg3xsqxa4as2eu,s7mpon5havhx3eil563hcz6anu,Status.EXACT,TITLE_AUTHOR_MATCH
+r63fa4mqkfb3leafypdwnnj7jq,usifdrmhdbfhlodgaqgzwzi4da,Status.DIFFERENT,SHARED_DOI_PREFIX
bg4gzikycnfvtkfwl5qnxeywwa,fbdg4rdgw5halgkhr4qcsex25y,Status.EXACT,
omjj75lv4rayvcqmgmicnzf5ye,xxfujnvafrazbjw7kvh7bhmuvy,Status.DIFFERENT,
-63g4ukdxajcqhdytqla6du3t3u,rz72bzfevzeofdeb342c6z45qu,Status.DIFFERENT,Miss.CUSTOM_PREFIX_10_14288
-ij3yuoh6lrh3tkrv5o7gfk6yyi,tur236mqljdfdnlzbbnks2sily,Status.STRONG,OK.CUSTOM_IEEE_ARXIV
-neznj5fb4nf3tdqnotnbe34b6e,gcqdvvjiq5bphl7lpc4invi4vy,Status.STRONG,OK.CUSTOM_BSI_UNDATED
-he334wpbobegxhptpkvvrufioq,td3ouhgtzbbe7ctevfnldqkoba,Status.EXACT,OK.DATACITE_VERSION
-caxa7qbfqvg3bkgz4nwvapgnvi,rnso2swxzvfonemgzrth3arumi,Status.DIFFERENT,Miss.CONTAINER
-ehu6pdvzvvcmdoyq4l2yf4vciu,2omou6ehgjccbe6yjvr4wgnsha,Status.AMBIGUOUS,Miss.BLACKLISTED_FRAGMENT
-zkqujozrx5cnjitmglclt6heqq,urr2gs4dsbbwdl7asgyqnwwtxy,Status.AMBIGUOUS,Miss.BLACKLISTED_FRAGMENT
-5b3lb2ebmrdp5nzxvohefmadre,yy2wzuaxhba7jht72mcjhxuaju,Status.DIFFERENT,Miss.CUSTOM_IOP_MA_PATTERN
+63g4ukdxajcqhdytqla6du3t3u,rz72bzfevzeofdeb342c6z45qu,Status.DIFFERENT,CUSTOM_PREFIX_10_14288
+ij3yuoh6lrh3tkrv5o7gfk6yyi,tur236mqljdfdnlzbbnks2sily,Status.STRONG,CUSTOM_IEEE_ARXIV
+neznj5fb4nf3tdqnotnbe34b6e,gcqdvvjiq5bphl7lpc4invi4vy,Status.STRONG,CUSTOM_BSI_UNDATED
+he334wpbobegxhptpkvvrufioq,td3ouhgtzbbe7ctevfnldqkoba,Status.EXACT,DATACITE_VERSION
+caxa7qbfqvg3bkgz4nwvapgnvi,rnso2swxzvfonemgzrth3arumi,Status.DIFFERENT,CONTAINER
+ehu6pdvzvvcmdoyq4l2yf4vciu,2omou6ehgjccbe6yjvr4wgnsha,Status.AMBIGUOUS,BLACKLISTED_FRAGMENT
+zkqujozrx5cnjitmglclt6heqq,urr2gs4dsbbwdl7asgyqnwwtxy,Status.AMBIGUOUS,BLACKLISTED_FRAGMENT
+5b3lb2ebmrdp5nzxvohefmadre,yy2wzuaxhba7jht72mcjhxuaju,Status.DIFFERENT,CUSTOM_IOP_MA_PATTERN
iwtrxnov2repzlgoi2at2md6tm,s5hm65waingwjmgf3plu76hzu4,Status.AMBIGUOUS,
iwtrxnov2repzlgoi2at2md6tm,t6k5mec4xjdebcs3iv3uzs3yvu,Status.AMBIGUOUS,
s5hm65waingwjmgf3plu76hzu4,t6k5mec4xjdebcs3iv3uzs3yvu,Status.AMBIGUOUS,
-zlywxoy7cfexvaatziqp4ip5m4,phqelg6oc5hs5dehhgmodcnh5u,Status.EXACT,OK.DATACITE_VERSION
-vqjpcuqxnbhdtelzspxjmklm7u,knuzh5bcqbg7ph7ffvqaiwevti,Status.AMBIGUOUS,Miss.CUSTOM_PREFIX_10_5860_CHOICE_REVIEW
-psykbwxylndtdaand2ymtkgzqu,xizkwvsodzajnn4u7lgeldqoum,Status.DIFFERENT,Miss.YEAR
-nb4yakyqebalbatnnfijkfhmka,pr7e4l5eibaavm3zsk62nmphni,Status.STRONG,OK.SLUG_TITLE_AUTHOR_MATCH
+zlywxoy7cfexvaatziqp4ip5m4,phqelg6oc5hs5dehhgmodcnh5u,Status.EXACT,DATACITE_VERSION
+vqjpcuqxnbhdtelzspxjmklm7u,knuzh5bcqbg7ph7ffvqaiwevti,Status.AMBIGUOUS,CUSTOM_PREFIX_10_5860_CHOICE_REVIEW
+psykbwxylndtdaand2ymtkgzqu,xizkwvsodzajnn4u7lgeldqoum,Status.DIFFERENT,YEAR
+nb4yakyqebalbatnnfijkfhmka,pr7e4l5eibaavm3zsk62nmphni,Status.STRONG,SLUG_TITLE_AUTHOR_MATCH
in2mm2wafbczjgzlapq55rrksq,oaezupjwnfckxaajjhjb3fl42e,Status.AMBIGUOUS,
u4mjilmo75bcnjyms564l66jea,6ofr4mqnmrdy3nyyh5ufm5ats4,Status.AMBIGUOUS,
-5a22nt42bvfj7m3dzfm7br73ni,63ht2plao5c4dasjeqj7vwglmq,Status.EXACT,OK.WORK_ID
+5a22nt42bvfj7m3dzfm7br73ni,63ht2plao5c4dasjeqj7vwglmq,Status.EXACT,WORK_ID
5a22nt42bvfj7m3dzfm7br73ni,zchlsocreffbdm36qhzy3cs32e,Status.STRONG,
63ht2plao5c4dasjeqj7vwglmq,zchlsocreffbdm36qhzy3cs32e,Status.STRONG,
-6ysfa7ncx5fldmvmwvjgpf2i6e,yp3rs3xb5ra2riyx5xayrlqfum,Status.EXACT,OK.WORK_ID
-6ysfa7ncx5fldmvmwvjgpf2i6e,zphoquzqbfccjoqix3wkpyhrm4,Status.EXACT,OK.WORK_ID
-yp3rs3xb5ra2riyx5xayrlqfum,zphoquzqbfccjoqix3wkpyhrm4,Status.EXACT,OK.WORK_ID
-mz6a32xbp5f67i2cnbco2hmzj4,fo5dsqeocfekfhqdzgqyng3z6q,Status.AMBIGUOUS,Miss.CUSTOM_PREFIX_10_5860_CHOICE_REVIEW
-g2swo5fewnhv3ihmlpl32sojr4,ab2q56gokfdmzpccrmwfcdljgy,Status.AMBIGUOUS,Miss.CUSTOM_PREFIX_10_5860_CHOICE_REVIEW
-tmlg73royrdwdhl6nijf6m7vzy,3w4tibll4rdernjrn4hkkyqsem,Status.DIFFERENT,Miss.CONTRIB_INTERSECTION_EMPTY
-eqcgtpav3na5jh56o5vjsvb4ei,7x7tszf54zggvp4xkrhakp667u,Status.STRONG,OK.PMID_DOI_PAIR
-wm2p5fznwffknjx56lvmr7hn4q,idpgijvcsnbqrgs2dg36vzzdzm,Status.DIFFERENT,Miss.SHARED_DOI_PREFIX
+6ysfa7ncx5fldmvmwvjgpf2i6e,yp3rs3xb5ra2riyx5xayrlqfum,Status.EXACT,WORK_ID
+6ysfa7ncx5fldmvmwvjgpf2i6e,zphoquzqbfccjoqix3wkpyhrm4,Status.EXACT,WORK_ID
+yp3rs3xb5ra2riyx5xayrlqfum,zphoquzqbfccjoqix3wkpyhrm4,Status.EXACT,WORK_ID
+mz6a32xbp5f67i2cnbco2hmzj4,fo5dsqeocfekfhqdzgqyng3z6q,Status.AMBIGUOUS,CUSTOM_PREFIX_10_5860_CHOICE_REVIEW
+g2swo5fewnhv3ihmlpl32sojr4,ab2q56gokfdmzpccrmwfcdljgy,Status.AMBIGUOUS,CUSTOM_PREFIX_10_5860_CHOICE_REVIEW
+tmlg73royrdwdhl6nijf6m7vzy,3w4tibll4rdernjrn4hkkyqsem,Status.DIFFERENT,CONTRIB_INTERSECTION_EMPTY
+eqcgtpav3na5jh56o5vjsvb4ei,7x7tszf54zggvp4xkrhakp667u,Status.STRONG,PMID_DOI_PAIR
+wm2p5fznwffknjx56lvmr7hn4q,idpgijvcsnbqrgs2dg36vzzdzm,Status.DIFFERENT,SHARED_DOI_PREFIX
72uzveph65ce7kfdct2wpgh5j4,nqcfu4il45aixekvk3rwflahdm,Status.DIFFERENT,
mvvbim7kdffvtosuldtv5m3uy4,b7bbygyawzdsthai7j7rmztrxe,Status.DIFFERENT,
-3f3yt32rrbdzdewtcyrcyihgju,hxmxijrd3fgodd3q3crgt7d3c4,Status.STRONG,OK.JACCARD_AUTHORS
-dauh7n5w65enhk5zwdfwqxv344,jg72qhdvmncfdfxg5l47hw3uba,Status.DIFFERENT,Miss.COMPONENT
-voruupqxhvggfex4zlczcmjxxu,jg72qhdvmncfdfxg5l47hw3uba,Status.AMBIGUOUS,OK.DUMMY
-6ysfa7ncx5fldmvmwvjgpf2i6e,yp3rs3xb5ra2riyx5xayrlqfum,Status.EXACT,OK.WORK_ID
+3f3yt32rrbdzdewtcyrcyihgju,hxmxijrd3fgodd3q3crgt7d3c4,Status.STRONG,JACCARD_AUTHORS
+dauh7n5w65enhk5zwdfwqxv344,jg72qhdvmncfdfxg5l47hw3uba,Status.DIFFERENT,COMPONENT
+voruupqxhvggfex4zlczcmjxxu,jg72qhdvmncfdfxg5l47hw3uba,Status.AMBIGUOUS,DUMMY
+6ysfa7ncx5fldmvmwvjgpf2i6e,yp3rs3xb5ra2riyx5xayrlqfum,Status.EXACT,WORK_ID
arqtphat7fashokettncepu7xe,v6p7xct6kfgwtdbh57zfjqmuua,Status.AMBIGUOUS,
-zwru5ugcsfcyzeuqlygfw46vwq,b3uhit7b4vhvliocdzwxr7peyy,Status.AMBIGUOUS,Miss.CUSTOM_PREFIX_10_7916
-s7a4o5v5gfg4tbzna6poyg7nzy,tcro5wr6brhqnf5wettyiauw34,Status.STRONG,OK.CUSTOM_BSI_SUBDOC
-eomug3y4afbynhcyzrtcvki55u,zcu2pugta5fttnqltgersan52q,Status.DIFFERENT,Miss.COMPONENT
+zwru5ugcsfcyzeuqlygfw46vwq,b3uhit7b4vhvliocdzwxr7peyy,Status.AMBIGUOUS,CUSTOM_PREFIX_10_7916
+s7a4o5v5gfg4tbzna6poyg7nzy,tcro5wr6brhqnf5wettyiauw34,Status.STRONG,CUSTOM_BSI_SUBDOC
+eomug3y4afbynhcyzrtcvki55u,zcu2pugta5fttnqltgersan52q,Status.DIFFERENT,COMPONENT
f5ebjc63j5dzpct5hsme5j3ote,zeoquc2f4nbmdbmbcbkmkxmtzi,Status.AMBIGUOUS,
-zvsffdeufjb5dbchww7ydqdq3a,5rcu6myqx5ezjjytzpvsauyut4,Status.STRONG,OK.PMID_DOI_PAIR
-cd5aik2whrd5jlvleyvdq6iwja,kfttghqcsbddvofqd7l4bhtavy,Status.DIFFERENT,Miss.COMPONENT
-hwnqyz7n65eabhlivvkipkytji,cwqujxztefdghhssb7ysxj7b5m,Status.STRONG,OK.VERSIONED_DOI
+zvsffdeufjb5dbchww7ydqdq3a,5rcu6myqx5ezjjytzpvsauyut4,Status.STRONG,PMID_DOI_PAIR
+cd5aik2whrd5jlvleyvdq6iwja,kfttghqcsbddvofqd7l4bhtavy,Status.DIFFERENT,COMPONENT
+hwnqyz7n65eabhlivvkipkytji,cwqujxztefdghhssb7ysxj7b5m,Status.STRONG,VERSIONED_DOI
yespzqkm2zed7n4vhjpkddap5e,5yixxzyl3vh4xd56lwcraowgty,Status.AMBIGUOUS,
-pobnow7sxfhnxhltgwpru5k7oi,uplqxenmk5axjes6zokml6q73y,Status.DIFFERENT,Miss.RELEASE_TYPE
-tm3gaiumkvb3xc7t3i6suna6u4,pobnow7sxfhnxhltgwpru5k7oi,Status.DIFFERENT,Miss.RELEASE_TYPE
-lqswbciv2vfkzit5zamjaqik6m,zularouecbg5fg4nd6yswxf3s4,Status.DIFFERENT,Miss.JSTOR_ID
+pobnow7sxfhnxhltgwpru5k7oi,uplqxenmk5axjes6zokml6q73y,Status.DIFFERENT,RELEASE_TYPE
+tm3gaiumkvb3xc7t3i6suna6u4,pobnow7sxfhnxhltgwpru5k7oi,Status.DIFFERENT,RELEASE_TYPE
+lqswbciv2vfkzit5zamjaqik6m,zularouecbg5fg4nd6yswxf3s4,Status.DIFFERENT,JSTOR_ID
j6ipokw3lfflhl2de7afxhac2a,rbgpleyhanakxing2f3234d7xq,Status.AMBIGUOUS,
-bruczmzvnzhtdkd2tf3meg3oou,a7wuehxrv5edpb5265qx27yvmy,Status.STRONG,OK.VERSIONED_DOI
+bruczmzvnzhtdkd2tf3meg3oou,a7wuehxrv5edpb5265qx27yvmy,Status.STRONG,VERSIONED_DOI
tebqkxnjpzfxnpsqmt5klv2ppm,uqyjav3arngq7bqmzsllxrkpmu,Status.DIFFERENT,
e3fs7ttdbrds3bvsbm7lynzlpu,vpswmj3cgfhktggwvmz33fkwuq,Status.DIFFERENT,
-gtsbvudmjzdeppqgzjpmfedycq,27lrseg7jfhxbdxohph7il7a7m,Status.DIFFERENT,Miss.JSTOR_ID
-a3kmwzn4kjerbingv7oyfs5gwe,4m6ijk5gu5gxhcbvd2f4i2xk5u,Status.DIFFERENT,Miss.RELEASE_TYPE
+gtsbvudmjzdeppqgzjpmfedycq,27lrseg7jfhxbdxohph7il7a7m,Status.DIFFERENT,JSTOR_ID
+a3kmwzn4kjerbingv7oyfs5gwe,4m6ijk5gu5gxhcbvd2f4i2xk5u,Status.DIFFERENT,RELEASE_TYPE
254alcrrgfcz7l6j6kce7xqoli,kix6fwgliffudepddlnflom6pq,Status.AMBIGUOUS,
s5gvgub2nvhazb5w7qae7w2dki,ac5cwyrtljgtji3jfgw3s2ckfe,Status.AMBIGUOUS,
-qnblx3fetbegpe7ryt444dpkke,kokj44xkcfhxvorj7cs7rov2ku,Status.DIFFERENT,Miss.RELEASE_TYPE
-vrwrf372jbd2vbwcb6fllsvhae,s43ecmng5bbqzcqhxmo7wbfsma,Status.DIFFERENT,Miss.RELEASE_TYPE
-4z2amr4cizd2jexlr7uu4jxrsa,nvyd2rotrraelcuchnu6cjbxty,Status.STRONG,OK.PMID_DOI_PAIR
+qnblx3fetbegpe7ryt444dpkke,kokj44xkcfhxvorj7cs7rov2ku,Status.DIFFERENT,RELEASE_TYPE
+vrwrf372jbd2vbwcb6fllsvhae,s43ecmng5bbqzcqhxmo7wbfsma,Status.DIFFERENT,RELEASE_TYPE
+4z2amr4cizd2jexlr7uu4jxrsa,nvyd2rotrraelcuchnu6cjbxty,Status.STRONG,PMID_DOI_PAIR
qqsdtxm5hjadta3jf7bgt3bnm4,fupvtkn7t5d5xohffx5bt4yn24,Status.AMBIGUOUS,
-6kuxfopbcjcrdnhvfokjgbd5wm,c43itb7esjc3heb64xbohigqge,Status.STRONG,OK.VERSIONED_DOI
-jbodjm2njjdmhknlgxnicefwru,trdosozt55cndbnsfmcm46xckm,Status.STRONG,OK.VERSIONED_DOI
+6kuxfopbcjcrdnhvfokjgbd5wm,c43itb7esjc3heb64xbohigqge,Status.STRONG,VERSIONED_DOI
+jbodjm2njjdmhknlgxnicefwru,trdosozt55cndbnsfmcm46xckm,Status.STRONG,VERSIONED_DOI
6gnyb4zr25fodcooyfpyfd75bi,wt2qhxiz75bhfjgrq36376huyq,Status.AMBIGUOUS,
-eaypmw4g2zbave557q3bfxstsu,pmr3siuyx5hzngoi4ve4mptxxu,Status.STRONG,OK.SLUG_TITLE_AUTHOR_MATCH
+eaypmw4g2zbave557q3bfxstsu,pmr3siuyx5hzngoi4ve4mptxxu,Status.STRONG,SLUG_TITLE_AUTHOR_MATCH