query-2b6de5d5f0b8fdc3d44ddf293baec775

rq turtle/ttl

Geneve tramway southwards, you would spot oneways stations in the brown line 15. Has there been solutions to modelize that ? Other question : is there possibility to densify red dot when multiples lines are calling at the station (one line, small dot, multiples lines/transfer station, big dot) ? (Q107032253)Gare Cornavin , from map. If you look closely at this (Q3238583)Geneva tram route 15 Hello, I hope you are doing fine. Following your wonderful code, I'm guessing I've hit a snag, and perhaps you did too, with the The Geneve code :

Use at

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 ps: <http://www.wikidata.org/prop/statement/>
PREFIX pq: <http://www.wikidata.org/prop/qualifier/>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX bd: <http://www.bigdata.com/rdf#>
#defaultView:Map{"hide":["?coordinates", "?line", "?rgb"]}
SELECT DISTINCT ?coordinates ?line ?item ?itemLabel ?connectLabel ?image ?opening ?rgb 





WHERE { 
  {  {
  SELECT ?item (SAMPLE(?coordinates) AS ?coordinates)  (sample(?lat1) as ?lat1) (sample(?lon1) as ?lon1)
         WHERE {
    ?item wdt:P31 wd:Q2175765 ;
          wdt:P361 wd:Q676266 ;
          wdt:P81 wd:Q3238583 ;
          wdt:P625 ?coordinates ;
          p:P625 / psv:P625 / wikibase:geoLatitude ?lat1 ;
          p:P625 / psv:P625 / wikibase:geoLongitude ?lon1 . 
MINUS { ?item(wdt:P576|wdt:P582|wdt:P3999) ?dispar. }
MINUS { ?item wdt:P5817 ?interdit VALUES ?interdit {wd:Q811683 wd:Q63065035 wd:Q12377751 wd:Q30108381 wd:Q11639308} } 
  } GROUP BY ?item
}}  UNION {  {
  SELECT ?line ?connect ?rgb WHERE {
     {
  SELECT ?item (SAMPLE(?coordinates) AS ?coordinates)  (sample(?lat1) as ?lat1) (sample(?lon1) as ?lon1)
         WHERE {
    ?item wdt:P31 wd:Q2175765 ;
          wdt:P361 wd:Q676266 ;
          wdt:P81 wd:Q3238583 ;
          wdt:P625 ?coordinates ;
          p:P625 / psv:P625 / wikibase:geoLatitude ?lat1 ;
          p:P625 / psv:P625 / wikibase:geoLongitude ?lon1 . 
MINUS { ?item(wdt:P576|wdt:P582|wdt:P3999) ?dispar. }
MINUS { ?item wdt:P5817 ?interdit VALUES ?interdit {wd:Q811683 wd:Q63065035 wd:Q12377751 wd:Q30108381 wd:Q11639308} } 
  } GROUP BY ?item
}.
     { 
  SELECT ?nextstation (sample(?lat2) as ?lat2) (sample(?lon2) as ?lon2) WHERE {
    ?nextstation wdt:P31  wd:Q2175765 ;wdt:P81 wd:Q3238583;
                 wdt:P361 wd:Q676266 ;
                 p:P625 / psv:P625 / wikibase:geoLatitude ?lat2 ;
            p:P625 / psv:P625 / wikibase:geoLongitude ?lon2 .
  } GROUP BY ?nextstation
}.
    ?item p:P197 ?nextstationstatement .
    ?nextstationstatement ps:P197 ?nextstation ;
                          pq:P81 ?connect .
    ?connect                         wdt:P465 ?rgb.
    FILTER(STR(?item) < STR(?nextstation)) .
    BIND(CONCAT('LINESTRING (', STR(?lon1), ' ', STR(?lat1), ',', STR(?lon2), ' ', STR(?lat2), ')') AS ?str) .
    BIND(STRDT(?str, geo:wktLiteral) AS ?line)
 }
} }.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,de". } 
}

Query found at

