|
List Info
Thread: Newbie questions: Client Application
|
|
| Newbie questions: Client Application |

|
2006-07-14 08:29:48 |
|
Hello,
I’ve recently started working on a client application
that reads data from a Z39.50 interface and writes it to a database. It
involves a lot of issues I hadn’;t run across before, so I’d be very
grateful for any help or advice.
I’m using Visual C++ .NET for the application and Microsoft
SQL Server 2003 for the database. I’m using YAZ rather than YAZ+,
because I wasn’;t able to get my application to build using the latter.
While I generally program in C++, I like C, too, so this doesn̵7;t bother
me.
My impression so far is that the use of Z39.50 is extremely
complex, and while there̵7;s a lot of information available, it’s
hard to find introductory material. Could somebody point me to some? In
particular, I’m having a problem finding information about the PICA
format used by the library system whose records I’m trying to read (GBV
= Gemeinsamer Bibliotheksverbund = Common
Library Network in Germany). I’ve been trying to find out the meaning of
the numbers that designate the various fields in the records, but
haven’t been able to find a chart. I’m also unclear about the
function of the character octal 237 which appears frequently in the records.
Is it just a separator, is it the first character of a multi-byte sequence, or
does it have some other purpose? I haven̵7;t noticed any other non-ASCII
characters, but they might be problematic, too.
So far, I haven̵7;t run across any information about
what to do with the records once I’ve received them from the Z39.50
interface. While I know how to write routines to parse text or binary data, I suppose
other people have done this before. Are there standard methods and/or tools
for this purpose? I’d rather not reinvent the wheel, if I don’t
have to.
I hope this final question isn’t considered
off-topic: I’ve been wondering whether learning how to work with Z39.50
is a marketable skill. It seems that it’s still in use at many libraries
all over the world, and it’s so complex that you can’t just learn
it in an afternoon. For the present, I’m just working on a client, but I
may need to set up a server. It would be nice to know that I was learning
something that might lead to employment in the future.
Thanks in advance for any help or suggestions.
Laurence Finston
50 Jahre Medienservice
für Lehre und Forschung
|
| Newbie questions: Client Application |

|
2006-07-14 08:55:43 |
On Fri, Jul 14, 2006 at 10:29:48AM +0200, Finston, Laurence
wrote:
>
>
> My impression so far is that the use of Z39.50 is
extremely complex,
> and while there's a lot of information available,
it's hard to find
> introductory material. Could somebody point me to
some?
How about
http://zoom.z3950.or
g/index.html
It is about the "zoom" bindings to the Z39.50
protocol, which should
hide most of the complexities.
> In particular, I'm having a problem finding
information about the PICA
> format used by the library system whose records I'm
trying to read
> (GBV = Gemeinsamer Bibliotheksverbund = Common Library
Network in
> Germany).
I don't know the term PICA, but your question sounds like
it would be
some (local?) variant of the MARC records. Have a look at
http://www.loc.gov/marc/
umb/
Some times you can ask your server to provide the records in
different
formats. Many of them support xml as an alternative. It is
probably just
the same field numbers and tags wrapped in xml tags, but
might be easier
to handle.
> I hope this final question isn't considered off-topic:
I've been
> wondering whether learning how to work with Z39.50 is a
marketable
> skill. It seems that it's still in use at many
libraries all over the
> world, and it's so complex that you can't just learn
it in an
> afternoon. For the present, I'm just working on a
client, but I may
> need to set up a server. It would be nice to know that
I was learning
> something that might lead to employment in the future.
Any skill is marketable, if you find the right audience. The
audience
for Z39.50 skills is fairly narrow (libraries, library
system vendors,
etc.), but it does exist. I bet most readers on this list
use some
Z39.50 stuff in their daily work.
Regards
Heikki
--
Heikki Levanto heikki at indexdata dot dk "In
Murphy We Turst"
_______________________________________________
Yazlist mailing list
Yazlist lists.indexdata.dk
http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yaz
list
|
|
| AW: Newbie questions: Client
Application |

