9 The Matrix Bot

9.1 Introduction

# as always, i have to make sure the disco engine is loaded
library(discoveryengine)

The brainstorm bot is powered by a simple text search of our code tables. It relies on your search term appearing in the description of a particular code. That’s similar to the sort of search you might encounter on a library website that looks for exact text matches to your search term in the title and perhaps keywords associated with a book. But what if there are relevant facts about (for example) a student activity that are not captured in its name? As a concrete example, if your definition includes music majors, it’s possible (depending on your goals) that you’d also want to take a look at people who had participated in the student group CNMAT, which stands for “Center for New Music and Audio Technologies.” But how would you find that? The student activity code for CNMAT is LSCN, and the description that appears in the code table is “CNMAT Users Group.”

We don’t store longer descriptions or other metadata about student groups the way we do with allocations (which allows us to do in-depth searches of fund terms and biographies). The word “music” does not appear in the code table entry for CNMAT, and so this code would slip by both the synonym search and the Brainstorm Bot search. Just when we’re about to lose hope, enter the Matrix Bot.

Whoa

Whoa

9.2 What it is

The Matrix Bot analyzes an existing Disco Definition and looks for additional codes that might be related. It’s a good way to broaden your search when you’re doing open-ended prospecting. If the Brainstorm Bot is like looking up a book in the card catalog, then the Matrix Bot is like walking through the stacks to the shelves where your book is located, and glancing at all of other books that have been shelved in the same general location.

Note that you have to provide it with a Disco Engine definition to start (unlike the Brainstorm Bot, which only requires one or more search terms).

9.3 Example

We’re interested in finding musicians, so we start with music majors:

is_musician = majored_in(music)

But, since this is an open-ended prospecting project, we call up the Matrix Bot to widen the net:

matrix_bot(is_musician)
## attended_event 
##     3271: L&S Music Dept Welcome Back Event
##     774: Creation Reception
##     2803: Music Lib. Grndbrk. Cer.
##     4181: Discover Cal - Music Dept
## gave_to_department 
##     MUS: Music
##     JAZZ: Jazz Ensembles
##     YMP: Young Musicians Program
##     AH: Arts & Humanities
##     UCCE: Choral Ensembles
## has_affiliation 
##     UCUBE: University Baroque Ensemble
##     MLS1: Chamber Chorus
##     MLS2: University Chorus
##     MLS3: Symphony Orchestra
##     MUFMU: Friends of Music
##     RC29: CAA Octet Alumni Club
##     RC35: CAA Cal Band Alumni Association
## has_interest 
##     MUS: Music
## has_occupation 
##     2726: Musician/Singer
## majored_in 
##     579: Music
## participated_in 
##     LSCN: CNMAT Users Group
##     LSNM: Berkeley New Music Project
##     LSRE: Repercussions Music Journal
##     UMUC: Music Connection
##     MSJZ: UC Jazz Ensembles
##     URRR: Raza Recruitment & Retention Center
##     MSMB: UC Marching Band Member
##     MSCH: UC Choral Ensembles

As you can see, the Matrix Bot discovered a number of additional avenues for prospecting! As with the Brainstorm Bot, the Matrix Bot results are best thought of as suggestions for further research: not all of the suggestions will be helpful for your particular project, and the best way to proceed is to research and learn more about the codes it suggests, to see if they are relevant to your project.

9.4 Botstrapping

Recall that the brainstorm bot returns a valid Disco Engine definition (more precisely, it returns the result of combining all of its suggestions using %or%). While we don’t often use that fact (it’s much more common to find yourself copying/pasting from the brainstorm bot results to select the widgets you want to use), it does lend to itself to a nice trick. We can use the matrix bot on brainstorm bot results to quickly and effortlessly identify a number of prospecting options. For example, if we’re prospecting for the Chicano Studies department, but don’t have a great idea where to start:

