<<

L.RNI 02D0911

Project Number: RGF-NJA2 -63

NEW ENGLAND ALLIANCE HISTORICAL DATABASE

An Interactive Qualifying Project Report

submitted to the Faculty

of the

WORCESTER POLYTECHNIC INSTITUTE

in partial fulfillment of the requirements for the

Degree of Bachelor of Science

by

Anthony H. Towne

Stephen E. Le

Eric McDonough

Date: April 25, 2002

Approved:

Professor Richard Falco, Advisor Abstract

This project involved the creation of a highly successful first-time New England Jazz historical database for the New England Jazz Alliance (NEJA). Professionals in the field and NEJA personnel closely monitored our progress and provided feedback. Members of NEJA, music faculty of WPI, Harvard, and Northeastern, as well as the general public are expected to utilize the database.

ii Table of Figures

Figure 1 Creation of NEJA1 database 38 Figure 2 Command Line Interface 41 Figure 3 NEJA'S Home Page with Horizontal Menu 43 Figure 4 Page from our project with vertical menu bar 43 Figure 5 The new author's table 44 Figure 6 The Login Screen 46 Figure 7 Submission System main menu 49 Figure 8 Submission Form 53 Figure 9 The Register Button 55 Figure 10 The Title Bar 56 Figure 11 The menu 60 Figure 12 The Audio Submission Screen 62 Figure 13 Photo Submission Page 67 Figure 14 Discography Submission Form 71 Figure 15 Completion of Discography Entry 73 Figure 16 Articles and Interviews Submission Page 75 Figure 17 View of the Articles Data Entry Screen 76 Figure 18 Confirmation of added articles/interviews 80 Figure 19 Update Records Screen 82 Figure 20 Vital statistics update form 85 Figure 21 Update complete 86 Figure 22 Main search window 87 Figure 23 Search Criteria 88 Figure 24 Search results 90 Figure 25 Main artist information screen 93 Figure 26 Link to the artist's full biography 94 Figure 27 Extended biography 95 Figure 28 Images Gallery 97 Figure 29 Audio clips selection screen 99 Figure 30 Discography entries 101 Figure 31 Articles and interviews display screen 102

iii Table of Tables

Table 1 Format for vital statistics 15 Table 2 International Cyclopedia of Music and Musicians vital statistics setup 19 Table 3 New College Encyclopedia of Music vital statistics setup 20 Table 4 Grove Concise Encyclopedia of Music vital statistics setup 21 Table 5 NEJA database vital statistics setup 22 Table 6 Database fields and descriptions 39 Table 7 Fields in the Vital Stats Table 52 Table 8 Fields in the Discography Table 70 Table 9 Fields in the Artist Entry Table 74 Table 10 Form Buttons and their actions for the articles/interviews form 77 Table 11 Search Criteria 88

iv Table of Contents

ABSTRACT II TABLE OF FIGURES III TABLE OF TABLES IV INTRODUCTION 1 ABOUT THE NEW ENGLAND JAZZ ALLIANCE 1 PROJECT GOALS 2 AREAS OF RESEARCH 3 IMPLEMENTING THE ARCHIVE 4 OTHER CONCERNS 5 BACKGROUND RESEARCH 7 INTERNET RESOURCES 8 ENCYCLOPEDIAS 18 INTERVIEWS 25 MATERIAL REVIEW 31 WEB SITE DESIGN AND IMPLEMENTATION 37 DATABASE CREATION METHODS 37 DATABASE ACCESS METHODS 41 VISUALIZATION 42 SECURITY 44 THE SUBMISSION PROCESS 46 DATA RETRIEVAL 87 ANALYSIS AND RESULTS 106 RECOMMENDATIONS 107 APPENDICES 110 APPENDIX A: INTERNET REFERENCES 111 APPENDIX B: ENCYCLOPEDIA REFERENCES 118 APPENDIX C: COMPARISON STUDY SPREADSHEET 122 APPENDIX D: ABBREVIATIONS 124 APPENDIX E: INTERVIEW QUESTIONS 126 APPENDIX F: E-MAIL RESPONSES 130 APPENDIX G: WEB PAGE TEMPLATES 136 BIBLIOGRAPHY 139 Introduction

Currently there are no existing Internet Web sites that focus on providing information about New England's Jazz musicians from the past and present. Several organizations exist in the New England area that are dedicated to Jazz music and musicians, however none of these organizations currently have an archive containing information on New England's rich Jazz history. There are Web sites on the Internet that contain information on Jazz musicians, but these sites tend to focus on such Jazz geographic centers as New York and New Orleans or on different Jazz styles, such as

Swing and Bebop.

About the New England Jazz Alliance

There is an organization based in Boston, Massachusetts called the New England

Jazz Alliance (NEJA). This newly created volunteer organization, founded during the summer of 2001, is dedicated to Jazz in New England. NEJA's mission is to establish a

New England Jazz Hall of Fame, promote New England's Jazz Musicians, bring Jazz music to more people, especially the young, celebrate and perpetuate the [Jazz] tradition, and to call attention to today's outstanding New England Artists.' The President of this organization, Mr. Brent Banulis, wanted to create an online archive that would document and store as much information as possible on New England's Jazz musicians. In conjunction with Professor Richard Falco, Director of Jazz Studies at Worcester

Polytechnic Institute (WPI), they aimed to create an Interactive Qualifying Project (IQP)

http://www.neJazz.org/About/

1 which would construct an archive that would serve as a massive historical library about

Jazz musicians in New England.

Project Goals

The goals of this project were easy to establish. The archive would have to be

publicly available, easy to use, and store historical information on Jazz musicians in New

England. This would allow the system to be useful to both researchers and fans alike. In

addition to the archive itself, a submission system would need to be created to allow

researchers to continually contribute to the archive. The submission process would also

have to be easy to use because many different musicologists, historical researchers, and

professors with different computer related skill levels would be adding to this database.

The final requirement for the submission system design was that it had to allow the

contributors to receive credit for their own work, and prevent others from altering it.

This system would result in the archive being similar to an Internet based article

publication system for the contributors.

The project also had to be integrated with the existing NEJA Web site,

http://www.neJazz.org/. The IQP team had to work with members involved with the

organization such as NEJA President Brent Banulis, NEJA Webmaster Jeremy Hitchcock,

and NEJA's graphics artist, Keith Webb. In order to properly integrate the new archive

with the existing Web site, the IQP team had to base the layout of the new Web site on

the layout of the existing Web site. This would also provide continuity to the entire

NEJA Web site.

2 Areas of Research

The IQP team separated the project into two major areas. The first of these was the content of the archive and the second was how to build the archive. The team researched the type of content that needed to be included in the history pages by interviews with historians, librarians, musicologists, newspaper writers, Jazz writers, and music faculty from different institutions. This research aided the team in establishing a format for the biography to be included for each artist, in addition to a detailed discography format and in establishing other search options.

During this time, the IQP team also conducted research in order to determine the best construction techniques for the Web site and to determine the best data storage formats for the archived material. After consulting several technical manuals and various computer programming related Web sites, the team determined that the Web site would need to be based on a database system. The team found that this implementation would result in a more organized storage system with more security and ease of use than a series of web pages.

We decided to use the MySQL database software as the basis of the system due to recommendations by members of the WPI Web Development Team in addition to research conducted by visiting other Web sites based on MySQL. The team also decided to use the PI-IP script language to program the Web site, allowing the database to be accessed and easily searched by the Web site's users. This decision was based on the choice of database software and recommendations of members of the WPI Web

Development Team. The data formats decided on were standard text files, or .txt, for the articles, interviews and discographies, the MP3 format for sound clips and the JPG

3 format for pictures. This would allow the fastest download times for visitors to the Web site, since all of these formats have relatively small file sizes.

The last portion of the technical research the team conducted was an examination of the existing NEJA Web site. This was to familiarize ourselves with the layout of the

Web site and code used to program the Web site. As a result, we would be able to easily create an archive with the same look and feel as the existing NEJA site, and at the same time make it easier to maintain and update both Web sites.

Implementing the Archive

Once the initial technical research was completed, the team began working to create the database, the storage system used for the data, and the Web site that would be viewed by both the visiting public and contributors. Over a three month period of time, experimentation occurred with database design, Web site security, web page design, search and retrieval methods, and submission methods.

The first area of the Web site completed was the database itself, allowing the team to properly test all of the PI-IP scripts written for various forms of database access, such as searches, submitting and retrieval. The remainder of the software was written in PHP.

This software consists of several small modules, also referred to as scripts, designed to perform specific tasks such as the previously mentioned search and retrieval scripts. This modular design of the software also aids in debugging or adding functionality, due to the small size of the programs. The security scripts were the last area of the site to be designed. These are quite useful, as they prevent unauthorized access to the submission system, preventing people from altering information found in the archive or adding

4 extraneous information. The security scripts allow the NEJA board of directors to grant

access to researchers of their choosing.

During the design and programming of the submission system, the team decided that a series of on screen instructions would be the most help for the users if any

questions arose about data formats or data submission requirements.

Additionally, the IQP team received approval from the NEJA Webmaster for the

data formats the team had decided on using during the development of the database and

supporting PHP scripts. Upon completion of the database, Web site and submission

system, both the IQP team's project advisor and the NEJA Webmaster reviewed the

project and approved it. The NEJA President and board of directors reviewed layouts of

the web pages and of the submission pages and approved these as well. The next step

was to upload the project and integrate it into the NEJA Web site, which occurred on

April 21, 2002 with help from NEJA Webmaster, Jeremy Hitchcock.

Other Concerns

During the same period of time that the database was being created, NEJA

President Banulis had been given a large amount of hard copy historical material

pertaining to various New England Jazz artists. There was no organization to this

information, as it was found in various storage formats. These formats consist of vinyl

LP records, newspapers and magazines, audiotapes and, in some cases, reel-to-reel

recordings of interviews. The NEJA Board of Directors had concerns about the vast

amounts of hard copy material being offered to the organization. The NEJA directors

5 wanted to know if the information could be incorporated into the current project or if they

should stop accepting the materials.

Professor Richard Falco and Professor Frederick Bianchi, WPI music faculty

members, both felt that it would be best to advise the organization to accept the materials

in whatever format the materials were being offered. The team worked with Mr. Banulis

to determine the best course of action. It was decided that the current database project

would remain autonomous, and a second database would need to be established. This

decision was made based on the original idea of this historical database project, which is

intended to provide information about Jazz musicians in the form of a multimedia

biography created by individual authors. The second database would be a more general

electronic library. The materials being collected would also need to be converted into the

proper digital formats for storage in the system. Mr. Banulis brought this suggestion to

the NEJA Board of Directors, who felt it was an acceptable solution.

The IQP team recommended that another project be created to organize the

second database. This system would not be attached to the individual submission pages.

The team added the ability to create another Web site link from the current project to this

more generally stored data upon its compilation. The link could be activated simply by

providing the correct address of the second general storage database, allowing the Web

site's users access to this large repository of general Jazz information.

The IQP team feels confident that the project achieved all of the goals set forth by

NEJA and has found the extensive literature review, subsequent experimentation and the

professional evaluation and input invaluable. The newly established NEJA historical

database Web site, www.nejazz.org/history, has met with extremely favorable reviews

from NEJA officials and professional researchers alike.

6 Background Research

During the first seven weeks of the project, the team conducted the majority of the research necessary for its completion. The project research was divided into two areas,

Web site content and technical research. For each of these two areas of the project, the team utilized Internet resources and printed resources and conducted interviews in order to obtain the required materials.

The purpose of the Web site content research was to determine the types of

information to be included for each artist in the archive, in addition to the best layout for

this information. The team used web resources such as other Jazz related Web sites,

printed materials such as music encyclopedias and Jazz dictionaries, and conducted

interviews with several historians, librarians and musicologists. Each of these resources

were quite valuable to the team, as many of the findings overlapped between different

sources, providing validation for the decisions the team made regarding the content of the

artist pages found in the completed archive.

The technical research was to help the team find the best way to program the Web

site and store the information in specific digital formats. Using sources similar to those

used in the web content research, the team consulted Web sites relating to web

programming and database development, and obtained technical manuals relating to

programming and database development. Specifically, the team was looking for

information about database design in MySQL and programming in PI-11 3 . The team was

also looking for technical manuals which pertained to creating a database driven Web site

with user access restricted by log in screens. The team also conducted interviews with

members of the WPI Web Development Team and a member of the Computer Science

7 faculty at WPI. These interviews dealt with software package choices and code optimizations.

Internet Resources

In November of 2001, the IQP team began researching Internet web pages because, since the New England Jazz Alliance (NEJA) historical database would be an online service, the team wanted to examine other successful and popular Web sites. The team hoped to add "user-friendly" characteristics found on those pages to the team's own

NEJA database web page design. Among other features, the team wanted any visitors to the online New England Jazz history site to have minimal problems navigating through the Web site. Information on both content and design were evaluated in these web pages.

The team needed to study the ease-of-use of existing web pages because a primary goal of NEJA Administration was that the database would need to be as easy and straightforward to use as possible by the general public visiting the site and those who were given permission to submit articles to the site.

In addition to the research the team needed to conduct to determine the content of the database, the team also needed to research the software to be used in building the

Web site. The team was specifically searching for information regarding PUP, MySQL,

Perl and Microsoft Access, as it was thought that these would be the most viable software options for use in building the Web site.

8 Web site Content

The Web site topics researched included Jazz music, Jazz musicians, history, and encyclopedias. The Web sites analyzed included: Encyclopedia.com2 , Encarta on-line 3 ,

All Music Guide', Club Kaycee: Kansas City Jazz History5 , New Orleans Online 6 ,

African Genesis Presents: Jazz: You'll Like It , A Passion for Jazz 8 , Smithsonian's

American Jazz Heritage 9 , Grove Music m , and the Red Hot Jazz Archive" . The team chose these Web sites because they represented a wide variety of Jazz music, musicians, history, and encyclopedias.

The team first researched the Encyclopedia.com Web site which yielded valuable information on what a well-used encyclopedic web page looked like and how one was set up. This Web site was a good starting place for background research for the NEJA database. Although Encyclopedia.com is not a music-specific Web site, it still held information useful to the IQP team. The Web site was very easy to use, presenting no confusion while searching and navigating. The overall setup of the Web site was very aesthetically pleasing, something the IQP team wanted for the NEJA database.

Encyclopedia.com incorporated the use of a general search engine on the main page. It also had options for using a dictionary, thesaurus, almanac, and other encyclopedias. Located on the middle of the page was a listing of famous historical

http://www.encyclopedia.com/ 3 http://encarta.msn.com/ 4 http://www.allmusic.com/ 5 http://www.umkc.edu/orgs/kcJazz/mainpage.htm 6 http://www.neworleansonline.com/neworleans/music/ http://afgen.com/jazlinks.html 8 http://www.apassion4Jazz.net/ 9 http://www.si.edu/aJazzh/ 10 http://www.grovereference.com/GroveMusic/TNGJ2.htm 11 http://www.redhotJazz.com/

9 events that happened on the current date. On the right-hand side of the page was a listing of the most popular searches on the Web site to date.

For encyclopedic entries, this Web site incorporated the vital statistics and biography into one lengthy paragraph. The entries found here began with the birth and death years, then continued on with birthplace and went straight into a biographical entry.

The biographical information was presented in chronological order and not by subject headings.

From Encyclopedia.com , the team decided to use the musician's birth year, death year, and place of birth and decided to use chronological order in the NEJA database biographical entries as well. One detail the team decided not to use was the lengthy biographical entry. We wanted to present a concise biographical entry for each musician.

An example of an Encyclopedia.com encyclopedic entry is shown on page 1 of Appendix

A and items used for the NEJA site are highlighted in yellow.

The Encarta On-Line Web site was researched by the team because it is a widely used on-line encyclopedic database. Although Encarta On-Line is a more general on-line encyclopedia than the IQP team and NEJA were interested in creating, this Web site was a good resource because it gave valuable general information that helped lead the team in the right direction for setting up vital statistics and biographical entries. One drawback the team noticed, however, was that the Web site was not specifically geared towards being an encyclopedia. It was more directed towards learning and research as a whole, including up-to-the-minute newscasts, books, magazines, and many more resources. The

IQP team was looking to create a more encyclopedia-specific Web site.

Some features on the Encarta On-Line main web page included: a general search engine, links to references, homework, college, shopping, news highlights, and other

10 miscellaneous items. For Encarta On-Line' s encyclopedic entries, it was found that the

setup was similar to that of the Encyclopedia.com encyclopedia entries, but shorter in

length. Included were a photo gallery, artist name, birth year, death year, nationality,

music style, instrument, a biographical entry, and compositions.

From these encyclopedic entries, we decided to add to the NEJA database the

instrument the musician played, along with similar details used in the before-mentioned

Encyclopedia.com . The team also decided to include a picture for each artist's main web

page. An example of an Encarta On-Line encyclopedic entry is shown on page 2 of

Appendix A and newly used items are highlighted in yellow. Items already adopted

previously are highlighted in green.

The All Music Guide Web site was researched because it is an on-line

encyclopedic database that is music-specific. This Web site was a valuable tool in that it

presented a great deal of information to the reader. The IQP team wanted Internet users

to gain as much information about each Jazz musician included in the site, but with the

least amount of confusion. We decided that the All Music Guide Web site was an

excellent model. After this Web site was reviewed, the team had a much better idea of

how the NEJA database should be designed and how the information should be presented

to Internet users.

Each of the Web sites we researched included a general search engine on the main

web page. The user could select to search the following fields: artist by name;

title; song title; Jazz historical style; and record labels. Links were located on the left-

hand side of the page and included: music styles; articles; glossary; books; and CDs. For

the encyclopedia entries these characteristics were found in the vital statistics portion:

birthplace; birth year; death year; and instrument. A photo was also used for each of the

11 biographical entries. The team also noticed the inclusion of the musician's real name and their nickname. Items located in the entries on All Music Guide that were not included in the other Web sites were leader, composer, director, and educator. Other items included death date, birth date, and place of death. All Music Guide also used an extensive amount of cross-referencing 12 .

From All Music Guide, the team decided to include the nicknames of the musicians in the database following the musician's real name, when applicable. Other characteristics that were used had already been observed in previous Internet Web sites.

One concept that was not incorporated into the NEJA database was the use of cross- referencing. Cross-referencing would have been acceptable to use, but would have required more time to implement in the design than there was available for the project.

An example of an encyclopedic entry from All Music Guide is located on page 3 of Appendix A. Highlighted in yellow are the newly-presented ideas that were taken into consideration for inclusion into the NEJA database and highlighted in green are adopted ideas that were already planned for inclusion into the NEJA site.

The Club Kaycee: Kansas City Jazz History Web site was something the IQP team found interesting. Kansas City is a large center for Jazz music, which made this

