Dreams:report

From DREAMS
Revision as of 16:11, 8 December 2022 by Fnielsen (talk | contribs) (→‎Patterns: fix query with DISTINCT)
Jump to navigation Jump to search

Report data

PREFIX target: <https://dreams.wikibase.cloud/entity/Q158>
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 DISTINCT ?description
  ?value ?valueLabel ?valueUrl
WHERE {
  BIND(target: AS ?work)
  {
    BIND(1 AS ?order)
    BIND("Title" AS ?description)
    ?work dreamst:P1 ?value .
  }
  UNION
  {
    BIND(2 AS ?order)
    BIND("Author" AS ?description)
    target: dreamst:P24 ?iri .
    BIND(SUBSTR(STR(?iri), 38) AS ?q) 
    ?iri rdfs:label ?value . 
    FILTER (LANG(?value) = 'da')
    BIND(CONCAT("#author/", ?q) AS ?valueUrl)
  }
  UNION
  {
    BIND(2.5 AS ?order)
    BIND("Language" AS ?description)
    ?work dreamst:P11 ?iri .
    ?iri rdfs:label ?value_string .
    FILTER (LANG(?value_string) = 'da')
    BIND(STR(?value_string) AS ?value)
  }
  UNION
  {
    BIND(6 AS ?order)
    BIND("Publication date" AS ?description)
    ?work dreamsp:P6 / dreamspsv:P6 ?publication_date_value .
    ?publication_date_value wikibase:timePrecision ?time_precision ;
                            wikibase:timeValue ?publication_date .
    BIND(IF(?time_precision = 9, YEAR(?publication_date), xsd:date(?publication_date)) AS ?value)
  }
  UNION
  {
    BIND(7 AS ?order)
    BIND("Publisher" AS ?description)
    ?work dreamst:P26 ?iri .
    BIND(SUBSTR(STR(?iri), 38) AS ?q) 
    ?iri rdfs:label ?value_string . 
    FILTER (LANG(?value_string) = 'da')
    BIND(COALESCE(?value_string, ?q) AS ?value)
    BIND(CONCAT("#publisher/", ?q) AS ?valueUrl)
  }
  UNION
  {
    BIND(10 AS ?order)
    BIND("Project type" AS ?description)
    ?work dreamst:P16 ?value .
    BIND(CONCAT("#projecttype/", SUBSTR(STR(?value), 38)) AS ?valueUrl)
  }
  UNION
  {
    BIND(21 AS ?order)
    BIND("Scholia" AS ?description)
    ?work dreamst:P3 ?value_ .
    BIND(CONCAT(STR(?value_), " ↗") AS ?value)
    BIND(CONCAT("https://scholia.toolforge.org/work/", STR(?value_)) AS ?valueUrl)
  }
  UNION
  {
    BIND(22 AS ?order)
    BIND("Miljøportal" AS ?description)
    ?work dreamst:P40 ?value_ .
    BIND(CONCAT(STR(?value_), " ↗") AS ?value)
    BIND(CONCAT("https://daieproddreamspdfsto.blob.core.windows.net/files/", STR(?value_)) AS ?valueUrl)
  }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],da,en". }
} 
ORDER BY ?order


Patterns

PREFIX target: <https://dreams.wikibase.cloud/entity/Q406>
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

  ?significance ?significanceLabel

  ?mitigation ?mitigationLabel ?mitigationUrl

  ?quote 

  ?project_phase ?project_phaseLabel
  (CONCAT("#projectphase/", SUBSTR(STR(?project_phase), 38)) AS ?project_phaseUrl)  

  ?project_type ?project_typeLabel
  (CONCAT("#projecttype/", SUBSTR(STR(?project_type), 38)) AS ?project_typeUrl)  

  ?link ?linkUrl

