List Info

Thread: Newbie questions: Client Application




Newbie questions: Client Application
user name
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
user name
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
Yazlistlists.indexdata.dk
http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yaz
list
AW: Newbie questions: Client Application
user name
2006-07-14 09:25:19
Thank you for your very quick response!


-----Ursprüngliche Nachricht-----
Von: yazlist-bounceslists.indexdata.dk
[mailto:yazlist-bounceslists.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
Yazlistlists.indexdata.dk
http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yaz
list
Newbie questions: Client Application
user name
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.sandersmanchester.ac.uk
Copac http://copac.ac.uk A
MIMAS Service funded by JISC

_______________________________________________
Yazlist mailing list
Yazlistlists.indexdata.dk
http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yaz
list
AW: Newbie questions: Client Application
user name
2006-07-14 09:40:55
Thank you, too, for another quick response!

-----Ursprüngliche Nachricht-----
Von: yazlist-bounceslists.indexdata.dk
[mailto:yazlist-bounceslists.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
Yazlistlists.indexdata.dk
http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yaz
list
Newbie questions: Client Application
user name
2006-07-15 16:22:55
Hi,

On Fri, 14 Jul 2006 10:29:48 +0200 "Finston,
Laurence"
<Laurence.Finstoniwf.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
Yazlistlists.indexdata.dk
http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yaz
list
AW: Newbie questions: Client Application
user name
2006-07-17 11:14:51

-----Ursprüngliche Nachricht-----
Von: yazlist-bounceslists.indexdata.dk
[mailto:yazlist-bounceslists.indexdata.dk] Im Auftrag von
Hans-Werner Hilse
Gesendet: Samstag, 15. Juli 2006 18:23
An: yazlistlists.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
Yazlistlists.indexdata.dk
http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yaz
list
YAZ-marcdump utility question
user name
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:    ldixloc.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
Yazlistlists.indexdata.dk
http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yaz
list
YAZ-marcdump utility question
user name
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:   
ldixloc.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
> Yazlistlists.indexdata.dk
> http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yaz
list
> 
> 


_______________________________________________
Yazlist mailing list
Yazlistlists.indexdata.dk
http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yaz
list
[1-9]

about | contact  Other archives ( Real Estate discussion Medical topics )