Skip to contents

Converts grouped contextual mappings into a long-form relational representation.

Usage

invert_contextual_grouping(x)

Arguments

x

A named list containing contextual grouping mappings.

Each list name represents a contextual grouping and each list element contains one or more associated resources.

Value

A tibble with two columns:

member

Contextually grouped resource.

group

Contextual grouping identifier.

Details

invert_contextual_grouping() is useful for transforming lightweight contextual grouping structures into tidy relational tables suitable for:

  • joins;

  • contextual reconstruction;

  • Record Set projections;

  • provenance-aware grouping workflows;

  • semantic enrichment pipelines;

  • lightweight graph construction.

The function is intentionally operational and lightweight.

It does not:

  • enforce uniqueness;

  • validate ontology semantics;

  • construct graph objects;

  • distinguish authoritative from analytical groupings;

  • or infer hierarchical relations.

The function is conceptually related to as_value_key() but produces a relational projection rather than a canonical named vector representation.

This is particularly useful for one-to-many contextual mappings, where multiple resources belong to the same contextual grouping.

The resulting relational representation may later support:

  • contextual Record Set construction;

  • semantic overlay workflows;

  • lightweight provenance analysis;

  • many-to-many reconstruction logic.

Examples


record_sets <- list(
  conceptualisation = c(
    "D:/_package/alpha",
    "D:/_markdown/alpha-methodology"
  ),
  betaR = c(
    "D:/_packages/beta",
    "D:/_packages/prebeta"
  )
)

invert_contextual_grouping(record_sets)
#> # A tibble: 4 × 2
#>   group             member                        
#>   <chr>             <chr>                         
#> 1 conceptualisation D:/_package/alpha             
#> 2 conceptualisation D:/_markdown/alpha-methodology
#> 3 betaR             D:/_packages/beta             
#> 4 betaR             D:/_packages/prebeta          

# canonical roundtrip
as_value_key(
  invert_contextual_grouping(record_sets)
)
#>                conceptualisation                conceptualisation 
#>              "D:/_package/alpha" "D:/_markdown/alpha-methodology" 
#>                            betaR                            betaR 
#>              "D:/_packages/beta"           "D:/_packages/prebeta"