Skip to contents

This function is for internal use, but has been exported in case it's useful for people working 'manually' with lists of justifications.

Usage

to_specList(x, types, type, idsRequired = TRUE, silent = TRUE)

Arguments

x

The list to parse.

types

The class to assign to the specification list (the justifierSpecList object to return).

type

The class to assign to each specification (in addition to justifierSpec).

idsRequired

Whether to require identifiers.

silent

Whether to be chatty or silent.

Value

A list of classes c("justifierSpecList", types) where each element is a specification of class c("justifierSpec", type).

Examples

### Specify an example text
exampleFile <-
  system.file("extdata",
              "simple-example.jmd",
              package="justifier");

### Show contents
cat(readLines(exampleFile), sep="\n");
#> This is an example of minutes that include
#> a source, an assertion, and a justification. For example, in
#> the meeting, we can discuss the assertion that sleep deprivation
#> affects decision making. We could quickly enter this assertion in
#> a machine-readable way in this manner:
#> 
#> ---
#> assertion:
#>  -
#>    id: assertion_SD_decision
#>    label: Sleep deprivation affects the decision making proces.
#>    source:
#>      id: source_Harrison
#> ---
#> 
#> Because it is important to refer to sources, we cite a source as well.
#> We have maybe specified that source elsewhere, for example in the
#> minutes of our last meeting. That specification may have looked
#> like this:
#> 
#> ---
#> source:
#>  -
#>    id: source_Harrison
#>    label: "Harrison & Horne (2000) The impact of sleep deprivation on decision making: A review."
#>    xdoi: "doi:10.1037/1076-898x.6.3.236"
#>    type: "Journal article"
#> ---
#> 
#> We can now refer to these two specifications later on, for
#> example to justify decisions we take.

### Load it with yum::load_and_simplify()
loadedMinutes <- yum::load_and_simplify(exampleFile);

### Show contents
names(loadedMinutes);
#> [1] "assertion" "source"   

### Show classes
class(loadedMinutes["assertion"]);
#> [1] "list"

### Convert to specification list
res <- to_specList(loadedMinutes["assertion"],
                   type="assertion",
                   types="assertions");
### Show classes
class(res);
#> [1] "justifierSpecList" "assertions"       

### Show original and parsed objects
loadedMinutes["assertion"];
#> $assertion
#> $assertion$id
#> [1] "assertion_SD_decision"
#> 
#> $assertion$label
#> [1] "Sleep deprivation affects the decision making proces."
#> 
#> $assertion$source
#> $assertion$source$id
#> [1] "source_Harrison"
#> 
#> 
#> 
res;
#> $assertion_SD_decision
#> $id
#> [1] "assertion_SD_decision"
#> 
#> $label
#> [1] "Sleep deprivation affects the decision making proces."
#> 
#> $source
#> $source$id
#> [1] "source_Harrison"
#> 
#> 
#> attr(,"class")
#> [1] "justifierSpec" "assertion"    
#> 
#> attr(,"class")
#> [1] "justifierSpecList" "assertions"