WITH {
  SELECT DISTINCT 
    ?pattern
    ?subject ?subjectLabel ?subjectUrl
    ?object ?objectLabel ?objectUrl
    ?recipient ?recipientLabel ?recipientUrl
    ?significance
    ?mitigation ?mitigationLabel ?mitigationUrl
    ?quote
    ?project_phase
    ?project_type
    ?link ?linkUrl
  WHERE {
    ?pattern dreamst:P2 dreams:Q263 ;
             dreamst:P20 target: .

    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(?subject_text, " (", COALESCE(?subject_label, ""), ")") 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(?object_text, " (", COALESCE(?object_label, ""), ")") 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(?recipient_text, " (", COALESCE(?recipient_label, ""), ")") AS ?recipientLabel)
  
    OPTIONAL {
      ?pattern dreamst:P56 ?mitigation .
      ?mitigation rdfs:label ?mitigation_label .
      FILTER (LANG(?mitigation_label) = 'da')
      BIND(CONCAT("#effect/", SUBSTR(STR(?mitigation), 38)) AS ?mitigationUrl)
    }
    OPTIONAL { ?pattern dreamst:P53 ?mitigation_text }
    BIND(COALESCE(?mitigation, ?mitigation_text) AS ?mitigation)
    BIND(CONCAT(?mitigation_text, " (", COALESCE(?mitigation_label, ""), ")") AS ?mitigationLabel)

    OPTIONAL { ?pattern dreamst:P18 ?quote . }
   
    OPTIONAL { ?pattern dreamst:P19 ?project_phase . }
    
    OPTIONAL { ?pattern dreamst:P16 ?project_type1 . }
    OPTIONAL { ?pattern dreamst:P20 / dreamst:P16 ?project_type2 . }
    BIND(COALESCE(?project_type1, ?project_type2) AS ?project_type)
                 
    OPTIONAL { ?pattern dreamst:P21 ?significance } # / dreamst:P44 ?symbol . }
    # BIND(IF(BOUND(?symbol), ?symbol, "❓") AS ?significance)

    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)
    }
  }
} AS %result
WHERE {
  INCLUDE %result
  SERVICE wikibase:label { bd:serviceParam wikibase:language "da,en". }
}


Locations

SPARQL | query= PREFIX target: <https://dreams.wikibase.cloud/entity/Q158> PREFIX dreams: <https://dreams.wikibase.cloud/entity/> PREFIX dreamst: <https://dreams.wikibase.cloud/prop/direct/> PREFIX dreamsp: <https://dreams.wikibase.cloud/prop/> PREFIX dreamspr: <https://dreams.wikibase.cloud/prop/reference/> PREFIX dreamsps: <https://dreams.wikibase.cloud/prop/statement/> PREFIX prov: <http://www.w3.org/ns/prov#>

SELECT

 ?location ?locationLabel
 (CONCAT("#location/", SUBSTR(STR(?location), 38)) AS ?locationUrl)
 ?locationDescription
 ?quote

WHERE {

 target: dreamsp:P12 ?location_statement .
 ?location_statement dreamsps:P12 ?location .
 OPTIONAL {
   ?location_statement prov:wasDerivedFrom / dreamspr:P18 ?quote .
 }
 
 SERVICE wikibase:label { bd:serviceParam wikibase:language "da,en". }

} }}

Citations

SPARQL | query= PREFIX target: <https://dreams.wikibase.cloud/entity/Q100> 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

 ?title
 ("Scholia ↗" AS ?scholia) 
 ?scholiaUrl

WHERE {

 target: dreamst:P3 ?wikidata_q .
 BIND(IRI(CONCAT("http://www.wikidata.org/entity/", ?wikidata_q)) AS ?wikidata)
 
 SERVICE <https://query.wikidata.org/sparql> {
   ?wikidata wdt:P2860 ?cited .
   OPTIONAL {
     ?cited wdt:P1476 ?title .
   }
   BIND(CONCAT("https://scholia.toolforge.org/work/", SUBSTR(STR(?cited), 32)) AS ?scholiaUrl)
 }

} }}

Related works from co-citations

SPARQL | query= PREFIX target: <https://dreams.wikibase.cloud/entity/Q100> PREFIX dreams: <https://dreams.wikibase.cloud/entity/> PREFIX dreamst: <https://dreams.wikibase.cloud/prop/direct/>

SELECT

 ?score
 ?title ?titleUrl
 ("Scholia ↗" AS ?scholia) ?scholiaUrl
 

WHERE {

 { 
   SELECT 
     (COUNT(*) AS ?score)
     ?work ?title
   WHERE {
     target: dreamst:P3 ?wikidata_q .
     BIND(IRI(CONCAT("http://www.wikidata.org/entity/", ?wikidata_q)) AS ?wikidata)
 
     SERVICE <https://query.wikidata.org/sparql> {
       ?wikidata (^wdt:P2860 | wdt:P2860) / (^wdt:P2860 | wdt:P2860)? ?work .
       FILTER (?wikidata != ?work)
       ?work wdt:P1476 ?title .
     }
   }
   GROUP BY ?work ?title 
   ORDER BY DESC(?count)
   LIMIT 500
 }
 BIND(CONCAT("https://scholia.toolforge.org/work/", SUBSTR(STR(?work), 32)) AS ?scholiaUrl)
 BIND(SUBSTR(STR(?work), 32) AS ?work_q)
 OPTIONAL {
   ?dreams_work dreamst:P3 ?work_q .
   BIND(CONCAT("#report/", SUBSTR(STR(?dreams_work), 38)) AS ?titleUrl)
 }

} ORDER BY DESC(?score) DESC(?titleUrl)

}}