NOSAD-POC

From oswald
Revision as of 01:45, 6 November 2022 by Oswald (talk | contribs)
Jump to navigation Jump to search

NOSAD Wikibase POC

Misc

SPARQL Frågor

Lista föreläsningar i omvänd tidsordning med ID, titel, videolänk osv.

#title: Presentations latest first with ID, event, title, start time, video link etc.
# https://beyond-notability.wikibase.cloud/wiki/Project:SPARQL/examples
PREFIX wd: <https://oswald.wikibase.cloud/entity/>
PREFIX wds: <https://oswald.wikibase.cloud/entity/statement/>
PREFIX wdv: <https://oswald.wikibase.cloud/value/>
PREFIX wdt: <https://oswald.wikibase.cloud/prop/direct/>
PREFIX p: <https://oswald.wikibase.cloud/prop/>
PREFIX ps: <https://oswald.wikibase.cloud/prop/statement/>
PREFIX pq: <https://oswald.wikibase.cloud/prop/qualifier/>
# 2022-w42-7
SELECT
?dt ?sess ?sessLabel ?agenda ?start
?pres ?presLabel ?org ?orgLabel ?spkr ?spkrLabel
?vurl_t ?yturl_t
WHERE {
  ?pres wdt:P12 wd:Q157 . # a Presentation
  OPTIONAL{?pres wdt:P14 ?org .}
  OPTIONAL{?pres wdt:P20 ?sess .}
  OPTIONAL{?sess wdt:P22 ?dt .}
  OPTIONAL{?pres wdt:P23 ?start .}
  OPTIONAL{?sess wdt:P16 ?vurl .}
  OPTIONAL{?sess wdt:P21 ?ytid .}
  OPTIONAL{?pres wdt:P13 ?spkr .}
  OPTIONAL{?sess wdt:P17 ?agenda .}
  # BIND expressions referring to variables need to be outside OPTIONAL for some reason?
  BIND(COALESCE(?start, 0) AS ?t0).
  BIND(IRI(CONCAT(STR(?vurl), IF(?t0 > 0, CONCAT("#t=", STR(?t0)), ""))) AS ?vurl_t) .
  BIND(IRI(CONCAT("https://www.youtube.com/watch?v=", ?ytid, IF(?t0 > 0, CONCAT("#t=", STR(?t0)), ""))) AS ?yturl_t) .

  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "sv,no,en-gb,en".
  }
}
ORDER BY DESC(?dt) ?sessLabel (!BOUND(?start)) ?start ?presLabel

Try it!

Hämta alla organisationer i Oswald som har koppling WD och hämta från WD med SPARQL federation deras Organisationsnummer, visa det på Quickstatement format

#title:  org hos NOSAD där WD har Organisationsnr P6460 info som saknas lokalt P37 som QuickStatement - SPARQL Federation
PREFIX od: <https://oswald.wikibase.cloud/entity/>
PREFIX odt: <https://oswald.wikibase.cloud/prop/direct/>

SELECT DISTINCT ?Oswald ("P37" AS ?P) ?orgnr WHERE {

  VALUES ?Orgobj {
    od:Q76
  }
  ?org odt:P12 ?Orgobj.
  ?org odt:P2 ?WDs.
  BIND(URI(REPLACE(STR(?WDs), "https://www.wikidata.org/wiki/", "http://www.wikidata.org/entity/")) AS ?WD)
  SERVICE <https://query.wikidata.org/sparql> {
    ?WD wdt:P6460 ?wdorg.
    BIND(CONCAT("\"", str(?wdorg), "\"") AS ?orgnr)
  }
  BIND(REPLACE(STR(?org), "https://oswald.wikibase.cloud/entity/", "") AS ?Oswald)
  SERVICE wikibase:label { bd:serviceParam wikibase:language "sv,en". }
}
ORDER BY (?spkrOswaldLabel)

Try it!