factcircuit
FactCircuit는 불변 출처와 단계별 검증, 제한된 검색, 재현 가능한 평가를 제공하는 감사 가능한 주장·증거 검증 루프입니다
헝가리 사회학 기관·연구자·프로젝트·지식연결을 인터랙티브 지도화한 파일럿
A magyar szociológia intézményeinek, kutatóinak, projektjeinek és tudáskapcsolatainak interaktív, forrásokhoz kötött térképe (pilot).
데이터Python · TypeScriptGitHub @antalbalint97온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Magyar Szociológia Atlasz / Hungarian Sociology Knowledge Graph A longitudinal, provenance-aware knowledge graph of Hungarian sociology: institutions, units, research groups, projects, people, topics and methods, with every statement traceable to a public source. Phase 1 targets a defensible snapshot of the field around 2026; the model is built to extend backwards through the history of the discipline.README 전문 보기 ↗
A longitudinal, provenance-aware knowledge graph of Hungarian sociology: institutions, units, research groups, projects, people, topics and methods, with every statement traceable to a public source. Phase 1 targets a defensible snapshot of the field around 2026; the model is built to extend backwards through the history of the discipline.
Status (0.1.0): foundation. The pipeline, ontology, TK adapter, entity resolution, QA, Neo4j import and a minimal explorer work end to end and are tested. The only dataset in the repository is
data/releases/fixture-sample, built from hand-reconstructed test pages: it demonstrates the data model and is not a statement about the field. The first real snapshot needs a run with network access to the source sites (see "Run ingestion").Current state, milestone and blockers: docs/status.md. Work is tracked in GitHub Issues (CONTRIBUTING.md).
config/ sources.yaml (source registry + curated institutions), taxonomy/, qa_seeds.yaml
src/szocatlas/ Python package
models/ ontology v0.1 (Pydantic): claims, documents, entities, relations, enums
fetch.py polite fetcher + raw snapshot store (robots.txt, delay, budget, replay)
sources/ adapter interface; tk/ = TK institute sites (szociologia, recens, kisebbsegkutato, …)
canonical/ curated claims, taxonomy derivation, canonical projection
resolution/ conservative identity matching, manual overrides, persistent ids
validation/ QA checks + report
graph/ Neo4j constraints, loader, example queries, NetworkX export
review/ manual decisions (version-controlled), identity map, generated review queue
data/ raw/ staged/ (not committed), releases/<id>/ (canonical datasets)
apps/web/ Next.js explorer (search, profile, ego network, evidence)
research/ analysis notebooks/scripts, independent of the web app
docs/ architecture, ontology, data dictionary, methodology, sources, neo4j, ADRs
tests/ parser fixtures, schema, resolution, pipeline, graph, QA tests
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev,neo4j,analysis]"
pytest # 47 tests; the Neo4j round-trip test runs when NEO4J_URI is set
szocatlas sources # registry overview
szocatlas ingest # all enabled sources (live, polite; snapshots in data/raw)
szocatlas ingest tk_recens # one source
szocatlas ingest --replay # re-parse existing snapshots, no network
szocatlas ingest-fixtures # parse tests/fixtures/tk instead (fixture dataset)
Each run appends to data/raw/<source>/runs.jsonl and writes staged records/claims to
data/staged/<source>/.
szocatlas build --release 2026-10-snapshot
szocatlas validate 2026-10-snapshot # prints quality_report.md
A release contains entities/<Type>.jsonl, relations.jsonl, claims.jsonl,
documents.jsonl, matches.jsonl, manifest.json (generated_at, sources, parser and
schema versions, counts) and quality_report.{md,json}. build exits non-zero on QA
errors unless --allow-errors. It also rewrites review/unresolved_people.yaml (possible
duplicates to decide) and extends review/identity_map.jsonl (commit it).
Manual review: record identity decisions in review/manual_overrides.yaml, claim
disputes in review/disputed_claims.yaml, then rebuild.
Quick look at a release with pandas:
import pandas as pd
people = pd.read_json("data/releases/fixture-sample/entities/Person.jsonl", lines=True)
rels = pd.read_json("data/releases/fixture-sample/relations.jsonl", lines=True)
docker run -d -p 7474:7474 -p 7687:7687 -e NEO4J_AUTH=neo4j/change-me neo4j:5-community
export NEO4J_URI=bolt://localhost:7687 NEO4J_USER=neo4j NEO4J_PASSWORD=change-me
szocatlas neo4j-load fixture-sample --prune # idempotent; safe to repeat
Example queries: src/szocatlas/graph/cypher/queries.cypher, explained in docs/neo4j.md.
cd apps/web && npm install && cp .env.example .env.local && npm run dev
GRAPH_BACKEND=file (default) reads data/releases/$GRAPH_RELEASE; GRAPH_BACKEND=neo4j
queries Neo4j server-side.
Data correctness > provenance > entity identity > reproducibility > temporal modelling > queryability > usability > polish. Unknown stays unknown; inferred is never shown as observed; nobody is hand-picked into the graph. See docs/methodology.md (including ethics) and docs/uncertainties_and_next_steps.md.