feat(papers): B-3 PR6 — OpenAlex ISSN 소스 시드 (KR/JP 안전 저널 직접 커버)
plan safety-library-b3-1 PR6 (revised). 라이브 정찰: KoreaScience=깨끗한 API 없음(OAI 404)· J-STAGE=ToS bulk 금지, 그리고 Phase-1 메타는 OpenAlex 가 이미 전수 색인(한국안전학회지 1766건 실측) → 전용 스크래퍼 대신 검증된 OpenAlex 수집기에 도메인 저널 ISSN 시드 추가(전용 무료 전문 PDF=Phase-2 park). - _JOURNAL_ISSNS(OpenAlex sources 실측): 한국안전학회지 1738-3803·한국가스학회지 1226-8402· KSME A/B 1226-4873·1226-4881·KSME Intl 1226-4865·JP 고압 0917-639X. - _seeds() = ISSN 시드(cap 우선) + 키워드. build_issn_filter(primary_location.source.issn:). run() 루프 통합(종류별 필터, 워터마크 시드별). 적재/parser/cap/signal-only = PR3 재사용. 단위 8 passed(+ISSN 시드). 라이브 PASS: 키주입 run → 한국안전학회지 5건 적재(ISSN 우선 확인), running fastapi 무접촉. KoreaScience/J-STAGE 전용 fulltext 수집기 = Phase-2 강등(park). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -11,7 +11,9 @@ sys.path.insert(0, str(Path(__file__).parent.parent / "app"))
|
||||
|
||||
from workers.openalex_collector import ( # noqa: E402
|
||||
_reconstruct_abstract,
|
||||
_seeds,
|
||||
build_filter,
|
||||
build_issn_filter,
|
||||
license_meta,
|
||||
parse_openalex_works,
|
||||
)
|
||||
@@ -90,3 +92,15 @@ def test_build_filter():
|
||||
assert build_filter("process safety") == "title_and_abstract.search:process safety"
|
||||
assert build_filter("process safety", "2026-06-01") == \
|
||||
"title_and_abstract.search:process safety,from_publication_date:2026-06-01"
|
||||
|
||||
|
||||
# ─── PR6: ISSN 소스 시드 (KR/JP 안전 저널 직접 커버) ───
|
||||
|
||||
def test_build_issn_filter_and_seeds():
|
||||
assert build_issn_filter("1738-3803") == "primary_location.source.issn:1738-3803"
|
||||
assert build_issn_filter("1738-3803", "2026-01-01") == \
|
||||
"primary_location.source.issn:1738-3803,from_publication_date:2026-01-01"
|
||||
seeds = _seeds()
|
||||
kinds = [k for _, _, k in seeds]
|
||||
assert kinds[0] == "issn" # ISSN 시드가 키워드보다 먼저(cap 우선권)
|
||||
assert any(v == "1738-3803" and k == "issn" for _, v, k in seeds) # 한국안전학회지 포함
|
||||
|
||||
Reference in New Issue
Block a user