Omnigraph
그래프 엔진으로 컨텍스트를 조립하고, 객체 저장소 기반에서 에이전트가 코드처럼 그래프 데이터를 분기·타입·검토·병합·감사·거버넌스합니다
댓글을 불러오는 중입니다.
로그인 상태를 확인하는 중입니다.
Snowball functionality for openalexPro Ecosyste,
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Citation snowball searches on the OpenAlex graph, processed on disk.
Starting from a set of seed papers (keypapers), a snowball search follows citation links outward: the works that cite the seeds, and the works the seeds cite. openalexSnowball retrieves that neighbourhood and writes it as partitioned Apache Parquet, so the result is bounded by disk rather than by memory and can be queried without loading it.
Two backends produce the same on-disk construct:
# stable, from r-universe
install.packages(
"openalexSnowball",
repos = c("https://openalexpro.r-universe.dev", "https://cloud.r-project.org")
)
# development
remotes::install_github("openalexPro/openalexSnowball", ref = "dev")
library(openalexSnowball)
out <- pro_snowball(
identifier = c("W2741809807", "W2755950973"),
output = "./snowball"
)
sb <- read_snowball(out, return_data = TRUE, shorten_ids = TRUE)
sb$nodes
sb$edges
Keypapers may be given as identifier (OpenAlex ids) or doi.
id is a key: every work appears exactly once. Because a work can hold more
than one role in the same search — a keypaper that cites another keypaper is
both — the roles are three independent flags:
| column | meaning |
|---|---|
is_keypaper | one of the supplied keypapers |
is_citing | cites at least one keypaper |
is_cited | is cited by at least one keypaper |
Any combination can be TRUE. relation is also present and is the hive
partition key, but it records only the highest-precedence role
(keypaper > citing > cited), so it is lossy — filter on the booleans.
Three mutually exclusive types: core (at least one endpoint is a
keypaper, both endpoints in the dataset), extended (both endpoints in the
dataset, neither a keypaper), and outside (an endpoint is external).
Selecting several is a union of disjoint sets.
pro_snowball(
identifier = keypapers,
snapshot = "/path/to/openalex/parquet",
select = c("id", "doi", "title", "publication_year"),
output = "./snowball_offline"
)
Needs the indexes built by openalexSnapshot::build_corpus_index() and
build_citation_index(), plus build_doi_index() for DOI keypapers.
select=. Record retrieval is ~92% of an
offline run.options(openalexSnowball.duckdb_config = list(concurrency = 4)).resume = TRUE continues an interrupted run. The default output is a
temporary directory that does not survive the session, so pass a persistent
output = if you want that.See vignette("Snowball") and ?pro_snowball for the full argument set.
| package | role |
|---|---|
| openalexPro | OpenAlex API access and JSON→Parquet conversion |
| openalexSnapshot | local snapshot indexing and offline lookup |
| openalexConvert | export to CSL-JSON, BibTeX, Zotero |
Code and documentation in this project have been generated with the assistance of LLM tools. All content is based on conceptualisation by the authors and has been reviewed and edited by humans afterwards.