query-2b6de5d5f0b8fdc3d44ddf293baec775
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
- https://query.wikidata.org/sparql
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