Enter a term and retrieve results from the Bibliographica SPARQL API using javascript.
Here's the key piece of javascript (for full details, including snippet of jquery to bind the search form event, look at the html source of this page).
function runQuery(term) { // use third party js sparql library - see ../js/vendor/sparql.js var sparqler = new SPARQL.Service("http://bibliographica.org/sparql"); // set up some prefixes -- if you are not familiar with SPARQL and prefixes // have a quick Google sparqler.setPrefix("dc", "http://purl.org/dc/terms/"); sparqler.setPrefix("bibo", "http://purl.org/ontology/bibo/"); sparqler.setPrefix("foaf", "http://xmlns.com/foaf/0.1/"); // The actual SPARQL query we'll run var sparql = "SELECT DISTINCT ?book ?title ?name " + "WHERE { " + " ?book a bibo:Book . " + " ?book dc:title ?title . ?title bif:contains \"" + term + "\" . " + " OPTIONAL { " + " ?book dc:contributor ?author . ?author foaf:name ?name " + " } " + "} GROUP BY ?book LIMIT 10"; // Create the query var query = sparqler.createQuery(); // And run it (asynchronous so we need callbacks for the json results) query.query(sparql, { // we get json back from the query success: function(json) { console.log(json); // get the actual results // we'll have items corresponding to the ?book, ?title, ?name and ?location var resultElement = $('#results') // Clear out the element resultElement.html(''); // iterate through our results and add them to the result list element // in the page var results = json.results.bindings; for (var index in results) { result = results[index]; var li = $('<li></li>'); var text = '<strong>' + result.title.value + '</strong> by <em>' + result.name.value + '</em>'; li.append(text); resultElement.append(li); } }, failure: function() { alert ("*sob* something went wrong"); } }); }