Web site a very useful tool. The layout used for this Web site resulted in the links being located down the left side of the individual artist pages, a design which was under consideration for the NEJA Web site. Navigation through the Web site was intuitive and similar to the feel that the team wanted for the navigation through the NEJA history web pages.

12 Cross-referencing, as defined by http://www.dictionary.com , is referencing from one part of a book, index, catalog, or file to another part containing related information.

12 On the Club Kaycee main page, there were links down the left side of the Web site that pointed to Artist Index, Audio Clips, Venues and Articles. The encyclopedic entries began with the birth date and death date. It then continued with a lengthy biographical entry of approximately one page. A picture of the musician was included within the biographical entry. Another useful item was the addition of cited sources at the end of each biographical entry.

The links down the left side of the page help visitors navigate through the many items located in the database, so we decided to use them in the NEJA database. The team also decided to add sources, or bibliographies, at the end of the musician's main page, following their biography. Items found on the Club Kaycee web pages, but not used, were the use of cross-referencing to audio files (shown as green notes within the entry) and links to other musicians. As with the All Music Guide, the IQP team felt these features were not necessary. Shown on page 4 of Appendix A is a sample encyclopedic entry taken from the Club Kaycee: Kansas City Jazz History Web site. Once again, highlighted in yellow are new items adopted into our design and highlighted in green are items previously seen.

The last Internet site the IQP team researched was the Red Hot Jazz Archive. This

Web site had a setup similarly to that which the IQP team wanted for the NEJA database.

It was also very helpful in that it reinforced many of the design ideas the IQP team had already considered like the use of the links down the left side of the page, an option for an extended biographical entry, and the ordering of the vital statistics entry.

One item this Web site did not include that most encyclopedic Web sites did was the brief biographical entry at the beginning of the article. This Web site only incorporated a more in-depth biography of each artist. The team also noticed the

13 inclusion of more than one photo for most entries. Found within the extended biography, however, was a large amount of cross-referencing. At the bottom of each biographical entry was a listing of the musician's discography, bands the musician played in, and suggested readings.

Seeing the extra pictures, the team decided to add a separate page in the NEJA

Web site that would serve as a "photo gallery" for each individual musician. A link for this would be added to the left side of the artist's web page. The IQP team decided not to include a separate list of the bands the musician was involved with. This information would already be included in the brief biographical entry. The team also thought it redundant to include a list of suggested reading because a bibliography would already be included with each entry and could also serve as a short list of suggested readings.

However, the team felt it necessary to include discographies as a link on the left side of the web page. Found on page 5 of Appendix A is a shortened sample entry from the Red

Hot Jazz Web site. Highlighted in yellow are items that the team decided to use for their own Web site.

There were several Web sites the team did not find incredibly useful after careful evaluation. These Web sites included: New Orleans Online, African Genesis Presents:

Jazz: You'll Like It, the Passion for Jazz Web site, the Smithsonian's American Jazz

Heritage, and the Grove Music Web site.

New Orleans Online was not useful to us because it did not contain information in the style of encyclopedic entries for Jazz musicians. The African Genesis Presents: Jazz:

You'll Like It web page lacked biographical entries for individual Jazz musicians. The

Passion for Jazz was not a historical Web site. The Smithsonian's American Jazz

Heritage Web site was not directed towards archiving historical information on Jazz

14 musicians. The Grove Music Web site required paying to a subscription fee to gain access to their database. The IQP team did not entertain this because the NEJA history site was intended to be a free service to not only NEJA members, but to the general public as well.

Based on Internet research, the team decided to use the format shown below in

Table 1 for the setup of vital statistics.

Last Name First Name Middle Name/Initial Birth Date Death Date Birth Place Death Place Instrument(s)

Table 1 Format for vital statistics

A brief biography is located after the vital statistics paragraph. A sources cited area is located at the bottom of the artist's main page. We decided to have one picture on the

Jazz musician's main page, and have a link to a separate page that has more pictures of that musician, if available. A separate page for discographies was included, along with a page for an extended biography.

Technical Web sites

In addition to the Internet research conducted to determine the content of the

NEJA database, the team researched the available software options. This research consisted of searching for information pertaining to the functionality of the available

15 software packages, but also for information on how to use the software. Several Web sites were used by the team for the development of the NEJA database Web site. These

Web sites are for MySQL 13 , PERL' 5 , Microsoft Access' 6 and O'Reilly &

Associates''. The MySQL and PHP Web sites were found to be especially useful, due to the vast amount of information found at each site.

The MySQL Web site provided the IQP team with valuable information about the database software. Since this Web site is the official site for information regarding

MySQL, it was utilized by the team during the early design phases of the project. The

Web site aided the team in solving several problems with the installation of MySQL and learning the key features of the software.

The site contains information on all aspects of the database software. There are listings of the documentation found on the Web site, articles relating to or about

MySQL's use, book recommendations, and links to third party Web sites which contain various tutorials or articles about the software, yet have no official affiliation with

MySQL AB. MySQL AB is the parent company producing the MySQL software package.

The team found the documentation provided on the Web site to be highly detailed and extremely helpful in learning the workings of the software. The documentation aided the team in the installation of the software and establishing a series of tables to store details of the material to be located in the database.

13 www.mysql.com 14 www.php.net 15 www.perl.com 16 www.microsoft.com/office/accessidefaultasp 17 www.oreilly.com and www.onlamp.com

16 The PHP 18 Web site is maintained by The PHP Group, which also works to update the language itself. This site contains all the documentation necessary to install support for PHP, learn the syntax of the language and learn the use of each of the functions. In addition, the documentation also contains detailed information about debugging code written in PHP and implementing some of the advanced functionality of

PHP. The IQP team mainly focused on the areas of documentation regarding installing

PHP and adding support for MySQL.

Similar to the MySQL Web site, the PHP Web site also contained a links section with information about PHP syntax, design examples and books relating to the language.

There is also a listing of Web sites that contain various utilities and scripts written using

PHP.

The Perl Web site was utilized by the IQP team during the beginning of the project, while the team was still deciding on a scripting language. Just as in the two previous Web sites, the Perl Web site contained a links section to information pertaining to all aspects of the language. The documentation on the Web site is quite extensive, considering that the Web site is maintained by O'Reilly & Associates, a company which publishes numerous books about programming in many different computer languages, including Perl. This Web site was only used to allow the team to compare Perl and PHP.

This Web site turned out to be of little help to the IQP team, since the decision was made to use the PHP language instead.

The Microsoft Access Web site was examined during the first stages of research conducted by the team in November. This Web site was useful in helping the team determine the feasibility of creating the database using the Access software package.

18 PHP: a recursive acronym that stands for PHP: Hypertext Preprocessor

17 The information found on the Web site aided the team in making it's final choice to use

MySQL for the database. This decision resulted from seeing the documentation about the software, which describes its main use as being an easy way to establish a database on internal corporate network to pass data between employees. The software does support web access, however it was not the type of solution the team was looking for.

The remaining information sources regarding programming languages are both

Web sites run by O'Reilly & Associates. These Web sites, www.oreilly.com and www.onlamp.com each have vast amounts of information available. The latter is a subset of the main O'Reilly site, www.oreilly.com . While the main Web site contains information regarding all of the technical manuals published by the company, the actual information listed on the Web site is limited in scope to only samples from the published texts. However, the Onlamp Web site is set up in a different manner. It is devoted to web development software, including PHP and MySQL. This Web site contains tutorials

and introductions to the different software packages, including how to install or update them. In addition, there are help files to aid the user in learning the syntax required to

program using the languages or operate the software listed.

Encyclopedias

The printed encyclopedias used for this research included: The International

Cyclopedia of Music and Musicians (Vol. 1), The New College Encyclopedia of Music,

Grove Concise Encyclopedia of Music, the New Edition of the Encyclopedia of Jazz, and

The Encyclopedia of Jazz in the Seventies. As with the "on-line" encyclopedias, the vital

statistics presentation of chronology and the biographical content were evaluated. These

18 encyclopedias were chosen because they gave valuable information about setting up the

Jazz musician's vital statistics information typically found in encyclopedias. Some of these encyclopedias aided the team in other aspects, like the actual of information for brief biographies.

Between ten and fifteen random encyclopedic entries were selected and reviewed to gain a general idea of the ordering of the vital statistics, such as birth place and death

place. A spreadsheet for comparison study of the encyclopedic entries was created and is

located in Appendix C.

We chose to research the International Cyclopedia of Music and Musicians

because it contained valuable information about the setup of vital statistics and short

biographical entries for musicians. Found in this encyclopedia were three paragraphs.

These paragraphs included an initial vital statistics paragraph, a brief biographical

paragraph, and an extended biographical paragraph. After researching this encyclopedia,

a list was created and is shown in of the ordering of vital statistics for each entry.

Last Name First Name Middle Name/Initial Birth Place Birth Date Death Place Death Date Nationality Instrument

Table 2 International Cyclopedia of Music and Musicians vital statistics setup

As stated previously, an additional link option was planned for the NEJA site to

bring the visitor from the musician's main page, which contained a photo, the vital

19 statistics, a brief biography, and navigation links down the left side, to an extended biography. Seeing this characteristic in this encyclopedic entry supported our design plan.

One item we did not desire to include in the encyclopedic entries for the NEJA database was the nationality of the Jazz musician. The team felt it would be more appropriate to leave these items for inclusion in the optional extended biography at the discretion of the author. An example of a vital statistic entry found in this encyclopedia is found on page

1 of Appendix B.

The New College Encyclopedia of Music was selected to be researched because it seemed an ideal model for setting up the vital statistics information for Jazz musicians.

Found in these encyclopedic entries, similar to those found in the International

Cyclopedia of Music and Musicians, was an additional biographical paragraph. Although the biographical entries found in this encyclopedia are shorter than those found in the

International Cyclopedia of Music and Musicians, the basic structure of the entries was

still reviewed. Again, the IQP team studied several different entries and created a list

shown in Table 3 relating to the order of the vital statistics found within each entry.

Last Name First Name Birth Date Death Date Nationality Instrument

Table 3 New College Encyclopedia of Music vital statistics setup

The inclusion of the extra biographical paragraph yet again reinforced our concept

of adding a link for an additional biographical page to each Jazz artist's main page. An

20 example of a vital statistic entry found in this encyclopedia can be found on page 2 of

Appendix B.

Another music encyclopedia researched was the Grove Concise Encyclopedia of

Music. This encyclopedia contained very similar information to the previous two encyclopedias. Similar formatting was also used pertaining to the order of the vital statistics and each biographical entry. Again, it was found that an extra paragraph was used after the initial vital statistics paragraph that contained additional biographical information. Shown in Table 4 is a list detailing the order of the vital statistics in each encyclopedic entry.

Last Name First Name Birth Place Death Place Death Date Nationality Instrument

Table 4 Grove Concise Encyclopedia of Music vital statistics setup

Seeing the extra biographical paragraph yet again reinforced our decision to include in our design a link to an additional web page that would contain an extended biography. The team debated on whether or not to include nationality because it was found in all printed encyclopedias thus far, but the team decided to stay with its decision to leave this item for inclusion in the extended biography option for each artist. Shown on page 3 of Appendix B is an example of an encyclopedic entry found in the Grove

Concise Encyclopedia of Music.

21 After careful research and study, the IQP team agreed on a specific format for the presentation of the vital statistics for the artist main web pages. The format is shown below in Table 5.

Last Name First Name Middle Name/Initial Nickname Arranger: Yes/No Composer: Yes/No Bandleader: Yes/No Instruments Birth Place Birth Date Death Place Death Date

Table 5 NEJA database vital statistics setup

Shown in Appendix C is the spreadsheet for the comparison study, mentioned earlier,

which outlines the order in which the biographical information was presented for each of

the listed encyclopedias.

Another element the IQP team needed to consider was the use of abbreviations.

Abbreviations were found in many of the encyclopedia entries. The team discussed the

possibility of using abbreviations in the NEJA database. Although not necessary, the IQP

team decided to include abbreviations in the NEJA database because it seemed to be a

standard for many encyclopedias. Found in The New Edition of the Encyclopedia of Jazz

on pages 94-95 was a listing of all standard abbreviations used when writing about music.

This list is included in Appendix D. The abbreviations in this list will be referred to and

used when future contributors submit an entry to the database.

22 Technical Manuals

After searching for printed software manuals relating to MySQL, PHP and Web site development, the team found four manuals which seemed to provide the most relevant information combined with well thought out explanations and examples. These manuals were chosen do to the particular format the information was presented in. One manual in particular proved to be extremely useful to the team, as it contained several example projects that were closely related to portions of the IQP project.

The first of these manuals is titled PHP and MySQL Web Development" . This reference turned out to be the most useful technical reference for the team. The team found this book in the recommended list on the MySQL Web site. Upon further research, we discovered that the book contained the exact type of information we were looking for.

The reference had several detailed examples implementing different types of database driven Web sites using PHP and MySQL. Two of these examples were of particular importance, as they explained in detail how PHP and MySQL could be used to create user authentication scripts and to create a web based content management system. Both of these items were needed for the NEJA database. These examples provided an excellent background, and the team was able to proceed with fewer problems in implementing their design. In addition to the detailed example projects, the book contained excellent information on integrating PHP and MySQL into a Web site. The chapters included detailed explanations of how to write search and retrieval scripts in

PHP that are capable of adding to or retrieving data from a MySQL database.

19 PHP and MySQL Web Development, by Luke Welling and Laura Thomson; Sam's Publishing, 2001.

23 The next book the team used was entitled PHP: Your visual source for creating 20 open source server-side content . This book turned out to be only somewhat helpful. It served as a good back up reference, however most of the material in it was a little too basic for the teams needs. The book only provided an overview of a few types of PHP scripts, such as processing form data and reading and writing to a file. Additionally, it covered the basics of using PHP to interact with database software. It did help the team gain a good understanding of the basics of the PHP programming language.

Another software reference the team used was PHP: Fast and Easy Web 21 Development . This reference, like the previous book, was not as helpful to the team as the first book, PHP and MySQL Web Development. This was once again due to the more basic level of the code examples in the book. The team was able to use it as a quick reference for getting started with establishing interaction between the PHP scripts and the

MySQL database software.

The fourth book the team chose to focus on Professional PHP Programming— .

This particular book, like PHP and MySQL Web Development, contained several detailed

examples using PHP. In addition, it had very detailed and in depth information regarding the PHP language as whole. The team found that this book was quite helpful as this book

tended discuss PHP's integration with several different software packages, including

MySQL. However, the team chose not to focus on it as much as the aforementioned PHP

and MySQL Web Development, since we didn't feel it would be as helpful to the

completion of the project.

20 PHP: Your visual source for creating open source, server-side content, by Joel Desamero and Paul Whitehead. Hungry Minds, Inc., 2001 21 PHP: Fast and Easy Web Development, by Julie Meloni. Prima Communications, Inc., 2000 22 Professional PHP Programming, by Sascha Schumann, Harish Rawat, Jesus M. Castagnetto, Deepak T. Veliath. Wrox Press, Inc., 1999

24 Interviews

The team felt conducting interviews was necessary, as it would provide ideas from professionals in the fields of library archiving, history, musicology, and computer science. We interviewed librarians due to their experience with the archiving of historical information. They were able to help us with the organization of the content of the NEJA database. Historians were helpful because of their experience with creating biographical entries for encyclopedias and other similar reference materials.

Musicologists informed us as to appropriate levels of detail for items like the discography and audio file descriptions, among other items. Computer Science faculty were interviewed because they had experience with the design and optimization of databases and could help us with setting up the NEJA database.

The IQP team conducted its first interview on November 9, 2001 with various members of Worcester Polytechnic Institute's Gordon Library personnel. Individuals attending included: Helen Shuster, Director of Library Services; Lora Brueck, Collections

Management Librarian; Chris Cox, a Reference/Instruction Librarian; and Martha

Gunnarson, a Serials Librarian.

From this interview, the team received information about cross-referencing from

Ms. Shuster and the suggestion to interview WPI History Professor Peter Hansen. The

team was told that cross-referencing tended to be a time consuming task. In this case, it

would be made more difficult by not knowing what type of information would be found

within the submitted articles, as they would be continually added rather than placed into

the database all at once. A list of questions asked during this interview is located on page

1 of Appendix E.

25 During the November 9, 2001 interview at the Gordon Library, both Amy Marr,

Manager of Web Development at WPI, and Tim Wilde, student staff member of the web development office, were present to answer questions as well. The IQP team obtained valuable information that aided in their decisions for software packages to be used on the

NEJA database project from each of these individuals.

The first item covered during the interview was in relation to a question the team had about the design of the Web site. The team had two ideas for the design of the Web site. One was to create a large number of HTML 23 based web pages to store material while the other was to create a database to store the material. Ms. Marr and Mr. Wilde both agreed that the best course of action was to base the Web site's design on a database rather than a series of individual web pages. They agreed that this would allow the Web site to be maintained easier, as Webmasters often like to update the look or layout of a

Web site. By using a database, only a few web page templates would be needed, since the actual information could be placed into these templates as the user requests.

Additionally, this type of design makes the use of an automated update system possible, allowing for content changes on a regular basis.

Based on this information, the team's next questions related to database software.

The team asked Ms. Marr for her opinions on Microsoft's Access database software and

on MySQL. She was also asked if the Web Development Office used either of these

software packages, or if another software package was in use. Ms. Marr explained that,

in her opinion, Microsoft's Access software is insecure and not a particularly robust

database system. The latter was due mainly to the limited options for integrating the

software into a Web site environment. She said that it was her experience that Access

23 HTML: Hyperext Markup Language

26 was designed more for use in a small business environment to track materials, rather than being used for web development. In addition, she stated that Access tended to have higher overall system costs due to the need for a Microsoft operating system such as

Windows 2000 and higher hardware requirements, also due to the operating system requirements. She informed the team that her recommendation would be to use MySQL, a freeware24 program, as it is currently in use for portions of WPI's own Web site and therefore she has had experience with it. The overall system cost for running MySQL is

much lower, as the software is available for no cost, or a nominal license fee, and it can

run very stably on a system running the Linux operating system, which is also very stable

and free of cost. She felt that the software package is very stable and robust, making it an

excellent candidate for the basis of a Web site. Ms. Marr explained that this is due to its

wide availability for several different operating systems, its high level of built in security,

and the availability of programming languages such as PERL and PHP which are

designed to interact with the software and Internet web pages.

The team was told that the WPI web developers currently use the PERL

programming language to interact with the MySQL database. However, they both felt

that PHP would be an excellent substitution in their opinions, due to its higher level of

intuitiveness and wide availability. Ms. Marr also added that PI-IP tends to result in faster

program development times compared to PERL, since it is easier to learn.

In addition, Ms. Marr suggested that the team look into using XML 25 tags for the

web pages themselves, as this language is gaining acceptance for use in conjunction with

or as a replacement for the Internet standard HTML language.

24 Freeware: software available at no cost to the user. 25 XML: Extensible Markup Language

