SENESCHAL on the road

Towards the end of the SENESCHAL project a series of workshops were organised to engage with interested parties and project partners, to demonstrate the various outcomes of the project and to discuss possible future directions. The first of these workshop was held at the offices of Historic Scotland in Edinburgh on Thursday 13th February 2014. Despite severe winds and flooding significantly affecting travel plans the workshop went ahead and was attended by an engaged and enthusiastic group originating from a variety of organisations. From our point of view the Q&A was particularly fruitful, providing good insight into areas where people thought the Linked Data and web services approach might be particularly helpful.

The second of the three workshops was held at the Archaeology Data Service, King’s Manor, York on Thursday 20th February 2014. Once again an interested and engaged audience attended and there were stimulating discussions on all aspects of terminology usage. One significant topic of discussion concerned the use of HeritageData resources in applying validation and quality control to archaeological datasets to improve vocabulary usage.

The final workshop took place at the offices of the Royal Commission on the Ancient and Historical Monuments of Wales (RCAHMW) in Aberystwyth on Thursday 27th February 2014. We observed examples of terminology usage within a number of online applications where SENESCHAL outcomes could potentially have a supporting role. The group were also understandably interested in future possibilities regarding multilingual vocabulary resources, following a demonstration illustrating how Scottish Gaelic terms had been incorporated into the RCAHMS Monument Types thesaurus.

Themes emerging from all workshop discussions included:
The need for more information on update procedures – how to keep the online Linked Data current
Connected with this, discussions on how versioning and version control techniques may apply
Useful ideas were expressed on possible additions to the web services and widgets initially made available

The presentation slides used in the workshops are available here (PDF, 3MB)

Term suggestion, in a widget. What’s a widget?

Having the various vocabularies available online and accessible via web services we’re now in a position to create widgets (functional user interface controls) making use of the vocabularies. For this exercise we don’t really have to create anything new at all, just repurpose one of the nice examples from the jQuery UI site. We will create a type-ahead drop down autocompletion term suggestion control (à la Google), but employing domain specific vocabulary.

All SENESCHAL web services support JSONP callbacks allowing you to call them remotely to retrieve and display terminology from within your own web page. Our data source will be the SENESCHAL getConceptLabelMatch web service, and we will reuse elements of the JQUERY UI (remote JSONP) example. This example will keep the coding minimal for clarity, but of course you are free to introduce other bells and whistles as required. The first thing is to include references to the jQuery and jQueryUI scripts, and a basic stylesheet. So in your page header include the following lines:


<head>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
</head>

We will have a text box from which the term suggestions will drop down in response to typing, and a <div> element to display any selected suggestions as a link (I’ve used a bit of optional minor inline CSS styling here):


<body>
<input id="suggestions" style="width: 300px; border: 1px solid gray;margin-bottom: 3px;"/>
<br><label>Selected:</label><br>
<div id="selected" style="height: 200px; width: 300px; border: 1px solid gray; overflow: auto;"></div>
</body>

These elements should render something like the screen dump below:

seneschal.termsuggestion1

Now for the data source. The service call takes (among others) a ‘schemeURI’ parameter to specify the URI of a concept scheme the suggestions will originate from (URI is case sensitive). There is also a ‘startsWith’ parameter to search for labels that start with this text, or alternatively a ‘contains’ parameter. There is also an optional ‘limit’ parameter to specify the maximum number of records to return. Putting this together into an example gives us:

http://www.heritagedata.org/live/services/getConceptLabelMatch?schemeURI=http://purl.org/heritagedata/schemes/eh_period&startsWith=EARLY&limit=3

This call searches the periods list for the first 3 terms starting with “EARLY”. The response is a JSON array structure, containing the matching label, the label language and (importantly) the Linked Data URI for each concept:


[
{
"uri":"http://purl.org/heritagedata/schemes/eh_period/concepts/UM",
"label":"EARLY MED. OR LATER",
"label lang":"en"
},
{
"uri":"http://purl.org/heritagedata/schemes/eh_period/concepts/EM",
"label":"EARLY MEDIEVAL",
"label lang":"en"
},
{
"uri":"http://purl.org/heritagedata/schemes/eh_period/concepts/EIA",
"label":"EARLY IRON AGE",
"label lang":"en"
}
]

