Wikidata:Synia:artwork

From Wikidata
Jump to navigation Jump to search

Synia: Artwork

[edit]
PREFIX target: <http://www.wikidata.org/entity/Q21044790>

SELECT DISTINCT
  ?description ?descriptionLabel
  ?value ?valueLabel ?valueUrl
WHERE {
  {
    BIND(1 AS ?order)
    BIND(wd:Q216353 AS ?description)
    target: wdt:P1476 ?value .
  }
  UNION
  {
    BIND(2 AS ?order)
    BIND(wd:Q2500638 AS ?description)
    target: wdt:P170 ?value .
    BIND(CONCAT("#visualartist/", SUBSTR(STR(?value), 32)) AS ?valueUrl)
  }
  UNION
  {
    BIND(100 AS ?order)
    BIND(wd:Q2013 AS ?value)
    BIND(CONCAT("https://www.wikidata.org/wiki/", SUBSTR(STR(target:), 32)) AS ?valueUrl)
  }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
ORDER BY ?order
Try it!

Image

[edit]
#defaultView:ImageGrid

PREFIX target: <http://www.wikidata.org/entity/Q21044790>

SELECT 
  ?image 
WHERE {
  target: wdt:P18 ?image .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
Try it!
[edit]
PREFIX target: <http://www.wikidata.org/entity/Q21044790>

SELECT 
  ?score
  ?reasons

  ?artwork ?artworkLabel
  (CONCAT("#artwork/", SUBSTR(STR(?artwork), 32)) AS ?artworkUrl)
  ?artworkDescription

WITH {
  SELECT 
    (SUM(?score_) AS ?score)
    (GROUP_CONCAT(DISTINCT ?reason; separator=", ") AS ?reasons)
    ?artwork
  WHERE {
    {
      BIND(1 AS ?score_)
      BIND("collection" AS ?reason)
      target: wdt:P195 / ^wdt:P195 ?artwork
    }
    UNION
    {
      BIND(3 AS ?score_)
      BIND("artist" AS ?reason)
      target: wdt:P170 / ^wdt:P170 ?artwork
    }
    UNION
    {
      BIND(1 AS ?score_)
      BIND("depiction" AS ?reason)
      target: wdt:P180 / ^wdt:P180 ?artwork
    }
    UNION
    {
      BIND(2 AS ?score_)
      BIND("exhibition" AS ?reason)
      target: wdt:P608 / ^wdt:P608 ?artwork
    }
    UNION
    {
      BIND(2 AS ?score_)
      BIND("genre" AS ?reason)
      target: wdt:P136 / ^wdt:P136 ?artwork
    }
    UNION
    {
      BIND(1 AS ?score_)
      BIND("date" AS ?reason)
      target: wdt:P571 / ^wdt:P571 ?artwork
    }
    FILTER (target: != ?artwork)
  }
  GROUP BY ?artwork
  ORDER BY DESC(?score)
  LIMIT 500
} AS %artworks
WHERE {
  INCLUDE %artworks
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
ORDER BY DESC(?score)
Try it!