query-e3e128447d20995d0846aa4c3f678693

rq turtle/ttl

land borders of current countries in descending order of length SELECT DISTINCT ?item ?itemLabel ?c1Label ?c2Label ?len ?lenUnitLabel ?normalised WHERE { ?item wdt:P31 wd:Q12413618 . # international border ?item wdt:P31 wd:Q15104814 . # land border

# countries ?item wdt:P17 ?c1. ?item wdt:P17 ?c2.

# show each border only once BIND (xsd:integer(substr(str(?c1), 33)) as ?c1Num). BIND (xsd:integer(substr(str(?c2), 33)) as ?c2Num). filter(?c1Num < ?c2Num )

# border length and unit ?item wdt:P2043 ?len. ?item p:P2043 ?lenStat . ?lenStat psv:P2043 ?valuenode. optional {?valuenode wikibase:quantityUnit ?lenUnit}

?lenStat psn:P2043 ?lenNorm. ?lenNorm wikibase:quantityAmount ?normalised . # get normalised length value

?lenStat ps:P2043 ?len . # make sure the statement we are using has the same value as the one returned by wdt, ie is best available

# lack of end time means current optional {?item wdt:P582 ?endTime}. filter(?c1 != ?c2 && !bound(?endTime) ) SERVICE wikibase:label { bd:serviceParam wikibase:language "en". } } order by desc(?len)

Use at

PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX psv: <http://www.wikidata.org/prop/statement/value/>
PREFIX psn: <http://www.wikidata.org/prop/statement/value-normalized/>
PREFIX ps: <http://www.wikidata.org/prop/statement/>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX bd: <http://www.bigdata.com/rdf#>
# land borders of current countries in descending order of length
SELECT DISTINCT ?item ?itemLabel ?c1Label ?c2Label ?len ?lenUnitLabel ?normalised WHERE {
  ?item wdt:P31 wd:Q12413618 . # international border
  ?item wdt:P31 wd:Q15104814 . # land border

  # countries
  ?item wdt:P17 ?c1.
  ?item wdt:P17 ?c2.

  # show each border only once
  BIND (xsd:integer(substr(str(?c1), 33)) as ?c1Num).
  BIND (xsd:integer(substr(str(?c2), 33)) as ?c2Num).
  filter(?c1Num < ?c2Num )

  # border length and unit
  ?item wdt:P2043 ?len.
  ?item p:P2043 ?lenStat .
  ?lenStat psv:P2043 ?valuenode.
  optional {?valuenode wikibase:quantityUnit ?lenUnit}

  ?lenStat psn:P2043 ?lenNorm.
  ?lenNorm wikibase:quantityAmount ?normalised .
  # get normalised length value

  ?lenStat ps:P2043 ?len .
  # make sure the statement we are using has the same value as the one returned by wdt, ie is best available

  # lack of end time means current
  optional {?item wdt:P582 ?endTime}.
  filter(?c1 != ?c2 && !bound(?endTime) )
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
} order by desc(?len)

Query found at

graph TD classDef projected fill:lightgreen; classDef literal fill:orange; classDef iri fill:yellow; v2("?c1") v8("?c1Num") v3("?c2") v8("?c2Num") v4("?endTime") v7("?item"):::projected v1("?len"):::projected v11("?lenNorm") v8("?lenStat") v10("?lenUnit") v12("?normalised"):::projected v9("?valuenode") c2(["wd:Q12413618"]):::iri c3(["wd:Q15104814"]):::iri c16(["en"]):::literal c14(["bd:serviceParam"]):::iri f0[["?c1 != ?c2not bound(?endTime)"]] f0 --> v2 f0 --> v3 f0 --> v4 f1[["?c1Num < ?c2Num"]] f1 --> v8 f1 --> v8 v7 --"p:direct/P31"--> c2 v7 --"p:direct/P31"--> c3 v7 --"p:direct/P17"--> v2 v7 --"p:direct/P17"--> v3 bind2[/"http://www.w3.org/2001/XMLSchema#integer(substring(str(?c1),'33^^xsd:integer'))"/] v2 --o bind2 bind2 --as--o v8 bind3[/"http://www.w3.org/2001/XMLSchema#integer(substring(str(?c2),'33^^xsd:integer'))"/] v3 --o bind3 bind3 --as--o v8 v7 --"p:direct/P2043"--> v1 v7 --"p:P2043"--> v8 v8 --"p:statement/value/P2043"--> v9 subgraph optional0["(optional)"] style optional0 fill:#bbf,stroke-dasharray: 5 5; v9 -."wikibase:quantityUnit".-> v10 end v8 --"p:statement/value-normalized/P2043"--> v11 v11 --"wikibase:quantityAmount"--> v12 v8 --"p:statement/P2043"--> v1 subgraph optional1["(optional)"] style optional1 fill:#bbf,stroke-dasharray: 5 5; v7 -."p:direct/P582".-> v4 end subgraph s1["http://wikiba.se/ontology#label"] style s1 stroke-width:4px; c14 --"wikibase:language"--> c16 end