Difference between revisions of "OSM Planet"

From BITPlan Wiki
Jump to navigation Jump to search
Line 64: Line 64:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
== Example queries  ==
+
== Sophox Example Queries ==
=== Sophox Queries ===
 
 
<source lang='bash' highlight='1'>
 
<source lang='bash' highlight='1'>
 
sparqlquery -qp osmplanet.yaml -qn RelationStats -en osm-sophox --param relid=6843452 -f mediawiki
 
sparqlquery -qp osmplanet.yaml -qn RelationStats -en osm-sophox --param relid=6843452 -f mediawiki
Line 142: Line 141:
 
|-
 
|-
 
| https://www.openstreetmap.org/meta/has || https://www.openstreetmap.org/node/6767844278
 
| https://www.openstreetmap.org/meta/has || https://www.openstreetmap.org/node/6767844278
 +
|}
 +
== QLever example queries ==
 +
<source lang='bash' highighlight='1'>
 +
sparqlquery -d -qp osmplanet.yaml -en osm-qlever -p -qn RelationRoleHistogram -f mediawiki --param relid=10492086
 +
</source>
 +
named query RelationRoleHistogram:
 +
 +
sparql:
 +
PREFIX osmrel: <https://www.openstreetmap.org/relation/>
 +
PREFIX osm2rdfmember: <https://osm2rdf.cs.uni-freiburg.de/rdf/member#>
 +
SELECT ?role (COUNT(?member) as ?count)
 +
WHERE {
 +
  osmrel:10492086 osmrel:member ?member .
 +
  ?member osm2rdfmember:role ?role .
 +
}
 +
GROUP BY ?role
 +
ORDER BY DESC(?count)
 +
 +
== RelationRoleHistogram ==
 +
 +
=== query ===
 +
<source lang='sparql'>
 +
PREFIX osmrel: <https://www.openstreetmap.org/relation/>
 +
PREFIX osm2rdfmember: <https://osm2rdf.cs.uni-freiburg.de/rdf/member#>
 +
SELECT ?role (COUNT(?member) as ?count)
 +
WHERE {
 +
  osmrel:10492086 osmrel:member ?member .
 +
  ?member osm2rdfmember:role ?role .
 +
}
 +
GROUP BY ?role
 +
ORDER BY DESC(?count)
 +
 +
</source>
 +
 +
[https://qlever.cs.uni-freiburg.de/osm-planet?query=PREFIX%20osmrel%3A%20%3Chttps%3A//www.openstreetmap.org/relation/%3E%0APREFIX%20osm2rdfmember%3A%20%3Chttps%3A//osm2rdf.cs.uni-freiburg.de/rdf/member%23%3E%0ASELECT%20%3Frole%20%28COUNT%28%3Fmember%29%20as%20%3Fcount%29%0AWHERE%20%7B%0A%20%20osmrel%3A10492086%20osmrel%3Amember%20%3Fmember%20.%0A%20%20%3Fmember%20osm2rdfmember%3Arole%20%3Frole%20.%0A%7D%0AGROUP%20BY%20%3Frole%0AORDER%20BY%20DESC%28%3Fcount%29%0A try it!]
 +
=== result ===
 +
{| class="wikitable" style="text-align: left;"
 +
|+ <!-- caption -->
 +
|-
 +
! role    !! align="right"|  count
 +
|-
 +
| member  || align="right"|    624
 +
|-
 +
| platform || align="right"|      31
 +
|-
 +
| stop    || align="right"|      26
 
|}
 
|}

Revision as of 13:13, 20 January 2025

Links

OSM Planet SPARQL Queries with pylodstorage query tool

Configuration for pylodstorage sparqlquery tool

see https://pypi.org/project/pyLodStorage/

installation

pip install pylodstorage

The configuration files need to be in $HOME/.pylodstorage or you have to explicitly give the path with the -ep and -qp options

endpoints.yaml

osm-sophox:
  endpoint: https://sophox.org/sparql
  website: https://sophox.org
  database: blazegraph
  method: POST
  lang: sparql
  prefixes: |
    PREFIX osmrel: <https://www.openstreetmap.org/relation/>
    PREFIX osmt: <https://wiki.openstreetmap.org/wiki/Key:>
    PREFIX osmm: <https://www.openstreetmap.org/meta/>
    PREFIX geo: <http://www.opengis.net/ont/geosparql#>

