Thursday, February 12, 2015

New framework has been released

After much work, the new framework has been launched into production. Not only is this a major architecture migration (moving the public UI from Apache Cocoon into Orbeon), but a data migration. We have implemented a new data model for IDs that conforms to the Nomisma ontology that Karsten Tolle has been working on for at least two years. IDs have a more stable system of classes that will improve the predictability of queries. There are presently 16 classes by which IDs are defined--most of them in the nmo: ( namespace, but we are using the W3C Organziation ontology for expressing roles of people and organizations (under foaf:). The ontology is still evolving, but has a carefully curated set of properties and classes that pertain to numismatics. Certain URIs (like nm:mint), will never again be used simultaneously as classes and properties. In fact, all of the URIs that were used as classes and properties have been made instances of nmo:NumismaticTerm. Instances of mints (like Rome or Athens) are an nmo:Mint, and nmo:hasMint is the property to use for linking a coin or coin type to a mint URI. The ontology and data conform to standards established by the semantic web and computer science communities.

Data dumps from museum collections (like the ANS and Berlin) have been migrated into the Nomisma ontology, as have RDF exports from online type corpora, like OCRE and CRRO. This involved updating Numishare's code to export in the new ontology (see for example), as well as update SPARQL queries and the XSLT for reading latitude and longitude in the new model for mints. Mints are now reckoned as concepts (carrying the skos:Concept class, as well as nmo:Mint) that may or may not have a spatial feature, linked with geo:location. The object links by the geo:location is a geo:SpatialThing which may either have a latitude and longitude or have geoJSON encapsulated in the osgeo:asGeoJson property. Complex shapes, represented as geoJSON, can be drawn in Nomisma's XForms-based editing interface (powered by Orbeon). geoJSON objects created in OpenLayers in the editing interface are extracted by Javascript and incorporated into the XForms engine.

The new features of this framework are almost two numerous to mention, but here is a synopsis:

  • IDs are available in their native RDF/XML, but also serialized into Turtle and JSON-LD. IDs for regions that may contain complex geoJSON polygons are exported in geoJSON-LD. These serializations are linked from the ID page. Data dumps of all IDs are available in these three serializations as well.
  • Spatial queries are supported by extending Fuseki to interact with a Solr index.
  • Much improved browse interface allows for additional filtering by roles of people/organizations and sorting. These filters can be applied to the Atom feed as well.
  • Content negotiation is supported for IDs, the SPARQL endpoint, and the browse page. See for more information about interacting with IDs and Solr. The SPARQL endpoint supports text/html, text/csv, text/plain, application/sparql-results+json, and application/sparql-results+xml.
  • RIC and RRC ids have been deprecated by Nomisma, as OCRE and CRRO maintain up-to-date and better quality versions. HTTP 303 See Other redirects are established for any ID that contains a dcterms:isReplacedBy property that links to something else. See
  • We have begun documenting the model and example SPARQL queries. The documentation will evolve to become more comprehensive in the coming months.
  • The system in general is far more stable and efficient now that RDF/XML has replaced XHTML documents. It reduces the need for additional transformation when delivering web services. More than 90% of HTTP requests for Nomisma content comes from machines (about 30,000 per day).