query-e233b6955e1af4450ad67e319c120156
(4) Graph of lineal ancestors/descendants: Daoguang EmperorNo.4 (2019.11.05T0933 created)
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 bd: <http://www.bigdata.com/rdf#>
# find lineal blood relatives of Daoguang Emperor
#defaultView:Graph
SELECT DISTINCT ?lineal ?linealLabel ?birthdate ?image ?parent ?parentLabel ?edgeLabel
WHERE {
# define Daoguang (Q334351)'s ?lineal as
# any father (P22) or mother (P25)'s father or mother's..., i.e., lineal ancestors,
# or any child (P40)'s child's..., i.e., lineal descendants
wd:Q334351 ((wdt:P22|wdt:P25)*|wdt:P40*) ?lineal
# optional: define ?lineal's father (P22) or mother (P25) as ?parent
OPTIONAL {?lineal (wdt:P22|wdt:P25) ?parent
# To eliminate lineal descendant's parent who is not Doguang's lineal blood relative,
# require that Daoguang (Q334351) is among ?parent's lineal ancestors
{?parent (wdt:P22|wdt:P25)* wd:Q334351}
# OR among ?parent's lineal descendants
UNION {?parent wdt:P40* wd:Q334351}
# To avoid showing any other relation than P22 (father) and P25 (mother),
# define ?relation as P22 or P25
VALUES ?relation {wdt:P22 wdt:P25}
# and ?relation is from ?lineal to ?parent,
?lineal ?relation ?parent.
# then show ?relation on graph edges
?edge wikibase:directClaim ?relation;
a wikibase:Property}
# optional: show ?lineal's birthdate (P569), which only appears in table, not graph
OPTIONAL {?lineal wdt:P569 ?birthdate}
# optional: show ?lineal's image (P18), which appears directly in graph, and as link in table
OPTIONAL {?lineal wdt:P18 ?image}
# show label in simplified Chinese (zh-hans) as default, and English when no default label exists
SERVICE wikibase:label { bd:serviceParam wikibase:language "zh-hans,en". }
}
Query found at
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
v5("?birthdate"):::projected
v4("?edge")
v6("?image"):::projected
v1("?lineal"):::projected
v2("?parent"):::projected
v3("?relation")
c7(["wikibase:Property"]):::iri
c1(["wd:Q334351"]):::iri
c13(["zh-hans,en"]):::literal
c11(["bd:serviceParam"]):::iri
subgraph union0[" Union "]
subgraph union0l[" "]
style union0l fill:#abf,stroke-dasharray: 3 3;
c1 --"wdt:P40"--> v1
end
subgraph union0r[" "]
style union0r fill:#abf,stroke-dasharray: 3 3;
subgraph union1[" Union "]
subgraph union1l[" "]
style union1l fill:#abf,stroke-dasharray: 3 3;
c1 --"wdt:P25"--> v1
end
subgraph union1r[" "]
style union1r fill:#abf,stroke-dasharray: 3 3;
c1 --"wdt:P22"--> v1
end
union1r <== or ==> union1l
end
end
union0r <== or ==> union0l
end
subgraph optional0["(optional)"]
style optional0 fill:#bbf,stroke-dasharray: 5 5;
subgraph union2[" Union "]
subgraph union2l[" "]
style union2l fill:#abf,stroke-dasharray: 3 3;
v1 -."wdt:P25".-> v2
end
subgraph union2r[" "]
style union2r fill:#abf,stroke-dasharray: 3 3;
v1 --"wdt:P22"--> v2
end
union2r <== or ==> union2l
end
subgraph union3[" Union "]
subgraph union3l[" "]
style union3l fill:#abf,stroke-dasharray: 3 3;
v2 --"wdt:P40"--> c1
end
subgraph union3r[" "]
style union3r fill:#abf,stroke-dasharray: 3 3;
subgraph union4[" Union "]
subgraph union4l[" "]
style union4l fill:#abf,stroke-dasharray: 3 3;
v2 --"wdt:P25"--> c1
end
subgraph union4r[" "]
style union4r fill:#abf,stroke-dasharray: 3 3;
v2 --"wdt:P22"--> c1
end
union4r <== or ==> union4l
end
end
union3r <== or ==> union3l
end
bind0[/VALUES ?relation/]
bind0-->v3
bind00(["wdt:P22"])
bind00 --> bind0
bind01(["wdt:P25"])
bind01 --> bind0
v1 -->v3--> v2
v4 --"wikibase:directClaim"--> v3
v4 --"a"--> c7
end
subgraph optional1["(optional)"]
style optional1 fill:#bbf,stroke-dasharray: 5 5;
v1 -."wdt:P569".-> v5
end
subgraph optional2["(optional)"]
style optional2 fill:#bbf,stroke-dasharray: 5 5;
v1 -."wdt:P18".-> v6
end
subgraph s1["http://wikiba.se/ontology#label"]
style s1 stroke-width:4px;
c11 --"wikibase:language"--> c13
end