A set of SPARQL examples that are used in different TGX resources
License: https://www.gnu.org/licenses/gpl-3.0
Uses method in: https://github.com/WDscholia/scholia/tree/master/scholia/app/templates/project_timeline.sparql
Project aspect: timeline
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
#defaultView:Timeline{"hide": ["?end_time", "?start_time"]}
PREFIX target: <http://www.wikidata.org/entity/Q27990087>
SELECT DISTINCT ?start_time ?end_time ?description WHERE {
{
target: (wdt:P571 | wdt:P580) ?start_time ;
(wdt:P576 | wdt:P582) ?end_time .
BIND("Project time" AS ?description)
}
UNION
{
target: (^wdt:P1344 | wdt:P710)+ ?project .
?project (wdt:P571 | wdt:P580) ?start_time ;
(wdt:P576 | wdt:P582) ?end_time .
?project rdfs:label ?projectName .
FILTER (lang(?projectName) = "en")
BIND(?projectName AS ?description)
}
UNION
{
?work wdt:P859/(wdt:P1344|^wdt:P710)* target: ;
wdt:P577 ?start_time .
BIND("Publication" AS ?description)
}
UNION
{
?event wdt:P859 target: .
?event wdt:P585 | wdt:P580 ?start_time .
BIND("📅 Sponsored event" AS ?description)
}
}
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
v8("?description"):::projected
v2("?end_time"):::projected
v7("?event")
v5("?project")
v4("?projectName")
v1("?start_time"):::projected
v6("?work")
a1((" "))
c1([http://www.wikidata.org/entity/Q27990087]):::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;
v7 --"p:direct/P859"--> c1
subgraph union3[" Union "]
subgraph union3l[" "]
style union3l fill:#abf,stroke-dasharray: 3 3;
v7 --"p:direct/P580"--> v1
end
subgraph union3r[" "]
style union3r fill:#abf,stroke-dasharray: 3 3;
v7 --"p:direct/P585"--> v1
end
union3r <== or ==> union3l
end
bind0[/"'📅 Sponsored event'"/]
bind0 --as--o v8
end
subgraph union2r[" "]
style union2r fill:#abf,stroke-dasharray: 3 3;
v6 --"p:direct/P859"--> a1
subgraph union4[" Union "]
subgraph union4l[" "]
style union4l fill:#abf,stroke-dasharray: 3 3;
c1 --"p:direct/P710"--> a1
end
subgraph union4r[" "]
style union4r fill:#abf,stroke-dasharray: 3 3;
a1 --"p:direct/P1344"--> c1
end
union4r <== or ==> union4l
end
v6 --"p:direct/P577"--> v1
bind1[/"'Publication'"/]
bind1 --as--o v8
end
union2r <== or ==> union2l
end
end
subgraph union1r[" "]
style union1r fill:#abf,stroke-dasharray: 3 3;
f2[["?projectName = 'en'"]]
f2 --> v4
subgraph union5[" Union "]
subgraph union5l[" "]
style union5l fill:#abf,stroke-dasharray: 3 3;
c1 --"p:direct/P710"--> v5
end
subgraph union5r[" "]
style union5r fill:#abf,stroke-dasharray: 3 3;
v5 --"p:direct/P1344"--> c1
end
union5r <== or ==> union5l
end
subgraph union6[" Union "]
subgraph union6l[" "]
style union6l fill:#abf,stroke-dasharray: 3 3;
v5 --"p:direct/P580"--> v1
end
subgraph union6r[" "]
style union6r fill:#abf,stroke-dasharray: 3 3;
v5 --"p:direct/P571"--> v1
end
union6r <== or ==> union6l
end
subgraph union7[" Union "]
subgraph union7l[" "]
style union7l fill:#abf,stroke-dasharray: 3 3;
v5 --"p:direct/P582"--> v2
end
subgraph union7r[" "]
style union7r fill:#abf,stroke-dasharray: 3 3;
v5 --"p:direct/P576"--> v2
end
union7r <== or ==> union7l
end
v5 --"rdfs:label"--> v4
bind3[/"?projectName"/]
v4 --o bind3
bind3 --as--o v8
end
union1r <== or ==> union1l
end
end
subgraph union0r[" "]
style union0r fill:#abf,stroke-dasharray: 3 3;
subgraph union8[" Union "]
subgraph union8l[" "]
style union8l fill:#abf,stroke-dasharray: 3 3;
c1 --"p:direct/P580"--> v1
end
subgraph union8r[" "]
style union8r fill:#abf,stroke-dasharray: 3 3;
c1 --"p:direct/P571"--> v1
end
union8r <== or ==> union8l
end
subgraph union9[" Union "]
subgraph union9l[" "]
style union9l fill:#abf,stroke-dasharray: 3 3;
c1 --"p:direct/P582"--> v2
end
subgraph union9r[" "]
style union9r fill:#abf,stroke-dasharray: 3 3;
c1 --"p:direct/P576"--> v2
end
union9r <== or ==> union9l
end
bind4[/"'Project time'"/]
bind4 --as--o v8
end
union0r <== or ==> union0l
end