@@ -30,8 +30,7 @@ Observera att enklare frågor också kan besvaras med hjälp av [sök-API:et](..
3030PREFIX : <https://id.kb.se/vocab/>
3131
3232SELECT (COUNT(DISTINCT ?novel) as ?count) {
33- ?gf (:exactMatch|^:exactMatch|:sameAs|^:sameAs)* marc:Novel .
34- ?novel :instanceOf/:genreForm ?gf ;
33+ ?novel :instanceOf/:category/(:broader|:broadMatch)* <https://id.kb.se/term/saogf/Romaner> ;
3534 :publication [ :year "2019" ; :country ctry:sw ] .
3635}
3736```
@@ -47,16 +46,17 @@ för att inte behöva skriva ut varje trippel i sin helhet.
4746### Vilka språk finns Selma Lagerlöf översatt till?
4847``` sparql
4948PREFIX : <https://id.kb.se/vocab/>
49+ PREFIX rel: <https://id.kb.se/relator/>
5050
5151SELECT DISTINCT ?language ?langName {
5252 [] :contribution [ a :PrimaryContribution ;
5353 :role rel:author ;
5454 :agent <https://libris.kb.se/qn247n18248vs58#it> ] ;
55- :translationOf/a :Work ;
55+ :translationOf [] ;
5656 :language ?language .
5757 ?language :prefLabel ?langName .
5858
59- FILTER(lang(?langName) = 'sv')
59+ FILTER(lang(?langName) = 'sv')
6060}
6161```
6262** Kommentar:**
@@ -85,34 +85,22 @@ Vi kan nämligen ta reda på verkets originalspråk via `:translationOf`, därem
8585PREFIX : <https://id.kb.se/vocab/>
8686
8787SELECT DISTINCT ?spanishInstance ?spanishTitle ?swedishTitle {
88- VALUES ?genreForm {
89- marc:FictionNotFurtherSpecified
90- marc:Drama
91- marc:Essay
92- marc:Novel
93- marc:HumorSatiresEtc
94- marc:Letter
95- marc:ShortStory
96- marc:MixedForms
97- marc:Poetry
98- }
99-
100- ?gf (:exactMatch|^:exactMatch|:sameAs|^:sameAs)* ?genreForm .
10188
10289 ?spanishInstance :publication/:year "1990" ;
10390 :instanceOf ?work .
104- ?work :genreForm ?gf ;
91+ ?work :category/:broader* <https://id.kb.se/term/saogf/Sk%C3%B6nlitteratur> ;
10592 :language lge:spa ;
10693 :translationOf [ a :Work ; :language lge:swe ] .
94+
10795 OPTIONAL {
10896 ?spanishInstance :hasTitle [ a :Title ; :mainTitle ?spanishTitle ] .
10997 }
11098 OPTIONAL {
11199 ?work :hasTitle [ a :Title ; :mainTitle ?swedishTitle ] .
112100 }
113- }
101+ }
114102```
115- ** Kommentar:**
103+ ** Kommentar:**
116104Tyvärr är det inte möjligt att få fram vilka svenska verk som översatts till spanska då det kräver att verket ligger länkat under ` bf2:translationOf ` . I dagsläget får vi nöja oss med spanska instanser som översatts _ från_ svenska.
117105
118106Det vore även önskvärt att kunna ange _ en_ term för _ all_ skönlitteratur. Visserligen finns ` saogf:Sk%C3%B6nlitteratur ` men den har hittills för lite användning och dess relation till marc-termerna är inte heller definierad.
@@ -122,22 +110,18 @@ Det vore även önskvärt att kunna ange _en_ term för _all_ skönlitteratur. V
122110PREFIX : <https://id.kb.se/vocab/>
123111
124112SELECT DISTINCT ?cartoonist (CONCAT(?givenName, " ", ?familyName) as ?name) {
125- VALUES ?genreForm {
126- marc:ComicStrip
127- marc:ComicOrGraphicNovel
128- }
129113
130- ?gf (:exactMatch|^:exactMatch|:sameAs|^:sameAs)* ?genreForm .
131- [] :instanceOf [ :genreForm ?gf ;
114+ ?gf :broader* <https://id.kb.se/term/saogf/Tecknade%20serier> .
115+ [] :instanceOf [ :category ?gf ;
132116 :language lge:swe ;
133- :translationOf/a :Work ;
117+ :translationOf/a/rdfs:subClassOf* :Work ;
134118 :contribution [ a :PrimaryContribution ;
135119 :agent ?cartoonist ] ] ;
136- :publication/:year ?year .
120+ :publication/:year ?year .
137121 OPTIONAL {
138122 ?cartoonist :givenName ?givenName ;
139123 :familyName ?familyName .
140- }
124+ }
141125
142126 FILTER(str(?year) >= "1980" && str(?year) < "2020")
143127 FILTER(isIri(?cartoonist))
@@ -149,19 +133,20 @@ Serietecknare som ligger som lokala entiteter (blanknoder) under `:agent` filtre
149133### Hur många franska barnböcker översättes till svenska under 1980-2020?
150134``` sparql
151135PREFIX : <https://id.kb.se/vocab/>
136+ PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
152137
153138SELECT (COUNT(DISTINCT ?book) AS ?count) {
154139 ?audience (:exactMatch|^:exactMatch|:sameAs|^:sameAs)* marc:Juvenile .
155- ?book :issuanceType :Monograph ;
156- :instanceOf [ a : Text ;
140+ ?book :instanceOf [ a :Monograph ;
141+ :category <https://id.kb.se/term/rda/ Text> ;
157142 :intendedAudience ?audience ;
158143 :language lge:swe ;
159144 :translationOf [ a :Work ;
160145 :language lge:fre ] ] ;
161146 :publication/:year ?year .
162147
163148 FILTER(str(?year) >= "1980" && str(?year) < "2020")
164- }
149+ }
165150```
166151** Kommentar:**
167152Här frågar vi snarare efter antalet svenska resurser som översatts _ från_ franska. Det omvända kräver att verken ligger länkade under ` :translationOf ` , vilket inte är fallet i dagsläget.
@@ -186,25 +171,25 @@ SELECT ?year ?audience ?genre (COUNT(?book) AS ?count) {
186171 lge:sms
187172 lge:sjk
188173 }
189-
190- ?book :issuanceType :Monograph ;
191- :instanceOf [ a :Text ;
174+ ?book :instanceOf [ a :Monograph ;
192175 :language ?language ;
193176 :intendedAudience ?audience ;
194- :genreForm ?genre ] ;
177+ :category ?genre ] ;
195178 :publication/:year ?year .
196179
197- FILTER(isIri(?genre))
180+ FILTER(isIri(?genre) && EXISTS { ?genre a :GenreForm } )
198181}
199182GROUP BY ?year ?audience ?genre
200183ORDER BY ?year ?audience ?genre
201184```
202- ** Kommentar:**
185+ ** Kommentar:**
203186Det finns ingen URI som representerar alla samiska språk, utan vi får inkludera samtliga varieteter.
204187
205188### Hur många facklitterära böcker gav förlaget Natur och Kultur ut mellan åren 1920-2000?
206189``` sparql
207190PREFIX : <https://id.kb.se/vocab/>
191+ PREFIX ktg: <https://id.kb.se/term/ktg/>
192+ PREFIX kbrda: <https://id.kb.se/term/rda/>
208193
209194SELECT (COUNT(DISTINCT ?book) AS ?count) {
210195 VALUES ?agentLabel {
@@ -214,10 +199,9 @@ SELECT (COUNT(DISTINCT ?book) AS ?count) {
214199 "Natur och Kultur"
215200 "N&K"
216201 }
217- ?gf (:exactMatch|^:exactMatch|:sameAs|^:sameAs)* marc:NotFictionNotFurtherSpecified .
218- ?book :issuanceType :Monograph ;
219- :instanceOf [ a :Text ;
220- :genreForm marc:NotFictionNotFurtherSpecified ] ;
202+ ?gf :broader* ktg:NonFictionLiterature . # saogf:Facklitteratur .
203+ ?book :instanceOf [ a :Monograph ;
204+ :category kbrda:Text, ?gf ] ;
221205 :publication [ a :PrimaryPublication ;
222206 :agent/:label ?agentLabel ;
223207 :year ?year ] .
@@ -232,10 +216,11 @@ Det vore önskvärt att kunna referera till en URI som representerar förlaget N
232216### Hur många böcker ges ut av egenutgivare varje år?
233217``` sparql
234218PREFIX : <https://id.kb.se/vocab/>
219+ PREFIX kbrda: <https://id.kb.se/term/rda/>
235220
236221SELECT ?year (COUNT(DISTINCT ?book) AS ?count) {
237- ?book :issuanceType :Monograph ;
238- :instanceOf/a :Text ;
222+ ?book :instanceOf [ a :Monograph ;
223+ :category kbrda :Text ] ;
239224 :publication [ a :PrimaryPublication ;
240225 :year ?year ] ;
241226 ^:itemOf/:hasComponent?/:cataloguersNote "nbegenutg" .
@@ -248,10 +233,9 @@ ORDER BY ?year
248233PREFIX : <https://id.kb.se/vocab/>
249234
250235SELECT ?year (COUNT(DISTINCT ?book) AS ?count) {
251- ?audience (:exactMatch|^:exactMatch|:sameAs|^:sameAs)* marc:Juvenile .
252- ?book :issuanceType :Monograph ;
253- :instanceOf [ a :Text ;
254- :intendedAudience marc:Juvenile ] ;
236+ ?book :instanceOf [ a :Monograph ;
237+ :category <https://id.kb.se/term/rda/Text> ;
238+ :intendedAudience marc:Juvenile ] ;
255239 :publication [ a :PrimaryPublication ;
256240 :country ctry:sw ;
257241 :year ?year ] .
@@ -268,8 +252,8 @@ Vill man undanta årtal som avviker från formen "yyyy" kan man lägga till det
268252PREFIX : <https://id.kb.se/vocab/>
269253
270254SELECT ?year (COUNT(DISTINCT ?book) AS ?count) {
271- ?book :issuanceType :Monograph ;
272- :instanceOf/a : Text ;
255+ ?book :instanceOf [ a :Monograph ;
256+ :category <https://id.kb.se/term/rda/ Text> ] ;
273257 :publication [ a :PrimaryPublication ;
274258 :country ctry:sw ;
275259 :year ?year ] .
@@ -283,8 +267,8 @@ ORDER BY ?year
283267PREFIX : <https://id.kb.se/vocab/>
284268
285269SELECT (COUNT(DISTINCT ?digiBook) AS ?count) {
286- ?digiBook :issuanceType :Monograph ;
287- :instanceOf/a : Text ;
270+ ?digiBook :instanceOf [ a :Monograph ;
271+ :category <https://id.kb.se/term/rda/ Text> ] ;
288272 :production/:date "2020" ;
289273 ^:mainEntity/:bibliography lib:DIGI .
290274}
@@ -327,9 +311,8 @@ Om utgivare var länkade skulle vi också få ett mer exakt resultat, tack vare
327311PREFIX : <https://id.kb.se/vocab/>
328312
329313SELECT (COUNT(DISTINCT ?book) AS ?count) {
330- ?audience (:exactMatch|^:exactMatch|:sameAs|^:sameAs)* marc:Juvenile .
331- ?book :issuanceType :Monograph ;
332- :instanceOf [ a :Text ;
314+ ?book :instanceOf [ a :Monograph ;
315+ :category <https://id.kb.se/term/rda/Text> ;
333316 :intendedAudience marc:Juvenile ;
334317 :language ?language ] ;
335318 :publication [ a :PrimaryPublication ;
@@ -378,9 +361,9 @@ SELECT (COUNT(DISTINCT ?instance) AS ?count) {
378361``` sparql
379362PREFIX : <https://id.kb.se/vocab/>
380363
381- SELECT ?month (COUNT(?instance) AS ?count) {
382- ?instance a :Print ;
383- :issuanceType :Monograph .
364+ SELECT ?month (COUNT(?instance) AS ?count) {
365+ ?instance a :PhysicalResource ;
366+ :instanceOf/a :Monograph .
384367 ?hold :itemOf ?instance ;
385368 :heldBy lib:S .
386369 ?holdMeta :mainEntity ?hold ;
@@ -399,11 +382,12 @@ Med katalogiserades menar vi här när beståndspost skapades. Svaret visar anta
399382``` sparql
400383PREFIX : <https://id.kb.se/vocab/>
401384
402- SELECT ?month (COUNT(DISTINCT ?instance) AS ?count) {
403- ?instance a :Electronic ;
404- :issuanceType :Serial .
385+ SELECT ?month (COUNT(DISTINCT ?instance) AS ?count) {
386+ ?instance a :DigitalResource ;
387+ :instanceOf ?work .
388+ ?work a :Serial .
405389 ?hold :itemOf ?instance ;
406- :heldBy lib:S .
390+ :heldBy <https://libris.kb.se/library/S> .
407391 ?holdMeta :mainEntity ?hold ;
408392 :created ?date .
409393
@@ -417,10 +401,12 @@ ORDER BY ?month
417401### Hur många monografier inom DDK 320 katalogiserades av Umeå universitetsbibliotek 2019?
418402``` sparql
419403PREFIX : <https://id.kb.se/vocab/>
404+ PREFIX lib: <https://libris.kb.se/library/>
420405
421- SELECT (COUNT(DISTINCT ?instance) AS ?count) {
422- ?instance :issuanceType :Monograph ;
423- :instanceOf/:classification [ a :ClassificationDdc ;
406+ SELECT (COUNT(DISTINCT ?instance) AS ?count) {
407+ ?instance :instanceOf ?work .
408+ ?work a :Monograph ;
409+ :classification [ a :ClassificationDdc ;
424410 :code ?code ] .
425411 ?hold :itemOf ?instance ;
426412 :heldBy lib:Q .
@@ -436,7 +422,7 @@ SELECT (COUNT(DISTINCT ?instance) AS ?count) {
436422``` sparql
437423PREFIX : <https://id.kb.se/vocab/>
438424
439- SELECT (COUNT(DISTINCT ?instance) AS ?count) {
425+ SELECT (COUNT(DISTINCT ?instance) AS ?count) {
440426 ?instance :instanceOf/:subject sao:Mission%C3%A4rer ;
441427 ^:itemOf ?hold .
442428 ?holdMeta :mainEntity ?hold ;
0 commit comments