Difference between revisions of "Template:SPARQLPredicateGraph"
Jump to navigation
Jump to search
Line 45: | Line 45: | ||
{ # The caption's edges: | { # The caption's edges: | ||
INCLUDE %predicates. | INCLUDE %predicates. | ||
− | BIND(? | + | BIND(?subjectValue AS ?item1). |
− | BIND(? | + | BIND(?objectValue AS ?item2). |
BIND(?predicateRGB AS ?rgb). | BIND(?predicateRGB AS ?rgb). | ||
} | } |
Revision as of 09:01, 21 May 2019
- defaultView:Graph
SELECT ?item1 ?item1Label ?rgb ?item2 ?item2Label ?link WITH {
SELECT ?predicateFilterValue ?predicateFilterValueRGB WHERE { VALUES (?predicateFilterValue ?predicateFilterValueRGB) { {{{filter_values_colors}}} } }
} AS %predicateFilterValues WITH {
SELECT ?predicate ?subjectValue ?objectValue ?predicateRGB WHERE { VALUES (?predicate ?subjectValue ?objectValue ?predicateRGB) { {{{predicates_subjects_objects_colors}}} } }
} AS %predicates WITH {SELECT ?node ?nodeRGB WHERE {
?node {{{node_condition}}}. ?node {{{predicate}}} ?predicateFilterValue. INCLUDE %predicateFilterValues. BIND(?predicateFilterValueRGB AS ?nodeRGB) }
} AS %nodes WITH {SELECT ?subject ?object ?edgeRGB WHERE {
INCLUDE %predicates. ?subject {{{predicate}}} ?subjectValue. ?object {{{predicate}}} ?objectValue. ?subject ?predicate ?object. # This is filtering for each edge twice, potentially a huge waste: |E|*|V| instead of |V| ?subject {{{node_condition}}}. ?object {{{node_condition}}}. BIND(?predicateRGB as ?edgeRGB) }
} AS %edges WHERE {
{ # The caption's nodes: INCLUDE %predicateFilterValues. BIND(?predicateFilterValue AS ?item1). BIND(?predicateValueRGB AS ?rgb). } UNION { # The caption's edges: INCLUDE %predicates. BIND(?subjectValue AS ?item1). BIND(?objectValue AS ?item2). BIND(?predicateRGB AS ?rgb). } UNION { INCLUDE %nodes. BIND(?node AS ?item1). BIND(?nodeRGB AS ?rgb). } UNION { INCLUDE %edges. BIND(?subject AS ?item1). BIND(?object AS ?item2). BIND(?edgeRGB AS ?rgb). } SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
} LIMIT 10000