|
2006-07-14 09:25:19 |
Thank you for your very quick response!
-----Ursprüngliche Nachricht-----
Von: yazlist-bounces lists.indexdata.dk
[mailto:yazlist-bounces lists.indexdata.dk] Im Auftrag von Heikki
Levanto
Gesendet: Freitag, 14. Juli 2006 10:56
An: Discussion on the YAZ Z39.50 toolkit
Betreff: Re: [Yazlist] Newbie questions: Client Application
> How about
> http://zoom.z3950.or
g/index.html
Thanks, I've been reading this, along with Index Data's
YAZ documentation, which is excellent. I would find it
helpful if there were more examples, but I know how much
work it is to write documentation.
> I don't know the term PICA, but your question sounds
like it would be
> some (local?) variant of the MARC records. Have a look
at
> http://www.loc.gov/marc/
umb/
Thanks for the link. I hadn't looked at that one yet.
PICA is not quite the same. The company OCLC PICA markets a
software for libraries that's widely used in Germany: http://en.wiki
pedia.org/wiki/OCLC_PICA
The format is similar, but not quite the same (sigh).
> Some times you can ask your server to provide the
records in different
> formats. Many of them support xml as an alternative. It
is probably just
> the same field numbers and tags wrapped in xml tags,
but might be easier
> to handle.
I'll look into this.
> Any skill is marketable, if you find the right
audience. The audience
> for Z39.50 skills is fairly narrow (libraries, library
system vendors,
> etc.), but it does exist. I bet most readers on this
list use some
> Z39.50 stuff in their daily work.
It's very difficult to find work in Germany, or to find
work abroad from here. Employers don't seem to be
interested in the kind of programming I've done before, so
I was hoping that learning Z39.50 might be lead to an
opportunity opening up in the future.
Thanks again for your help.
Laurence
_______________________________________________
Yazlist mailing list
Yazlist lists.indexdata.dk
http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yaz
list
|
|
| Newbie questions: Client Application |

|
2006-07-14 09:21:26 |
Finston, Laurence wrote:
> I’m also
> unclear about the function of the character octal 237
which appears
> frequently in the records. Is it just a separator, is
it the first
> character of a multi-byte sequence, or does it have
some other purpose?
> I haven’t noticed any other non-ASCII characters, but
they might be
> problematic, too.
Not sure what \237 would be. \037 is a separator character
used
in MARC records -- has the high bit got set by accident
somehow?
I know nothing about PICA MARC, but it's conceivable it
could be
something special to PICA.
> So far, I haven’t run across any information about what
to do with the
> records once I’ve received them from the Z39.50
interface. While I know
> how to write routines to parse text or binary data, I
suppose other
> people have done this before. Are there standard
methods and/or tools
> for this purpose? I’d rather not reinvent the wheel,
if I don’t have to.
It is pretty simple to parse a MARC record -- you can just
run through
the directory part of the record using the lengths and
offsets to pull
the record apart with your language of choice's substring
function.
You'll need to get some information from the MARC leader.
Details
of the MARC record spec can be found at:
http://www.loc.gov/marc/specifications/spechome.html
It looks a lot of work, but really the MARC format is very
simple and quick & easy to parse.
Nowadays, one approach is to convert the MARC to MARCXML
and then use XSLT to convert the XML to whatever you want.
Details of MARCXML and java routines for converting MARC to
MARCXML are at:
http://www.loc.
gov/standards/marcxml/
As Heikki said, take a look at ZOOM.
Ashley.
--
Ashley Sanders a.sanders manchester.ac.uk
Copac http://copac.ac.uk A
MIMAS Service funded by JISC
_______________________________________________
Yazlist mailing list
Yazlist lists.indexdata.dk
http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yaz
list
|
|
| AW: Newbie questions: Client
Application |