We now need to specify that the “#suggestions” element is to act as an autocomplete widget. The jQueryUI autocomplete control ‘minLength’ parameter controls how many characters are typed before it attempts a remote service call – we will use a value of 3. The ‘source’ parameter can either be a static JSON array structure in the format [{label: ‘abc’, value: ‘def’}] – or a function returning that format. We can encapsulate the service call into a Javascript AJAX call, and map the resultant data to the required structure. Finally the ‘select’ parameter is a function determining what to do when an item is selected from the drop down list of suggestions. So this time finding the first 5 terms containing the specified text from the periods thesaurus, within a <script> tag:

<script> 
$(function() {	
   $("#suggestions").autocomplete({
      source: function(request, response) {
         $.ajax({
            url: "http://www.heritagedata.org/live/services/getConceptLabelMatch", 
            cache: true,
            dataType: "jsonp",
            data: {            
               schemeURI: "http://purl.org/heritagedata/schemes/eh_period",
               contains: request.term,  
               limit: 5
            },          
            success: function(data) {
               response($.map(data, function(item) {              
                  return { label: item.label.toUpperCase(), value: item.uri }           
               }));
            }
         });
      },      
      minLength: 3,
      select: function(event, ui) { 
         if(ui.item) {
            $("<div>").html("<a href='" + ui.item.value + "'>" + ui.item.label + "</a>").prependTo("#selected");
            $(this).val(ui.item.label);					
         }
         else $(this).val("");
         return false;
      }  		
   });  
});  
</script> 

Now a set of suggestions should drop down after the 3rd character is typed into the upper text box (there may be a short delay for the service call to complete and return data). If we select any of these suggestions it is recorded into the lower box as a link containing the Linked Data URI of the selected concept, and the selected label fills the upper box. We could still ignore these suggestions, but this ‘progressive enhancement’ of the original text box allows us to offer selections from a controlled terminology without necessarily becoming intrusive or dictatorial about it.

seneschal.termsuggestion2

seneschal.termsuggestion3

Term suggestion, in a widget. A short example pulls this all together into a single HTML page. Feel free to download and experiment with it. Although this is a fairly simple example it is also quite powerful, as we can index data using the same domain specific vocabularies, referencing the same unique identifiers, from anywhere. Now try changing the ‘schemeURI’ parameter in the code to suggest terms from any of the other vocabularies hosted on HeritageData. Hopefully this has been a useful starting point that shows how you could incorporate SENESCHAL web service calls into your own systems.

Linked Open Data: a practical introduction for libraries, museums and archives – CIGS Event

The Cataloguing and Indexing Group in Scotland are hosting a seminar on Linked Open Data at the Edinburgh Centre for Carbon Innovation, High School Yards, Edinburgh  on Monday 18th November.  Peter McKeague will be giving a presentation on SENESCHAL from the perspective of a vocabulary owner.

For further details and registration (before 11th November), please visit the CIGs web page: http://www.cilips.org.uk/events/ and scroll down to Monday 18th November

 

 

 

Work in the pipeline

Publishing the vocabularies is the first phase in the immediate SENESCHAL project and broader work. More to follow later but briefly flagging up immediate plans.

Linking out
As good citizens of the LOD world, we want to make SKOS mapping connections both at the vocabulary level and more broadly connecting or collaborating with related projects. Currently there are a few mappings to Dewey linked data URIs, courtesy of a previous RCAHMW project. One obvious next step is publish SKOS mappings between the different national thesauri to each other and to the eventual uber thesaurus Phil has blogged about.

More broadly, making mappings between different language thesauri is also part of the ARIADNE archaeological infrastructure work we are involved in. This should also offer opportunities for other providers to make their vocabularies available as Linked Data.

