Dreams:pattern-index

From DREAMS
Revision as of 09:19, 16 November 2022 by Fnielsen (talk | contribs) (→‎Patterns: Add report PDF link)
Jump to navigation Jump to search

Patterns

PREFIX dreams: <https://dreams.wikibase.cloud/entity/>
PREFIX dreamst: <https://dreams.wikibase.cloud/prop/direct/>
PREFIX dreamsp: <https://dreams.wikibase.cloud/prop/>
PREFIX dreamspsv: <https://dreams.wikibase.cloud/prop/statement/value/> 

SELECT
  ?pattern ?patternLabel
  (CONCAT("#pattern/", SUBSTR(STR(?pattern), 38)) AS ?patternUrl)

  ?subject ?subjectLabel ?subjectUrl

  ?object ?objectLabel ?objectUrl

  ?recipient ?recipientLabel ?recipientUrl

  ?quote 
  ?project_phase ?project_phaseLabel
  ?project_type ?project_typeLabel

  ?report ?reportLabel
  (CONCAT("#report/", SUBSTR(STR(?report), 38)) AS ?reportUrl)

  ?link ?linkUrl

WHERE {
  ?pattern dreamst:P2 dreams:Q263 .

  OPTIONAL {
    ?pattern dreamst:P33 ?subject .
    ?subject rdfs:label ?subject_label .
    FILTER(LANG(?subject_label) = 'da')
    BIND(CONCAT("#effect/", SUBSTR(STR(?subject), 38)) AS ?subjectUrl)
  }
  OPTIONAL { ?pattern dreamst:P47 ?subject_text }
  BIND(COALESCE(?subject, ?subject_text, "") AS ?subject)
  BIND(CONCAT(COALESCE(?subject_label, ""), ' ("', ?subject_text, '")') AS ?subjectLabel)
    
  OPTIONAL {
    ?pattern dreamst:P34 ?object . 
    ?object rdfs:label ?object_label .
    FILTER (LANG(?object_label) = 'da')
    BIND(CONCAT("#effect/", SUBSTR(STR(?object), 38)) AS ?objectUrl)
  }
  OPTIONAL { ?pattern dreamst:P49 ?object_text }
  BIND(COALESCE(?object, ?object_text) AS ?object)
  BIND(CONCAT(COALESCE(?object_label, ""), ' ("', ?object_text, '")') AS ?objectLabel)

  OPTIONAL {
    ?pattern dreamst:P55 ?recipient .
    ?recipient rdfs:label ?recipient_label .
    FILTER (LANG(?recipient_label) = 'da')
    BIND(CONCAT("#effect/", SUBSTR(STR(?recipient), 38)) AS ?recipientUrl)
  }
  OPTIONAL { ?pattern dreamst:P54 ?recipient_text }
  BIND(COALESCE(?recipient, ?recipient_text) AS ?recipient)
  BIND(CONCAT(COALESCE(?recipient_label, ""), ' ("', ?recipient_text, '")') AS ?recipientLabel)

  OPTIONAL { ?pattern dreamst:P18 ?quote . }
  OPTIONAL { ?pattern dreamst:P20 ?report . }
  OPTIONAL { ?pattern dreamst:P19 ?project_phase . }
  OPTIONAL { ?pattern dreamst:P16 ?project_type . }
  
  OPTIONAL {
    ?pattern dreamst:P20 ?report .
    ?report dreamst:P40 ?miljøportal .
    OPTIONAL { ?pattern dreamst:P46 ?page }
    BIND(IF(BOUND(?page), CONCAT(?page, " ↗"), " ↗") AS ?link)
    BIND(CONCAT("https://daieproddreamspdfsto.blob.core.windows.net/files/", STR(?miljøportal), 
                IF(BOUND(?page), CONCAT("#page=", ?page), "")) AS ?linkUrl)
  }
  
  SERVICE wikibase:label { bd:serviceParam wikibase:language "da,en". }

}

Reports

PREFIX dreams: <https://dreams.wikibase.cloud/entity/>
PREFIX dreamst: <https://dreams.wikibase.cloud/prop/direct/>
PREFIX dreamsp: <https://dreams.wikibase.cloud/prop/>
PREFIX dreamspsv: <https://dreams.wikibase.cloud/prop/statement/value/> 

SELECT 
  ?number_of_patterns

  ?report 
  ?reportLabel
  (CONCAT("#report/", SUBSTR(STR(?report), 38)) AS ?reportUrl)
          
WITH {
  SELECT
    (COUNT(?pattern) AS ?number_of_patterns)
    ?report
  WHERE {
    ?pattern dreamst:P2 dreams:Q263 ;
             dreamst:P20 ?report .
  }
  GROUP BY ?report
} AS %result
WHERE {
  INCLUDE %result
  SERVICE wikibase:label { bd:serviceParam wikibase:language "da,en". }
}
ORDER BY DESC(?number_of_patterns)