1<?php
2/********************************
3OSBib:
4A collection of PHP classes to manage bibliographic formatting for OS bibliography software
5using the OSBib standard.  Taken from WIKINDX (http://wikindx.sourceforge.net).
6
7Released through http://bibliophile.sourceforge.net under the GPL licence.
8Do whatever you like with this -- some credit to the author(s) would be appreciated.
9
10If you make improvements, please consider contacting the administrators at bibliophile.sourceforge.net
11so that your improvements can be added to the release package.
12
13Mark Grimshaw 2005
14http://bibliophile.sourceforge.net
15********************************/
16class STYLEMAP
17{
18	function STYLEMAP()
19	{
20		$this->loadMap();
21	}
22/**
23* loadMap: Load the map into arrays based on resource type.
24*
25* The basic() array contains database fields that are common to all types of resources.
26* The key is the database field and the value is displayed to the user to be part of the style definition.
27* e.g. if the user enters:
28* author. title. publisherName|: publisherLocation|.
29* for a style definition for a book, we know that 'author' is the database field 'creator1', 'title' is
30* the database field 'title' etc.
31* There are some exceptions as defined by WIKINDX (other systems may have different methods).  Because these may be
32* represented in different ways in different systems, you will need to explicitly define these.  See BIBSTYLE.php
33* for examples of how WIKINDX does this.  The comments below relate to how WIKINDX stores such values in its database:
34* 1/ 'originalPublicationYear doesn't exist in the database but is used to re-order publicationYear and reprintYear
35* for book and book_article resource types.
36* 2/ 'pages' doesn't exist in the database but is created on the fly in BIBSTYLE.php as an amalgamation of
37* the database fields pageStart and pageEnd.
38* 3/ 'date' doesn't exist in the database but is created on the fly in BIBSTYLE.php as an amalgamation of
39* the database fields miscField2 (day) and miscField3 (month).
40* 4/ 'runningTime' doesn't exist in the database but is created on the fly in BIBSTYLE.php as an amalgamation of
41* the database fields miscField1 (minute) and miscField4 (hour) for film/broadcast.
42*
43* @author Mark Grimshaw
44*/
45	function loadMap()
46	{
47/**
48* What fields are available to the in-text citation template? This array should NOT be changed.
49* Currently, in-text citation formatting is not available (although it is defined in the XML style file). Future
50* releases will implement this.
51*/
52		$this->citation = array(
53					"creator" => "creator",
54					"title"	=>	"title",
55					"year" => "year",
56					"pages" => "pages",
57					"ID" => "ID");
58/**
59* NB NB NB NB NB NB NB NB NB NB NB
60*
61* Map between OSBib's resource types (keys) and the bibliographic system's resource types (values). You must
62* NOT remove any elements or change the generic types. You may edit the value of each element. If your system
63* does not have a particular resource type, then you should set the value to FALSE (e.g. 'film' => FALSE,)
64*/
65		$this->types = array(
66// The generic types must be present and unchanged.  DO NOT CHANGE THE VALUE OF THESE THREE!
67			'genericBook'		=>	'genericBook',
68			'genericArticle'	=>	'genericArticle',
69			'genericMisc'		=>	'genericMisc',
70// Edit values if necessary
71			'book'			=>	'book',
72			'book_article'		=>	'book_article',
73			'journal_article'	=>	'journal_article',
74			'newspaper_article'	=>	'newspaper_article',
75			'magazine_article'	=>	'magazine_article',
76			'proceedings'		=>	'proceedings',
77			'conference_paper'	=>	'conference_paper',
78			'proceedings_article'	=>	'proceedings_article',
79			'thesis'		=>	'thesis',
80			'web_article'		=>	'web_article',
81			'film'			=>	'film',
82			'broadcast'		=>	'broadcast',
83			'music_album'		=>	'music_album',
84			'music_track'		=>	'music_track',
85			'music_score'		=>	'music_score',
86			'artwork'		=>	'artwork',
87			'software'		=>	'software',
88			'audiovisual'		=>	'audiovisual',
89			'database'		=>	'database',
90			'government_report'	=>	'government_report',
91			'report'		=>	'report',
92			'hearing'		=>	'hearing',
93			'statute'		=>	'statute',
94			'legal_ruling'		=>	'legal_ruling',
95			'case'			=>	'case',
96			'bill'			=>	'bill',
97			'patent'		=>	'patent',
98			'personal'		=>	'personal',
99			'unpublished'		=>	'unpublished',
100			'classical'		=>	'classical',
101			'manuscript'		=>	'manuscript',
102			'map'			=>	'map',
103			'chart'			=>	'chart',
104			'miscellaneous'		=>	'miscellaneous',
105		);
106/**
107* Basic array of elements common to all types - change the key to map the database field that stores that value.
108*/
109		$this->basic = array(
110					'title'		=>	'title',
111					'year1'		=>	'publicationYear',
112			);
113/**
114* Creator mapping.  OSBib uses 'creator1' .. 'creator5' for internally managing creator names such as
115* author, editor, series editor, translator, reviser, artist, inventor, composer etc.  The associative
116* array (SQL row) you submit to $this->bibformat->preProcess() MUST use these fields for the creators.
117* Furthermore, you may NOT change any keys (or values) in the arrays below that are 'creator1' ... 'creator5'.
118*/
119
120/**
121* NB NB NB NB NB NB NB NB NB NB NB
122*
123* For the following arrays, the only things you should change are the keys of each array (except 'creator1'
124* .. 'creator5' - see above).  These keys are your database fieldnames for resources.
125* The values are displayed to the user when creating/editing a style and
126* must NOT change or be removed.  If your database does not store a particular value, then it should still
127* exist in the array and must have a null key (e.g. $this->book[] = 'publisherName'; in the case of a database
128* that does not store publisher names for books ;-)).
129*
130**************
131**************
132* Do NOT remove arrays.
133* Do not remove array elements.
134* Do not add array elements.
135**************
136**************
137*
138* You do not need to edit arrays where the value in $this->types above is FALSE as the array will then simply be
139* ignored.  So, although 34 resource types are defined here, if you system only has 6 resource types, you only need
140* to edit those 6 types.
141*
142* If you do not conform to this, XML style definition sheets you produce will not be compatible with other systems.
143*/
144// Three Generic fallback types used when there's no style definition for one of the resources below.
145// Generic Book type - no collection data, like a book
146		$this->genericBook = $this->basic;
147		$this->genericBook['creator1'] = 'creator';
148		$this->genericBook['creator2'] = 'editor';
149		$this->genericBook['publisherName'] = 'publisherName';
150		$this->genericBook['publisherLocation'] = 'publisherLocation';
151		$this->genericBook['isbn'] = 'ID';
152// Generic Article type - in a collection like an article
153		$this->genericArticle = $this->basic;
154		$this->genericArticle['creator1'] = 'creator';
155		$this->genericArticle['creator2'] = 'editor';
156		$this->genericArticle['collectionTitle'] = 'collection';
157		$this->genericArticle['publisherName'] = 'publisherName';
158		$this->genericArticle['publisherLocation'] = 'publisherLocation';
159		$this->genericArticle['date'] = 'date';
160		$this->genericArticle['pages'] = 'pages';
161		$this->genericArticle['isbn'] = 'ID';
162// Generic Miscellaneous type - whatever is best not put in the above two fall back types....?
163		$this->genericMisc = $this->basic;
164		$this->genericMisc['creator1'] = 'creator';
165		$this->genericMisc['publisherName'] = 'publisherName';
166		$this->genericMisc['publisherLocation'] = 'publisherLocation';
167		$this->genericMisc['field2'] = 'type';
168		$this->genericMisc['date'] = 'date';
169		$this->genericMisc['isbn'] = 'ID';
170
171// Resource specific mappings. The order here is the display order when editing/creating styles.
172// BOOK
173		$this->book = $this->basic;
174		$this->book['creator1'] = 'author';
175		$this->book['creator2'] = 'editor';
176		$this->book['creator3'] = 'translator';
177		$this->book['creator4'] = 'reviser';
178		$this->book['creator5'] = 'seriesEditor';
179		$this->book['field1'] = 'seriesTitle';
180		$this->book['field2'] = 'edition';
181		$this->book['field3'] = 'seriesNumber';
182		$this->book['miscField4'] = 'numberOfVolumes';
183		$this->book['field4'] = 'volumeNumber';
184		$this->book['year2'] = 'originalPublicationYear';
185		$this->book['year3'] = 'volumePublicationYear';
186		$this->book['publisherName'] = 'publisherName';
187		$this->book['publisherLocation'] = 'publisherLocation';
188		$this->book['isbn'] = 'ISBN';
189// BOOK ARTICLE/CHAPTER
190		$this->book_article = $this->book;
191		$this->book_article['collectionTitle'] = 'book';
192		$this->book_article['collectionTitleShort'] = 'shortBook';
193		$this->book_article['pages'] = 'pages';
194// JOURNAL ARTICLE
195		$this->journal_article = $this->basic;
196		$this->journal_article['creator1'] = 'author';
197		$this->journal_article['field1'] = 'volume';
198		$this->journal_article['field2'] = 'issue';
199		$this->journal_article['date'] = 'issueDate';
200		$this->journal_article['collectionTitle'] = 'journal';
201		$this->journal_article['collectionTitleShort'] = 'shortJournal';
202		$this->journal_article['pages'] = 'pages';
203		$this->journal_article['isbn'] = 'ISSN';
204// NEWSPAPER ARTICLE
205		$this->newspaper_article = $this->basic;
206		$this->newspaper_article['year1'] = 'issueYear'; // override publicationYear
207		$this->newspaper_article['date'] = 'issueDate';
208		$this->newspaper_article['creator1'] = 'author';
209		$this->newspaper_article['collectionTitle'] = 'newspaper';
210		$this->newspaper_article['collectionTitleShort'] = 'shortNewspaper';
211		$this->newspaper_article['field1'] = 'section';
212		$this->newspaper_article['field2'] = 'city';
213		$this->newspaper_article['pages'] = 'pages';
214		$this->newspaper_article['isbn'] = 'ISSN';
215// MAGAZINE ARTICLE
216		$this->magazine_article = $this->basic;
217		$this->magazine_article['year1'] = 'issueYear'; // override publicationYear
218		$this->magazine_article['date'] = 'issueDate';
219		$this->magazine_article['creator1'] = 'author';
220		$this->magazine_article['collectionTitle'] = 'magazine';
221		$this->magazine_article['collectionTitleShort'] = 'shortMagazine';
222		$this->magazine_article['field1'] = 'edition';
223		$this->magazine_article['field2'] = 'type';
224		$this->magazine_article['field4'] = 'volume';
225		$this->magazine_article['field3'] = 'number';
226		$this->magazine_article['pages'] = 'pages';
227		$this->magazine_article['isbn'] = 'ISSN';
228// PROCEEDINGS ARTICLE
229		$this->proceedings_article = $this->basic;
230		$this->proceedings_article['creator1'] = 'author';
231		$this->proceedings_article['collectionTitle'] = 'conference';
232		$this->proceedings_article['collectionTitleShort'] = 'shortConference';
233		$this->proceedings_article['publisherName'] = 'conferenceOrganiser';
234		$this->proceedings_article['publisherLocation'] = 'conferenceLocation';
235		$this->proceedings_article['date'] = 'conferenceDate';
236		$this->proceedings_article['year2'] = 'conferenceYear';
237		$this->proceedings_article['pages'] = 'pages';
238		$this->proceedings_article['isbn'] = 'ISSN';
239// THESIS
240		$this->thesis = $this->basic;
241// overwrite publicationYear
242		$this->thesis['year1'] = 'awardYear';
243		$this->thesis['creator1'] = 'author';
244		$this->thesis['field1'] = 'type'; // 'Master's', 'PhD', 'Doctoral', 'Diploma' etc.
245		$this->thesis['field2'] = 'label'; // 'thesis', 'dissertation'
246		$this->thesis['publisherName'] = 'institution';
247		$this->thesis['publisherLocation'] = 'institutionLocation';
248		$this->thesis['field5'] = 'department';
249		$this->thesis['collectionTitle'] = 'journal';
250		$this->thesis['collectionTitleShort'] = 'shortJournal';
251		$this->thesis['field3'] = 'volumeNumber';
252		$this->thesis['field4'] = 'issueNumber';
253		$this->thesis['year2'] = 'abstractYear';
254		$this->thesis['pages'] = 'pages';
255		$this->thesis['isbn'] = 'ID';
256// WEB ARTICLE
257		$this->web_article = $this->basic;
258		$this->web_article['creator1'] = 'author';
259		$this->web_article['collectionTitle'] = 'journal';
260		$this->web_article['collectionTitleShort'] = 'shortJournal';
261		$this->web_article['field1'] = 'volume';
262		$this->web_article['field2'] = 'issue';
263		$this->web_article['pages'] = 'pages';
264		$this->web_article['URL'] = 'URL';
265		$this->web_article['date'] = 'accessDate';
266		$this->web_article['year2'] = 'accessYear';
267		$this->web_article['isbn'] = 'ID';
268// FILM
269		$this->film = $this->basic;
270		$this->film['creator1'] = 'director';
271		$this->film['creator2'] = 'producer';
272		$this->film['field1'] = 'country';
273		$this->film['runningTime'] = 'runningTime';
274		$this->film['publisherName'] = 'distributor';
275		$this->film['isbn'] = 'ID';
276// BROADCAST
277		$this->broadcast = $this->basic;
278		$this->broadcast['creator1'] = 'director';
279		$this->broadcast['creator2'] = 'producer';
280		$this->broadcast['runningTime'] = 'runningTime';
281		$this->broadcast['date'] = 'broadcastDate';
282		$this->broadcast['year1'] = 'broadcastYear'; // override
283		$this->broadcast['publisherName'] = 'channel';
284		$this->broadcast['publisherLocation'] = 'channelLocation';
285		$this->broadcast['isbn'] = 'ID';
286// SOFTWARE
287		$this->software = $this->basic;
288		$this->software['creator1'] = 'author';
289		$this->software['field2'] = 'type';
290		$this->software['field4'] = 'version';
291		$this->software['publisherName'] = 'publisherName';
292		$this->software['publisherLocation'] = 'publisherLocation';
293		$this->software['isbn'] = 'ID';
294// ARTWORK
295		$this->artwork = $this->basic;
296		$this->artwork['creator1'] = 'artist';
297		$this->artwork['field2'] = 'medium';
298		$this->artwork['publisherName'] = 'publisherName';
299		$this->artwork['publisherLocation'] = 'publisherLocation';
300		$this->artwork['isbn'] = 'ID';
301// AUDIOVISUAL
302		$this->audiovisual = $this->basic;
303		$this->audiovisual['creator1'] = 'author';
304		$this->audiovisual['creator2'] = 'performer';
305		$this->audiovisual['creator5'] = 'seriesEditor';
306		$this->audiovisual['field1'] = 'seriesTitle';
307		$this->audiovisual['field4'] = 'seriesNumber';
308		$this->audiovisual['field3'] = 'edition';
309		$this->audiovisual['miscField4'] = 'numberOfVolumes';
310		$this->audiovisual['field5'] = 'volumeNumber';
311		$this->audiovisual['year3'] = 'volumePublicationYear';
312		$this->audiovisual['publisherName'] = 'publisherName';
313		$this->audiovisual['publisherLocation'] = 'publisherLocation';
314		$this->audiovisual['field2'] = 'medium';
315		$this->audiovisual['isbn'] = 'ID';
316// (LEGAL) CASE
317		$this->case = $this->basic;
318		$this->case['field1'] = 'reporter';
319		$this->case['creator3'] = 'counsel';
320		$this->case['field4'] = 'reporterVolume';
321		$this->case['date'] = 'caseDecidedDate';
322		$this->case['year1'] = 'caseDecidedYear'; // override
323		$this->case['publisherName'] = 'court';
324		$this->case['isbn'] = 'ISBN';
325// LEGAL RULING/REGULATION
326		$this->legal_ruling = $this->basic;
327		$this->legal_ruling['creator1'] = 'author';
328		$this->legal_ruling['field1'] = 'section';
329		$this->legal_ruling['field2'] = 'type';
330		$this->legal_ruling['field4'] = 'number';
331		$this->legal_ruling['field3'] = 'edition';
332		$this->legal_ruling['date'] = 'codeEditionDate';
333		$this->legal_ruling['year1'] = 'codeEditionYear'; // override
334		$this->legal_ruling['publisherName'] = 'publisherName';
335		$this->legal_ruling['publisherLocation'] = 'publisherLocation';
336		$this->legal_ruling['pages'] = 'pages';
337		$this->legal_ruling['isbn'] = 'ISBN';
338// (PARLIAMENTARY) BILL
339		$this->bill = $this->basic;
340		$this->bill['field2'] = 'code';
341		$this->bill['field3'] = 'codeVolume';
342		$this->bill['field1'] = 'codeSection';
343		$this->bill['field5'] = 'number';
344		$this->bill['field4'] = 'session';
345		$this->bill['year1'] = 'sessionYear'; // override publicationYear
346		$this->bill['publisherName'] = 'legislativeBody';
347		$this->bill['publisherLocation'] = 'publisherLocation';
348		$this->bill['pages'] = 'pages';
349		$this->bill['isbn'] = 'ID';
350// CLASSICAL WORK
351		$this->classical = $this->basic;
352		$this->classical['creator1'] = 'attributedTo';
353		$this->classical['field4'] = 'volume';
354		$this->classical['isbn'] = 'ISBN';
355// CONFERENCE PAPER
356		$this->conference_paper = $this->basic;
357		$this->conference_paper['creator1'] = 'author';
358		$this->conference_paper['publisherName'] = 'publisherName';
359		$this->conference_paper['publisherLocation'] = 'publisherLocation';
360		$this->conference_paper['isbn'] = 'ISSN';
361// MISCELLANEOUS
362		$this->miscellaneous = $this->basic;
363		$this->miscellaneous['creator1'] = 'creator';
364		$this->miscellaneous['field2'] = 'medium';
365		$this->miscellaneous['publisherName'] = 'publisherName';
366		$this->miscellaneous['publisherLocation'] = 'publisherLocation';
367		$this->miscellaneous['isbn'] = 'ID';
368// GOVERNMENT REPORT/DOCUMENTATION
369		$this->government_report = $this->basic;
370		$this->government_report['creator1'] = 'author';
371		$this->government_report['field2'] = 'department';
372		$this->government_report['field1'] = 'section';
373		$this->government_report['field4'] = 'volume';
374		$this->government_report['field5'] = 'issueNumber';
375		$this->government_report['field3'] = 'edition';
376		$this->government_report['publisherName'] = 'publisherName';
377		$this->government_report['pages'] = 'pages';
378		$this->government_report['isbn'] = 'ISSN';
379// REPORT/DOCUMENTATION
380		$this->report = $this->basic;
381		$this->report['creator1'] = 'author';
382		$this->report['field2'] = 'type';
383		$this->report['field1'] = 'seriesTitle';
384		$this->report['field5'] = 'number';
385		$this->report['publisherName'] = 'institution';
386		$this->report['publisherLocation'] = 'institutionLocation';
387		$this->report['date'] = 'reportDate';
388		$this->report['year1'] = 'reportYear'; // override
389		$this->report['pages'] = 'pages';
390		$this->report['isbn'] = 'ISSN';
391// GOVERNMENT/LEGAL HEARING
392		$this->hearing = $this->basic;
393		$this->hearing['field1'] = 'committee';
394		$this->hearing['field2'] = 'legislativeBody';
395		$this->hearing['field3'] = 'session';
396		$this->hearing['miscField4'] = 'numberOfVolumes';
397		$this->hearing['field4'] = 'documentNumber';
398		$this->hearing['date'] = 'hearingDate';
399		$this->hearing['year1'] = 'hearingYear'; // override
400		$this->hearing['publisherName'] = 'publisherName';
401		$this->hearing['publisherLocation'] = 'publisherLocation';
402		$this->hearing['pages'] = 'pages';
403		$this->hearing['isbn'] = 'ISSN';
404// ONLINE DATABASE
405		$this->database = $this->basic;
406		$this->database['creator1'] = 'author';
407		$this->database['URL'] = 'URL';
408		$this->database['date'] = 'accessDate';
409		$this->database['year2'] = 'accessYear';
410		$this->database['publisherName'] = 'publisherName';
411		$this->database['publisherLocation'] = 'publisherLocation';
412		$this->database['isbn'] = 'ID';
413// MANUSCRIPT
414		$this->manuscript = $this->basic;
415		$this->manuscript['creator1'] = 'author';
416		$this->manuscript['collectionTitle'] = 'collection';
417		$this->manuscript['collectionTitleShort'] = 'shortCollection';
418		$this->manuscript['field3'] = 'number';
419		$this->manuscript['field2'] = 'type';
420		$this->manuscript['date'] = 'issueDate';
421		$this->manuscript['year1'] = 'issueYear'; // override
422		$this->manuscript['pages'] = 'pages';
423		$this->manuscript['isbn'] = 'ISBN';
424// MAP
425		$this->map = $this->basic;
426		$this->map['creator1'] = 'cartographer';
427		$this->map['creator5'] = 'seriesEditor';
428		$this->map['field1'] = 'seriesTitle';
429		$this->map['field2'] = 'type';
430		$this->map['field3'] = 'edition';
431		$this->map['publisherName'] = 'publisherName';
432		$this->map['publisherLocation'] = 'publisherLocation';
433		$this->map['isbn'] = 'ISBN';
434// CHART
435		$this->chart = $this->basic;
436		$this->chart['creator1'] = 'creator';
437		$this->chart['field1'] = 'fileName';
438		$this->chart['field2'] = 'program';
439		$this->chart['field3'] = 'size';
440		$this->chart['field4'] = 'type';
441		$this->chart['field5'] = 'version';
442		$this->chart['field6'] = 'number';
443		$this->chart['publisherName'] = 'publisherName';
444		$this->chart['publisherLocation'] = 'publisherLocation';
445		$this->chart['isbn'] = 'ID';
446// STATUTE
447		$this->statute = $this->basic;
448		$this->statute['field2'] = 'code';
449		$this->statute['field5'] = 'codeNumber';
450		$this->statute['field1'] = 'publicLawNumber';
451		$this->statute['field3'] = 'session';
452		$this->statute['field4'] = 'section';
453		$this->statute['date'] = 'statuteDate';
454		$this->statute['year1'] = 'statuteYear'; // override
455		$this->statute['pages'] = 'pages';
456		$this->statute['isbn'] = 'ID';
457// PATENT
458		$this->patent = $this->basic;
459		$this->patent['creator1'] = 'inventor';
460		$this->patent['creator2'] = 'issuingOrganisation';
461		$this->patent['creator3'] = 'agent';
462		$this->patent['creator4'] = 'intAuthor';
463		$this->patent['field8'] = 'patentNumber';
464		$this->patent['field2'] = 'versionNumber';
465		$this->patent['field3'] = 'applicationNumber';
466		$this->patent['field6'] = 'intTitle';
467		$this->patent['field5'] = 'intPatentNumber';
468		$this->patent['field7'] = 'intClassification';
469		$this->patent['field1'] = 'publishedSource';
470		$this->patent['field9'] = 'legalStatus';
471		$this->patent['field4'] = 'type';
472		$this->patent['publisherName'] = 'assignee';
473		$this->patent['publisherLocation'] = 'assigneeLocation';
474		$this->patent['date'] = 'issueDate';
475		$this->patent['year1'] = 'issueYear'; // override
476		$this->patent['isbn'] = 'ID';
477// PERSONAL COMMUNICATION
478		$this->personal = $this->basic;
479		$this->personal['creator1'] = 'author';
480		$this->personal['creator2'] = 'recipient';
481		$this->personal['field2'] = 'type';
482		$this->personal['date'] = 'date';
483		$this->personal['year1'] = 'year'; // override
484		$this->personal['isbn'] = 'ID';
485// PROCEEDINGS (complete set of)
486		$this->proceedings = $this->basic;
487		$this->proceedings['publisherName'] = 'conferenceOrganiser';
488		$this->proceedings['publisherLocation'] = 'conferenceLocation';
489		$this->proceedings['date'] = 'conferenceDate';
490		$this->proceedings['year2'] = 'conferenceYear';
491		$this->proceedings['isbn'] = 'ISSN';
492// MUSIC ALBUM
493		$this->music_album = $this->basic;
494		$this->music_album['creator1'] = 'performer';
495		$this->music_album['creator2'] = 'composer';
496		$this->music_album['creator3'] = 'conductor';
497		$this->music_album['field2'] = 'medium';
498		$this->music_album['publisherName'] = 'publisherName';
499		$this->music_album['isbn'] = 'ID';
500// MUSIC TRACK
501		$this->music_track = $this->basic;
502		$this->music_track['creator1'] = 'performer';
503		$this->music_track['creator2'] = 'composer';
504		$this->music_track['creator3'] = 'conductor';
505		$this->music_track['collectionTitle'] = 'album';
506		$this->music_track['collectionTitleShort'] = 'shortAlbum';
507		$this->music_track['field2'] = 'medium';
508		$this->music_track['publisherName'] = 'publisherName';
509		$this->music_track['isbn'] = 'ID';
510// MUSIC SCORE
511		$this->music_score = $this->basic;
512		$this->music_score['creator1'] = 'composer';
513		$this->music_score['creator2'] = 'editor';
514		$this->music_score['field3'] = 'edition';
515		$this->music_score['publisherName'] = 'publisherName';
516		$this->music_score['publisherLocation'] = 'publisherLocation';
517		$this->music_score['isbn'] = 'ISBN';
518// UNPUBLISHED WORK
519		$this->unpublished = $this->basic;
520		$this->unpublished['year1'] = 'year';
521		$this->unpublished['creator1'] = 'author';
522		$this->unpublished['field2'] = 'type';
523		$this->unpublished['publisherName'] = 'institution';
524		$this->unpublished['publisherLocation'] = 'institutionLocation';
525		$this->unpublished['isbn'] = 'ID';
526	}
527}
528?>
529