Services
To help with the mappings, Ceri is working on alignment, as part of a larger body of work on RESTful web services that operate over the vocabulary Linked Data and facilitate their use. We plan to build on previous work with SOAP based services for STAR and develop more complex higher level services attuned to the immediate SENESCHAL use cases as a first step.

Widgets
Immediate applications of the services for SENESCHAL case studies include widgets for Browser based indexing applications.

Metadata
Thinking of possible users unfamiliar with the heritagedata website or who may not even know that the vocabularies exist, how can we help them discover, assess and perhaps decide to use or even extend the vocabularies? Part of the eventual solution (as usual) is metadata – this time at the vocabulary level.

We have included some initial vocabulary metadata (see the Properties at the top level of any of the Linked Data vocabulary schemes) though it is something we want to come back to and extend. For example, we’d like to include some metadata on the broad coverage of the vocabularies. Eventually we envisage vocabulary registries through ARIADNE and related projects where users may go to search for relevant vocabularies.

For this metadata we have made a start by using some metadata elements from the DCMI KOS Application Profile (DC AP) effort led by Marcia Zeng. This presents a core and extended set of metadata elements and we will be adding to our initial set of elements through discussions with the vocabulary providers.

In fact, it’s not so simple necessarily as assigning metadata to a vocabulary (though this is where we are starting). We might want to distinguish between a particular publication manifestation (eg linked data) of a particular language expression of an underlying work. And yes the DC AP builds on the FRBR work of the library community and provides different metadata elements for the different parts of the model. We have not chosen to model at that level currently but are interested in any views on this.

Spreading the word 3

I attended a meeting of the END Technical Working Group at the National Museum Collection Centre in Nantgarw on Thursday 27th June 2013 to talk about what we’re doing in SENESCHAL. The END group consists of members from a number of key Welsh cultural heritage organisations: 

Following the meeting there was an opportunity for an extremely interesting quick supervised ‘tour’ of some of the larger artefacts held in storage at the collections centre – buses, train carriages, a lifeboat, even a rescue helicopter! For me the real stand out items were the old motorbikes, and some classic Gilbern sports cars – made in Pontypridd in the 1960s.

 

Spreading the word 2

Continuing the mission to engage with interested parties on the SENESCHAL project, I presented details of the project at the FISH-HEIRNET Spring technical meeting on 26th April at English Heritage’s offices in sunny Birmingham. Tried to weave in some new details as there were a few people present who had previously attended the Digital Past 2013 event in Monmouth. Again there was a very positive response, so it sounds like we’re on the right track at least. We really want the project to align with and aid the work the FISH terminology working group  and HER’s are doing.

Spreading the word…

We headed to Shire Hall in Monmouth for the Digital Past 2013 event on 21st February  to give a talk on semantic technologies and linked data, also including quite a large plug for the (then) imminent SENESCHAL project. It’s tricky disseminating useful details of a project that’s yet to actually start, particularly describing what we were planning to a mixed audience coming at the content from very different perspectives. Nevertheless it was very well received, and we made a lot of nice contacts. Seems the vocabulary issues we described struck a chord with  people from many different disciplines.  The presentation slides are available for download as a PDF file: DigitalPast2013_cbinding

SENESCHAL project started

The first meeting for the SENESCHAL project took place on Monday 4th March 2013 at English Heritage, Swindon (thanks to Phil for hosting).

Present:

  • Peter McKeague (RCAHMS)
  • David Thomas (RCAHMW)
  • Phil Carlisle (EH DSU)
  • Keith May (EH Portsmouth)
  • Paul Cripps (Wessex Archaeology)
  • Holly Wright (ADS York)
  • Doug Tudhope (Glamorgan)
  • Ceri Binding (Glamorgan)

The team reviewed the project proposal and mapped out a preliminary plan of work, particularly focusing on the publication of the vocabularies as LOD. Areas discussed in more detail included hosting service, licensing, attribution, versioning and alignment of data. More to follow on these issues in future blogs. SENESCHAL case studies using the LInked Data to be discussed at forthcoming Glamorgan visit to ADS.