Scriblio Questions Answered

Robin Gardella asked a few good questions via a comment at this site. They’re good FAQ material, so I wanted to post the questions and my answers.

Do I understand that Scriblio essentially is an “overlay” to the traditional catalog

Yes, and…. Scriblio has features that support original cataloging1, but it can also connect to an ILS or other systems to represent those collections. For the use you describe, it would indeed overlay on top of the existing ILS.

Would the regular catalog still exist beside the Scriblio interface of the catalog?

Yep. Scriblio doesn’t change the behavior of existing systems, but it can give you a new interface to them.

Also, because I already am using WordPress for the design of the web site, would it be necessary for me to create a new (additional) blog and have the Scriblio catalog run separately there?

Everything can run in the same instance of WordPress2, but you should be aware that a server that can host a WordPress blog is not always sufficient to host the entire library collection as well.

  1. The Colby-Sawyer Haystack archives use all original cataloging. []
  2. that’s exactly what I’d recommend, just like the Collingswood NJ Public Library []


Goals for Scriblio 2.9

I’d like to make it easier to start a catalog from scratch, rather than ingesting records from an ILS or other system via a connector. More and more of the projects I’m working on aren’t connected to ILSs and demand original cataloging, and a number of the questions on the mail list seem to be related to that type of use as well.

I’d also like to remove the library-specific and ILS-connected assumptions the plugin now makes about the data in the catalog. I started work on this a while ago with the creation of the Marcish schema. The next step is to put the Marcish schema in its own plugin and remove the code that registers the taxonomies it uses. That will add that will encourage other uses, like the Community Information Database schema, and make maintenance of the code much easier (though it will also require that library users install the Marcish schema plugin when upgrading to 2.9).

Along the above lines, the plugin needs to make some of its behavior optional. The code could easily support browsing of blog posts (I use it that way here, actually), but Scrib’s assumption that catalog records belong in a named category and are hidden from the front page of the site conflicts with that. I’ll have to think through the different behaviors related to that and the options necessary for them.

Another admin UI change: the “default author for catalog records” setting doesn’t belong there. It’s used by the connector plugins, so I’ll move it there and change it so that it works like WordPress imports where you can choose an author or create a new one.

The widgets need to be changed to use the WP 2.8 widget API. Along the way, I need to improve the admin UI for them, making the Facet widget use check boxes for facet taxonomy selection instead of a text entry field. Feature requests related to widgets:

  • Allow arbitrary sorting of the facet results (see Club Level here to see why).
  • Make it an option to see all the values of a taxonomy, not just those that are available in the found set. Selecting a facet value that doesn’t exist in the found set will necessarily have to reset the search. That could be weird.
  • Use a checkbox metaphor: clicking a selected facet will deselect it and rerun the search.

I’d also like to take better advantage of improvements to WP’s taxonomy system since 2.7. Specifically, the generation of nice URLs like site.org/taxonomy_name/taxonomy_value (right now, Scrib writes those URLs as site.org/browse/?taxonomy_name=taxonomy_value). The new URLs are much prettier, but it will take some work to figure out all the behaviors. Example: you’re browsing books at site.org/format/books, and wish to narrow the scope to non-fiction books. What URL should that be?

I’ve also found a bug in the way Scrib adds search filters. If you then try run a new post loop (even if you create a new WP_Query object), the filters will break the query you’re likely trying to execute. I found this out while working on an update to the Colby Sawyer archives site, and found a smart solution in some code from Andy Skelton (see his fulltext_posts_orderby_once()).


Marcish Schema

The following is current as of May 13, 2009. Check the code for changes.

All fields are repeatable unless otherwise specified.

Title

A text string.

Attribution (not repeatable)

A single text string, think of MARC’s 245$c statement of responsibility

Creator

Subfields: Name, Role

Subject

Subfields: seven discrete textual terms/phrases, each with an associated type

Subject Date

A numerical date or date range

Subject Geography

A geographical point or area

Call Numbers

Subfields: type, number, location

Text

Subfields: Type, Language, Content, Notes

Pre-defined types include: description, transcription, translation, contents, review, notes, first words, last words, dedication, notable quotations, sample

Publication Information

Subfields: publisher, edition, language, date (and date certainty), copyright status, copyright note

Physical Details