27 Finally, they spoke briefly about document formats for archiving material, mentioning that the team should decide on a single format for each of the file types that will ultimately be included in the system. Ms. Marr suggested using the standard ASCII text format, indicated by the .txt suffix found at the end of a file's name, or using a proprietary format like Adobe's .pdf file format. She cautioned against using proprietary formats though, as the format could potentially be drastically altered or become obsolete, thus rendering much of the material useless.

WPI History Professor Peter Hansen was interviewed on November 20, 2001.

We thought Professor Hansen would be a valuable source of information due to his extensive involvement with historical databases. The first item he mentioned was the necessity for an in-depth search engine. He thought topic searches should include places each musician played and musical involvement and then continued to talk about the inclusion of vital statistics, bibliographies, articles and discographies. He agreed that the vital statistics should be included for each of the Jazz musician's main web pages and that a bibliography be located on the main page after the vital statistics and brief biographical entries. Professor Hansen also agreed with the use of a brief biographical entry located underneath the vital statistics entry with the option for an extended biography on a separate web page for each of the artists. He gave us a copy of the New

Dictionary of National Biographies as a reference. This was a pamphlet containing

information required by researchers when creating encyclopedic entries. The last item he

mentioned was the concern that reliable sources are needed for the gathering of

information.

The IQP team had already planned on including a search engine in the NEJA

database, so the design idea was reinforced. Vital statistics, bibliographies, articles and

28 discographies had been considered and were being included in the design of the NEJA database. Professor Hansen's comments reinforced the team's decision to include all of these items in the database. Additionally, the team had already considered including a bibliography with cited sources for each of the artists to insure that the sources used were reliable. A list of questions the team asked Professor Hansen is included on page 2 of

Appendix E.

The IQP team decided to interview Professor Joel Brattin after learning of his continuous research on musician Jimi Hendrix. The team felt that Professor Brattin, based on his previous experience in researching musicians, would be able to contribute to the team's research on the types and level of detail of information that should be included in the NEJA database.

We first discussed the need for a discography associated with each Jazz artist in the archive. The traditional information included in a discography consists of the album title, a song listing, a personnel listing, the release date, the recording label, and the producers. Professor Brattin recommended that the discography should also include the recording engineers, location of the recording, and the names of the arrangers. He

stressed that the discography should be as detailed as possible, thus making the

information a more useful source to researchers. Professor Brattin also recommended

that, in addition to a brief text description, any audio or video file included in the system

should also have a similar level of detail in a discography entry. Researchers will find

that the audio and video files would be much more useful with a detailed listing of the

musicians present in the recording.

Professor Brattin also briefly spoke about the inclusion of a biography for each

Jazz artist. He felt that our idea of having a concise, encyclopedic type biography for

29 each of the artists would be very beneficial. He suggested that we also include a link to a more extended biography for each of the Jazz artists. This would give the user the option of reading the extended biography, similar to what Professor Hansen mentioned.

During the interview, Professor Brattin continuously stressed the need for a highly detailed search engine in the Web site. The user should be able to enter a term in the search field and then select the type of information to search. This would display a listing of all the musicians who can be associated with that term. Also, Professor Brattin stressed the need to explicitly state if any of the information is currently unknown. This would allow researchers to see exactly what information is currently not available in the archive, and to contribute to the archive upon finding the information.

From the interview with Professor Brattin, the team got an idea of what to include for the discographies for each Jazz musician. These items included album title, song listing, personnel listing, release date, recording label, producers, recording engineers, location, and arranger names. Professor Brattin reinforced the team's ideas to include a brief biographical paragraph, and then a link to a page with a more in-depth biography.

He also reinforced the use of a search engine, with search options such as search by artist or by article. A list of questions asked during the interview is located on page 3 of

Appendix E.

The interviews conducted helped the IQP team incredibly because they reinforced many of the design ideas the team already had. The team felt much more confident with continuing on to the design and programming of the database and Web site.

30 Material Review

Once the team had created a prototype design for the database, review of the material was necessary. This required sending hard copies and e-mails to many musicologists and music professors to get feedback on how to improve the project.

Musicologists contacted included: WPI Music Professors Frederick Bianchi, Richard

Falco, Douglas Weeks, John Delorey, and Louis Curran; University of Rhode Island

(URI) Music Professor Joseph Parillo, Algonquit Regional High School Teacher Dennis

Wrenn; Westfield State College Professor Donald Bastarache; NEJA President Brent

Banulis; and International Association of Jazz Educators (IAJE) staff Professor Mark

Gridley and Dr. Leonard Brown. These individuals were selected because they are not

only professional musicians, but are also very knowledgeable in the field of music

education. Feedback from all of these individuals greatly helped the IQP team in the

design of the NEJA database. Hard copies of our research material and a design proposal

were sent to: Professor Falco, Professor Curran, Mr. Banulis, and Professor Gridley. E-

mails were also sent to: Professor Bianchi, Professor Weeks, Professor Delorey,

Professor Parillo, Professor Wrenn, Professor Bastarache, Professor Gridley, and

Professor Brown.

WPI Associate Professor Frederick Bianchi stated that he thought our prototype

looked quite good. He mentioned using a dynamic biography, one that can be changed

over time if others wanted to contribute to the site. He also mentioned the inclusion of an

"other" link, located below the available links in the toolbar on the left side of the page.

He said that this link could be used to assist the user in finding more information than

that included in the artist's page about that particular artist. He also thought the term

"style"should be included in the encyclopedic entries as well. After reviewing our

31 material, Professor Bianchi contacted two other professors he thought would be beneficial to the IQP team. These professors are David Smith at the New York City

Technical College and Paul Kozel from the City University of New York.

The team thought that allowing the change of the biography by other researchers would be unwise, as it may cause researchers to shy away from contributing to the Web

site knowing that others have free access to their work and could alter it at anytime. We wanted each Jazz musician researched by one individual. The suggestion of the "others"

link was incorporated into the design of web pages. The link will remain inactive until

the time when the second general storage database, recommended to the NEJA board by

the IQP team, has been created and is in use. The "others" link would then connect to

this other database and search for any other materials related to the artist. The team felt

that the inclusion of the artist's style would best be left to the biographical entries, where

it could be explained in some detail. The team felt more comfortable with what it had

accomplished thus far after this review. The e-mail reply by Professor Bianchi is located

on page 1 of Appendix F.

Professor Richard Falco, Director of Jazz Studies at WPI, thought we had a good

level of detail incorporated into the discographies and artist biographies. He agreed with

the team's methods and felt confident about our overall progress. No changes were made

to the project because Professor Falco felt that none were necessary.

Professor Louis Curran, Associate Professor of Music at WPI, reviewed our

material in hard copy format. Overall, he thought our material looked quite good. He did,

however, mention a few items he thought could be added. He thought musical

associations, "places," and "managers" should be added to the biographical entries.

32 The team had already incorporated "groups" into the database via the discography section. The team felt that adding "places" might not be particularly beneficial and decided to leave it up to the author's discretion to include notable places of performances in the extended biography entry. "Managers" would already be included in the discography, so the team did not include it as a separate entity.

The next individual who reviewed our material was Professor Donald

Bastarache, Director of Jazz Studies at Westfield State College and IAJE National

Festival Chairman. Overall, Professor Bastarache thought our material was thorough and

well thought out. He approved our methods and included items and did not want us to

change anything. The e-mail reply from Professor Bastarache is located on page 2 of

Appendix F.

Mr. Banulis, President of NEJA was sent printed versions of the layout for both

the artist web pages and the submission system pages in addition to the materials about

submission content. These materials were also presented to the NEJA Board of

Directors. Mr. Banulis, speaking on behalf of the Board of Directors, stated that the

organization was pleased with the material sent to them for review. He suggested only

minor changes to the materials, including the background color of the web pages being

changed from blue to gray and altering the text used on the main archive web page for an

introduction to the Web site. He told us not to change anything else and to proceed with

the next portion of the project, the construction of the web pages and database. His

approval and the approval of the NEJA Board of Directors, made us feel much more

confident about the progress of the project so far.

On February 10, 2002 Professor Gridley, an Associate Professor of Psychology at

Heidelberg College and an IAJE National Historian, responded to the team's e-mail

33 requesting his opinion about the materials being used as the basis for the content of the artist pages in the Web site. He requested a phone conversation with one of the team members in order to discuss the project and sources of material for the project.

On February 14, 2002, one member of the IQP team contacted Professor Gridley by phone as requested. He expressed his concern over copyright issues pertaining to his work. The team member he spoke with explained the purpose of the project was to

establish a system for authors to submit work to the database and that it was not part of

the IQP team's goals to inhabit this system with materials, this would be left to

researchers and other members of academia. After this explanation, Professor Gridley

felt better about the scope of the project and made several suggestions pertaining to

resources that could be included in the database or linked to externally. A full listing of

his suggested resources is located on page 3 of Appendix F.

A few of the more prominent resources he suggested the team look into acquiring

permission to use include articles written for the Boston Herald by Harvey Pekar,

Michael Erlewine's materials used in the All Music Guide to Jazz, the interviews from

Cadence Magazine and Barry Kernfeld's materials in the Grove Dictionary of Jazz. He

said he felt it would benefit the project if permission were obtained for the use of these

materials, as it would allow the inclusion of a large amount of information in the system

while preventing a large amount of repetitive research. His only suggestion for the

database itself was to include a listing of the composers of each song in the discography.

He said that the database appeared to be well thought out and very comprehensive.

In addition to the advice on research areas, Professor Gridley also cautioned the

team about the use of audio and video files in the Web site. He suggested contacting the

IAJE legal advisor about finding the proper channels to obtain permission for the use of

34 these types of files. The e-mail responses from Professor Gridley are located on page 4 of Appendix F.

We presented the options given to us by Professor Gridley to NEJA President

Brent Banulis during our February meeting about the progress of the Web site and database design. The team appreciated Professor Gridley's suggestions, but felt that these resources would be better to include in an alternate database. This is due to the format that was decided on for the project, this being a system based on articles submitted to NEJA.

Dr. Leonard Brown, Associate Vice Provost of Academic Opportunity at

Northeastern University and an IAJE Historian, responded to the IQP team through e-

mail on February 17, 2002. He had several suggestions relating to the brief biography being included for each artist in the database. He suggested including the ethnicity of the

artist in the biography. He was also curious how we would be defining the term educator.

He made the point that many Jazz musicians, both past and present, are great teachers yet

they do not possess a teaching certificate or degree. In addition to this, he mentioned that

the terms "leader" and "director" are redundant when applied to Jazz musicians, as both

are used interchangeably when referring to a musician leading a band. He also suggested

that the team consider creating a set of formal boundaries for the biographical

submissions.

The team took these suggestions into consideration and decided to eliminate the

terms "director" and "educator" from the submission forms. The term "director" was

removed because the team felt that "leader" would be a better descriptive term. The

educator field was removed since the team agreed with Dr. Brown's comment that most

35 Jazz musicians are also educators. The e-mail from Dr. Brown is located on page 5 of

Appendix F.

The last individual the IQP team received a response from was Dr. David Smith, a professor at New York City Technical College. After carefully looking over our material, he thought the team had created a good basis for information to be included in the Web site. His recommendations for additions included listing the bands or organizations belonged to by the musician, Jazz styles and influences.

We had already planned on incorporating a "bands" listing that the Jazz musicians were involved with. This information is included in either the brief biographical entry or the optional extended biography. As for influences, the team also intended to leave this

for inclusion in the extended biography at the discretion of the author. This decision was

based on the team's opinion that influence's on artists go hand in hand with the artist's

particular style of playing, thus making an explanation of the two more beneficial than a

descriptive word.

Musicologists and professors that the team received no response from included:

Professors Weeks, Delorey, Parillo, Wrenn, and Kozel. This was due to their incredibly

busy schedules, resulting in their not being able to give a review of the material the time

they thought it deserved. Despite Professor Bianchi's reference to Mr. Kozel, he could

not lend any time towards reviewing our material.

Although not all of the suggested items were incorporated into the design, the

team felt confident with the decisions made in regards to the content of the Web site. The

team also felt confident that the project was progressing in the right direction after

receiving such positive feedback from those asked to review the materials.

36 Web site Design and Implementation

Implementation of the project was divided into two phases, database creation and

PHP database access script creation. The latter took the longest time because of the amount of code that had to be written. All initial software development was done off line on a stand alone Windows 2000 system.

Database Creation Methods

In the database creation phase of the project, MySQL is operated as a command line based database creation utility. Therefore, many of the commands used to create the

initial database will be given throughout the course of this section, as well as a written

explanation of what each does.

The first step in implementing the database backend of the project was to install

the MySQL database software on the development platform, which in this case was the

team's Windows 2000 system. After installation a master account, or root account, was

created that was used to allow team members to log in, create and update the database.

Once the team had MySQL installed and running with the proper root user

authorization, a new database was created called NEJA1, shown in Figure 1.

37 Hicrosoft(R) Windows DOS (C)Copyright Microsoft Corp 1990-1999.

C: \>cd mysql \bin

C:\MYSQL\BIN >mysql -uroot -p Enter password: **** We to the MySQL monitor. Commands end with ; or \g. Your MySOL connection id is 5 to server version: 3.23.33

Type 'help;' or '\h' for help. Type \c ' to clear the buffer

mysql) create database nejal;

Figure 1 Creation of NEJA1 database

The name NEJA1 was used in case it became necessary to create more databases related to the project in the future, this way each database could be numbered sequentially making it easier to edit and keep track of them.

With the database created, the team then created tables. A table is a structure within a database that contains individual fields (for example name, address and zip code).

Usually, the fields somehow relate to the table name, so that by looking at the table name, one could guess at the contents of the table. For example, a customer_ information table could contain the fields first_name, last_name, and address.

The team initially created 3 different tables that were determined by organizing the required fields the team gathered during their research phase into relevant categories.

Table one was called vital_stats, which would hold all basic biographical information for each artist. Table two was titled discography and would contain information on recorded by the artist. Table three was called multimedia and would store the location of any pictures or audio related to the artists. The individual fields for each table and a brief description, as determined by previous research, are given in Table 6 below:

38 VITAL STATS DISCOGRAPHY MULTIMEDIA Entry_num — auto increments, Fullname — artists full name Mulid — auto increment, record record number (used to key discography to number specific artist) Author — Name(s) of Rec_date — date of recording Pictures — picture related to people/persons who wrote artist submission Username — username of author Album_title — title of album Audio — audio related to artist who wrote submission (used for security) Last name — artists last name Band name — name of ensemble Audiodesc — description of audio clip First name — artists first name Release date — album release Picdesc — description of picture Middle name — artists middle Song_list — listing of songs on Fullname — artists full name, name an album keys multimedia to artist Nickname — artists nick name Per_list — personnel list Username — username, keys authors name to multimedia Arranger — was the artist an Producers — album producers Pictures — path to picture on arranger (yes/no) server hard disk Composer — was the artist a Arrangers — music arrangers Audio — path to audio on server composer (yes/no) for the album hard disk Bandleader — was the artist a Recording_eng — prmary Username — authors username bandleader (yes/no) recording engineer Director — was the artist a Rec_label — album label (eg. director (yes/no) Decca, Columbia, etc) Instrument) — artists primary Rec_location — location of instrument recording Instrument2 — other instrument Entry_nurn — auto increments, record number Instrument3 — other instrument Birthplace — artists birthplace Birthdate — date of artists birth Death_place — artists place of death Death daze — date of artists Brief bio — brief (200) word bio on artist Extended bio — detailed biography of artist (1000+) Front_pic — picture of artist Make live — determines whether the submission will be visible to the public

Table 6 Database fields and descriptions

39 Since MySQL is a command line interface, typing the code for creating each field line by line would be a tedious task. To simplify the process, MySQL contains a file- loading feature in which all tables and fields can be written in a file. That file is run at the MySQL command prompt and all tables and fields are created automatically. This is called an SQL file, and the code to produce the tables described above is given below.

DROP DATABASE IF EXISTS nejal; create database nejal; use nejal; create table VITAL STATS ( entry num int unsigned not null auto increment primary key, author char(40) not null, username varchar(16) not null, password varchar(16) not null, last_name char(35) not null, first_name char(20) not null, middle_name char(20) not null, nickname char(15) not null, arranger char(4) not null, composer char(4) not null, bandleader char(4) not null, director char(4) not null, educator char(4) not null, instrument) char(15) not null, instrument2 char(15) not null, instrument3 char(15) not null, birthplace char(15) not null, birthdate date not null, death_place char(15) not null, death_date date not null, brief bio tinytext not null, extended bio text not null, front_pic varchar(30) not null, make live varchar(4) not null

) ;

