Project:MyData/Cameroon/Mapping

From Wikibase Personal data
Jump to navigation Jump to search

Results

PREFIX pdio: <https://wiki.personaldata.io/entity/>
PREFIX pdiot: <https://wiki.personaldata.io/prop/direct/>
PREFIX pdiop: <https://wiki.personaldata.io/prop/>
PREFIX pdiops: <https://wiki.personaldata.io/prop/statement/>
PREFIX pdiopq: <https://wiki.personaldata.io/prop/qualifier/>
#defaultView:Graph
SELECT ?item1 ?item1Label ?rgb ?item2 ?item2Label
WITH {
  SELECT ?predicateFilterValue ?predicateFilterValueRGB WHERE {
    VALUES (?predicateFilterValue ?predicateFilterValueRGB) {
       (pdio:Q401 "EEEEEE")(pdio:Q646 "222288")
    }  
  }
}
AS %predicateFilterValues
WITH {
  SELECT ?predicate ?subjectValue ?objectValue ?predicateRGB  WHERE {
    VALUES (?predicate ?subjectValue ?objectValue ?predicateRGB) {
     (pdiot:P111 pdio:Q401 pdio:Q646 "EEEEEE")(pdiot:P111 pdio:Q646 pdio:Q401 "222288")
    }
  }
}
AS %predicates
WITH {SELECT ?node ?nodeRGB WHERE {
    ?node pdiot:P55 pdio:Q1918.
    ?node pdiot:P3 ?predicateFilterValue.
    INCLUDE %predicateFilterValues.
    BIND(?predicateFilterValueRGB AS ?nodeRGB)
  }
}
AS %nodes
WITH {SELECT ?subject ?object ?edgeRGB WHERE {
    INCLUDE %predicates.
    ?subject pdiot:P3 ?subjectValue.
    ?object pdiot:P3 ?objectValue.
    ?subject ?predicate ?object.
    # This is filtering for each edge twice, potentially a huge waste: |E|*|V| instead of |V|
    ?subject pdiot:P55 pdio:Q1918.
    ?object pdiot:P55 pdio:Q1918.
    BIND(?predicateRGB as ?edgeRGB)
  }
} AS %edges
WHERE {

  {  
     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

Cameroon MyData ecosystem (embedded)