query-3d5dc279b87cb10f595a57cc9eff11ea

rq turtle/ttl

(15) Graph of gene pool (extended blood relatives): Jia BaoyuNo.15 (2019.11.08T2133 created)

Use at

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 Jia Baoyu's gene pool, the extended nuclear family without spouse relation
# This pool includes extended blood relatives, i.e., not only those who share a common ancestor,
# but also those whose descendant's ancestor's descendant's... share a common ancestor.
# This pool has all historical genes, including those have been extinct. 
# If every person has his/her own Wikidata item, this query can find all of them,
# including Neanderthals (even if their genes had been extinct) and Peking Man (as long as they interbred with Homo sapiens).
#defaultView:Graph
SELECT ?gene ?geneLabel ?birthdate ?image ?relative ?relativeLabel ?edgeLabel
WHERE {
  # define ?gene as Jia Baoyu (Q8428650)'s any father (P22) or mother (P25) or child (P40) or sibling (P3373)'s father or mother or child or sibling's...
  wd:Q8428650 (wdt:P22|wdt:P25|wdt:P40|wdt:P3373)* ?gene
  ### Note: Theoretically sibling (P3373) does not need to be used since it can always be replaced with parent-child relation.
  ### And from the biological perspective, sibling relation is not as close as parent-child relation. Sibling, just like spouse and nuclear family, is socially constructed.
  ### But sometimes no item exists for parent. Sibling has to be used for convenience.
  # optional: define ?gene's father (P22) or mother (P25) or child (P40) or sibling (P3373) as ?relative
  optional {?gene (wdt:P22|wdt:P25|wdt:P40|wdt:P3373) ?relative
            # To avoid showing any other relation than relative relation
            # define ?relation as only father (P22) or mother (P25) or child (P40) or sibling (P3373)
            VALUES ?relation {wdt:P22 wdt:P25 wdt:P40 wdt:P3373}
            # ?relation is from ?gene to ?relative
            ?gene ?relation ?relative.
            # show ?relation on graph edges
            ?edge wikibase:directClaim ?relation;
               a wikibase:Property}
  # optional: show ?gene's birthdate (P569), which only appears in table, not graph
  optional {?gene wdt:P569 ?birthdate}
  # optional: show ?gene's image (P18), which appears directly in graph, and as link in table
  optional {?gene 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") v1("?gene"):::projected v6("?image"):::projected v3("?relation") v2("?relative"):::projected c8(["wikibase:Property"]):::iri c14(["zh-hans,en"]):::literal c1(["wd:Q8428650"]):::iri c12(["bd:serviceParam"]):::iri subgraph union0[" Union "] subgraph union0l[" "] style union0l fill:#abf,stroke-dasharray: 3 3; 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; c1 --"wdt:P3373"--> v1 end subgraph union2r[" "] style union2r fill:#abf,stroke-dasharray: 3 3; c1 --"wdt:P40"--> v1 end union2r <== or ==> union2l end end subgraph union1r[" "] style union1r fill:#abf,stroke-dasharray: 3 3; c1 --"wdt:P25"--> v1 end union1r <== or ==> union1l end end subgraph union0r[" "] style union0r fill:#abf,stroke-dasharray: 3 3; c1 --"wdt:P22"--> v1 end union0r <== or ==> union0l end subgraph optional0["(optional)"] style optional0 fill:#bbf,stroke-dasharray: 5 5; 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; subgraph union5[" Union "] subgraph union5l[" "] style union5l fill:#abf,stroke-dasharray: 3 3; v1 -."wdt:P3373".-> v2 end subgraph union5r[" "] style union5r fill:#abf,stroke-dasharray: 3 3; v1 --"wdt:P40"--> v2 end union5r <== or ==> union5l end end subgraph union4r[" "] style union4r fill:#abf,stroke-dasharray: 3 3; v1 --"wdt:P25"--> v2 end union4r <== or ==> union4l end end subgraph union3r[" "] style union3r fill:#abf,stroke-dasharray: 3 3; v1 --"wdt:P22"--> v2 end union3r <== or ==> union3l end bind0[/VALUES ?relation/] bind0-->v3 bind00(["wdt:P22"]) bind00 --> bind0 bind01(["wdt:P25"]) bind01 --> bind0 bind02(["wdt:P40"]) bind02 --> bind0 bind03(["wdt:P3373"]) bind03 --> bind0 v1 -->v3--> v2 v4 --"wikibase:directClaim"--> v3 v4 --"a"--> c8 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; c12 --"wikibase:language"--> c14 end