Biblio-Isis-0.24/0002755000175000017500000000000010623416620013422 5ustar dpavlindpavlinBiblio-Isis-0.24/t/0002755000175000017500000000000010623416620013665 5ustar dpavlindpavlinBiblio-Isis-0.24/t/1_load.t0000755000175000017500000000042310453560336015216 0ustar dpavlindpavlin#!/usr/bin/perl -w use strict; use blib; use Test::More tests => 2; use File::Spec; BEGIN { use_ok( 'Biblio::Isis' ); } my $path = File::Spec->catfile('data', 'winisis', 'BIBL'); my $object = Biblio::Isis->new ( isisdb => $path, ); isa_ok ($object, 'Biblio::Isis'); Biblio-Isis-0.24/t/2_isis.t0000755000175000017500000002047510623372016015253 0ustar dpavlindpavlin#!/usr/bin/perl -w use strict; use blib; use Test::More tests => 181; use File::Spec; BEGIN { use_ok( 'Biblio::Isis' ); eval "use Data::Dump"; if (! $@) { *Dumper = *Data::Dump::dump; } else { use Data::Dumper; } } my $debug = length( shift(@ARGV) || '' ); my $isis; my $path_winisis = File::Spec->catfile('data', 'winisis', 'BIBL'); my $path_isismarc = File::Spec->catfile('data', 'isismarc', 'BIBL'); sub test_data { my $args = {@_}; isa_ok ($isis, 'Biblio::Isis'); cmp_ok($isis->count, '==', 5, "count is 5"); # test .CNT data SKIP: { skip "no CNT file for this database", 5 unless $isis->{cnt_file}; ok(my $isis_cnt = $isis->read_cnt, "read_cnt"); cmp_ok(scalar keys %{$isis_cnt}, '==', 2, "returns 2 elements"); my $cnt = { '1' => { 'N' => 15, 'K' => 5, 'FMAXPOS' => 8, 'POSRX' => 1, 'ABNORMAL' => 1, 'ORDN' => 5, 'LIV' => 0, 'ORDF' => 5, 'NMAXPOS' => 1 }, '2' => { 'N' => 15, 'K' => 5, 'FMAXPOS' => 4, 'POSRX' => 1, 'ABNORMAL' => 0, 'ORDN' => 5, 'LIV' => 0, 'ORDF' => 5, 'NMAXPOS' => 1 } }; foreach my $c (keys %{$cnt}) { foreach my $kn (keys %{$cnt->{$c}}) { cmp_ok($isis_cnt->{$c}->{$kn}, '==', $cnt->{$c}->{$kn}, "cnt $c $kn same"); } } } # test fetch my $data = [ { '801' => [ '^aFFZG' ], '702' => [ '^aHolder^bElizabeth' ], '990' => [ '2140', '88', 'HAY' ], '675' => [ '^a159.9' ], '210' => [ '^aNew York^cNew York University press^dcop. 1988' ], }, { '210' => [ '^aNew York^cUniversity press^d1989' ], '700' => [ '^aFrosh^bStephen' ], '990' => [ '2140', '89', 'FRO' ], '200' => [ '^aPsychoanalysis and psychology^eminding the gap^fStephen Frosh' ], '215' => [ '^aIX, 275 str.^d23 cm' ], }, { '210' => [ '^aLondon^cFree Associoation Books^d1992' ], '700' => [ '^aTurkle^bShirlie' ], '990' => [ '2140', '92', 'LAC' ], '200' => [ '^aPsychoanalitic politics^eJacques Lacan and Freud\'s French Revolution^fSherry Turkle' ], '686' => [ '^a2140', '^a2140' ], }, { '700' => [ '^aGross^bRichard' ], '200' => [ '^aKey studies in psychology^fRichard D. Gross' ], '210' => [ '^aLondon^cHodder & Stoughton^d1994' ], '10' => [ '^a0-340-59691-0' ], }, { # identifier test '200' => [ '1#^aPsychology^fCamille B. Wortman, Elizabeth F. Loftus, Mary E. Marshal' ], 225 => ["1#^aMcGraw-Hill series in Psychology"], 205 => ["^a4th ed"], } ]; foreach my $mfn (1 .. $isis->count) { my $rec; ok($rec = $isis->fetch($mfn), "fetch $mfn"); diag "<<<<< rec = ",Dumper( $rec ), "\n>>>>> data = ", Dumper( $data->[$mfn-1] ) if ($debug); foreach my $f (keys %{$data->[$mfn-1]}) { my $i = 0; foreach my $v (@{$data->[$mfn-1]->{$f}}) { $v =~ s/^[01# ][01# ]// if ($args->{no_ident}); diag "compare '", $rec->{$f}->[$i], "' eq '$v'" if ($debug); cmp_ok($rec->{$f}->[$i], 'eq', $v, "MFN $mfn field: $f offset: $i"); $i++; } } cmp_ok($isis->mfn, '==', $mfn, 'mfn'); } # test to_ascii SKIP: { eval "use Digest::MD5 qw(md5_hex)"; skip "no Digest::MD5 module", 5 if ($@); foreach my $mfn (1 .. $isis->count) { my $md5 = md5_hex($isis->to_ascii($mfn)); cmp_ok($md5, 'eq', $args->{md5_ascii}[$mfn - 1], "md5 $mfn"); } } } $isis = Biblio::Isis->new ( isisdb => $path_winisis, include_deleted => 1, debug => $debug > 1 ? ($debug - 1) : 0, ); diag "new Biblio::Isis = ", Dumper($isis) if ($debug); test_data( no_ident => 1, md5_ascii => [ qw( a369eff702307ba12eb81656ee0587fe 4fb38537a94f3f5954e40d9536b942b0 579a7c6901c654bdeac10547a98e5b71 7d2adf1675c83283aa9b82bf343e3d85 4cc1f798bbcf36862f7aa78c3410801a ) ], ); $isis = Biblio::Isis->new ( isisdb => $path_isismarc, include_deleted => 1, ); test_data( md5_ascii => [ qw( f5587d9bcaa54257a98fe27d3c17a0b6 3be9a049f686f2a36af93a856dcae0f2 3961be5e3ba8fb274c89c08d18df4bcc 5f73ec00d08af044a2c4105f7d889e24 843b9ebccf16a498fba623c78f21b6c0 ) ], ); # check logically deleted $isis = Biblio::Isis->new ( isisdb => $path_winisis, include_deleted => 1, ); ok($isis->fetch(3), "deleted found"); cmp_ok($isis->{deleted}, '==', 3, "MFN 3 is deleted"); ok($isis->{record}, "record exists"); diag "record = ",Dumper($isis->{record}) if ($debug); $isis = Biblio::Isis->new ( isisdb => $path_winisis, debug => $debug, hash_filter => sub { my ($l,$nr) = @_; ok(grep(/$nr/, keys %{ $isis->{record} }), "hash_filter $nr in record"); ok(grep(/\Q$l\E/, @{ $isis->{record}->{$nr} }), "hash_filter line $l found"); return($l); }, ); ok(! $isis->fetch(3), "deleted not found"); cmp_ok($isis->{deleted}, '==', 3, "MFN 3 is deleted"); ok(! $isis->{record}, 'no record'); $isis->{record} = { 900 => [ '^a900a^b900b^c900c' ], 901 => [ '^a901a-1^b901b-1^c901c-1', '^a901a-2^b901b-2', '^a901a-3', ], 902 => [ '^aa1^aa2^aa3^bb1^aa4^bb2^cc1^aa5', ], }; $isis->{current_mfn} = 42; ok(my $hash = $isis->to_hash( $isis->mfn ), 'to_hash'); diag "to_hash = ",Dumper( $hash ) if ($debug); is_deeply( $hash, { "000" => [42], 900 => [{ a => "900a", b => "900b", c => "900c" }], 901 => [ { a => "901a-1", b => "901b-1", c => "901c-1" }, { a => "901a-2", b => "901b-2" }, { a => "901a-3" }, ], 902 => [ { a => ["a1", "a2", "a3", "a4", "a5"], b => ["b1", "b2"], c => "c1" }, ], }, 'hash is_deeply'); ok(my $ascii = $isis->to_ascii( $isis->mfn ), 'to_ascii'); diag "to_ascii = \n", $ascii if ($debug); cmp_ok($ascii, 'eq', <<'__END_OF_ASCII__', 'to_ascii output'); 0 42 900 ^a900a^b900b^c900c 901 ^a901a-1^b901b-1^c901c-1 901 ^a901a-2^b901b-2 901 ^a901a-3 902 ^aa1^aa2^aa3^bb1^aa4^bb2^cc1^aa5 __END_OF_ASCII__ ok(my $hash2 = $isis->to_hash({ mfn => $isis->mfn }), 'to_hash(mfn)'); is_deeply( $hash2, $hash, 'same hash' ); # test to_hash( include_subfields ) ok($hash = $isis->to_hash({ mfn => $isis->mfn, include_subfields => 1 }), 'to_hash(mfn,include_subfields)'); diag "to_hash = ",Dumper( $hash ) if ($debug); is_deeply( $hash, { "000" => [42], 900 => [ { a => "900a", b => "900b", c => "900c", subfields => ["a", 0, "b", 0, "c", 0] }, ], 901 => [ { a => "901a-1", b => "901b-1", c => "901c-1", subfields => ["a", 0, "b", 0, "c", 0] }, { a => "901a-2", b => "901b-2", subfields => ["a", 0, "b", 0] }, { a => "901a-3", subfields => ["a", 0] }, ], 902 => [ { a => ["a1", "a2", "a3", "a4", "a5"], b => ["b1", "b2"], c => "c1", subfields => ["a", 0, "a", 1, "a", 2, "b", 0, "a", 3, "b", 1, "c", 0, "a", 4], }, ], }, 'hash is_deeply'); # test to_hash( join_subfields_with ) ok($hash = $isis->to_hash({ mfn => $isis->mfn, join_subfields_with => ' ; ' }), 'to_hash(mfn,join_subfields_with)'); diag "to_hash = ",Dumper( $hash ) if ($debug); is_deeply( $hash, { "000" => [42], 900 => [{ a => "900a", b => "900b", c => "900c" }], 901 => [ { a => "901a-1", b => "901b-1", c => "901c-1" }, { a => "901a-2", b => "901b-2" }, { a => "901a-3" }, ], 902 => [{ a => "a1 ; a2 ; a3 ; a4 ; a5", b => "b1 ; b2", c => "c1" }], }, 'hash is_deeply'); my $isis2; ok($isis2 = Biblio::Isis->new ( isisdb => $path_winisis, join_subfields_with => ' ; ', ),"new( join_subfields_with )"); ok($isis2->{record} = $isis->{record}, "copy record"); ok($isis2->{current_mfn} = $isis->{current_mfn}, "copy current_mfn"); ok($hash = $isis2->to_hash( $isis->mfn ), 'to_hash(mfn)'); diag "to_hash = ",Dumper( $hash ) if ($debug); is_deeply( $hash, { "000" => [42], 900 => [{ a => "900a", b => "900b", c => "900c" }], 901 => [ { a => "901a-1", b => "901b-1", c => "901c-1" }, { a => "901a-2", b => "901b-2" }, { a => "901a-3" }, ], 902 => [{ a => "a1 ; a2 ; a3 ; a4 ; a5", b => "b1 ; b2", c => "c1" }], }, 'hash is_deeply'); # test to_hash( hash_filter ) ok($hash = $isis->to_hash({ mfn => $isis->mfn, hash_filter => sub { my ($l,$f) = @_; if ($f == 900) { $l =~ s/0/o/g; } elsif ($f == 901) { $l =~ s/1/i/g; } elsif ($f == 902) { $l =~ s/2/s/g; } return $l; }}), 'to_hash(mfn,hash_filter)'); diag "to_hash = ",Dumper( $hash ) if ($debug); is_deeply( $hash, { "000" => [42], 900 => [{ a => "9ooa", b => "9oob", c => "9ooc" }], 901 => [ { a => "90ia-i", b => "90ib-i", c => "90ic-i" }, { a => "90ia-2", b => "90ib-2" }, { a => "90ia-3" }, ], 902 => [{ a => ["a1", "as", "a3", "a4", "a5"], b => ["b1", "bs"], c => "c1" }], }, 'hash is_deeply'); Biblio-Isis-0.24/t/9_pod.t0000755000175000017500000000025710453560376015102 0ustar dpavlindpavlin#!/usr/bin/perl use strict; use warnings; use Test::More; eval "use Test::Pod 1.00"; plan skip_all => "Test::Pod 1.00 required for testing POD" if $@; all_pod_files_ok(); Biblio-Isis-0.24/t/9_pod-coverage.t0000755000175000017500000000026610453560407016666 0ustar dpavlindpavlin#!/usr/bin/perl -w use Test::More; eval "use Test::Pod::Coverage 1.00"; plan skip_all => "Test::Pod::Coverage 1.00 required for testing POD coverage" if $@; all_pod_coverage_ok(); Biblio-Isis-0.24/README0000644000175000017500000000027210451045464014304 0ustar dpavlindpavlinPerl-only implementation of CDS/ISIS reader. Install module with: perl Makefile.PL make make test make install If you are on a windows box you should use 'nmake' rather than 'make'. Biblio-Isis-0.24/LICENSE0000644000175000017500000005010110451045464014425 0ustar dpavlindpavlinTerms of Perl itself a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or b) the "Artistic License" --------------------------------------------------------------------------- The General Public License (GPL) Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS --------------------------------------------------------------------------- The Artistic License Preamble The intent of this document is to state the conditions under which a Package may be copied, such that the Copyright Holder maintains some semblance of artistic control over the development of the package, while giving the users of the package the right to use and distribute the Package in a more-or-less customary fashion, plus the right to make reasonable modifications. Definitions: - "Package" refers to the collection of files distributed by the Copyright Holder, and derivatives of that collection of files created through textual modification. - "Standard Version" refers to such a Package if it has not been modified, or has been modified in accordance with the wishes of the Copyright Holder. - "Copyright Holder" is whoever is named in the copyright or copyrights for the package. - "You" is you, if you're thinking about copying or distributing this Package. - "Reasonable copying fee" is whatever you can justify on the basis of media cost, duplication charges, time of people involved, and so on. (You will not be required to justify it to the Copyright Holder, but only to the computing community at large as a market that must bear the fee.) - "Freely Available" means that no fee is charged for the item itself, though there may be fees involved in handling the item. It also means that recipients of the item may redistribute it under the same conditions they received it. 1. You may make and give away verbatim copies of the source form of the Standard Version of this Package without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers. 2. You may apply bug fixes, portability fixes and other modifications derived from the Public Domain or from the Copyright Holder. A Package modified in such a way shall still be considered the Standard Version. 3. You may otherwise modify your copy of this Package in any way, provided that you insert a prominent notice in each changed file stating how and when you changed that file, and provided that you do at least ONE of the following: a) place your modifications in the Public Domain or otherwise make them Freely Available, such as by posting said modifications to Usenet or an equivalent medium, or placing the modifications on a major archive site such as ftp.uu.net, or by allowing the Copyright Holder to include your modifications in the Standard Version of the Package. b) use the modified Package only within your corporation or organization. c) rename any non-standard executables so the names do not conflict with standard executables, which must also be provided, and provide a separate manual page for each non-standard executable that clearly documents how it differs from the Standard Version. d) make other distribution arrangements with the Copyright Holder. 4. You may distribute the programs of this Package in object code or executable form, provided that you do at least ONE of the following: a) distribute a Standard Version of the executables and library files, together with instructions (in the manual page or equivalent) on where to get the Standard Version. b) accompany the distribution with the machine-readable source of the Package with your modifications. c) accompany any non-standard executables with their corresponding Standard Version executables, giving the non-standard executables non-standard names, and clearly documenting the differences in manual pages (or equivalent), together with instructions on where to get the Standard Version. d) make other distribution arrangements with the Copyright Holder. 5. You may charge a reasonable copying fee for any distribution of this Package. You may charge any fee you choose for support of this Package. You may not charge a fee for this Package itself. However, you may distribute this Package in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution provided that you do not advertise this Package as a product of your own. 6. The scripts and library files supplied as input to or produced as output from the programs of this Package do not automatically fall under the copyright of this Package, but belong to whomever generated them, and may be sold commercially, and may be aggregated with this Package. 7. C or perl subroutines supplied by you and linked into this Package shall not be considered part of this Package. 8. Aggregation of this Package with a commercial distribution is always permitted provided that the use of this Package is embedded; that is, when no overt attempt is made to make this Package's interfaces visible to the end user of the commercial distribution. Such use shall not be construed as a distribution of this Package. 9. The name of the Copyright Holder may not be used to endorse or promote products derived from this software without specific prior written permission. 10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. The End Biblio-Isis-0.24/MANIFEST0000644000175000017500000000150210454200330014536 0ustar dpavlindpavlinMANIFEST MANIFEST.SKIP LICENSE README Changes Makefile.PL lib/Biblio/Isis.pm lib/Biblio/Isis/Manual.pod t/1_load.t t/2_isis.t t/9_pod-coverage.t t/9_pod.t scripts/dump_isisdb.pl scripts/dump_openisis.pl scripts/bench.pl data/isismarc/isismarc/fdt21.mst data/isismarc/isismarc/fdt21.xrf data/isismarc/isismarc/fmt21.mst data/isismarc/isismarc/fmt21.xrf data/isismarc/isismarc/isismarc2.cip data/isismarc/isismarc/pft21.fst data/isismarc/isismarc/pft21.mst data/isismarc/isismarc/pft21.xrf data/isismarc/BIBL.IFP data/isismarc/BIBL.mst data/isismarc/BIBL.XRF data/winisis/BIBL.CNT data/winisis/BIBL.IFP data/winisis/BIBL.l01 data/winisis/BIBL.l02 data/winisis/BIBL.mst data/winisis/BIBL.N01 data/winisis/BIBL.N02 data/winisis/BIBL.XRF data/winisis/BIBL.FDT META.yml Module meta-data (added by MakeMaker) Biblio-Isis-0.24/META.yml0000644000175000017500000000071110623416620014670 0ustar dpavlindpavlin# http://module-build.sourceforge.net/META-spec.html #XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX# name: Biblio-Isis version: 0.24 version_from: lib/Biblio/Isis.pm installdirs: site requires: Carp: 0 File::Glob: 0 File::Spec: 0 Test::More: 0 distribution_type: module generated_by: ExtUtils::MakeMaker version 6.30_01 Biblio-Isis-0.24/lib/0002755000175000017500000000000010623416620014170 5ustar dpavlindpavlinBiblio-Isis-0.24/lib/Biblio/0002755000175000017500000000000010623416620015370 5ustar dpavlindpavlinBiblio-Isis-0.24/lib/Biblio/Isis/0002755000175000017500000000000010623416620016277 5ustar dpavlindpavlinBiblio-Isis-0.24/lib/Biblio/Isis/Manual.pod0000644000175000017500000006702110451045464020227 0ustar dpavlindpavlin=pod =head1 NAME CDS/ISIS manual appendix F, G and H =head1 DESCRIPTION This is partial scan of CDS/ISIS manual (appendix F, G and H, pages 257-272) which is than converted to text using OCR and proofread. However, there might be mistakes, and any corrections sent to C will be greatly appreciated. This digital version is made because current version available in ditial form doesn't contain details about CDS/ISIS file format and was essential in making L module. This extract of manual has been produced in compliance with section (d) of WinIsis LICENCE for receiving institution/person which say: The receiving institution/person may: (d) Print/reproduce the CDS/ISIS manuals or portions thereof, provided that such copies reproduce the copyright notice; =head1 CDS/ISIS Files This section describes the various files of the CDS/ISIS system, the file naming conventions and the file extensions used for each type of file. All CDS/ISIS files have standard names as follows: nnnnnn.eee where: =over 10 =item C is the file name (all file names, except program names, are limited to a maximum of 6 characters) =item C<.eee> is the file extension identifying a particular type of file. =back Files marked with C<*> are ASCII files which you may display or print. The other files are binary files. =head2 A. System files System files are common to all CDS/ISIS users and include the various executable programs as well as system menus, worksheets and message files provided by Unesco as well as additional ones which you may create. =head3 CDS/ISIS Program The name of the program file, as supplied by Unesco is ISIS.EXE Depending on the release and/or target computer, there may also be one or more overlay files. These, if present, have the extension C. Check the contents of your system diskettes or tape to see whether overlay files are present. =head3 System menus and worksheets All system menus and worksheets have the file extension FMT and the names are built as follows: pctnnn.FMT where: =over 10 =item C

