Changes
Jump to navigation
Jump to search
Line 1:
Line 1:
− +
Line 18:
Line 18:
− +
− +
Line 31:
Line 31:
− +
− +
+
Line 45:
Line 46:
− +
− +
+
no edit summary
#defaultView:Graph
#defaultView:Graph
SELECT ?item1 ?item1Label ?rgb ?item2 ?item2Label ?link
SELECT ?item1 ?item1Label ?rgb ?item2 ?item2Label
WITH {
WITH {
SELECT ?predicateFilterValue ?predicateFilterValueRGB WHERE {
SELECT ?predicateFilterValue ?predicateFilterValueRGB WHERE {
AS %predicates
AS %predicates
WITH {SELECT ?node ?nodeRGB WHERE {
WITH {SELECT ?node ?nodeRGB WHERE {
?node {{{node_condition}}}.
{{#if: {{{node_condition|}}}|?node {{{node_condition}}}.||}}
?node {{{filter_predicate}}} ?predicateFilterValue.
?node {{{predicate}}} ?predicateFilterValue.
INCLUDE %predicateFilterValues.
INCLUDE %predicateFilterValues.
BIND(?predicateFilterValueRGB AS ?nodeRGB)
BIND(?predicateFilterValueRGB AS ?nodeRGB)
?subject ?predicate ?object.
?subject ?predicate ?object.
# This is filtering for each edge twice, potentially a huge waste: |E|*|V| instead of |V|
# This is filtering for each edge twice, potentially a huge waste: |E|*|V| instead of |V|
?subject {{{node_condition}}}.
{{#if: {{{node_condition|}}}|?subject {{{node_condition}}}.||}}
?object {{{node_condition}}}.
{{#if: {{{node_condition|}}}|?object {{{node_condition}}}.||}}
BIND(?predicateRGB as ?edgeRGB)
BIND(?predicateRGB as ?edgeRGB)
}
}
} AS %edges
} AS %edges
WHERE {
WHERE {
{{#ifeq:{{{legend|}}}|true|
{ # The caption's nodes:
{ # The caption's nodes:
INCLUDE %predicateFilterValues.
INCLUDE %predicateFilterValues.
{ # The caption's edges:
{ # The caption's edges:
INCLUDE %predicates.
INCLUDE %predicates.
BIND(?subjectClass AS ?item1).
BIND(?subjectValue AS ?item1).
BIND(?objectClass AS ?item2).
BIND(?objectValue AS ?item2).
BIND(?predicateRGB AS ?rgb).
BIND(?predicateRGB AS ?rgb).
}
}
UNION
UNION
||}}
{
{
INCLUDE %nodes.
INCLUDE %nodes.