{
  "_id": "6a4cdab71bd53d33d6ac2846",
  "Package": "fscontext",
  "Title": "File System Contextualisation and Record Set Reconstruction",
  "Version": "0.2.0",
  "Language": "en-GB",
  "Authors@R": "person(given = \"Daniel\",\nfamily = \"Antal\",\nemail = \"daniel.antal@dataobservatory.eu\",\nrole = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0001-7513-6760\"))",
  "Description": "Provides a provenance-aware framework for contextual\nreconstruction from file systems and related digital resource\ncollections. The package creates reproducible snapshots of\nfile-level metadata, paths, repository context, and optional\ncontent signatures. It supports contextual grouping, structural\nabstraction, temporal analysis, semantic stabilization,\nduplicate and reuse detection, and lightweight workflow\nreconstruction from file system observations. The framework\ndeliberately separates observational evidence, contextual\nabstraction, semantic interpretation, and analytical\nreconstruction, enabling reproducible workflows that can be\ninspected by reviewers. It is designed to support future\nalignment with archival and contextual knowledge representation\nmodels, including the World Wide Web Consortium Provenance\nOntology (PROV-O): Lebo et al. (2013)\n<https://www.w3.org/TR/prov-o/> and Records in Contexts\ndeveloped by the International Council on Archives Expert Group\non Archival Description (EGAD)\n<https://www.ica.org/ica-network/expert-groups/egad/records-in-contexts-ric/>.",
  "License": "GPL (>= 3)",
  "URL": "https://fscontext.dataobservatory.eu/",
  "BugReports": "https://github.com/dataobservatory-eu/fscontext/issues",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "LazyData": "true",
  "Config/roxygen2/version": "8.0.0",
  "Config/pak/sysreqs": "cmake make libicu-dev libuv1-dev libx11-dev\nzlib1g-dev",
  "Repository": "https://dataobservatory-eu.r-universe.dev",
  "Date/Publication": "2026-06-29 16:00:41 UTC",
  "RemoteUrl": "https://github.com/dataobservatory-eu/fscontext",
  "RemoteRef": "HEAD",
  "RemoteSha": "a4d9846718cc7f3ca1dbdc29bdf28f8056ea25e9",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-07-07 10:48:56 UTC",
    "User": "root"
  },
  "Author": "Daniel Antal [aut, cre] (ORCID:\n<https://orcid.org/0000-0001-7513-6760>)",
  "Maintainer": "Daniel Antal <daniel.antal@dataobservatory.eu>",
  "_user": "dataobservatory-eu",
  "_type": "src",
  "_file": "fscontext_0.2.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/945ad6fa038e2007c5c827a03afcf864af8efcc005775387bbde2a9f7ce0684a",
  "_filesize": 3222232,
  "_sha256": "945ad6fa038e2007c5c827a03afcf864af8efcc005775387bbde2a9f7ce0684a",
  "_expires": "2026-10-15T10:53:41.000Z",
  "_created": "2026-07-07T10:48:56.000Z",
  "_published": "2026-07-07T10:53:43.462Z",
  "_jobs": [
    {
      "job": 85597729989,
      "time": 169,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8135510136"
    },
    {
      "job": 85597729909,
      "time": 168,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8135509353"
    },
    {
      "job": 85597729919,
      "time": 209,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8135508496"
    },
    {
      "job": 85597729997,
      "time": 245,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8135515713"
    },
    {
      "job": 85597167746,
      "time": 190,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8135448862"
    },
    {
      "job": 85597729959,
      "time": 167,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "8135509018"
    },
    {
      "job": 85597729961,
      "time": 170,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8135510173"
    },
    {
      "job": 85597729946,
      "time": 104,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8135486874"
    },
    {
      "job": 85597729985,
      "time": 95,
      "config": "windows-release",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8135483871"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/dataobservatory-eu/actions/runs/28860360902",
  "_status": "success",
  "_upstream": "https://github.com/dataobservatory-eu/fscontext",
  "_commit": {
    "id": "a4d9846718cc7f3ca1dbdc29bdf28f8056ea25e9",
    "author": "Daniel Antal <antaldaniel@gmail.com>",
    "committer": "Daniel Antal <antaldaniel@gmail.com>",
    "message": "Merge branch 'main' of https://github.com/dataobservatory-eu/fscontext\n",
    "time": 1782748841
  },
  "_maintainer": {
    "name": "Daniel Antal",
    "email": "daniel.antal@dataobservatory.eu",
    "orcid": "0000-0001-7513-6760"
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "digest",
      "role": "Imports"
    },
    {
      "package": "fs",
      "role": "Imports"
    },
    {
      "package": "progress",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "purrr",
      "role": "Imports"
    },
    {
      "package": "dataset",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "tools",
      "role": "Imports"
    },
    {
      "package": "glue",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "magrittr",
      "role": "Imports"
    },
    {
      "package": "stringr",
      "role": "Imports"
    },
    {
      "package": "labelled",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "spelling",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "dataobservatory-eu",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-24",
      "n": 34
    },
    {
      "week": "2026-25",
      "n": 6
    },
    {
      "week": "2026-26",
      "n": 3
    },
    {
      "week": "2026-27",
      "n": 5
    }
  ],
  "_tags": [],
  "_topics": [
    "filesystem",
    "records",
    "ric"
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "antaldaniel",
      "count": 65,
      "uuid": 11824944
    }
  ],
  "_userbio": {
    "uuid": 70892628,
    "type": "organization",
    "name": "dataobservatory.eu",
    "followers": 18
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/fscontext"
  },
  "_devurl": "https://github.com/dataobservatory-eu/fscontext",
  "_pkgdown": "https://fscontext.dataobservatory.eu/",
  "_searchresults": 0,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/fscontext.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/dataobservatory-eu/fscontext",
  "_realowner": "dataobservatory-eu",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.2.0",
      "date": "2026-07-06"
    }
  ],
  "_exports": [
    "add_snapshot_context",
    "as_character",
    "as_value_key",
    "classify_operational_file_type",
    "compile_rulebook",
    "construct_structural_paths",
    "context_roots",
    "coverage_roots",
    "coverage_rules_path",
    "derive_record_set",
    "derive_structural_groups",
    "detect_generated_artifacts",
    "exclude_operational_noise",
    "invert_contextual_grouping",
    "invert_value_key",
    "is.prelabelled",
    "observe_universe",
    "observe_wacz",
    "prelabel",
    "quick_signature",
    "quick_signature_text",
    "read_snapshot",
    "recordset_df",
    "refine",
    "refine_by_rulebook",
    "save_scan",
    "scan_storage",
    "snapshot_storage",
    "snapshot_to_reconstruction_context",
    "snapshot_to_recordset_df",
    "subset_snapshot",
    "summarise_duplicates",
    "summarise_observed_activity",
    "summarize_duplicates",
    "summarize_observed_activity",
    "wacz_to_recordset_df"
  ],
  "_datasets": [
    {
      "name": "fscontextdemo_snapshot_01",
      "title": "Example filesystem snapshot 01",
      "object": "fscontextdemo_snapshot_01",
      "class": [
        "data.frame"
      ],
      "fields": [
        "storage_id",
        "person_id",
        "full_path",
        "rel_path",
        "filename",
        "stem",
        "extension",
        "type",
        "size",
        "mtime",
        "ctime",
        "atime",
        "birth_time",
        "depth",
        "links",
        "permissions",
        "quick_sig",
        "scan_time",
        "repo_root",
        "repo_rel_path",
        "git_tracked",
        "storage_path_id"
      ],
      "rows": 78,
      "table": true,
      "tojson": true
    },
    {
      "name": "fscontextdemo_snapshot_02",
      "title": "Second example filesystem snapshot",
      "object": "fscontextdemo_snapshot_02",
      "class": [
        "data.frame"
      ],
      "fields": [
        "storage_id",
        "person_id",
        "full_path",
        "rel_path",
        "filename",
        "stem",
        "extension",
        "type",
        "size",
        "mtime",
        "ctime",
        "atime",
        "birth_time",
        "depth",
        "links",
        "permissions",
        "quick_sig",
        "scan_time",
        "repo_root",
        "repo_rel_path",
        "git_tracked",
        "storage_path_id"
      ],
      "rows": 88,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "add_snapshot_context",
      "title": "Add contextual identifiers to snapshot observations",
      "topics": [
        "add_snapshot_context"
      ]
    },
    {
      "page": "as_character",
      "title": "Semantic character coercion",
      "topics": [
        "as_character"
      ]
    },
    {
      "page": "as_value_key",
      "title": "Standardize contextual semantic mappings",
      "topics": [
        "as_value_key"
      ]
    },
    {
      "page": "classify_operational_file_type",
      "title": "Classify operational file types",
      "topics": [
        "classify_operational_file_type"
      ]
    },
    {
      "page": "compile_rulebook",
      "title": "Compile a semantic refinement rulebook",
      "topics": [
        "compile_rulebook"
      ]
    },
    {
      "page": "construct_structural_paths",
      "title": "Construct recursive contextual structural paths",
      "topics": [
        "construct_structural_paths"
      ]
    },
    {
      "page": "context_roots",
      "title": "Extract normalized contextual roots",
      "topics": [
        "context_roots"
      ]
    },
    {
      "page": "coverage_roots",
      "title": "Evaluate contextual root coverage",
      "topics": [
        "coverage_roots"
      ]
    },
    {
      "page": "coverage_rules_path",
      "title": "Evaluate contextual rule coverage for structural paths",
      "topics": [
        "coverage_rules_path"
      ]
    },
    {
      "page": "derive_record_set",
      "title": "Derive contextual Record Set membership",
      "topics": [
        "derive_record_set"
      ]
    },
    {
      "page": "derive_structural_groups",
      "title": "Derive structural aggregation metadata from relative paths",
      "topics": [
        "derive_structural_groups"
      ]
    },
    {
      "page": "detect_generated_artifacts",
      "title": "Detect operationally generated or low-priority artifacts",
      "topics": [
        "detect_generated_artifacts"
      ]
    },
    {
      "page": "exclude_operational_noise",
      "title": "Exclude operational noise from analytical workflows",
      "topics": [
        "exclude_operational_noise"
      ]
    },
    {
      "page": "fscontextdemo_snapshot_01",
      "title": "Example filesystem snapshot 01",
      "topics": [
        "fscontextdemo_snapshot_01"
      ]
    },
    {
      "page": "fscontextdemo_snapshot_02",
      "title": "Second example filesystem snapshot",
      "topics": [
        "fscontextdemo_snapshot_02"
      ]
    },
    {
      "page": "invert_contextual_grouping",
      "title": "Invert contextual grouping mappings",
      "topics": [
        "invert_contextual_grouping"
      ]
    },
    {
      "page": "invert_value_key",
      "title": "Invert contextual semantic mappings",
      "topics": [
        "invert_value_key"
      ]
    },
    {
      "page": "is.prelabelled",
      "title": "Test if a vector is prelabelled",
      "topics": [
        "is.prelabelled"
      ]
    },
    {
      "page": "observe_universe",
      "title": "Construct a longitudinal observational universe",
      "topics": [
        "observe_universe"
      ]
    },
    {
      "page": "observe_wacz",
      "title": "Observe a WACZ web archive",
      "topics": [
        "observe_wacz"
      ]
    },
    {
      "page": "prelabel",
      "title": "Create a prelabelled vector",
      "topics": [
        "prelabel"
      ]
    },
    {
      "page": "quick_signature",
      "title": "Compute a fast operational signature for a file",
      "topics": [
        "quick_signature"
      ]
    },
    {
      "page": "quick_signature_text",
      "title": "Compute a fast operational signature for text",
      "topics": [
        "quick_signature_text"
      ]
    },
    {
      "page": "read_snapshot",
      "title": "Read and combine observational filesystem snapshots",
      "topics": [
        "read_snapshot"
      ]
    },
    {
      "page": "recordset_df",
      "title": "Create a semantically annotated Record Set",
      "topics": [
        "recordset_df"
      ]
    },
    {
      "page": "refine",
      "title": "Refine semantic assertions through contextual matching",
      "topics": [
        "refine"
      ]
    },
    {
      "page": "refine_by_rulebook",
      "title": "Iteratively refine semantic assertions using a rulebook",
      "topics": [
        "refine_by_rulebook"
      ]
    },
    {
      "page": "save_scan",
      "title": "Persist an observational snapshot to disk",
      "topics": [
        "save_scan"
      ]
    },
    {
      "page": "scan_storage",
      "title": "Observe a filesystem and construct a reproducible snapshot",
      "topics": [
        "scan_storage"
      ]
    },
    {
      "page": "snapshot_storage",
      "title": "Create and persist an observational snapshot of a filesystem",
      "topics": [
        "snapshot_storage"
      ]
    },
    {
      "page": "snapshot_to_reconstruction_context",
      "title": "Reconstruct a contextual observational Record Set from filesystem snapshots",
      "topics": [
        "snapshot_to_reconstruction_context"
      ]
    },
    {
      "page": "snapshot_to_recordset_df",
      "title": "Create a contextual Record Set dataset",
      "topics": [
        "snapshot_to_recordset_df"
      ]
    },
    {
      "page": "subset_snapshot",
      "title": "Subset observational filesystem Instantiations",
      "topics": [
        "subset_snapshot"
      ]
    },
    {
      "page": "summarise_duplicates",
      "title": "Summarise repeated and divergent filesystem observations",
      "topics": [
        "summarise_duplicates",
        "summarize_duplicates"
      ]
    },
    {
      "page": "summarise_observed_activity",
      "title": "Summarise observed activity from filesystem observations",
      "topics": [
        "summarise_observed_activity",
        "summarize_observed_activity"
      ]
    },
    {
      "page": "wacz_to_recordset_df",
      "title": "Create a Record Set dataset from a WACZ observation",
      "topics": [
        "wacz_to_recordset_df"
      ]
    }
  ],
  "_pkglogo": "https://github.com/dataobservatory-eu/fscontext/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/dataobservatory-eu/fscontext/raw/HEAD/README.md",
  "_rundeps": [
    "assertthat",
    "bit",
    "bit64",
    "cli",
    "clipr",
    "cpp11",
    "crayon",
    "dataset",
    "digest",
    "dplyr",
    "forcats",
    "fs",
    "generics",
    "glue",
    "haven",
    "hms",
    "ISOcodes",
    "jsonlite",
    "labelled",
    "lifecycle",
    "magrittr",
    "pillar",
    "pkgconfig",
    "prettyunits",
    "progress",
    "purrr",
    "R6",
    "readr",
    "rlang",
    "stringi",
    "stringr",
    "tibble",
    "tidyr",
    "tidyselect",
    "tzdb",
    "utf8",
    "vctrs",
    "vroom",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "structural_aggregations.Rmd",
      "filename": "structural_aggregations.html",
      "title": "From Structural Aggregations to Record Sets",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Motivation",
        "Example 1: An R package",
        "Example 2: A ZIP archive",
        "Example 3: A WACZ package",
        "Structural Aggregations and Informative Objects",
        "Structural Aggregations and RiC",
        "From Folder Hierarchies to Record Sets",
        "References"
      ],
      "created": "2026-06-29 12:36:42",
      "modified": "2026-06-29 16:00:38",
      "commits": 2
    },
    {
      "source": "prelabelled.Rmd",
      "filename": "prelabelled.html",
      "title": "Handling Semantic Ambiguity with prelabelled Vectors",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introduction",
        "A small ambiguous dataset",
        "Creating provisional semantic assertions",
        "Inspecting the prelabelled vector",
        "Semantic operationalisation",
        "A more ambiguous dataset",
        "Incremental semantic stabilization",
        "Semantic workspaces",
        "From provisional semantics to formally defined semantics"
      ],
      "created": "2026-06-13 21:14:40",
      "modified": "2026-06-13 21:14:40",
      "commits": 1
    },
    {
      "source": "intro.Rmd",
      "filename": "intro.html",
      "title": "Introduction to fscontext",
      "engine": "knitr::rmarkdown",
      "headings": [
        "What is fscontext?",
        "Context before semantics",
        "The fscontext workflow",
        "Creating a snapshot",
        "Working with example data",
        "Adding contextual information",
        "Creating Record Sets",
        "Repeated observation",
        "Semantic stabilisation",
        "Relationship to Records in Contexts",
        "Next steps"
      ],
      "created": "2026-06-13 21:14:40",
      "modified": "2026-06-29 12:36:42",
      "commits": 4
    },
    {
      "source": "recordset_df.Rmd",
      "filename": "recordset_df.html",
      "title": "Working with Record Sets",
      "engine": "knitr::rmarkdown",
      "headings": [
        "recordset_df"
      ],
      "created": "2026-06-29 12:36:42",
      "modified": "2026-06-29 12:36:42",
      "commits": 1
    }
  ],
  "_score": 4.903089986991944,
  "_indexed": true,
  "_nocasepkg": "fscontext",
  "_universes": [
    "dataobservatory-eu"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.0",
      "date": "2026-07-07T10:51:31.000Z",
      "distro": "resolute",
      "commit": "a4d9846718cc7f3ca1dbdc29bdf28f8056ea25e9",
      "fileid": "https://r2.ropensci.org/0f1ee721dc159d186ae89528dcd81c0036e22296a932cb86497ccadc82ad28fd",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/dataobservatory-eu/actions/runs/28860360902"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.2.0",
      "date": "2026-07-07T10:51:32.000Z",
      "distro": "resolute",
      "commit": "a4d9846718cc7f3ca1dbdc29bdf28f8056ea25e9",
      "fileid": "https://r2.ropensci.org/c80526171c0d99774e76c3b14236de24442f9086c7709e715d3b96ea6a27079d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/dataobservatory-eu/actions/runs/28860360902"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.2.0",
      "date": "2026-07-07T10:51:33.000Z",
      "commit": "a4d9846718cc7f3ca1dbdc29bdf28f8056ea25e9",
      "fileid": "https://r2.ropensci.org/2fccfb2174b38a45083b9a113cce3f5c7ab93f532912737ccff34ede5b92bd43",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/dataobservatory-eu/actions/runs/28860360902"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.2.0",
      "date": "2026-07-07T10:51:38.000Z",
      "commit": "a4d9846718cc7f3ca1dbdc29bdf28f8056ea25e9",
      "fileid": "https://r2.ropensci.org/b130a01e01dc225a2d9dcc95830edd9ad4484cc1af5e59ab0d435610497da17c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/dataobservatory-eu/actions/runs/28860360902"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.2.0",
      "date": "2026-07-07T10:52:00.000Z",
      "commit": "a4d9846718cc7f3ca1dbdc29bdf28f8056ea25e9",
      "fileid": "https://r2.ropensci.org/a1b09ccfa2c37ea985a74cc0ac0b7420beff47685faf126eafaad27486ef0f14",
      "status": "success",
      "buildurl": "https://github.com/r-universe/dataobservatory-eu/actions/runs/28860360902"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.2.0",
      "date": "2026-07-07T10:51:19.000Z",
      "commit": "a4d9846718cc7f3ca1dbdc29bdf28f8056ea25e9",
      "fileid": "https://r2.ropensci.org/21fa528d7a7bf51dbbd8a57ca3f171fa0204b08414a08d559ad755639fed6670",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/dataobservatory-eu/actions/runs/28860360902"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.2.0",
      "date": "2026-07-07T10:50:16.000Z",
      "commit": "a4d9846718cc7f3ca1dbdc29bdf28f8056ea25e9",
      "fileid": "https://r2.ropensci.org/21c9bda7f76ae0e54e7c66ac94641d7b33ed6b1973908df96a467e8db3263076",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/dataobservatory-eu/actions/runs/28860360902"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.2.0",
      "date": "2026-07-07T10:50:08.000Z",
      "commit": "a4d9846718cc7f3ca1dbdc29bdf28f8056ea25e9",
      "fileid": "https://r2.ropensci.org/2e3b4d5a6f9cfbf3e94a06f40a6bd0fc343720ce1168144765331ddbaba8a546",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/dataobservatory-eu/actions/runs/28860360902"
    }
  ]
}