is the page number (A for the first page, B for the second, etc.) =item C is the language code (e.g. E for English), which must be one of those provided for in the language selection menu xXLNG. =item C is X for menus and Y for system worksheets =item C is a unique identifier =back For example the full name of the English version of the menu xXGEN is C. The page number is transparent to the CDS/ISIS user. Like the file extension the page number is automatically provided by the system. Therefore when a CDS/ISIS program prompts you to enter a menu or worksheet name you must not include the page number. Furthermore as file names are restricted to 6 characters, menus and worksheets names may not be longer than 5 characters. System menus and worksheets may only have one page. The language code is mandatory for system menus and standard system worksheets. For example if you want to link a HELP menu to the system menu EXGEN, its name must begin with the letter E. The B convention is only enforced for standard system menus. It is a good practice, however, to use the same convention for menus that you create, and to avoid creating worksheets (including data entry worksheets) with X in this position, that is with names like xBxxx. Furthermore, if a data base name contains B or B in the second position, then the corresponding data entry worksheets will be created in the system worksheet directory (parameter 2 of C) rather then the data base directory. Although this will not prevent normal operation of the data base, it is not recommended. =head3 System messages files System messages and prompts are stored in standard CDS/ISIS data bases. All corresponding data base files (see below) are required when updating a message file, but only the Master file is used to display messages. There must be a message data base for each language supported through the language selection menu xXLNG. The data base name assigned to message data bases is xMSG (where x is the language code). =head3 System tables System tables are used by CDS/ISIS to define character sets. Two are required at present: =over =item C* defines lower to upper-case translation =item C* defines the alphabetic characters. =back =head3 System print and work files Certain CDS/ISIS print functions do not send the output directly to the printer but store it on a disk file from which you may then print it at a convenient time. These files have all the file extension C and are reused each time the corresponding function is executed. In addition CDS/ISIS creates temporary work files which are normally automatically discarded at the end of the session. If the session terminates abnormally, however, they will not be deleted. A case of abnormal termination would be a power failure while you are using a CDS/ISIS program. Also these files, however, are reused each time, so that you do not normally need to delete them manually. Work files all have the extension C. The print and work files created by CDS/ISIS are given below: =over =item C* Inverted file listing file (produced by ISISINV) =item C* Worksheet/menu listing file (produced by ISISUTL) =item C* System messages listing file (produced by ISISUTL) =item C* Printed output (produced by ISISPRT when printing no print file name is supplied) =item C Sort work file 1 =item C Sort work file 2 =item C Sort work file 3 =item C Sort work file 4 =item C Sort work file 5 =item C Sort work file 6 =item C Sort work file 7 =item C Sort work file 8 =item C* Trace file created by certain programs =item C Temporary storage for hit lists created during retrieval =item C Temporary storage for search expressions =back =head2 B. Data Base files =over =item 1 mandatory files, which must always be present. These are normally established when the data base is defined by means of the ISISDEF services and should never be deleted; =item 2 auxiliary files created by the system whenever certain functions are performed. These can periodically be deleted when they are no longer needed. =item 3 user files created by the data base user (such as display formats), which are fully under the user's responsibility. =back Each data base consists of a number of physically distinct files as indicated below. There are three categories of data base files: In the following description C is the 1-6 character data base name. =head3 Mandatory data base files =over =item C* Field Definition Table =item C* Field Select Table for Inverted file =item C* Default data entry worksheet (where p is the page number). Note that the data base name is truncated to 5 characters if necessary =item C* Default display format =item C Master file =item C Crossreference file (Master file index) =item C B*tree (search term dictionary) control file =item C B*tree Nodes (for terms up to 10 characters long) =item C B*tree Leafs (for terms up to 10 characters long) =item C B*tree Nodes (for terms longer than 10 characters) =item C B*tree Leafs (for terms longer than 10 characters) =item C Inverted file postings =item C* ANY file =back =head3 Auxiliary files =over =item C* Stopword file used during inverted file generation =item C* Unsorted Link file (short terms) =item C* Unsorted Link file (long terms) =item C* Sorted Link file (short terms) =item C* Sorted Link file (long terms) =item C Master file backup =item C Hit file index =item C Hit file =item C* Sort convertion table (see "Uppercase conversion table (1SISUC.TAB)" on page 227) =back =head3 User files =over =item C* Field Select tables used for sorting =item C* Additional display formats =item C* Additional data entry worksheets =item C* Additional stopword files =item C Save files created during retrieval =back The name of user files is fully under user control. However, in order to avoid possible name conflicts it is advisable to establish some standard conventions to be followed by all CDS/ISIS users at a given site, such as for example to define C as follows: xxxyyy where: =over =item C is a data base identifier (which could be the first three letters of the data base name if no two data bases names are allowed to begin with the same three letters) =item C a user chosen name. =back =head1 Master file structure and record format =head2 A. Master file record format The Master record is a variable length record consisting of three sections: a fixed length leader; a directory; and the variable length data fields. =head3 Leader format The leader consists of the following 7 integers (fields marked with * are 31-bit signed integers): =over =item C* Master file number =item C Record length (always an even number) =item C* Backward pointer - Block number =item C Backward pointer - Offset =item C Offset to variable fields (this is the combined length of the Leader and Directory part of the record, in bytes) =item C Number of fields in the record (i.e. number of directory entries) =item C Logical deletion indicator (0=record active; 1=record marked for deletion) =back C and C are initially set to 0 when the record is created. They are subsequently updated each time the record itself is updated (see below). =head3 Directory format The directory is a table indicating the record contents. There is one directory entry for each field present in, the record (i.e. the directory has exactly NVF entries). Each directory entry consists of 3 integers: =over =item C Field Tag =item C Offset to first character position of field in the variable field section (the first field has C) =item C Field length in bytes =back The total directory length in bytes is therefore C<6*NVF>; the C field in the leader is always: C<18+6*NVF>. =head3 Variable fields This section contains the data fields (in the order indicated by the directory). Data fields are placed one after the other, with no separating characters. =head2 B. Control record The first record in the Master file is a control record which the system maintains automatically. This is never accessible to the ISIS user. Its contents are as follows (fields marked with C<*> are 31-bit signed integers): =over =item C* always 0 =item C* MFN to be assigned to the next record created in the data base =item C* Last block number allocated to the Master file (first block is 1) =item C Offset to next available position in last block =item C always 0 for user data base file (1 for system message files) =back (the last four fields are used for statistics during backup/restore). =head2 C. Master file block format The Master file records are stored consecutively, one after the other, each record occupying exactly C bytes. The file is stored as physical blocks of 512 bytes. A record may begin at any word boundary between 0-498 (no record begins between 500-510) and may span over two or more blocks. As the Master file is created and/or updated, the system maintains an index indicating the position of each record. The index is stored in the Crossreference file (C<.XRF>) =head2 D. Crossreference file The C file is organized as a table of pointers to the Master file. The first pointer corresponds to MFN 1, the second to MFN 2, etc. Each pointer consists of two fields: =over =item C* =item C* =item C* =item C* =item C (21 bits) Block number of Master file block containing the record =item C (11 bits) Offset in block of first character position of Master record (first block position is 0) =back which are stored in a 31-bit signed integer (4 bytes) as follows: pointer = XRFMFB * 2048 + XRFMFP (giving therefore a maximum Master file size of 500 Megabytes). Each block of the C file is 512 bytes and contains 127 pointers. The first field in each block (C) is a 31-bit signed integer whose absolute value is the C block number. A negative C indicates the last block. I records are indicated as follows: =over =item C 0> and C 0> logically deleted record (in this case C is the correct block pointer and C is the offset of the record, which can therefore still be retrieved) =item C and C physically deleted record =item C and C inexistent record (all records beyond the highest C assigned in the data base) =back =head2 E. Master file updating technique =head3 Creation of new records New records are always added at the end of the Master file, at the position indicated by the fields C/C in the Master file control record. The C to be assigned is also obtained from the field C in the control record. After adding the record, C is increased by 1 and C/C are updated to point to the next available position. In addition a new pointer is created in the C file and the C field corresponding to the record is increased by 1024 to indicate that this is a new record to be inverted (after the inversion of the record 1024 is subtracted from C). =head3 Update of existing records Whenever you update a record (i.e., you call it in data entry and exit with option X from the editor) the system writes the record back to the Master file. Where it is written depends on the status of the record when it was initially read. =head4 There was no inverted file update pending for the record This condition is indicated by the following: On C C 512> and On C C and C In this case, the record is always rewritten at the end of the Master file (as if it were a new record) as indicated by C/C in the control record. In the new version of the record C/C are set to point to the old version of the record, while in the C file the pointer points to the new version. In addition 512 is added to C to indicate that an inverted file update is pending. When the inverted file is updated, the old version of the record is used to determine the postings to be deleted and the new version is used to add the new postings. After the update of the Inverted file, 512 is subtracted from C, and C/C are reset to 0. =head4 An inverted file update was pending This condition is indicated by the following: On C C 512> and On C C 0> In this case C/C point to the version of the record which is currently reflected in the Inverted file. If possible, i.e. if the record length was not increased, the record is written back at its original location, otherwise it is written at the end of the file. In both cases, C/C are not changed. =head3 Deletion of records Record deletion is treated as an update, with the following additional markings: On C C is negative On C C is set to 1 =head2 F. Master file reorganization As indicated above, as Master file records are updated the C file grows in size and there will be lost space in the file which cannot be used. The reorganization facilities allow this space to be reclaimed by recompacting the file. During the backup phase a Master file backup file is created (C<.BKP>). The structure and format of this file is the same as the Master file (C<.MST>), except that a Crossreference file is not required as all the records are adjacent. Records marked for deletion are not backed up. Because only the latest copy of each record is backed up, the system does not allow you to perform a backup whenever an Inverted file update is pending for one or more records. During the restore phase the backup file is read sequentially and the program recreates the C and C file. At this point alt records which were marked for logical deletion (before the backup) are now marked as physically deleted (by setting C and C. Deleted records are detected by checking holes in the C numbering. =head1 Inverted file structure and record formats =head2 A. Introduction The CDS/ISIS Inverted file consists of six physical files, five of which contain the dictionary of searchable terms (organized as a B*tree) and the sixth contains the list of postings associated with each term. In order to optimize disk storage, two separate B*trees are maintained, one for terms of up to 10 characters (stored in files C<.N01>/C<.L01>) and one for terms longer than 10 characters, up to a maximum of 30 characters (stored in files C<.N02>/C<.L02>). The file C contains control fields for both B*trees. In each B*tree the file C<.N0x> contains the nodes of the tree and the C<.L0x> file contains the leafs. The leaf records point to the postings file C<.IFP>. The relationship between the various files is schematically represented in Figure 67. The physical relationship between these six files is a pointer, which represents the relative address of the record being pointed to. A relative address is the ordinal record number of a record in a given file (i.e. the first record is record number 1, the second is record number 2, etc.). The file C<.CNT> points to the file C<.N0x>, C<.N0x> points to C<.L0x>, and C<.L0x> points to C<.IFP>. Because the C<.IFP> is a packed file, the pointer from C<.L0x> to C<.IFP> has two components: the block number and the offset within the block, each expressed as an integer. =head2 B. Format of C<.CNT> file This file contain two 26-byte fixed length records (one for each B*tree) each containing 10 integers as follows (fields marked with * are 31-bit signed integers): =over =item C B*tree type (1 for C<.N01>/C<.L01>, 2 for C<.N02>/C<.L02>) =item C Nodes order (each C<.N0x> record contains at most C<2*ORDN> keys) =item C Leafs order (each C<.L0x> record contains at most C<2*ORDF> keys) =item C Number of memory buffers allocated for nodes =item C Number of buffers allocated to lst level index (C N>) =item C Current number of index levels =item C* Pointer to Root record in C<.N0x> =item C* Next available position in C<.N0x> file =item C* Next available position in C<.L0x> file =item C Formal B*tree normality indicator (0 if B*tree is abnormal, 1 if B*tree is normal). A B*tree is abnormal if the nodes file C<.N0x> contains only the Root. =back C, C, C and C are fixed for a given generated system. Currently these values are set as follows: C; C; C; C for both B*trees +--------------+ | Root address | +-------|------+ | .CNT file | ------------- | .N0x file +-----------V--------+ | Key1 Key2 ... Keyn | Root +---|-------------|--+ | | +-----+ +------+ | | +----------V----------+ +---------V----------+ 1st level | Key1 Key2 ... Keyn | ... | Key1 Key2 ... Keyn | index +--|------------------+ +-----------------|--+ | : : +-------+ | | +--V------------------+ +---------V----------+ last level | Key1 Key2 ... Keyn | ... | Key1 Key2 ... Keyn | index +---------|-----------+ +---------|----------+ | | | | ------------- | | .L0x file +---------V-----------+ +---------V----------+ | Key1 Key2 ... Keyn | ... | Key1 Key2 ... Keyn | +--|------------------+ +--------------------+ | | ------------- | .IPF file +--V----------------------------------+ | P1 P2 P3 ..................... Pn | +-------------------------------------+ I

