Submissions for SKKG

Description

The SKKG Knowledge Graph represents the diverse collections of the Stiftung für Kunst, Kultur und Geschichte, linking artworks, cultural heritage objects, historical artefacts, and curiosities across themes, periods, and provenance. With a strong focus on Swiss art of the 19th and 20th centuries and everyday European life, it models relationships between objects, historical events, exhibitions, and loans. The KG supports discovery of items in the “Sammlung digital” online catalogue and tracks national and international loans as well as SKKG-funded projects, providing a structured view of one of Switzerland’s largest private collections.

3 of 3 submissions
#89

Natural Language Question

Which artists are most often exhibited together?

SPARQL Query

PREFIX skkgonto: <https://ontology.skkg.ch/>
PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
PREFIX la: <https://linked.art/ns/terms/>

PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT ?artistA ?artistA_label ?artistB ?artistB_label (COUNT(DISTINCT ?exhibition) AS ?coExhibitionCount)
WHERE {
  {
    SELECT DISTINCT ?exhibition ?artistA ?artistB
    WHERE {
      ?exhibition a skkgonto:Exhibition ;
                  crm:P16_used_specific_object ?exhibited_objects .
      ?exhibited_objects la:has_member ?o1, ?o2 .
      FILTER(?o1 != ?o2)

      # artists for each exhibited object
      ?o1 crm:P108i_was_produced_by/crm:P9_consists_of/crm:P14_carried_out_by ?a1 .
      ?o2 crm:P108i_was_produced_by/crm:P9_consists_of/crm:P14_carried_out_by ?a2 .
      FILTER(?a1 != ?a2)

      # normalize unordered artist pairs so (A,B) == (B,A)
      BIND( IF(STR(?a1) < STR(?a2), ?a1, ?a2) AS ?artistA )
      BIND( IF(STR(?a1) < STR(?a2), ?a2, ?a1) AS ?artistB )
    }
  }
  ?artistA skos:prefLabel ?artistA_label .
  ?artistB skos:prefLabel ?artistB_label .
}
GROUP BY ?artistA ?artistB ?artistA_label ?artistB_label 
ORDER BY DESC(?coExhibitionCount) ?artistA_label ?artistB_label
#90

Natural Language Question

What is the exhibition with the highest number of exhibited objects?

Source

SPARQL Query

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX la: <https://linked.art/ns/terms/>
PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
PREFIX skkgonto: <https://ontology.skkg.ch/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

SELECT ?exhibition ?exhibition_name ?exhibition_place ?exhibition_date ?number_of_exhibited_objects  WHERE {
  ?exhibition skos:prefLabel ?exhibition_name .
  OPTIONAL {
    ?exhibition crm:P7_took_place_at/skos:prefLabel ?exhibition_place .
  }
  OPTIONAL {
    ?exhibition crm:P4_has_time-span ?exhibition_date_entity .
    ?exhibition_date_entity crm:P82a_begin_of_the_begin ?exhibition_date_begin ;
                            crm:P82b_end_of_the_end ?exhibition_date_end .
    BIND (CONCAT(xsd:string(?exhibition_date_begin), " - ", xsd:string(?exhibition_date_end)) AS ?exhibition_date)
  }
  {
    SELECT ?exhibition (COUNT(DISTINCT ?object) AS ?number_of_exhibited_objects) WHERE {
      ?exhibition a skkgonto:Exhibition ;
                  crm:P16_used_specific_object ?exhibited_objects .
      ?exhibition crm:P7_took_place_at ?exhibition_place .
      ?exhibited_objects la:has_member ?object .
    }
    GROUP BY ?exhibition
  }
}
ORDER BY DESC(?number_of_exhibited_objects)
LIMIT 1
#91

Natural Language Question

Which pairs of objects are most often exhibited together?

Source

SPARQL Query

PREFIX skkgonto: <https://ontology.skkg.ch/>
PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
PREFIX la: <https://linked.art/ns/terms/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT ?objectA ?objectA_name ?objectB ?objectB_name (COUNT(DISTINCT ?exhibition) AS ?coExhibitionCount) WHERE {
  {
    SELECT DISTINCT ?exhibition ?objectA ?objectB WHERE {
      ?exhibition a skkgonto:Exhibition ;
                  crm:P16_used_specific_object ?exhibited_objects ;
                  crm:P7_took_place_at ?exhibition_place .
      ?exhibited_objects la:has_member ?o1, ?o2 .
      FILTER (?o1 != ?o2)
      # normalize unordered pairs so (A,B) == (B,A)
      BIND (IF(STR(?o1) < STR(?o2),?o1,?o2) AS ?objectA)
      BIND (IF(STR(?o1) < STR(?o2),?o2,?o1) AS ?objectB)
    }
  }
  ?objectA skos:prefLabel ?objectA_name .
  ?objectB skos:prefLabel ?objectB_name .
}
GROUP BY ?objectA ?objectB ?objectA_name ?objectB_name 
ORDER BY DESC(?coExhibitionCount)
LIMIT 100
Odoma and Graphia logos

Quagga has been developed by Odoma ↗ for Graphia ↗

Funded by the European Union (grant ID: 1O1188018 ↗)

Contact Github FAQ