|
2006-07-14 09:40:55 |
Thank you, too, for another quick response!
-----Ursprüngliche Nachricht-----
Von: yazlist-bounces lists.indexdata.dk
[mailto:yazlist-bounces lists.indexdata.dk] Im Auftrag von Ashley
Sanders
Gesendet: Freitag, 14. Juli 2006 11:21
An: Discussion on the YAZ Z39.50 toolkit
Betreff: Re: [Yazlist] Newbie questions: Client Application
> Not sure what \237 would be. \037 is a separator
character used
> in MARC records -- has the high bit got set by accident
somehow?
I don't think so. I vaguely recall seeing something about
this number in some of the masses of documentation I've
skimmed recently.
> It is pretty simple to parse a MARC record -- you can
just run through
> the directory part of the record using the lengths and
offsets to pull
> the record apart with your language of choice's
substring function.
> You'll need to get some information from the MARC
leader. Details
> of the MARC record spec can be found at:
>
http://www.loc.gov/marc/specifications/spechome.html
Thanks for the link.
> Nowadays, one approach is to convert the MARC to
MARCXML
> and then use XSLT to convert the XML to whatever you
want.
> Details of MARCXML and java routines for converting
MARC to
> MARCXML are at:
> http://www.loc.
gov/standards/marcxml/
Thanks for the suggestion, but I think for my purposes, it
would be more straightforward to parse the PICA (or MARC, or
whatever) data and write it to my (tabular) database. I
have already written routines for reading XML data from OAI
interfaces and writing them to the same databank. I use the
stored system procedure `sp_xml_preparedocument' in MS SQL
Server 2003 to extract the information from the XML
expressions. It's a bit tricky getting the data out of the
hierarchical XML format and into tables, so I wouldn't mind
not doing it, if I don't have to. XML is something else
I've had to learn for this project, and my knowledge of it
is still rudimentary.
Thank you for your help. I feel a bit more confident now,
after your answer and Heikki's.
Laurence
_______________________________________________
Yazlist mailing list
Yazlist lists.indexdata.dk
http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yaz
list
|
|
| Newbie questions: Client Application |

|
2006-07-15 16:22:55 |
Hi,
On Fri, 14 Jul 2006 10:29:48 +0200 "Finston,
Laurence"
<Laurence.Finston iwf.de> wrote:
> My impression so far is that the use of Z39.50 is
extremely complex,
> and while there's a lot of information available,
it's hard to find
> introductory material. Could somebody point me to
some? In
> particular, I'm having a problem finding information
about the PICA
> format used by the library system whose records I'm
trying to read
> (GBV = Gemeinsamer Bibliotheksverbund = Common Library
Network in
> Germany). I've been trying to find out the meaning of
the numbers
> that designate the various fields in the records, but
haven't been
> able to find a chart. I'm also unclear about the
function of the
> character octal 237 which appears frequently in the
records. Is it
> just a separator, is it the first character of a
multi-byte sequence,
> or does it have some other purpose? I haven't noticed
any other
> non-ASCII characters, but they might be problematic,
too.
Do you speak german? That question is due to the fact that I
don't know
of an english translation, but the "metadata
scheme" for the GBV is
actually the "cataloguing ruleset", which is
regularly updated and
available online:
http://www.
gbv.de/vgm/info/mitglieder/02Verbund/01Erschliessung/02Richt
linien/01KatRicht/inhalt.shtml
and more information about the available databases and the
available
charsets is here:
http://www.gbv.de/vgm/info/benutzer/04extras/ext
ras_0065?lang=en
-hwh
_______________________________________________
Yazlist mailing list
Yazlist lists.indexdata.dk
http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yaz
list
|
|
| AW: Newbie questions: Client
Application |

|
2006-07-17 11:14:51 |
-----Ursprüngliche Nachricht-----
Von: yazlist-bounces lists.indexdata.dk
[mailto:yazlist-bounces lists.indexdata.dk] Im Auftrag von
Hans-Werner Hilse
Gesendet: Samstag, 15. Juli 2006 18:23
An: yazlist lists.indexdata.dk
Betreff: Re: [Yazlist] Newbie questions: Client Application
> Do you speak german?
Yes.
> That question is due to the fact that I don't know
> of an english translation, but the "metadata
scheme" for the GBV is
> actually the "cataloguing ruleset", which
is regularly updated and
> available online:
That sounds like exactly what I need. Thank you very much!
Laurence Finston
_______________________________________________
Yazlist mailing list
Yazlist lists.indexdata.dk
http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yaz
list
|
|
| YAZ-marcdump utility question |

|
2006-07-28 18:40:26 |
Has anyone successfully used the YAZ utility
"yaz-marcdump"
to perform batch conversion of records from MARC-8 to UTF-8
(communication format)? (We could use a server-based
utility of this sort.)
FYI, the command syntax follows:
------------------------------------------------------------
$ man yaz-marcdump
YAZ-MARCDUMP(1) YAZ-MARCDUMP(1)
NAME
yaz-marcdump - MARC record dump utility
SYNOPSIS
yaz-marcdump [-x] [-X] [-e] [-I] [-f from] [-t to] [-v]
[-c cfile] [file...]
DESCRIPTION
yaz-marcdump reads MARC records from one or more files.
It
parses each record and supports output in
line-format,
ISO2709, MARCXML, MarcX-change as well as Hex output.
This utility parses records ISO2709(raw MARC) as well
as XML
if that is structured as MARCXML/MarcXchange.
[ . . . etc. . . . ]
By default, each record is written to standard output
in a
line format may be changed with options -X, -e, -I.
yaz-marcdump can also be requested to perform character
set
conversion of each record.
[ . . . etc. . . . ]
EXAMPLES
The following command converts MARC21/USMARC in
MARC-8
encoding to MARC21/USMARC in UTF-8 encoding. (Both input
and output is in ISO2709).
yaz-marcdump -f MARC-8 -t UTF-8 -Imarc21.raw
>marc21.utf8.raw
[. . . etc. . . .]
------------------------------------------------------------
--
------------------------------------------------------------
--
$ yaz-marcdump -I test6.raw
(correctly displays communications records in MARC-8)
$ yaz-marcdump -f marc-8 -t utf-8 -I test6.raw
>test7.utf8.raw
(generates a file of communications records encoded in
_MARC-8_, not UTF-8)
$ yaz-marcdump -f marc-8 -t utf-8 test6.raw
(correctly converts and displays UTF-8 records in line
format)
---------------------------------------------------------
In an older version of YAZ, the command
$ yaz-marcdump -f marc-8 -t utf-8 -I test8.raw
>test9.utf8.raw
generates:
Segmentation fault(coredump)
---------------------------------------------------------
If someone has used this utility successfully -- to convert
from MARC-8 to UTF-8 (communcations records, I would welcome
your suggestions.
Thanks very much.
Larry
------------------------------------------------------------
Larry E. Dixson Internet: ldix loc.gov
Network Development and MARC
Standards Office, LA327
Library of Congress Telephone: (202) 707-5807
Washington, D.C. 20540-4402 Fax: (202) 707-0115
_______________________________________________
Yazlist mailing list
Yazlist lists.indexdata.dk
http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yaz
list
|
|
| YAZ-marcdump utility question |

|
2006-08-01 09:25:01 |
Larry E. Dixson wrote:
> Has anyone successfully used the YAZ utility
"yaz-marcdump"
> to perform batch conversion of records from MARC-8 to
UTF-8
> (communication format)? (We could use a server-based
> utility of this sort.)
Oops. yaz-marcdump does not do character set conversion when
output is
ISO2709. This is a bug which will be fixed in next release.
Thanks for telling us!
/ Adam
> FYI, the command syntax follows:
>
>
------------------------------------------------------------
> $ man yaz-marcdump
>
> YAZ-MARCDUMP(1) YAZ-MARCDUMP(1)
>
> NAME
> yaz-marcdump - MARC record dump utility
>
> SYNOPSIS
> yaz-marcdump [-x] [-X] [-e] [-I] [-f from] [-t to]
[-v]
> [-c cfile] [file...]
>
> DESCRIPTION
> yaz-marcdump reads MARC records from one or more
files. It
> parses each record and supports output in
line-format,
> ISO2709, MARCXML, MarcX-change as well as Hex
output.
>
> This utility parses records ISO2709(raw MARC) as
well as XML
> if that is structured as MARCXML/MarcXchange.
>
> [ . . . etc. . . . ]
>
> By default, each record is written to standard
output in a
> line format may be changed with options -X, -e,
-I.
>
> yaz-marcdump can also be requested to perform
character set
> conversion of each record.
>
> [ . . . etc. . . . ]
>
> EXAMPLES
> The following command converts MARC21/USMARC in
MARC-8
> encoding to MARC21/USMARC in UTF-8 encoding. (Both
input
> and output is in ISO2709).
>
> yaz-marcdump -f MARC-8 -t UTF-8 -Imarc21.raw
>marc21.utf8.raw
>
> [. . . etc. . . .]
>
>
------------------------------------------------------------
--
>
------------------------------------------------------------
--
> $ yaz-marcdump -I test6.raw
>
> (correctly displays communications records in
MARC-8)
>
> $ yaz-marcdump -f marc-8 -t utf-8 -I test6.raw
>test7.utf8.raw
>
> (generates a file of communications records encoded
in
> _MARC-8_, not UTF-8)
>
> $ yaz-marcdump -f marc-8 -t utf-8 test6.raw
>
> (correctly converts and displays UTF-8 records in
line
> format)
>
>
---------------------------------------------------------
>
> In an older version of YAZ, the command
>
> $ yaz-marcdump -f marc-8 -t utf-8 -I test8.raw
>test9.utf8.raw
>
> generates:
>
> Segmentation fault(coredump)
>
>
---------------------------------------------------------
>
> If someone has used this utility successfully -- to
convert
> from MARC-8 to UTF-8 (communcations records, I would
welcome
> your suggestions.
>
> Thanks very much.
> Larry
>
>
------------------------------------------------------------
> Larry E. Dixson Internet:
ldix loc.gov
> Network Development and MARC
> Standards Office, LA327
> Library of Congress Telephone: (202)
707-5807
> Washington, D.C. 20540-4402 Fax: (202)
707-0115
>
>
> _______________________________________________
> Yazlist mailing list
> Yazlist lists.indexdata.dk
> http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yaz
list
>
>
_______________________________________________
Yazlist mailing list
Yazlist lists.indexdata.dk
http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yaz
list
|
|
[1-9]
|
|