[Koha-devel] Availability in Koha Was: Re: [Koha-patches] [PATCH 2/2] Fixes bug 4481: Limit to Available filters out many available items.

Joe Atzberger ohiocore at gmail.com
Mon May 24 22:47:20 CEST 2010


On Mon, May 24, 2010 at 12:56 PM, Liz Rea <lrea at nekls.org> wrote:

> While I agree with you that the 952$q as a measure of availability is
> legitimate, I still think Koha *does* need one place for external
> applications (like Autographics) to look for availability.


You say this as though "availability" were one thing.  If it were, then I
would agree it would make sense.  For your purposes, I think maybe we are
talking specifically about a new availability-for-ILL-checkout?  Not holds?
 Not renewals?  This is different than the other kinds of availability we
listed, closest to "available for transfer-for-checkout", but afaik not
otherwise represented in Koha.

BTW, I forgot to add "available-for-renewal" in the availability matrix
also.

One question is whether ILL availability is always computable from other
existing statuses.  I.E, would a "virtual" field suffice?  Previous
implementation suggests that users desire individual manual control (i.e.
notforloan, notforhold... in this case "notforILL") that lives at the data
row level and is toggleable "actual" data.  This makes transactions more of
a pain, but hey, it's what users seem to want.


> Our statewide system ties into at least 7 different kinds of automation
> systems, and according to information given to us by the statewide ILL
> team, Koha is the only one that doesn't give authoritative
> availability information in a single field. Whether that's correct or
> not I admit I don't have first hand data to support the assertion.
>

Any code or documentation we might use as a reference implementation?


> Shortcomings of that system aside, in my mind a complex system like
> statewide ILL *should* only have to look at one field, instead of
> compute availability from 20 different places.


An ILL system might very well build logic that determines effective
availability (and priority!) from it's own rules, involving geography,
branch "system" affiliation, transfer costs, patron type/status, number of
remaining copies (i.e., allow ILL as long as there is another copy on the
shelf), balance of overall ILL transactions between branches or systems,
round robin, age of the title since publication, age of the item since
addition, etc.  That is, in large part, the point of a separate ILL control
system.  If you want each discrete ILS to give one binary status, then the
ILL system is not a controlling mechanism and it loses the ability to build
more sophisticated rules.


> Place the onus of
> computing availability on the client ILS, instead of on the ILL
> system. Why shouldn't we make it simple to interconnect these systems,
> especially since most (if not all) of the other ILS's do?
>

It is already possible (though arguably not "simple") to integrate disparate
systems for resource sharing via SIP2.  OCLC uses SIP2 extensively to fetch
real-time item availability info, and that standard still differentiates
between:

   - circ status
   - checkout/access fee type
   - checkout/access fee amount
   - hold queue length
   - date due
   - recall date
   - hold pickup date
   - other item properties (size, weight, etc)

ILL systems can and should care about different things.

And it's very nice to hear from you, Joe. :)
>

You too, Liz.
--Joe


