query-96ee446f9f7ca01579cebbf9abaae3a9
TODO
Use at
- https://query.wikidata.org/sparql
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wdno: <http://www.wikidata.org/prop/novalue/>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX ps: <http://www.wikidata.org/prop/statement/>
PREFIX p: <http://www.wikidata.org/prop/>
SELECT ?item ?author ?country ?link WHERE {
?item wdt:P31 wd:Q7725634 . # get some stuff
OPTIONAL {?item p:P50 ?stat . ?stat ps:P50 ?author . FILTER (!wikibase:isSomeValue(?author)) # get ?author and exclude <unknown value>
BIND(REPLACE(STR(?author),"http://www.wikidata.org/entity/","") AS ?authorQID) # get the ?author QId in the form Q12345
}
OPTIONAL {?item wdt:P495 ?country .
BIND(REPLACE(STR(?country),"http://www.wikidata.org/entity/","") AS ?countryQID)
}
BIND(IF( BOUND(?authorQID) && BOUND(?countryQID) , CONCAT(?authorQID," ",?countryQID),
IF(BOUND(?authorQID),?authorQID,
IF(BOUND(?countryQID),?countryQID,""))) as ?link)
FILTER NOT EXISTS {?item a wdno:P50} # reject ?author = <no value>
} limit 100
Query found at
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
v2("?author"):::projected
v4("?authorQID")
v5("?country"):::projected
v6("?countryQID")
v1("?item"):::projected
v7("?link"):::projected
v3("?stat")
c4(["wd:Q7725634"]):::iri
c2(["p:novalue/P50"]):::iri
f0[["not "]]
subgraph f0e0["Exists Clause"]
e0v1 --"a"--> e0c2
e0v1("?item"):::projected
e0c2(["p:novalue/P50"]):::iri
end
f0--EXISTS--> f0e0
f0 --> v1
f0 --> c1
f0 --> c2
v1 --"a"--> c2
v1 --"p:direct/P31"--> c4
subgraph optional0["(optional)"]
style optional0 fill:#bbf,stroke-dasharray: 5 5;
v1 -."p:P50".-> v3
v3 --"p:statement/P50"--> v2
bind1[/"replace(str(?author),'http://www.wikidata.org/entity/','')"/]
v2 --o bind1
bind1 --as--o v4
end
subgraph optional1["(optional)"]
style optional1 fill:#bbf,stroke-dasharray: 5 5;
v1 -."p:direct/P495".-> v5
bind2[/"replace(str(?country),'http://www.wikidata.org/entity/','')"/]
v5 --o bind2
bind2 --as--o v6
end
bind3[/"if(bound(?authorQID)bound(?countryQID),concat(?authorQID,' ',?countryQID),if(bound(?authorQID),?authorQID,if(bound(?countryQID),?countryQID,'')))"/]
v4 --o bind3
v6 --o bind3
bind3 --as--o v7