// Generated by CoffeeScript 1.10.0 (function() { var cb, container, data, height, margin, objects, predicates, predicates_clip, prefixes, subjects, subjects_clip, triples, triples_enter, width; width = 960; height = 500; margin = 20; cb = new Clipboard('.fa-clipboard'); prefixes = { 'http://dbpedia.org/resource': 'dbr:', 'http://www.w3.org/2000/01/rdf-schema': 'rdfs:', 'http://dbpedia.org/ontology': 'dbo:', 'http://www.w3.org/2002/07/owl': 'owl:' }; data = [ { subject: 'http://dbpedia.org/resource/Pisa', predicate: 'http://www.w3.org/2000/01/rdf-schema/label', object: 'Pisa' }, { subject: 'http://dbpedia.org/resource/Pisa', predicate: 'http://dbpedia.org/ontology/populationTotal', object: '89373', object_datatype: 'http://www.w3.org/2001/XMLSchema#date' }, { subject: 'http://dbpedia.org/resource/Pisa', predicate: 'http://dbpedia.org/ontology/country', object: 'http://dbpedia.org/resource/Italy' }, { subject: 'http://dbpedia.org/resource/Pisa', predicate: 'http://www.w3.org/2002/07/owl/sameAs', object: 'http://sws.geonames.org/6542122/' } ]; container = d3.select('table').style({ width: width + "px", height: height + "px", 'margin-left': margin + "px" }); triples = container.selectAll('.triple').data(data); triples_enter = triples.enter().append('tr').attr({ "class": 'triple' }); subjects = triples.append('td').append('span').attr({ "class": 'subject' }).on('mouseover', function(d) { return d3.select(this).select('.clipboard').style('color', '#000'); }).on('mouseout', function(d) { return d3.select(this).select('.clipboard').style('color', '#f2f2f2'); }); subjects.append('span').attr({ "class": 'prefix', title: function(d) { return d.subject.split('/').slice(0, -1).join('/'); } }).text(function(d) { return prefixes[d.subject.split('/').slice(0, -1).join('/')]; }); subjects.append('span').text(function(d) { return d.subject.split('/').slice(-1)[0]; }); subjects_clip = subjects.append('span').attr({ "class": 'clipboard' }); subjects_clip.append('i').attr({ "class": 'fa fa-clipboard', 'data-clipboard-text': function(d) { return d.subject; }, title: 'Copy subject to clipboard.' }).on('click', function(d) { return d3.select(this.parentNode).style('color', 'gray'); }); predicates = triples.append('td').append('span').attr({ "class": 'predicate' }).on('mouseover', function(d) { return d3.select(this).select('.clipboard').style('color', '#000'); }).on('mouseout', function(d) { return d3.select(this).select('.clipboard').style('color', '#f2f2f2'); }); predicates.append('span').attr({ "class": 'prefix', title: function(d) { return d.predicate.split('/').slice(0, -1).join('/'); } }).text(function(d) { return prefixes[d.predicate.split('/').slice(0, -1).join('/')]; }); predicates.append('span').text(function(d) { return d.predicate.split('/').slice(-1)[0]; }); predicates_clip = predicates.append('span').attr({ "class": 'clipboard' }); predicates_clip.append('i').attr({ "class": 'fa fa-clipboard', 'data-clipboard-text': function(d) { return d.predicate; }, title: 'Copy precicate to clipboard.' }).on('click', function(d) { return d3.select(this.parentNode).style('color', 'gray'); }); objects = triples.append('td').append('span').attr({ "class": 'object' }).on('mouseover', function(d) { return d3.select(this).select('.clipboard').style('color', '#000'); }).on('mouseout', function(d) { return d3.select(this).select('.clipboard').style('color', '#f2f2f2'); }).html(function(d) { if (d.object.indexOf('http') === 0 && (prefixes[d.object.split('/').slice(0, -1).join('/')] != null)) { return "" + prefixes[d.object.split('/').slice(0, -1).join('/')] + "" + (d.object.split('/').slice(-1)[0]) + ""; } else if (d.object.indexOf('http') === 0 && (prefixes[d.object.split('/').slice(0, -1).join('/')] == null)) { return "<" + d.object + ">"; } else { return "" + d.object + ""; } }); objects.selectAll('i').on('click', function(d) { return d3.select(this.parentNode).style('color', 'gray'); }); }).call(this);