create table discography ( entry num int unsigned not null auto increment primary key, artist_firstname char(35), artist_lastname char(30), album title char(80) not null, band name char(90) not null, release date date not null, song list tinytext not null, per list tinytext not null, producers tinytext not null,

40 arrangers tinytext not null, recording eng tinytext not null, rec label char(30) not null, rec location char(30) not null, rec date date not null

) ; create table multimedia ( mulid int primary key auto_increment, first_name varchar(40) not null, last_name varchar(40) not null, pictures char(45) not null, audio char(45) not null, fullname char(45) not null, username char(15) not null create table authors

( username varchar(16) primary key, password varchar(16) not null, full_name text not null );

The above code is then loaded into MySQL via the command line interface, shown below in Figure 2.

C:\MYSQL\BIN >mvs 1 < ne a.sL

Figure 2 Command Line Interface

Database Access Methods

With the database structure complete and ready to accept data, the team had to construct a method for users to submit data into the database. While it was possible to enter data into the individual tables directly from the MySQL command line, this is a tedious and frustrating process as the command line interface is a primitive, difficult way to enter data. For instance, if someone wished to simply enter in the artist's name, it would require the following code.

41 Insert into vital slats (first name, middle name, nickname, last name) values

(Edward, Kennedy, Duke, Ellington);

That much code only covers the name! Given this issue, the team made the decision that a better, less tedious way was needed for users to submit information.

The solution was to now make use of the PHP programming language to make access scripts to allow historians and other professionals to enter data.

Visualization

Before any code was written for the front end 26 , it was determined that a color scheme and design layout needed to be established. Initial concept drawings for our front end were created in Microsoft FrontPage, these can be found in Appendix G. However,

Brent Banulis, President of NEJA, decided that he wanted the front end for the project to look exactly like the current NEJA Web site. The team scrapped the initial drawings and decided that in the current situation, the option that made the most sense was to use the existing color scheme and layout which was already in place in NEJA's current Web site27 . Only one change was made to the existing design; the menu buttons would be placed along a bar on the left side of the screen, rather than along the top as shown below:

26 The front end refers to the code (PUP and HTML) for web pages that the user would see when interacting with the historical site. 27 www.neJazz.org

42 tlEJA Mc* t melool.Jarz Alliance fAictosoit lateen. Euakvor piwded by Waco El Polyeadenic limeiredt ► Fie Edit Yew Facades jade hole Ei . . 1 A Bad Fu.ud ste, Reim, Home Seal, Mcd kE Hrtw Rey E.

Ajdress L J

Figure 3 NEJA'S Home Page with Horizontal Menu

Inielested in Saboottrea • blicioraft Internet Eoplorer plorlded bq Wo,erIre Pdysecfape loetiteila •- n Eir Edit _Yet lode halo W Bock RefmA Home 8;2. A,:iress , NEL AV*

Submitting to the Database

Drank you for your mterrsI in submitting to INTJAIs Artist Database. Pleases contact 11,rent.Veranolls for metro ululation au suktnisstarc If you already have a user name and passaal d you may

c-t'i bens AD Wend

Figure 4 Page from our project with vertical menu bar

Now that the web page layout and color scheme were in place the team began to

implement the project.

43 Security

The team began this portion of the project in January with experimentation in

security and user authorization. Since NEJA would have many different people

submitting data to the database, it was necessary to make sure that one person could not

modify or delete another person's data. It was also necessary to limit access to the

submission process to only those whom NEJA authorized. It was during this phase that

the team realized that another table would need to be added to the database. An author's

table, shown in Figure 5, would need to be added which would contain the field's

username, password and the author's full name.

mysql> describe authors: + + + + + + + I Field I Type I Null I Key I Default I Extra I + + + + + + + 1username I varchar(16) I I PRI I I I password I \archar(16) I I I I I I full_name I text I I I I I + + + + + + + 3 rows in set (010 sec)

Figure 5 The new author's table

This table would contain a listing of users that have been granted access to the

submission pages. Users would be added or removed by NEJA's Webmaster, Jeremy

Hitchcock.

According to the technical manual, PHP and MySQL, Web Development, the

easiest way to handle the security issue was to use something called session control

(Thomson and Welling, p. 304). Session control is a very simple and elegant way in

which PHP can limit the access of people to certain areas of a Web site. Session control

44 operates in the following manner. A user wishing to access an area of the Web site, in this case our submission pages, must first log in. During login, the user's name and password are checked against information in a database table on the server. If the user's name and password are contained in the table, the login in is completed successfully.

Once the user is validated and has logged in, a variable called a session variable is set for that user. Now, the browser checks to make sure that the session variable has been set for that user on every page for which access has been restricted. If the variable is set, it

allows the user access to the page. If the variable is not set, it does not allow the user to

access the page.

A basic experiment was conducted on January 21, 2002, to test if session control

would work as expected. A simple web page was constructed and used as the "secure"

page to which access would be limited. Another web page was constructed which would

be used as a login page. Finally a temporary database with a users table was created to

hold users who would be allowed access to the "secure" page.

The experiment was successful. If a user attempted to access the secure web page

without logging in, an error message appeared on screen informing the user that the page

was restricted and that it was necessary to login. If the user tried to login with a name

and password that was not in the database, the user received a message that the login was

invalid and would be unable to access the page. However, if the user logged in with a

valid name and password, the session variable was set and access to the page was granted.

With the security issue resolved, the team then began to focus on the actual submission

process.

45 The Submission Process

Login and Main Menu

The team's first step was to create a login page. The purpose of the login page was to simply query the newly created users table of the database to verify that the user logging in did indeed have access to the submission portion of the site. Again, access to submission pages would be approved by Brent Banulis and granted by Jeremy Hitchcock.

=7: Ilk Eck View Favorites Took F10110

-4, Back Search "; j Favorites Mocks j

Address http./AocalhostAoiktphp Go Links

, ttEw ErtaLAAr JAZZ ALL n A1.16Z

Prstre,ing Net. Engle- A. Submission Login

ain M eon

Figure 6 The Login Screen

As in the example, once the user is validated, the login script sets a session variable for

that user which remains set until the user either logs out or closes their browser.

Here is a breakdown of the code required for the login access shown above in Figure 6.

46 "; echo ""; echo "Login"; echo ""; include('output.php'); do_htmLheader login(); if (@$valid_ user) //if the user is logged in, show these options { echo "
"; echo "

"; echo ""; echo ""; echo ""; echo ""; else //otherwise require the user to log in { echo ""; echo "





Administrative Options

Update Records
Create another Submission
Logout
"; echo ""; echo ""; echo ""; echo ""; echo ""; echo "
Userid:
Password:
"; echo "
";

When the user enters his or her password, and clicks login, the login script that actually queries the database to determine if the user is an authorized user runs. That script is called authmain.php and is shown below.

if (@$userid && @$password) //if the user has entered a name and //password

// if the user has just tried to log in

$db conn = mysql connect("localhost", "webuser", "webuser"); mysqLselect db("nejal", $db conn); $query = "select * from authors " ."where username='$userid' " //connect to the database to

47 //authorize user ." and password='$password' "; $result = mysqlquery($query, $db conn);

if (mysqlnum rows($result) >0 )

// if they are in the database register the user id

$valid user = $userid; sessionregister("valid user");

)

if (sessionis_registered("valid user") ) //if the ID is registered they are logged in

echo "You are logged in as: $valid user
";

else

if (isset($userid))

// if they've tried and failed to log in - if they are not in the // database echo "



Could not log you in! Try Again..

";

else [ // they have not tried to log in yet or have logged out echo "You are not logged in.
"; if (@!$valid user)

] ?>

If the authmain.php script is successful, the user is presented with the main menu shown below in Figure 7.

48 PrOrnoting 1,1ev.t England's Jazz Musicians.

Submission Login

Jaki Byard, originally from Worcester, is one of the NE JA Hall of Fame inductees Main Menu

Figure 7 Submission System main menu

From this main menu, users can update the information on artists already entered or they can create a brand new submission from scratch. The team chose to next implement the artist vital statistics form.

The Vital Statistics Page

The first step of the submission process was to create the vital statistics form that, once logged in, a user would see on screen. The team had two options to use for implementing this feature. One was write the submission form in standard HTML (e.g. submissionform.html), the other was to write a PHP script with HTML embedded (e.g. submissionfrom.php). Using only HTML in this situation is unadvisable, due to the ease of obtaining the code required to perform the function. The HTML code of a web page is visible to all users simply by using one of the standard menu items in the Internet

49 Explorer web browser. Since it was necessary to secure this form with the afore

mentioned session control, and since session control is a function of the PHP language, the team had no choice but to create the form using a PHP script with embedded HTML

being used to generate the layout of the web page.

The team began by creating a file called newartist.php and protecting it with

session control as shown below:

session start(); if (session is registered ("valid user")) { //SUBMISSION FORM CODE } else { echo "

"; echo "

You are not logged in. Please Log in to access this section.

"; }

The session start() command informs the web browser that session control will be used

on this particular web page. The if statement checks to see if the session is registered. As

indicated in the previous section, a session is registered if a user successfully logs in. If

the variable valid user exists, the submission form is displayed. The code for this would

be located between the first set of curly brackets. Otherwise, if the variable valid user

does not exist, it informs the user that the he or she is not logged in and must log in to

access this section.

With session control for the submission form implemented, all that was necessary

was to insert the HTML code for the form itself into the PHP script. During the creation

of the HTML code for the submission form, the team had its first encounter with file

system manipulation. The field titled Front_Pic in Table 3.1 calls for a picture of the

artist, which will be displayed on the first page the user will see when he or she looks at

50 an artist's record in the database. The person submitting the material must acquire an electronic version of the picture on his or her own by either scanning it or finding it online. Either way, the picture must be on the submitter's computer and must be uploaded to the server so that it can be displayed on screen with the rest of the data.

According to chapter 16 in PHP and MySQL Web Programming, the easiest method to upload files was to use the HTML file transfer protocol. (Thomson and Welling, p 352)

There is a two-step process to setting up the form for file transfers. The first step is to change the encoding of the form so that it knows it will be handling files as well as data:

echo "

";

Next, we set up the field on the form that will actually accept the picture file by setting the max file size and then assigning the file a temporary file name, userfil, so it can be passed to the server:

echo ""; echo "Front Page Picture:
";

With this complete, the user could now browse the hard disk on his or her computer for the necessary picture file, and submit it along with the rest of the data.

The remainder of the form was created using fields from the vital_stats table in the MySQL database, shown below in Table 7.

51 Author(s) of Submission Artist Last Name Artist First Name Artist Middle Name Nickname Picture of artist Arranger Composer Bandleader Birthplace Birthdate Instrumentl Instrument2 Instrument3 Location of Death Death Date Brief Bio — with a 200 word limit (hence brief) Full Length Bio (Extended Bio) — with an 1000 word limit Make Live

Table 7 Fields in the Vital Stats Table

Each field displayed on the submission form, corresponds directly to a field in one of the tables in the database. Below is a screenshot from the completed submission form.

52 NEJA Artist Entry Form - Microsoft Internet Explorer provided by Worcester Polytechnic Institute Ele Eck yiew Favaales Dab tielp 4 L-1 Back Sty Refresh Favaikes Eta Discuss Addams itj httlx/iyevectvpiedurfr'ernedfiqpinewartist.php

Submitting to the Database

Login Artist Submission Form: Nlain Menu

JAIL ..1 , : , Zuttfu, _:

—,a37

_

• 11—

sr 1 T.

n• n _'1

Tri tr t

dnstr ;re t

6i Dime

Figure 8 Submission Form

The completed code for this web page shows the HTML embedded within the PRP

session controls.

NEJA Artist Entry Form";

if (session is _registered ("valid user") )

echo ""; echo "

Artist Submission Form:"; echo ""; echo ""; echo ""; echo ""; echo "";

53

echo "

"; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; - echo ""; echo ""; echo ""; echo " "; echo "
Author(s) of Submission (autl, aut2):
Last Name:
Middle Name:
First Name:
Nickname:
Front Page Picture:
Arranger: Yes No
Composer: Yes No
Bandleader: Yes No
Birth Place (City):
Birth Date (YYYY-MM-DD):
1. Instrument:
2. Instrument:
3. Instrument:
Location of Death (City):
Death Date (YYYY-MIT-DD):
Brief Bio:
Full Length Bio:
Make Public? Yes No
You Will have an oppertunity to Submit Articles/Interviews, Pictures and Discographies for this artist after you submit this page.

"; echo ""; echo "
Logout
"; echo ""; else [ echo "

"; echo "

You are not logged in. Please Log in to access this section.

"; echo "

Back to login

"; ?>

54 Once a user has filled in this preliminary submission data, the data must be

written to the database. Following the procedure in chapter 10 of the technical manual,

PHP and MySQL Web Development, the team wrote a PHP script called insert artistphp

that inserts the data from the submission form into the database (Thomson and Welling, p.

238). The script consists of five basic steps: 1. The submission form is checked to make

sure data has been entered in required fields; 2. The script then formats the data for entry

into the database; 3. The script then opens a connection to the database; 4. The script

writes the data from the form to the database; 5. The script confirms the write was

successful and closes the database. When the user pushes the register button at the

bottom of the submission form, the script called insert artist.php is run.

I'LL,- Put !`IFS *IT hsr.iie ati cppertiaiti7

-Article illititeri7iewsr:, Pi :inireS arid ;zraphi.:,1 far 711.1,7 artist of V•.1.7. thus p ape

Register

Figure 9 The Register Button

The insert artistphp script is fairly lengthy. What follows is a breakdown of the code

and the task performed by each section.

NEJA Jazz History Database Entry Complete

55 One first sees the familiar session_start() function. This indicates that this script will be protected by session control so that it cannot inadvertently be run if the user is not logged in. The next three lines starting with print the title seen on the very top title bar of the user's web browser.

3 IVEJA Jazz History Database Entry Complete - Microsoft Internet Explorer provided by Wore Potomol* Fie WS yew Poolltes loft delp

Figure 10 The Title Bar

The final line of this section sets the color scheme of the web page. This line is necessary

for every web page that the team creates.

NEJA Database Entry Complete

The first line informs the user that the database entry is complete. The format for

the date is then set for use in the next line. This is a line of text that is written out later in

the script to a log file. This log file can be used to keep track of who is entering artists

into the database.

$fullname = $first name. "\t" .$1ast name. "1n"; if (!$userfile II @!$done II !$valid user II !$author II !$brief bio II !$arranger II !$composer II !$bandleader II !$last_name II !$first_name II !$birthplace II !$birthdate II !$instrumentl II !$extended bio)

echo "You have not entered all the required details.
" ."Please go back and try again."; exit;

56 This block of code simply checks to make sure the user submitting has entered in all of the basic data. If the basic data has not been entered, the user is prompted to go back and try again.

$death_place = addslashes($death_place); $username = addslashes ($valid user); $middle name = addslashes ($middle name); $instrumentl = addslashes($instrumentl); $instrument2 = addslashes($instrument2); $instrument3 = addslashes($instrument3); $death_date = addslashes($death_date); $author = addslashes($author); $arranger = addslashes($arranger); $composer = addslashes($composer); $bandleader = addslashes($bandleader); $last name = addslashes($last_name); $firI_name = addslashes($first_name); $nickname = addslashes($nickname); $birthplace = addslashes($birthplace); $birthdate = addslashes($birthdate); $brief bio = addslashes ($brief bio); $extenaed bio = addslashes($eiended bio); $make live = addslashes($done);

This block of code formats all of the data so that when it is retrieved from the database it looks correct on screen.

if ($userfile=="none")

echo "Problem: no file uploaded"; exit; ] if ($userfile_size==0) [ echo "Problem: uploaded file is zero length"; exit; ] if (!is uploaded file($userfile))

echo "Problem: Possible File upload Attack"; exit

$upfile = $userfile_name; if ( !copy($userfile, $upfile))

echo "Problem: Could not move file into directory"; exit;

57 This block of code checks three specific areas of the picture file being uploaded to the server. First, it verifies that the file exists. Second, it checks to make sure that the file does not change during the upload. Finally it checks to make sure that the file is correctly copied to the server's hard disk.

@ $db = mysql_pconnect("localhost", "webuser", "webuser"); $fp = fopen("entries.txt", "a", 1); if (!$db)

