Sunday 15 March 2015

rdf - Printing matching properties in DBpedia query -



rdf - Printing matching properties in DBpedia query -

the next query search matching subjects based on list of properties , within given distance. ranked number of matching properties (?numproperties), output number. how can print each of properties matches?

run query

select ?subject (count ( distinct ?property) ?numproperties) ?label ?lat ?long { values ?property { dbpedia-owl:crosses dbpedia-owl:vehicle dbpedia-owl:reopened dbpedia-owl:years dbpedia-owl:access dbpedia-owl:third dbpedia-owl:time dbpedia-owl:construction dbpedia-owl:anniversary dbpedia-owl:series dbpedia-owl:length dbpprop:suspension dbpprop:bridge dbpprop:crosses dbpprop:city dbpprop:connecting dbpprop:last dbpprop:three dbpprop:suspension dbpprop:bridges dbpprop:built } ?subject ?property ?object . ?subject rdfs:label ?label . ?subject geo:lat ?lat . ?subject geo:long ?long . filter (?long > -74.490898 && ?long < -73.490898 && ?lat > 40.207222 && ?lat < 41.207222 ) . filter(langmatches(lang(?label),"en")) . } grouping ?subject ?label ?lat ?long order desc(?numproperties) limit 15

class="lang-sql prettyprint-override">#-- took liberty of tidying query bit. #-- key utilize group_concat aggregate function. select ?subject (count(distinct ?property) ?numproperties) ?label ?lat ?long #-- concatenate distinct properties ', ' separated string (group_concat(distinct ?property;separator=', ') ?properties) { values ?property { dbpedia-owl:crosses dbpedia-owl:vehicle dbpedia-owl:reopened dbpedia-owl:years dbpedia-owl:access dbpedia-owl:third dbpedia-owl:time dbpedia-owl:construction dbpedia-owl:anniversary dbpedia-owl:series dbpedia-owl:length dbpprop:suspension dbpprop:bridge dbpprop:crosses dbpprop:city dbpprop:connecting dbpprop:last dbpprop:three dbpprop:suspension dbpprop:bridges dbpprop:built } ?subject ?property ?object ; rdfs:label ?label ; geo:lat ?lat ;geo:long ?long . filter ( -74.490898 < ?long && ?long < -73.490898 && 40.207222 < ?lat && ?lat < 41.207222 ) filter(langmatches(lang(?label),"en")) } grouping ?subject ?label ?lat ?long order desc(?numproperties) limit 15

sparql results

properties rdf sparql matching dbpedia

No comments:

Post a Comment