text:
Provides data structures and methods for measuring, coding, and analysing text within text corpora. The package allows for manual as well computer aided coding on character, token and text pair level.
R code: 1625
C++ code: 112
test code: 1010
Provides data structures and methods for manual as wells as automated R based text comparison and text as well as change coding.
This software was created as part of the "Institutional Design in Western European Democracies" research project, funded by DFG (Deutsche Forschungsgemeinschaft), lead by Ulrich Sieberer and based at University Konstanz.
MIT + file LICENSE
Peter Meissner firstname.lastname@example.com [aut, cre] Ulrich Sieberer email@example.com [cph] University of Konstanz firstname.lastname@example.com [cph]
Meißner P (2016). diffrprojects: Projects for Text Version Comparison and Analytics in R. R package version 0.1.12, <URL: https://github.com/petermeissner/diffrprojects>.
Sieberer U, Meißner P, Keh J and Müller W (2016). "Mapping and Explaining Parliamentary Rule Changes in Europe: A Research Program." Legislative Studies Quarterly, 41(1), pp. 61-88. ISSN 1939-9162, doi: 10.1111/lsq.12106 (URL: http://doi.org/10.1111/lsq.12106), <URL: http://dx.doi.org/10.1111/lsq.12106>.
BibTex for citing
stable CRAN version
(stable) development version
standard_repos <- options("repos")$reposinstall.packages( "diffrprojects", repos = c(standard_repos, "https://petermeissner.github.io/drat/"))library(rtext)
Note, that this package uses a Contributor Code of Conduct. By participating in this project you agree to abide by its terms: http://contributor-covenant.org/version/1/0/0/ (basically this should be a place where people get along with each other respectfully and nicely, because it's simply more fun that way for everybody)
Contributions are very much welcome, e.g. in the form of:
For those in a hurry here is a very brief
# loading packagelibrary(diffrprojects) # the first chapter of Robinson Crusoe from three different sourcesrcs <- rtext:::testfile(pattern="rc.*ch1.txt", full.names = TRUE) # creating a new projectdp <- diffrproject$new() # setting optionsdp$options$verbose <- FALSE # adding texts to the corpusdp$text_add(text_file = rcs)dp$text_data(1) %>% head(11)
## i char name## 1 1 T rc_1_ch1.txt## 2 2 h rc_1_ch1.txt## 3 3 e rc_1_ch1.txt## 4 4 rc_1_ch1.txt## 5 5 P rc_1_ch1.txt## 6 6 r rc_1_ch1.txt## 7 7 o rc_1_ch1.txt## 8 8 j rc_1_ch1.txt## 9 9 e rc_1_ch1.txt## 10 10 c rc_1_ch1.txt## 11 11 t rc_1_ch1.txt
# linking the files (which file should be compared to which)dp$text_link()dp$link %>% as.data.frame()
## from to link## 1 rc_1_ch1.txt rc_2_ch1.txt rc_1_ch1.txt~rc_2_ch1.txt## 2 rc_2_ch1.txt rc_3_ch1.txt rc_2_ch1.txt~rc_3_ch1.txt
# calculating text alignmentsdp$text_align(tokenizer=text_tokenize_words)dp$alignment[[1]] %>% head(30)
## alignment_i token_i_1 token_i_2 distance type from_1 to_1 from_2 to_2## 1 1 1 1932 0 no-change 1 3 10326 10328## 2 2 2 NA 7 deletion 5 11 NA NA## 3 3 3 NA 9 deletion 13 21 NA NA## 4 4 4 NA 5 deletion 23 27 NA NA## 5 5 5 1932 0 no-change 30 32 10326 10328## 6 6 6 NA 4 deletion 34 37 NA NA## 7 7 7 87 0 no-change 39 41 513 515## 8 8 8 NA 10 deletion 43 52 NA NA## 9 9 9 57 0 no-change 54 55 355 356## 10 10 10 3 0 no-change 57 64 15 22## 11 11 11 4 0 no-change 66 71 24 29## 12 12 12 85 0 no-change 74 75 497 498## 13 13 13 1 0 no-change 77 82 1 6## 14 14 14 2 0 no-change 84 88 8 12## 15 15 15 1520 0 no-change 92 95 8187 8190## 16 16 16 NA 5 deletion 97 101 NA NA## 17 17 17 3667 0 no-change 103 104 19215 19216## 18 18 18 263 0 no-change 106 108 1495 1497## 19 19 19 51 0 no-change 110 112 328 330## 20 20 20 NA 3 deletion 114 116 NA NA## 21 21 21 57 0 no-change 118 119 355 356## 22 22 22 NA 6 deletion 121 126 NA NA## 23 23 23 NA 8 deletion 128 135 NA NA## 24 24 24 50 0 no-change 137 138 325 326## 25 25 25 51 0 no-change 140 142 328 330## 26 26 26 NA 6 deletion 144 149 NA NA## 27 27 27 NA 6 deletion 151 156 NA NA## 28 28 28 87 0 no-change 158 160 513 515## 29 29 29 513 0 no-change 162 165 2853 2856## 30 30 30 306 0 no-change 167 171 1724 1728
To create a diffrproject we use the diffrproject creator object - it´s simply an object with a function that knows how to create a project.
Creating a project looks like this:
## Warning: package 'rtext' was built under R version 3.3.2
dp <- diffrproject$new()
Et violà - we created a first, for now empty, project that we will use throughout the tutorial.
To get a better idea about what this thing called diffrproject really is, you can consult its help page which gives a broad overview over its capabilities:
Another way is to call the ls() method. This will present us with a data frame listing, all fields where data is stored and all the methods (aka object specific functions) of our diffrprojects instance. Those methods and fields located in private are not for the user to mess around with while non-private (self aka public) data fields can be read by the user and public methods can be triggered by the user to manipulate the data or retrieve data in a specific format.
## name where class## 1 execute_load private function## 2 hash private function## 3 hashed private function## 5 prepare_save private function## 4 hashes private list## 9 alignment_data self alignment_data_list, list## 6 alignment self alignment_list, list## 21 link self alignment_list, list## 7 alignment_add self function## 8 alignment_code self function## 10 alignment_data_full self function## 11 alignment_data_set self function## 12 alignment_delete self function## 13 clone self function## 14 debug self function## 15 export_csv self function## 16 export_sqlite self function## 17 get self function## 18 import_csv self function## 19 import_sqlite self function## 20 initialize self function## 22 load self function## 23 ls self function## 24 message self function## 27 save self function## 29 text_add self function## 30 text_align self function## 31 text_code self function## 32 text_code_alignment_token self function## 33 text_code_regex self function## 34 text_data self function## 35 text_data_inherit self function## 36 text_delete self function## 37 text_link self function## 38 text_meta_data self function## 39 tokenize_text_data_lines self function## 40 tokenize_text_data_regex self function## 41 tokenize_text_data_words self function## 42 warning self function## 25 meta self list## 26 options self list## 28 text self list
The base R class() function furthermore reveals from which classes the diffrproject class inherits:
## [1] "diffrproject" "dp_inherit" "dp_align" "dp_export" ## [5] "rtext_loadsave" "dp_base" "R6_rtext_extended" "R6"
Our diffrproject (
dp) has one method called
text_add() that allows to add texts to the project. Basically the method can be used in three different flavors: adding character vectors, adding texts stored on disk, or by adding rtext objects (see rtext package: https://CRAN.R-project.org/package=rtext; rtext objects are the way individual texts are represented within diffrprojects). For each of these used cases there is one option:
rtext; respectively.
Below are shown examples using each of these methods:
adding text files
test_file1 <- stringb:::test_file("rc_1_ch1.txt")test_file2 <- stringb:::test_file("rc_2_ch1.txt")dp$text_add(text_file = c(test_file1, test_file2) )
adding rtext objects
test_file <- stringb:::test_file("rc_1_ch1.txt")rt <- rtext$new( text_file = test_file)dp$text_add(rtext = rt)
adding character vectors
test_file1 <- stringb:::test_file("rc_1_ch1.txt")test_file2 <- stringb:::test_file("rc_2_ch1.txt")cv <- ""cv[1] <- text_read(test_file1, NULL)cv[2] <- text_read(test_file2, NULL)dp$text_add(text = cv)
In the last case make sure to put each text in one separate line. Functions like readLines() or text_read() read in texts such that each line corresponds to one element in a character vector. With e.g. text_read()'s tokenize parameter to NULL the text will be read in as one long string.
Now is a good time to mention a feature of diffrprojects that comes in handy: All functions that do not explicitly extract data (those usually have some 'get' as part of their name) do return the object itself so that one can pipe together a series of method calls.
Consider the following example where we initiate a new diffrprojects instance and add two texts in just one pipe:
dp <- diffrproject$ new()$ text_add(text_version_1, name = "version1")$ text_add(text_version_2, name = "version2") length(dp$text)
## [1] 2
If we want to get some general overview about the texts gathered in our project, we can use the text_meta_data() method to do so. The method has no parameters and returns a data.frame with several variables informing us about its source, length, encoding used for storage, and its name.
## text_file character encoding sourcetype name## 1 <NA> 479 UTF-8 text version1## 2 <NA> 539 UTF-8 text version2
If you want to have a look at your texts you may do so by using the text's own text_show methods. Per default this method only shows the first 500 characters, but it can be set to higher numbers as well.
## This part of the## document has stayed the## same from version to## version. It shouldn't## be shown if it doesn't## change. Otherwise, that## would not be helping to## compress the size of the## changes.## ## This paragraph contains## text that is outdated.## It will be deleted in the## near future.## ## It is important to spell## check this dokument. On## the other hand, a## misspelled word isn't## the end of the world.## Nothing in the rest of## this paragraph needs to## be changed. Things can## be added after it.##
## This is an important## notice! It should## therefore be located at## the beginning of this## document!## ## This part of the## document has stayed the## same from version to## version. It shouldn't## be shown if it doesn't## change. Otherwise, that## would not be helping to## compress anything.## ## It is important to spell## check this document. On## the other hand, a## misspelled word isn't## the end of the world.## Nothing in the rest of## this paragraph needs to## be changed. Things can## be added after it.## ## This paragraph contains## important new additions## to this document.
Similar to the text_meta_data() method we can access the projects meta data via data fields meta and options. But contrary to the text_meta_data() method that gathers data from all the texts within the project and does not allow for manipulation of the data, the data fields allow reading and writing.
First let us have a look and thereafter turn off the message notification service:
getting data fields
## $verbose## [1] TRUE## ## $warning## [1] TRUE## ## $ask## [1] TRUE
setting data fields
dp$options$verbose <- FALSE
(note, ask is deprecated and only remains for compatibility reasons but has no function anymore)
Now it's time to have a look at the projects meta data. It tells us when the project was created, which path to use for SQLite exports, which path to use for saving data as in RData format and what is the projects id. The id is a hash of a time stamp as well as session information which should ensure uniqueness across space and time.
All these values can be manipulated by the user to her liking.
## $ts_created## [1] "2016-11-06 11:58:37 UTC"## ## $db_path## [1] "./diffrproject.db"## ## $file_path## [1] ""## ## $project_id## [1] "2e88babb177638e5f4368a2c8fe3fb5f"
dp$meta$file_path = "./diffrproject.RData"
Of cause we can not only add texts but delete them from the project as well. For this purpose there is the text_delete() method.
Let's just add two texts and delete one by providing its index number and the second by providing its name to the text_delete() method.
dp$text_add(text = "nonesense", "n1")dp$text_add(text = "nonesense", "n2") dp$text_delete(3)dp$text_delete("n2") length(dp$text)
## [1] 2
## [1] "version1" "version2"
The purpose of diffrprojects is to enable data collection on the difference of texts. Having filled a project with various texts, there are endless possibilities to form pairs of text for comparison and change measurement - where endless actually is equal to: $n^2-n$.
Linking can be done via the text_link method which accepts either index numbers or text names for its from and to arguments (a third argument delete will delete a specified link if set to TRUE).
dp$text_link(from = 1, to = 2)dp$text_link(from = 1, to = 2, delete = TRUE)
If no arguments are specified, text_link will link the first text to the second, the third to the fourth, the fourth to the fifths and so on.
To get an idea of what links are currently specified, we can directly access the link data field or/and ask R to transform the list found there into a data.frame.
## $`version1~version2`## $`version1~version2`$from## [1] "version1"## ## $`version1~version2`$to## [1] "version2"## ## ## attr(,"class")## [1] "alignment_list" "list"
dp$link %>% as.data.frame()
## from to link## 1 version1 version2 version1~version2
At the heart of each diffrproject lies the text_align method. This method compares two texts and tries to align parts of one text with parts of the other text. The first two arguments (
t1 and
t2) are for specifying which pair of texts to compare - if left as-is, all text pairs that are specified within the link data field will be aligned.
Text parts are arbitrary character spans defined by the
tokenizer argument. This argument expects a function splitting text into a token data.frame. If the tokenizer argument is left as-is, it will default to text_tokenize_lines function from the stringb package.
Text tokens can be pre-processed before alignment. The
clean argument allows to hand over a function tranforming a charactr vector of text tokens into their clean counterparts.
ignore arguments expects a function that is able to transform a character vector of tokens into a logical vector of same length, indicating which tokens to ignore throughout the alignment process and which to consider.
The next argument -
distance - specifies which distance metrics to use to calculate distances between strings.
Since the text_align method basically is a wrapper around diff_align you can get more information via
?diff_align and since again diff_align is a wrapper around stringdist from the stringdist package
?stringdist::stringdist and also
?stringdist::`stringdist-metrics` will provide further insights about possible metrics and how to use the rest of the arguments to text_align (these are passed through to stringdist).
Let's have an example using the Levenshtein distance to calculate distances between tokens (lines per default). Furthermore we allow the distance between two aligned tokens to be as large as 15. Tokens which do not find a partner below that distance are considered to have been deleted or respectively inserted. Tokens which find a partner with a non-zero distance which is not above the threshhold are considered changes - transformations of one token into the other.
The following shows the resulting list of alignment data.frames.
dp$text_align(distance = "lv", maxDist = 15) dp$alignment
## $`version1~version2`## alignment_i token_i_1 token_i_2 distance type from_1 to_1 from_2 to_2## 1 1 1 6 0 no-change 1 16 97 112## 2 2 2 7 0 no-change 18 40 114 136## 3 3 3 8 0 no-change 42 61 138 157## 4 4 4 9 0 no-change 63 84 159 180## 5 5 5 10 0 no-change 86 107 182 203## 6 6 6 11 0 no-change 109 132 205 228## 7 7 7 12 0 no-change 134 156 230 252## 8 8 8 13 14 change 158 181 254 271## 9 9 9 5 8 change 183 190 86 94## 11 10 10 23 0 no-change 193 215 475 497## 12 11 11 25 13 change 217 238 523 539## 13 12 12 NA 25 deletion 240 264 NA NA## 14 13 13 5 11 change 266 277 86 94## 16 14 14 14 0 no-change 280 303 274 297## 17 15 15 15 1 change 305 327 299 321## 18 16 16 16 0 no-change 329 345 323 339## 19 17 17 17 0 no-change 347 367 341 361## 20 18 18 18 0 no-change 369 389 363 383## 21 19 19 19 0 no-change 391 412 385 406## 22 20 20 20 0 no-change 414 436 408 430## 23 21 21 21 0 no-change 438 459 432 453## 24 22 22 22 0 no-change 461 478 455 472## 15 23 NA 1 20 insertion NA NA 1 20## 25 24 NA 2 17 insertion NA NA 22 38## 31 25 NA 3 23 insertion NA NA 40 62## 41 26 NA 4 21 insertion NA NA 64 84## 27 27 NA 24 23 insertion NA NA 499 521## ## attr(,"class")## [1] "alignment_list" "list"
To measure the change between those two texts we can e.g. aggregate the the distances by change type:
sum_up_changes <- function(x){ x %>% dplyr::group_by(type) %>% dplyr::summarise(sum_of_change = sum(distance))} lapply( dp$alignment, sum_up_changes)
## $`version1~version2`## # A tibble: 4 × 2## type sum_of_change## <chr> <dbl>## 1 change 47## 2 deletion 25## 3 insertion 104## 4 no-change 0
Now let us put some data into our diffrproject.
The most basic method to do so is simply called text_code. Text_code takes up to five arguments (the first three are mandatory), where one specifies the text to be coded (
text, either by index number or by name), how the variable to store the information is called (
x), and the index number or a vector of those indicating which characters of the text should be coded. The last two parameters are optional and specify which value the variable should hold (
val) and at which hierarchy level the coding is placed (
hl, higher or equal hierarchy levels will overwrite existing codings of lower hierarchy level for the same text, character span, and variable).
dp$text_code(text = 1, x = "start", i=1:5, val = TRUE, hl = 0)dp$text_code(text = "version2", x = "start", i=1:5, val = TRUE, hl = 0)
The text_code method is quite verbose and in most cases more suited to be accessed by a machine or algorithm than by a human. Therefore, there are three other methods to code text: text_code_regex, text_code_alignment_token, text_code_alignment_token_regex.
The text_code_regex method allows to search for text patterns and code a whole pattern instead of assigning codes character by character - the
i argument of text_code gets replaced by a
pattern argument. The in addition further arguments can be passed to the pattern search functions via
... - see e.g.
?grep for possible further arguments and https://stat.ethz.ch/R-manual/R-devel/library/base/html/regex.html for a description of regular expressions in R.
In this example we are searching for the word "it" in text 1 and code each instance.
dp$text_code_regex(text = 1, x = "it", pattern = "\\bit\\b", ignore.case=TRUE)
Another variant of coding text is by using alignment tokens. Having alignment data availible, this allows for selecting: link, alignment and text while the other arguments from above stay the same.
# having a look at alignment number 4dp$alignment[[1]][4,]
## alignment_i token_i_1 token_i_2 distance type from_1 to_1 from_2 to_2## 4 4 4 9 0 no-change 63 84 159 180
# coding text connected by alignment number 4dp$text_code_alignment_token( link = 1, alignment_i = 4, text1 = TRUE, text2 = TRUE, x = "token_coding", val = 4, hl = 0)
The most basic way to get text data is to use the text_data method. This method will go through all or only selected texts, gather all the data stored there and put it into a neat data.frame where name identifies the text from which the data comes per name, char informs us about the character that was coded, and i refers to the characters position within the text. All other variables hold the data we added during the examples above.
dp$text_data(text = 1) %>% head()
## i char start it token_coding name## 1 1 T TRUE NA NA version1## 2 2 h TRUE NA NA version1## 3 3 i TRUE NA NA version1## 4 4 s TRUE NA NA version1## 5 5 TRUE NA NA version1## 6 63 v NA NA 4 version1
The usage of text_data has its merits but often one is more interested in text data aggregated to a specific level. The following three aggregation functions offer a solution to this problem: tokenize_text_data_lines, tokenize_text_data_words, and tokenize_text_data_regex. These three methods make use of the similiary named methods provided by the rtext package.
One important thing to keep in mind is that using these methods implies aggregating several data values on character level into one data value at token level. Therefore there has to be some aggregation function to be involved. The default is to use the value that occurs most often on character level, if more than one distinct values occur more than once the first is choosen.
The aggregation function can be changed to whatever function the user seems appropriate by passing it to
aggregate_function - as long as it reduces a vector of values into a vector with only one value.
join argument allows to decide how text and data are joined into the resulting data.frame - left: all token, right: all data, full: token with or without data and data with or without token.
dp$tokenize_text_data_lines( text = 1, join = "right", aggregate_function = function(x){ paste(x[1:3], collapse = ",") })
## token_i from to token is_token start it token_coding name## 1 1 1 16 This part of the TRUE TRUE,TRUE,TRUE NA,NA,NA NA,NA,NA version1## 2 4 63 84 version. It shouldn't TRUE NA,NA,NA NA,NA,NA 4,4,4 version1## 3 5 86 107 be shown if it doesn't TRUE NA,NA,NA NA,NA,NA NA,NA,NA version1## 4 12 240 264 It will be deleted in the TRUE NA,NA,NA NA,NA,NA NA,NA,NA version1## 5 14 280 303 It is important to spell TRUE NA,NA,NA NA,NA,NA NA,NA,NA version1## 6 22 461 478 be added after it. TRUE NA,NA,NA NA,NA,NA NA,NA,NA version1
Having aligned two texts via token pairs another functionality of diffrprojects becomes availible: text coding inheritance via no-change tokens. This means that text codings can get copied to those tokens they are aligned with, given that they are considered the same - i.e. the distance equals zero and the change type therefore is no-change.
To show this feature we use the text_inherit method and we will start with a fresh example. A new project with two texts. The first text gets some codings, then they are aligned, and in a last step codings are transfered from one text to the other via the text_data_inherit method.
dp <- diffrproject$new()$ text_add(text_version_1)$ text_add(text_version_2)$ text_code_regex( text = 1, x = "test1", pattern = "This part.*?change", val = "inherited" )$ text_code_regex( text = 1, x = "test2", pattern = "This part.*?change", val = "inherited" ) dp$tokenize_text_data_lines(1)
## token_i from to token is_token test1 test2 name## 1 1 1 16 This part of the TRUE inherited inherited noname_1## 2 2 18 40 document has stayed the TRUE inherited inherited noname_1## 3 3 42 61 same from version to TRUE inherited inherited noname_1## 4 4 63 84 version. It shouldn't TRUE inherited inherited noname_1## 5 5 86 107 be shown if it doesn't TRUE inherited inherited noname_1## 6 6 109 132 change. Otherwise, that TRUE inherited inherited noname_1## 7 7 134 156 would not be helping to TRUE <NA> <NA> noname_1## 8 8 158 181 compress the size of the TRUE <NA> <NA> noname_1## 9 9 183 190 changes. TRUE <NA> <NA> noname_1## 10 10 193 215 This paragraph contains TRUE <NA> <NA> noname_1## 11 11 217 238 text that is outdated. TRUE <NA> <NA> noname_1## 12 12 240 264 It will be deleted in the TRUE <NA> <NA> noname_1## 13 13 266 277 near future. TRUE <NA> <NA> noname_1## 14 14 280 303 It is important to spell TRUE <NA> <NA> noname_1## 15 15 305 327 check this dokument. On TRUE <NA> <NA> noname_1## 16 16 329 345 the other hand, a TRUE <NA> <NA> noname_1## 17 17 347 367 misspelled word isn't TRUE <NA> <NA> noname_1## 18 18 369 389 the end of the world. TRUE <NA> <NA> noname_1## 19 19 391 412 Nothing in the rest of TRUE <NA> <NA> noname_1## 20 20 414 436 this paragraph needs to TRUE <NA> <NA> noname_1## 21 21 438 459 be changed. Things can TRUE <NA> <NA> noname_1## 22 22 461 478 be added after it. TRUE <NA> <NA> noname_1
dp$ text_link()$ text_align()$ text_data_inherit( link = 1, direction = "forward" ) dp$tokenize_text_data_lines(2)
## token_i from to token is_token test1 test2 name## 1 1 1 20 This is an important TRUE <NA> <NA> noname_2## 2 2 22 38 notice! It should TRUE <NA> <NA> noname_2## 3 3 40 62 therefore be located at TRUE <NA> <NA> noname_2## 4 4 64 84 the beginning of this TRUE <NA> <NA> noname_2## 5 5 86 94 document! TRUE <NA> <NA> noname_2## 6 6 97 112 This part of the TRUE inherited inherited noname_2## 7 7 114 136 document has stayed the TRUE inherited inherited noname_2## 8 8 138 157 same from version to TRUE inherited inherited noname_2## 9 9 159 180 version. It shouldn't TRUE inherited inherited noname_2## 10 10 182 203 be shown if it doesn't TRUE inherited inherited noname_2## 11 11 205 228 change. Otherwise, that TRUE inherited inherited noname_2## 12 12 230 252 would not be helping to TRUE <NA> <NA> noname_2## 13 13 254 271 compress anything. TRUE <NA> <NA> noname_2## 14 14 274 297 It is important to spell TRUE <NA> <NA> noname_2## 15 15 299 321 check this document. On TRUE <NA> <NA> noname_2## 16 16 323 339 the other hand, a TRUE <NA> <NA> noname_2## 17 17 341 361 misspelled word isn't TRUE <NA> <NA> noname_2## 18 18 363 383 the end of the world. TRUE <NA> <NA> noname_2## 19 19 385 406 Nothing in the rest of TRUE <NA> <NA> noname_2## 20 20 408 430 this paragraph needs to TRUE <NA> <NA> noname_2## 21 21 432 453 be changed. Things can TRUE <NA> <NA> noname_2## 22 22 455 472 be added after it. TRUE <NA> <NA> noname_2## 23 23 475 497 This paragraph contains TRUE <NA> <NA> noname_2## 24 24 499 521 important new additions TRUE <NA> <NA> noname_2## 25 25 523 539 to this document. TRUE <NA> <NA> noname_2
Diffrprojects also allow for storing and loading project to and from disk.
# save to filedp$save(file = "dp_save.RData") # remove objectrm(dp) # create new object and load saved data into new objectdp <- diffrproject$new()dp$load("dp_save.RData")dp$tokenize_text_data_lines(2)
## token_i from to token is_token test1 test2 name## 1 1 1 20 This is an important TRUE <NA> <NA> noname_2## 2 2 22 38 notice! It should TRUE <NA> <NA> noname_2## 3 3 40 62 therefore be located at TRUE <NA> <NA> noname_2## 4 4 64 84 the beginning of this TRUE <NA> <NA> noname_2## 5 5 86 94 document! TRUE <NA> <NA> noname_2## 6 6 97 112 This part of the TRUE inherited inherited noname_2## 7 7 114 136 document has stayed the TRUE inherited inherited noname_2## 8 8 138 157 same from version to TRUE inherited inherited noname_2## 9 9 159 180 version. It shouldn't TRUE inherited inherited noname_2## 10 10 182 203 be shown if it doesn't TRUE inherited inherited noname_2## 11 11 205 228 change. Otherwise, that TRUE inherited inherited noname_2## 12 12 230 252 would not be helping to TRUE <NA> <NA> noname_2## 13 13 254 271 compress anything. TRUE <NA> <NA> noname_2## 14 14 274 297 It is important to spell TRUE <NA> <NA> noname_2## 15 15 299 321 check this document. On TRUE <NA> <NA> noname_2## 16 16 323 339 the other hand, a TRUE <NA> <NA> noname_2## 17 17 341 361 misspelled word isn't TRUE <NA> <NA> noname_2## 18 18 363 383 the end of the world. TRUE <NA> <NA> noname_2## 19 19 385 406 Nothing in the rest of TRUE <NA> <NA> noname_2## 20 20 408 430 this paragraph needs to TRUE <NA> <NA> noname_2## 21 21 432 453 be changed. Things can TRUE <NA> <NA> noname_2## 22 22 455 472 be added after it. TRUE <NA> <NA> noname_2## 23 23 475 497 This paragraph contains TRUE <NA> <NA> noname_2## 24 24 499 521 important new additions TRUE <NA> <NA> noname_2## 25 25 523 539 to this document. TRUE <NA> <NA> noname_2
library(diffrprojectswidget)dp_table(dp, 1, height = 800, width = "100%")```
<div id="htmlwidget-12a40978df0f1fcc8402" style="width:100%;height:800px;" class="dp_table html-widget"></div><script type="application/json" data-for="htmlwidget-12a40978df0f1fcc8402">{"x":{"alignment":{"alignment_i":[1,23,2,24,3,25,4,26,5,27,6,7,8,9,10,11,12,13,28,14,15,29,16,17,18,19,20,21,22,30,31],"token_i_1":[1,null,2,null,3,null,4,null,5,null,6,7,8,9,10,11,12,13,null,14,15,null,16,17,18,19,20,21,22,null,null],"token_i_2":[6,1,7,2,8,3,9,4,10,5,11,12,null,null,23,null,null,null,13,14,null,15,16,17,18,19,20,21,22,24,25],"distance":[0,20,0,17,0,23,0,21,0,9,0,0,24,8,0,22,25,12,18,0,23,23,0,0,0,0,0,0,0,23,17],"type":["no-change","insertion","no-change","insertion","no-change","insertion","no-change","insertion","no-change","insertion","no-change","no-change","deletion","deletion","no-change","deletion","deletion","deletion","insertion","no-change","deletion","insertion","no-change","no-change","no-change","no-change","no-change","no-change","no-change","insertion","insertion"],"from_1":[1,null,18,null,42,null,63,null,86,null,109,134,158,183,193,217,240,266,null,280,305,null,329,347,369,391,414,438,461,null,null],"to_1":[16,null,40,null,61,null,84,null,107,null,132,156,181,190,215,238,264,277,null,303,327,null,345,367,389,412,436,459,478,null,null],"from_2":[97,1,114,22,138,40,159,64,182,86,205,230,null,null,475,null,null,null,254,274,null,299,323,341,363,385,408,432,455,499,523],"to_2":[112,20,136,38,157,62,180,84,203,94,228,252,null,null,497,null,null,null,271,297,null,321,339,361,383,406,430,453,472,521,539]},"alignment_vars":["alignment_i","token_i_1","token_i_2","distance","type","from_1","to_1","from_2","to_2"],"text1":"This part of the\ndocument has stayed the\nsame from version to\nversion. It shouldn't\nbe shown if it doesn't\nchange. Otherwise, that\nwould not be helping to\ncompress the size of the\nchanges.\n\nThis paragraph contains\ntext that is outdated.\nIt will be deleted in the\nnear future.\n\nIt is important to spell\ncheck this dokument. On\nthe other hand, a\nmisspelled word isn't\nthe end of the world.\nNothing in the rest of\nthis paragraph needs to\nbe changed. Things can\nbe added after it.\n","text2":"This is an important\nnotice! It should\ntherefore be located at\nthe beginning of this\ndocument!\n\nThis part of the\ndocument has stayed the\nsame from version to\nversion. It shouldn't\nbe shown if it doesn't\nchange. Otherwise, that\nwould not be helping to\ncompress anything.\n\nIt is important to spell\ncheck this document. On\nthe other hand, a\nmisspelled word isn't\nthe end of the world.\nNothing in the rest of\nthis paragraph needs to\nbe changed. Things can\nbe added after it.\n\nThis paragraph contains\nimportant new additions\nto this document.","alignment_data":{},"alignment_data_vars":[],"alignment_text1_data":{},"alignment_text2_data":{},"alignment_text_data_vars":[],"options":[]},"evals":[],"jsHooks":[]}</script><!--/html_preserve--> ```rlibrary(diffrprojectswidget)dp_vis(dp, 1, height = 300)
The methods and data fields of diffrprojects can be categorized into five realms - cursive: methods; (parentheses): private; rest: data:
Meta is a list with only a few items providing/storing general information for the whole project - i.e. time stamp the project was created, path to store data, path to export data, an project id.
Text is a list of rtext instances. Each rtext instance stores text's actual text as data gathered on the text.
The text_data method will return a data.frame containing all text data, while tokenize_text_data_xxx methods will aggregate text data to specific token levels: words, lines or user defined patterns.
Link is a list of links between texts. Link defines for which text combination alignments should be calculated. Each list item hold a from and to field which stores the names of texts to be aligned. The method to create links is text_link, it also allows to delete specific links.
Link data can be transformed to one big data.frame via: as.data.frame function.
Alignment is a list of data.frames. Each alignment list item stores which part of one text (character span) is connected to which part of another text (character span).
The list of alignments can be transformed to one big data.frame via: as.data.frame function.
Alignment_data is a list of dataframes.
Diffrprojects has two other packages it relies heavily on and one package that adds further features.
Rtext is a package providing a data structure and accompanying methods to handle texts / strings / characters as well as data bound to these texts / strings / characters. All string manipulations are based upon the stringb package. All diffrproject texts are actually rtext instances. Unfortunate you cannot yet manipulate rtext objects once they are part of a diffrproject and expect that data on the relation between texts (i.e. alignment and alignment_data) gets updated as well - hence manipulating texts might lead to inconsistencies in alignments and alignment_data.
A strategy to implement such a feature would be to extend rtext in such a way that text manipulation methods would pass change information to a list of call back functions. Furthermore, diffrprojects need two methods that allow for handling shifts in the character sequences of texts. Those update methods can then be passed to rtext instances once they become part of a diffrproject. Then whenever e.g. some characters are deleted, alignments as well as alignment data touching these character spans get deleted as well and character span information for all other alignments get shifted by the appropriate amount.
For those preferring a version using stringi/stringr - go ahead - since rtext and diffrprojects provide tests for all respectively for all vital parts and stringb copied the function naming scheme from stringr anyways, this should be a small matter.
Stringb is a package providing convenience functions for string handling and manipulation using R's own regular expression engine. All string manipulations are based upon the stringb package.
In addition stringb provides very flexible text tokenization functions that are very much in line with the needs of diffrprojects.
This package enhances diffrprojects by providing HTMLwidgets for visualizing diffrproject data: as interactive table or as interactive graph.
HTMLwidgets (see: http://www.htmlwidgets.org/) are a framework that allows for interactive, web technology based graphics that are furthermore easily integrate able into e.g. R-shiny (http://shiny.rstudio.com/) applications.
Diffrprojects is written in object oriented programming style because it seemed adequate to do so. Why? Because in OOP in comparison to functional programming one does more stuff like in-place-modification of data, data and its modifiers (methods) come in one big bundle, it´s easier to work on the current state of the object / to only allow consistent states of the object. Yeap everything here could have done with FP as well - please go ahead.
The downside of using OOP in R is that what happens becomes much more intrasparent and harder to reason about - I am sorry for that.
Classes are object blueprints - a schema that describes how an object of this class should look like. Classes might be objects too, but they are not the objects they describe. To get an object instance of an object - a manifestion of the idea of the object described in the class - one has to explicitly translate execute the instructions led out in the class, e.g. via:
diffrproject$new(), or
R6 is a package that provides a framework that makes it very, very easy to build objects in R that are more like things known from traditional all purpose programming languages like Java or C++.
Methods are exactly like functions, only that they are not floating around loosely in your global environment or elsewhere, but are bound to specific instances of an object. So there is not one text_add function that can be used with any diffrproject, but there is one specific text_add method for each instance of an diffrproject. This sounds quite strange, right? Why the duplication? Well, with that you can e.g. pass this method around, hand it over to a function that calls it or put it into another object maybe that than can decide to use it or not. A silly example:
dp1 <- diffrproject$new()add_text_to_dp1 <- dp1$text_add add_text_to_dp1("ahhh")add_text_to_dp1("behhh")add_text_to_dp1("cehhh") names(dp1$text)
## [1] "noname_1" "noname_2" "noname_3"


text:
Human emotions, such as anxiety, depression, fear, joy, and laughter, profoundly affect psychological and physiological processes. These emotions form a set of basic, evolved functions that are shared by all humans. Laughter is part of a universal language of basic emotions that all humans recognize. Health care providers and educators may utilize the power of laughter to improve health and enhance teaching and learning. This is an important consideration because teaching is not just about content: it is also about forming relationships and strengthening human connections. In this context, when used effectively, humor is documented to build relationships and enhance performance. Specifically, humor improves student performance by attracting and sustaining attention, reducing anxiety, enhancing participation, and increasing motivation. Moreover, humor stimulates multiple physiological systems that decrease levels of stress hormones, such as cortisol and epinephrine, and increase the activation of the mesolimbic dopaminergic reward system. To achieve these benefits, it is important to use humor that is relevant to the course content and not disparaging toward others. Self-effacing humor illustrates to students that the teacher is comfortable making mistakes and sharing these experiences with the classroom. In this brief review, we discuss the history and relationship between humor, laughing, learning, and health with an emphasis on the powerful, universal language of laughter.
- creativity
- self-esteem
- emotion
- psychophysiological
in 1964, norman cousins was diagnosed with ankylosing spondylitis, a degenerative disease causing the breakdown of collagen. The disorder caused constant pain and suffering and was accompanied with a poor prognosis of only a few months to live. Cousins served as an Adjunct Professor at University of California–Los Angeles, where he conducted research on the biochemistry of human emotions, which he long believed were the keys to success in resisting and fighting illness. He often expressed his belief that, since negative emotions lead to negative physiology, then positive emotion, such as humor, can lead to positive physiology. As examples, chronic stress persistently elevates levels of stress hormones, including epinephrine and cortisol. Chronic stress also increases the susceptibility to blood clots. Together, these physiological responses to stress increase the risk for cardiovascular and other diseases (52). Importantly, the positive emotions of humor and laughter decrease the risk for stress-related diseases (33).
With his strong beliefs in the power of human emotions and his dire prognosis, Cousins decided to take his treatment into his own hands. He convinced his physicians to prescribe an intravenous dose of vitamin C that was well above the normal therapeutic level, and, as an adjunct to this therapy, he watched humorous movies and television shows to induce laughter as a consistent part of his treatment. Mirthful laughter markedly reduced his pain and relieved stress. "10 minutes of laughter gave me 2 hours of pain free sleep," Cousins said, "laughter produced a natural body anesthesia." Cousins' humor-induced treatment saved his life and allowed him to live and prosper for nearly 25 additional years. Cousins and his remarkable results are a testament to the positive psychophysiological impact created by the emotions of humor and mirthful laughter and have been documented in a book he authored, Anatomy of an Illness as Perceived by the Patient (15).
In addition to the therapeutic benefits, scientists have investigated the impact of humor on teaching and learning. The results from numerous scientific studies conducted over the past half-century by Professors Robert R. Provine (http://provine.umbc.edu), Lee S. Berk (http://www.llu.edu/pages/faculty/directory/faculty.html?uid=lberk), Ronald A. Berk (http://www.ronberk.com), Sophie Scott (http://www.icn.ucl.ac.uk/Staff-Lists/MemberDetails.php?FirstName=Sophie&LastName=Scott), and others document that humor and laughter promote learning (38).
Humor and laughter may not directly cause learning; however, humor creates an environment that promotes learning. Evidence documents that appropriate humor, and humor that relates to course material, attracts and sustains attention and produces a more relaxed and productive learning environment (2). Humor also reduces anxiety, enhances participation, and increases motivation (55).
Humor has positive physiological effects, such as decreasing stress hormones like epinephrine and cortisol and increasing the activation of the mesolimbic dopaminergic reward system (3a, 45). Furthermore, teaching is about relationships, and humor builds bonds as well as brains, by strengthening the relationship between student and teacher. This effect may increase interactions with student and teacher, as well as student and peers, and draw out more introverted students (14, 38). In this brief review, we discuss the history and relationship between humor, laughing, learning, and health, with an emphasis on the powerful, universal language of laughter.
History of humor in medicine.
Humor, laughter, learning, and health have a long and successful, interwoven legacy that has persisted for centuries and played an important role in human culture since the beginning of recorded time. The benefits of humor and laughter are even referenced in the bible, Book of Proverbs 17:22 (NIV), where it states: "A cheerful heart is good medicine, but a crushed spirit dries up the bones," indicating that, in the 10th century, people understood that a joyful spirit has positive therapeutic effects, while the absence of joy may make you ill.
There are many additional historic illustrations of the confluence of humor and medicine. For example, ancient Greek physicians, as an adjunct to therapy, prescribed a visit to the hall of comedians as an important part of the healing process (36). Similarly, early Native Americans utilized the powerful impact of humor and laughter in healing as traditional medicine men incorporated the services of clowns to inspire laughter (18).
During the 14th century, French surgeon Henri de Mondeville used humor to distract patients from the pain endured during surgery as well as a therapy to aid recovery. Mondeville (13) supported this practice in a book he authored, Cyrurgia, stating, "Let the surgeon take care to regulate the whole regimen of the patient's life for joy and happiness allowing his relatives and special friends to cheer him and by having someone tell him jokes." The English parson and scholar Robert Burton extended this practice by using humor to treat psychiatric disorders in the 16th century, which was discussed in his book, The Anatomy of Melancholy (10). During the same time Martin Luther, a German priest, also used humor to treat psychiatric disorders as a critical component of pastoral counselling (58). Luther advised individuals with depression not to isolate themselves, but to surround themselves with friends who could joke and make them laugh (58).
These examples clearly document the long and successful history of the use of humor in medicine. However, although the therapeutic benefits of humor were well accepted and persisted for centuries, there was limited empirical evidence supporting the mechanisms mediating humor's positive impact. The lack of empirical evidence limited its acceptance and use by caregivers. As stated in the report on scientific literacy of the American Association for the Advancement of Science, "A hypothesis that cannot in principle be put to the test of evidence may be interesting, but it is not likely to be scientifically useful" (1). This all changed in the 20th century when pioneering investigators examined the psychophysiological mechanisms of humor.
William F. Fry was a pioneering investigator who pursued laughter and healing as a field of study and created the term gelotology, the study of laughter (11). As a professor of Psychology at Stanford University, he was one of the first investigators to apply for public funding for humor research (11). Unfortunately, his application was not awarded due to funding restrictions brought about by the deficits created during the Vietnam War (11). However, despite the lack of funding, his research moved forward, and he published several landmark and influential studies on the physiological processes that occur during laughter, including "The respiratory components of mirthful laughter" (25) and "The biology of humor" (22). Using a pulse oximeter, he investigated the change in oxygen saturation after 3 min of continuous laughter. Although there was no change in oxygen saturation, laughter resulted in increased ventilation, increased muscle activity, increased minute volume, and the creation of forceful exhalation that could mobilize and remove pulmonary secretions (25). Fry's pioneering work provided evidence and mechanistic insights for the positive physiological impact of humor, which paved the path for future investigation (19–21, 23–25).
It is now well documented and generally accepted that human emotions interact with the mind and body in complex and powerful ways that impact our health. Just consider the complex and powerful placebo effect produced by an inactive drug that is effective due to the patient's belief in that treatment. Believing in something and laughing both establish a positive impact, and it is this positive feeling that may improve health. Furthermore, basic human emotions, such as anxiety, depression, fear, joy, and laughter, profoundly impact physiological processes. These emotions form a set of basic, evolved functions that are shared by all humans (51). Many of us realize, from our personal experiences, that emotions alter heart rate, blood pressure, sweating, sleep patterns, and bowel movements. In addition, although not directly perceivable, emotions also impact our immune function. Specifically, pioneering studies document a powerful connection between emotional status and the immune and neuroendocrine system (3, 3a, 4, 17, 41).
The field of psychoneuroimmunology, which examines the complex interactions between the nervous and immune system, began in the 1970s. At the beginning, the new field of study was considered controversial. However, substantial evidence now supports the belief that the human emotions, the mind, and body communicate through a complex flow of hormones, cytokines, and neuropeptides (57). The increased scientific evidence supporting the emotion-mind-body relationship clearly documents that mood, thoughts, and feelings have a profound impact on our immune system and general health (42).
Lee S. Berk performed pioneering studies regarding psychoneuroimmunology and the influence of humor on the hypothalamus-pituitary-adrenal axis and the sympathetic nervous system (3a, 4). Berk and colleagues established the term "eustress" and defined it as a positive emotional state (3a). The investigators examined the impact of laughter-induced eustress on cortisol and catecholamine concentrations, which are products of both the hypothalamus-pituitary-adrenal axis and the sympathetic nervous system. Humor reduced cortisol and catecholamine levels as well as increased the production of antibodies, constituents of the adaptive immune system, as well as endorphins, the body's natural pain killers (3a). Berk's pioneering research provided important mechanistic insights and links for the therapeutic benefits of humor for positive psychophysiological responses.
In addition to Berk and colleagues, Robert R. Provine had an important role in the study of laughter, learning, and behavior. Provine is a neuroscientist and professor of psychology at the University of Maryland, Baltimore County. He is well known for his use of novel methods to study uncommon behaviors, including laughter, hiccupping, and sneezing (http://provine.umbc.edu/biography/). Provine's work is documented in his books, Curious Behavior: Yawning, Laughing, Hiccupping, and Beyond (49) and Laughter: A Scientific Investigation (50), as well as in over 50 peer-reviewed reports, magazine articles, and book chapters. Provine's research has been influential and has further legitimized laughter research as an important field of study.
Hunter (Patch) Adams also committed his life to understanding the benefits of humor and laughter in medicine. Starting in the early 1970s, while attending medical school, Adams introduced fun and laughter into the hospital setting and put into practice the idea that "healing should be a loving human interchange, not a business transaction" (31). Around the same time, the not-for-profit Big Apple Circus started performing in hospitals with professional clowns in attempts to cheer up patients and make the environment more fun and caring. In 1986 they developed, and officially made public, a training program for therapeutic hospital clowns (31). Their message and techniques spread worldwide and was immortalized in the Hollywood feature film on Patch Adams starring Robin Williams. This movie provided the therapeutic hospital clowns an extraordinary level of exposure and public recognition.
More recent studies conducted by Michael Miller, director of the Center for Preventive Cardiology at the University of Maryland Medical Center, provided additional mechanistic insights into the positive, physiological impact of humor. Miller and colleagues documented that laughter is linked to the healthy function of blood vessels (44). Specifically, the investigators documented that mental stress negatively impacts the endothelium by causing vasoconstriction, an inflammatory response and possibly the buildup of cholesterol, potentially leading to coronary artery disease (44). His studies also documented that, during laughter, the endothelium facilitates vasodilation and an increase in blood flow.
The pioneers noted above are only a few of the many investigators examining the health benefits of humor and laughter. There is a long history documenting that humor is effective in the treatment and prevention of illness; however, somewhere along the way humor lost its vital role in treating the mind, body, and spirit. It took the pioneering work of Cousins, Fry, Berk, Provine, and others to reestablish the notion that humor and laughter impact us in many positive ways and should be considered in a holistic approach to treating the entire person. Since their findings, research has been extended to understand the positive effects of humor and laughter on teaching and learning.
The history of humor and learning.
Teaching is not just about content; it is also about being a performer. The content must do more than educate; it must also entertain, because teaching is a performance art. In the classroom, the teacher has the responsibility to communicate as well as engage and entertain. In this context, numerous scientific studies conducted over the past half-century have documented that humor and laughter promote learning by reducing stress, anxiety, and tension, while increasing self-esteem, alertness, creativity, and memory (38). Specifically, humor attracts and sustains attention and increases students' motivation to focus on class material, all of which aid in the learning process (2). As an example, Zillman and colleagues reported that humor was a useful stratagem to attract the attention of young children and suggested that educators use recurrent, short bursts of humor to attract and sustain their students' interest (59). It has also been documented, however, that not all types of humor are effective. For example, Kaplan and Pascoe argued that humor must be relevant to the lecture material to promote learning (2). To support this notion, the investigators conducted an experiment where college students received a lecture that employed relevant humor or one that used no humor. Their findings suggested that humor improved learning of the lecture material up to 6 wk after the material was taught when the humor used was relevant to the lecture topic (34). In contrast, inappropriate humor, or humor that was not relevant to class material, had a negative impact on student learning (2).
Ziv and colleagues performed multiple experiments and published numerous works, including: The Psychology of Humor (60), and "Teaching and learning with humor: experiment and replication" (61). In reference to the latter, Ziv and colleagues assigned two groups of students enrolled in a statistics course to a humor or nonhumor group. Each group was taught by the same professor, and the humor used was relevant to the class material and delivered in an "optimal" dosage of three to four humorous activities per lesson (60). The humor group outperformed the nonhumor group on the final exam by 10%. To further support his thesis, he replicated these results using a different teacher, a different subject, and a different set of students and obtained similar results (61).
Ronald A. Berk, a pioneer of humor research, from Johns Hopkins University (1976–2006), has published more than 150 articles regarding humor, laughter, and learning. Berk taught biostatistics, a class often considered dry, difficult, and uninteresting by many students, creating a major challenge for inspiring and motivating his students. Berk thought humor may be the key to facilitate learning of this difficult subject. His rationale for using humor was published in his renowned book, Humor as an Instructional Defibrillator: Evidence-based Techniques in Teaching and Assessment. (5). In his work, Berk asked, "Why should we use humor in the classroom? There are two classroom applications. First, it can improve your connection with your students. The moment you walk to the front of the room there is a disconnection because of your age, your title, your educational level, and your cholesterol level. Second, humor can bring dead, boring content to life." To overcome the challenge of teaching "dead, boring content," Berk successfully used humor in his classes (54). The key to Berks method, he stated, is using humor to enhance otherwise dull statistical methodology by tapping into students' multiple intelligences and learning styles in a way that forces them to think in divergent and real-life ways (5).
Although the study of humor as a teaching tool is a relatively new area of investigation, spanning only approximately one-half century, there have been many studies documenting its powerful impact (5). The work conducted by investigators, including Zillman, Ziv, Berk, and others have focused a positive light upon the use of humor for teaching and learning and has established several important principles.
Specifically, humor has an emotional impact that reduces anxiety and stress, improves self-esteem, increases motivation, produces a higher perceived quality of life, and increases class performance (40, 41). Humor also promotes an appropriate, comfortable, and honest relationship with student (14, 38).
Building bonds with humor.
Teaching is about forming relationships and making and strengthening human connections (14). An examination of over 800 meta-analyses on the factors impacting achievement in school-aged students revealed that constructive student-teacher relationships have a large and positive impact on students' academic success (32). In fact, the strength of the student-teacher relationships has a greater impact on student success than socioeconomic status (32). This is an important consideration because educators convey many hidden messages that relate to the kind of atmosphere they wish to foster in their classroom. Through their body language and overall manner in which they address their students, they set the stage for teaching and learning (38).
Laughter is part of a universal language of basic emotions that all humans share (51). In fact, basic emotions, such as amusement, anger, fear, and sadness, are shared by all humans (51). When people share laughter, there is a special connection between them. By creating positive emotional and social connections, using humor may lower defenses and establish rapport, and students may be better able to focus and attend to the information being presented (38). In fact, Pollio and Humphreys (48) reported that the social connection created between the teacher and the student was key to effective teaching. This may be especially useful when teaching subjects that are perceived by students to be difficult and therefore anxiety provoking (6). Thus, when used effectively, classroom humor is documented to build relationships and increase performance. Specifically, based on student evaluations of the course and the instructor, humor has been shown to create stronger bonds between student and teacher and a more positive environment, promoting an enhanced learning atmosphere (29).
Humor also serves as a coping mechanism, and it has been reported that people who see the amusing side of problems are more capable of coping with stress (8). As an example, when students have a higher predisposition to communicate humor, they cope better with stressful situations. Thus using humor in the classroom as a coping mechanism may allow students to deal with stress and be better equipped to focus and stay motivated, which will ultimately lead to a greater overall educational experience (2).
As noted above, the use of humor correlates positively with student evaluations (9). Specifically, Bryant and colleagues have shown that teachers received higher evaluations and were seen as having better delivery and more effective when they used humor (2). It is also well documented that one of the most desirable qualities students wish instructors to provide is a sense of humor (12). Taken together, student evaluations of the course and the instructor provide strong evidence that humor is an effective tool to build student-teacher bonds and improve the overall classroom environment (35).
When using humor, it is important to use humor that is appropriate and not disparaging toward others. Rather than looking for people or issues to make fun of, teachers should make fun of themselves! Self-effacing humor illustrates to students that the teacher is comfortable making mistakes and sharing these experiences with the classroom. However, it is important to remember that it is never appropriate to make fun of people in an offensive or diminishing way or address sensitive issues such as race, sex/gender, or religion (38). Furthermore, sometimes attempts at comedy can be disruptive. For example, students may still be pondering jokes that they don't understand after the teacher has moved on; or witticisms may be so funny that students continue to discuss them after the instructor has moved on (38).
Humor in our classroom takes many forms, and, while some of it is spontaneous, much of it is planned. For example, we show segments of clinically relevant and scientifically accurate but hilarious videos of emesis (https://www.youtube.com/watch?v=uNRzq-DcDzg), lactose intolerance (https://www.youtube.com/watch?v=09QIVM_JunQ), heart attack (https://www.youtube.com/watch?v=viK121c8iZI), electrocardiogram (https://www.youtube.com/watch?v=gKCh-5ooLP8), and many others. We also attempt shock and awe activities like "drinking urine" (39) and having a foot race with students up and down the stairs in the large lecture hall during the physiology of activity section. We also use fun demonstrations and experiments (16), and we toss tootsie rolls at anyone who has dozed off! Playing music in the classroom before class and during class breaks also creates a welcoming atmosphere and unifying community (43, 46). These activities attract and sustain attention and promote laughter and learning.
Theories of the psychophysiological benefits of humor.
Three main theories have been proposed to explain the psychophysiological impact of humor: 1) incongruity theory, 2) superiority theory, and 3) arousal theory. Incongruity theory states that a surprise or inconsistency is a necessity for humor (2). According to this theory, people are able to understand humor because of their ability to resolve the inconsistency.
Superiority theory dates back to the writings of Plato and Aristotle and suggests that laughter arises from the feeling of superiority experienced from belittling others (2). An example is to tease, laugh at, or joke about (someone) in a mocking or unkind way and experience laughter.
Arousal theory, as described by Banas, "intellectualizes humor as a complex interaction between emotion and cognition" (2), suggesting that "humor and laughter are a combination of a cognitive appraisal with optimal physiological arousal" (7).
Two additional theories have evolved from the three main theories to help explain why educational strategies that use appropriate humor promote learning and increase retention: 1) incongruity-resolution theory, and 2) disposition theory. The incongruity-resolution theory, which stems from the incongruity theory, clarifies how "humorous messages are cognitively processed," whereas the disposition theory, which stems from the superiority theory, "addresses affective elements of humorous messages" (56).
The incongruity-resolution theory describes humor as a binary process where the perceived incongruity or inconsistency in the humorous message must initially be recognized and then precisely understood by the receiver for the joke to be recognized as funny (37). This theory accepts that people enter social situations with a predetermined set of expectations regarding behavior that is appropriate or inappropriate. In order for messages to be perceived as humorous, the receiver of the humor must be able to identify an incidence that is inconsistent with his or her expectations for that specific moment. The perceived inconsistency may be recognized as humorous; however, if the inconsistency is difficult to understand, then the comedy will not be understood or possibly not recognized at all. Accordingly, the initial step in understanding how humor is processed involves an awareness or acknowledgment of the inconsistent stimulus (56). According to this theory, the lone recognition of the humorous stimulus is not sufficient: it must also be resolved and understood. Therefore, when a professor uses humor, there are three possible outcomes. The first outcome being that the incongruity is not recognized by the students; thus the students are not aware of any humor. A second plausible outcome is that the inconsistency is recognized, but it is not properly decoded or resolved by the student. In this situation, the students are often confused because they recognized that a joke was made, but they do not understand it. In the final possibility, the humorous content is resolved and makes sense to the student and, therefore, is perceived as amusing (56).
Disposition theory provides an explanation for how humorous messages can affect individuals' mood, feelings, and attitudes (56). According to this theory, the "target" of the humor is important. Individuals will describe the humor as appropriate and possibly funny or inappropriate based on whether the targeted subject is associated with them personally or not. As an example, Frymier and colleagues (28) suggested that students differentiate between humor that is appropriate or inappropriate based on whether they understood the humor, meaning the incongruity was recognized and resolved, and whether the "target" is someone or something with which they associate. Disposition theory helps to explain why students consider attempts at humor that attack personal groups or clubs (religions, fraternities, etc.) as inappropriate, but humor that ridicules course material or the teacher as appropriate.
Although these theories provide an explanation for the benefits of humor and illuminate key components of its effectiveness, the theories do not fully provide an explanation for the relationship between instructional humor and learning (2). The elaboration likelihood model of persuasion (ELM) describes how individuals process persuasive messages and provides an explanation of the relationship between humor and learning (56). Petty and Cacioppo reported that individuals have a greater propensity to engage in elaboration when they are motivated to think deeply about a topic and have the intellectual capacity to process the message (47). Therefore, for students to elaborate on course material, they must be both motivated and able to process the instructional information. The investigators also recognized topic relevance as influencing motivation to process content (47). Applying the ELM to an instructional context suggests that, when students perceive the humorous messages as relevant, they experience increased motivation to process the material, resulting in greater retention and understanding of the course material. Other investigators support the suggestion that a positive relationship exists between students' perception of content relevance and motivation to elaborate (26).
A powerful link between incongruent information and motivation to elaborate has also been proposed (56). Specifically, due to an increase in motivation, incongruent information results in increased processing and recall (27). Individuals notice the incongruent information more easily because it does not correspond with their expectations. Therefore, when instructors use humor, students will notice, focus, and concentrate because humor, by definition, usually includes incongruity that must be resolved. If students participate in elaboration of the course content, then, predictably, learning will increase. Humor has frequently been labeled as an attention-gaining strategy, as well as a way of creating a positive impact (30). According to the ELM, instructional messages that appropriately incorporate humor and cause students to notice, focus, and concentrate will enhance students' ability to process the course material, resulting in greater retention and knowledge.
A relatively new theory, proposed by Wanzer and colleagues (56), the Instructional Humor Processing Theory (IHPT), helps to explain why particular types of humor may impact student learning in a positive or negative manner. The theory predicts that specific types of instructional humor will cause student learning, but others will not.
As discussed earlier, when humor is used, the incongruity must be recognized in order for the students to perceive humor. When the inconsistency is recognized by the student, it must then be resolved, or the student will be confused and distracted from the content being taught. Furthermore, a message perceived as humorous may cause either a positive or negative impact. Specifically, appropriate forms of humor will lead to a positive impact, and humor that is inappropriate will create a negative impact (28, 56). The IHPT predicts that, when appropriate humor is used and creates a positive impact, students will be motivated and more inclined to elaborate on the instructional message (56). However, humor that is not understood or humor that is inappropriate will create a negative impact, which is likely to decrease student motivation as well as create distractions that will be detrimental to the learning process. As an example, work by Wanzer and colleagues supported the prediction that appropriate humor enhanced learning because it increased both motivation and the ability to process (56).
To provide an explanation for the relationship between classroom humor and learning, numerous theories have been discussed. The evolution and convergence of these theories has begun to provide a basis for the use of humor and its impact on learning. Research conducted over the last 4 decades has provided evidence that the use of appropriate humor leads to learning (2).
Conclusion and summary.
Human emotions, such as anxiety, depression, fear, joy, and laughter, profoundly impact psychological and physiological processes. These emotions form a set of basic, evolved functions that are shared by all humans (51). Health care providers and educators may take advantage of powerful emotions to improve health and enhance learning. In the classroom, laughter promotes learning, discovering, and creativity by motivating students to engage with new and puzzling events. Humor also develops a more constructive relationship with students and encourages positive feelings about teaching and learning. Humor can initiate social interchanges and conversations with difficult students and inspire them to respond in a positive way both socially and academically. Thus, by creating a positive emotional and social connection, humor may lower defenses and establish rapport, and students may be better able to focus and attend to the information being presented.
No conflicts of interest, financial or otherwise, are declared by the author(s).
B.M.S., H.L.L., T.R., and S.E.D. conceived and designed research; B.M.S., H.L.L., T.R., and S.E.D. prepared figures; B.M.S., H.L.L., T.R., and S.E.D. drafted manuscript; B.M.S., H.L.L., T.R., and S.E.D. edited and revised manuscript; B.M.S., H.L.L., T.R., and S.E.D. approved final version of manuscript.
- Copyright © 2017 the American Physiological Society

subset: commoncrawl


text:
Legal Status
10/14/1994 Issue
Document Issue Table of Contents
Agriculture Department
- See Animal and Plant Health Inspection Service 1
- See Grain Inspection, Packers and Stockyards Administration 1
Uncategorized Document
Pacific Northwest Generating Cooperative; Finding of No Significant Impact
Air Force Department
Uncategorized Document
Tenders of ServiceAir Freight Forwarders
Animal and Plant Health Inspection Service
Uncategorized Document
Rangeland Grasshopper Cooperative Management Program Environmental Impact Statement
Coast Guard
Uncategorized Document
Fire Protection Regulations (CGD 83-026)
Commerce Department
Uncategorized Document
Agency Form Under Review by the Office of Management and Budget
Business Development Center Applications: Queens, New York
Business Development Center Applications: Sacramento, California
Business Development Center Applications: Williamsburg, Brooklyn, New York
Intent To Conduct a Public Meeting on the Preparation of a Draft Environmental Impact Statement for the Proposed St. Lawrence River National Estuarine Research Reserve, New York
Committee for Purchase From People Who Are Blind or Severely Disabled
Uncategorized Document
Procurement List; Additions
Procurement List; Proposed Additions and Deletions
Comptroller of the Currency
Uncategorized Document
Capital; Capital Adequacy Guidelines
Defense Department
- See Air Force Department 1
Uncategorized Document
Community College of the Air Force Meeting
Executive Session of the Chief of Engineers Environmental Advisory Board
Intent To Prepare a Draft Environmental Impact Statement (DEIS) for a Proposed Storm Damage Reduction and Beach Erosion Control Project at Dewey Beach and Rehoboth Beach, Sussex County, Delaware
Intent To Prepare a Supplemental Environmental Impact Statement (SEIS) for Aquatic Plant Management at Lake Seminole, Florida-Georgia- Alabama
Termination of the Preparation of a Draft Environmental Impact Statement Supplement (DEIS, No. 4), Red River Waterway, Louisiana, Texas, Arkansas, and Oklahoma and Related Projects, Shreveport, Louisiana to Daingerfield, Texas, Re-Evaluation
Education Department
Uncategorized Document
President's Board of Advisors on Historically Black Colleges and Universities; Notice of Meeting
Training of Interpreters for Individuals Who Are Deaf and Individuals Who Are Deaf-Blind; Final Rule DEPARTMENT OF EDUCATION
Employment and Training Administration
Uncategorized Document
Davis Great Guns Logging Company a/k/a Tucker Wireline Services, Inc.; Amended Certification Regarding Eligibility To Apply for Worker Adjustment Assistance
Energy Department
Uncategorized Document
ANR Pipeline Company; Informal Settlement Conference
CNG Transmission Corporation; Informal Settlement Conference
National Fuel Gas Supply Corporation; Tariff Filing
Northwest Pipeline Corporation; Informal Settlement Conference
Notice of Cases Filed During the Week of July 29 Through August 5, 1994
Notice of Cases Filed; Week of July 1 Through July 8, 1994
Notice of Cases Filed; Week of July 15 Through July 22, 1994
Notice of Cases Filed; Week of July 22 Through July 29, 1994
Notice of Issuance of Proposed Decision and Order During the Week of September 12 Through September 16, 1994
Notice of Issuance of Proposed Decision and Order; Week of September 19 Through September 23, 1994
Ozark Gas Transmission System; Informal Settlement Conferences
Transcontinental Gas Pipe Line Corporation; Proposed Changes in FERC Gas Tariff
Environmental Protection Agency
Uncategorized Document
1,2,4-Trichlorobenzene; Response to Citizens Petition
Clean Air Act Advisory Committee; Emergency Notice of Public Meeting
Clean Air Act Proposed Interim Approval of Operating Permit Program; State of Colorado
Environmental Impact Statements and Regulations; Availability of EPA Comments
Environmental Impact Statements; Availability
Operating Permits Program Interim Approval Criteria
Protection of Stratospheric Ozone
Utah; Final Authorization of State Hazardous Waste Management Program
Federal Aviation Administration
Uncategorized Document
Airworthiness Directives; Jetstream Aircraft Limited (Formerly British Aerospace, Regional Airlines Limited) HP137 Mk1, Jetstream Series 200, and Jetstream Models 3101 and 3201 Airplanes
Federal Communications Commission
Uncategorized Document
Broadcast Services
Cable Television Act of 1992
Federal Energy Regulatory Commission
Uncategorized Document
California Department of Water Resources; Availability of Environmental Assessment
Federal Housing Finance Board
Uncategorized Document
Notice of Federal Home Loan Bank Members Selected for Community Support Review
Federal Maritime Commission
Uncategorized Document
Cancellation of Tariffs for Failure To Comply With Automated Tariff Filing and Information System (``ATFI'') Filing Requirements; Order To Show Cause
Financial Responsibility Requirements for Nonperformance of Transportation; Inquiry Into Alternative Forms of Financial Responsibility for Nonperformance of Transportation
Federal Register Office
Uncategorized Document
National Breast Cancer Awareness Month, 1994
Federal Reserve System
Uncategorized Document
Capital; Capital Adequacy Guidelines
The New Prosperity Banking Corporation, et al.; Formations of; Acquisitions by; and Mergers of Bank Holding Companies
Food and Drug Administration
Uncategorized Document
Antibiotic Drugs; Azithromycin for Oral Suspension
Grain Inspection, Packers and Stockyards Administration
Uncategorized Document
Prohibition on Adding Water to Grain
Health and Human Services Department
Uncategorized Document
Advisory Committee Meeting; Amendment of Notice; Correction
Agency Forms Submitted to the Office of Management and Budget for Clearance
Cardiovascular Devices; Notice of Agency Decision Not To Enforce Requirement of Premarket Approval; Replacement Heart Valve Allografts
Hybritech Inc.; Premarket Approval of TandemRegister-R, E, and ERA PSA Assays
IOLAB Corp.; Premarket Approval of the Models LI30U, LI32U, and LI41U SOFLEXSUPTM Ultraviolet-Absorbing Silicone Posterior Chamber Intraocular Lenses
Meeting of the U.S. Advisory Board on Child Abuse and Neglect
National Cancer Institute; Opportunity for a Cooperative Research Agreement (CRADA) for the Clinical Evaluation of Magnetic Resonance Imaging in Breast Cancer
National Cancer Institute; Opportunity for a Cooperative Research and Development Agreement (CRADA) for the Development of a Fluorescent Guanosine Analog To Be Used in the Visualization of Polymerase Chain Reaction (PCR) Products
National Institute of Mental Health; Cancellation of Meeting
National Institute of Mental Health; Licensing Opportunity and/or Opportunity for a Cooperative Research and Development Agreement (CRADA) for the Use of Retroviral Vectors With Gibbon Ape Leukemia Virus (GaLV) Components
Public Information Collection Requirements Submitted to the Office of Management and Budget (OMB) for Clearance
Surveillance System for Antimicrobial Resistance; Public Hearing
Temporary Deferment of Activities Relating to Medical Device Submissions
Health Care Finance Administration
Uncategorized Document
Hospice Services Under Medicare Program; Intent To Form Negotiated Rulemaking Committee
Housing and Urban Development Department
Uncategorized Document
Discrimination in Property Insurance Under the Fair Housing Act; Advance Notice of Proposed Rulemaking Notice of Extension of Public Comment Deadline
Federal Property Suitable as Facilities To Assist the Homeless
Office of Lead-Based Paint Abatement and Poisoning Prevention; NOFA for Lead-Based Paint Hazard Reduction in Priority Housing: Category I and Category II Grants: Announcement of Funding Awards
Interior Department
- See Land Management Bureau 1
Uncategorized Document
Cancellation of Proposed Withdrawal; New Mexico
Colorado; Proposed Reinstatement of Terminated Oil and Gas Lease
Conveyance of Mineral Interests in California
Issuance of Exchange Conveyance Document; New Mexico
Notice of availability of a Draft Revised Recovery Plan for the Todsen's Pennyroyal for Review and Comment
Internal Revenue Service
Uncategorized Document
Definition of Qualified Electric Vehicle, and Recapture Rules for Qualified Electric Vehicles, Qualified Clean-Fuel Vehicle Property, and Qualified Clean-Fuel Vehicle Refueling Property
International Trade Commission
Uncategorized Document
The Economic Effects of Antidumping and Countervailing Duty Orders and Suspension Agreements
Interstate Commerce Commission
Uncategorized Document
CSX Transportation, Inc.Trackage Rights ExemptionNorfolk Southern Railway Company
Finger Lakes Railway Corp.Acquisition and Operation Exemption Consolidated Rail Corporation
Grainbelt CorporationAbandonment Exemptionin Tillman County, OK
Oregon Pacific & Eastern Railway CompanyAbandonmentBetween Cottage Grove and Mosby Creek, OR
Quarterly Reports of Passenger Revenues, Expenses, and Statistics
Justice Department
Uncategorized Document
Lodging of Consent Decree Pursuant to Clean Air Act: Request for Public Comment
Notice of Lodging of Consent Decree Pursuant to the Clean Air Act; Dore & Associates Contracting, Inc.
Notice of Lodging of Consent Decree Pursuant to the Comprehensive Environmental Response, Compensation and Liability Act; Shell Oil Company, Inc., et al.
Notice of Lodging of Consent Decree Pursuant to the Comprehensive Environmental Response, Compensation, and Liability Act; Terry Shaner, et al.
Notice of Lodging of Consent Decrees; Southern Pacific Transportation Corp., et al.
Notice of Lodging of Consent Order Pursuant to the Comprehensive Environmental Response, Compensation and Liability Act; Berlin and Farro Liquid Incineration, Inc.
Labor Department
Uncategorized Document
IBM Corporation; Poughkeepsie, NY; Notice of Affirmative Determination Regarding Application for Reconsideration
Markwest Siloam Plant, South Shore, KY; Investigations Regarding Certifications of Eligibility To Apply for Worker Adjustment Assistance; Correction
McCord Winn Textron Cookeville, TN; Notice of Negative Determination Regarding Application for Reconsideration
McDonnell Douglas Helicopter Systems, Mesa, AZ; Amended Certification Regarding Eligibility To Apply for Worker Adjustment Assistance
Minimum Wages for Federal and Federally Assisted Construction; General Wage Determination Decisions
Walker Manufacturing Company, Hebron, OH; Notice of Negative Determination Regarding Application for Reconsideration
Land Management Bureau
Uncategorized Document
Documentation of Current Administrative Boundaries for Bureau of Land Management Offices; Montana, South Dakota, North Dakota
Management and Budget Office
Uncategorized Document
Grants and Cooperative Agreements With State and Local Governments; Notice OFFICE OF MANAGEMENT AND BUDGET
National Highway Traffic Safety Administration
Uncategorized Document
Anthropomorphic Test Dummy; Side Impact Protection
National Mediation Board
Uncategorized Document
Notice of Appointment of Members to the Performance Review Board
National Oceanic and Atmospheric Administration
Uncategorized Document
Groundfish of the Gulf of Alaska
South Atlantic Fishery Management Council; Meetings and Hearings
National Science Foundation
Uncategorized Document
Advisory Committee for Mathematical and Physical Sciences; Astronomy Subcommittee; Notice of Meeting
Advisory Panel for Economics, Decision and Management Sciences; Notice of Meeting
Advisory Panel for Neuroscience; Notice of Meeting
Notice of Permit Applications Received under the Antarctic Conservation Act of 1978, P.L. 95-541
Notice of Permits Issued Under the Antarctic Conservation Act of 1978
Notice of Workshop
Principal Investigators of NSF Collaboratives for Excellence in Teacher Preparation Awards; Notice of Meeting
Special Emphasis Panel in Human Resource Development; Notice of Meeting
Special Emphasis Panel in Materials Research; Notice of Meeting
Special Emphasis Panel in Systemic Reform; Notice of Meeting
Nuclear Regulatory Commission
Uncategorized Document
Commonwealth Edison Co; Notice of Withdrawal of Application for Amendment to Facility Operating License
Northeast Nuclear Energy Co.; Notice of Consideration of Issuance of Amendment to Facility Operating License and Opportunity for a Hearing
Northeast Nuclear Energy Co.; Notice of Withdrawal of Application for Amendment to Facility Operating License
Pension Benefit Guaranty Corporation
Uncategorized Document
Late Premium Payments and Employer Liability Underpayments and Overpayments; Interest Rate for Determining Variable Rate Premium; Amendments to Interest Rates
Notice and Collection of Withdrawal Liability; Adoption of New Interest Rate
Valuation of Plan Benefits in Single-Employer Plans; Valuation of Plan Benefits and Plan Assets Following Mass Withdrawal; Amendments Adopting Additional PBGC Rates
Securities and Exchange Commission
Uncategorized Document
Agency Meetings
Crown America Series Fund, Inc.
Self-Regulatory Organizations; Applications for Unlisted Trading Privileges; Notice and Opportunity for Hearing; Boston Stock Exchange, Incorporated
Self-Regulatory Organizations; Applications for Unlisted Trading Privileges; Notice and Opportunity for Hearing; Cincinnati Stock Exchange, Inc.
Self-Regulatory Organizations; National Association of Securities Dealers, Inc.; Order Approving Proposed Rule Change Relating to Receipt of Differential Compensation in Connection With Limited Partnership Rollup Transactions Under Article III, Section 34 of the Rules of Fair Practice
Self-Regulatory Organizations; Notice of Filing of Proposed Rule Change and Amendment No. 1 Thereto by the New York Stock Exchange, Inc. Relating to a Proposed Extension of the Trading Halt Provisions of Rule 80B
Self-Regulatory Organizations; Notice of Filing of Proposed Rule Change and Amendment No. 1 Thereto by the Philadelphia Stock Exchange, Inc. Relating to Extending the Circuit Breaker Pilot Program
State Department
Uncategorized Document
Determination Under Section 538 of the Foreign Operations, Export Financing, and Related Programs Appropriations Act, 1995 (Public Law 103-306)
International Joint Commission; Notice of Public Hearing
Thrift Depositor Protection Oversight Board
Uncategorized Document
Region 1 Advisory Board Meeting
Regional Advisory Board Meetings for Regions 1-6
Transportation Department
Uncategorized Document
Environmental Impact Statement; City of Healdsburg, CA
Fire Protection Regulations (CGD 83-026)
Importation of Vehicles and Equipment Subject to Federal Safety, Bumper, and Theft Prevention Standards; Registered Importers of Vehicles Not Originally Manufactured To Conform to the Federal Motor Vehicle Safety Standards
In the Matter of U.S.-Germany; Third/Fourth/Fifth Freedom Frequency Allocations for the 1995 Summer Season
Meetings of Pipeline Safety Advisory Committees
Treasury Department
- See Comptroller of the Currency 1
- See Internal Revenue Service 1
Uncategorized Document
Conduit Arrangements Regulations
United States Sentencing Commission
Uncategorized Document
Revisions to the Sentencing Guidelines for the United States Courts
Veterans Affairs Department
Uncategorized Document
Advisory Committee on Former Prisoners of War, Meeting
Advisory Committee on Women Veterans; Meeting
Veterans' Advisory Committee on Environmental Hazards; Meeting
Other Documents
Reader Aids
Documents by Agency
- Agriculture Department 3
- Air Force Department 1
- Animal and Plant Health Inspection Service 1
- Coast Guard 1
- Commerce Department 7
- Committee for Purchase From People Who Are Blind or Severely Disabled 2
- Comptroller of the Currency 1
- Defense Department 6
- Education Department 2
- Employment and Training Administration 1
- Energy Department 13
- Environmental Protection Agency 8
- Federal Aviation Administration 1
- Federal Communications Commission 2
- Federal Energy Regulatory Commission 1
- Federal Housing Finance Board 1
- Federal Maritime Commission 2
- Federal Register Office 1
- Federal Reserve System 2
- Food and Drug Administration 1
- Grain Inspection, Packers and Stockyards Administration 1
- Health and Human Services Department 16
- Health Care Finance Administration 1
- Housing and Urban Development Department 3
- Interior Department 6
- Internal Revenue Service 1
- International Trade Commission 1
- Interstate Commerce Commission 5
- Justice Department 6
- Labor Department 7
- Land Management Bureau 1
- Management and Budget Office 1
- National Highway Traffic Safety Administration 1
- National Mediation Board 1
- National Oceanic and Atmospheric Administration 2
- National Science Foundation 10
- Nuclear Regulatory Commission 3
- Pension Benefit Guaranty Corporation 3
- Securities and Exchange Commission 7
- State Department 2
- Thrift Depositor Protection Oversight Board 2
- Transportation Department 7
- Treasury Department 3
- United States Sentencing Commission 1
- Veterans Affairs Department 3
- Other Documents 1


text:
The first experience you have with pie is a magical experience. It reveals something deeply beautiful about the world you live in. Listen to this episode of the GM Word of the Week and relive that first experience.
The GM Word of the Week is produced and performed by Fiddleback of The Mad Adventurers Society and written by The Angry GM of this site right here that you are reading.


text:
Jean Pierre Aumont with his third wife Italian-born actress Marisa Pavan and his daughter Tina Aumont. Jean Pierre Aumont and Marisa Pavan got married in 1956. (Photo by Willy Rizzo/Paris Match via Getty Images)
The Wedding Day - The following scans are from Paris Match, 7th April 1956 and the video screencaps come from Getty Images. In these images we can see also Maria Pier Angeli (twin sister), Enrica Pierangeli (mother) and young aunt PAtrizia Pierangeli among other members of the Pier Angeli family.
Assorted pics from 1956 (from Diomedia and Getty Images)


text: Ashley Ahearn Algae and Puget Sound Acidification Linked By Ashley Ahearn • May 25, 2012 Photo by Ashley Ahearn / Northwest News Network The ocean absorbs a large portion of the CO2 that we release into the atmosphere from our power plants and tail pipes. But when it gets there that CO2 makes the water more acidic and less hospitable for some creatures, like shellfish. In Puget Sound some shellfish hatcheries have already lost millions of oyster larvae because of exposure to acidic water. Ocean acidification has scientists and policymakers in the Northwest concerned. Washington Governor Chris Gregoire has convened a panel on Ocean Acidification, which met this week. Ashley Ahearn reports. What Killed Orca Victoria? Some Point To Naval Tests By Ashley Ahearn • May 16, 2012 Few people know the orcas of Puget Sound as well as Ken Balcomb. A researcher with the Center for Whale Research on Washington state's San Juan Island, Balcomb has been studying the whales for more than 30 years. It takes Balcomb only a few seconds of listening to the squeaks and whistles of underwater whale recordings to recognize the different pods of orcas. In one recording, Balcomb identifies the group known as the L Pod — the family many people in the area are talking about right now. Report Inconclusive On What Killed Orca L112 By Ashley Ahearn • May 15, 2012 Cascadia Research Scientists are still trying to pinpoint the cause of death for a young female orca that washed up near Long Beach, Washington in February. The National Oceanic and Atmospheric Administration released a report today with details from the whale's necropsy. Right now scientists still aren't sure what caused the death of orca L112, also known as "Victoria". Algae Booming in Puget Sound By Ashley Ahearn • May 15, 2012 Photo by Ashley Ahearn / Northwest News Network All this warm weather is making for a lot of shiny happy people in Western Washington. Turns out the algae in the waters of Puget Sound are feeling the same way. Ashley Ahearn reports that algal blooms are making one scientist take note. New Research: Hatchery Salmon Posing Problems For Wild Stocks By Ashley Ahearn • May 14, 2012 In the early part of the 20th century, when many Northwestern rivers were dammed, fish hatcheries provided a way to keep salmon in rivers. But now an estimated 5 billion hatchery fish are released into the Pacific every year. A collection of research released Monday highlights possible concerns about how all those hatchery fish might be impacting wild stocks. Ashley Ahearn reports. Care To Borrow A Bee? By Ashley Ahearn • May 2, 2012 Photo by Ashley Ahearn / Northwest News Network Honeybees have run into some trouble. Diseases, funguses and pesticides are just some of the factors scientists believe may be contributing to the decline of these insects nation-wide. But honeybees play a critical role in pollinating everything from the Washington apple crop to the flowers in your back yard. Ashley Ahearn reports on one booming business that's bringing bees back to the urban environment. Care to borrow a bee? New Report Details Tanker Risk In Puget Sound By Ashley Ahearn • Apr 30, 2012 Twelve years ago, BP built a second dock at its Cherry Point refinery north of Bellingham, WA. But they didn't do an assessment of what that added dock capacity would mean for tanker traffic in Washington waters. Now the Army Corps of Engineers has released a long-awaited study that does just that. Ashley Ahearn reports. New Restrictions On Cruise Ship Waste Discharge For The Port Of Seattle By Ashley Ahearn • Apr 25, 2012 As the weather warms up, cruise ships will begin arriving at the Port of Seattle. More than 200 ships are scheduled to visit the port this year, bringing millions of dollars in tourist revenue. In the past those ships have also brought wastewater into Puget Sound. But this year, the regulations are a little bit stricter. Ashley Ahearn reports. New Report: Jellyfish Populations Increasing Globally By Ashley Ahearn • Apr 23, 2012 Jellyfish populations are on the rise, globally. That's according to a new study from the University of British Columbia. But, as Ashley Ahearn reports, it's too soon to say if that's the case in the Northwest. Washington Not Ready For Implications Of B.C. Pipeline Expansion By Ashley Ahearn • Apr 13, 2012 Photo credit: Ashley Ahearn / KUOW VANCOUVER, B.C. -- Canadian pipeline operators are considering expanding the line that brings oil from the Alberta Oil Sands to western British Columbia. Environmentalists and others say that raises the potential for oil spills in Northwest waters and, it involves a different type of oil. Right now the Trans Mountain pipeline moves 300,000 barrels of oil per day to an export terminal near Vancouver, B.C. If the Canadian government approves the expansion that amount could almost triple. More oil in the pipeline means more oil loaded onto large tanker ships. Those ships will eventually head out the Strait of Juan De Fuca to the Pacific. Investigation Launched Into February Orca Death By Ashley Ahearn • Apr 5, 2012 Photo credit: Wikimedia user Kalev Kevad / Wikimedia Commons Officials have launched an investigation into the death of a young female orca from a pod of the endangered marine mammals in Puget Sound. The orca washed up near Washington's Long Beach in February. The cause of her death is controversial. On The Ground In Grays Harbor By Ashley Ahearn • Apr 2, 2012 Ashley Ahearn / N3 Six ports in the Northwest are now considering building export terminals to bring American coal to Asian markets. One of those ports is Grays Harbor – west of Olympia. 5 million tons of coal could move through that port each year. If that coal is burned in places like China that would be the same as putting about two and a half million new cars on the road. But the new terminal represents much-needed jobs in this county – and that has people talking. One Thousand Acres Up For Conservation In The San Juan Islands By Ashley Ahearn • Mar 29, 2012 Photo by Ashley Ahearn / Northwest News Network OLYMPIA -- Washington Senator Maria Cantwell has introduced a bill to get one thousand acres of the San Juan Islands declared a National Conservation Area. Ashley Ahearn reports. Battling 'Red Tide,' Scientists Map Toxic Algae To Prevent Shellfish Poisoning By Ashley Ahearn • Mar 28, 2012 Public health officials have their hands full keeping your clam chowder and raw oysters safe. That's due, in part, to red tides. Red tides happen nearly every year as coastal waters warm, killing fish and poisoning shellfish along U.S. coasts. They're not actually tides; they're huge blooms of naturally occurring toxic algae. Coal Train Traffic Increase Could Be Bad News For Human Health By Courtney Flatt & Ashley Ahearn • Mar 27, 2012 Photo by Courtney Flatt / Northwest News Network BELLINGHAM, Wash. -- There are now six new export terminals proposed to be built along the Northwest coast. The goal? To bring American coal to Asia, via train and ship. If these terminals are approved that could mean more than 100 million tons of coal traveling by rail across Idaho, Washington and Oregon every year. The potential for more train traffic has public health experts concerned. EarthFix reporters Ashley Ahearn and Courtney Flatt have the story. Review Process Kicks Off For Gateway Pacific Terminal In Bellingham By Ashley Ahearn • Mar 21, 2012 Photo by Ashley Ahearn / Northwest News Network BELLINGHAM -- SSA Marine has submitted a permit application to build a bulk export terminal in Bellingham. If approved, the terminal will be large enough to handle up to 54 million metric tons per year. That could include wheat and grains but the majority will be coal. It will be delivered by train from mines in Wyoming and Montana – and then shipped out of Washington to Asian markets. Ashley Navy Looks To Renew Permits for Sonar Testing In The Northwest By Ashley Ahearn • Mar 20, 2012 Photo courtesy of US Navy 2008 Right now the Navy is allowed to use sonar for testing and training exercises off the Northwest coast and down to Northern California. There is evidence that using sonar may interfere with marine mammal behavior – and even damage hearing and cause stranding. But the Navy's use of sonar could change if it doesn't get its permits renewed by 2015. Millions Of Dollars in Geoducks Stolen From Wash. Waters By Ashley Ahearn • Feb 29, 2012 Photo credit: Katie Campbell / Photo courtesy Northwest News Network SEATTLE, Wash. -- Here's some trivia – name the natural resource that provided 28 million dollars to the state of Washington last year. Nope, not timber. Think shellfish… but not just any shellfish. Geoducks. These huge, funny-looking clams are harvested wild from below the surface of Puget Sound - and they're fetching high prices in Asia. Ashley Ahearn reports. Dealing With Derelict Vessels By Ashley Ahearn • Feb 22, 2012 Photo by Ashley Ahearn / Northwest News Network COLUMBIA RIVER, Wash. -- There are hundreds of abandoned or sunken ships in Northwest waters. These vessels can threaten navigation, human safety and the environment. But state agencies in the region are only equipped to handle part of the problem. Ashley Ahearn reports. Sun Setting On Sunset Falls? By Ashley Ahearn • Feb 15, 2012 Photo by Ashley Ahearn / Northwest News Network SKYKOMISH RIVER, Wash. -- The Skykomish is one of the only major rivers in Washington that has not been dammed for hydropower. The river runs from the Cascade Mountains and empties into Northern Puget Sound. It's a hot spot for wildlife and outdoor recreation. It could also be a hotspot for hydropower. Ashley Ahearn reports. King County Does The Numbers On Greenhouse Gas Emissions By Ashley Ahearn • Feb 13, 2012 SEATTLE - Washington's King County has released a detailed report that tallies up the total amount of Greenhouse Gases it emitted in 2008. These emissions come from homes, industry, transportation – and our personal shopping decisions. And they are changing the global climate. Mountain Goat Population Rising In Olympic National Park By Ashley Ahearn • Feb 10, 2012 Photo credit US Geological Survey There are more mountain goats in Olympic National Park than there have been for the past 20 years. That's according to a new report released today by the US Geological Survey. Ashley Ahearn reports. Pages« first ‹ previous 1 2 3 4