{ echo "Error: Could not connect to database. Please try again later."; exit;

mysql_select_db("nejal"); $query = "insert into vital_stats (front_pic, author, username, last_name, middle name, first name, nickname, arranger, composer, bandleader, birthplace, birthdate, instrument1, instrument2, instrument3, death_place, death_date, brief bio, extended bio, make live) values (".$upfile.",".$author."','".$username."','".$1ast name.",".$middl e name."','".$first name."',".$nickname.",".$arranger." 1 ,'".$compose r.",".$bandleader."',".$birthplace."','".$birthdate."','".$instrumen tl.",".$instrument2."','".$instrument3."','".$deathplace."','".$deat h_date."','".$brief bio."',".$extended bio."','".$make live."')"; $result = mysqLquery($query); if ($result) echo mysql affected rows()." artist inserted into database." ; if ($result) fwrite($fp, $outputstring);

This block of code handles the insertion of the form data into the database. A connection to the database is made and the appropriate database is selected, in this case the NEJA1 database. The $query variable is set by pairing up the appropriate field in the

submission form to the field in the vital_stats table in the database. This query is then run via the mysql query() 28 function. The result is then checked by seeing if the database has

28 function provided by PHP

58 been altered using the mysql addected rows0 3 function. If the database has been altered the addition is considered successful.

Submitted into the database along with the artist data is the author's username.

For example, assume that Professor Richard Falco, Director of Jazz Studies at WPI, was

submitting an artist to the database. If his username were rfalco, that name would be

encoded into the table with the rest of the artist data. This allowed the team to key

submissions to specific authors so that later, when the scripts for updating records were

created, they could be written so that when run, only records belonging to the user logged

in would be able to be seen or altered by that user.

echo "

"; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; ?>

This block of code is responsible for creating the menus that allow the user to

submit other materials related to the artist he or she just submitted. It also allows the user

to update another artist he or she might have previously submitted.

This menu is crucial to the successful operation of the submission process as it

can only be accessed directly after the vital statistics form for an artist has been submitted.

59 This is a crucial point because the full name of the artist is "passed" along as a variable via this menu to one of the advanced submission options menus. So for instance, if the user clicks on submit audio clips, the artists name will be passed as a variable into the audio clips menu and from there, is used to display current audio clips in the database.

Similarly, if the user adds an audio clip, the artist's name is keyed to that specific audio clip. The same example can be applied to articles, interviews, pictures and discography information. The team chose the artist name simply because it was most likely to be different for each artist and it was easier to key together data from different tables using the artist's full name, rather than random numbers.

There will be more information on this area in the upcoming sections of this paper as the advanced submission options menus are explored in detail.

Figure 11 The menu

60 The Audio Clips

With the basic vital statistics submission process completed the team then began work in mid February 2002 on what they dubbed "advanced submission options". This term encompassed data such as pictures, audio, articles, interviews and the discography entries. The easiest of these five categories was the audio clips because the team already had experience with uploading files by implementing the front-page picture feature in the vital statistics section of the submission process.

While implementing the audio upload component of this project might have been

easy, choosing a standard audio format to support was not. It was decided in November

of 2001 that a standard audio format would be used for audio clips submitted to the

database. The team made the decision to support only the Moving Pictures Experts

Group Layer 3 format (MP3) audio clips for the following reasons. First, MP3 clips are

very small. An average digitized audio track can be compressed to about 8 percent of its

original size, or a compression ratio of 12:1 29 . An average CD can hold approximately

74 minutes of music in Wave (WAV) format. The same CD can hold almost 12 hours of

music4 stored in the MP3 format. This allows more clips per artist to be uploaded to the

server than any other format available. MP3's were also recommended to us as an

excellent choice for audio in a November 9, 2001 interview with Amy Marr, Manager of

WPI's Web Development office. With this decision in mind, the team went forward and

implemented audio clip submission.

When a user clicks on Submit Audio Clips he or she will see the following screen

shown below in Figure 12.

29 http://www.2look4.com/faq.html

61 TL, Fie Lilo yievii LT," Tools neip

Eiac< sto, Refresh Hone Favorles Media rl stay Pmt Edit kddieys

Audio Submission

Logout

To Main Menu

Back To Submission Options

dvanced Submission Options!

strative 0 dons

Done Internet

Figure 12 The Audio Submission Screen

This screen is divided up into two distinct sections. The first section, marked in yellow, would display any audio clips already in the multimedia table of the database. These audio clips, if any exist, are retrieved from the database using the artist's full name variable passed in via the menu in Figure 12. The name is run through the simple database query shown below.

$query = "select * from multimedia where fullname = '$fullname'land audiodesc!=""; $result = mysqlquery($query);

This section is quite useful as it allows users to not only see what audio clips have already been submitted for this artist, but also allows users to delete clips. When a user deletes an audio clip from this section, it is also deleted from the hard disk.

62 The second section, marked in red, is where the user can actually submit new audio clips. Technically, this works exactly the same way that the front-page picture field worked in the vital statistics section. Users can browse their hard disk for audio clips and submit them to the database by clicking the upload audio button. A description must also be entered for the audio clip before it is uploaded. All new audio clips will be keyed to the artist using the artist's full name. The audio clip is then stored on the server's hard disk and a path to the file is encoded in the database so the clip can be retrieved at a later date. Below is the code that goes with Figure 12 found above.

@ $db = mysql_pconnect("localhost", "webuser", "webuser"); //connect to database

if (!$db)

echo "Error: Could not connect to database. Please try again later."; exit;

mysql_select_db("nejal"); //run query to see if artist has any audio //clips $query = "select * from multimedia where fullname '$fullname' and audiodesc!=""; $result = mysqLquery($query);

$num results = mysql num rows($result);

if ($num results == 0) [ echo "
No Audio for This Artist";

for ($i=0; $i <$num results; $i++) //if there are audio clips, //display them

$row = mysql_fetch_array($result); $audiotitle = htmlspecialchars (stripslashes($row["audiodesc"])); $link = htmlspecialchars (stripslashes($row["audio"])); echo "

".($i+1).". Title: ";

63 //echo ""; echo ""; echo "Audio Clip Title: "; echo " Upload this Clip: "; echo " "; echo ""; echo "

Advanced Submission Options

Submit Photos
Submit Articles or Interviews
Submit Audio C1ips
Submit Discography Information

AdMinistrative Options

Main Menu
Update Records
Create another Submission
Logout
"; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; } else

{ echo "


Please Log In To Access this Section

";

} ?>

When the user clicks the upload audio button, the insert audio.php script is run.

This script is responsible for actually inserting the audio clip into the database. This

script was written using the vital statistics data insertion script as a guide. Code with an

explanation is given below.

64 if (@!$valid user) //session control: make sure user is logged in { echo "

You are not logged in. Please Log in to access this section.

"; else ( if ($userfile=="none") //check to see if file exists

echo "Problem: no file uploaded"; exit;

if ($userfile size==0) //check to see if file exists

echo "Problem: uploaded file is zero length"; exit;

if ($userfile type != "audio/mp3") //ensure that file is in MP3 format

echo "Problem: file is not an MP3 Format File"; exit;

if (!is_uploaded file($userfile)) //check for errors during upload { echo "Problem: Possible File upload Attack"; exit;

$upfile = $userfile name; if ( !copy($userfile, $upfile))//check for error during copy

echo "Problem: Could not move file into directory"; exit;

@ $db = mysqLpconnect("localhost", "webuser", "webuser"); //connect to //database if (!$db)

echo "Error: Could not connect to database. Please try again later."; exit; mysql_select_db("nejal"); //insert audio file information, audio //description, artists full name $query = "insert into multimedia (audio, fullname, audiodesc, username) //and username in database values ( $upfile."','".$fullname.",".$audiodesc.",".$valid user."')"; $result = mysql_query($query); if ($result)

echo "
File inserted into the database
";

echo "File uploaded successfully

"; echo "


"; echo "
Add More Audio Clips";

?>

65 The Pictures

Another requirement of this project, was to allow a user to submit multiple pictures of an artist into an online "photo gallery". The team chose the Joint Photographic

Experts Group (JPEG) format for all pictures in the project because it is the standard photo format for the World Wide Web. It also allows images to be made smaller 30 and

smaller images allow for a faster transfer rate across a network. The JPEG format also reproduces full color images better than most other formats available. During the same

November 9, 2001 interview, Amy Man also recommended the JPEG format to us as a

standard. With the decision made, implementation began in late February 2002 on the

photo gallery submission pages.

The photo submission page was constructed using the audio submission page as a

model, since both are essentially the same type of submission with the exception that one

is an audio clip and another is a photo clip. Shown below in Figure 13 is the photo

submission page. Notice the similarities to the audio submission page discussed earlier.

3(1 http://www.faqs.org/faqs/jpeg-faq/part1/

66 -3Fhoto Submission - Hicroson Internet Explorer provided by Worcester Polytechnic Institute Fie Edil View Fawner. Tools Hato 4 Back Stop South Fannies Mode Hi Pmt Eck Dimas 4Am:sit) http://wwwepiedurecncdficpiphotos.php ?Go '1 Links

Pr o, . Photo Submission

33- n rs1 r. he 54L , 1,1, C. In ,thrteC., Logout.

To Main Menu Add Photos: Back To Submission, Qp_tions t T- . ad this Pic Upload Pic

Advanced Submission Options

_f. ninistrative Options

Done Internet

Figure 13 Photo Submission Page

This page is split into two distinct sections, just like the audio submission page. The

section highlighted in yellow would display any photos currently in the database for the

artist currently selected. These photos, if any, are retrieved from the database by

performing a query using the artist's last name that is passed into the PHP script as a

variable. The lines of code that handle this script are almost the same as the lines for the

audio clips with the exception that they query picdesc instead of audiodesc.

mysql_select_db("nejal"); $query = "select * from multimedia where fullname = '$fullname' and

poicciesc!= ""; $result = mysqlquery($query);

67 The user would also have the option, as in the audio clips section, to delete photographs.

Photographs deleted from this page are also deleted from the server's hard disk.

The section highlighted in red is where users can add photographs. Like the audio submission page, users can browse their hard disk for pictures, enter in a description and submit the file to the server. The file is then stored on the hard disk and a path to the file is set in the database so the file can be retrieved at a later date. Like the audio clips, the pictures are keyed to the artist via the artist's last name.

As in the audio clip submission process, when the user clicks upload PIC a separate script is run. In the case of picture submission, this script is called insert_photo.php. It is based heavily on the code used in the insert audio.php script mentioned above with modifications made to allow the script to handle photos instead of audio. Code with an explanation is given below.

You are not logged in. Please Log in to access this section.

"; ] else I if ($userfile="none") //Check to ensure the file exists I echo "Problem: no file uploaded"; exit; I if ($userfile size==0) //ensure file size is not zero I echo "Problem: uploaded file is zero length"; exit;

if (!is_uploaded file($userfile)) //ensure file not modified during upload I echo "Problem: Possible File upload Attack";

68 exit;

$upfile = $userfile_name; if ( !copy($userfile, $upfile)) //verify copy

echo "Problem: Could not move file into directory"; exit;

} //Open database connection @ $db = mysqlpconnect("localhost", "webuser", "webuser");

if (!$db)

echo "Error: Could not connect to database. Please try again later."; exit; }

mysqLselect_db("nejal"); //insert picture/description into database $query = "insert into multimedia (pictures, fullname, picdesc, username) values user."')"; $result = mysql_query($query); if ($result)

echo "
File inserted into the database
";

echo "File uploaded successfully

";

echo "


"; echo "Add More Photos";

? >

Discography Entries

Along with the vital statistics data, the team was also required to implement a method of storing discography information for each artist. Each artist could have more then one discography entry. With that in mind the team decided to write scripts to key the discography information to the artist by using the artist's full name, much in the same way the photo and audio clip submission scripts were written. The main difference

however, is that the discography component was modeled after the vital statistics

69 submission pages since they both involved multiple fields. Where in vital statistics had fields such as birth date and death date, discography has to include fields such as recording date and recording location. A complete list of fields found on the discography entry form is given in the Table 8 below.

Album Title Band Name Release Date Song List Personnel List Producer(s) Arranger(s) Recording Engineer(s) Record Label Recording Location Recording Date

Table 8 Fields in the Discography Table

Just as in the vital statistics submission form, every field in the discography form corresponds to a field in the discography table in the NEJA1 database. Once the fields were determined, as with the vital statistics submission page, a form was needed to allow the user to enter in data. This form was also constructed in the same manner as the vital statistics form. Session control was first implemented on the form, and HTML code was then inserted into the form to create the final product. A screen shot can be seen below in

Figure 14.

70

a NEJA Artist Discography Entry Form Microsoft Internet Explorer Er View Favorites Tools Help Back j j ,A Search

Address hrtp //'ccalhostlieAdtsc Dnp ,utrame-pebicw o Links

NEW ENGLAND JAZZ ,ALLIAND

Promott -tg vex. Erg. lard', Submitting to the Database

2aki ?,vard, ori;Ina fror- Vi-rce,ter, is one of Fa -no incucta,,

tam Tiie arise

Figure 14 Discography Submission Form

Once the user enters data into the discography submission form, the data must be

written to the database. The team modified the five-part insert artist.php script written

earlier for the vital statistics submission form to fit the needs of the discography entries

page. The new script was called insert disc.php, the code for which is shown below.

NEJA Jazz History Database Entry Complete NEJA Database Entry Complete

71 $album title = addslashes($album title); $band name = addslashes ($band name); $rec date = addslashes($rec date); $rec label = addslashes($rec label); $rec location = addslashes ($rec location); $releasedate = addslashes($reiease date); //format data for //database storage $recording eng = addslashes ($recording eng); $producers = addslashes($producers); $arrangers = addslashes($arrangers); $per list = addslashes ($per list); $song list = addslashes ($song list);

//connect to database @ $db = mysql_pconnect ("localhost", "webuser", "wabuser"); $fp = fopen("entries.txt", "a", 1); if (!$db)

echo "Error: Could not connect to database. Please try again later."; exit; } mysql_select_db("nejal"); //insert discography information //into database $query = "insert into discography (album title, band name, release date, rec label, rec location, rec date, recording eng, producers, arrangers, per list, song list, fullname) values ('".$album title."','".$band name."','".$release date."','".$rec label. "','".$rec location."','".$rec date."','".$recording eng.",".$produce rs.",".$arrangers." 1 ,'".$per list."','".$song list."','".$fullname."' ) II ; $result = mysqLquery($query); if ($result) //confirm a successful insert echo mysqLaffected rows()." Discography Entry Complete." ;

//create menu echo "

Advanced Submission Options

Submit Photos
Submit Articles or Interviews
Submit Audio Clips
Submit Discography

Administrative Options

Update Records
Create another Submission
"; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; ?>

72 If this code runs successfully, it produces the following output indicating that the discography information was successfully inserted into the database. It then produces a menu allowing the user to continue adding data related to the current artist, or allowing the user to create and submit an entry for a new artist.

N JA Jazz History Database Entry Complete - Microsoft Internet Eeploterr x Fie Edit View Favorites Tools Het,

Hack - • S teach _IFavorites jMecia

Address I httr. /1104,1,12waert_disc php ,!ttin c> Go Links

NEJA Database Entry Complete

1 Discoaphic d Entry C:Anplett Advanced Submission Options

Administrative Options

- Ppr., r-13 rears es,oHi -r fat:

Local intianet

Figure 15 Completion of Discography Entry

Articles and Interviews

The final advanced submission option the team implemented was the ability to insert articles and/or interviews for an artist in three different ways. The first is the inclusion of a web link to another web site, the second is to upload a text file only, and the third is to cut and paste or directly type text into a text window. The team decided to

73 support these three methods of entering articles and interviews because they were easy to implement on both the retrieval side of the front end and the storage side of the back

end31 . Also it was easier to support a basic text file format instead of something more

elaborate such as a Portable Document Format (PDF) file.

The first issue that the team faced was where to store the data related to

individual articles and interviews. No table currently existed in the database that was

capable of handling the data. Therefore, a new table needed to be created in the NEJA1

database to hold all the required data. The team decided on the fields found in the

following table.

Artfile — stores the path to an uploaded article(text file) Fulltextart — stores the full text of an article that has been pasted or typed in Artlink — stores the link to an article on another web site Fullname — full name of the artist, used to key the articles/interviews to artist Usemame — stores the username of the author who created this submission Artdesc — description of the article Intdesc — description of the interviewl In file — stores the path to an uploaded interview transcript (text file) Intlink — stores a link to an interview on another web site Fulkextint - stores the full text of an interview that has been pasted or typed in

Table 9 Fields in the Artist Entry Table

With the back end now set up to handle the incoming articles and interviews data,

the team began to design a form to allow the user to enter this information. The form

design was based on that of the picture and audio entry form in that it would list the

current articles and interviews already in the database for the given artist. The team

31 The back end refers to the part the user does not see on screen. In this case the MySQL database and PHP scripts.

74

would also have to design the form to allow for file handling since users were given the

option to upload a text file. The team came up with the form design found in Figure 16.

Fie Ebt Meer Eawiies Tods Help

b eck ..ASeeich Favorites Merin

Address I harifiloceihost/mbritphpAtin,,,Fieff lams r> Go Links "

Articles and Interviews Submission