# i use the wildcard * to search for both "chicano" and "chicana"
matrix_bot(brainstorm_bot("chican*"))
## attended_event 
##     5883: EI Chicano/Latino Graduation 5-1-03
##     5884: EI Chicano/Latino Graduation 5-1-04
##     5885: EI Chicano/Latino Graduation 5-1-05
##     5886: EI Chicano/Latino Graduation 5-1-06
##     5887: EI Chicano/Latino Graduation 5-1-07
##     5891: EI Chicano/Latino Graduation 5-1-12
##     8864: Chicano Latino Chap Summer Welcome Party
##     8865: Chicano Latino Chap Summer Welcome Party
##     8895: Chicano Latino Chap Summer Welcome Party
##     8896: Chicano Latino Chapter Noche de Osos
##     5882: EI Chicano/Latino Graduation 5-1-02
##     5889: EI Chicano/Latino Graduation 5-1-09
##     5890: EI Chicano/Latino Graduation 5-1-10
##     8420: Chicano Latino Chapter Noche de Osos
##     5348: EI Chicano Latino Graduation 5-15-2011
##     5888: EI Chicano/Latino Graduation 5-1-08
##     3231: Sandra Hare Welcome Rec.
##     4454: CAA Mento Chic/Lat Ptshp
##     9435: Student Welcome Reception
##     8237: All-UC Latino Career Networking Event
##     4867: L&S 10th Anniversary Ethnic Studies Libr
##     4310: Boalt La Raza Recept.
## ca_gave_to_candidate 
##     CA4219530495: LARA, RICARDO
##     CA1613744954: GUILLEN, ABEL
## fec_gave_to_candidate 
##     H2CA10145: HERNANDEZ, JOSE M
##     H2CA36439: RUIZ, RAUL DR.
## gave_to_department 
##     CHICANO: Chicano Studies Program
##     MSGC: Multiculture, Sex & Gender Ctrs
##     ETHNIC: Ethnic Studies
##     TRSP: Transfer/ReEntry/Parent Ctr
##     SAGE: SAGE Scholars Program
##     VCEIO: Equity & Inclusion: VC's Office
##     CLL: Campus Life/Leadership
##     SLC: Student Learning Center
##     CEEE: Educ Equity & Excellence Centers
##     CEP: Educational Partnerships Center
##     OGB: Order of the Golden Bear
##     SW: Social Welfare
## has_affiliation 
##     MA27: CAA Chicano/Latino Alumni Volunteer
##     RC15: CAA Chicanx Latinx Alumni Assoc Nor Cal
##     RC5: *CAA La Raza Alumni Club-Defunct
##     LSBSP: Biology Scholars Program
##     MA17: TAAP/KASP Scholarship Interviewer
##     MA5: CAA Student Recruitment/Outreach Pgm
##     RC11: *CAA Alumni Club Officer
##     MA30: TAAP/KASP Scholarship Reader
##     RC18: CAA Cal Alumni Los Angeles Chapter
## has_interest 
##     MEX: Mexican-American/Chicano Interest
##     USL: U.S. Latino Interests
##     LAT: Latin American Interests
## has_occupation 
##     2100: Social Svcs/Community Relation
## majored_in 
##     160: Chicano Studies
##     919: Spanish Option D: Hispanic
##     360: Ethnic Studies
##     907: Spanish Option C2: Latin American
##     498: Latin American Studies
##     9A1: Gender & Women's Studies
##     882: Spanish
##     045: American Studies
## participated_in 
##     EDCH: Chicano Latina Arch Stdnt Assn
##     LSCI: Chicano Studies Undergrad Assoc
##     LSCL: Chicano/Latino Political Sci Assoc
##     UCHE: Chicanxs/Latinxs in Health Education
##     UMEC: Movimiento Estud Chicano de Aztlan
##     GLTA: Lambda Theta Alpha Latin Sorority
##     UMAL: Mujeres Activas En Letras (MALCS)
##     UXIN: Xinaxtli
##     ULPL: Latino Pre-Law Society
##     ULV: La Voz
##     UTRE: TRENZA
##     GLTP: Lambda Theta Phi Latin Fraternity
##     UHAU: Hermanas Unidas
##     ULAS: Latin American Student Association
##     GLTN: Lambda Theta Nu Sorority
##     UHSF: Hispanic Scholarship Fund Scholars
##     UGFR: Grupo Folklorico Reflejos De Mexico
##     GGZA: Gamma Zeta Alpha
##     GSPA: Sigma Pi Alpha Sorority
##     UMCH: MEChXA
##     UHU: Hermanos Unidos
##     UDUL: DULCE-Cmnty Diabetes Educ & Prev
##     UYQU: Young Queers United 4 Empow (Y Que)
##     UEGI: Global Internship
##     ULF: La Familia
##     URRR: Raza Recruitment & Retention Center
##     RCRR: Raices Recruitment & Retention
##     GMGC: Multicultural Greek Council
##     URS: RISE-Rising Immigrant Sch Thru Educ
##     EIM: Casa Magdalena Mora
##     UESIT: Summer Abroad - Italy
##     UHES: Hispanic Engineers & Scientists
##     UIAM: IAM Outreach Program
##     UESMX: Summer Abroad - Mexico
##     BULS: Latino Business Student Association
##     ULL: La Llorona
##     UDCP: Destination: College Program
##     EAMEX: Education Abroad Program - Mexico
##     UBMC: Bridges Multicultural Resource Ctr
##     EID1: DC Advising Corps
##     EABRA: Education Abroad Program - Brazil
##     LBSIP: IRLE Labor Summer Internship Program
##     RHRV: Rochdale Village Co-Op Resident
##     LWLS: La Raza Law Students Association
##     LRAC: La Raza Alumni Chapter
##     EIP1: PDP Calculus Intensive
##     LTAD: Latino Alumni Directory
##     BIBSP: Biology Scholars Program
##     EIT: TAP Transfer Alliance Project
##     EISA: Educational Opportunity Program
##     USBR: Summer Bridge Program Participant
##     UBUI: BUILD Literacy Program
##     UBON: Bonner Leaders
##     EIR6: TRSP Transfer Student Services
##     LWLR: Berkeley La Raza Law Journal
##     UESSP: Summer Abroad - Spain
##     RHFW: Fenwick Weavers' Village Co-Op
## played_sport 
##     RSBX: Cal Boxing Club
## received_award 
##     ZFI: UA Zaffaroni Scholarship
##     CAS: CAA Achievement Award Scholar
##     IAS: Incentive Awards Scholar. Recipient
##     UEG: George A Miller Scholar
##     COS: Cal Opportunity Scholarship Recipient

9.5 How does it work?

The Matrix Bot looks up entities who match your definition, and then looks for other characteristics they have in common. The theory is that if a lot of people who have characteristic A (example: majored in music) also happen to have characteristic B (participated in CNMAT Users Group), then there’s probably an underlying similarity between characteristic A and B. This approach is closely related to one laid out in the paper “The Duality of Persons and Groups” by Ronald Breiger.

The name “Matrix Bot,” in addition to evoking some Neo-like magic, is also a nod to the basic linear algebra that the bot uses.