
This website initially launched on January 22, 2023, the birthday of Sir Francis Bacon, and in this year which marks the 400th anniversary of his masterpiece, The Advancement of Learning, one of the foundational documents of Anglo-American Civilization.
This project will perform and present, using advanced technology, a series of Experiments which will analyze the 1623 First Folio of William Shakespeare in a way not previously attempted. It will expose some of the secret messages that Sir Francis concealed for us in another of the most important documents in the history of the English Language, The First Folio of William Shakespeare. These two ultra-classic works were published only 30 days apart from each other in 1623. A coincidence? What a month for Anglo-American Civilization!


The name of Sir Francis is cryptically embedded within The First Folio, as co-author, in literally hundreds of places. This website will provide visualizations of some of these instances, which have previously been identified by others. More importantly, it will expose some of his hidden, encrypted messages in a way not seen before.
The Experiments will be performed using the entry-level tier of facilities available, for free, from Google’s Colaboratory (Colab) online service. Cloud-based Colab makes available vast computing resources to researches for free. Colab executes programs packaged as Jupyter Notebooks, which perform Data Science experiments, and, with reformatting, archive the results in a way which can be viewed as pages on a website such as this (ordinary HTML documents).
Illustrated below are the Jupyter Notebooks of the first two Experiments, in their initial forms. Final forms might still be months in the future, but these will provide an idea of how real this project’s progress is. They are coded in the Python programming language.
Decoding the ‘Prologue to Troilus and Cressida’¶
notebook_filename = 'T & C Message Decode 1623_v33.ipynb'
from google.colab import drive
drive.mount('/content/drive')
import os
import csv
import pandas as pd
import shutil
import datetime
# Project Purpose:
#
# Decoding the message secretly embedded in the text of the Shakespearen play,
#'Trolious and Cressida'
# by Sir Francis Bacon, using his Biliteral Cipher (Binary Code) as described
# in his 1623 book, The Advancement of Learning.
project_name = 'T & C Prologue Decode 1623'
# Derive input and output directories:
# Root Directory for project content on Google Drive:
content_dir = '/content/drive/MyDrive'
project_dir = content_dir + '/' + project_name
data_upload_dir = project_dir + '/text data to upload - tsv/upload/'
#Input File path (1 total):
input_filename = 'v21.tsv'
data_upload_file = os.path.join(data_upload_dir, input_filename)
#Output File Directory paths (5 total):
original_text_dir = project_dir + '/original text - csv/'
biliterals_dir = project_dir + '/biliterals - csv/'
output_data_table_dir = project_dir + '/output data table - csv/'
decoded_message_dir = project_dir + '/decoded message - csv/'
notebook_dir = project_dir + '/notebook - ipynb/'
archive_dir = project_dir + '/archive - zip/'
if os.path.isfile(data_upload_file):
print(data_upload_file)
if os.path.isdir(original_text_dir):
print(original_text_dir)
if os.path.isdir(biliterals_dir):
print(biliterals_dir)
if os.path.isdir(output_data_table_dir):
print(output_data_table_dir)
if os.path.isdir(decoded_message_dir):
print(decoded_message_dir)
if os.path.isdir(notebook_dir):
print(notebook_dir)
if os.path.isdir(archive_dir):
print(archive_dir)
import datetime
now = datetime.datetime.now()
output_filename = now.strftime("%Y-%m-%d_%H-%M-%S")
#print (output_filename)
# Decode a five bit binary word into an English Alphabet letter.
# There were 22 letters in the Elizabethan English Alphabet:
# 'I' = 'J'
# 'U' = 'V'
# therefore 5 binary digits are more than enough, 2 (exp) 5 = 32
def decode_biliteral(which):
decode = {
'aaaaa': 'a',
'aaaab': 'b',
'aaaba': 'c',
'aaabb': 'd',
'aabaa': 'e',
'aabab': 'f',
'aabba': 'g',
'aabbb': 'h',
'abaaa': 'i',
'abaab': 'k',
'ababa': 'l',
'ababb': 'm',
'abbaa': 'n',
'abbab': 'o',
'abbba': 'p',
'abbbb': 'q',
'baaaa': 'r',
'baaab': 's',
'baaba': 't',
'baabb': 'v',
'babaa': 'w',
'babab': 'x',
'babba': 'y',
'babbb': 'z'
}
which_letter = decode[which]
return which_letter
# Read the input text data from the .tsv file:
print(data_upload_file)
input_data_table = pd.read_csv(data_upload_file, sep='\t', header=None)
# De-interlace the original text from the book page text, and store it separately:
original_text = input_data_table.iloc[0::3, :]
ot_path = original_text_dir + output_filename + '.csv'
original_text.to_csv (ot_path, index = None, header=True)
#original_text
# De-interlace the biliterals (an 'a' or 'b' quintet) from the book page text, and store it separately:
biliterals = input_data_table.iloc[1::3, :]
blt_path = biliterals_dir + output_filename + '.csv'
biliterals.to_csv (blt_path, index = None, header=True)
#biliterals
# Make a copy of the input data frame, and write rows of decoded biliterals into it:
output_encoded_dataframe = input_data_table.copy(deep=True)
encoded_text_size = 0
original_text_letters = ''
for row in range(2,45,3):
for column in range(14):
letter = output_encoded_dataframe.loc[row - 2,column]
biliteral = output_encoded_dataframe.loc[row - 1,column]
which_letter = decode_biliteral(biliteral)
output_encoded_dataframe.loc[row,column] = which_letter
encoded_text_size += 5
original_text_letters += letter
odt_path = output_data_table_dir + output_filename + '.csv'
output_encoded_dataframe.to_csv (odt_path, index = None, header=True)
output_encoded_dataframe
decoded_message = ''
biliteral_values = ''
with open(decoded_message_dir + '.csv', 'w') as new_f:
for row in range(0,15,1):
for column in range(14):
biliteral = biliterals.iloc[row, column]
which_letter = decode_biliteral(biliteral)
decoded_message += which_letter
biliteral_values += biliteral
print('Encoded Text Size: ' + str(encoded_text_size))
print('Biliterals Text Size: ' + str (len(biliteral_values)))
print('Decoded Text Size: ' + str(len(decoded_message)))
print('\n')
print('Raw Decoded Message: ' + decoded_message)
Dividing the raw decoded text string into Words using spaces:¶
francis st alban descended from the mighty heroes of troy loving and revering these noble ancestors hid in his writings homers illiads and odyssey in cipher with the aeneid of the noble virgil prince of latin poets inscribing the letters to elizabeth r
Providing basic styling to the message text:¶
Francis St. Alban,
Descended from the mighty heroes of Troy,
Loving and revering these noble ancestors,
hid in his writings
Homer’s Illiads and Odyssey, in cipher,
with the Aeneid of the noble Virgil,
Prince of Latin poets,
Inscribing the letters to:
Elizabeth, R
!jupyter nbconvert --to html '/content/drive/MyDrive/Colab Notebooks/T_&_C_Message_Decode_1623_v33.ipynb'