- `he 14E:A

-Lo out Number of articles : RedHarrison

To Main Menu ht.t - 7:111, rt Back To Subroissio f? tions other of Interviews : Redllarrison

1 , I - his k-tist

d Articles

Article Title Li - .1111111111111111111=111110

.Arzcle T.tie . Upload this Artie Browse j Up!c ad

• wiivrAilmsi 111111111111111111.=

Figure 16 Articles and Interviews Submission Page

The section marked in red gives the artist name, in this case the fictitious name

Red Harrison, and would list any articles in the database for Red Harrison. The section

marked in yellow performs the same task except it displays interviews. If articles or

interviews were available for Red Harrison, the user would have the opportunity to delete

individual ones in these two sections. If one scrolls down the submission page, one can

see the text entry area for articles, found in Figure 17.

75 Atticies and Interviews Submission Microsoft Internet Explorer

Fie E View Favorites T pots Hefts

Back - j A -_,IFavordct Media

Address http - i/bcall-ocilagint php.'h Annme,Fieft larm -n

Figure 17 View of the Articles Data Entry Screen

Here the user has three options: the first line allows the user to add a link to an article on another Web site; the second line allows the user to upload a text file to the server's hard disk; and the third line and corresponding text block allows a user to manually type or cut and paste in the text of an article. If one were to scroll further down the submission page, the same three sections are seen, but instead of being for articles, they would be for interviews.

Pressing the add, upload or submit (not shown) buttons, as in all past scripts, sends the data entered into the form to the table in the database. In this case each specific button sends the data from its specific field to the corresponding entry in the table, as shown below in Table 10.

76 Add 4 Send the Link information to the database Upload 4 Sends the file to the servers bard disk and stores file path information in the database. Submit 4 Adds the text to the database

Table 10 Form Buttons and their actions for the articles/interviews form

Even though the team was dealing with two different types of media, articles and interviews, and three different submission methods, text file, link, and direct entry, only one script insert artintphp was needed to complete the database submission. The code and a description is given below.

echo "

You are not logged in. Please Log in to access this section.

"; } else [ //is it an uploaded article text file or (II) an uploaded interview //text file //if its not skip this entire block if (@$userfile II @$userfileint)

if (0$userfile=="none" II @$userfileint=="none") [ echo "Problem: no file uploaded"; exit;

if (0$userfile size==0 and 0$userfileintsize==0)

echo "Problem: uploaded file is zero length"; exit;

if (0$userfiletype != "text/plain" and @$userfileint_type != "text/plain")

echo "Problem: file is not plain text"; exit;

if (@$userfile)

77 { $upfile = $userfile name; } else

{ $upfileint = $userfileint name;

//Upload the file if ( !copy($userfile, $upfile))

{ echo "Problem: Could not move file into directory"; exit;

@ $db = mysql_pconnect("localhost", "webuser", "wabuser"); if (!$db)

echo "Error: Could not connect to database. Please try again later."; exit; } //adds file path information to the database mysqLselect_db("nejal"); $query = "insert into art_int (artfile, fullname, artdesc, username, intfile, intdesc) values (".@$upfile."','".@$fullname."','".@$artdesc."','".$valid user."', '".@$upfileint."','".@$intdesc."')";

$result = mysql_query($query); if ($result) { echo "
File inserted into the database
";

echo "File uploaded successfully

";

if ($userfile) { $ fp = fopen ($upfile, "r") ; $contents = fread ($fp, filesize ($upfile)); fclose ($fp);

$contents = strip tags($contents); $fp = fopen($upfile, "w"); fwrite($fp, $contents); fclose($fp); //preview the file if its an article echo "Preview of uploaded file contents:


"; echo $contents; echo "

"; echo "Insert More articles/interviews";

else

{ $fp = fopen($upfileint, "r"); $contents = fread ($fp, filesize ($upfileint)); fclose ($fp);

78 $contents = strip tags($contents); $fp = fopen($upfileint, "w"); fwrite($fp, $contents); fclose($fp); //preview the contents if its an interview echo "Preview of uploaded file contents:


"; echo $contents; echo "

"; echo "Insert More artiles/interviews";

//is it a link to another article or a link to another interview, //if its not //skip this entire block if (@$artlink II @$intlink)

{ @ $db = mysqLpconnect("localhost", "webuser", "wabuser"); if (!$db) { echo "Error: Could not connect to database. Please try again later."; exit;

mysqLselect_db ("nejal ") ;//add data to database $query = "insert into art int (artlink, fullname, artdesc, username, intlink, intdesc) values (".@$artlink.",'".$fullname.",".@$artdesc."','".$valid user. .@ $intlink."','".@$intdesc."')"; $result = mysql_query($query); if ($result)

echo "
Link inserted into the database
";

echo "Insert More articles/interviews";

//is it the full text of an article or the full text of an //interview if (@$fulltext II @$fulltextint)

@ $db = mysqLpconnect("localhost", "webuser", "webuser"); if (!$db) { echo "Error: Could not connect to database. Please try again later."; exit;

mysqLselect_db("nejal"); //add the text to the database $query = "insert into art_int (fulltextart, fullname, artdesc, username, intdesc, fulltextint)

79 values

('".@$fulltext."','".$fullname."','".@$artdesc."','".@$valid user."', ► .@$intdesc."',".0$fulltextint."')"; $result = mysqLquey($query); if ($result)

echo "
Text inserted into the database
";

echo "Insert More articles/interviews";

If the code successfully executes, a screen, similar to the following in Figure 18, is viewed by the user.

ame-EdwardEllington - Microsoft Internet Explorer

Fie F di View Favorites i oola Help

Beck _ASearch J Favorites Media j Js

Address http Alor.at-n4Insert_mrini php -',11narn,- dwardE L >Go Links

NEW ENGLAND JAZZ ALLI

Prom Articles and Interviews Submission

Loaout

To Main Menu

Back To Submission

Options

Figure 18 Confirmation of added articles/interviews

80 The screen shot above shows a successful addition of an article that was uploaded to the

server from the user's hard disk. In this case, a preview of the article text is shown between the two horizontal blue lines. When submitting either a link or typing text in

manually, a preview will not appear.

Updating records

With the scripts and forms to submit an entry completed, the team now needed to

develop a way to allow users to update artist records that had been previously submitted.

The only section that required update functionality was the vital statistics form. The

pictures, audio, articles/interviews and discography sections already had update

functionality built in because of the nature of the data. If the team wrote update scripts

for these sections, they would be exactly the same as the initial submission scripts already

in place. Rather than write redundant code, the team chose to use the already existing

submission scripts for these sections.

Because the team had keyed each artist submission to the user's username, it was

possible to query the database to determine which user submitted each artist entry. So for

example if user "emcd" created artists X, Y and Z, emcd's user name would be stored

with the artist data in the vital statistics table of the database. When emcd logs in, a

query will be run on the database searching for all records with emcd stored in the

username field. The records corresponding to his username would be returned to the

screen so emcd could pick the one he wished to update. Using this example as a guide,

the team designed the following form, Figure 19, which would be seen immediately after

81 the user logged into the NEJA system and chose the update records option from the main menu.

. -Mint Fie E 5t View Favorites T cols Help

Back Ar Search JFavorites umed-

Address A/lambast/14)&1.0p

Update Records

L000ut

To Main Menu 1. Artist Nam e: Fichvard e ete is Artist Q. VERN, 'RING, articles, etc..! Back To Submission c on re e : es 0 . Artist Name: Harrison, Red Delete this Artist (EVERYTHING, articles, etc..) Public on the Web: Yes

Local tritiane,

Figure 19 Update Records Screen

Here we see that this user has previously entered in two different records, one for Edward

Ellington and another for Red Harrison. This screen also shows whether or not the record

has been made public and can be seen by the general public. From this screen the user

has two different options. By clicking on the link in the red box, the user can continue on

to update data on the vital statistics page, add/remove pictures, add/remove audio clips,

add discography information or add articles/interviews. By clicking on the link in the

yellow box, the user can delete everything related to the artist and start again from scratch.

82 Deleting everything removes all records in all tables from the database linked to that artist's full name; all interviews and articles, pictures, audio clips and discography information are removed. This is achieved by using a master delete script provided below32 . It is from this script that the team created each of the individual delete scripts.

For example, the script to delete only audio clips.

"; echo ""; echo "Records Update"; echo ""; include('output.php'); do html header update(); if (@!$valid user) //check to make sure user is logged in

{ echo "

"; echo "

You are not logged in. Please log in to access this section."; echo "

Login";

} else

$date = date("H:i, jS F"); //create a date //format data for a delete log file $outputstring = $date."\t".$valid user. "\tRecord Number:" .$num. "\t";

@ $db = mysqLpconnect("localhost", "webuser", "webuser");

if (!$db)

echo "Error: Could not connect to database. Please try again later."; exit;

}

mysql_select_db("neja1"); //select the database $fp = fopen("deleted.txt", "a", 1); //open delete log file $query2 = "select * from vital where entry num = '$num'"; $result2 = mysqLquery($query2); $row = mysq1_fetch_array($result2); $firstname = htmlspecialchars (stripslashes($row("first_name"])); $lastname = htmlspecialchars (stripslashes($row["last name"])); $fullname = $firstname."" .$lastname. "\n"; //get file location(s) from the articles and interviews table for any //uploaded articles/interviews $query4 = "select * from art_int where artdesc = '$fullname' and artfile!= "";

32 The version of this script given does not include the code to delete audio/picture files from the server

83 $result4 = mysql_query($query4); $row2 = mysql_fetch_array($result4); $delfile = htmlspecialchars (stripslashes($row2("artfile"])); system("del $delfile"); //delete files from server hard disk

//delete the vital statistics record $query = "delete from vital where entry num = '$num'"; //delete articles and interviews $query3= "delete from art_int where fullname = 1 $fullname"; //delete multimedia file descriptions $query5 = "delete from multimedia where fullname = '$fullname'"; $result4 = mysqLquery($query5); $result3 = mysqLquery($query3); $result = mysqLquery($query); if ($result && $result3 && $result4) //confirm deletion success

{ echo "

Record has been deleted

"; fwrite($fp, $outputstring); //write delete log file

else

{ echo "

There was an error, Please try again later..

";

If the user clicks on the link in the red box, the update vital statistics screen is shown below in Figure 20.

84

NEJA Temporary Artist Entry Form - Microsoft Internet Explorer Fie Edit View Favorites Took Help

Back J A ..11Seitrich _I Favorites .3 Merle j Address Mocahost Ipi,,tarbstplip?nurr.27

Update Records

L000ut Artist Update Form: To Main 1iel-1u To Add or Delete Individual ArticleslnterviewsrPhotos/Audio, Simply Push the Update Artist button to preserve Back To Submission biographical information and skip to attachments update. aptisal Page :Picture

lams:

dle llame:

1:,'"atne

111:kname: Art anzer vs es dleader (Cirri D ate tYirri-mm-pp, ,,,

one Local Intranet

Figure 20 Vital statistics update form

Here the user can make changes to an artist's vital statistics and press submit, or make no

changes and press submit. If the user makes changes, the following screen will be shown

upon pressing update.

85 3 NEJA Jazz History Database Entry Results - Microsoft Internet E lifgOlet xj Re Edit Item Favaites Toth Help

Back , .Search ,jfavoirtes ,-1Medie _ Address 1 httpc/Aocalhost/update arbstphp?num-27 ?Go Lek* x Database Entry Results

Update Successful fa

cid kttzle -r Intrffyleftv:,. <11 drnhtistratIve 0 dons con

Tjpela".,' ;-. cords

.7reatT' om7,-ker z7:111..trc,sioti

J Done Lose/ intranet

Figure 21 Update complete

This screen displays any changes, in the form of a list, which the user may have made to the vital statistics table. In this case, the user has chosen to modify only the artist's middle name. If the user had not made any changes, the same screen would appear, but only display the menu. From the menu, the user can update other sections of the artist record such as pictures, or choose one of the administrative options.

86 Data Retrieval

The Search Form

With the submission process in place, the team next turned to the search engine that the general public (visitors) would use to view artist data submitted to the database.

Using the same visualization scheme from the submission pages, the team designed a search form, where visitors could query the database using specific criteria.

31 NEJA Artist Search Engine - Microsoft Internet F sploier

0, Go Links "

NEJA Jazz History Archive Search

Back to Main NI ttrr ClicakESearvh Criteria: La:t r, arne C

Figure 22 Main search window

87 Jaki Byard., originally from Worce

I Last Name Last Name First Name Nickname Instrument

Place of Birth NEJA Historian

Figure 23 Search Criteria

Last name — Artists Last Name First Name — Artist First name Nickname — Artists nickname Instrument — Artists Instrument Birth Date - Artists Birth Date Place of Birth — Artists Place of Birth NEJA Historian — Author of Submission

Table 11 Search Criteria

There are two options available to the visitor. The first is clicking on list all artists, which lists all the artists in the database. The second option is performing an actual search. To perform a search, users simply pick search criteria from a list and then enter in the search term. For example, if a user were to pick instrument, they could then enter into the search term text box and upon pressing search, the database would return all the artists in the database who play piano. The PHP script, which performs the actual search operation, is called results.php.

88 NEJA Database Search Results //Set the page color scheme

echo "You have not entered search details. Please go back and try again."; exit;

$searchtype = addslashes($searchtype); //format query $search term = addslashes($searchterm); @ $db = mysqLpconnect("localhost", "webuser", "webuser"); //connect to database if (!$db)

echo "Error: Could not connect to database. Please try again later."; exit; ] mysqLselect_db("nejal"); //select database //perform query $query = "select * from vital_stats where ".$searchtype." like ' 96".$searchterm."%' and make live = 'yes'"; $result = mysqLquery($query);

$num results = mysqLnum rows($result);

echo "

Number of artists found: ".$num results."

"; for ($i=0; $i <$num results; $i++) //print out the artists

$row = mysqLfetch_array($result); $num = htmlspecialchars (stripslashes($rowl"entry num".7)); echo "

".($i+1).". Artist Name: "; echo ""; echo htmlspecialchars (stripslashes($row["last_name"])); echo ", \t\t"; echo htmlspecialchars (stripslashes($row["first_name"])); echo "

";

if ($num results == 0)

echo "

No results were found that match your query. Please try again...
";

?>

89 By formatting the query "select * from vital stats where ".$searchtype." like

'%".$searchterm."%' and make live = 'yes' ", the team could access not only the artists name, but also the artist record number, the field entry_num, for each artist. This number is unique to each artist record and therefore can be used later to retrieve all the information for a specific artist and display it on screen.

The getphp Script

After selecting a search option clicking the search button, the visitor is presented with the results form that displays the results of the query, shown in Figure 24.

Fie Ed* View Favorites -reds Help

NEJA Jazz History Archive Search

i_:E Local Monet

Figure 24 Search results

90 In this case there are three records in the database that match the search term entered by the user. Clicking on an artist name runs the get.php script, which retrieves all the information for the artist and formats it for on screen presentation. The get.php script knows which artist record to display because the record number, which was retrieved in the results.php script, is passed to it. That record number is then matched to the record in the vital_statistics table to display the proper data on screen. The code required for the get.php script is given below.

Artist Information

] mysql_select_db("nejal"); //select database $query = "select * from vital_stats where entry num = '$num'"; //get all data for artist by using the record number ($num) $result = mysqtquery($query); $row = mysqlfetcharray($result);

//this block formats all the data for onscreen display $pic = htmlspecialchars (stripslashes($row("front_pic" .1)); $first_name = htmlspecialchars (stripslashes($row["first_name"])); $last_name = htmlspecialchars (stripslashes($row("last_name".1)); //set up the fullname variable for use in retrieving other artist data $fullname = $first_name. "\t" .$1ast_name. "\n"; do_html_header get($fullname); echo "

"; echo htmlspecialchars (stripslashes($row["first_name"])); echo "\t"; echo htmlspecialchars (stripslashes($row["middle_name"])); if ((stripslashes($row[unickname" .0)==null)

{ echo "\t"; ] else

91 echo "\t'"; echo htmlspecialchars (stripslashes($row[unickname"))); echo "\t";

} echo htmlspecialchars (stripslashes($rowl - "last_name"])); echo "

"; echo "
Submitted By: "; echo htmlspecialchars (stripslashes($row["author"])); echo "
"; echo ""; echo "


"; echo "

Date of Birth: "; echo htmlspecialchars (stripslashes($row("birthdate".0); echo "
Location of Birth: "; echo htmlspecialchars (stripslashes($row["birthplace"])); echo "
"; echo "
Date of Death: "; if ((stripslashes($row["death date"])) == null)

echo "N/A"; //if no death date, print N/A else [ echo htmlspecialchars (stripslashes($rowl""deathdate"])); echo "
Location of Death: "; if ((stripslashes($rowl - "deathplace"])) == null)

echo "N/A"; //if no location of death, print N/A else

echo htmlspecialchars (stripslashes($row["deathplace"])); echo "
"; echo "
Primary Instrument: "; echo htmlspecialchars (stripslashes($row["instrumentl"])); echo "
Other Instruments: "; if ((stripslashes($row[flinstrument2"])) == null && (stripslashes ($row["instrument3"])) == null)

echo "None";

else

echo htmlspecialchars (stripslashes($row["instrument2"])); echo ", \t"; echo htmlspecialchars (stripslashes($rowl""instrument3"]));

echo "

"; echo "Arranger: "; echo htmlspecialchars (stripslashes($row["arranger"])); echo "
Composer: "; echo htmlspecialchars (stripslashes($row["composer"])); echo "
Bandleader: "; echo htmlspecialchars (stripslashes($row["bandleader"])); echo "


Brief Bio

";

92 echo "

"; echo htmlspecialchars (stripslashes ($row[ "brief bio"1 ) ) ; echo "

"; //end formatting block echo "Get Full Bio";

?>

Shown in Figure 25 is an example of the on screen output of the getphp script.

— s

• , P ,ri w -1"

0th, Atli. Information ward Kennedy 'Duke' Ellingto

Iniaoes nvitzeti By: Eric AkDorfogge

Articles and Interviews

Audio Clips

Discography

'Shin Mew

'matter Sranh

of Birth: 1912-02-03 cuion of

of Death: 19 alien of Death: New

,yttt2Sy lia'zument: Cher :astruzleirs: Ids re

a-4e! Yel. Yes

Brief Bit) I Parr; 79 Ar,i3 1299 in ViaOlirttral DC compf:ser, E4W701 ,7: ennedy ("Duk,&•) Ellingt ,:;n was reutilized

Figure 25 Main artist information screen

The get.php script's output produces a screen with the artists name, the authors name, a picture (the front page picture mentioned in the submission pages), birth date, birthplace,

93 death date, death place, instruments, whether the artist was a composer, arranger, bandleader, a brief bio, and a link to an extended biography.

found consummate exp and Beige (which he su Harlem"),

Figure 26 Link to the artist's full biography

Clicking on this link passes the artist record number to the script extended, which is a

scaled down version of the get.php script. It queries the vital_statistics table for the artist

matching the record number, but instead of printing out all the information on the artist, it

simply prints out the extended biography field to the screen. An example of the output of

this function and its code is given below in Figure 27.

94 3Attist Extended Bin < bt> 1M.,Watrunatib, Undefined variable. "me in ' 6 '.. Penglain Fie Edit View Favorites Tocis H

Back - ,A Search Li Favodtes j'Atetfts Addiess ,AccathoeJ lettr,nded.php?nurn-313

Pro -noting Plaw Eng , anc,', Jazz Ma, a

Extended Biography N

Beginning keyboard studies at the age of seven, Ellington's earliest influences were the ragtime pianists. Re'.. taught himself harmony at the piano and at 17, made his professional debut. Encouraged by Fats Waller, he moved '- to New York in 1923 and, during the formative Cotton Club years, experimented with and developed the style that would quickly bring him worldwide success and recognition. Ellington would he among the first to focus on musical, . form and composition in jazz using ternary forms and "call and-response" techniques in works like Concerto for Cootie (known in its familiar vocal version as Do Nothin' till You Hear from Me) and Cotton Tail and classic symphonic devices in his orchestral suites. In this respect. he would influence the likes of Monk. Mingus, and Evans. Among Ellington's many honor s and awards were honorary doctorates from Howard and Yale niversitie membership in the American Institute of Arts and I esters, election as the first jazz musician member of the Roy Music Academy in Stockholm, and the Presidential Medal of Freedom. New to the Schirmer Rental Library are several and editions by Jeff T3-zik, including: The NutcrackftrSuite and il.POrtT and Essential Ellington: Music of Ellington and Strayhorn. -- April 200„

Figure 27 Extended biography

Artist Extended Bio: <? echo $name ?>


"; @ $db = mysql_pconnect("localhost", "webuser", "wabuser"); //access database if (!$db)

echo "Error: Could not connect to database. Please try again later."; exit; mysql_select_db("nejal"); //query the database for artist record $query = "select * from vital_stats where entry num - '$num'"; $result = mysql query($query);

95 $row = mysq_i_fetch_array($result); echo "

" ; echo htmlspecialchars (stripslashes($rowl'extended bio' .1)); //print out extended bio echo "




"; echo "
Back
"; ?>

A menu is also produced on the left side of the screen providing the user options to access other data available about the artist. As mentioned before, all other data was keyed to the artist using the artist's full name. Upon examining the geLphp script, we can see that there is a line that formats the artist's full name so that it can be passed to scripts and used to access this other data.

$fullname = $first name. "\t" . $last name. "1n";

The Images Page

Clicking on the Images link invokes the script images.php, which, for now,

produces a scrollable gallery of images for the artist. In the future, modifications will be

made to allow a gallery of thumbnail images to appear. When a user clicks on a

thumbnail, the image will resize to a larger size in a separate window for easier viewing.

The artist's full name is first passed to the images.php script. From there, it runs a query

on the multimedia table and prints all pictures that match the artist's full name to the

screen. The code for this script is provided below Figure 28, which is a screen shot

provided as an example of the page.

96 http. nloca cm- hount,,, kidrairdE Ihngton Microsoft71, 025.1 Fie Edit 'hew Favorites Tools Help

Back - 3 Search ___Favolites _Media -

Address php',urn-E JwaidE irgcon Go Links

Figure 28 Images Gallery

@ $db = mysql_pconnect("localhost", "webuser", "webuser"); //connect to database if (!$db)

echo "Error: Could not connect to database. Please try again later."; exit; ] mysgl_select_db("nejal"); //select database //get pictures $query = "select * from multimedia where fullname = '$num' and pictures!= ""; $result = mysqLquery($query);

$num results = mysql_num rows($result); echo "

Pictures For This Artist


";

if ($num results == 0)

97 { echo "
No Pictures for This Artist";

} for ($i=0; Si <$num results; $i++) //print pictures to the screen

{ $row = mysql_fetch_array($result); $pictitle = htmlspecialchars (stripslashes($rowl""picdesc"])); $link = htmlspecialchars (stripslashes($row["pictures"])); echo "

"; echo "

@ $db = mysqtpconnect("localhost", "webuser", "webuser"); //connect to database if (!$db)

echo "Error: Could not connect to database. Please try again later."; exit; mysql select_db("nejal"); //select database //re trieve audio clips $query = "select * from multimedia where fullname = '$num' and audiodesc!=""; $result = mysqLquery($query); $num results = mysqLnum rows($result); echo "

Audio Clips For This Artist


";

if ($num results == 0)

98 echo "
No Audio for This Artist"; ] for ($i=0; $i <$num results; $i++) //display audio clip titles on screen

$row = mysqLfetch_array($result); $audiotitle = htmlspecialchars (stripslashes($rowl""audiodesc"])); $link = htmlspecialchars (stripslashes($row("audio"])); //set path to file echo "

".($i+1).". Title: "; echo ""; //link to file echo "$audiotitle"; echo "
";

Audio Clips

ff,rn - of tho. NE: , Hall rf E:roo indu,koo, Another Search

To Mail Menu

Figure 29 Audio clips selection screen

Discography Page

Clicking on the discography link invokes the script disc.php, which uses the artist's full name to find all discography entries in the discography table for the given artist. The code resembles the get.php script, as disc.php performs the same fundamental

operations with less output to the screen.

NEJA Artist Discogr aphy

99

@ $db = mysql__pconnect ("localhost", "webuser", "webuser") ; //connect to database if ( ! $db)

{ echo "Error: Could not connect to database. Please try again later. " ; exit ; mysqLselect_oib ("nej al") ; $query = "select * from discography where fullname= $num' "; //all entries that match artist full name $result = mysqLquery ($query) ;

$num results = mysqlnum rows ($result) ; for ($i=0 ; $i <$num results ; $i++) //print out those entries { $row = mysqLfetch_array ($result) ; echo "

". ($i+1) . ". Album Title: "; echo htmlspecialchars (stripslashes ($row[ "album title"] ) ) ; echo "
"; echo "Band Name : "; echo htmlspecialchars (stripslashes ($row[ "band name"] ) ) ; echo "
"; echo "Release Date: "; echo htmlspecialchars (stripslashes ($row[ "release daten] ) ) ; echo "
"; echo "Record Label : "; echo htmlspecialchars (stripslashes ($row[ "rec label"] ) ) ; echo "
"; echo "Recording Location: "; echo htmlspecialchars (stripslashes ($row[ "rec location"] ) ) ; echo "
"; echo "Recording Date: "; echo htmlspecialchars (stripslashes ($row[ "rec date"] ) ) ; echo "
"; echo "Recording Engineers : "; echo htmlspecialchars (stripslashes ($row[ "recording eng"] ) ) ; echo "
"; echo "Producers : "; echo htmlspecialchars (stripslashes ($row[ "producers "] ) ) ; echo "
"; echo "Arrangers : " ; echo htmlspecialchars (stripslashes ($row[ "arrangers"] ) ) ; echo "
"; echo "Personnel List: "; echo htmlspecialchars (stripslashes ($row["per list"] ) ) ; echo "
"; echo "Track List: " ; echo htmlspecialchars (stripslashes ($row[ "song list"] ) ) ; echo "

"; echo "

";

100 if ($num results == 0) { echo "

No Discography Entries for this Artist
";

?>

The Disc.php output to the screen lists the discography data in block form as shown below in Figure 30.

fritemet Espiew Fie Edit View Favorites Tools Hey'.'„,'

4-, Back - J A „Search jFavorites ....Media J _ Address k i httpciAocalhost/citsc.php,num-EdwardElington Go Links ”

Pron-,ctIng Ero,ne, ism,: Mu: c. Discography Entries

,r of the

d Name Ellington Big Band ase Date 1966-02-11 `cord Label: Deca it,cording Location Studio 1B '. ording Date - 1965-11-1: - ordsng Erone tits. Phil Ratn.:,:ir Bob Basket .duc.r, Duke Ellir0.;ri Phil E anore ,.tyarszert, Duke Ellatig,tor. Pets -.,-ine. list- Duke Hiroo:. Cat Anderson Track Li3t . Med:tat:ion '.:n the .75erc-Arca,

