{
  "_id": "6a36cf103efcd9bda441166c",
  "Package": "scopusflow",
  "Title": "A Reproducible Workflow Layer for 'Scopus' Bibliographic\nSearches",
  "Version": "0.1.0",
  "Authors@R": "person(\"Pablo\", \"Bernabeu\", , \"pcbernabeu@gmail.com\", role = c(\"aut\", \"cre\", \"cph\"),\ncomment = c(ORCID = \"0000-0003-1083-2460\"))",
  "Description": "A coherent, quota-aware workflow layer over the Elsevier\n'Scopus' Search 'API' <https://dev.elsevier.com/sc_apis.html>.\nIt builds reproducible search plans, retrieves records with\nrate-limit handling, retry with back-off and optional resumable\ncaching, normalises results to a stable tidy schema, extracts\nand tracks changes in Digital Object Identifiers (DOIs),\ncompares publication trends across topics and exports to\nformats compatible with downstream bibliometric tools. Network\nand 'API' errors are surfaced as typed conditions so that\ncallers can respond to them programmatically. 'Scopus' is a\ntrademark of Elsevier. This package is an independent client\nand is not affiliated with or endorsed by Elsevier.",
  "License": "MIT + file LICENSE",
  "URL": "https://github.com/pablobernabeu/scopusflow,\nhttps://pablobernabeu.github.io/scopusflow/",
  "BugReports": "https://github.com/pablobernabeu/scopusflow/issues",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "Encoding": "UTF-8",
  "LazyData": "true",
  "Language": "en-GB",
  "Config/roxygen2/version": "8.0.0",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-06-20 17:31:19 UTC",
    "User": "root"
  },
  "Author": "Pablo Bernabeu [aut, cre, cph] (ORCID:\n<https://orcid.org/0000-0003-1083-2460>)",
  "Maintainer": "Pablo Bernabeu <pcbernabeu@gmail.com>",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-06-20 13:50:02 UTC",
  "RemoteUrl": "https://github.com/cran/scopusflow",
  "RemoteRef": "HEAD",
  "RemoteSha": "9741d1c40ce687313363aa6792eac02f6ff23fd6",
  "MD5sum": "2348f9920b4715b25c6b3280b4f7ef2e",
  "_user": "cran",
  "_type": "src",
  "_file": "scopusflow_0.1.0.tar.gz",
  "_fileid": "50fee9e3d4b83e2a57b48a5a1f8fc1e7675f681c9c702af43eb010f4a5500475",
  "_filesize": 762304,
  "_sha256": "50fee9e3d4b83e2a57b48a5a1f8fc1e7675f681c9c702af43eb010f4a5500475",
  "_created": "2026-06-20T17:31:19.000Z",
  "_published": "2026-06-20T17:34:08.346Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 82502303964,
      "time": 130,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7767397598"
    },
    {
      "job": 82502303980,
      "time": 135,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7767398071"
    },
    {
      "job": 82502080857,
      "time": 202,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7767382325"
    },
    {
      "job": 82502303961,
      "time": 116,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7767396000"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/27878558541",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/cran/scopusflow",
  "_commit": {
    "id": "9741d1c40ce687313363aa6792eac02f6ff23fd6",
    "author": "Pablo Bernabeu <pcbernabeu@gmail.com>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 0.1.0\n",
    "time": 1781963402
  },
  "_maintainer": {
    "name": "Pablo Bernabeu",
    "email": "pcbernabeu@gmail.com",
    "login": "pablobernabeu",
    "linkedin": "in/pablobernabeu",
    "orcid": "0000-0003-1083-2460",
    "description": "As a cognitive psychologist and linguist, I conduct research and data analysis on digitally-enhanced childhood learning, language and perception.",
    "uuid": 20436359
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "httr2",
      "version": ">= 1.0.0",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "version": ">= 1.0.0",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "tools",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "spelling",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-25",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "0.1.0",
      "date": "2026-06-20"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "pablobernabeu",
      "count": 1,
      "uuid": 20436359
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "followers": 610,
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/scopusflow"
  },
  "_devurl": "https://github.com/pablobernabeu/scopusflow",
  "_pkgdown": "https://pablobernabeu.github.io/scopusflow/",
  "_searchresults": 10,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/scopusflow.html",
    "LICENSE",
    "manual.pdf"
  ],
  "_cranurl": false,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2026-06-20"
    }
  ],
  "_exports": [
    "as_bibliometrix",
    "is_scopus_plan",
    "is_scopus_records",
    "plot_scopus_comparison",
    "read_scopus_records",
    "scopus_cache_clear",
    "scopus_cache_dir",
    "scopus_combine",
    "scopus_compare_topics",
    "scopus_count",
    "scopus_diff_dois",
    "scopus_extract_dois",
    "scopus_fetch",
    "scopus_fetch_plan",
    "scopus_field_tags",
    "scopus_has_key",
    "scopus_plan",
    "scopus_query",
    "scopus_quota",
    "scopus_records",
    "write_scopus_records"
  ],
  "_datasets": [
    {
      "name": "example_records",
      "title": "Example set of normalised 'Scopus' records",
      "object": "example_records",
      "class": [
        "scopus_records",
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "entry_number",
        "scopus_id",
        "doi",
        "title",
        "authors",
        "year",
        "date",
        "publication",
        "citations",
        "query"
      ],
      "rows": 6,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "as_bibliometrix",
      "title": "Convert records to a bibliometrix-compatible data frame",
      "topics": [
        "as_bibliometrix"
      ]
    },
    {
      "page": "scopus_records",
      "title": "Normalise raw 'Scopus' entries to a stable tidy schema",
      "topics": [
        "as.data.frame.scopus_records",
        "as_tibble.scopus_records",
        "is_scopus_records",
        "scopus_records"
      ]
    },
    {
      "page": "example_records",
      "title": "Example set of normalised 'Scopus' records",
      "topics": [
        "example_records"
      ]
    },
    {
      "page": "plot_scopus_comparison",
      "title": "Plot a topic comparison",
      "topics": [
        "autoplot.scopus_comparison",
        "plot_scopus_comparison"
      ]
    },
    {
      "page": "scopus_cache_clear",
      "title": "Clear the scopusflow managed cache",
      "topics": [
        "scopus_cache_clear"
      ]
    },
    {
      "page": "scopus_cache_dir",
      "title": "Managed cache directory for scopusflow",
      "topics": [
        "scopus_cache_dir"
      ]
    },
    {
      "page": "scopus_combine",
      "title": "Combine record sets into one",
      "topics": [
        "c.scopus_records",
        "scopus_combine"
      ]
    },
    {
      "page": "scopus_compare_topics",
      "title": "Compare publication trends across topics",
      "topics": [
        "scopus_compare_topics"
      ]
    },
    {
      "page": "scopus_count",
      "title": "Count 'Scopus' results for a query",
      "topics": [
        "scopus_count"
      ]
    },
    {
      "page": "scopus_diff_dois",
      "title": "Compare two DOI retrievals",
      "topics": [
        "scopus_diff_dois"
      ]
    },
    {
      "page": "scopus_extract_dois",
      "title": "Extract, clean and optionally export DOIs",
      "topics": [
        "scopus_extract_dois"
      ]
    },
    {
      "page": "scopus_fetch",
      "title": "Fetch 'Scopus' records for a query",
      "topics": [
        "scopus_fetch"
      ]
    },
    {
      "page": "scopus_fetch_plan",
      "title": "Execute a 'Scopus' search plan, with optional caching and resume",
      "topics": [
        "scopus_fetch_plan"
      ]
    },
    {
      "page": "scopus_field_tags",
      "title": "Recognised 'Scopus' field tags",
      "topics": [
        "scopus_field_tags"
      ]
    },
    {
      "page": "scopus_has_key",
      "title": "Locate the 'Scopus' API key and institutional token",
      "topics": [
        "scopus_has_key"
      ]
    },
    {
      "page": "scopus_plan",
      "title": "Build a reproducible 'Scopus' search plan",
      "topics": [
        "is_scopus_plan",
        "scopus_plan"
      ]
    },
    {
      "page": "scopus_query",
      "title": "Build a field-tagged 'Scopus' query",
      "topics": [
        "scopus_query"
      ]
    },
    {
      "page": "scopus_quota",
      "title": "Parse 'Scopus' quota and rate-limit headers",
      "topics": [
        "scopus_quota"
      ]
    },
    {
      "page": "summary.scopus_records",
      "title": "Summarise a set of 'Scopus' records",
      "topics": [
        "summary.scopus_records"
      ]
    },
    {
      "page": "write_scopus_records",
      "title": "Read and write 'Scopus' record sets",
      "topics": [
        "read_scopus_records",
        "write_scopus_records"
      ]
    }
  ],
  "_pkglogo": "https://github.com/cran/scopusflow/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/cran/scopusflow/raw/HEAD/README.md",
  "_rundeps": [
    "askpass",
    "cli",
    "curl",
    "glue",
    "httr2",
    "jsonlite",
    "lifecycle",
    "magrittr",
    "openssl",
    "pillar",
    "pkgconfig",
    "R6",
    "rappdirs",
    "rlang",
    "sys",
    "tibble",
    "utf8",
    "vctrs",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "building-a-reference-set.Rmd",
      "filename": "building-a-reference-set.html",
      "title": "Building and exporting a reference set",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Take stock first",
        "A clean, deduplicated DOI list",
        "Handing off to science mapping",
        "Saving the working set"
      ],
      "created": "2026-06-20 13:50:02",
      "modified": "2026-06-20 13:50:02",
      "commits": 1
    },
    {
      "source": "comparing-topics.Rmd",
      "filename": "comparing-topics.html",
      "title": "Comparing topics over time",
      "engine": "knitr::rmarkdown",
      "headings": [
        "What the comparison measures",
        "The shape of the result",
        "A first plot",
        "Drawing the eye to one topic",
        "Adjusting the labels",
        "Reading the result as a table"
      ],
      "created": "2026-06-20 13:50:02",
      "modified": "2026-06-20 13:50:02",
      "commits": 1
    },
    {
      "source": "designing-queries.Rmd",
      "filename": "designing-queries.html",
      "title": "Designing precise queries across disciplines",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Field tags decide where to look",
        "One term, many disciplines",
        "Combining terms with boolean operators",
        "From a query to a plan",
        "Searching by affiliation",
        "When a term is empty"
      ],
      "created": "2026-06-20 13:50:02",
      "modified": "2026-06-20 13:50:02",
      "commits": 1
    },
    {
      "source": "scopusflow.Rmd",
      "filename": "scopusflow.html",
      "title": "Getting started with scopusflow",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Describing a search as a plan",
        "Sizing and fetching",
        "The record schema",
        "DOIs and change tracking",
        "Comparing topic trends",
        "Export and interoperability",
        "Handling failures"
      ],
      "created": "2026-06-20 13:50:02",
      "modified": "2026-06-20 13:50:02",
      "commits": 1
    },
    {
      "source": "plans-and-quota.Rmd",
      "filename": "plans-and-quota.html",
      "title": "Search plans and quota-aware retrieval",
      "engine": "knitr::rmarkdown",
      "headings": [
        "A query, built safely",
        "Describing the search as a plan",
        "Why page size is a quota decision",
        "Sizing before spending",
        "Fetching, with caching and resume",
        "Combining separate retrievals",
        "When the ceiling bites",
        "Handling interruptions"
      ],
      "created": "2026-06-20 13:50:02",
      "modified": "2026-06-20 13:50:02",
      "commits": 1
    },
    {
      "source": "tracking-literature-change.Rmd",
      "filename": "tracking-literature-change.html",
      "title": "Tracking how a literature changes between retrievals",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The baseline",
        "A later retrieval",
        "What changed",
        "Merging without duplicates",
        "Keeping a record of each pull"
      ],
      "created": "2026-06-20 13:50:02",
      "modified": "2026-06-20 13:50:02",
      "commits": 1
    }
  ],
  "_score": 3.4771212547196626,
  "_indexed": true,
  "_nocasepkg": "scopusflow",
  "_universes": [
    "cran",
    "pablobernabeu"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-06-20T17:33:27.000Z",
      "distro": "noble",
      "commit": "9741d1c40ce687313363aa6792eac02f6ff23fd6",
      "fileid": "369093542fc56ea7ba2a459109177d6042c439b72cfa3294e9eae46941525d21",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/27878558541"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-06-20T17:33:30.000Z",
      "distro": "noble",
      "commit": "9741d1c40ce687313363aa6792eac02f6ff23fd6",
      "fileid": "c9a80a578ed0476c70d85f9bb09d46a8d530cd6f6e0746f2db99adaaa6948dd6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/27878558541"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.1.0",
      "date": "2026-06-20T17:33:34.000Z",
      "commit": "9741d1c40ce687313363aa6792eac02f6ff23fd6",
      "fileid": "a2ac0bb5fe6cec86cb34f3fe7008b0f08aa0751cf1a2eb5dd2ad7a4ea3273cf5",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/27878558541"
    }
  ]
}