graph TD classDef projected fill:lightgreen; classDef literal fill:orange; classDef iri fill:yellow; v11("?connect") v8("?coordinates"):::projected v5("?dispar") v8("?interdit") v1("?item"):::projected v8("?lat1") v10("?lat2") v14("?line"):::projected v8("?lon1") v10("?lon2") v7("?nextstation") v10("?nextstationstatement") v12("?rgb"):::projected v13("?str") a1((" ")) a2((" ")) a3((" ")) a4((" ")) a5((" ")) a6((" ")) a7((" ")) a8((" ")) a9((" ")) a10((" ")) a11((" ")) a12((" ")) c2(["wd:Q2175765"]):::iri c6(["wd:Q3238583"]):::iri c4(["wd:Q676266"]):::iri c23(["fr,de"]):::literal c21(["bd:serviceParam"]):::iri subgraph union0[" Union "] subgraph union0l[" "] style union0l fill:#abf,stroke-dasharray: 3 3; f0[["str(?item) < str(?nextstation)"]] f0 --> v1 f0 --> v7 v1 --"p:direct/P31"--> c2 v1 --"p:direct/P361"--> c4 v1 --"p:direct/P81"--> c6 v1 --"p:direct/P625"--> v8 v1 --"p:P625"--> a5 a5 --"p:statement/value/P625"--> a6 a6 --"wikibase:geoLatitude"--> v8 v1 --"p:P625"--> a7 a7 --"p:statement/value/P625"--> a8 a8 --"wikibase:geoLongitude"--> v8 subgraph minus1["MINUS"] style minus1 stroke-width:6px,fill:pink,stroke:red; subgraph union1[" Union "] subgraph union1l[" "] style union1l fill:#abf,stroke-dasharray: 3 3; subgraph union2[" Union "] subgraph union2l[" "] style union2l fill:#abf,stroke-dasharray: 3 3; v1 --"p:direct/P3999"--> v5 end subgraph union2r[" "] style union2r fill:#abf,stroke-dasharray: 3 3; v1 --"p:direct/P582"--> v5 end union2r <== or ==> union2l end end subgraph union1r[" "] style union1r fill:#abf,stroke-dasharray: 3 3; v1 --"p:direct/P576"--> v5 end union1r <== or ==> union1l end end subgraph minus2["MINUS"] style minus2 stroke-width:6px,fill:pink,stroke:red; v1 --"p:direct/P5817"--> v8 bind3[/VALUES ?interdit/] bind3-->v8 bind30(["wd:Q811683"]) bind30 --> bind3 bind31(["wd:Q63065035"]) bind31 --> bind3 bind32(["wd:Q12377751"]) bind32 --> bind3 bind33(["wd:Q30108381"]) bind33 --> bind3 bind34(["wd:Q11639308"]) bind34 --> bind3 end bind7[/"sample(?coordinates)"/] v8 --o bind7 bind7 --as--o v8 bind8[/"sample(?lat1)"/] v8 --o bind8 bind8 --as--o v8 bind9[/"sample(?lon1)"/] v8 --o bind9 bind9 --as--o v8 v7 --"p:direct/P31"--> c2 v7 --"p:direct/P81"--> c6 v7 --"p:direct/P361"--> c4 v7 --"p:P625"--> a9 a9 --"p:statement/value/P625"--> a10 a10 --"wikibase:geoLatitude"--> v10 v7 --"p:P625"--> a11 a11 --"p:statement/value/P625"--> a12 a12 --"wikibase:geoLongitude"--> v10 bind12[/"sample(?lat2)"/] v10 --o bind12 bind12 --as--o v10 bind13[/"sample(?lon2)"/] v10 --o bind13 bind13 --as--o v10 v1 --"p:P197"--> v10 v10 --"p:statement/P197"--> v7 v10 --"p:qualifier/P81"--> v11 v11 --"p:direct/P465"--> v12 bind14[/"concat('LINESTRING (',str(?lon1),' ',str(?lat1),',',str(?lon2),' ',str(?lat2),')')"/] v8 --o bind14 v8 --o bind14 v10 --o bind14 v10 --o bind14 bind14 --as--o v13 bind15[/"STRDT(?str,'geo:wktLiteral')"/] v13 --o bind15 bind15 --as--o v14 end subgraph union0r[" "] style union0r fill:#abf,stroke-dasharray: 3 3; v1 --"p:direct/P31"--> c2 v1 --"p:direct/P361"--> c4 v1 --"p:direct/P81"--> c6 v1 --"p:direct/P625"--> v8 v1 --"p:P625"--> a1 a1 --"p:statement/value/P625"--> a2 a2 --"wikibase:geoLatitude"--> v8 v1 --"p:P625"--> a3 a3 --"p:statement/value/P625"--> a4 a4 --"wikibase:geoLongitude"--> v8 subgraph minus16["MINUS"] style minus16 stroke-width:6px,fill:pink,stroke:red; subgraph union3[" Union "] subgraph union3l[" "] style union3l fill:#abf,stroke-dasharray: 3 3; subgraph union4[" Union "] subgraph union4l[" "] style union4l fill:#abf,stroke-dasharray: 3 3; v1 --"p:direct/P3999"--> v5 end subgraph union4r[" "] style union4r fill:#abf,stroke-dasharray: 3 3; v1 --"p:direct/P582"--> v5 end union4r <== or ==> union4l end end subgraph union3r[" "] style union3r fill:#abf,stroke-dasharray: 3 3; v1 --"p:direct/P576"--> v5 end union3r <== or ==> union3l end end subgraph minus17["MINUS"] style minus17 stroke-width:6px,fill:pink,stroke:red; v1 --"p:direct/P5817"--> v8 bind18[/VALUES ?interdit/] bind18-->v8 bind180(["wd:Q811683"]) bind180 --> bind18 bind181(["wd:Q63065035"]) bind181 --> bind18 bind182(["wd:Q12377751"]) bind182 --> bind18 bind183(["wd:Q30108381"]) bind183 --> bind18 bind184(["wd:Q11639308"]) bind184 --> bind18 end bind22[/"sample(?coordinates)"/] v8 --o bind22 bind22 --as--o v8 bind23[/"sample(?lat1)"/] v8 --o bind23 bind23 --as--o v8 bind24[/"sample(?lon1)"/] v8 --o bind24 bind24 --as--o v8 end union0r <== or ==> union0l end subgraph s1["http://wikiba.se/ontology#label"] style s1 stroke-width:4px; c21 --"wikibase:language"--> c23 end