Subfields: width, height, depth (and unites of measure), weight (and unit), duration (minutes or pages), cost (and currency)

Linked URLs

This is the equivalent of MARC’s 856 field (and thus nearly useless). My intention is to accept URLs in any field and properly link the data from there.

Format

Information about the format of the object identified by the record.

Standard Numbers

Where you’d input ISBN, ISSN, and other standard numbers

Archival Source Details

Information about the provenance of the object.

Predefined relationships include: parent, child, next in series/page, previous, and reverse side. This field could also easily store FRBR relationships. The expected input is a URL to a local or remote record

Of the above fields, these are indexed:

  • creator
  • language
  • year of creation
  • month of creation
  • format
  • subject
  • genre
  • person
  • place
  • time
  • exhibit
  • subject year
  • subject month
  • subject day
  • collection
  • sourceid
  • isbn
  • issn
  • lccn
  • asin
  • ean
  • olid
  • oclc


Scriblio 2.7 released

Scriblio 2.7 Released

It’s been a long time coming, but it’s finally time to call Scriblio 2.7 stable. It’s available at the WordPress plugins repository and SVN:

What’s new:

  • An internal data model[1] that supports original cataloging of books and archive items and has some semblance to MARC and other formats.
  • That data model also supports the automatic merging of records from multiple sources (or multiple copies of the same record in a single source), allowing you to easily and quickly build union catalogs or asynchronously enrich your catalog from external sources. All the data in the merged record is fully indexed and faceted.
  • A refactored SQL query architecture that better leverages the WP APIs and _should_ enabled better interoperability with other plugins. My first use case for this is making a faceted events calendar by using both Scriblio and Event Calendar 3 on the same site.
  • Internal support for representing the collection in a variety of forms. Only human-readable HTML is implemented now, but DC, RDF, MARC, or others could be easily implemented. Volunteers anybody?
  • Better support for automating the relationship between Scriblio and external ILSs or other systems. The III harvester, for instance, automatically harvests new records, updates previously harvested records, and fetches real-time availability information.

What’s broken:

  • The new data model broke all the harvesters for the previous version. Right now, the only harvester that works is for III. If you are harvesting data from another system, do not upgrade yet.
  • This is a stable release, but it’s not necessarily feature complete. And certain things, like setting good defaults for new installs is not yet really complete.

It’s open source:

  • The software is licensed under the GPL, but it’s also supported by the community. Kelli Bogan and Brett Bonfield both deserve big shout outs for their contributions to the project.
  • The mail list is a great place to ask questions or point out bugs, and there are likely to be a few bugs.

[1] This data model is in two parts: a generic framework for working with structured data in posts (the Meditor) as well as a an implementation of it that works well for books and digital collections (the Marcish form). The Meditor framework can be easily extended with other forms that may be more appropriate to other types of objects.


Scriblio en Español

Scriblio en EspañolDavid Ramírez and Oskar Calvo have taken on the task of developing Spanish language Scriblio documentation and translation. Here’s David’s introduction to the Scriblio mail list:

Esta es una invitación para el nuevo sitio de Scriblio en español:

http://es.scriblio.net/

La idea es hacer comunidad, así que cualquier aporte es bienvenido. Estaremos hablando sobre instalación, uso, problemas, etc. para ir sacando adelante algunos manuales. Además de esto esperamos poco a poco publicar la versión en español de este software. Ya hay algunos posts y videotutoriales
en español.


Scriblio Download Location Changed

The change is not entirely complete, but anybody who goes looking to download Scriblio should now look in the WordPress plugin repositoryZip’d copies of various versions of the plugin are available, and you’ll also find the Subversion repository there.

I still have to write a readme file to update the main entry in the plugin directory and there are likely stil a few links I need to update here on the website.

Though I use Subversion almost exclusively to keep my WordPress install and all the plugins I use up to date, I can’t deny that most users depend on zip-file downloads and WordPress’ automatic update mechanism. Moving hosting the Scriblio code there makes it easier to support those users.

In time I plan to remove the various importer plugins from the main Scriblio folder and post them at the plugin directory as separate projects. That solves both a maintenance problem of having independent projects in the same plugin folder, and allow those who aren’t using them to keep unnecessary code off their server.


APIs Work Like Legos

Lego space men


APIs Work Like Legos

Legos (2)


APIs Work Like Legos

Legos