osm-qlever:
  endpoint: https://qlever.cs.uni-freiburg.de/api/osm-planet
  website: https://qlever.cs.uni-freiburg.de/osm-planet
  database: qlever
  method: POST
  lang: sparql
  prefixes: |
    PREFIX osmrel: <https://www.openstreetmap.org/relation/>
    PREFIX osmt: <https://wiki.openstreetmap.org/wiki/Key:>
    PREFIX osmm: <https://www.openstreetmap.org/meta/>
    PREFIX geo: <http://www.opengis.net/ont/geosparql#>
    PREFIX osm2rdfmember: <https://osm2rdf.cs.uni-freiburg.de/rdf/member#>
    PREFIX osmway: <https://www.openstreetmap.org/way/>

osmplanet.yaml (or queries.yaml as default)

RelationStats:
  endpoint: osm-qlever
  param_list:
    - name: relid
      type: str
      default_value: "6843452"
  sparql: |
    # Get statistics about predicates used in an OSM relation 
    SELECT ?p (COUNT(?o) as ?count)
    WHERE {
      osmrel:{{relid}} ?p ?o .
    }
    GROUP BY ?p
    HAVING (?count > 1)
    ORDER BY DESC(?count)

Sophox Example Queries

sparqlquery -qp osmplanet.yaml -qn RelationStats -en osm-sophox --param relid=6843452 -f mediawiki

RelationStats

query

# Get statistics about predicates used in an OSM relation
PREFIX osmrel: <https://www.openstreetmap.org/relation/>
SELECT ?p (COUNT(?o) as ?count)
WHERE {
  osmrel:6843452 ?p ?o .
}
GROUP BY ?p
HAVING (?count > 1)
ORDER BY DESC(?count)

try it!

result

p count
https://www.openstreetmap.org/meta/has 186
sparqlquery -qp osmplanet.yaml -qn RelationNodes -en osm-sophox --param relid=6843452  -f mediawiki

RelationNodes

query

# Get all nodes for an OSM relation
PREFIX osmrel: <https://www.openstreetmap.org/relation/>
SELECT *
WHERE {
  osmrel:6843452 ?p ?o .
  FILTER(STRSTARTS(STR(?o), "https://www.openstreetmap.org/node/"))
}

try it!

result

p o
https://www.openstreetmap.org/meta/has https://www.openstreetmap.org/node/29567894
https://www.openstreetmap.org/meta/has https://www.openstreetmap.org/node/29569297
https://www.openstreetmap.org/meta/has https://www.openstreetmap.org/node/1697798338
https://www.openstreetmap.org/meta/has https://www.openstreetmap.org/node/1981635686
https://www.openstreetmap.org/meta/has https://www.openstreetmap.org/node/5239688223
https://www.openstreetmap.org/meta/has https://www.openstreetmap.org/node/5959602923
https://www.openstreetmap.org/meta/has https://www.openstreetmap.org/node/6083777817
https://www.openstreetmap.org/meta/has https://www.openstreetmap.org/node/6767679673
https://www.openstreetmap.org/meta/has https://www.openstreetmap.org/node/6767679678
https://www.openstreetmap.org/meta/has https://www.openstreetmap.org/node/6767679964
https://www.openstreetmap.org/meta/has https://www.openstreetmap.org/node/6767680441
https://www.openstreetmap.org/meta/has https://www.openstreetmap.org/node/6767844278

QLever example queries

sparqlquery -d -qp osmplanet.yaml -en osm-qlever -p -qn RelationRoleHistogram -f mediawiki --param relid=10492086

named query RelationRoleHistogram:

sparql: PREFIX osmrel: <https://www.openstreetmap.org/relation/> PREFIX osm2rdfmember: <https://osm2rdf.cs.uni-freiburg.de/rdf/member#> SELECT ?role (COUNT(?member) as ?count) WHERE {

 osmrel:10492086 osmrel:member ?member .
 ?member osm2rdfmember:role ?role .

} GROUP BY ?role ORDER BY DESC(?count)

RelationRoleHistogram

query

PREFIX osmrel: <https://www.openstreetmap.org/relation/>
PREFIX osm2rdfmember: <https://osm2rdf.cs.uni-freiburg.de/rdf/member#>
SELECT ?role (COUNT(?member) as ?count)
WHERE {
  osmrel:10492086 osmrel:member ?member .
  ?member osm2rdfmember:role ?role .
}
GROUP BY ?role
ORDER BY DESC(?count)

try it!

result

role count
member 624
platform 31
stop 26