Generating Cutter numbers

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Gerard Flanagan

    #1

    Generating Cutter numbers

    All

    would anyone happen to have code to generate Cutter Numbers:

    eg. http://www1.kfupm.edu.sa/library/cod...er-numbers.htm

    or is anyone looking for something to do?-) (I'm under pressure!)

    def cutter(lname, fname, book_title):

    (maybe more to it than that).


    cheers

    Gerard

  • skryskalla@gmail.com

    #2
    Re: Generating Cutter numbers

    Gerard Flanagan wrote:[color=blue]
    > All
    >
    > would anyone happen to have code to generate Cutter Numbers:
    >
    > eg. http://www1.kfupm.edu.sa/library/cod...er-numbers.htm
    >
    > or is anyone looking for something to do?-) (I'm under pressure!)
    >
    > def cutter(lname, fname, book_title):
    >[/color]

    What do you use lname and fname (author first name and last name?) for?
    The page you linked to does not have any information (that I could
    see) about first names or last names.

    I wrote a script to see if I could capture what the table is doing on
    the page you linked to. It gets the Cutter number right about 50% of
    the time, otherwise its off by a few digits.

    I am stumped about what to do when the first letter is Q not followed
    by U. It says to use numbers 2-29 for the second letters a-t, but that
    is obviously not right (for one thing t would be 21, not 29).

    Since you seem a little bit more experienced in library science could
    you explain what is going on? :)

    you can find the script here:


    Title mine real match?
    ---------------------------------------
    IBM I26 I26 True
    Idaho I33 I33 True
    Ilardo I43 I4 False
    Import I47 I48 False
    Inman I56 I56 True
    Ipswich I67 I67 True
    Ito I86 I87 False
    Ivy I99 I94 False
    Sadron S23 S23 True
    Scanlon S33 S29 False
    Schreiber S37 S37 True
    Shillingburg S55 S53 False
    Singer S56 S57 False
    Stinson S75 S75 True
    Suryani S87 S87 True
    Symposium S96 S96 True
    Qadduri Q23 Q23 True
    Qiao Q103 Q27 False
    Quade Q33 Q33 True
    Queiroz Q45 Q45 True
    Quinn Q56 Q56 True
    Quorum Q67 Q67 True
    Qutub Q88 Q88 True
    Qvortrup Q236 Q97 False
    Campbell C46 C36 False
    Ceccaldi C53 C43 False
    Chertok C64 C48 False
    Clark C73 C58 False
    Cobblestone C43 C63 False
    Cryer C79 C79 True
    Cuellar C74 C84 False
    Cymbal C36 C96 False


    Steve

    Comment

    • Rick Zantow

      #3
      Re: Generating Cutter numbers

      skryskalla@gmai l.com wrote in news:1148133784 .844430.23130@
      38g2000cwa.goog legroups.com:
      [color=blue]
      > Gerard Flanagan wrote:[color=green]
      >> All
      >>
      >> would anyone happen to have code to generate Cutter Numbers:
      >>
      >> eg. http://www1.kfupm.edu.sa/library/cod...er-numbers.htm
      >>[/color][/color]
      [...][color=blue]
      >
      > I wrote a script to see if I could capture what the table is doing on
      > the page you linked to. It gets the Cutter number right about 50% of
      > the time, otherwise its off by a few digits.
      >
      > I am stumped about what to do when the first letter is Q not followed
      > by U. It says to use numbers 2-29 for the second letters a-t, but[/color]
      that[color=blue]
      > is obviously not right (for one thing t would be 21, not 29).
      >
      > Since you seem a little bit more experienced in library science could
      > you explain what is going on? :)
      >
      > you can find the script here:
      > http://lost-theory.org/python/cutter.txt
      >[/color]

      I found another page
      <http://ublib.buffalo.e du/libraries/units/cts/codes/cutter.html> that
      expresses the letter codes more fully than the one the OP posted. But
      nothing I've seen so far accounts for an example like " Chertok (.C48)".

      This page <http://www.itsmarc.com/crs/cutr0020.htm> shows essentially
      the same information the OP posted, including the Chertok example, which
      is linked to another page that says this (and only this): "These Cutters
      reflect the adjustments made to allow for a range of letters on the
      table, e.g., l-m, or for letters not explicitly stated, e.g., h after an
      initial consonant." Given that some unnamed adjustment is made, it's not
      clear how one would go about programming it. I mean, Python's good, but
      it only has a serpent brain.

      --
      rzed

      Comment

      • Tim Chase

        #4
        Re: Generating Cutter numbers

        > I am stumped about what to do when the first letter is Q not[color=blue]
        > followed by U. It says to use numbers 2-29 for the second
        > letters a-t, but that is obviously not right (for one thing t
        > would be 21, not 29).
        >
        > Since you seem a little bit more experienced in library
        > science could you explain what is going on? :)[/color]

        I too tried to play with it, and Steve found one of the cases
        with which I was having trouble ("Q[^u]"). Additionally, is "Y"
        considered a consonant or vowel for the sake of this exercise?
        Other trouble came when consonants were not followed by the list
        of letters given. It also looks like the definiton of "initial
        letter" seems to change a bit. In some cases, "initial letter"
        seems to refer to the first letter (which gets output
        carte-blanche), and in other cases, it seems to be used to refer
        to "the first letter that should be converted to a number"
        (meaning the second letter of the input).

        Some examples for which expected results (and the
        reasoning/logic/algorithm/table behind how they were generated)
        would be helpful:
        "Cyr", "Cyprus", "Mbarine", "McGrady", "Sczepanski ", "Yvette"

        They're all are sample last-names pulled from my local phonebook.

        Too bad my librarian wife is working today :)

        -tkc







        Comment

        • Gerard Flanagan

          #5
          Re: Generating Cutter numbers

          skryskalla@gmai l.com wrote:[color=blue]
          > Gerard Flanagan wrote:[color=green]
          > > All
          > >
          > > would anyone happen to have code to generate Cutter Numbers:
          > >
          > > eg. http://www1.kfupm.edu.sa/library/cod...er-numbers.htm
          > >
          > > or is anyone looking for something to do?-) (I'm under pressure!)
          > >
          > > def cutter(lname, fname, book_title):
          > >[/color]
          >
          > What do you use lname and fname (author first name and last name?) for?
          > The page you linked to does not have any information (that I could
          > see) about first names or last names.
          >[/color]

          Sorry, couldn't find a better link, I'm struggling to find anything
          definitive about this.

          I'm cataloging a small library and want to generate a unique id (called
          a 'call number') for each book. This id is composed of:

          * Dewey 3-digit Subject Classification Number
          * Dewey Decimal (always 0 for the minute)
          * Cutter Number
          * Copy number (multiple copies or volumes)

          (That Celestial Emporium again...)

          I haven't researched it much but it seems the Cutter number is used to
          distinguish between authors with the same name, and between different
          books written by the same author - so you need last name, first name
          and title. But it may be as much art as science.
          [color=blue]
          > I wrote a script to see if I could capture what the table is doing on
          > the page you linked to. It gets the Cutter number right about 50% of
          > the time, otherwise its off by a few digits.
          >
          > I am stumped about what to do when the first letter is Q not followed
          > by U. It says to use numbers 2-29 for the second letters a-t, but that
          > is obviously not right (for one thing t would be 21, not 29).
          >
          > Since you seem a little bit more experienced in library science could
          > you explain what is going on? :)
          >
          > you can find the script here:
          > http://lost-theory.org/python/cutter.txt
          >[/color]

          Thanks very much for taking the time - I'll have to go study it now!
          But I don't think it will be as simple now since the Cutter may depend
          on books already in the database. Maybe I'll just stick a random
          string on the end of what your function produces!

          Thanks again.

          Gerard

          Comment

          • Terry Reedy

            #6
            Re: Generating Cutter numbers


            "Gerard Flanagan" <grflanagan@yah oo.co.uk> wrote in message
            news:1148146441 .412605.163750@ j55g2000cwa.goo glegroups.com.. .[color=blue]
            > I'm cataloging a small library and want to generate a unique id (called
            > a 'call number') for each book. This id is composed of:
            >
            > * Dewey 3-digit Subject Classification Number
            > * Dewey Decimal (always 0 for the minute)
            > * Cutter Number
            > * Copy number (multiple copies or volumes)
            >
            > (That Celestial Emporium again...)
            >
            > I haven't researched it much but it seems the Cutter number is used to
            > distinguish between authors with the same name, and between different
            > books written by the same author - so you need last name, first name
            > and title. But it may be as much art as science.[/color]

            I seems you are mixing pieces of two cataloging systems. The link you gave
            was for creating Cutter numbers to represent subtopics of Library of
            Congress classes. For instance, 'algorithms' is .A43.



            Comment

            • Gerard Flanagan

              #7
              Re: Generating Cutter numbers

              Terry Reedy wrote:[color=blue]
              > "Gerard Flanagan" <grflanagan@yah oo.co.uk> wrote in message
              > news:1148146441 .412605.163750@ j55g2000cwa.goo glegroups.com.. .[color=green]
              > > I'm cataloging a small library and want to generate a unique id (called
              > > a 'call number') for each book. This id is composed of:
              > >
              > > * Dewey 3-digit Subject Classification Number
              > > * Dewey Decimal (always 0 for the minute)
              > > * Cutter Number
              > > * Copy number (multiple copies or volumes)
              > >
              > > (That Celestial Emporium again...)
              > >
              > > I haven't researched it much but it seems the Cutter number is used to
              > > distinguish between authors with the same name, and between different
              > > books written by the same author - so you need last name, first name
              > > and title. But it may be as much art as science.[/color]
              >
              > I seems you are mixing pieces of two cataloging systems. The link you gave
              > was for creating Cutter numbers to represent subtopics of Library of
              > Congress classes. For instance, 'algorithms' is .A43.[/color]

              I think 'Cuttering' is a general term for identifying any given book
              within a subject area. Whether you use Dewey or Library of Congress
              system of subject classification you still need to have a way of
              identifying particuar books.
              [color=blue]
              >From the link below:[/color]

              <quote>
              [Examples of] LC (Library of Congress) call numbers:

              LB 1631.S686 1994

              QA 76.76.H94 C36 1997

              The first part of those call numbers, i.e. before the final decimal
              point, are the "filing numbers" as they are often called. They
              indicate the general subject area and are of no interest to us at this
              point for they are shared by all other books in this class. All
              libraries using the system will all use the same "pre-decimal" filing
              number. But ... there could still be a whole wallfull of books sharing
              those numbers so we still have a problem.

              The part of the call number that really made Cutter's system famous --
              and a winner -- was the stuff after the (final) decimal point. Those
              are the
              cutter numbers -- and those are the numbers that guarantee not only
              every
              book's uniqueness, but also lead us straight to its location once we
              are in the right general area of the library.

              Cutter numbers are in a sense "relative". They are not assigned in
              some kind of absolute way, as are the filing numbers that precede
              the decimal point. Thus if a book is "about science" then its filing
              number will begin with a Q in a more absolute or determinate sense
              because Q is the Library of Congress Classification for books on
              science. All books using the LC system will end up giving each book
              the same filing number, but they are unlikely to end up giving it
              exactly the same cutter because every library is different and will
              have different books on its shelf. Cutters depend, relatively, on what
              other books are located in the general area in which a given book is
              to be placed in that particular library.

              So when a book has to be cuttered, then the table that Cutter provided
              for allocating numbers is used. However, the resulting numbers must
              fit into the order established by already existing books in the
              library. That's to say, it is the librarian's responsibility to check
              to be sure that no other book in this class has the same cutter
              number.
              </quote>



              (Before clicking on the link give yourself 10 geek-points if you can
              complete the following sentence:

              <quote>
              The first real library -- i.e. the first one known to have
              systematically tried to solve the problems of maintaining a collection
              by imposing a "logical order" on its objects was the
              Great Library of Alexandria. The Great Library's first librarian was...
              </quote>
              )

              Gerard

              Comment

              • Gerard Flanagan

                #8
                UPDATE: Generating Cutter numbers

                Gerard Flanagan wrote:[color=blue]
                > All
                >
                > would anyone happen to have code to generate Cutter Numbers:
                >
                > eg. http://www1.kfupm.edu.sa/library/cod...er-numbers.htm
                >
                > or is anyone looking for something to do?-) (I'm under pressure!)
                >
                > def cutter(lname, fname, book_title):
                >
                > (maybe more to it than that).
                >
                >
                > cheers
                >
                > Gerard[/color]

                Just for the archives - used a Cutter-Sanborn table obtained by
                html-scraping (BeautifulSoup) . The final Cutter will depend on the
                Cutters of existing books on the same shelf.

                -------------------------------------------------------------------------------------------
                from urllib import urlopen
                from BeautifulSoup import BeautifulSoup as Soup

                baseurl = 'http://www.librarian.o r.kr/reference/mark/cutter%s.htm'

                out = open('cutter2.t xt','w')

                try:
                for i in range(1,10):
                html = urlopen(baseurl % i).read()
                soup = Soup(html)
                for pre in soup('pre'):
                for line in pre.string.spli t('\n'):
                out.write(line. strip().replace (' ', ' ') + '\n')
                finally:
                out.close()
                -------------------------------------------------------------------------------------------

                111 Aa
                112 Aal
                113 Aar
                114 Aars
                115 Aas
                116 Aba
                117 Abal
                118 Abar
                119 Abat
                121 Abau
                122 Abb
                123 Abbat
                124 Abbe
                125 Abbo

                ....

                86 Zol
                87 Zon
                88 Zop
                89 Zot
                91 Zou
                92 Zs
                93 Zu
                94 Zuc
                95 Zun
                96 Zur
                97 Zw
                98 Zwi
                99 Zy

                Comment

                Working...