[OPEN-ILS-GENERAL] [OPEN-ILS-DEV] Smart Float: Self balancing floating collections

Doug Kyle dkyle at grpl.org
Wed Apr 2 13:13:45 EDT 2014


Hi Kathy,

Thanks for the positive comment.

The Smart Float version in my working branch does indeed work with the 
floating groups code, such that smart floating would only occur between 
org units as defined by the floating groups setup.

-- 
Doug Kyle
Information Systems Assistant Manager
Grand Rapids Public Library



On 04/02/2014 01:05 PM, Kathy Lussier wrote:
> Hi Doug,
>
> Thanks for sharing your plans. I don't think we have a lot of 
> libraries using floating collections in Mass., but it looks like this 
> feature would add some nice flexibility if we saw more libraries 
> making use of floating collections.  All of this functionality looks 
> fantastic!
>
> I do have one question/comment. You mention that you are running the 
> code in 2.2. In 2.5, Evergreen added floating groups that allow sites 
> to identify where floating items are allowed to float. For example, a 
> multi-branch library in our consortium might want to float things 
> among its branches, but not among all the libraries in the entire 
> consortium. I'm must wondering if your code would play nicely with the 
> floating groups code so that a system that is floating items among its 
> branches can also take advantage of these features.
>
> Thanks!
> Kathy
>
> Kathy Lussier
> Project Coordinator
> Massachusetts Library Network Cooperative
> (508) 343-0128
> klussier at masslnc.org
> Twitter: http://www.twitter.com/kmlussier
>
> On 4/2/2014 11:51 AM, Doug Kyle wrote:
>> I've created a new Evergreen feature I call Smart Float.  After we 
>> (Grand Rapids Public Library) moved to floating collections, staff 
>> had to spend time managing and balancing floating collections. Smart 
>> Float was created to automate those tasks as follows.
>>
>> Smart Float automates the redistribution of floating collections 
>> based on available shelf space and duplicate copies. Smart Float also 
>> allows automatic
>> "re-homing" of items based on a number of circulations from the 
>> original library or a specified time frame.
>>
>> Upon checkin Smart Float will first check if an item needs to be sent 
>> home, if not the item will float to the checkin branch if space is 
>> available
>> and there are not too many duplicate copies.  If space and or 
>> duplicates don't allow floating to the checkin branch, it will next 
>> float to the
>> branch with most space and no excess duplicates, then to the branch 
>> with most space regardless of duplicates.
>> If no branches have shelf space it will stay where it is (float to 
>> the checkin library).
>>
>> Copy locations are the units of Smart Float operation. Copy locations 
>> are mapped to the following attributes that Smart Float uses to 
>> determine how to distribute copies.
>> - active: if true, Smart Float will be used, otherwise traditional 
>> floating will occur.
>> - items_allowed: the number of items the shelving location can hold.
>> - dups_threshold: the number of duplicate titles allowed for that 
>> copy location.
>> - homing_threshold: number of circulations from the original owning 
>> library.
>> - homing_lifespan: time interval, such as "3 months".
>> Items will be sent home within the homing_lifespan from creation 
>> date, until the homing_threshold is met.
>> So if shelving location 'kids movies' has a homing_threshold of 1 and 
>> a homing_lifespan of "3 months", items in that shelving location 
>> won't start floating
>> until they have circulated once from the owning library, or its been 
>> 3 months or more since they were created.
>>
>> The Grand Rapids Public Library is now running an initial version of 
>> Smart Float in production on Evergreen 2.2.  I've committed a lightly 
>> tested version for Master in my working repository.
>>
>> The implementation is almost entirely plpgsql code and no Evergreen 
>> client side interface currently exists, but I wanted to put it out to 
>> the community at this point in the hopes of finding collaborators and 
>> getting it included in future releases.
>>



More information about the Open-ils-general mailing list