> On Mon, May 24, 2010 at 10:19 AM, Joe Atzberger <ohiocore at gmail.com>
> wrote:
> > Hey Liz --
> > It sounds like you would be trying to code AutoGraphics logic into Koha.
> > Another user group might prefer the granularity that currently exists, or
> > use software that requires it.  Broadly speaking, we can imagine
> > "availability" many different ways:
> >
> > available for checkout
> > available for hold
> > available for in house use
> > available for pickup (on hold)
> > available for transfer-for-checkout
> > available for transfer-for-hold
> > available for transfer-for-in-house-use
> > available for recall
> > available for electronic viewing
> > available for electronic download
> >
> > Then matrix out all those possibilities with available-for-free,
> > available-for-fee, and available-to-certain-patron-types, etc.
> > In my opinion, it is not logical or desirable for a system to compress
> all
> > those values into one MARC subfield, for any purpose.  Arguably the best
> > standards-exposed item availability information is from the SIP2 Item
> > Information (17/18) message pair, and that does not compress hold,
> checkout,
> > recall and fine info.
> > If you still want to pursue representation in MARC, it should not
> override
> > the 952$q that for Koha otherwise just means date due.  That info is
> still
> > quite valuable in a distinct form.
> > Ian, I agree with some of your premises, but I don't see how adding a
> > sometimes-user-configurable status with partial overlap of other statuses
> > and undefined interaction properties under undefined permissions controls
> > would make things "clearer".  Think about it this way: if AutoGraphics
> were
> > another open source project, I'm pretty sure we would be talking about
> > patching it, not Koha.  Since it is not, and since it is in the company's
> > financial interest and expertise to do so, I think this one is on them.
> > --joe
> > 2010/5/19 Liz Rea <lrea at nekls.org>
> >>
> >> While we're talking about availability, thought I'd put this out there.
> >> Our statewide ILL system would really appreciate a single field for
> >> availability on items: a "yes, you can have that for ILL" or "No, I'm
> sorry,
> >> that item is lost, checked out, out for repair, local use only, In
> transit,
> >> or any one of the plethora of other reasons why this item isn't
> available."
> >> The statewide system currently uses AutoGraphics, which can only check
> one
> >> field. We are currently having them check the 952$q. Here's a brief
> rundown
> >> from the coordinator of the statewide ILL:
> >> "Since Koha puts status information into different subfields (rather
> than
> >> putting different statuses in the same subfield), we had to pick on
> subfield
> >> to look at. The KEGGr group decided that the best subfield to use was
> the
> >> 952$q. When an item is checked out, the date due appears in that
> subfield
> >> and AGent marks it as Not Available; if the $q is missing, the item is
> >> presumed available. My understanding is that other statuses such as Lost
> or
> >> In Transit appear in different subfields.
> >>
> >> Other Z target catalogs use a single subfield for status information, so
> >> when we look in the 852$s (for example), we might see On Shelf, or
> Checked
> >> Out, or Lost, or Mending, etc. Since there's just a single place to
> look, we
> >> can determine all of the different statuses and route requests
> accordingly."
> >> I wanted to make sure that an authoritative availability field is added
> if
> >> availability is revamped. It would make our life a whole lot easier.
> >> Liz Rea
> >> NEKLS
> >> On May 19, 2010, at 7:53 AM, Ian Walls wrote:
> >>
> >> Thanks! I was sure there was an explanation for why the code was
> >> originally commented out, and a more comprehensive system for
> determining
> >> 'availability' is definitely called for.  I had some complaints from
> folks
> >> on our end that the link wasn't working at all, and the functionality I
> get
> >> by adding those lines back in is better for them that otherwise.
> >>
> >> I'll temporarily make use of my patch for these folks until a better one
> >> is ready.  Thanks for the update!
> >>
> >>
> >> -Ian
> >>
> >> On Tue, May 18, 2010 at 7:08 PM, LAURENT Henri-Damien
> >> <henridamien.laurent at biblibre.com> wrote:
> >>>
> >>> Le 19/05/2010 00:04, Ian Walls a écrit :
> >>> > From: Ian Walls <Ian.Walls at med.nyu.edu>
> >>> >
> >>> > ---
> >>> >  C4/Search.pm |   25 ++++++++++++-------------
> >>> >  1 files changed, 12 insertions(+), 13 deletions(-)
> >>> >
> >>> > diff --git a/C4/Search.pm b/C4/Search.pm
> >>> > index 229ee40..e7c9c76 100644
> >>> > --- a/C4/Search.pm
> >>> > +++ b/C4/Search.pm
> >>> > @@ -1256,21 +1256,20 @@ sub buildQuery {
> >>> >      my $group_OR_limits;
> >>> >      my $availability_limit;
> >>> >      foreach my $this_limit (@limits) {
> >>> > -#        if ( $this_limit =~ /available/ ) {
> >>> > -#
> >>> > -## 'available' is defined as (items.onloan is NULL) and
> >>> > (items.itemlost = 0)
> >>> > -## In English:
> >>> > -## all records not indexed in the onloan register (zebra) and all
> >>> > records with a value of lost equal to 0
> >>> > -#            $availability_limit .=
> >>> > -#"( ( allrecords,AlwaysMatches='' not onloan,AlwaysMatches='') and
> >>> > (lost,st-numeric=0) )"; #or ( allrecords,AlwaysMatches='' not
> >>> > lost,AlwaysMatches='')) )";
> >>> > -#            $limit_cgi  .= "&limit=available";
> >>> > -#            $limit_desc .= "";
> >>> > -#        }
> >>> > -#
> >>> > +        if ( $this_limit =~ /available/ ) {
> >>> > +
> >>> > +# 'available' is defined as (items.onloan is NULL) and
> (items.itemlost
> >>> > = 0)
> >>> > +# In English:
> >>> > +# all records not indexed in the onloan register (zebra) and all
> >>> > records with a value of lost equal to 0
> >>> > +            $availability_limit .=
> >>> > +"( ( allrecords,AlwaysMatches='' not onloan,AlwaysMatches='') and
> >>> > (lost,st-numeric=0) )"; #or ( allrecords,AlwaysMatches='' not
> >>> > lost,AlwaysMatches='')) )";
> >>> > +            $limit_cgi  .= "&limit=available";
> >>> > +            $limit_desc .= "";
> >>> > +        }
> >>> > +
> >>> >          # group_OR_limits, prefixed by mc-
> >>> >          # OR every member of the group
> >>> > -#        elsif ( $this_limit =~ /mc/ ) {
> >>> > -        if ( $this_limit =~ /mc/ ) {
> >>> > +        elsif ( $this_limit =~ /mc/ ) {
> >>> >              $group_OR_limits .= " or " if $group_OR_limits;
> >>> >              $limit_desc      .= " or " if $group_OR_limits;
> >>> >              $group_OR_limits .= "$this_limit";
> >>> Hi Ian.
> >>> Nahuel will work on a real fix for availability.
> >>> Since at the moment customers are complaining (quite fairly) that
> >>> availability cannot be at biblio level but should rather be at item
> >>> level.
> >>> And they are correct.
> >>> But When indexing elements only at biblio level, we cannot provide them
> >>> with the best accurate information.
> >>> So Nahuel already did some work on that.
> >>> But it need some improvement, which he will do soon.
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/koha-devel/attachments/20100524/dae8c44e/attachment-0003.htm>


More information about the Koha-devel mailing list