Al- urn Ttlr 7. r Hot,: 11,- 1:311e Ellu.gton Big • e 1966-02-11 Record Label: reca Re,cording, Location Stn.idio 1B cording Date . 1965- :1-1: orclir.g Eng:ne Plul R reducers: Phl Rarnt ,ne Ansusget s . Billy Scayhorn ers.-,rine. List Puke Ellington at Anderson. lone; -rs tt k Lt.st 1 Satin Dcla, 2 Mood Infago

one ea risme/

Figure 30 Discography entries

101 The Articles and Interviews page

Clicking on the Articles and Interviews pages invokes the script articles.php.

Articles.php is more complex than the other three sections we've just explored. Consider the form in which the article data is displayed to the user as shown in Figure 31.

Dies and interviews intemonExnknnr - Fie Edit View Fawkes Tools Help

4 Back - • Search LI Fayoutes .1Media JR-_IA "ektoGuGsllrfortnatron articies.pip?runikdwakEinLion 4rticles

-s to Outside A

tide Title: Ellington us New York

tide Title: Ellington's influence on l lip llo

s to NEJA Submitted Articles

1. Article Title: Ellington and the Sacred Concerts p er Full Text _Article

Article Title: Boston Globe: Interview

"Article Title: iNlv Talk ‘Vith

Links to NEJA Submitted Interviews

er l ull I ex( s

Figure 31 Articles and interviews display screen

Each section for articles and interviews is divided up into three blocks. These three

blocks are links to Web sites containing articles and interviews, links to text articles

uploaded to the server and links to articles manually typed in. Clicking on an article or

interview in the first block would bring the user to an outside web page containing the

text of an article or interview. Clicking on an article or interview in the second block

102 would open up a text file containing the text of the article or interview stored in the NEJA database. Finally, clicking on the Other Full Text Articles link would bring the user to a page that displays the text of interviews that were manually entered by the author of the submission.

The team chose to organize the form in this manner as it seemed to make the most sense and also because it was not feasible to have large blocks of text on screen, for the uploaded articles and the manually typed articles, as this would take up too much space and users might become confused as to what they were reading.

The code that produces the form in the figure above is provided below.

Articles and Interviews Articles"; echo "

Links to Outside Articles

";

@ $db = mysql_pconnect("localhost", "webuser", "webuser"); //connect to database if (!$db)

echo "Error: Could not connect to database. Please try again later."; exit; mysql_select_db("neja1"); //open database //retrieve article links query = "select * from art_int where fullname= '$num' and artlink!=' $result = mysql_query($query);

$num results = mysqLnum rows($result); if ($num results ==0)

echo "No Articles in this Section."; ] for ($i=0; $i <$num results; $i++)

$row = mysql_fetch_array(Sresult); $link = htmlspecialchars (stripslashes($row[flartlink"])); $title = htmlspecialchars (stripslashes($row["artdesc"]));

103 echo "

".($i+1).". Article Title: "; echo "$title"; echo "

"; echo "

Links to NEJA Submitted Articles

"; @ $db = mysqlpconnect("localhost", "webuser", "webuser"); if (!$db)

echo "Error: Could not connect to database. Please try again later."; exit; mysql_select_db("nejal"); //retrieve uploaded article files $query = "select * from art_int where fullname= '$num' and artfile!= I Fl $result = mysqlquery ($query) ;

$num results = mysqLnum rows($result); if ($num results ==0) [ echo "No Articles in this Section."; for ($i=0; $i <$num results; $i++)

$row = mysql_fetch_array($result); $file = htmlspecialchars (stripslashes($row("artfile" .1)); $title = htmlspecialchars (stripslashes($row("artdesc"])); echo "

".($i+1).". Article Title: "; echo "$title"; echo "

";

//pass the record number for this artist in the artint table to //fullpage.php to access manually typed articles when clicked echo "

Other Full Text Articles

";

echo "

Interviews

";

echo "

Links to Interviews

"; mysqLselect_db("nejal"); //retrieve links to interviews $query = "select * from art_int where fullname= '$num' and intlink!= I U $result = mysqlquery($query);

$num results = mysgLnum rows($result); if ($num results ==0)

echo "No Interviews in this Section.";

104 for ($i=0; $i <$num results; $i++)

$row = mysqtfetch_array($result); Slink = htmlspecialchars (stripslashes($rowl""intlink".1)); $title = htmlspecialchars (stripslashes($rowl""intdesc"])); echo "

".($i+1).". Article Title: "; echo ""; echo "

"; echo "

Links to NEJA Submitted Interviews

"; @ $db = mysqtpconnect("localhost", "webuser", "webuser"); if (!$db)

echo "Error: Could not connect to database. Please try again later."; exit; mysqLselect_db("nejal"); //retrieve uploaded interviews $query = "select * from artint where fullname= '$num' and intfile!=

$result = mysql_quer_y($quer_y);

$num results = mysql_num rows($result); if ($num results ==0) [ echo "No Interviews in this Section."; for ($i=0; $i <$num results; $i++)

$row = mysqLfetch_array($result); $file = htmlspecialchars (stripslashes($row["intfile"])); $title = htmlspecialchars (stripslashes($row("intdesc" .0); echo "

".($i+1).". Article Title: "; echo "$title"; echo "

";

//pass artist record number from the artint table to the fullpage2.php //script so it can retrieve and display manually typed articles when //clicked echo "

Other Full Text Interviews

";

?>

105 Analysis and Results

The end results of the team's decisions about the software used to create the database are a stable, fully functional Web site and database which are now in place for use by the general public. This system is located at www.nejazz.org/History, a subsection of the official New England Jazz Alliance homepage. The Web site and database were uploaded to the NEJA Web site with the help of NEJA's Webmaster

Jeremy Hitchcock. During the process of enabling the Web site, several minor changes were needed in order for the system to be integrated with the current NEJA Web site.

These changes were needed due to settings in place on the server hosting the Web site.

Upon completion of these, the IQP team and the Webmaster created a temporary user

account for testing. The test consisted of submitting several mock articles, discographies,

photos and audio files in order to test all aspects of the submission process. In addition,

the other administrative features were tested in this manner, by continuously updating the

files and fields for these "artists", while having another member of the team updating the

web page and attempting to perform searches in the database. Each of these tests were

completed successfully, and the Web site is now ready for researchers to contribute

information to the database.

106 Recommendations

The IQP team met with Brent Banulis and Jeremy Hitchcock, the NEJA

Webmaster, on February 22, 2002 to discuss the state of the project. During this meeting

Mr. Banulis informed the team that he had been collecting hard copy materials to add to the Web site. These hard copy materials included taped interviews from Boston Radio station WGBH, various photographs, and many printed interviews and news articles. Mr.

Banulis asked the IQP team for recommendations on ways to incorporate this material into the newly developed history archive designed by the IQP team. The team discussed the problem and separated it into two projects; one project to transfer the material into a digital medium for storage and the other to create a new database to track and organize the material.

Transferring large amounts of printed material into the proper digital formats for storage is a formidable task that can take months to complete. The period of time required to perform this task depends mainly on the amount of material to be converted and the size of the work force. This project is likely to continue on for years to come, as more materials are found and given to NEJA to be stored. The data formats the team recommends are the same formats used for the archive created by the IQP team. These formats are as follows: standard text files, ending with the .txt suffix for transcribed interviews, articles and discographies that are retyped; pictures converted to the Internet standard .jpg format; audio files converted into .mp3 files as it reduces the size of the files and results in faster download times.

The IQP team's recommendation for the best method of organizing this data is to create a second database. This database would need to be setup to store information by

107 artist name. The IQP team feels that each entry should consist of the artists first and last names, a location of the file pertaining to that artist, a listing of the type of file, the file's title and a marker for whether the information is to be included in a list of search results.

The entries for the type of file and file title can be displayed to give the user more

information about each of the results in the list. The file marker can be used to activate

or deactivate items that have mistakes or have been corrected. This database would have

an entry for every item in the library, allowing a user to easily find all information

pertaining to a particular artist.

PHP scripts similar to those used for the current project can be used to access the

database for searches and for adding new information. These scripts will allow users to

search the database, or in the case of NEJA, add information to the database.

The IQP team suggests having one script attached to a link on the current project's web

pages. This link is a button titled 'More Info', and can be found in the menu bar on the

individual artist pages. The script would need to store the name of the artist that is

currently being viewed, allowing quick access to the second database.

The other portion of the design for this new database would be an entry system.

The team suggests creating a web page for adding, deleting, or updating files in the

database. The entry system being suggested would be very similar to the entry system

created by the IQP team for the current project, allowing the user to browse the hard

drive of his or her computer for the file to be added, in addition to providing the full

name of the artist, a title for the file, the file type and a check box for making the file

publicly available. After being submitted, the file would be stored on the NEJA server

with the other material and an entry would be added to the database, listing the location

of the file for future use.

108 The IQP team suggests keeping this new database separate from the current because the current project was designed for several reasons. The main reason is that the

current project was designed to be a closed system, where the researcher is able to keep track of his or her own work and update it as he or she feels it necessary. Also, since the

author's name will appear on screen with each of his or her submissions, it is assumed

that special attention will be made to ensure a fairly high quality standard for the Web

site. This area of "accountability" was a particularly important goal for the NEJA Board,

Professor Falco and the IQP team. The system suggested for storing the other more

general materials being collected by NEJA is more like an on-line library. This system

does not need to be keyed to a specific author's name, since the majority of the material

would be entered in large quantities at one time.

109 Appendices

The following pages include Appendices referred to in the text.

110 Appendix A: Internet References

This Appendix includes sample encyclopedic entries referred to in the Internet

Resources portion of the Literature Search and Review section of this paper. For each

sample, new ideas used by the IQP team are highlighted in yellow. Ideas that were

already mentioned previously in the paper are highlighted in green.

After careful research thus far, the team decided to use this format for vital

statistics:

Last Name First Name Middle Name/Initial Birth Date Death Date Birth Place Death Place Instrument(s)

A brief biography will be located after the vital statistics paragraph on the artist's

main page and sources will be located at the bottom of the page. We decided to have one

picture on the Jazz musician's main page and have a link to a separate page which will

have more pictures of that musician. A separate page for discographies will also be

included, along with a page for an extended biography.

111 Sample page 1: Encyclopediacom encyclopedic entry

Ferguson, James Edward 1871-1944, governor of Texas (1915-17), b. Bell co., Tex. After an adventurous youth he rose from poverty to become a lawyer, large landowner, and banker. Although unknown in state politics, he successfully ran for the governorship in 1914 as the champion of tenant farmers and poor independent farmers. He promised many radical agrarian reforms, some of which became law. He was not, however, favored by the reformers in Texas, because of his demagogic methods and the accusations of widespread corruption in his administration. In 1917, Ferguson was impeached, found guilty on several charges, and removed from office. He devoted himself to clearing his name. He was himself debarred from running for office, but in 1924 his wife, Miriam A. Wallace Ferguson (1875-1961), ran in his place and was triumphantly elected by the small farmers. A general amnesty was issued to vindicate her husband, but it was declared unconstitutional. Nevertheless in the midst of the depression Ma Ferguson (so called from her initials) once more was elected and served from 1933 to 1935, with a policy of extreme retrenchment. Although his wife held the office, it was Ferguson who wielded the power.

Source: http://www.encyclopedia.com/

112 Sample page 2: Encarta On-Line encyclopedic entry

Gillespie, Dizzy

Find in this article Print article Send us feedback

, American jazz trumpeter, one of the leading exponents of bebop, and one of the foremost jazz trumpeters through six decades. He was born John Birks Gillespie in Cheraw, South Carolina. After playing in the big bands of such figures as Cab Calloway and Earl "Fatha" Hines, he collaborated (1945) with saxophonist Charlie Parker to produce some of the most important recordings of the era. He was prominent as a leader of big bands as early as the mid-1940s and continued to perform internationally through the 1980s. His compositions include "Salt Peanuts" (1945), "Bebop" (1945), and "Night in Tunisia" (1946), as well as "Manteca" (1947), a pioneering work in an Afro-Cuban jazz style.

Source: http://encarta.msn.conil

113 Sample page 3: All Music Guide biographical entry

Count Basie AKA William Basie Born Aug 21, Died Apr 26,1111in Hollywood, FL Years Active --matrmsrpr, 60s 70s 80s jos Genres Jazz Styles Swing, Piano Blues, Big Band Instruments Leader, Tones Fun, Boisterous, Playful, Rollicking, Joyous, Refined/Mannered, Amiable/Good-Natured, Exuberant, Sophisticated, Elegant, Carefree

Roulette (36), Verve (34), Pablo (32), Clef (14), Classics (13), Columbia Labels (11), Original Jazz Classics (10) Count Basic Orchestra * Big Band * Count Basic Jam * Count Basie Trio * Count Basic & the Kansas City 3 * Count Basie & the Kansas See Also City 7 *Count Basie & the Kansas City 8 *Count Basie & the Stars of Birdland * Basic Reed & Brass Sections * Count Basic Quintet * Count Basic & His Octet *Count Basie Quartet *All Movie Guide Entry AMG BIOGRAPHY Count Basie was among the most important bandleaders of the 'swing era. With the exception of a brief period in the early '50s, he fled a big band from 1935 until his death almost 50 years later, and ;the band continued to perform after he died. Basic's orchestra was 'characterized by a light, swinging rhythm section that he led from .,,the piano, lively ensemble work, and generous soloing. Basic was not a composer like Duke Ellington or an important soloist like Benny Goodman. His instrument was his band, which was considered the epitome of swing and became broadly influential on jazz.

Both of Basic's parents were musicians; his father, Harvie Basic, played the mellophone, and his mother, Lillian (Childs) Basie, was a pianist who gave her son his earliest lessons. Basic also learned photo by Frank Driggs from Harlem stride pianists, particularly Fats Waller. His first professional work came accompanying vaudeville performers, and he was part of a troupe that broke up in Kansas City in 1927, leaving him stranded there. He stayed in the Midwestern city, at first working in a silent movie house and then joining Walter Page's Blue Devils in July 1928. The band's vocalist was Jimmy Rushing. Basie left in early 1929 to play with other bands, eventually settling into one led by Bennie Moten. Upon Motcn's untimely death on April 2, 1935, Basic worked as a soloist before leading a band initially called the Barons of Rhythm. Many former members of the Moten band joined ... Source: http://www.allmusic.com/

114 Sample page 4: Club Kaycee biographical entry Johnson, Pete

and raised by his mother, Pete's early life was marked by poverty and hardship.

When he was three, his mother placed him in an orphanage hoping he would "receive proper care and supervision." Unfortunately, the only thing he received was neglect, so his mother signed him out. Johnson left school at the age of 12 and worked odd jobs as a laborer.

1111111111111.111111.11111.E. Between 1922 and 1926, he worked with Louis "Good Bootie" Johnson. He learned to play the piano from his uncle Charles "Smash" Johnson. While in Kansas City, Pete was featured with Clarence Love's band and with Herman Walder's Rocket Swing Unit at the Spinning Wheel at 12th and Troost.

Johnson's long association with began when they met at a speakeasy called the Backbiters club in Kansas City's northeast area. Johnson and drummer Baby Lovett played an extended engagement at the Sunset Club. Joe Turner shouted the blues from his station behind the service bar.

Due to the popularity of Johnson and Turner, the Sunset became the after-hours gathering spot for local and visiting musicians. In a 1939 article for Down Beat, Sharon A. Pease described how patrons would flock to the Sunset to hear Johnson "'roll em' and eat ribs:"

They drank beer from huge jugs and stomped while Pete played the blues. With both hands pumping the keys and his right foot beating a pace on the floor, it was not unusual for Pete to play 50 consecutive choruses of the boogie. The enthusiastic audience would shout "roll 'em Pete, and let 'em jump for joy." Turner and Johnson's first hit recording, "Roll 'em Pete" "was inspired by the audiences at the Sunset Club.

Johnson and Turner achieved national recognition with their participation in John Hammond's "Spirituals to Swing" concert in 1938. Pete Johnson later formed the Boogie Woogie Trio with Meade Lux and Albert Ammons.

Sources: Pease, Sharon A. "Swing Piano Styles: Pete Johnson Got his Start Shining Shoes in Kaycee." Down Beat. vi/15 (1939), page 22. Johnson, Marge. "My Man....Pete Johnson." Jazz Report. vol.2, No.8, April 1962. Source: http://www.umkc.edu/orgs/kcJazz/mainpage.htm

115 Sample Page 5: Red Hot Jazz biographical entry

Louis "Satchmo" Armstrong' 1 9 011 97 1)

ouis Armstrong was the greatest of all Jazz usicians. Armstrong defined what it was to play azz. His amazing technical abilities, the joy and pontaneity, and amazingly quick, inventive musical ind still dominate Jazz to this day. Only Charlie arker comes close to having as much influence on he history of Jazz as Louis Armstrong did. Like lmost all early Jazz musicians, Louis was from New rleans. He was from a very poor family and was ent to reform school when he was twelve after firing gun in the air on New Year's Eve. At the school he earned to play cornet. After being released at age ourteen, he worked selling papers, unloading boats, nd selling coal from a cart. He didn't own an instrument at this time, but continued to listen to bands at clubs like the Funky Butt Hall. Joe "King" Oliver was his favorite and the older man acted as a father to Louis, even giving him his first real cornet, and instructing him on the instrument. By 1917 he played in an Oliver inspired group at dive bars in New Orleans' Storyville section. In 1919 he left New Orleans for the first time to join Fate Marable's band in St. Louis. Marable led a band that played on the Strekfus Mississsippi river boat lines. When the boats left from New Orleans Armstrong also played regular gigs in Kid Ory's band. Louis stayed with Marable until 1921 when he returned to New Orleans and played in Zutty Singleton's. He also played in parades with the Allen Brass Band, and on the bandstand with Papa Celestin's Tuxedo Orchestra , and the Silver Leaf Band. When King Oliver left the city in 1919 to go to Chicago, Louis took his place in Kid Ory's band from time to time. In 1922 Louis received a telegram from his mentor Joe Oliver, asking him to join his reole Jazz Band at Lincoln Gardens (459 East 31st Street) in Chicago. This was a dream come true for Armstrong and his amazing playing in the band soon made him a sensation mong other musicians in Chicago. The New Orleans style of music took the town by storm and soon many other bands from down south made their way north to Chicago. While playing in Oliver's Creole Jazz Band, Armstrong met Lillian Hardin, a piano player and arranger for the band. In February of 1924 they were married. Lil was a very intelligent and ambitious woman who felt that Louis was wasting himself playing in Oliver's band. By the end of 1924 she pressured Armstrong to reluctantly leave his mentor's band. He briefly worked with 011ie Powers' Harmony Syncopators before he moved to New V nr12 to 'Away in Flat/41ov 11fanglarennve Clirelinetro fnr 1'2 nInntlhie ilnrinn that lima

116 he also did dozens of recording sessions with numerous Blues singers, including Bessie Smith's 1925 classic recording of "St. Louis Blues". He also recorded with Clarence Williams

biography continues...

Louis Armstrong and his Hot Louis Armstrong and his Hot Seven Five Louis Armstrong and his Louis Armstrong and his Savoy Ballroom Five Orchestra Louis Armstrong and his Louis Armstrong and his Sebastian New Cotton

Stompers Club Orchestra SOLO DISC API-FY

Recording Recording Title Company Date Location

Elder Eatmore's Sermon On New York, New 8-11-1938 Decca Generosity York (Rogers)

Elder Eatmore's Sermon On New York, New 8-11-1938 Decca Throwing Stones York (Rogers)

SUGGFSTEDz 1KEADIENG 40 My Life in New Orleans by Louis Armstrong, Da Capo Press, 1954 Swing That Music by Louis Armstrong, Da Capo Press, 1936 Louis Armstrong by Hughes Panassie Da Capo Press, 1971 Louis by Max Jones & John Clinton, Da Capo Press, 1971 Louis Armstrong : An Extravagant Life by Laurence Bergreen, Broadway Books, 1997

Source: http://www.redhotjazz.com/louie.html

117 Appendix B: Encyclopedia References

This appendix includes references from the Encyclopedia portion of the Literature

Search and Review section.

118 Sample 1: International Cyclopedia of Music and Musicians vital statistics entry

CARDUS, Sir Neville (b. April 2, 1889), English music critic, educated in Manchester and on the Con- tinent. He became music critic of the Daily Citizen in 1913, and studied singing with Charles Egan in Man- chester. He contributed to various musical journals be- tween 1912 and 1914 and joined the staff of the Guardian of Manchester in 1917, becoming assistant critic to Samuel Langford and then succeeding him as chief critic in 1927. He edited Musical Criticisms of 'Samuel Langford (1929). From 1941 to 1947, Cardus was on the staff of the Sydney Morning Herald, and in 1951 he became London music critic for the Guardian. His autobiography appeared in 1947 and 1950. He has written hooks on music and cricket, on both of which he is authoritative. He was knighted in 1967.

119 Sample 2: New College Encyclopedia of Music vital statistics entry

Petrucci, Ottaviano dei (1466-1539), Italian music printer. He published the first printed collection of part music, the Harmonice Musices Odhecaton A, in 1501. In all he printed 61 volumes of music, sacred and secular, between that date and 1520. A bibliography of his publications by C. Sartori appeared in 1948, the Bibliografia delle opere musical!' stampate da Ottaviano Petrucci.

120 Sample 3: Grove Concise Encyclopedia of Music encyclopedic entry

Falekenhagen, Adam (b Grossdalzig, 26 April 1697; d Bayreuth, 1761). German lutenist And composer. lie served at German courts including Wcisscnfcls (in the 172os) and Bayreuth. One of the last signifi- cant lute composers, he wrote sonatas, partitas and concertos.

121 Appendix C: Comparison Study Spreadsheet

Located on the next page is the comparison study spreadsheet that was created from researching encyclopedia entries. It shows the sequencing of the information in the brief biographical entries found within each respective encyclopedia, which are found on the left column of the spreadsheet. The items listed across the top of the spreadsheet, such as Family History and Early Musical Training, denote the particular characteristics that were included in the encyclopedic entry. The numbers within the spreadsheet denote the order in which the information was presented within each encyclopedia. For example, a "1" denotes that that item, such as Family History, was listed first in the brief biographical entry; a "2" denotes the next item listed, and so forth.

122

ing ience

ing r ions in l e t in a ta

nce

n a ts Exp l Tra ry bor l Tra l is rm me t a to saouan lla fo Ar tru

ion iona His /Co Mus ica Per ite ss Ins

ily ds t sd ly ly fess fe gu r m o l i Encyclopedia Fa Ea Ear Pr Pro Ban Pos Favor New Edition of the Encyclopedia of Jazz 1 2 3 4 5 6 7 1 2 3 4 5 6 8 7 1 2 3 4 5 6 „ 1 2 3 4 5 6 7 8 ll 1 2 3 4 5 6 7 8 16 1 2 3 4 „ 1 2 3 4 1 2 3 4 5 6 7 Grove Concise Encyclopedia of Music 1 2 3 1 2 3 1 2 3 ll 1 2 3 „ 1 2 „ 1 2 3 ll 1 2 3 LI 1 2 3 „ 1 2 3 4 1 2 3 4 5 New College Encyclopedia of Music 1 2 3 1 2 3 1 2 3 II 1 2 3 „ 1 2 3 61 1 2 3 It 2 3 „ 1 2 „ 1 2 3 1 2 Intl Cyclopedia of Music and Musicians 1 2 3 4 1 2 3 4 1 2 3 4 5 1 2 3 4 5 „ 1 2 3 4 5 6 1 l 1 2 3 4 5 6 7 II 1 2 3 1 2 3 4 5 6 7 7 1 2 3 4 5 6 „ 1 2 7 3 4 5 6

123 Appendix D: Abbreviations

This appendix lists the abbreviations that are found on pages 94-95 in The New

Edition of the Encyclopedia of Jazz and have been used for entries in the NEJA database.

ABC American Broadcasting Co. cons. conservatory ABC-Par. ABC-Paramount Records cont. continued ace. accompanied, accompanying, accompanist Contemp. Contemporary addr. address Cor. Coral AFM American Federation of Musicians Ctpt. Counterpoint Alad. Aladdin Crit. Criterion All. Allegro d. died Amer. Mus. American Music Deb. Debut Ap. Apollo Dec. Decca app. appeared, appearing Del. Delmar A & R artists and repertoire Des. Design arr. arranged, arranger, arrangement dj disc jockey ASCAP American Society of Composers, Authors and Dix. Jub. Dixieland Jubilee Publishers Doo. Dooto Ad. Atlantic educ. education, educated Audio. Audiophile Elek. Elektra Aud. Fid. Audio Fidelity Em. EmArcy b. born Empir. Empirical Bat. Baton Eso. Esoteric BBC British Broadcasting Corporation Evst. Everest Beth. Bethlehem Fant. Fantasy BN Blue Note fay., fays. favorite, favorites bro. brother feat. featured, featuring Bruns. Brunswick Fels. Felsted ca. about Folk. Folkways Cad. Cadence GNP Gene Norman Presents Cam. Camden Gold. Cr. Golden Crest Carn. Carnival Harm. Harmony Cap. Capitol Imp. Imperial Cay. Cavalier imp. important CBS Columbia Broadcasting System incl. includes, including, included cl., clar. clarinet JATP Classic Edit. Classic Editions Jub. Jubilee Col. Columbia KC Kansas City, Missouri coll. college LA Los Angeles, California Comm. Commodore Lib. Liberty comp. composed, composer, compositions Lond. London

124 LPs Long-playing records at 33 1/3 revolutions Per Say. Savoy minute sch. school MCA Music Corporation of America SF San Francisco, California Mere. Mercury SFJ San Francisco Jazz MY? Sig. Signal Mod. Modern Som. Somerset mos. months South. Southland Mot. Motif Spec. Specialty mus. din musical director st. started NBC National Broadcasting Company Star. Starlite NJF Newport Jazz Festival Stcft. Stere-o-craft NO New Orleans, Louisiana Stin. Stinson NYC New York City Story. Storyville oral. orchestra stud. studied, studying Per. Period symph. symphony Phil. Philharmonic Trans. Transition p1. played, plays, playing tpt. Pres. Prestige trom. quart. quartet UA United Artists quint. quintet U., Univ. University Rain. Rainbow Ur. Urania r& b rhythm and blues Yang. Vanguard ree. recorded, recordings Viet. Victor Reg. Regent yin. violin Rep. Replica War. Bros. Warner Brothers repl. replaced, replacing w. with ret. returned, returning West. Westminster River. Riverside Wor. Pac. World-Pacific Rondo. Rondotette WW World Wide Rohl. Roulette yrs. years

125 Appendix E: Interview Questions

This appendix includes lists of questions used in interviews with the various faculties. Though the questions were asked, answers may or may not have been incorporated into the NEJA database research because some answers were not specifically towards the database.

126 Interview questions for the WPI Librarians

1) How should database information be organized for a library?

la) Is there a standard procedure for cross referencing material?

lb) Does the library use any type of electronic archiving software?

2) If so, what packages?

2a) How is data entered into it?

127 Interview questions for Professor Peter Hansen

1) What do you look for in a good historical Web site?

2) How do you want to organize biographical information?