The other values are set as required when the B*trees are generated. =head2 C. Format of C<.N0x> files These files contain the indexes) of the dictionary of searchable terms (C<.N01> for terms shorter than 11 characters and C<.N02> for terms longer than 10 characters). The C<.N0x> file records have the following format (fields marked with * are 31-bit signed integers): =over =item C* an integer indicating the relative record number (1 for the first record, 2 for the second record, etc.) =item C an integer indicating the number of active keys in the record ( C<1 E= OCK E= 2*ORDN> ) =item C an integer indicating the type of B*tree (1 for C<.N01>, 2 for C<.N02>) =item C an array of C entries (C of which are active), each having the following format: =over 4 =item C a fixed length character string of length C<.LEx> (C, C) =item C a pointer to the C<.N0x> record (if C 0>) or C<.L0x> record (if C 0>) whose C. C indicates an inactive entry. A positive C indicates a branch to a hierarchically lower level index. The lowest level index (C 0>) points the leafs in the C<.L0x> file. =back =back =head2 D. Format of C<.L0x> files These files contain the full dictionary of searchable terms (C<.L01> for terms shorter than 11 characters and C<.L02> for terms longer than 10 characters). The C<.L0x> file records have the following format (fields marked with C<*> are 31-bit signed integers): =over =item C* an integer indicating the relative record number (1 for the first record, 2 for the second record, etc.) =item C an integer indicating the number of active keys in the record (C<1 E OCK E= 2*ORDF>) =item C an integer indicating the type of B*tree (1 for C<.N01>, 2 for C<.N02>) =item C* is the immediate successor of C in this record (this is used to speed up sequential access to the file) =item C an array of C entries (C of which are active), each having the following format: =over 4 =item C a fixed length character string of length C (C, C) =item C a pointer to the C<.IFP> record where the list of postings associated with C begins. This pointer consists of two 31-bit signed integers as follows: =over 8 =item C* relative block number in C<.IFP> =item C* offset (word number relative to 0) to postings list =back =back =back =head2 E. Format of C<.IFP> file This file contains the list of postings for each dictionary term. Each list of postings has the format indicated below. The file is structured in blocks of 512 characters, where (for an initially loaded and compacted file) the lists of postings for each term are adjacent, except as noted below. The general format of each block is: =over =item C a 31-bit signed integer indicating the Block number of this block (blocks are numbered from 1) =item C An array of 127 31-bit signed integers =back C and C of the first block are a pointer to the next available position in the C<.IFP> file. Pointers from C<.L0x> to C<.IFP> and pointers within C<.IFP> consist of two 31-bit signed integers: the first integer is a block number, and the second integer is a word offset in C (e.g. the offset to the first word in C is 0). The list of postings associated with the first search term will therefore start at 1/0. Each list of postings consists of a header (5 double-words) followed by the actual list of postings (8 bytes for each posting). The header has the following format (each field is a 31-bit signed integer): =over =item C* Pointer to next segment (Block number) =item C* Pointer to next segment (offset) =item C* Total number of postings (accurate only in first segment) =item C* Number of postings in this segment (C= IFPTOTP>) =item C* Segment capacity (i.e. number of postings which can be stored in this segment) =back Each posting is a 64-bit string partitioned as follows: =over =item C (24 bits) Master file number =item C (16 bits) Field identifier (assigned from the C) =item C (8 bits) Occurrence number =item C (16 bits) Term sequence number in field =back Each field is stored in a strict left-to-right sequence with leading zeros added if necessary to adjust the corresponding bit string to the right (this allows comparisons of two postings as character strings). The list of postings is stored in ascending C/C/C/C sequence. When the inverted file is loaded sequentially (e.g. after a full inverted file generation with ISISINV), each list consists of one or more adjacent segments. If C= 32768> then: C and C. As updates are performed, additional segments may be created whenever new postings must be added. In this case a new segment with capacity C is created and linked to other segments (through the pointer C/C) in such a way that the sequence C/C/C/C is maintained. Whenever such a split occurs the postings of the segment where the new posting should have been inserted are equally distributed between this segment and the newly created segment. New segments are always written at the end of the file (which is maintained in C/C of the first C<.IFP> block. For example, assume that a new posting C has to be inserted between C and C in the following list: +----------------------------+ | 0 0 5 5 5 | P1 P2 P3 P4 P5 | +----------------------------+ after the split (and assuming that the next available position in C<.IFP> is 3/4) the list of postings will consist of the following two segments: +----------------------------+ | 3 4 5 3 5 | P2 P2 Px -- -- | +--|-------------------------+ | +--V-------------------------+ | 0 0 5 3 5 | P3 P4 P5 -- -- | +----------------------------+ In this situation, no new segment will be created until either segment becomes again full. As mentioned above, the posting lists are normally stored one after the other. However, in order to facilitate access to the C<.IFP> file the segments are stored in such a way that: =over =item 1 the header and the first posting in each list (28 bytes) are never split between two blocks. =item 2 a posting is never split between two blocks; if there is not enough room in the current block the whole posting is stored in the next block. =back =head1 LICENCE UNESCO has developed and owns the intellectual property of the CDS/ISIS software (in whole or in part, including all files and documentation, from here on referred to as CDS/ISIS) for the storage and retrieval of information. For complete text of licence visit L. =cut Biblio-Isis-0.24/lib/Biblio/Isis.pm0000644000175000017500000004642710623406016016646 0ustar dpavlindpavlinpackage Biblio::Isis; use strict; use Carp; use File::Glob qw(:globally :nocase); BEGIN { use Exporter (); use vars qw ($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); $VERSION = 0.24; @ISA = qw (Exporter); #Give a hoot don't pollute, do not export more than needed by default @EXPORT = qw (); @EXPORT_OK = qw (); %EXPORT_TAGS = (); } =head1 NAME Biblio::Isis - Read CDS/ISIS, WinISIS and IsisMarc database =head1 SYNOPSIS use Biblio::Isis; my $isis = new Biblio::Isis( isisdb => './cds/cds', ); for(my $mfn = 1; $mfn <= $isis->count; $mfn++) { print $isis->to_ascii($mfn),"\n"; } =head1 DESCRIPTION This module will read ISIS databases created by DOS CDS/ISIS, WinIsis or IsisMarc. It can be used as perl-only alternative to OpenIsis module which seems to depriciate it's old C bindings for perl. It can create hash values from data in ISIS database (using C), ASCII dump (using C) or just hash with field names and packed values (like C<^asomething^belse>). Unique feature of this module is ability to C records. It will also skip zero sized fields (OpenIsis has a bug in XS bindings, so fields which are zero sized will be filled with random junk from memory). It also has support for identifiers (only if ISIS database is created by IsisMarc), see C. This module will always be slower than OpenIsis module which use C library. However, since it's written in perl, it's platform independent (so you don't need C compiler), and can be easily modified. I hope that it creates data structures which are easier to use than ones created by OpenIsis, so reduced time in other parts of the code should compensate for slower performance of this module (speed of reading ISIS database is rarely an issue). =head1 METHODS =cut # my $ORDN; # Nodes Order # my $ORDF; # Leafs Order # my $N; # Number of Memory buffers for nodes # my $K; # Number of buffers for first level index # my $LIV; # Current number of Index Levels # my $POSRX; # Pointer to Root Record in N0x # my $NMAXPOS; # Next Available position in N0x # my $FMAXPOS; # Next available position in L0x # my $ABNORMAL; # Formal BTree normality indicator # # some binary reads # =head2 new Open ISIS database my $isis = new Biblio::Isis( isisdb => './cds/cds', read_fdt => 1, include_deleted => 1, hash_filter => sub { my ($v,$field_number) = @_; $v =~ s#foo#bar#g; }, debug => 1, join_subfields_with => ' ; ', ); Options are described below: =over 5 =item isisdb This is full or relative path to ISIS database files which include common prefix of C<.MST>, and C<.XRF> and optionally C<.FDT> (if using C option) files. In this example it uses C<./cds/cds.MST> and related files. =item read_fdt Boolean flag to specify if field definition table should be read. It's off by default. =item include_deleted Don't skip logically deleted records in ISIS. =item hash_filter Filter code ref which will be used before data is converted to hash. It will receive two arguments, whole line from current field (in C<< $_[0] >>) and field number (in C<< $_[1] >>). =item debug Dump a B of debugging output even at level 1. For even more increase level. =item join_subfields_with Define delimiter which will be used to join repeatable subfields. This option is included to support lagacy application written against version older than 0.21 of this module. By default, it disabled. See L. =item ignore_empty_subfields Remove all empty subfields while reading from ISIS file. =back =cut sub new { my $class = shift; my $self = {}; bless($self, $class); croak "new needs database name (isisdb) as argument!" unless ({@_}->{isisdb}); foreach my $v (qw{isisdb debug include_deleted hash_filter join_subfields_with ignore_empty_subfields}) { $self->{$v} = {@_}->{$v} if defined({@_}->{$v}); } my @isis_files = grep(/\.(FDT|MST|XRF|CNT)$/i,glob($self->{isisdb}."*")); foreach my $f (@isis_files) { my $ext = $1 if ($f =~ m/\.(\w\w\w)$/); $self->{lc($ext)."_file"} = $f; } my @must_exist = qw(mst xrf); push @must_exist, "fdt" if ($self->{read_fdt}); foreach my $ext (@must_exist) { unless ($self->{$ext."_file"}) { carp "missing ",uc($ext)," file in ",$self->{isisdb}; return; } } if ($self->{debug}) { print STDERR "## using files: ",join(" ",@isis_files),"\n"; eval "use Data::Dump"; if (! $@) { *Dumper = *Data::Dump::dump; } else { use Data::Dumper; } } # if you want to read .FDT file use read_fdt argument when creating class! if ($self->{read_fdt} && -e $self->{fdt_file}) { # read the $db.FDT file for tags my $fieldzone=0; open(my $fileFDT, $self->{fdt_file}) || croak "can't read '$self->{fdt_file}': $!"; binmode($fileFDT); while (<$fileFDT>) { chomp; if ($fieldzone) { my $name=substr($_,0,30); my $tag=substr($_,50,3); $name =~ s/\s+$//; $tag =~ s/\s+$//; $self->{'TagName'}->{$tag}=$name; } if (/^\*\*\*/) { $fieldzone=1; } } close($fileFDT); } # Get the Maximum MFN from $db.MST open($self->{'fileMST'}, $self->{mst_file}) || croak "can't open '$self->{mst_file}': $!"; binmode($self->{'fileMST'}); # MST format: (* = 32 bit signed) # CTLMFN* always 0 # NXTMFN* MFN to be assigned to the next record created # NXTMFB* last block allocated to master file # NXTMFP offset to next available position in last block # MFTYPE always 0 for user db file (1 for system) seek($self->{'fileMST'},4,0) || croak "can't seek to offset 0 in MST: $!"; my $buff; read($self->{'fileMST'}, $buff, 4) || croak "can't read NXTMFN from MST: $!"; $self->{'NXTMFN'}=unpack("V",$buff) || croak "NXTNFN is zero"; print STDERR "## self ",Dumper($self),"\n" if ($self->{debug}); # open files for later open($self->{'fileXRF'}, $self->{xrf_file}) || croak "can't open '$self->{xrf_file}': $!"; binmode($self->{'fileXRF'}); $self ? return $self : return undef; } =head2 count Return number of records in database print $isis->count; =cut sub count { my $self = shift; return $self->{'NXTMFN'} - 1; } =head2 fetch Read record with selected MFN my $rec = $isis->fetch(55); Returns hash with keys which are field names and values are unpacked values for that field like this: $rec = { '210' => [ '^aNew York^cNew York University press^dcop. 1988' ], '990' => [ '2140', '88', 'HAY' ], }; =cut sub fetch { my $self = shift; my $mfn = shift || croak "fetch needs MFN as argument!"; # is mfn allready in memory? my $old_mfn = $self->{'current_mfn'} || -1; return $self->{record} if ($mfn == $old_mfn); print STDERR "## fetch: $mfn\n" if ($self->{debug}); # XXX check this? my $mfnpos=($mfn+int(($mfn-1)/127))*4; print STDERR "## seeking to $mfnpos in file '$self->{xrf_file}'\n" if ($self->{debug}); seek($self->{'fileXRF'},$mfnpos,0); my $buff; # delete old record delete $self->{record}; # read XRFMFB abd XRFMFP read($self->{'fileXRF'}, $buff, 4); my $pointer=unpack("V",$buff); if (! $pointer) { if ($self->{include_deleted}) { return; } else { warn "pointer for MFN $mfn is null\n"; return; } } # check for logically deleted record if ($pointer & 0x80000000) { print STDERR "## record $mfn is logically deleted\n" if ($self->{debug}); $self->{deleted} = $mfn; return unless $self->{include_deleted}; # abs $pointer = ($pointer ^ 0xffffffff) + 1; } my $XRFMFB = int($pointer/2048); my $XRFMFP = $pointer - ($XRFMFB*2048); # (XRFMFB - 1) * 512 + XRFMFP # why do i have to do XRFMFP % 1024 ? my $blk_off = (($XRFMFB - 1) * 512) + ($XRFMFP % 512); print STDERR "## pointer: $pointer XRFMFB: $XRFMFB XRFMFP: $XRFMFP offset: $blk_off\n" if ($self->{'debug'}); # Get Record Information seek($self->{'fileMST'},$blk_off,0) || croak "can't seek to $blk_off: $!"; read($self->{'fileMST'}, $buff, 4) || croak "can't read 4 bytes at offset $blk_off from MST file: $!"; my $value=unpack("V",$buff); print STDERR "## offset for rowid $value is $blk_off (blk $XRFMFB off $XRFMFP)\n" if ($self->{debug}); if ($value!=$mfn) { if ($value == 0) { print STDERR "## record $mfn is physically deleted\n" if ($self->{debug}); $self->{deleted} = $mfn; return; } carp "Error: MFN ".$mfn." not found in MST file, found $value"; return; } read($self->{'fileMST'}, $buff, 14); my ($MFRL,$MFBWB,$MFBWP,$BASE,$NVF,$STATUS) = unpack("vVvvvv", $buff); print STDERR "## MFRL: $MFRL MFBWB: $MFBWB MFBWP: $MFBWP BASE: $BASE NVF: $NVF STATUS: $STATUS\n" if ($self->{debug}); warn "MFRL $MFRL is not even number" unless ($MFRL % 2 == 0); warn "BASE is not 18+6*NVF" unless ($BASE == 18 + 6 * $NVF); # Get Directory Format my @FieldPOS; my @FieldLEN; my @FieldTAG; read($self->{'fileMST'}, $buff, 6 * $NVF); my $rec_len = 0; for (my $i = 0 ; $i < $NVF ; $i++) { my ($TAG,$POS,$LEN) = unpack("vvv", substr($buff,$i * 6, 6)); print STDERR "## TAG: $TAG POS: $POS LEN: $LEN\n" if ($self->{debug}); # The TAG does not exists in .FDT so we set it to 0. # # XXX This is removed from perl version; .FDT file is updated manually, so # you will often have fields in .MST file which aren't in .FDT. On the other # hand, IsisMarc doesn't use .FDT files at all! #if (! $self->{TagName}->{$TAG}) { # $TAG=0; #} push @FieldTAG,$TAG; push @FieldPOS,$POS; push @FieldLEN,$LEN; $rec_len += $LEN; } # Get Variable Fields read($self->{'fileMST'},$buff,$rec_len); print STDERR "## rec_len: $rec_len poc: ",tell($self->{'fileMST'})."\n" if ($self->{debug}); for (my $i = 0 ; $i < $NVF ; $i++) { # skip zero-sized fields next if ($FieldLEN[$i] == 0); my $v = substr($buff,$FieldPOS[$i],$FieldLEN[$i]); if ( $self->{ignore_empty_subfields} ) { $v =~ s/(\^\w)+(\^\w)/$2/g; $v =~ s/\^\w$//; # last on line? next if ($v eq ''); } push @{$self->{record}->{$FieldTAG[$i]}}, $v; } $self->{'current_mfn'} = $mfn; print STDERR Dumper($self),"\n" if ($self->{debug}); return $self->{'record'}; } =head2 mfn Returns current MFN position my $mfn = $isis->mfn; =cut # This function should be simple return $self->{current_mfn}, # but if new is called with _hack_mfn it becomes setter. # It's useful in tests when setting $isis->{record} directly sub mfn { my $self = shift; return $self->{current_mfn}; }; =head2 to_ascii Returns ASCII output of record with specified MFN print $isis->to_ascii(42); This outputs something like this: 210 ^aNew York^cNew York University press^dcop. 1988 990 2140 990 88 990 HAY If C is specified when calling C it will display field names from C<.FDT> file instead of numeric tags. =cut sub to_ascii { my $self = shift; my $mfn = shift || croak "need MFN"; my $rec = $self->fetch($mfn) || return; my $out = "0\t$mfn"; foreach my $f (sort keys %{$rec}) { my $fn = $self->tag_name($f); $out .= "\n$fn\t".join("\n$fn\t",@{$self->{record}->{$f}}); } $out .= "\n"; return $out; } =head2 to_hash Read record with specified MFN and convert it to hash my $hash = $isis->to_hash($mfn); It has ability to convert characters (using C) from ISIS database before creating structures enabling character re-mapping or quick fix-up of data. This function returns hash which is like this: $hash = { '210' => [ { 'c' => 'New York University press', 'a' => 'New York', 'd' => 'cop. 1988' } ], '990' => [ '2140', '88', 'HAY' ], }; You can later use that hash to produce any output from ISIS data. If database is created using IsisMarc, it will also have to special fields which will be used for identifiers, C and C like this: '200' => [ { 'i1' => '1', 'i2' => ' ' 'a' => 'Goa', 'f' => 'Valdo D\'Arienzo', 'e' => 'tipografie e tipografi nel XVI secolo', } ], In case there are repeatable subfields in record, this will create following structure: '900' => [ { 'a' => [ 'foo', 'bar', 'baz' ], }] Or in more complex example of 902 ^aa1^aa2^aa3^bb1^aa4^bb2^cc1^aa5 it will create 902 => [ { a => ["a1", "a2", "a3", "a4", "a5"], b => ["b1", "b2"], c => "c1" }, ], This behaviour can be changed using C option to L, in which case C will always create single value for each subfield. This will change result to: This method will also create additional field C<000> with MFN. There is also more elaborative way to call C like this: my $hash = $isis->to_hash({ mfn => 42, include_subfields => 1, }); Each option controll creation of hash: =over 4 =item mfn Specify MFN number of record =item include_subfields This option will create additional key in hash called C which will have original record subfield order and index to that subfield like this: 902 => [ { a => ["a1", "a2", "a3", "a4", "a5"], b => ["b1", "b2"], c => "c1", subfields => ["a", 0, "a", 1, "a", 2, "b", 0, "a", 3, "b", 1, "c", 0, "a", 4], } ], =item join_subfields_with Define delimiter which will be used to join repeatable subfields. You can specify option here instead in L if you want to have per-record control. =item hash_filter You can override C defined in L using this option. =back =cut sub to_hash { my $self = shift; my $mfn = shift || confess "need mfn!"; my $arg; my $hash_filter = $self->{hash_filter}; if (ref($mfn) eq 'HASH') { $arg = $mfn; $mfn = $arg->{mfn} || confess "need mfn in arguments"; $hash_filter = $arg->{hash_filter} if ($arg->{hash_filter}); } # init record to include MFN as field 000 my $rec = { '000' => [ $mfn ] }; my $row = $self->fetch($mfn) || return; my $j_rs = $arg->{join_subfields_with} || $self->{join_subfields_with}; $j_rs = $self->{join_subfields_with} unless(defined($j_rs)); my $i_sf = $arg->{include_subfields}; foreach my $f_nr (keys %{$row}) { foreach my $l (@{$row->{$f_nr}}) { # filter output $l = $hash_filter->($l, $f_nr) if ($hash_filter); next unless defined($l); my $val; my $r_sf; # repeatable subfields in this record # has identifiers? ($val->{'i1'},$val->{'i2'}) = ($1,$2) if ($l =~ s/^([01 #])([01 #])\^/\^/); # has subfields? if ($l =~ m/\^/) { foreach my $t (split(/\^/,$l)) { next if (! $t); my ($sf,$v) = (substr($t,0,1), substr($t,1)); # XXX this might be option, but why? next unless (defined($v) && $v ne ''); # warn "### $f_nr^$sf:$v",$/ if ($self->{debug} > 1); if (ref( $val->{$sf} ) eq 'ARRAY') { push @{ $val->{$sf} }, $v; # record repeatable subfield it it's offset push @{ $val->{subfields} }, ( $sf, $#{ $val->{$sf} } ) if (! $j_rs && $i_sf); $r_sf->{$sf}++; } elsif (defined( $val->{$sf} )) { # convert scalar field to array $val->{$sf} = [ $val->{$sf}, $v ]; push @{ $val->{subfields} }, ( $sf, 1 ) if (! $j_rs && $i_sf); $r_sf->{$sf}++; } else { $val->{$sf} = $v; push @{ $val->{subfields} }, ( $sf, 0 ) if ($i_sf); } } } else { $val = $l; } if ($j_rs) { map { $val->{$_} = join($j_rs, @{ $val->{$_} }); } keys %$r_sf } push @{$rec->{$f_nr}}, $val; } } return $rec; } =head2 tag_name Return name of selected tag print $isis->tag_name('200'); =cut sub tag_name { my $self = shift; my $tag = shift || return; return $self->{'TagName'}->{$tag} || $tag; } =head2 read_cnt Read content of C<.CNT> file and return hash containing it. print Dumper($isis->read_cnt); This function is not used by module (C<.CNT> files are not required for this module to work), but it can be useful to examine your index (while debugging for example). =cut sub read_cnt { my $self = shift; croak "missing CNT file in ",$self->{isisdb} unless ($self->{cnt_file}); # Get the index information from $db.CNT open(my $fileCNT, $self->{cnt_file}) || croak "can't read '$self->{cnt_file}': $!"; binmode($fileCNT); my $buff; read($fileCNT, $buff, 26) || croak "can't read first table from CNT: $!"; $self->unpack_cnt($buff); read($fileCNT, $buff, 26) || croak "can't read second table from CNT: $!"; $self->unpack_cnt($buff); close($fileCNT); return $self->{cnt}; } =head2 unpack_cnt Unpack one of two 26 bytes fixed length record in C<.CNT> file. Here is definition of record: off key description size 0: IDTYPE BTree type s 2: ORDN Nodes Order s 4: ORDF Leafs Order s 6: N Number of Memory buffers for nodes s 8: K Number of buffers for first level index s 10: LIV Current number of Index Levels s 12: POSRX Pointer to Root Record in N0x l 16: NMAXPOS Next Available position in N0x l 20: FMAXPOS Next available position in L0x l 24: ABNORMAL Formal BTree normality indicator s length: 26 bytes This will fill C<$self> object under C with hash. It's used by C. =cut sub unpack_cnt { my $self = shift; my @flds = qw(ORDN ORDF N K LIV POSRX NMAXPOS FMAXPOS ABNORMAL); my $buff = shift || return; my @arr = unpack("vvvvvvVVVv", $buff); print STDERR "unpack_cnt: ",join(" ",@arr),"\n" if ($self->{'debug'}); my $IDTYPE = shift @arr; foreach (@flds) { $self->{cnt}->{$IDTYPE}->{$_} = abs(shift @arr); } } 1; =head1 BUGS Some parts of CDS/ISIS documentation are not detailed enough to exmplain some variations in input databases which has been tested with this module. When I was in doubt, I assumed that OpenIsis's implementation was right (except for obvious bugs). However, every effort has been made to test this module with as much databases (and programs that create them) as possible. I would be very greatful for success or failure reports about usage of this module with databases from programs other than WinIsis and IsisMarc. I had tested this against ouput of one C-based application, but I don't know any details about it's version. =head1 VERSIONS As this is young module, new features are added in subsequent version. It's a good idea to specify version when using this module like this: use Biblio::Isis 0.23 Below is list of changes in specific version of module (so you can target older versions if you really have to): =over 8 =item 0.24 Added C =item 0.23 Added C to L Fixed bug with documented C in L which wasn't implemented =item 0.22 Added field number when calling C =item 0.21 Added C to L and L. Added C to L. =item 0.20 Added C<< $isis->mfn >>, support for repeatable subfields and C<< $isis->to_hash({ mfn => 42, ... }) >> calling convention =back =head1 AUTHOR Dobrica Pavlinusic CPAN ID: DPAVLIN dpavlin@rot13.org http://www.rot13.org/~dpavlin/ This module is based heavily on code from C library to read ISIS files V0.1.1 written in php and (c) 2000 Franck Martin and released under LGPL. =head1 COPYRIGHT This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =head1 SEE ALSO L for CDS/ISIS manual appendix F, G and H which describe file format OpenIsis web site L perl4lib site L Biblio-Isis-0.24/scripts/0002755000175000017500000000000010623416620015111 5ustar dpavlindpavlinBiblio-Isis-0.24/scripts/dump_openisis.pl0000755000175000017500000000145210451045464020332 0ustar dpavlindpavlin#!/usr/bin/perl -w # this utility emulates output of openisis -db "database" # so you can test if perl can read your isis file #use strict; use OpenIsis; use Data::Dumper; my $db = OpenIsis::open( shift @ARGV || '/data/isis_data/ps/LIBRI/LIBRI' ); my $debug = shift @ARGV; my $maxmfn = OpenIsis::maxRowid( $db ) || 1; print "rows: $maxmfn\n\n"; for (my $mfn = 1; $mfn <= $maxmfn; $mfn++) { print "0\t$mfn\n"; my $row = OpenIsis::read( $db, $mfn ); if ($debug) { print STDERR Dumper($row),"\n"; my $rec; foreach my $f (keys %{$row}) { foreach my $v (@{$row->{$f}}) { push @{$rec->{$f}}, OpenIsis::subfields($v); } } print STDERR Dumper($rec),"\n"; } foreach my $k (sort keys %{$row}) { next if ($k eq 'mfn'); print "$k\t",join("\n$k\t",@{$row->{$k}}),"\n"; } print "\n"; } Biblio-Isis-0.24/scripts/bench.pl0000755000175000017500000000207610451045464016536 0ustar dpavlindpavlin#!/usr/bin/perl -w use strict; use blib; use Biblio::Isis; use OpenIsis; use MARC::File::USMARC; use Benchmark qw( timethese cmpthese ) ; my $isisdb = shift @ARGV || '/data/isis_data/ps/LIBRI/LIBRI'; my $isis = Biblio::Isis->new ( isisdb => $isisdb, debug => shift @ARGV, ); my $isis_filter = Biblio::Isis->new ( isisdb => $isisdb, debug => shift @ARGV, hash_filter => sub { my $v = shift; return lc($v); } ); my $rows = $isis->count; my $db = OpenIsis::open( $isisdb ); print "rows: $rows\n\n"; my $mfn = 1; my $r = timethese( -5, { Isis => sub { $isis->fetch( $mfn++ % $rows + 1 ); }, Isis_hash => sub { $isis->to_hash( $mfn++ % $rows + 1 ); }, Isis_hash_filter => sub { $isis_filter->to_hash( $mfn++ % $rows + 1 ); }, OpenIsis => sub { OpenIsis::read( $db, $mfn++ % $rows + 1 ); }, OpenIsis_hash => sub { my $row = OpenIsis::read( $db, $mfn++ % $rows + 1 ); my $rec; no strict 'refs'; foreach my $f (keys %{$row}) { foreach my $v (@{$row->{$f}}) { push @{$rec->{$f}}, OpenIsis::subfields($v); } } }, } ); cmpthese $r; Biblio-Isis-0.24/scripts/dump_isisdb.pl0000755000175000017500000000140510623413630017747 0ustar dpavlindpavlin#!/usr/bin/perl -w use strict; use blib; use Biblio::Isis 0.24; use Getopt::Std; BEGIN { eval "use Data::Dump"; if (! $@) { *Dumper = *Data::Dump::dump; } else { use Data::Dumper; } } my %opt; getopts('do:l:v', \%opt); my $isisdb = shift @ARGV || die "usage: $0 [-v] [-o offset] [-l limit] [-d] /path/to/isis/BIBL\n"; my $isis = Biblio::Isis->new ( isisdb => $isisdb, debug => $opt{'d'} ? 2 : 0, include_deleted => $opt{'v'}, # read_fdt => 1, ignore_empty_subfields => $opt{'v'} ? 0 : 1, ); print "rows: ",$isis->count,"\n\n"; my $min = $opt{o} || 1; my $max = $isis->count; $max = ( $min + $opt{l} - 1 ) if ($opt{l}); for my $mfn ($min .. $max) { print STDERR Dumper($isis->to_hash($mfn)),"\n" if ($opt{'d'}); print $isis->to_ascii($mfn),"\n"; } Biblio-Isis-0.24/Changes0000644000175000017500000000007610623416620014716 0ustar dpavlindpavlinThis is svk, version v2.0.0 (using Subversion bindings 1.4.2) Biblio-Isis-0.24/data/0002755000175000017500000000000010623416620014333 5ustar dpavlindpavlinBiblio-Isis-0.24/data/isismarc/0002755000175000017500000000000010623416620016145 5ustar dpavlindpavlinBiblio-Isis-0.24/data/isismarc/BIBL.XRF0000644000175000017500000000100010451045464017226 0ustar dpavlindpavlin8zDBiblio-Isis-0.24/data/isismarc/BIBL.mst0000644000175000017500000002600010451045464017401 0ustar dpavlindpavlin0,7@HbPgnt! 00000000000001##^aControversies in psychoanalytic method^efrom Freud and Ferenczi to Michael balint^fby Andr E. Haynal^gtranslated by Elizabeth Holder on the basisi of a first draft by Archie Hooton ; with a preface by Daniel N. Stern^aNew York^cNew York University press^dcop. 1988^axix, 202 str^cilustr^d23cm^aPrijevod djela:^aKazalo^apovijest psihoanalize^a159.9^a2140^aHaynal^bAndr^aHolder^bElizabeth^aFFZG214088HAY^a8302^aPS^bMG^cn20040219121318r! #3?r"b00000000000002^aFFZG^a0-8147-2595-3^aPS^bMG^c200202^aPsychoanalysis and psychology^eminding the gap^fStephen Frosh^aNew York^cUniversity press^d1989^aIX, 275 str.^d23 cm^apsihoanaliza^aFrosh^bStephen^a159.9^a2140^a2140214089FRO^a8300 zx! #3U'b00000000000003^aFFZG^a1-85343-110-9^aPS^bZB^c200202^aPsychoanalitic politics^eJacques Lacan and Freud's French Revolution^fSherry Turkle^a2nd ed^aLondon^cFree Associoation Books^d1992^aVIII, 344 str.^d22 cm^apsihoanaliza^aTurkle^bShirlie^a2140^a2140^a2140214092LAC^a8299x~! #3-`h"@@b00000000000004^aFFZG^a0-340-59691-0^aPS^bZB^c200202^aKey studies in psychology^fRichard D. Gross^a2nd ed^aLondon^cHodder & Stoughton^d1994^aXV, 638 str.^cilustr.^d24 cm^aBiliografija: str. 608-628^aKazalo^aopa psihologija^aGross^bRichard^a2100^a2140210094GRO^a8176 ! #3Fy'*@@b %DJPTVY_e00000000000005^aFFZG^a0-07-071918-7^aPS^bZB^c200202^aPsychology^fCamille B. Wortman, Elizabeth F. Loftus, Mary E. Marshal^a4th ed^aNew York etc.^cMcGraw-Hill^dcop. 1992^a623, [125] str.^cilustr. u bojama^d27 cm^a^aBibliografija: str. R1-R58^aKazala^aopa psihologija^aWortman^bCamille B.^aMarshall^bMary^cLoftus^dElizabeth F^a2100^a2100210092WOR^a7876^a7877^a7875 ! %00,L@]be|00000000000001^a2140^aFFZGn^aPS^bMG^c^aControversies in psychoanalytic method^efrom Freud and Ferenczi to Michael balint^fby Andr E. Haynal^gtranslated by Elizabeth Holder on the basisi of a first draft by Archie Hooton ; with a preface by Daniel N. Stern^aNew York^cNew York University press^dcop. 1988^axix, 202 str^cilustr^d23cm^aPrijevod djela:^aKazalo^apovijest psihoanalize^a159.9^aHaynal^bAndr^aHolder^bElizabeth214088HAY^a8302N20041230204050 ! *9F'*"@@b06K%ptvy00000000000005^aFFZG^a2100^aPS^bZB^c200202^a0-07-071918-7^aPsychology^fCamille B. Wortman, Elizabeth F. Loftus, Mary E. Marshal^a4th ed^aNew York etc.^cMcGraw-Hill^dcop. 1992^a623, [125] str.^cilustr. u bojama^d27 cm^aMcGraw-Hill series in Psychology^aBibliografija: str. R1-R58^aKazala^aopa psihologija^a2100^aWortman^bCamille B.^aMarshall^bMary^cLoftus^dElizabeth F210092WOR^a7876^a7877^a7875N20041230205304 Hem'*"@@b"7%!\bfhkqw}00000000000005^a0-07-071918-71#^aPsychology^fCamille B. Wortman, Elizabeth F. Loftus, Mary E. Marshal^a4th ed^aNew York etc.^cMcGraw-Hill^dcop. 1992^a623, [125] str.^cilustr. u bojama^d27 cm^aMcGraw-Hill series in Psychology^aBibliografija: str. R1-R58^aKazala^aopa psihologija^a2100^a2100^aWortman^bCamille B.^aMarshall^bMary^cLoftus^dElizabeth F^aFFZG210092WOR^a7876^a7877^a7875^aPS^bZB^c200202N20041230205337 Hem'*$@@b$9%!^dhjmsy00000000000005^a0-07-071918-71#^aPsychology^fCamille B. Wortman, Elizabeth F. Loftus, Mary E. Marshal^a4th ed^aNew York etc.^cMcGraw-Hill^dcop. 1992^a623, [125] str.^cilustr. u bojama^d27 cm1#^aMcGraw-Hill series in Psychology^aBibliografija: str. R1-R58^aKazala^aopa psihologija^a2100^a2100^aWortman^bCamille B.^aMarshall^bMary^cLoftus^dElizabeth F^aFFZG210092WOR^a7876^a7877^a7875^aPS^bZB^c200202N20041230205351! %00,L@]be|00000000000001^a2140^aFFZGn^aPS^bMG^c^aControversies in psychoanalytic method^efrom Freud and Ferenczi to Michael balint^fby Andr E. Haynal^gtranslated by Elizabeth Holder on the basisi of a first draft by Archie Hooton ; with a preface by Daniel N. Stern^aNew York^cNew York University press^dcop. 1988^axix, 202 str^cilustr^d23cm^aPrijevod djela:^aKazalo^apovijest psihoanalize^a159.9^aHaynal^bAndr^aHolder^bElizabeth214088HAY^a8302N20041230205428 x! #3?r"b00000000000002^aFFZG^a0-8147-2595-3^aPS^bMG^c200202^aPsychoanalysis and psychology^eminding the gap^fStephen Frosh^aNew York^cUniversity press^d1989^aIX, 275 str.^d23 cm^apsihoanaliza^aFrosh^bStephen^a159.9^a2140^a2140214089FRO^a830020041230205433 ~! #3U'b00000000000003^aFFZG^a1-85343-110-9^aPS^bZB^c200202^aPsychoanalitic politics^eJacques Lacan and Freud's French Revolution^fSherry Turkle^a2nd ed^aLondon^cFree Associoation Books^d1992^aVIII, 344 str.^d22 cm^apsihoanaliza^aTurkle^bShirlie^a2140^a2140^a2140214092LAC^a829920041230205436~! #3U'b00000000000003^aFFZG^a1-85343-110-9^aPS^bZB^c200202^aPsychoanalitic politics^eJacques Lacan and Freud's French Revolution^fSherry Turkle^a2nd ed^aLondon^cFree Associoation Books^d1992^aVIII, 344 str.^d22 cm^apsihoanaliza^aTurkle^bShirlie^a2140^a2140^a2140214092LAC^a829920041230205441f~! #3U'b00000000000003^aFFZG^a1-85343-110-9^aPS^bZB^c200202^aPsychoanalitic politics^eJacques Lacan and Freud's French Revolution^fSherry Turkle^a2nd ed^aLondon^cFree Associoation Books^d1992^aVIII, 344 str.^d22 cm^apsihoanaliza^aTurkle^bShirlie^a2140^a2140^a2140214092LAC^a829920041230205443! #3-`h"@@b 00000000000004^aFFZG^a0-340-59691-0^aPS^bZB^c200202^aKey studies in psychology^fRichard D. Gross^a2nd ed^aLondon^cHodder & Stoughton^d1994^aXV, 638 str.^cilustr.^d24 cm^aBiliografija: str. 608-628^aKazalo^aopa psihologija^aGross^bRichard^a2100^a2140210094GRO^a817620041230205445 d! #3-`h"@@b 00000000000004^aFFZG^a0-340-59691-0^aPS^bZB^c200202^aKey studies in psychology^fRichard D. Gross^a2nd ed^aLondon^cHodder & Stoughton^d1994^aXV, 638 str.^cilustr.^d24 cm^aBiliografija: str. 608-628^aKazalo^aopa psihologija^aGross^bRichard^a2100^a2140210094GRO^a817620041230205450  Hem'*$@@b$9%!^dhjmsy00000000000005^a0-07-071918-71#^aPsychology^fCamille B. Wortman, Elizabeth F. Loftus, Mary E. Marshal^a4th ed^aNew York etc.^cMcGraw-Hill^dcop. 1992^a623, [125] str.^cilustr. u bojama^d27 cm1#^aMcGraw-Hill series in Psychology^aBibliografija: str. R1-R58^aKazala^aopa psihologija^a2100^a2100^aWortman^bCamille B.^aMarshall^bMary^cLoftus^dElizabeth F^aFFZG210092WOR^a7876^a7877^a7875^aPS^bZB^c200202N20041230205453@ Hem'*$@@b$9%!^dhjmsy00000000000005^a0-07-071918-71#^aPsychology^fCamille B. Wortman, Elizabeth F. Loftus, Mary E. Marshal^a4th ed^aNew York etc.^cMcGraw-Hill^dcop. 1992^a623, [125] str.^cilustr. u bojama^d27 cm1#^aMcGraw-Hill series in Psychology^aBibliografija: str. R1-R58^aKazala^aopa psihologija^a2100^a2100^aWortman^bCamille B.^aMarshall^bMary^cLoftus^dElizabeth F^aFFZG210092WOR^a7876^a7877^a7875^aPS^bZB^c200202N20041230210118! #3-`h"@@b 00000000000004^aFFZG^a0-340-59691-0^aPS^bZB^c200202^aKey studies in psychology^fRichard D. Gross^a2nd ed^aLondon^cHodder & Stoughton^d1994^aXV, 638 str.^cilustr.^d24 cm^aBiliografija: str. 608-628^aKazalo^aopa psihologija^aGross^bRichard^a2100^a2140210094GRO^a817620041230210120 ~! #3U'b00000000000003^aFFZG^a1-85343-110-9^aPS^bZB^c200202^aPsychoanalitic politics^eJacques Lacan and Freud's French Revolution^fSherry Turkle^a2nd ed^aLondon^cFree Associoation Books^d1992^aVIII, 344 str.^d22 cm^apsihoanaliza^aTurkle^bShirlie^a2140^a2140^a2140214092LAC^a829920041230210122px! #3?r"b00000000000002^aFFZG^a0-8147-2595-3^aPS^bMG^c200202^aPsychoanalysis and psychology^eminding the gap^fStephen Frosh^aNew York^cUniversity press^d1989^aIX, 275 str.^d23 cm^apsihoanaliza^aFrosh^bStephen^a159.9^a2140^a2140214089FRO^a830020041230210125 N! %00,L@]be|00000000000001^a2140^aFFZGn^aPS^bMG^c^aControversies in psychoanalytic method^efrom Freud and Ferenczi to Michael balint^fby Andr E. Haynal^gtranslated by Elizabeth Holder on the basisi of a first draft by Archie Hooton ; with a preface by Daniel N. Stern^aNew York^cNew York University press^dcop. 1988^axix, 202 str^cilustr^d23cm^aPrijevod djela:^aKazalo^apovijest psihoanalize^a159.9^aHaynal^bAndr^aHolder^bElizabeth214088HAY^a8302N20041230210127 N! %00,L@]be|00000000000001^a2140^aFFZGn^aPS^bMG^c^aControversies in psychoanalytic method^efrom Freud and Ferenczi to Michael balint^fby Andr E. Haynal^gtranslated by Elizabeth Holder on the basisi of a first draft by Archie Hooton ; with a preface by Daniel N. Stern^aNew York^cNew York University press^dcop. 1988^axix, 202 str^cilustr^d23cm^aPrijevod djela:^aKazalo^apovijest psihoanalize^a159.9^aHaynal^bAndr^aHolder^bElizabeth214088HAY^a8302N20041230210128 Biblio-Isis-0.24/data/isismarc/isismarc/0002755000175000017500000000000010623416620017757 5ustar dpavlindpavlinBiblio-Isis-0.24/data/isismarc/isismarc/isismarc2.cip0000644000175000017500000000006110451045464022346 0ustar dpavlindpavlinAUTORI=autori CODES=codes BIBL=bibl WKST="k" Biblio-Isis-0.24/data/isismarc/isismarc/pft21.fst0000644000175000017500000000001210451045464021423 0ustar dpavlindpavlin300 0 v300Biblio-Isis-0.24/data/isismarc/isismarc/fdt21.xrf0000644000175000017500000000100010451045464021410 0ustar dpavlindpavlin>Z$r:z@DB4Vp<<=|DDlEE*LfMMpTdUU\@]dde mZtX|\}}j`Biblio-Isis-0.24/data/isismarc/isismarc/fmt21.mst0000644000175000017500000003300010451045464021432 0ustar dpavlindpavlin* ,GUs#"#E P^ hx ! 'A$e##$##*CSi}!^1010^2ISBN^1011^2ISSN^1101^2Jezik predloka^1200^2Naslov i odgovornost^1205^2Izdanje^1210^2Izdavanje, raspaavanje^1215^2Materijalni opis^1225^2Nakladnika cjelina^1300^2Opa napomena^1320^2Napomena o bibliografiji^1327^2Napomena o sadraju^1330^2Sadraj^1410^2Nakladnika cjelina (Serija)^1423^2Pritampani, prikriv. radovi^1461^2Skup^1462^2Podskup^1463^2Dio^1464^2Analitika^1500^2Uniformni naslov^1503^2Formalna odrednica^1532^2Proireni naslov^1600^2Osobno ime kao predmet^1607^2Geograsko ime kao predmet^1610^2Slobodno oblikovane predm,^1675^2UDK^1686^2Druga klasifikacija^1700^2Osobno ime - prim.odgovornost^1701^2Osobno ime - alt.odgovornost^1702^2Osobno ime - sek.odgovornost^1710^2Korporativno t. - prim.odgov.^1711^2Korporativno t. - alt.odgov.^1712^2Korporativno t. - sek.odgov.^1801^2Izvor podataka^1856^2Elektoniki izvori^1990^2Signatura^1991^2Inventarni broj^1994^2Mjesni podaci^1995^2Status zapisa^1996^2Odgvorna osoba^1997^2Datum zadnje promjene^1998^2Prijeslov, transliteracijak@20)* 5 @Vq)#L#o z  &!G Qk$##$##?Tm}!2^tBrojaniPodaci^r001-199^tOpis^r200-300k^1010^2ISBN^1011^2ISSN^1101^2Jezik predloka^1200^2Naslov i odgovornost^1205^2Izdanje^1210^2Izdavanje, raspaavanje^1215^2Materijalni opis^1225^2Nakladnika cjelina^1300^2Opa napomena^1320^2Napomena o bibliografiji^1327^2Napomena o sadraju^1330^2Sadraj^1410^2Nakladnika cjelina (Serija)^1423^2Pritampani, prikriv. radovi^1461^2Skup^1462^2Podskup^1463^2Dio^1464^2Analitika^1500^2Uniformni naslov^1503^2Formalna odrednica^1532^2Proireni naslov^1600^2Osobno ime kao predmet^1607^2Geograsko ime kao predmet^1610^2Slobodno oblikovane predm,^1675^2UDK^1686^2Druga klasifikacija^1700^2Osobno ime - prim.odgovornost^1701^2Osobno ime - alt.odgovornost^1702^2Osobno ime - sek.odgovornost^1710^2Korporativno t. - prim.odgov.^1711^2Korporativno t. - alt.odgov.^1712^2Korporativno t. - sek.odgov.^1801^2Izvor podataka^1856^2Elektoniki izvori^1990^2Signatura^1991^2Inventarni broj^1994^2Mjesni podaci^1995^2Status zapisa^1996^2Odgvorna osoba^1997^2Datum zadnje promjene^1998^2Prijeslov, transliteracija P5.EXl 'AUt##  ,E\y ! $#%#H$l##.C_!7^tBrojaniPodaci^r001-105^tOdrednice^r700-712^tOpis^r200-230,500-532^tNapomene^r300-337^tPoveznice^r410-464^tKlasifikacija^r600-686^tLokalniPodaci^r800-999k^1010^2ISBN^1011^2ISSN^1101^2Jezik predloka^1200^2Naslov i odgovornost^1205^2Izdanje^1210^2Izdavanje, raspaavanje^1215^2Materijalni opis^1225^2Nakladnika cjelina^1300^2Opa napomena^1320^2Napomena o bibliografiji^1327^2Napomena o sadraju^1330^2Sadraj^1410^2Nakladnika cjelina (Serija)^1423^2Pritampani, prikriv. radovi^1461^2Skup^1462^2Podskup^1463^2Dio^1464^2Analitika^1500^2Uniformni naslov^1503^2Formalna odrednica^1532^2Proireni naslov^1600^2Osobno ime kao predmet^1607^2Geograsko ime kao predmet^1610^2Slobodno oblikovane predm,^1675^2UDK^1686^2Druga klasifikacija^1700^2Osobno ime - prim.odgovornost^1701^2Osobno ime - alt.odgovornost^1702^2Osobno ime - sek.odgovornost^1710^2Korporativno t. - prim.odgov.^1711^2Korporativno t. - alt.odgov.^1712^2Korporativno t. - sek.odgov.^1801^2Izvor podataka^1856^2Elektoniki izvori^1990^2Signatura^1991^2Inventarni broj^1994^2Mjesni podaci^1995^2Status zapisa^1996^2Odgvorna osoba^1997^2Datum zadnje promjene^1998^2Prijeslov, transliteracijaV6.EXl 'AUt##  ,E\y ! $#%#H$l##.C_!7^tBrojaniPodaci^r001-105^tOdrednice^r700-712^tOpis^r200-230,500-532^tNapomene^r300-337^tPoveznice^r410-464^tKlasifikacija^r600-686^tLokalniPodaci^r800-999k^1010^2ISBN^1011^2ISSN^1101^2Jezik predloka^1200^2Naslov i odgovornost^1205^2Izdanje^1210^2Izdavanje, raspaavanje^1215^2Materijalni opis^1225^2Nakladnika cjelina^1300^2Opa napomena^1320^2Napomena o bibliografiji^1327^2Napomena o sadraju^1330^2Sadraj^1410^2Nakladnika cjelina (Serija)^1423^2Pritampani, prikriv. radovi^1461^2Skup^1462^2Podskup^1463^2Dio^1464^2Analitika^1500^2Uniformni naslov^1503^2Formalna odrednica^1532^2Proireni naslov^1600^2Osobno ime kao predmet^1607^2Geograsko ime kao predmet^1610^2Slobodno oblikovane predm,^1675^2UDK^1686^2Druga klasifikacija^1700^2Osobno ime - prim.odgovornost^1701^2Osobno ime - alt.odgovornost^1702^2Osobno ime - sek.odgovornost^1710^2Korporativno t. - prim.odgov.^1711^2Korporativno t. - alt.odgov.^1712^2Korporativno t. - sek.odgov.^1801^2Izvor podataka^1856^2Elektoniki izvori^1990^2Signatura^1991^2Inventarni broj^1994^2Mjesni podaci^1995^2Status zapisa^1996^2Odgvorna osoba^1997^2Datum zadnje promjene^1998^2Prijeslov, transliteracija^1001^2Identifikator zapisa V60GZn )CWv##  .G^{ ! $#'#J$n##0Ea!7^tBrojevi_i_kodovi^r001-105^tOdrednice^r700-712^tOpis^r200-230,500-532^tNapomene^r300-337^tPoveznice^r410-464^tKlasifikacija^r600-686^tLokalniPodaci^r800-999k^1010^2ISBN^1011^2ISSN^1101^2Jezik predloka^1200^2Naslov i odgovornost^1205^2Izdanje^1210^2Izdavanje, raspaavanje^1215^2Materijalni opis^1225^2Nakladnika cjelina^1300^2Opa napomena^1320^2Napomena o bibliografiji^1327^2Napomena o sadraju^1330^2Sadraj^1410^2Nakladnika cjelina (Serija)^1423^2Pritampani, prikriv. radovi^1461^2Skup^1462^2Podskup^1463^2Dio^1464^2Analitika^1500^2Uniformni naslov^1503^2Formalna odrednica^1532^2Proireni naslov^1600^2Osobno ime kao predmet^1607^2Geograsko ime kao predmet^1610^2Slobodno oblikovane predm,^1675^2UDK^1686^2Druga klasifikacija^1700^2Osobno ime - prim.odgovornost^1701^2Osobno ime - alt.odgovornost^1702^2Osobno ime - sek.odgovornost^1710^2Korporativno t. - prim.odgov.^1711^2Korporativno t. - alt.odgov.^1712^2Korporativno t. - sek.odgov.^1801^2Izvor podataka^1856^2Elektoniki izvori^1990^2Signatura^1991^2Inventarni broj^1994^2Mjesni podaci^1995^2Status zapisa^1996^2Odgvorna osoba^1997^2Datum zadnje promjene^1998^2Prijeslov, transliteracija^1001^2Identifikator zapisa 6V6CCCD_s )7Ul##' 2@ JZq ! #$G#j#$## %5K_s!If mfn<0 then 'd997a997~', replace(s(date)*0.15,' ',''), '~' fi7^tBrojevi_i_kodovi^r001-105^tOdrednice^r700-712^tOpis^r200-230,500-532^tNapomene^r300-337^tPoveznice^r410-464^tKlasifikacija^r600-686^tLokalniPodaci^r800-999k^1010^2ISBN^1011^2ISSN^1101^2Jezik predloka^1200^2Naslov i odgovornost^1205^2Izdanje^1210^2Izdavanje, raspaavanje^1215^2Materijalni opis^1225^2Nakladnika cjelina^1300^2Opa napomena^1320^2Napomena o bibliografiji^1327^2Napomena o sadraju^1330^2Sadraj^1410^2Nakladnika cjelina (Serija)^1423^2Pritampani, prikriv. radovi^1461^2Skup^1462^2Podskup^1463^2Dio^1464^2Analitika^1500^2Uniformni naslov^1503^2Formalna odrednica^1532^2Proireni naslov^1600^2Osobno ime kao predmet^1607^2Geograsko ime kao predmet^1610^2Slobodno oblikovane predm,^1675^2UDK^1686^2Druga klasifikacija^1700^2Osobno ime - prim.odgovornost^1701^2Osobno ime - alt.odgovornost^1702^2Osobno ime - sek.odgovornost^1710^2Korporativno t. - prim.odgov.^1711^2Korporativno t. - alt.odgov.^1712^2Korporativno t. - sek.odgov.^1801^2Izvor podataka^1856^2Elektoniki izvori^1990^2Signatura^1991^2Inventarni broj^1994^2Mjesni podaci^1995^2Status zapisa^1996^2Odgvorna osoba^1997^2Datum zadnje promjene^1998^2Prijeslov, transliteracija^1001^2Identifikator zapisazV6??G $% 0 ;Qlz$#G#j u  !!B Lf$##$##:Ohx!If mfn<0 then 'd1a1~', replace(s(date)*0.15,' ',''), '~' fiif mfn>0 then 'd997a997~', replace(s(date)*0.15,' ',''), '~' fi7^tBrojevi_i_kodovi^r001-105^tOdrednice^r700-712^tOpis^r200-230,500-532^tNapomene^r300-337^tPoveznice^r410-464^tKlasifikacija^r600-686^tLokalniPodaci^r800-999k^1010^2ISBN^1011^2ISSN^1101^2Jezik predloka^1200^2Naslov i odgovornost^1205^2Izdanje^1210^2Izdavanje, raspaavanje^1215^2Materijalni opis^1225^2Nakladnika cjelina^1300^2Opa napomena^1320^2Napomena o bibliografiji^1327^2Napomena o sadraju^1330^2Sadraj^1410^2Nakladnika cjelina (Serija)^1423^2Pritampani, prikriv. radovi^1461^2Skup^1462^2Podskup^1463^2Dio^1464^2Analitika^1500^2Uniformni naslov^1503^2Formalna odrednica^1532^2Proireni naslov^1600^2Osobno ime kao predmet^1607^2Geograsko ime kao predmet^1610^2Slobodno oblikovane predm,^1675^2UDK^1686^2Druga klasifikacija^1700^2Osobno ime - prim.odgovornost^1701^2Osobno ime - alt.odgovornost^1702^2Osobno ime - sek.odgovornost^1710^2Korporativno t. - prim.odgov.^1711^2Korporativno t. - alt.odgov.^1712^2Korporativno t. - sek.odgov.^1801^2Izvor podataka^1856^2Elektoniki izvori^1990^2Signatura^1991^2Inventarni broj^1994^2Mjesni podaci^1995^2Status zapisa^1996^2Odgvorna osoba^1997^2Datum zadnje promjene^1998^2Prijeslov, transliteracija^1001^2Identifikator zapisa |V6??G $% 0 ;Qlz$#G&m x  $!E Oi$##$##=Rk{! If mfn<0 then 'd1a1~', replace(s(date)*0.15,' ',''), '~' fiif mfn>0 then 'd997a997~', replace(s(date)*0.15,' ',''), '~' fi7^tBrojevi_i_kodovi^r001-105^tOdrednice^r700-712^tOpis^r200-230,500-532^tNapomene^r300-337^tPoveznice^r410-464^tKlasifikacija^r600-686^tLokalniPodaci^r800-999k^1010^2ISBN^1011^2ISSN^1101^2Jezik predloka^1200^2Naslov i odgovornost^1205^2Izdanje^1210^2Izdavanje, raspaavanje^1215^2Materijalni opis^1225^2Nakladnika cjelina^1300^2Opa napomena^1320^2Napomena o bibliografiji^1327^2Napomena o sadraju^1330^2Sadraj^1410^2Nakladnika cjelina (Serija)^1423^2Pritampani, prikriv. radovi^30^1461^2Skup^1462^2Podskup^1463^2Dio^1464^2Analitika^1500^2Uniformni naslov^1503^2Formalna odrednica^1532^2Proireni naslov^1600^2Osobno ime kao predmet^1607^2Geograsko ime kao predmet^1610^2Slobodno oblikovane predm,^1675^2UDK^1686^2Druga klasifikacija^1700^2Osobno ime - prim.odgovornost^1701^2Osobno ime - alt.odgovornost^1702^2Osobno ime - sek.odgovornost^1710^2Korporativno t. - prim.odgov.^1711^2Korporativno t. - alt.odgov.^1712^2Korporativno t. - sek.odgov.^1801^2Izvor podataka^1856^2Elektoniki izvori^1990^2Signatura^1991^2Inventarni broj^1994^2Mjesni podaci^1995^2Status zapisa^1996^2Odgvorna osoba^1997^2Datum zadnje promjene^1998^2Prijeslov, transliteracija^1001^2Identifikator zapisa@J4??G#  +A\j#7&] hv  !5 ?Y$}##$# ;Kau!If mfn<0 then 'd1a1~', replace(s(date)*0.15,' ',''), '~' fiif mfn>0 then 'd997a997~', replace(s(date)*0.15,' ',''), '~' fi6^tBrojevi_i_kodovi^r001-105,800-999^tOdrednice^r700-712^tOpis^r200-230,500-532^tNapomene^r300-337^tPoveznice^r410-464^tKlasifikacija^r600-686k^1010^2ISBN^1011^2ISSN^1101^2Jezik predloka^1200^2Naslov i odgovornost^1205^2Izdanje^1210^2Izdavanje, raspaavanje^1215^2Materijalni opis^1225^2Nakladnika cjelina^1300^2Opa napomena^1320^2Napomena o bibliografiji^1327^2Napomena o sadraju^1330^2Sadraj^1410^2Nakladnika cjelina (Serija)^1423^2Pritampani, prikriv. radovi^30^1461^2Skup^1462^2Podskup^1463^2Dio^1464^2Analitika^1500^2Uniformni naslov^1503^2Formalna odrednica^1532^2Proireni naslov^1600^2Osobno ime kao predmet^1607^2Geograsko ime kao predmet^1610^2Slobodno oblikovane predm,^1675^2UDK^1686^2Druga klasifikacija^1700^2Osobno ime - prim.odgovornost^1701^2Osobno ime - alt.odgovornost^1702^2Osobno ime - sek.odgovornost^1710^2Korporativno t. - prim.odgov.^1711^2Korporativno t. - alt.odgov.^1801^2Izvor podataka^1856^2Elektoniki izvori^30^1990^2Signatura^1991^2Inventarni broj^1994^2Mjesni podaci^1995^2Status zapisa^1996^2Odgvorna osoba^1997^2Datum zadnje promjene^1998^2Prijeslov, transliteracija^1001^2Identifikator zapisaransliteracija^1001^2Identifikator zapisa 2Identifikator zapisa Biblio-Isis-0.24/data/isismarc/isismarc/fmt21.xrf0000644000175000017500000000100010451045464021421 0ustar dpavlindpavlinTBiblio-Isis-0.24/data/isismarc/isismarc/pft21.xrf0000644000175000017500000000100010451045464021424 0ustar dpavlindpavlinBiblio-Isis-0.24/data/isismarc/isismarc/pft21.mst0000644000175000017500000000100010451045464021430 0ustar dpavlindpavlinABiblio-Isis-0.24/data/isismarc/isismarc/fdt21.mst0000644000175000017500000003300010451045464021421 0ustar dpavlindpavlin40d(3005001^o1^r0^l1^w3^xCODES^kLDR-05^fv3^anotype: zapisa^o1^r0^l0^w1zapisa^o1^r0^l0^w0tN   ddd.010ISBN11^n?^n?0^ca^o1^r0^l0^w0^cb^o2^r0^l0^w0^cz^o3^r0^l0^w0 l0^w0^cz^o4^r0^l0^w0Z   ddd.d=dL011ISSN11^n?^n?0^ca^o1^r0^l0^w0^cb^o2^r0^l0^w0^cd^o3^r0^l0^w0^cy^o4^r0^l0^w0^cz^o5^r0^l0^w0 T   ddd.d=013ISMN11^n?^n?0^ca^o1^r0^l0^w0^cb^o2^r0^l0^w0^cd^o3^r0^l0^w0^cz^o4^r0^l0^w0N d d/d>014Identifikator lanka11^n?^n?0^ca^o1^r0^l0^w0^cz^o2^r0^l0^w0^c2^o3^r0^l0^w0 B #&d'100Opi podaci za procesiranje11^n?^n?0^ca^o1^r0^l0^w0Bd101Jezik predloka01^n?^n?0^ca^o1^r0^l0^w0H dd+102Zemlja izdavanja01^n?^n?0^ca^o1^r0^l0^w0^cb^o2^r0^l0^w0 vB #d$105Polje kodiranih podataka01^n?^n?0^ca^o1^r0^l0^w0 d d/d>dMd\dkdzdddddddddd200Naslov i odgovornost01^n?^n?0^ca^o1^r0^l0^w0^cb^o2^r0^l0^w0^cc^o3^r0^l0^w0^cd^o4^r0^l0^w0^ce^o5^r0^l0^w0^cf^o6^r0^l0^w0^cg^o7^r0^l0^w0^ch^o8^r0^l0^w0^ci^o9^r0^l0^w0^cv^o10^r0^l0^w0^cz^o11^r0^l0^w0^c5^o12^r0^l0^w0^ck^o13^r0^l0^w0^cv^o14^r0^l0^w0^cw^o15^r0^l0^w0^cx^o16^r0^l0^w0^cy^o17^r0^l0^w0 H    dd"205Izdanje11^n?^n?0^ca^o1^r0^l0^w0^cb^o2^r0^l0^w0 l"d#d2dAdPd_dnd}d210Izdavanje, raspaavanje01^n?^n?0^ca^o1^r0^l0^w0^cb^o2^r0^l0^w0^cc^o3^r0^l0^w0^cd^o4^r0^l0^w0^ce^o5^r0^l0^w0^cf^o6^r0^l0^w0^cg^o7^r0^l0^w0^ch^o8^r0^l0^w0 TT dd+d:dI215Materijalni opis11^n?^n?0^ca^o1^r0^l0^w0^cc^o2^r0^l0^w0^cd^o3^r0^l0^w0^ce^o4^r0^l0^w0rdd.d=dLd[djdydd225Nakladnika cjelina11^n?^n?0^ca^o1^r0^l0^w0^cd^o2^r0^l0^w0^ce^o3^r0^l0^w0^cf^o4^r0^l0^w0^ch^o5^r0^l0^w0^ci^o6^r0^l0^w0^cv^o7^r0^l0^w0^cx^o8^r0^l0^w0^cw^o9^r0^l0^w0zB !"%(d)230Karakteristike elektr. izvora11^n?^n?0^ca^o1^r0^l0^w0jB d300Opa napomena11^n?^n?0^ca^o1^r0^l0^w0B #d$320Napomena o bibliografiji11^n?^n?0^ca^o1^r0^l0^w0 Bd327Napomena o sadraju11^n?^n?0^ca^o1^r0^l0^w0B   d330Sadraj11^n?^n?0^ca^o1^r0^l0^w0vB!$d%336Napomena o elektr. izvoru11^n?^n?0^ca^o1^r0^l0^w0zB !$'d(337Zahtjevi sistema za e-izvore11^n?^n?0^ca^o1^r0^l0^w0 H  !$'d(d7410Nakladnika cjelina (Serija)11^n?^n?0^c1^o1^r0^l0^w0^ca^o2^r0^l0^w0H  !$'d(d7423Pritampani, prikriv. radovi11^n?^n?0^c1^o1^r0^l0^w0^ca^o2^r0^l0^w0vH   dd461Skup11^n?^n?0^c1^o1^r0^l0^w0^ca^o2^r0^l0^w0zH    dd"462Podskup11^n?^n?0^c1^o1^r0^l0^w0^ca^o2^r0^l0^w0 vH  dd463Dio11^n?^n?0^c1^o1^r0^l0^w0^ca^o2^r0^l0^w0 |H    dd$464Analitika11^n?^n?0^c1^o1^r0^l0^w0^ca^o2^r0^l0^w0 nBd500Uniformni naslov11^n?^n?0^ca^o1^r0^l0^w0 N dd-d<503Formalna odrednica11^n?^n?0^ca^o1^r0^l0^w0^cb^o2^r0^l0^w0^cd^o3^r0^l0^w0 \6d532Proireni naslov110^ca^o1^r0^l0^w0 1^n?^n?0^ca^o1^r0^l0^w0^cz^o2^r0^l0^w0H !d"d1600Osobno ime kao predmet11^n?^n?0^ca^o1^r0^l0^w0^cb^o2^r0^l0^w0 f!$d%d4dCdRdadpd607Geograsko ime kao predmet11^n?^n?0^ca^o1^r0^l0^w0^cj^o2^r0^l0^w0^cx^o3^r0^l0^w0^cy^o4^r0^l0^w0^cz^o5^r0^l0^w0^c2^o6^r0^l0^w0^c3^o7^r0^l0^w0!xB"%d&610Slobodno oblikovane predm,11^n?^n?0^ca^o1^r0^l0^w0 "Z  ddd-d<dK675UDK11^n?^n?0^ca^o1^r0^l0^w0^cb^o2^r0^l0^w0^cc^o3^r0^l0^w0^cv^o4^r0^l0^w0^cz^o5^r0^l0^w0#T dd.d=dL686Druga klasifikacija11^n?^n?0^ca^o1^r0^l0^w0^cb^o2^r0^l0^w0^cc^o3^r0^l0^w0^c2^o4^r0^l0^w0 $Z  !"%(d)d8dGdVde700Osobno ime - prim.odgovornost01^n?^n?0^ca^o1^r0^l0^w0^cb^o2^r0^l0^w0^cd^o3^r0^l0^w0^c3^o4^r0^l0^w0^c4^o5^r0^l0^w0%Z  !$'d(d7dFdUdd701Osobno ime - alt.odgovornost11^n?^n?0^ca^o1^r0^l0^w0^cb^o2^r0^l0^w0^cd^o3^r0^l0^w0^c3^o4^r0^l0^w0^c4^o5^r0^l0^w0 &`  !$'d(d7dFdUddds702Osobno ime - sek.odgovornost11^n?^n?0^ca^o1^r0^l0^w0^cb^o2^r0^l0^w0^cd^o3^r0^l0^w0^c3^o4^r0^l0^w0^c4^o5^r0^l0^w0^c5^o6^r0^l0^w0'N~ !"%(d)d8dGdVdedtddddd710Korporativno t. - prim.odgov.01^n?^n?0^ca^o1^r0^l0^w0^cb^o2^r0^l0^w0^cc^o3^r0^l0^w0^cd^o4^r0^l0^w0^ce^o5^r0^l0^w0^cf^o6^r0^l0^w0^cg^o7^r0^l0^w0^ch^o8^r0^l0^w0^cp^o9^r0^l0^w0^c3^o10^r0^l0^w0^c4^o11^r0^l0^w0(N~ !$'d(d7dFdUdddsddddd711Korporativno t. - alt.odgov.11^n?^n?0^ca^o1^r0^l0^w0^cb^o2^r0^l0^w0^cc^o3^r0^l0^w0^cd^o4^r0^l0^w0^ce^o5^r0^l0^w0^cf^o6^r0^l0^w0^cg^o7^r0^l0^w0^ch^o8^r0^l0^w0^cp^o9^r0^l0^w0^c3^o10^r0^l0^w0^c4^o11^r0^l0^w0 )d !$'d(d7dFdUdddsdddddd712Korporativno t. - sek.odgov.11^n?^n?0^ca^o1^r0^l0^w0^cb^o2^r0^l0^w0^cc^o3^r0^l0^w0^cd^o4^r0^l0^w0^ce^o5^r0^l0^w0^cf^o6^r0^l0^w0^cg^o7^r0^l0^w0^ch^o8^r0^l0^w0^cp^o9^r0^l0^w0^c3^o10^r0^l0^w0^c4^o11^r0^l0^w0^c5^o12^r0^l0^w0 *xH dd1801Izvor podataka11^n?^n?0^ca^nZemlja^o1^r0^l0^w0^c2^o2^r0^l0^w02^r0^l0^w0^cc^o3^r0^l0^w0^cg^o4^r0^l0^w0^c2^o5^r0^l0^w0 +Bd856Elektoniki izvori11^n?^n?0^cu^o1^r0^l0^w0 ,nB   d990Signatura10^n?^n?0^nSignatura^o1^r0^l0^w0-zBd991Inventarni broj10^n?^n?0^nInventarni broj^o1^r0^l0^w0.N  dd(d7994Mjesni podaci01^n?^n?0^ca^o1^r0^l0^w0^cb^o2^r0^l0^w0^cc^o3^r0^l0^w0/vB d995Status zapisa00^n?^n?0^nStatus zapisa^o1^r0^l0^w00H dd)996Odgvorna osoba01^n?^n?0^ca^o1^r0^l0^w0^cb^o2^r0^l0^w01B d!#997Datum zadnje promjene00^n?^n?0^nDatum zadnje promjene^o1^r0^l0^w12H "%d&d5998Prijeslov, transliteracija01^n?^n?0^ca^o1^r0^l0^w0^cb^o2^r0^l0^w0N %< I^d_1101Jezik predloka01^n#^tnije odreen^n0^tna izvornom jeziku^n1^tprijevod^n2^tsadri prijevode0^ca^nKod jezika^o1^r1^l0^w3^xcodes^kLANGUAGES^fv3nN   dd%d4010ISBN11^n?^n?0^ca^nBroj^o1^r0^l0^w0^cb^o2^r0^l0^w0^cz^o3^r0^l0^w0 RN  +d,dAdP010ISBN01^n#^tnije odreen^n#^tnije odreen0^ca^nBroj^o1^r0^l0^w0^cb^o2^r0^l0^w0^cz^o3^r0^l0^w0 N  +d,dAd]010ISBN11^n#^tnije odreen^n#^tnije odreen0^ca^nBroj^o1^r1^l0^w0^cb^nObjanjenje^o2^r0^l0^w0^cz^nPogrean broj^o3^r1^l0^w0 N  +d,dAd]011ISSN11^n#^tnije odreen^n#^tnije odreen0^ca^nBroj^o1^r0^l0^w0^cb^nObjanjenje^o2^r0^l0^w0^cz^nPogrean broj^o3^r1^l0^w0 B 1BdC100Opi podaci za procesiranje01^n#^tnije odreen^n#^tnije odreen0^ca^o1^r0^l0^w0 B.?d@105Polje kodiranih podataka01^n#^tnije odreen^n#^tnije odreen0^ca^o1^r0^l0^w0 2IZd[dyd%ddddddddd'd7dGdWdgdw200Naslov i odgovornost01^n0^tnaslov nije znaajan^n1^tnaslov je znaajan^n#^tnije odreen0^ca^nGlavni naslov^o1^r1^l0^w0^cb^o2^r0^l0^w0^cc^nNaslov drugog autora^o3^r1^l0^w0^cd^o4^r0^l0^w0^ce^o5^r0^l0^w0^cf^o6^r0^l0^w0^cg^o7^r0^l0^w0^ch^o8^r0^l0^w0^ci^o9^r0^l0^w0^cv^o10^r0^l0^w0^cz^o11^r0^l0^w0^c5^o12^r0^l0^w0^ck^o13^r0^l0^w0^cv^o14^r0^l0^w0^cw^o15^r0^l0^w0^cx^o16^r0^l0^w0^cy^o17^r0^l0^w0 2IZd[dyd%d!dd,d0dDdSdbdrdddddd200Naslov i odgovornost01^n0^tnaslov nije znaajan^n1^tnaslov je znaajan^n#^tnije odreen0^ca^nGlavni naslov^o1^r1^l0^w0^cb^o2^r0^l0^w0^cc^nNaslov drugog autora^o3^r1^l0^w0^cd^nParalelni naslov^o4^r1^l0^w0^ce^nPodnaslov^o5^r1^l0^w0^cf^nPrvi podatak o odgovornosti^o6^r1^l0^w0^cg^nSljedei podatak o odgovornosti^o7^r1^l0^w0^ch^o8^r0^l0^w0^ci^o9^r0^l0^w0^cv^o10^r0^l0^w0^cz^o11^r0^l0^w0^c5^o12^r0^l0^w0^ck^o13^r0^l0^w0^cv^o14^r0^l0^w0^cw^o15^r0^l0^w0^cx^o16^r0^l0^w0^cy^o17^r0^l0^w0 H    .d/"dQ205Izdanje11^n#^tnije odreen^n#^tnije odreen0^ca^nPodatak o izdanju^o1^r0^l0^w0^cb^o2^r0^l0^w0 f->d?!d`dz dddd210Izdavanje, raspaavanje01^n#^tnije odreen^n#^tnije odreen0^ca^nMjesto izdavanja^o1^r1^l0^w0^cc^nNakladnik^o2^r1^l0^w0^cd^nDatum izdavanja^o3^r0^l0^w0^ce^o4^r0^l0^w0^cf^o5^r0^l0^w0^cg^o6^r0^l0^w0^ch^o7^r0^l0^w0 X` ->d?!d`dz d dd210Izdavanje, raspaavanje01^n#^tnije odreen^n#^tnije odreen0^ca^nMjesto izdavanja^o1^r1^l0^w0^cc^nNakladnik^o2^r1^l0^w0^cd^nDatum izdavanja^o3^r0^l0^w0^ce^nMjesto tiskanja^o4^r1^l0^w0^cg^nNaziv tiskare^o5^r1^l0^w0^ch^nDatum tiskanja^o6^r0^l0^w0 T &7d8"dZdvd215Materijalni opis11^n#^tnije odreen^n#^tnije odreen0^ca^nBr. stranica etc.^o1^r1^l0^w0^cc^nilustracije^o2^r0^l0^w0^cd^nDimenzije^o3^r1^l0^w0^ce^nPopratna graa^o4^r1^l0^w0 ~":Utdd!dd'ddd.d=dL225Nakladnika cjelina11^n0^tnije isto kao normirani oblik^n1^tnema normiranog oblika^n2^tisti kao i normirani oblik^n#^tnije odreen0^ca^nNaslov serije^o1^r0^l0^w0^cd^nParalelni naslov^o2^r1^l0^w0^ce^nPodnaslov^o3^r1^l0^w0^cf^nPodatak o odgovornosti^o4^r1^l0^w0^ch^nBroj (?)^o5^r1^l0^w0^ci^o6^r0^l0^w0^cv^o7^r0^l0^w0^cx^o8^r0^l0^w0^cw^o9^r0^l0^w0 B #4d5300Opa napomena11^n#^tnije odreen^n#^tnije odreen0^ca^nTekst napomene^o1^r0^l0^w0B.?d@320Napomena o bibliografiji11^n#^tnije odreen^n#^tnije odreen0^ca^nTekst napomene^o1^r0^l0^w0 B4NdO327Napomena o sadraju01^n0^tNapomena nije kompletna^n1^tNapomena je kompletna0^ca^nTekst napomene^o1^r1^l0^w0B   .d/330Saetak11^n#^tnije odreen^n#^tnije odreen0^ca^nTekst napomene^o1^r0^l0^w0H  !$'d(d=410Nakladnika cjelina (Serija)11^n?^n?0^c1^nVeza^o1^r0^l0^w0^ca^o2^r0^l0^w0B'7d8!500Uniformni naslov11^n0^tnije znaajan^n1^tznaajan je0^ca^nUniformni naslov^o1^r0^l0^w0 *H dd1801Izvor podataka11^n?^n?0^ca^nZemlja^o1^r0^l0^w0^cb^nUstanova^o2^r0^l0^w0+tBd856Elektoniki izvori11^n?^n?0^cu^nURL^o1^r0^l0^w03r6d"001Identifikator zapisa000^nIdentifikator zapisa^o1^r0^l0^w1|6d(3005Ldr/05 - record status001^o1^r0^l1^w3^xCODES^kLDR-05^fv3^anotype: Biblio-Isis-0.24/data/isismarc/BIBL.IFP0000644000175000017500000001000010451045464017205 0ustar dpavlindpavlin    !"   #   $      bbbbbbbbbbBiblio-Isis-0.24/data/winisis/0002755000175000017500000000000010623416620016020 5ustar dpavlindpavlinBiblio-Isis-0.24/data/winisis/BIBL.XRF0000755000175000000000000000100010453543371016417 0ustar dpavlinroot(j:Biblio-Isis-0.24/data/winisis/BIBL.CNT0000755000175000000000000000006410453543112016406 0ustar dpavlinrootBiblio-Isis-0.24/data/winisis/BIBL.mst0000755000175000000000000001000010453543373016565 0ustar dpavlinroot0,7@HbPgnt! 00000000000001##^aControversies in psychoanalytic method^efrom Freud and Ferenczi to Michael balint^fby Andr E. Haynal^gtranslated by Elizabeth Holder on the basisi of a first draft by Archie Hooton ; with a preface by Daniel N. Stern^aNew York^cNew York University press^dcop. 1988^axix, 202 str^cilustr^d23cm^aPrijevod djela:^aKazalo^apovijest psihoanalize^a159.9^a2140^aHaynal^bAndr^aHolder^bElizabeth^aFFZG214088HAY^a8302^aPS^bMG^cn20040219121318\r! #3?r"b00000000000002^aFFZG^a0-8147-2595-3^aPS^bMG^c200202^aPsychoanalysis and psychology^eminding the gap^fStephen Frosh^aNew York^cUniversity press^d1989^aIX, 275 str.^d23 cm^apsihoanaliza^aFrosh^bStephen^a159.9^a2140^a2140214089FRO^a8300 zx! #3U'b00000000000003^aFFZG^a1-85343-110-9^aPS^bZB^c200202^aPsychoanalitic politics^eJacques Lacan and Freud's French Revolution^fSherry Turkle^a2nd ed^aLondon^cFree Associoation Books^d1992^aVIII, 344 str.^d22 cm^apsihoanaliza^aTurkle^bShirlie^a2140^a2140^a2140214092LAC^a8299~! #3-`h"@@b00000000000004^aFFZG^a0-340-59691-0^aPS^bZB^c200202^aKey studies in psychology^fRichard D. Gross^a2nd ed^aLondon^cHodder & Stoughton^d1994^aXV, 638 str.^cilustr.^d24 cm^aBiliografija: str. 608-628^aKazalo^aopa psihologija^aGross^bRichard^a2100^a2140210094GRO^a8176 ! #3Fy'*@@b %DJPTVY_e00000000000005^aFFZG^a0-07-071918-7^aPS^bZB^c200202^aPsychology^fCamille B. Wortman, Elizabeth F. Loftus, Mary E. Marshal^a4th ed^aNew York etc.^cMcGraw-Hill^dcop. 1992^a623, [125] str.^cilustr. u bojama^d27 cm^a^aBibliografija: str. R1-R58^aKazala^aopa psihologija^aWortman^bCamille B.^aMarshall^bMary^cLoftus^dElizabeth F^a2100^a2100210092WOR^a7876^a7877^a7875 N! %00,L@]be|00000000000001^a2140^aFFZGn^aPS^bMG^c^aControversies in psychoanalytic method^efrom Freud and Ferenczi to Michael balint^fby Andr E. Haynal^gtranslated by Elizabeth Holder on the basisi of a first draft by Archie Hooton ; with a preface by Daniel N. Stern^aNew York^cNew York University press^dcop. 1988^axix, 202 str^cilustr^d23cm^aPrijevod djela:^aKazalo^apovijest psihoanalize^a159.9^aHaynal^bAndr^aHolder^bElizabeth214088HAY^a8302N20041230204050 !  0?U'b00000000000003^aFFZG^a2140^a2140^aPS^bZB^c200202^a1-85343-110-9^aPsychoanalitic politics^eJacques Lacan and Freud's French Revolution^fSherry Turkle^a2nd ed^aLondon^cFree Associoation Books^d1992^aVIII, 344 str.^d22 cm^apsihoanaliza^a2140^aTurkle^bShirlie214092LAC^a8299N20041231053011 "! #3Fy'*@@b%BHNRTW]ci"00000000000005^aFFZG^a0-07-071918-7^aPS^bZB^c200202^aPsychology^fCamille B. Wortman, Elizabeth F. Loftus, Mary E. Marshal^a4th ed^aNew York etc.^cMcGraw-Hill^dcop. 1992^a623, [125] str.^cilustr. u bojama^d27 cm^aBibliografija: str. R1-R58^aKazala^aopa psihologija^aWortman^bCamille B.^aMarshall^bMary^cLoftus^dElizabeth F^a2100^a2100210092WOR^a7876^a7877^a7875^aMcGraw-Hill series in PsychologyBiblio-Isis-0.24/data/winisis/BIBL.l010000755000175000000000000000300010453543112016347 0ustar dpavlinroot 159.9 2100  2140 7875 37876 :7877 A8176 H8299 O8300 V8302 ] 88 d89 k92 r94 A AND ANDRE ARCHIE "B )BALINT 0 BASISI 7BY >CAMILLE KD RDANIEL YDRAFT `E gELIZABETH pF FERENCZI  FIRST FRENCH FREUD FRO %FROM ,FROSH 3GAP :GRO AGROSS HHAY O HAYNAL VHOLDER ]HOOTON dIN kJACQUES tKEY LAC LACAN LOFTUS MARSHAL  MARY #METHOD *MICHAEL 1MINDING 8N ?OF FON MPOLITICS TPREFACE [PSYCHOLOGYbREVOLUTIONmRICHARD tS SHERRY STEPHEN   STERN STUDIES THE #TO ,TRANSLATED3TURKLE :WITH AWOR HWORTMAN O Biblio-Isis-0.24/data/winisis/BIBL.IFP0000755000175000000000000000700010453543112016375 0ustar dpavlinrootm    !"   #   $      bbbbbBiblio-Isis-0.24/data/winisis/BIBL.N020000755000175000000000000000053410453543112016323 0ustar dpavlinroot CONTROVERSIES IN PSYCHOANALYTINEW YORK, NEW YORK UNIVERSITY PSYCHOANALITIC Biblio-Isis-0.24/data/winisis/BIBL.FDT0000755000175000000000000000616010453543112016402 0ustar dpavlinrootW:BIBL F:BIBL SER NO S:BIBL *** Identifikator zapisa 1 10 0 0 ISBN abz 10 10 0 1 ISSN abdyz 11 10 0 1 ISMN abdz 13 10 0 1 Identifikator lanka az2 14 20 0 1 Opi podaci za procesiranje a 100 30 0 1 Jezik predloka a 101 10 0 0 Zemlja izdavanja ab 102 10 0 0 Polje kodiranih podataka a 105 30 0 0 Naslov i odgovornost abcdefghivz5kvwxy 200 50 0 0 Izdanje ab 205 50 0 1 Izdavanje, raspaavanje abcdefgh 210 50 0 0 Materijalni opis acde 215 100 0 1 Nakladnika cjelina adefhivxw 225 100 0 1 Karakteristike elektr. izvora a 230 100 0 1 Opa napomena a 300 1000 0 1 Napomena o bibliografiji a 320 1000 0 1 Napomena o sadraju a 327 1000 0 1 Saetak a 330 1000 0 1 Napomena o elektr. izvoru a 336 1000 0 1 Zahtjevi sistema za e-izvore a 337 500 0 1 Nakladnika cjelina (Serija) 1a 410 100 0 1 Pritampani, prikriv. radovi 1a 423 100 0 1 Skup 1a 461 100 0 1 Podskup 1a 462 100 0 1 Dio 1a 463 100 0 1 Analitika 1a 464 100 0 1 Uniformni naslov a 500 100 0 1 Formalna odrednica abd 503 100 0 1 Proireni naslov az 532 100 0 1 Osobno ime kao predmet ab 600 1000 0 1 Geograsko ime kao predmet ajxyz23 607 100 0 1 Slobodno oblikovane predm, a 610 1000 0 1 UDK abcvz 675 100 0 1 Druga klasifikacija abc2 686 100 0 1 Osobno ime - prim.odgovornost abd34 700 100 0 0 Osobno ime - alt.odgovornost abd34 701 100 0 1 Osobno ime - sek.odgovornost abd345 702 100 0 1 Korporativno t. - prim.odgov. abcdefghp34 710 1000 0 0 Korporativno t. - alt.odgov. abcdefghp34 711 100 0 1 Korporativno t. - sek.odgov. abcdefghp345 712 100 0 1 Izvor podataka abcg2 801 100 0 1 Elektoniki izvori u 856 100 0 1 Signatura 990 10 0 1 Inventarni broj 991 10 0 1 Mjesni podaci abc 994 10 0 0 Status zapisa 995 1 0 0 Odgvorna osoba ab 996 50 0 0 Datum zadnje promjene 997 20 0 0 Prijeslov, transliteracija ab 998 100 0 0 Biblio-Isis-0.24/data/winisis/BIBL.l020000755000175000000000000000304010453543112016354 0ustar dpavlinroot 0-07-071918-7 0-340-59691-0 0-8147-2595-3 00000000000001 00000000000002 00000000000003 #00000000000004 *00000000000005 11-85343-110-9 8CONTROVERSIES ? CONTROVERSIES IN PSYCHOANALYTIFFROSH, STEPHEN MGROSS, RICHARD THAYNAL, ANDRE [HOLDER, ELIZABETH bKEY STUDIES IN PSYCHOLOGY, RICiLONDON, FREE ASSOCIOATION BOOKpLONDON, HODDER & STOUGHTON, 19wMARSHALL, MARY, LOFTUS, ELIZABNEW YORK ETC., MCGRAW-HILL, CONEW YORK, NEW YORK UNIVERSITY NEW YORK, UNIVERSITY PRESS, 19OPAA PSIHOLOGIJA POVIJEST PSIHOANALIZE %PSIHOANALIZA , PSYCHOANALITIC 5PSYCHOANALITIC POLITICS, JACQU<PSYCHOANALYSIS CPSYCHOANALYSIS AND PSYCHOLOGY,JPSYCHOANALYTIC QPSYCHOLOGY, CAMILLE B. WORTMANXTURKLE, SHIRLIE _WORTMAN, CAMILLE B. f Biblio-Isis-0.24/data/winisis/BIBL.N010000755000175000000000000000022410453543112016316 0ustar dpavlinroot 88 BASISI FIRST HAYNAL MARY REVOLUTIONSTERN Biblio-Isis-0.24/MANIFEST.SKIP0000644000175000017500000000030110454200344015304 0ustar dpavlindpavlinpod2html/ .svn/ data/.svn/ data/isismarc/.svn/ data/isismarc/isismarc/.svn/ data/winisis/.svn/ lib/.svn/ lib/Biblio/.svn/ lib/Biblio/Isis/.svn/ Makefile Makefile.old scripts/.svn/ t/.svn/ blib Biblio-Isis-0.24/Makefile.PL0000644000175000017500000000230610454201110015357 0ustar dpavlindpavlinuse ExtUtils::MakeMaker; # See lib/ExtUtils/MakeMaker.pm for details of how to influence # the contents of the Makefile that is written. WriteMakefile( NAME => 'Biblio::Isis', VERSION_FROM => 'lib/Biblio/Isis.pm', # finds $VERSION AUTHOR => 'Dobrica Pavlinusic (dpavlin@rot13.org)', ABSTRACT_FROM => 'lib/Biblio/Isis.pm', PREREQ_PM => { 'Test::More' => 0, 'Carp' => 0, 'File::Glob' => 0, 'File::Spec' => 0, }, depend => { dist => 'changelog', }, ); sub MY::postamble { return <<'MAKE_MORE'; HTML_DIR=pod2html html: $(TO_INST_PM) test -e $(HTML_DIR) && rm -Rf $(HTML_DIR) || true mkdir $(HTML_DIR) allpod2xhtml.pl lib/ $(HTML_DIR) test ! -z "`which svn2html.pl`" && svn update && svn2html.pl > $(HTML_DIR)/Changes.html changelog: svk update && svk -v log > Changes tags: ctags *.p? */*.p? cmp: time ./scripts/dump_isis.pl > isis.txt time ./scripts/dump_openisis.pl > openisis.txt bench: all cd ./scripts/ && ./bench.pl cpan: make clean rm -f Biblio-Isis-*.tar.gz perl Makefile.PL make changelog make dist make disttest @echo @echo -n "Upload" Biblio-Isis-*.tar.gz "to CPAN? [y/N]:" @read upload && test "$$upload" == "y" && cpan-upload -verbose Biblio-Isis-*.tar.gz MAKE_MORE }