{
  "_id": "6a39b2f54c3da884a928bcca",
  "Package": "scopusflow",
  "Title": "A Reproducible Workflow Layer for 'Scopus' Bibliographic\nSearches",
  "Version": "0.3.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",
  "Roxygen": "list(markdown = TRUE)",
  "Config/roxygen2/version": "8.0.0",
  "Config/pak/sysreqs": "libssl-dev",
  "Repository": "https://pablobernabeu.r-universe.dev",
  "Date/Publication": "2026-06-22 19:58:01 UTC",
  "RemoteUrl": "https://github.com/pablobernabeu/scopusflow",
  "RemoteRef": "HEAD",
  "RemoteSha": "57c8da1a14fa9cd0cdc7d04d2362f62024a4b9ef",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-06-22 22:07:46 UTC",
    "User": "root"
  },
  "Author": "Pablo Bernabeu [aut, cre, cph] (ORCID:\n<https://orcid.org/0000-0003-1083-2460>)",
  "Maintainer": "Pablo Bernabeu <pcbernabeu@gmail.com>",
  "MD5sum": "704c7845c603ea9b0002d11f8a41ec89",
  "_user": "pablobernabeu",
  "_type": "src",
  "_file": "scopusflow_0.3.0.tar.gz",
  "_fileid": "4598c0fa3b4ef1e60399eebfc721e2939bbfeb06dfee75984a1881f3f23f0486",
  "_filesize": 907864,
  "_sha256": "4598c0fa3b4ef1e60399eebfc721e2939bbfeb06dfee75984a1881f3f23f0486",
  "_created": "2026-06-22T22:07:46.000Z",
  "_published": "2026-06-22T22:11:01.575Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 82831793326,
      "time": 151,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7806236217"
    },
    {
      "job": 82831793303,
      "time": 155,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7806236748"
    },
    {
      "job": 82831793361,
      "time": 150,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7806228217"
    },
    {
      "job": 82831793345,
      "time": 131,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7806223751"
    },
    {
      "job": 82831232535,
      "time": 202,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7806186940"
    },
    {
      "job": 82831793305,
      "time": 118,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7806225561"
    },
    {
      "job": 82831793347,
      "time": 137,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7806231878"
    },
    {
      "job": 82831793314,
      "time": 106,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7806221782"
    },
    {
      "job": 82831793349,
      "time": 107,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7806221889"
    }
  ],
  "_buildurl": "https://github.com/r-universe/pablobernabeu/actions/runs/27987131643",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/pablobernabeu/scopusflow",
  "_commit": {
    "id": "57c8da1a14fa9cd0cdc7d04d2362f62024a4b9ef",
    "author": "Pablo Bernabeu <pcbernabeu@gmail.com>",
    "committer": "Pablo Bernabeu <pcbernabeu@gmail.com>",
    "message": "docs: app vignette, README app/export coverage, abstract illustration, prose polish\n\nBring the documentation up to the current feature set and into a more natural\nprose style.\n\n- A new vignette, Using the code-free app, walks through run_app() panel by\n  panel (demo mode, the live terminal, the reproducible-code mirror, the\n  Compare topics tab and export). run_app() was previously documented only in\n  its help page.\n- The README gains a Code-free app section and a reference-manager export step\n  (as_bibtex/as_ris), which the live-workflow example had omitted.\n- analysing-a-literature now shows scopus_abstract's return shape offline with a\n  stand-in scopus_abstracts object, so its columns and print method are visible\n  without a key.\n- Prose polish to curb the tells of machine writing: recast prose semicolons in\n  plans-and-quota, split a packed-semicolon NEWS bullet, drop a stale vignette\n  count, and reword an n-th ordinal that tripped the spell check. Spelling is\n  clean and R CMD check is 0/0/1.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n",
    "time": 1782158281
  },
  "_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.\n\nSSI Fellow ",
    "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": "bslib",
      "role": "Suggests"
    },
    {
      "package": "callr",
      "role": "Suggests"
    },
    {
      "package": "fansi",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "shiny",
      "role": "Suggests"
    },
    {
      "package": "spelling",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    }
  ],
  "_owner": "pablobernabeu",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-24",
      "n": 13
    },
    {
      "week": "2026-25",
      "n": 5
    },
    {
      "week": "2026-26",
      "n": 6
    }
  ],
  "_tags": [
    {
      "name": "v0.1.0",
      "date": "2026-06-14"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "pablobernabeu",
      "count": 24,
      "uuid": 20436359
    }
  ],
  "_userbio": {
    "uuid": 20436359,
    "type": "user",
    "name": "Pablo Bernabeu",
    "followers": 29,
    "description": "As a cognitive psychologist and linguist, I conduct research and data analysis on digitally-enhanced childhood learning, language and perception.\r\n\r\nSSI Fellow "
  },
  "_downloads": {
    "count": 42,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/scopusflow"
  },
  "_devurl": "https://github.com/pablobernabeu/scopusflow",
  "_pkgdown": "https://pablobernabeu.github.io/scopusflow/",
  "_searchresults": 13,
  "_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"
  ],
  "_homeurl": "https://github.com/pablobernabeu/scopusflow",
  "_realowner": "pablobernabeu",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2026-06-20"
    }
  ],
  "_exports": [
    "as_bibliometrix",
    "as_bibtex",
    "as_ris",
    "is_scopus_plan",
    "is_scopus_records",
    "plot_scopus_comparison",
    "plot_scopus_top",
    "plot_scopus_trend",
    "read_scopus_records",
    "run_app",
    "scopus_abstract",
    "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",
    "scopus_top",
    "scopus_trend",
    "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": "as_bibtex",
      "title": "Export records to BibTeX or RIS",
      "topics": [
        "as_bibtex",
        "as_ris"
      ]
    },
    {
      "page": "scopus_records",
      "title": "Normalise raw 'Scopus' entries to a stable tidy schema",
      "topics": [
        "as.data.frame.scopus_records",
        "as_tibble.scopus_records",
        "autoplot.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": "plot_scopus_top",
      "title": "Plot the most frequent values in a record set",
      "topics": [
        "autoplot.scopus_top",
        "plot_scopus_top"
      ]
    },
    {
      "page": "plot_scopus_trend",
      "title": "Plot a publication trend",
      "topics": [
        "autoplot.scopus_trend",
        "plot_scopus_trend"
      ]
    },
    {
      "page": "run_app",
      "title": "Launch the scopusflow app",
      "topics": [
        "run_app"
      ]
    },
    {
      "page": "scopus_abstract",
      "title": "Retrieve abstracts and richer metadata",
      "topics": [
        "scopus_abstract"
      ]
    },
    {
      "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": "scopus_top",
      "title": "Most frequent values in a record set",
      "topics": [
        "scopus_top"
      ]
    },
    {
      "page": "scopus_trend",
      "title": "Annual publication counts for a query",
      "topics": [
        "scopus_trend"
      ]
    },
    {
      "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/pablobernabeu/scopusflow/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/pablobernabeu/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": "analysing-a-literature.Rmd",
      "filename": "analysing-a-literature.html",
      "title": "Analysing and visualising a literature",
      "engine": "knitr::rmarkdown",
      "headings": [
        "What is in a record set",
        "How a literature grows",
        "Reading the fuller record",
        "Beyond five thousand records"
      ],
      "created": "2026-06-20 15:36:20",
      "modified": "2026-06-22 19:58:01",
      "commits": 3
    },
    {
      "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",
        "Into a reference manager",
        "Handing off to science mapping",
        "Saving the working set"
      ],
      "created": "2026-06-14 14:35:32",
      "modified": "2026-06-22 14:53:56",
      "commits": 3
    },
    {
      "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-14 13:47:22",
      "modified": "2026-06-14 14:35:32",
      "commits": 2
    },
    {
      "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-14 14:35:32",
      "modified": "2026-06-14 14:35:32",
      "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-13 20:43:47",
      "modified": "2026-06-20 22:20:30",
      "commits": 4
    },
    {
      "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-14 13:47:22",
      "modified": "2026-06-22 19:58:01",
      "commits": 3
    },
    {
      "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-14 14:35:32",
      "modified": "2026-06-20 22:20:30",
      "commits": 2
    },
    {
      "source": "using-the-app.Rmd",
      "filename": "using-the-app.html",
      "title": "Using the code-free app",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Launching the app",
        "Demo mode",
        "Describing and sizing a search",
        "Fetching, with a live terminal",
        "The reproducible code panel",
        "Reading the results",
        "Comparing topics",
        "Exporting"
      ],
      "created": "2026-06-22 19:58:01",
      "modified": "2026-06-22 19:58:01",
      "commits": 1
    }
  ],
  "_score": 5.193124598354462,
  "_indexed": true,
  "_nocasepkg": "scopusflow",
  "_universes": [
    "pablobernabeu"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.3.0",
      "date": "2026-06-22T22:10:07.000Z",
      "distro": "noble",
      "commit": "57c8da1a14fa9cd0cdc7d04d2362f62024a4b9ef",
      "fileid": "c30709592a07ba026ac236c1d8ca1f166283d82cd604a450b4679d43097e7943",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pablobernabeu/actions/runs/27987131643"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.3.0",
      "date": "2026-06-22T22:10:08.000Z",
      "distro": "noble",
      "commit": "57c8da1a14fa9cd0cdc7d04d2362f62024a4b9ef",
      "fileid": "c8125ad6cd42d2235e4424853ef3d137f35b19b63eeb2c0e260c4a2ece6923f5",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pablobernabeu/actions/runs/27987131643"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.3.0",
      "date": "2026-06-22T22:09:54.000Z",
      "commit": "57c8da1a14fa9cd0cdc7d04d2362f62024a4b9ef",
      "fileid": "8d369174f0cf87b68be21be7b53d3e96691ffad91a0a0f9f77951d62f6ef9fa6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pablobernabeu/actions/runs/27987131643"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.3.0",
      "date": "2026-06-22T22:09:39.000Z",
      "commit": "57c8da1a14fa9cd0cdc7d04d2362f62024a4b9ef",
      "fileid": "8134417a92d0f8681265672759ddccfb3b970610138408da22470c3e64a60cc8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pablobernabeu/actions/runs/27987131643"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.3.0",
      "date": "2026-06-22T22:10:05.000Z",
      "commit": "57c8da1a14fa9cd0cdc7d04d2362f62024a4b9ef",
      "fileid": "44715a6fba08c71005fbd66039dfdc497e77f7b15a1b2f54db2c0fb0f4809bbc",
      "status": "success",
      "buildurl": "https://github.com/r-universe/pablobernabeu/actions/runs/27987131643"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.3.0",
      "date": "2026-06-22T22:09:44.000Z",
      "commit": "57c8da1a14fa9cd0cdc7d04d2362f62024a4b9ef",
      "fileid": "f04368e189f8e5a78b124e20517a457102fd1a45e24c50cf936b4d0aaa0e77ba",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pablobernabeu/actions/runs/27987131643"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.3.0",
      "date": "2026-06-22T22:09:12.000Z",
      "commit": "57c8da1a14fa9cd0cdc7d04d2362f62024a4b9ef",
      "fileid": "07b33d563d130a53d543ebe1f11e4711d84cf16f4142c4e7e4bc2d9744cd2bcc",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pablobernabeu/actions/runs/27987131643"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "0.3.0",
      "date": "2026-06-22T22:09:11.000Z",
      "commit": "57c8da1a14fa9cd0cdc7d04d2362f62024a4b9ef",
      "fileid": "cd881f515fce73c9fa461299454d4ca4f8033d45793979b22155d0f0da8a3f55",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pablobernabeu/actions/runs/27987131643"
    }
  ]
}