3) Do you desire abstract then full text, or just full text?

4) Do you have any other suggestions?

128 Interview questions for Professor Joel Brattin

1) When you are doing research on a musician, what type of information are you

most interested in finding?

2) How much detail would you like to see included in a discography and a brief

biography (about 2 paragraphs)?

3) Do you have any other suggestions?

129 Appendix F: E-mail Responses

This appendix contains e-mail responses from selected individuals who reviewed our material on the design of the NEJA database after the literature search and review had been completed.

130 E-mail from Professor Frederick Bianchi

Date: Tue 22 Jan 2002 11:13 AM From: Frederick Bianchi To: [email protected] Subject: Jazz database

Anthony:

I think your Jazz data base looks pretty good. I suggest that you check the Rock & Roll Hall of Fame web site (rockhall.com) as well as the Jazz Hall of Fame at (JazzHall.org ) you may have already done this. I think you can get some good ideas from these two sites .... in particular, the Rock&Roll Hall of Fame has a TIMELINE feature that details the historical development of bands and musicians, etc it is very helpful.

In your data base you indicate a "brief Biography." I'm wondering why it should be brief .... in fact, the data base should be somewhat dynamic ... allowing it to grow and accept input from various users ... a sort of Open Source approach I also think that a category called "Other" or Additional Information would be appropriate for data that doesn't fit neatly into your data base also, maybe I missed it, but was there a category for "Style" in reference to performers or composers.

I've contacted David Smith at the New York City Technical College ... he is aware of your project and has agreed to review your progress as it stands I am also in the process of contacting Paul Kozel at the City University of New York as well I will pass along his email as soon as I reach him let me know if you have any questions

Professor David Smith [email protected]

F. Bianchi

131 E-mail from Dr. Donald Bastarache

Date: Fri, 01 Feb 2002 10:49:21 -0500 From: Donald Bastarache To: [email protected] Subject: jazz template

Anthony,

The set up for the biographical information looks great. As far as I am concerned I cannot make any improvement on the format. Any questions you can contact me again.

Dr. Donald Bastarache Director of Jazz Studies WSC

132 List of suggested data sources from Professor Mark Gridley

The following is a listing of the resources recommended by Professor Gridley. In some cases the resources to which he refers are the published works of various authors.

• Providence Rhode Island Library discography collection • Tom Lord's discography collection • Cadence Magazine Interviews • Crescendo Magazine Interviews • Fred Turco Collection donated to the Providence Public Library • International Association of Jazz Record Collectors (IAJRC) has an immense library of discographies and other materials • Online archive of the photos used to illustrate Professor Gridley's books • Harvey Pekar's articles written for the Boston Herald • Lewis Porter's work • Nancy Lee's work • Carlo Wolff' work • Micheal Erlewine's work • Scott Yanow's work • Ron Wynn's work • Bernard Hefele

133 E-mails from Professor Mark Gridley

#1: Date: Sun, 10 Feb 2002 19:45:11 -0800 From: Mark Gridley To: [email protected] Subject: Phone Conversation re: Jazz Archive

Dear Stephen, We need to have a long conversation, not an email, regarding your project. I need to know how much of my work you have already incorporated and how much of the Providence Rhode Island Library discographies you have already absorbed. Do you have Lewis Porter's work or Baker's? How about Nancy Lee's work and Carlo Wolff s work? The Tom Lord discographies and the Cadence and Crescendo interviews are also important. Have you already downloaded the Ron Wynn and Scott Yanow stuff published on-line by Michael Erlewine? How about the Bernard Hefele works? Do you have access to the on-line photo archives of all the photographers who illustrated my books?

Please leave your phone numbers and a few times we might be able to talk at length about your January 29 letter.

Sincerely, Mark Gridley

#2 Date: Mon, 11 Feb 2002 08:50:02 -0800 From: Mark Gridley To: [email protected] Subject: Harvey Pekar's Writings

Do you have all Harvey Pekar's articles about jazz musicians from the Boston area? How about his extensive writings on Joe Maneri? Did you pursue the enormous Fred Turco collection of discographies donated to the Providence Public Library?

Mark Gridley

134 E-mail from Dr. Leonard Brown

Date: Sun, 17 Feb 2002 21:22:46 -0500 From: Leonard Brown To: Stephen Edward Leavey Subject: Re: Jazz History Web site

Stephen sorry it took me so long to get back in touch. I have been real busy at work as well as struggling with a bad back. I cannot open the bio and discography. As for the encyclopedic bio entry, I have these suggestions. Include race/ethnicity and gender. What is the difference between leader and director - seems redundant. How will you define educator? Many of the great teachers of this music were and are great educators who did or do not have a teaching certificate or degree. You may want to further qualify or give some boundaries for the biographical submissions. I also strongly suggest you seek input from the Center for Black Music Research at Columbia College in Chicago as well as the Institute for Jazz Studies at Rutgers. Good luck.

Peace, Dr. B.

135 Appendix G: Web Page Templates

This appendix contains the original template the team designed for the NEJA database Web site. The page was developed using Microsoft's Frontpage 2000 web authoring software. The page was used to aid the team in expressing their ideas for the layout of the Web site to NEJA President Brent Banulis. Also included is an example of the finalized layout of an artist page in the NEJA database.

136 Sample web page layout 1: Main artist web page template

Artist Name Biograph y

Interviews

Discography Place Artist

• • • • • Photo Here •Articles

Audio Clips

video Clips photo Courtesy ofXYZ Photos

Links Brief Artist Bio Included Here

137

Sample web page layout 2: Final version of the artist page

U ..1111!! MetlibtrAllik CaramAtiqx. Discographical Entries Edward Kennedy Duke' Ellington Audio Clips StOrnitred By: Eric 114cDtmougie Articles and Interviews

Photo Gallery

Date of Birth: 1920-1141 Location of Birth: Harlem

Date of Death: 197541-11 Location of Death: New York

F l•

Brief Elio

m l I ALI n Jr. L _ri , ILL . .[ :It.

--t - , j-rt t r I tv-ti. •- t =i I -- 7r j I 1 . 1 -131 .11:1 tt.s 3 t s. : L it - I I • n 111 ,-.1 - " - -1-11-'1111 n •

Source: www.nejazz.org/history

138 Bibliography

African Genesis Presents: Jazz: You Like It!. Amazon.com . 2002. .

America's Jazz Heritage Home Page. Smithsonian Institution. 2001. .

AMG All Music Guide. AEC One Stop Group, Inc. 2002. .

Castagnetto, Jesus, Harish Rawatt, Sascha Schuman, Chris Scollo and Deepak Veliath. Professional PHP Programming. Chicago, IL: Wrox Press, Inc. 1999.

Club Kaycee: Kansas City Jazz History. University of Missouri — Kansas City. 2002. .

Desamero, Joel and Paul Whitehead, PHP: Your visual blueprint for creating open source, server-side content. Hungry Minds, Inc. New York, NY, 2001.

Encarta Homepage. Microsoft Corporation. 2001. .

Encyclopedia.com — Because Knowledge is Cool. Tucows, Inc. 2002. .

Grove Music — The New Grove Dictionary of Jazz. Grove's Dictionaries, Inc. 2000. .

The International Cyclopedia of Music and Musicians. Ed. Oscar Thompson. New York, NY: Dodd, Mead & Company, 1975. All pages.

Meloni, Julie C., PHP: Fast and Easy Web Development. Prima Communications. 2000.

Microsoft Access. Microsoft Corporation, 2002. .

MySQL. MySQL AB, 2002. .

NEJA — New England Jazz Alliance. New England Jazz Alliance. 2002. .

The New College Encyclopedia of Music. New York, NY: William Collins Sons & Co. Ltd., 1976. All pages.

139 New Dictionary of National Biography: Notes for contributors. Colin Matthew, Ed. Oxford, England: Oxford University Press. 1998

The New Edition of the Encyclopedia of Jazz. New York, NY: , 1960. All pages.

New Orleans Online. New Orleans Tourism Marketing Corporation. 2002. .

The Norton/Grove Concise Encyclopedia of Music. New York, NY: W. W. Norton & Company, 1988. All pages.

A Passion for Jazz! Music Commentary, History and Education. A Passion for Jazz! 1998. .

Perl. O'Reilly & Associates, Inc. 2002. .

PHP. O'Reilly & Associates, Inc. 2002. .

PHP. The PHP Group. 2002. .

The Red Hot Jazz Archive. .

Thomson, Laura and Luke Welling. PHP and MySQL Web Development. Indianapolis, IN: Sams Publishing. 2001.

140

Advanced Submission Options

Submit Photos
Submit Articles or Interviews
Submit Audio Clips
Submit Discography information

Administrative Options

Main Menu
qpdate Records
Create another Submission
Logout