Schema.org: improve MusicGroup vs. Person parsing

Take a stricter approach to defining MusicGroups instead of Persons for
the main authors of MusicAlbums. Music groups are generally catalogued
as a 110 or 710 tag, and this avoids defining birthDates and deathDates
for groups (which, however valid that might be in the real world, is not
valid for schema.org).

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Ben Shum <bshum@biblio.org>
Add structured data for holdings via http://schema.org/Offer

Map library name to Offer/seller, shelving location to
Offer/availableAtOrFrom, call number to Offer/sku, barcode to
Offer/serialNumber, copy status to Offer/availability, and ISBN-13 to
gtin13. Use the additionalType of Product to give these offers an
obvious relationship.

Surface copy counts as AggregateOffer instances.

Cut over to RDFa Lite instead of microdata for schema.org, as RDFa Lite
is more easily extensible with other vocabularies, and is as accepted as
microdata by schema.org processors.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Ben Shum <bshum@biblio.org>
Map the bound-with relationship in schema.org

We don't know what type the target record is, so fall back to Product
and just point at it. At least this way schema.org processors will know
that the target bib is related to the current bib.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Ben Shum <bshum@biblio.org>
Schema.org: relate offers to record explicitly

Although schema.org defines the nested child elements as implicit
relationships that should be good enough for the Offer-to-Product
relationship, defining that relationship explicitly can't hurt.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Ben Shum <bshum@biblio.org>
Schema.org authors: relate properties to the right context

While the approach of using the existing <a href> to launch a new search
based on the author name was workable, it may have been confusing for
schema.org processors such as Google Rich Snippets who expected that URI
to identify a resource for the author, not a set of search results.

Using @resource / @about attribute pairing, and wrapping the whole type
in an extra <span> element, enables us to avoid associating the
properties within the <a href> with the implicitly chained type.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Ben Shum <bshum@biblio.org>
Fixing LP 1203796.

The alternate view in the Item Status screen shows a "Total Circs"
field that was under-counting circulations because UNION filtered
out duplicates.  This commit replaces UNION with UNION ALL, which
allows duplicate rows.

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Ben Shum <bshum@biblio.org>