From 22d4d2dfd78cd4c27c2c2739400762e5b39fb912 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Tue, 30 Apr 2024 17:01:05 +0200 Subject: [PATCH 01/69] Add initial KB base-, form- and genre-types --- source/vocab/newtypes/kbgf.ttl | 330 ++++++++++++++++++ source/vocab/newtypes/kbtf.ttl | 599 +++++++++++++++++++++++++++++++++ 2 files changed, 929 insertions(+) create mode 100644 source/vocab/newtypes/kbgf.ttl create mode 100644 source/vocab/newtypes/kbtf.ttl diff --git a/source/vocab/newtypes/kbgf.ttl b/source/vocab/newtypes/kbgf.ttl new file mode 100644 index 00000000..71615541 --- /dev/null +++ b/source/vocab/newtypes/kbgf.ttl @@ -0,0 +1,330 @@ +prefix rdfs: +prefix owl: +prefix skos: +prefix bibo: +prefix sdo: +prefix ptg: +prefix bf: + +prefix kbv: +prefix : +prefix marc: +prefix div: +prefix s: +prefix t: +prefix f: +prefix g: + +prefix saogf: +prefix barngf: +prefix kbrda: + +base + +# It is a Genre if *either*: +# - it is not enough to determine under which BasicType or Form it belongs (it is a base); +# - *or* it represents a combination of BasicType or Form and a Genre (it adds a nuance). + +g:AbstractSummary a :Genre ; + rdfs:subClassOf t:NonBookText ; + :exactMatch saogf:Sammanfattningar ; + :inCollection f:informative-work ; + :seeAlso ; + :prefLabel "Sammanfattning"@sv , + "Abstract Summary"@en . + +g:Blog a :Genre ; + rdfs:subClassOf f:Website , + t:NonBookText ; + owl:equivalentClass sdo:Blog ; + :exactMatch saogf:Bloggar ; + :inCollection f:informative-work ; + :prefLabel "Blogg"@sv , + "Blog"@en . + +g:ConferenceMaterial a :Genre ; + rdfs:subClassOf t:NonBookText ; + :exactMatch saogf:Konferensmaterial ; + :inCollection div:ephemera , + f:informative-work ; + :prefLabel "Konferensmaterial"@sv , + "Conference Material"@en . + +g:CourseMaterial a :Genre ; + rdfs:subClassOf g:TeachingMaterial ; + :exactMatch saogf:Kursmaterial ; + :inCollection div:ephemera ; + :prefLabel "Kursmaterial"@sv , + "Course Material"@en . + +g:TeachingMaterial a :Genre ; + rdfs:seeAlso ; + :exactMatch saogf:L\%C3\%A4romedel , + saogf:Instruktions-\%20och\%20undervisningsmaterial ; + :prefLabel "Läromedel"@sv , + "Teaching Material"@en , + "Instruktions- och undervisningsmaterial"@sv . + +g:GraphicLiterature a :Genre ; + rdfs:subClassOf t:IllustratedWork , + g:Literature ; + :broadMatch kbrda:Text , + kbrda:Image ; + :exactMatch saogf:Tecknade\%20serier ; + :prefLabel "Tecknad serie"@sv , + "Graphic Literature"@en . + +g:HandSignedCommunication a :Genre ; + rdfs:subClassOf s:Visual, kbv:Text ; + :exactMatch saogf:TAKK ; + :prefLabel "TAKK"@sv , + "Hand-signed Communication"@en . + +g:Literature a :Genre ; + rdfs:subClassOf kbv:Text ; + :prefLabel "Litteratur"@sv , + "Literature"@en . + +g:Journal a :Genre ; + rdfs:subClassOf t:Periodical ; + :prefLabel "Vetenskaplig tidskrift"@sv , + "Journal"@en . + +g:JournalIssue a :Genre ; + rdfs:subClassOf t:Issue ; + :broadMatch g:Journal ; + :prefLabel "Vetenskapstidskriftssnummer"@sv , + "Journal Issue"@en . + +g:Lecture a :Genre ; + rdfs:subClassOf g:TeachingMaterial ; + :exactMatch saogf:F\%C3\%B6rel\%C3\%A4sningar ; + :prefLabel "Föreläsning"@sv , + "Lecture"@en . + +g:Magazine a :Genre ; + rdfs:subClassOf t:Periodical ; + :prefLabel "Magasin"@sv , + "Magazine"@en . + +g:MagazineIssue a :Genre ; + rdfs:subClassOf t:Issue ; + :broadMatch t:Magazine ; + :prefLabel "Magasin-nummer"@sv , + "Magazine Issue"@en . + +g:MusicRadioProgram a :Genre ; + rdfs:subClassOf f:AudioProgram , + kbv:Music ; + :prefLabel "Musikradioprogram"@sv , + "Music Radio Program"@en . + +g:Newspaper a :Genre ; + rdfs:subClassOf t:Periodical ; + :exactMatch saogf:Dagstidningar ; + :prefLabel "Dagstidning"@sv , + "Newspaper"@en . + +g:NewspaperIssue a :Genre ; + rdfs:subClassOf t:Issue ; + :broadMatch t:Newspaper ; + :prefLabel "Dagstidningsnummer"@sv , + "Newspaper Issue"@en . + +g:Pamphlet a :Genre ; + rdfs:subClassOf f:Broschure ; + :exactMatch saogf:Pamfletter ; + :inCollection div:ephemera ; + :prefLabel "Pamflett"@sv , + "Pamphlet"@en . + +g:Podcast a :Genre ; + rdfs:subClassOf f:AudioProgram ; + :prefLabel "Podcast"@sv , + "Podcast"@en . + +g:RadioProgram a :Genre ; + rdfs:subClassOf f:AudioProgram ; + :exactMatch saogf:Radioprogram ; + :prefLabel "Radioprogram"@sv , + "Radio Program"@en . + +g:ReferenceWork a :Genre ; + rdfs:subClassOf kbv:Text ; + owl:equivalentClass bibo:ReferenceSource ; + :exactMatch saogf:Referensverk ; + :inCollection f:informative-work ; + :seeAlso ; + :prefLabel "Referensverk"@sv , + "Reference Work"@en . + +g:RolePlayingGame a :Genre ; + rdfs:subClassOf f:PuzzleOrGame ; + :exactMatch saogf:Rollspel ; + :prefLabel "Rollspel"@sv , + "Roleplaying Game"@en . + +g:SoundEffectBook a :Genre ; + rdfs:subClassOf t:SoundBook ; + :exactMatch saogf:B\%C3\%B6cker\%20med\%20ljudeffekter ; + :prefLabel "Bok med ljudeffekt"@sv , + "Sound-effect Book"@en . + +g:Standard a :Genre ; + rdfs:subClassOf g:ReferenceWork ; + owl:equivalentClass bibo:Standard ; + :exactMatch saogf:Standarder ; + :prefLabel "Standard"@sv , + "Standard"@en . + +g:Statistics a :Genre ; + rdfs:subClassOf g:ReferenceWork ; + :exactMatch saogf:Statistik ; + :prefLabel "Statistik"@sv , + "Statistics"@en . + +g:Timetable a :Genre ; + rdfs:subClassOf f:Tables , + f:Ephemera ; + :exactMatch saogf:Tidtabeller ; + :prefLabel "Tidtabell"@sv , + "Timetable"@en . + +#g:Patent +# :prefLabel "Patent"@sv, "Patent"@en . + +#g:LegalDocument +# :prefLabel "Juridiskt material"@sv, "Legal Document"@en . + +#g:LegalDocument a :Genre ; +# rdfs:subClassOf kbv:Text ; +# owl:equivalentClass bibo:LegalDocument ; +# :exactMatch saogf:Juridiskt\%20material . + +#g:Patent a :Genre ; +# rdfs:subClassOf kbv:Text ; +# owl:equivalentClass bibo:Patent ; +# :exactMatch saogf:Patent ; +# :inCollection . + +#g:RareText :exactMatch saogf:Texter . + +#g:Debate a :Genre ; +# rdfs:subClassOf t:NonBookText ; +# :exactMatch saogf:Debatter . + +#t:AdventCalendar a :Form ; +# :exactMatch saogf:Adventskalendrar ; +# rdfs:subClassOf t:Calendar . + +#g:ReligiousWork a :Form ; +# :exactMatch saogf:Religi\%C3\%B6sa\%20verk . + +#g:Biography a :Form ; +# :exactMatch saogf:Biografier . + +#g:Essay a :Form ; +# :exactMatch saogf:Ess\%C3\%A4er . + +# TODO: SerialPublication someValuesFrom t:Yearbook +#t:Yearbook a :Form ; +# :exactMatch saogf:\%C3\%85rsb\%C3\%B6cker ; +# rdfs:subClassOf t:SerialPublication . + +#:PhraseBook a :Form ; +# :exactMatch saogf:Parl\%C3\%B6rer . + +#:Offentligt_tryck a :Form ; +# :exactMatch saogf:Offentligt\%20tryck . + +#:CommemorativeWork a :Form ; +# :exactMatch saogf:Minnesbevarande\%20verk . + +#:Debattinlägg a :Form ; +# :exactMatch saogf:Debattinl\%C3\%A4gg . + +#:RecordOrDeed a :Form ; +# :exactMatch saogf:Handlingar\%20\%28dokument\%29 . + +#:Examination a :Form ; +# :exactMatch saogf:Prov\%20och\%20examinationer . + +#:Lucköppningskalendrar a :Form ; +# :exactMatch saogf:Luck\%C3\%B6ppningskalendrar . + +#:PressAnnouncement a :Form ; +# :exactMatch saogf:Pressmeddelanden . + +#:MiniatureBook a :Form ; +# :exactMatch saogf:Miniatyrb\%C3\%B6cker . + +#:MechanicalBook a :Form ; +# :exactMatch saogf:Mekaniska\%20b\%C3\%B6cker . + +#:Pysselböcker a :Form ; +# :exactMatch saogf:Pysselb\%C3\%B6cker . + +#:Målarböcker a :Form ; +# :exactMatch saogf:Målarb\%C3\%B6cker . + +#:GuideBook a :Form ; +# :exactMatch saogf:Guideb\%C3\%B6cker . + +#:Samhällsinformation a :Form ; +# :exactMatch saogf:Samh\%C3\%A4llsinformation . + +#:Chronicle a :Form ; +# :exactMatch saogf:Annaler\%20och\%20kr\%C3\%B6nikor . + +#:RecreationalWork a :Form ; +# :exactMatch saogf:Tidsf\%C3\%B6rdriv . + +#:PopupBook a :Form ; +# :exactMatch saogf:Pop-up-b\%C3\%B6cker . + +#:Cookbook a :Form ; +# :exactMatch saogf:Kokb\%C3\%B6cker . + +#:Recept a :Form ; +# :exactMatch saogf:Recept . + +#:DiningMenu a :Form ; +# :exactMatch saogf:Matsedlar . + +#saogf:Dokument\%C3\%A4ra\%20serier a :GenreForm ; +# :prefLabel "Dokumentära serier" ; +# :broader saogf:Tecknade\%20serier . + +#t:RethoricalSpeech a :Form ; +# :exactMatch saogf:Tal\%20\%28retorik\%29 . + +#t:SourceMaterial a :Form ; +# :exactMatch saogf:K\%C3\%A4llmaterial ; +# :inCollection . + +#t:DiscursiveWork a :Form ; +# :closeMatch saogf:Verk\%20med\%20samtalsliknande\%20karakt\%C3\%A4r . + +#t:Interview a :Form ; +# owl:equivalentClass bibo:Interview ; +# :exactMatch saogf:Intervjuer . + +#t:Reportage a :Form ; +# owl:equivalentClass bibo:Report ; +# :exactMatch saogf:Reportage . + +#t:Survey a :Form ; +# :exactMatch saogf:Unders\%C3\%B6kningar ; +# :inCollection . + +#t:Correspondence a :Form ; +# :exactMatch saogf:Korrespondens . + +#t:Diary a :GenreForm ; +# rdfs:subClassOf kbv:Text ; +# :exactMatch saogf:Dagb\%C3\%B6cker . + +#t:Ballad a :GenreForm ; +# rdfs:subClassOf kbv:WorkHub ; +# :closeMatch saogf:Visor . + diff --git a/source/vocab/newtypes/kbtf.ttl b/source/vocab/newtypes/kbtf.ttl new file mode 100644 index 00000000..78041032 --- /dev/null +++ b/source/vocab/newtypes/kbtf.ttl @@ -0,0 +1,599 @@ +prefix rdfs: +prefix owl: +prefix skos: +prefix bibo: +prefix sdo: +prefix ptg: +prefix bf: + +prefix kbv: +prefix : +prefix marc: +prefix div: +prefix s: +prefix t: +prefix f: +prefix g: + +prefix saogf: +prefix barngf: +prefix kbrda: + +base + +div:ephemera a :ConceptCollection ; + rdfs:seeAlso ; + :exactMatch saogf:Efem\%C3\%A4rt\%20material ; + :prefLabel "Efemärt verk"@sv , + "Efem\\%C3\\%A4rt\\%20material"@en . + +div:informative-work a :ConceptCollection ; + skos:relatedMatch ; + :exactMatch saogf:Informativa\%20verk ; + :prefLabel "Informativt verk"@sv , + "informative works"@en . + +kbv:Cartography a :Class ; + rdfs:subClassOf s:Visual ; + skos:editorialNote "TODO: restriction on Map for instanceOf; allValuesFrom this..."@en ; + :exactMatch saogf:Kartor ; + :narrowMatch kbv:Map ; + :prefLabel "Kartografiskt verk"@sv , + "Cartography"@en . + +kbv:Text a :Class ; + :altLabel "Text"@en , + "Text"@sv ; + :prefLabel "Linguistic work"@en , + "Språkligt verk"@sv . + +kbv:StillImage a :Class ; + rdfs:subClassOf s:Visual ; + :exactMatch t:StillImage , + saogf:Bilder ; + :prefLabel "Still Image"@en , + "Stillbild"@sv , + "Bild"@sv . + +kbv:Music a :Class ; + :exactMatch f:Music ; + :prefLabel "Music"@en , + "Musik"@sv . + +kbv:MovingImage a :Class ; + rdfs:subClassOf s:Visual ; + :exactMatch t:MovingImage ; + :prefLabel "Moving Image"@en , + "Rörlig bild"@sv . + +kbv:NotatedMusic a :Class ; + rdfs:subClassOf kbv:Music ; + :exactMatch saogf:Musikalier ; + :prefLabel "Musikalie"@sv , + "Notated Music"@en . + +t:SerialPublication a :BasicType ; + rdfs:subClassOf t:Collection ; + :exactMatch saogf:Seriella\%20publikationer ; + :inCollection div:informative-work ; + :prefLabel "Seriell publikation"@sv , + "Serial Publication"@en . + +t:IllustratedWork a :BasicType ; + rdfs:subClassOf s:Visual ; + :exactMatch saogf:Illustrerade\%20verk ; + :prefLabel "Illustrerat verk"@sv , + "Illustrated Work"@en . + +t:Book a :BasicType ; + rdfs:subClassOf kbv:Text ; + :prefLabel "Book"@en , + "Bok"@sv . + +t:NonBookText a :BasicType ; + ptg:abstract true ; + rdfs:subClassOf kbv:Text ; + :prefLabel "Non-book text"@en , + "Småtext"@sv . + +t:Issue a :BasicType ; + rdfs:subClassOf t:NonBookText ; + owl:equivalentClass bibo:Issue ; + :prefLabel "Tidskriftsnummer"@sv , + "Periodical Issue"@en . + +t:Series a :BasicType ; + rdfs:subClassOf t:Collection ; + owl:equivalentClass bibo:Series , + bf:Series ; + :prefLabel "Series"@en , + "Serie"@sv . + +t:ObjectByPurpose a :BasicType ; + :prefLabel "Intensional Object"@en , + "Syftesmässig sak"@sv . + +t:WrittenBook a :BasicType ; + rdfs:subClassOf t:Book ; + :prefLabel "Written book"@en , + "Skriven bok"@sv . + +s:Audio a :SensoryForm ; + :exactMatch kbv:Audio ; + :prefLabel "Audio"@en , + "Ljud"@sv . + +t:BookWithImages a :BasicType ; + rdfs:subClassOf t:WrittenBook , + t:IllustratedWork ; + skos:editorialNote "TODO: PictorialWork?"@en ; + :broadMatch saogf:Bildverk ; + :narrowMatch barngf:Kapitelb\%C3\%B6cker ; + :prefLabel "Bok med bilder"@sv , + "Book With Images"@en . + +t:Collection a :Class ; + :prefLabel "Collection"@en , + "Samling"@sv . + +t:SoundBook a :BasicType ; + rdfs:subClassOf t:WrittenBook , + s:Audio , + s:MechanicalBook ; + :prefLabel "Bok med ljud"@sv , + "Sound Book"@en . + +t:Periodical a :BasicType ; + rdfs:seeAlso ; + rdfs:subClassOf t:SerialPublication ; + :exactMatch saogf:Periodika ; + :altLabel "Periodika"@sv ; + :prefLabel "Tidskrift"@sv , + "Periodical"@en . + +s:Tactile a :SensoryForm ; + rdfs:subClassOf kbv:Tactile ; + :exactMatch saogf:Taktila\%20verk ; + :prefLabel "Tactile"@en , + "Taktilt verk"@sv . + +t:Film a :BasicType ; + rdfs:subClassOf kbv:MovingImage ; + owl:equivalentClass bibo:Film ; + :exactMatch saogf:Filmer ; + :prefLabel "Film"@sv , + "Film"@en . + +s:Visual a :SensoryForm ; + :exactMatch kbv:Visual ; + :prefLabel "Visual"@en , + "Visuellt verk"@sv . + +t:Archive a :BasicType ; + rdfs:subClassOf t:Collection ; + :exactMatch saogf:Arkiv ; + :prefLabel "Arkiv"@sv , + "Archive"@en . + +t:Article a :BasicType ; + rdfs:subClassOf t:NonBookText ; + owl:equivalentClass bibo:Article ; + :prefLabel "Artikel"@sv , + "Article"@en . + +t:Audiobook a :BasicType ; + rdfs:subClassOf s:Audio , + t:Book , + bibo:AudioDocument ; + :exactMatch saogf:Ljudb\%C3\%B6cker ; + :prefLabel "Ljudbok"@sv , + "Audiobook"@en . + +t:CollectedBook a :BasicType ; + rdfs:subClassOf t:CollectedWork , + t:Book ; + :broadMatch bibo:CollectedDocument ; + :prefLabel "Collected book"@en , + "Samlad bok"@sv . + +t:CollectedWork a :BasicType ; + rdfs:subClassOf t:Collection ; + skos:editorialNote "TODO: CollectedPart vs. CollectingWork! Cf. bibo:CollectedDocument, bibo:MultiVolumeBook, t:MultipartBook"@en ; + :exactMatch saogf:Samlingsverk ; + :inCollection div:informative-work ; + :prefLabel "Samlingsverk"@sv , + "Collected Work"@en . + +t:Database a :BasicType ; + rdfs:subClassOf t:Collection ; + :exactMatch saogf:Databaser ; + :inCollection div:informative-work ; + :prefLabel "Databas"@sv , + "Database"@en . + +t:TactileBook a :BasicType ; + rdfs:subClassOf t:Book , + s:Tactile ; + skos:editorialNote "TODO: differentiate between \"filtbok\" och \"punktskriftsbok\"?"@en ; + :broadMatch kbrda:TactileText ; + :exactMatch saogf:Punktskriftsb\%C3\%B6cker ; + :prefLabel "Tactile Book"@en , + "Taktil bok"@sv . + +f:Almanac a :Form ; + rdfs:subClassOf t:SerialPublication , + g:ReferenceWork , + t:IllustratedWork ; + :exactMatch saogf:Almanackor ; + :prefLabel "Almanacka"@sv , + "Almanac"@en . + +f:Atlas a :Form ; + rdfs:subClassOf kbv:Cartography , + t:Book ; + :prefLabel "Atlas"@sv , + "Atlas"@en . + +f:AudioProgram a :Form ; + rdfs:subClassOf f:NonMusicAudio ; + :prefLabel "Ljudprogram"@sv , + "Audio Program"@en . + +f:NonMusicAudio a :Form ; + ptg:abstract true ; + rdfs:subClassOf s:Audio ; + :prefLabel "Non-music audio"@en , + "Ljud men inte musik"@sv . + +f:BoardGame a :Form ; + rdfs:subClassOf f:PuzzleOrGame ; + :exactMatch ; + :prefLabel "Brädspel"@sv , + "Boardgame"@en . + +f:PuzzleOrGame a :Form ; + rdfs:subClassOf f:InteractiveObject ; + :exactMatch saogf:Spel\%20och\%20tanken\%C3\%B6tter ; + :prefLabel "Spel eller tankenötter"@sv , + "Puzzle or game"@en . + +f:Broschure a :Form ; + rdfs:subClassOf t:NonBookText ; + :exactMatch ; + :inCollection div:ephemera ; + :prefLabel "Broschyr"@sv , + "Broschure"@en . + +f:Calendar a :Form ; + rdfs:subClassOf g:ReferenceWork , + t:IllustratedWork ; + :exactMatch saogf:Kalendrar ; + :inCollection div:ephemera ; + :prefLabel "Kalender"@sv , + "Calendar"@en . + +f:Catalogue a :Form ; + rdfs:subClassOf g:ReferenceWork ; + :exactMatch saogf:Kataloger ; + :prefLabel "Katalog"@sv , + "Catalogue"@en . + +f:Comic a :Form ; + rdfs:subClassOf g:GraphicLiterature ; + :exactMatch saogf:Serietidningar ; + :prefLabel "Serietidning"@sv , + "Comic"@en . + +f:ComicIssue a :Form ; + rdfs:subClassOf f:Comic , + t:Issue ; + owl:equivalentClass sdo:ComicIssue ; + :prefLabel "Serietidningsnummer"@sv , + "Comic Issue"@en . + +f:ComicSeries a :Form ; + rdfs:comment "TODO: series of issues vs. arc of stories?" ; + rdfs:subClassOf f:Comic , + t:Series ; + owl:equivalentClass sdo:ComicSeries ; + :prefLabel "Serietidningsserie"@sv , + "Comic Series"@en . + +f:ComicStory a :Form ; + rdfs:subClassOf f:Comic, t:NonBookText ; + owl:equivalentClass sdo:ComicStory ; + :narrowMatch saogf:Serienoveller ; + :prefLabel "Serienovell"@sv , + "Comic Story"@en . + +f:ComputerGame a :Form ; + rdfs:subClassOf f:PuzzleOrGame ; + :exactMatch saogf:Datorspel ; + :prefLabel "Datorspel"@sv , + "Computer Game"@en . + +f:ControlledVocabulary a :Form ; + rdfs:subClassOf g:ReferenceWork ; + :exactMatch saogf:Kontrollerade\%20vokabul\%C3\%A4rer ; + :prefLabel "Kontrollerad vokabulär"@sv , + "Controlled Vocabulary"@en . + +f:Diagram a :Form ; + rdfs:subClassOf t:IllustratedWork ; + :exactMatch saogf:Diagram ; + :inCollection div:informative-work ; + :prefLabel "Diagram"@sv , + "Diagram"@en . + +f:Encyclopedia a :Form ; + rdfs:subClassOf g:ReferenceWork ; + :exactMatch saogf:Encyklopedier ; + :prefLabel "Encyklopedia"@sv , + "Encyclopedia"@en . + +f:FormDocument a :Form ; + rdfs:seeAlso ; + rdfs:subClassOf t:NonBookText ; + :exactMatch saogf:Blanketter ; + :inCollection div:ephemera , + div:informative-work ; + :prefLabel "Blankett"@sv , + "Form Document"@en . + +f:Globe a :Form ; + rdfs:subClassOf kbv:Cartography ; + :prefLabel "Jord- eller månglob"@sv , + "Globe"@en . + +f:GraphicNovel a :Form ; + rdfs:subClassOf f:Novel , + t:BookWithImages , + g:GraphicLiterature ; + :exactMatch saogf:Serieromaner ; + :prefLabel "Serieroman"@sv , + "Graphic Novel"@en . + +f:Novel a :Form ; + rdfs:subClassOf g:Literature, t:Book ; + :exactMatch saogf:Romaner ; + :prefLabel "Roman"@sv , + "Novel"@en . + +f:Handwriting a :Form ; + rdfs:subClassOf kbv:Manuscript , + kbv:Text ; + :exactMatch saogf:Handskrifter ; + :prefLabel "Handskrift"@sv , + "Handwriting"@en . + +f:Illustration a :Form ; + rdfs:subClassOf kbv:StillImage ; + :exactMatch saogf:Illustrationer ; + :prefLabel "Illustration"@sv , + "Illustration"@en . + +f:InteractiveObject a :Form ; + rdfs:subClassOf t:ObjectByPurpose ; + :prefLabel "Interaktivt objekt"@sv , + "InteractiveObject"@en . + +f:Lexicon a :Form ; + rdfs:subClassOf g:ReferenceWork ; + :exactMatch saogf:Lexikon ; + :prefLabel "Lexikon"@sv , + "Lexicon"@en . + +f:Manual a :Form ; + rdfs:subClassOf kbv:Text , + g:TeachingMaterial ; + :closeMatch saogf:Handb\%C3\%B6cker\%2C\%20manualer\%20etc ; + :seeAlso ; + :prefLabel "Manual"@sv , + "Manual"@en . + +f:Map a :Form ; + rdfs:subClassOf kbv:Cartography ; + :prefLabel "Karta"@sv , + "Map"@en . + +f:MechanicalBook a :Form ; + rdfs:subClassOf f:InteractiveObject , + t:WrittenBook ; + :prefLabel "Mekanisk bok"@sv , + "Mechanical Book"@en . + +f:NewsLetter a :Form ; + rdfs:subClassOf t:SerialPublication ; + :exactMatch saogf:Nyhetsbrev ; + :inCollection div:ephemera ; + :prefLabel "Nyhetsbrev"@sv , + "Newsletter"@en . + +f:Note a :Form ; + rdfs:subClassOf t:NonBookText ; + owl:equivalentClass bibo:Note ; + :exactMatch saogf:Anteckningar ; + :prefLabel "Anteckning"@sv , + "Note"@en . + +f:Painting a :Form ; + rdfs:subClassOf kbv:StillImage ; + :exactMatch ; + :prefLabel "Målning"@sv , + "Painting"@en . + +f:PerformedMusic a :Form ; + rdfs:subClassOf s:Audio , + kbv:Music ; + :prefLabel "Performed Music"@en , + "Framförd musik"@sv . + +f:Photobook a :Form ; + rdfs:subClassOf t:BookWithImages , + t:Book ; + :exactMatch saogf:Fotob\%C3\%B6cker ; + :prefLabel "Fotobok"@sv , + "Photobook"@en . + +f:Photograph a :Form ; + rdfs:subClassOf kbv:StillImage ; + :exactMatch saogf:Fotografier ; + :prefLabel "Fotografi"@sv , + "Photograph"@en . + +f:Photoseries a :Form ; + rdfs:subClassOf g:GraphicLiterature ; + skos:editorialNote "TODO: this is an issue? (foto-serietidning)? Not a Collection?"@en ; + :exactMatch saogf:Fotoserier ; + :prefLabel "Fotoserie"@sv , + "Photoseries"@en . + +f:PictureDictionary a :Form ; + rdfs:subClassOf t:Lexicon , + t:BookWithImages ; + :exactMatch saogf:Bildlexikon ; + :prefLabel "Bildlexikon"@sv , + "Picture Dictionary"@en . + +f:Postcard a :Form ; + rdfs:subClassOf t:IllustratedWork ; + :exactMatch saogf:Vykort ; + :inCollection div:ephemera ; + :prefLabel "Vykort"@sv , + "Postcard"@en . + +f:Poster a :Form ; + rdfs:subClassOf t:IllustratedWork ; + owl:equivalentClass sdo:Poster ; + :exactMatch saogf:Affischer ; + :inCollection div:ephemera , + div:informative-work ; + :prefLabel "Affisch"@sv , + "Poster"@en . + +f:PublicationProgramme a :Form ; + rdfs:subClassOf t:NonBookText ; + :exactMatch saogf:Program\%20\%28publikationer\%29 ; + :inCollection div:ephemera , + div:informative-work ; + :prefLabel "Publikationsprogram"@sv , + "Publication Programme"@en . + +f:Puzzle a :Form ; + rdfs:subClassOf f:PuzzleOrGame ; + :exactMatch saogf:Pussel ; + :prefLabel "Pussel"@sv , + "Puzzle"@en . + +f:Register a :Form ; + rdfs:subClassOf t:Collection ; + :exactMatch saogf:F\%C3\%B6rteckningar ; + :inCollection div:informative-work ; + :prefLabel "Förteckning"@sv , + "Register"@en . + +f:Review a :Form ; + rdfs:subClassOf t:NonBookText ; + owl:equivalentClass sdo:Review ; + :exactMatch saogf:Recensioner ; + :inCollection div:informative-work ; + :prefLabel "Recension"@sv , + "Review"@en . + +f:Screenplay a :Form ; + rdfs:subClassOf kbv:Text ; + :exactMatch saogf:Filmmanus ; + :prefLabel "Filmmanus"@sv , + "Screenplay"@en . + +f:Sculpture a :Form ; + rdfs:subClassOf t:ObjectByPurpose ; + :prefLabel "Skulptur"@sv , + "Sculpture"@en . + +f:ShortStory a :Form ; + rdfs:subClassOf t:NonBookText , + g:Literature ; + owl:equivalentClass sdo:ShortStory ; + :exactMatch saogf:Noveller ; + :prefLabel "Novell"@sv , + "Short Story"@en . + +f:SpokenBook a :Form ; + rdfs:subClassOf t:Audiobook , + f:SpokenWord ; + :exactMatch saogf:Talb\%C3\%B6cker ; + :prefLabel "Talbok"@sv , + "Spoken Book"@en . + +f:SpokenWord a :Form ; + rdfs:subClassOf t:NonBookText , + s:Audio ; + :prefLabel "Tal"@sv , + "Spoken Word"@en . + +f:SpokenPaper a :Form ; + rdfs:subClassOf t:Periodical , + f:SpokenWord ; + :exactMatch saogf:Taltidningar ; + :prefLabel "Taltidning"@sv , + "Spoken Paper"@en . + +f:TVProgram a :Form ; + rdfs:subClassOf kbv:MovingImage ; + :exactMatch saogf:Tv-program ; + :prefLabel "Tv-program"@sv , + "TV-Program"@en . + +f:TVSeries a :Form ; + rdfs:subClassOf f:TVProgram , + t:Series ; + :exactMatch saogf:Tv-serier ; + :prefLabel "Tv-serie"@sv , + "TV-Series"@en . + +f:Tables a :Form ; + rdfs:subClassOf g:ReferenceWork ; + :exactMatch saogf:Tabeller ; + :prefLabel "Tabell"@sv , + "Tables"@en . + +f:TactileCartography a :Form ; + rdfs:subClassOf kbv:Cartography , + s:Tactile ; + skos:editorialNote "TODO: edge case? Force a choice of primary purpose of expression? This is not a11y, that's about the instance. Mixed purposes can be solved by primary purpose as type and additional \"color\" as genre."@en ; + :prefLabel "Taktilt kartografiskt verk"@sv , + "Tactile Cartography"@en . + +f:Toy a :Form ; + rdfs:subClassOf f:InteractiveObject ; + :prefLabel "Leksak"@sv , + "Toy"@en . + +f:Trailer a :Form ; + rdfs:subClassOf t:Film ; + :exactMatch saogf:Trailrar ; + :prefLabel "Trailer"@sv , + "Trailer"@en . + +f:Website a :Form ; + rdfs:subClassOf kbv:OnlineResource , + t:Collection ; + :exactMatch saogf:Webbplatser ; + :prefLabel "Webbplats"@sv , + "Website"@en . + +# TODO: +#f:BrailleBook a :CarrierForm ; +# rdfs:subClassOf t:TactileBook ; +# :prefLabel "Punktskriftsbok"@sv, "Braille Books"@en . + +# TODO: +#cr:Leporello a :CarrierForm ; +# rdfs:subClassOf rdacarrier:NonVolumePrint ; +# :exactMatch saogf:Leporello . + +# TODO: +#cr:MusicRecording a :CarrierForm ; +# rdfs:subClassOf kbv:SoundRecording, kbv:Music ; +# :exactMatch saogf:Musikinspelningar . From 1ae2f4bb088c0907aaf9f12bba16ce0fe9183eb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Thu, 16 May 2024 19:55:19 +0200 Subject: [PATCH 02/69] Revise KB form and genre terms --- source/vocab/newtypes/kbgf.ttl | 8 ++++- source/vocab/newtypes/kbtf.ttl | 66 +++++++++++++++++++--------------- 2 files changed, 45 insertions(+), 29 deletions(-) diff --git a/source/vocab/newtypes/kbgf.ttl b/source/vocab/newtypes/kbgf.ttl index 71615541..abcc6cf1 100644 --- a/source/vocab/newtypes/kbgf.ttl +++ b/source/vocab/newtypes/kbgf.ttl @@ -165,11 +165,17 @@ g:RolePlayingGame a :Genre ; "Roleplaying Game"@en . g:SoundEffectBook a :Genre ; - rdfs:subClassOf t:SoundBook ; + rdfs:subClassOf f:MechanicalBook, s:Audio ; :exactMatch saogf:B\%C3\%B6cker\%20med\%20ljudeffekter ; :prefLabel "Bok med ljudeffekt"@sv , "Sound-effect Book"@en . +g:PopupBook a :Genre ; + rdfs:subClassOf t:BookWithImages ; + :exactMatch ; + :prefLabel "Pop-up-bok"@sv , + "Pop-up Book"@en . + g:Standard a :Genre ; rdfs:subClassOf g:ReferenceWork ; owl:equivalentClass bibo:Standard ; diff --git a/source/vocab/newtypes/kbtf.ttl b/source/vocab/newtypes/kbtf.ttl index 78041032..09f676c6 100644 --- a/source/vocab/newtypes/kbtf.ttl +++ b/source/vocab/newtypes/kbtf.ttl @@ -73,7 +73,7 @@ kbv:NotatedMusic a :Class ; "Notated Music"@en . t:SerialPublication a :BasicType ; - rdfs:subClassOf t:Collection ; + rdfs:subClassOf t:CollectingResource ; :exactMatch saogf:Seriella\%20publikationer ; :inCollection div:informative-work ; :prefLabel "Seriell publikation"@sv , @@ -94,7 +94,13 @@ t:NonBookText a :BasicType ; ptg:abstract true ; rdfs:subClassOf kbv:Text ; :prefLabel "Non-book text"@en , - "Småtext"@sv . + "Enskild text"@sv . + +f:NonBookTextWithImages a :Form ; + rdfs:subClassOf t:NonBookText , + t:IllustratedWork ; + :prefLabel "Enskild text med bilder"@sv , + "Non-book With Images"@en . t:Issue a :BasicType ; rdfs:subClassOf t:NonBookText ; @@ -102,12 +108,13 @@ t:Issue a :BasicType ; :prefLabel "Tidskriftsnummer"@sv , "Periodical Issue"@en . -t:Series a :BasicType ; - rdfs:subClassOf t:Collection ; +t:MonographicSeries a :BasicType ; + rdfs:subClassOf t:CollectingResource ; owl:equivalentClass bibo:Series , - bf:Series ; - :prefLabel "Series"@en , - "Serie"@sv . + bf:Series, + marc:MonographicSeries ; + :prefLabel "Monograph Series"@en , + "Monografiserie"@sv . t:ObjectByPurpose a :BasicType ; :prefLabel "Intensional Object"@en , @@ -132,17 +139,26 @@ t:BookWithImages a :BasicType ; :prefLabel "Bok med bilder"@sv , "Book With Images"@en . +t:CollectingResource a :BasicType ; + ptg:abstract true ; + :prefLabel "Collecting Resource"@en , + "Samlande resurs"@sv . + +t:MixedMaterial a :Class ; + rdfs:subClassOf t:CollectingResource ; + :prefLabel "Mixed Material"@en , + "Blandat material"@sv . + +t:Kit a :Class ; + rdfs:subClassOf t:CollectingResource ; + :prefLabel "Kit"@en , + "Kit"@sv . + t:Collection a :Class ; + rdfs:subClassOf t:CollectingResource ; :prefLabel "Collection"@en , "Samling"@sv . -t:SoundBook a :BasicType ; - rdfs:subClassOf t:WrittenBook , - s:Audio , - s:MechanicalBook ; - :prefLabel "Bok med ljud"@sv , - "Sound Book"@en . - t:Periodical a :BasicType ; rdfs:seeAlso ; rdfs:subClassOf t:SerialPublication ; @@ -170,7 +186,7 @@ s:Visual a :SensoryForm ; "Visuellt verk"@sv . t:Archive a :BasicType ; - rdfs:subClassOf t:Collection ; + rdfs:subClassOf t:CollectingResource ; :exactMatch saogf:Arkiv ; :prefLabel "Arkiv"@sv , "Archive"@en . @@ -189,23 +205,17 @@ t:Audiobook a :BasicType ; :prefLabel "Ljudbok"@sv , "Audiobook"@en . -t:CollectedBook a :BasicType ; - rdfs:subClassOf t:CollectedWork , - t:Book ; - :broadMatch bibo:CollectedDocument ; - :prefLabel "Collected book"@en , - "Samlad bok"@sv . - t:CollectedWork a :BasicType ; - rdfs:subClassOf t:Collection ; + rdfs:subClassOf t:CollectingResource ; skos:editorialNote "TODO: CollectedPart vs. CollectingWork! Cf. bibo:CollectedDocument, bibo:MultiVolumeBook, t:MultipartBook"@en ; :exactMatch saogf:Samlingsverk ; + :closeMatch bibo:CollectedDocument ; :inCollection div:informative-work ; :prefLabel "Samlingsverk"@sv , "Collected Work"@en . t:Database a :BasicType ; - rdfs:subClassOf t:Collection ; + rdfs:subClassOf t:CollectingResource ; :exactMatch saogf:Databaser ; :inCollection div:informative-work ; :prefLabel "Databas"@sv , @@ -294,7 +304,7 @@ f:ComicIssue a :Form ; f:ComicSeries a :Form ; rdfs:comment "TODO: series of issues vs. arc of stories?" ; rdfs:subClassOf f:Comic , - t:Series ; + t:MonographicSeries ; owl:equivalentClass sdo:ComicSeries ; :prefLabel "Serietidningsserie"@sv , "Comic Series"@en . @@ -476,7 +486,7 @@ f:PublicationProgramme a :Form ; :exactMatch saogf:Program\%20\%28publikationer\%29 ; :inCollection div:ephemera , div:informative-work ; - :prefLabel "Publikationsprogram"@sv , + :prefLabel "Programblad"@sv , "Publication Programme"@en . f:Puzzle a :Form ; @@ -486,7 +496,7 @@ f:Puzzle a :Form ; "Puzzle"@en . f:Register a :Form ; - rdfs:subClassOf t:Collection ; + rdfs:subClassOf t:CollectingResource ; :exactMatch saogf:F\%C3\%B6rteckningar ; :inCollection div:informative-work ; :prefLabel "Förteckning"@sv , @@ -547,7 +557,7 @@ f:TVProgram a :Form ; f:TVSeries a :Form ; rdfs:subClassOf f:TVProgram , - t:Series ; + t:MonographicSeries ; :exactMatch saogf:Tv-serier ; :prefLabel "Tv-serie"@sv , "TV-Series"@en . From d58ff28782575bd7341a16a5c726a9f41d9f6676 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Thu, 16 May 2024 19:55:57 +0200 Subject: [PATCH 03/69] Add KB instance/carrier types --- source/vocab/newtypes/kbcr.ttl | 68 ++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 source/vocab/newtypes/kbcr.ttl diff --git a/source/vocab/newtypes/kbcr.ttl b/source/vocab/newtypes/kbcr.ttl new file mode 100644 index 00000000..5666708c --- /dev/null +++ b/source/vocab/newtypes/kbcr.ttl @@ -0,0 +1,68 @@ +prefix rdfs: +prefix owl: +prefix skos: +prefix bibo: +prefix sdo: +prefix ptg: +prefix bf: + +prefix kbv: +prefix : +prefix marc: + +prefix s: +prefix t: +prefix f: +prefix g: + +prefix saogf: +prefix barngf: +prefix kbrda: + +kbv:Monograph a :Class ; + rdfs:subClassOf :Instance ; + ptg:abstract true . + +kbv:Volume a :Class ; + rdfs:subClassOf kbv:Monograph . + +kbv:PrintedVolume a :Class ; + rdfs:subClassOf kbv:Volume . + +kbv:PosterSheet a :Class ; + rdfs:subClassOf kbv:Monograph . + +kbv:BrailleResource a :Class ; + rdfs:subClassOf kbv:Monograph . + +kbv:BrailleVolume a :Class ; + rdfs:subClassOf kbv:BrailleResource , + :Volume . + +kbv:DigitalResource a :Class ; + rdfs:subClassOf kbv:Monograph . + +#kbv:DigitalDocument a :Class ; +# rdfs:subClassOf kbv:DigitalResource . + +kbv:Electronic a :Class ; + ptg:abstract true ; + rdfs:subClassOf kbv:Monograph . + +kbv:ChipCartridge a :Class ; + rdfs:subClassOf kbv:Electronic . + +kbv:SoundRecording a :Class ; + rdfs:subClassOf kbv:Electronic . + +kbv:AudioDisc a :Class ; + rdfs:subClassOf kbv:SoundRecording . + +kbv:AudioCassette a :Class ; + rdfs:subClassOf kbv:SoundRecording . + +kbv:VideoRecording a :Class ; + rdfs:subClassOf kbv:Electronic . + +kbv:VideoDisc a :Class ; + rdfs:subClassOf kbv:VideoRecording . From e7633e9b5fe1e291e8e733e0b24f08c376460b75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Wed, 8 May 2024 12:47:14 +0200 Subject: [PATCH 04/69] Change NewsLetter from Form to Genre --- source/vocab/newtypes/kbgf.ttl | 7 +++++++ source/vocab/newtypes/kbtf.ttl | 7 ------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/source/vocab/newtypes/kbgf.ttl b/source/vocab/newtypes/kbgf.ttl index abcc6cf1..01ac2ae3 100644 --- a/source/vocab/newtypes/kbgf.ttl +++ b/source/vocab/newtypes/kbgf.ttl @@ -119,6 +119,13 @@ g:MusicRadioProgram a :Genre ; :prefLabel "Musikradioprogram"@sv , "Music Radio Program"@en . +g:NewsLetter a :Genre ; + rdfs:subClassOf t:SerialPublication ; + :exactMatch saogf:Nyhetsbrev ; + :inCollection div:ephemera ; + :prefLabel "Nyhetsbrev"@sv , + "Newsletter"@en . + g:Newspaper a :Genre ; rdfs:subClassOf t:Periodical ; :exactMatch saogf:Dagstidningar ; diff --git a/source/vocab/newtypes/kbtf.ttl b/source/vocab/newtypes/kbtf.ttl index 09f676c6..3bb72179 100644 --- a/source/vocab/newtypes/kbtf.ttl +++ b/source/vocab/newtypes/kbtf.ttl @@ -412,13 +412,6 @@ f:MechanicalBook a :Form ; :prefLabel "Mekanisk bok"@sv , "Mechanical Book"@en . -f:NewsLetter a :Form ; - rdfs:subClassOf t:SerialPublication ; - :exactMatch saogf:Nyhetsbrev ; - :inCollection div:ephemera ; - :prefLabel "Nyhetsbrev"@sv , - "Newsletter"@en . - f:Note a :Form ; rdfs:subClassOf t:NonBookText ; owl:equivalentClass bibo:Note ; From e610c945b817f19a3c22c0e064c93d54888deec7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Wed, 8 May 2024 13:11:22 +0200 Subject: [PATCH 05/69] Add RecordOrDeed as Form --- source/vocab/newtypes/kbgf.ttl | 3 --- source/vocab/newtypes/kbtf.ttl | 6 ++++++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/source/vocab/newtypes/kbgf.ttl b/source/vocab/newtypes/kbgf.ttl index 01ac2ae3..b3a66d67 100644 --- a/source/vocab/newtypes/kbgf.ttl +++ b/source/vocab/newtypes/kbgf.ttl @@ -256,9 +256,6 @@ g:Timetable a :Genre ; #:Debattinlägg a :Form ; # :exactMatch saogf:Debattinl\%C3\%A4gg . -#:RecordOrDeed a :Form ; -# :exactMatch saogf:Handlingar\%20\%28dokument\%29 . - #:Examination a :Form ; # :exactMatch saogf:Prov\%20och\%20examinationer . diff --git a/source/vocab/newtypes/kbtf.ttl b/source/vocab/newtypes/kbtf.ttl index 3bb72179..ee4103ff 100644 --- a/source/vocab/newtypes/kbtf.ttl +++ b/source/vocab/newtypes/kbtf.ttl @@ -495,6 +495,12 @@ f:Register a :Form ; :prefLabel "Förteckning"@sv , "Register"@en . +f:RecordOrDeed a :Form ; + rdfs:subClassOf t:NonBookText ; + :exactMatch saogf:Handlingar\%20\%28dokument\%29 ; + :prefLabel "Handlingar (dokument)"@sv , + "Records (Documents)"@en . + f:Review a :Form ; rdfs:subClassOf t:NonBookText ; owl:equivalentClass sdo:Review ; From bcef373dd6d7ea4ee2eddd74081cceec8118f75b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Wed, 8 May 2024 15:32:49 +0200 Subject: [PATCH 06/69] Remove inCollection (copied from matching SAOGF) --- source/vocab/newtypes/kbtf.ttl | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/source/vocab/newtypes/kbtf.ttl b/source/vocab/newtypes/kbtf.ttl index ee4103ff..f50a245b 100644 --- a/source/vocab/newtypes/kbtf.ttl +++ b/source/vocab/newtypes/kbtf.ttl @@ -21,18 +21,6 @@ prefix kbrda: base -div:ephemera a :ConceptCollection ; - rdfs:seeAlso ; - :exactMatch saogf:Efem\%C3\%A4rt\%20material ; - :prefLabel "Efemärt verk"@sv , - "Efem\\%C3\\%A4rt\\%20material"@en . - -div:informative-work a :ConceptCollection ; - skos:relatedMatch ; - :exactMatch saogf:Informativa\%20verk ; - :prefLabel "Informativt verk"@sv , - "informative works"@en . - kbv:Cartography a :Class ; rdfs:subClassOf s:Visual ; skos:editorialNote "TODO: restriction on Map for instanceOf; allValuesFrom this..."@en ; @@ -75,7 +63,6 @@ kbv:NotatedMusic a :Class ; t:SerialPublication a :BasicType ; rdfs:subClassOf t:CollectingResource ; :exactMatch saogf:Seriella\%20publikationer ; - :inCollection div:informative-work ; :prefLabel "Seriell publikation"@sv , "Serial Publication"@en . @@ -209,15 +196,12 @@ t:CollectedWork a :BasicType ; rdfs:subClassOf t:CollectingResource ; skos:editorialNote "TODO: CollectedPart vs. CollectingWork! Cf. bibo:CollectedDocument, bibo:MultiVolumeBook, t:MultipartBook"@en ; :exactMatch saogf:Samlingsverk ; - :closeMatch bibo:CollectedDocument ; - :inCollection div:informative-work ; :prefLabel "Samlingsverk"@sv , "Collected Work"@en . t:Database a :BasicType ; rdfs:subClassOf t:CollectingResource ; :exactMatch saogf:Databaser ; - :inCollection div:informative-work ; :prefLabel "Databas"@sv , "Database"@en . @@ -270,7 +254,6 @@ f:PuzzleOrGame a :Form ; f:Broschure a :Form ; rdfs:subClassOf t:NonBookText ; :exactMatch ; - :inCollection div:ephemera ; :prefLabel "Broschyr"@sv , "Broschure"@en . @@ -278,7 +261,6 @@ f:Calendar a :Form ; rdfs:subClassOf g:ReferenceWork , t:IllustratedWork ; :exactMatch saogf:Kalendrar ; - :inCollection div:ephemera ; :prefLabel "Kalender"@sv , "Calendar"@en . @@ -331,7 +313,6 @@ f:ControlledVocabulary a :Form ; f:Diagram a :Form ; rdfs:subClassOf t:IllustratedWork ; :exactMatch saogf:Diagram ; - :inCollection div:informative-work ; :prefLabel "Diagram"@sv , "Diagram"@en . @@ -345,8 +326,6 @@ f:FormDocument a :Form ; rdfs:seeAlso ; rdfs:subClassOf t:NonBookText ; :exactMatch saogf:Blanketter ; - :inCollection div:ephemera , - div:informative-work ; :prefLabel "Blankett"@sv , "Form Document"@en . @@ -461,7 +440,6 @@ f:PictureDictionary a :Form ; f:Postcard a :Form ; rdfs:subClassOf t:IllustratedWork ; :exactMatch saogf:Vykort ; - :inCollection div:ephemera ; :prefLabel "Vykort"@sv , "Postcard"@en . @@ -469,16 +447,12 @@ f:Poster a :Form ; rdfs:subClassOf t:IllustratedWork ; owl:equivalentClass sdo:Poster ; :exactMatch saogf:Affischer ; - :inCollection div:ephemera , - div:informative-work ; :prefLabel "Affisch"@sv , "Poster"@en . f:PublicationProgramme a :Form ; rdfs:subClassOf t:NonBookText ; :exactMatch saogf:Program\%20\%28publikationer\%29 ; - :inCollection div:ephemera , - div:informative-work ; :prefLabel "Programblad"@sv , "Publication Programme"@en . @@ -491,7 +465,6 @@ f:Puzzle a :Form ; f:Register a :Form ; rdfs:subClassOf t:CollectingResource ; :exactMatch saogf:F\%C3\%B6rteckningar ; - :inCollection div:informative-work ; :prefLabel "Förteckning"@sv , "Register"@en . @@ -505,7 +478,6 @@ f:Review a :Form ; rdfs:subClassOf t:NonBookText ; owl:equivalentClass sdo:Review ; :exactMatch saogf:Recensioner ; - :inCollection div:informative-work ; :prefLabel "Recension"@sv , "Review"@en . From 0b32ca90636ded7f90e79cd017c6f96190b5fe75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Wed, 8 May 2024 16:47:47 +0200 Subject: [PATCH 07/69] Add Book equivalences --- source/vocab/newtypes/kbtf.ttl | 1 + 1 file changed, 1 insertion(+) diff --git a/source/vocab/newtypes/kbtf.ttl b/source/vocab/newtypes/kbtf.ttl index f50a245b..35ca1917 100644 --- a/source/vocab/newtypes/kbtf.ttl +++ b/source/vocab/newtypes/kbtf.ttl @@ -73,6 +73,7 @@ t:IllustratedWork a :BasicType ; "Illustrated Work"@en . t:Book a :BasicType ; + owl:equivalentClass bibo:Book, sdo:Book ; rdfs:subClassOf kbv:Text ; :prefLabel "Book"@en , "Bok"@sv . From 90d0622c41175e6c1effbc53b65c4ddca9a84661 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Mon, 20 May 2024 17:03:52 +0200 Subject: [PATCH 08/69] Add more media and carrier types Based on and mapped to RDA and MARC equivalents. --- source/vocab/newtypes/kbcr.ttl | 360 ++++++++++++++++++++++++++++++--- 1 file changed, 335 insertions(+), 25 deletions(-) diff --git a/source/vocab/newtypes/kbcr.ttl b/source/vocab/newtypes/kbcr.ttl index 5666708c..4aa0cdea 100644 --- a/source/vocab/newtypes/kbcr.ttl +++ b/source/vocab/newtypes/kbcr.ttl @@ -19,50 +19,360 @@ prefix saogf: prefix barngf: prefix kbrda: -kbv:Monograph a :Class ; - rdfs:subClassOf :Instance ; - ptg:abstract true . -kbv:Volume a :Class ; - rdfs:subClassOf kbv:Monograph . +#kbv:Instance a owl:Class ; ptg:abstract true . + +# TODO: RDA Issuance - mixin? are we crossing dimensions/aspects/modalities/purposes? Serial CD vs. 2 CDs... +#kbv:SingleUnit a :AggregationType ; # TODO: SingleUnit vs. Monograph as "purpose of instance"... +# rdfs:subClassOf kbv:Instance ; +# ptg:abstract true . +# +#kbv:MultipleUnits a :AggregationType ; +# rdfs:subClassOf kbv:Instance ; +# ptg:abstract true . + + +# Unmediated + +kbv:Unmediated a :MediaType ; + ptg:abstract true ; + rdfs:subClassOf kbv:Instance ; + :exactMatch kbrda:Unmediated . + +kbv:Print a owl:Class; + rdfs:subClassOf kbv:Unmediated . + +# TODO: Untenable: Printed vs. Handmade (Handwritten / Typewritten / Photocopied) ... +kbv:Handmade a :Class; rdfs:subClassOf kbv:Unmediated . +kbv:Handwritten a :Class; rdfs:subClassOf kbv:Handmade . +kbv:Typewrittten a :Class; rdfs:subClassOf kbv:Handmade . +kbv:Photocopied a :Class; rdfs:subClassOf kbv:Handmade ; :related marc:RegularPrintReproduction . kbv:PrintedVolume a :Class ; - rdfs:subClassOf kbv:Volume . + rdfs:subClassOf kbv:Print, kbv:Volume . + +kbv:HardcoverVolume a :Class; + rdfs:subClassOf kbv:PrintedVolume . + +kbv:PaperbackVolume a :Class; + rdfs:subClassOf kbv:PrintedVolume . + +kbv:HandmadeVolume a :Class ; + ptg:abstract true ; + rdfs:subClassOf kbv:Volume, kbv:Handmade . + + +kbv:Card a :CarrierType; + :exactMatch kbrda:Card ; + rdfs:subClassOf kbv:Unmediated . + +kbv:Flipchart a :CarrierType; + :exactMatch kbrda:Flipchart ; + rdfs:subClassOf kbv:Unmediated . -kbv:PosterSheet a :Class ; - rdfs:subClassOf kbv:Monograph . +kbv:Roll a :CarrierType; + :exactMatch kbrda:Roll ; + rdfs:subClassOf kbv:Unmediated . + +kbv:Sheet a :CarrierType; + :exactMatch kbrda:Sheet ; + rdfs:subClassOf kbv:Unmediated . + +kbv:PrintedSheet a :Class ; + rdfs:subClassOf kbv:Print, kbv:Sheet . + +kbv:HandmadeSheet a :Class ; + rdfs:subClassOf kbv:Handmade, kbv:Sheet . + + +kbv:Volume a :CarrierType; + :exactMatch kbrda:Volume ; + rdfs:subClassOf kbv:Unmediated . + +kbv:Manuscript a owl:Class ; + rdfs:subClassOf :Handmade . + + +kbv:PhysicalObject a owl:Class ; + :exactMatch kbrda:Object ; + rdfs:subClassOf kbv:Unmediated . + +# TODO: Every non-DigitalResource is actually physical ... +#kbv:PhysicalGlobe a owl:Class ; +# rdfs:subClassOf kbv:PhysicalObject . + + +kbv:Tactile a :Class ; + rdfs:subClassOf kbv:Unmediated . kbv:BrailleResource a :Class ; - rdfs:subClassOf kbv:Monograph . + :exactMatch marc:Braille ; + rdfs:subClassOf kbv:Tactile, kbv:Print . kbv:BrailleVolume a :Class ; - rdfs:subClassOf kbv:BrailleResource , - :Volume . + rdfs:subClassOf kbv:BrailleResource, kbv:Volume . -kbv:DigitalResource a :Class ; - rdfs:subClassOf kbv:Monograph . -#kbv:DigitalDocument a :Class ; -# rdfs:subClassOf kbv:DigitalResource . +# "Mediated" -kbv:Electronic a :Class ; +kbv:Electronic a owl:Class ; # :MediaType ; ptg:abstract true ; - rdfs:subClassOf kbv:Monograph . + :exactMatch kbrda:Computer, marc:Electronic ; + rdfs:subClassOf kbv:Instance . -kbv:ChipCartridge a :Class ; - rdfs:subClassOf kbv:Electronic . -kbv:SoundRecording a :Class ; +# TODO: other StorageMedium? Magnetic / Optical / Mechanical ? +kbv:StorageMedium a owl:Class ; + ptg:abstract true ; + rdfs:subClassOf kbv:Instance . + + +kbv:TapeCartridge a :Class ; + rdfs:subClassOf kbv:StorageMedium ; + ptg:abstract true ; + :exactMatch marc:TapeCartridge . + +kbv:TapeCassette a :Class ; + rdfs:subClassOf kbv:StorageMedium ; + ptg:abstract true ; + :exactMatch marc:TapeCassette . + +kbv:TapeReel a :Class ; + ptg:abstract true ; + rdfs:subClassOf kbv:StorageMedium ; + :exactMatch marc:TapeReel . + +kbv:MagneticDisk a :CarrierType ; + :exactMatch marc:MagneticDisk ; + rdfs:subClassOf kbv:StorageMedium . + +kbv:MagnetoOpticalDisc a :CarrierType ; + :exactMatch marc:MagnetoOpticalDisc ; + rdfs:subClassOf kbv:StorageMedium . + +kbv:OpticalReel a :Class ; + ptg:abstract true ; + rdfs:subClassOf kbv:StorageMedium . + +kbv:OpticalDisc a :CarrierType ; + :exactMatch marc:OpticalDisc ; + rdfs:subClassOf kbv:StorageMedium . + +kbv:ElectronicStorageMedium a :Class ; + ptg:abstract true ; + :exactMatch marc:DirectElectronic ; + rdfs:subClassOf kbv:Electronic, kbv:StorageMedium . + + +kbv:DigitalResource a :CarrierType ; + :broadMatch marc:Remote ; + :exactMatch marc:Online, kbrda:OnlineResource ; rdfs:subClassOf kbv:Electronic . -kbv:AudioDisc a :Class ; +kbv:ChipCartridge a :CarrierType ; + rdfs:subClassOf kbv:ElectronicStorageMedium ; + :exactMatch kbrda:ComputerChipCartridge, marc:ChipCartridge . + +kbv:ComputerCard a :CarrierType ; + rdfs:subClassOf kbv:ElectronicStorageMedium ; + :exactMatch kbrda:ComputerCard, marc:ComputerCard . + +kbv:ComputerDisc a :CarrierType ; + rdfs:subClassOf kbv:ElectronicStorageMedium ; + :broadMatch marc:MagneticDisk ; + :exactMatch kbrda:ComputerDisc, marc:ComputerDisc . + +kbv:ComputerDiscCartridge a :CarrierType ; + rdfs:subClassOf kbv:ElectronicStorageMedium ; + :exactMatch kbrda:ComputerDiscCartridge, marc:ComputerDiscCartridge ; + :narrowMatch marc:ComputerOpticalDiscCartridge . + +kbv:ComputerTapeCartridge a :CarrierType ; + rdfs:subClassOf kbv:ElectronicStorageMedium , kbv:TapeCartridge ; + :exactMatch kbrda:ComputerTapeCartridge . + +kbv:ComputerTapeCassette a :CarrierType ; + rdfs:subClassOf kbv:ElectronicStorageMedium, kbv:TapeCassette ; + :exactMatch kbrda:ComputerTapeCassette . + +kbv:ComputerTapeReel a :CarrierType ; + rdfs:subClassOf kbv:ElectronicStorageMedium, kbv:TapeReel ; + :exactMatch kbrda:ComputerTapeReel . + + +kbv:StandaloneDevice a :CarrierType ; + :exactMatch marc:StandaloneDevice ; + rdfs:subClassOf kbv:ElectronicStorageMedium, kbv:PhysicalObject . + + +# TODO: Is the content-as-media-type a "rebus" and enough if on the work? + +kbv:SoundRecording a :MediaType ; + ptg:abstract true ; + :exactMatch kbrda:Audio ; + rdfs:subClassOf kbv:StorageMedium . + +kbv:AudioDisc a :CarrierType ; + rdfs:subClassOf kbv:SoundRecording ; + :exactMatch kbrda:AudioDisc . + +kbv:AudioCassette a :CarrierType ; + rdfs:subClassOf kbv:SoundRecording, kbv:TapeCassette ; + :exactMatch kbrda:Audiocassette . + +kbv:AudioCartridge a :CarrierType ; + :exactMatch kbrda:AudioCartridge ; rdfs:subClassOf kbv:SoundRecording . -kbv:AudioCassette a :Class ; +kbv:AudioCylinder a :CarrierType ; + :exactMatch kbrda:AudioCylinder ; rdfs:subClassOf kbv:SoundRecording . -kbv:VideoRecording a :Class ; - rdfs:subClassOf kbv:Electronic . +kbv:AudioRoll a :CarrierType ; + :exactMatch kbrda:AudioRoll; + rdfs:subClassOf kbv:SoundRecording . + +kbv:AudioTapeReel a :CarrierType ; + :exactMatch kbrda:AudiotapeReel; + rdfs:subClassOf kbv:SoundRecording, kbv:TapeReel . + +kbv:SoundTrackReel a :CarrierType ; + :exactMatch kbrda:SoundTrackReel; + rdfs:subClassOf kbv:SoundRecording . + + +kbv:VideoRecording a :MediaType ; + ptg:abstract true ; + # TODO: deprecated baseclass kbv:MovingImageInstance ? + :broadMatch kbv:MovingImage ; + :exactMatch kbrda:Video ; + rdfs:subClassOf kbv:StorageMedium . -kbv:VideoDisc a :Class ; +kbv:VideoDisc a :CarrierType ; + :exactMatch kbrda:Videodisc ; rdfs:subClassOf kbv:VideoRecording . + +kbv:VideoCartridge a :CarrierType ; + :exactMatch kbrda:VideoCartridge ; + rdfs:subClassOf kbv:VideoRecording . + +kbv:VideoCassette a :CarrierType ; + :exactMatch kbrda:Videocassette ; + rdfs:subClassOf kbv:VideoRecording, kbv:TapeCassette . + +kbv:VideoTapeReel a :CarrierType ; + :exactMatch kbrda:VideotapeReel ; + rdfs:subClassOf kbv:VideoRecording, kbv:TapeReel . + + +kbv:Microform a :MediaType ; + ptg:abstract true ; + :exactMatch kbrda:Microform; + rdfs:subClassOf kbv:StorageMedium . + +kbv:Microfilm a :CarrierType ; + ptg:abstract true ; + :exactMatch marc:Microfilm ; + rdfs:subClassOf kbv:Microform . + +kbv:ApertureCard a :CarrierType ; + :exactMatch kbrda:ApertureCard ; + rdfs:subClassOf kbv:Microform . + +kbv:Microfiche a :CarrierType ; + :exactMatch kbrda:Microfiche ; + rdfs:subClassOf kbv:Microform, marc:Microfiche . + +kbv:MicroficheCassette a :CarrierType ; + :exactMatch kbrda:MicroficheCassette ; + rdfs:subClassOf kbv:Microform . + +kbv:MicrofilmCartridge a :CarrierType ; + :exactMatch kbrda:MicrofilmCartridge ; + rdfs:subClassOf kbv:Microfilm . + +kbv:MicrofilmCassette a :CarrierType ; + :exactMatch kbrda:MicrofilmCassette ; + rdfs:subClassOf kbv:Microfilm . + +kbv:MicrofilmReel a :CarrierType ; + :exactMatch kbrda:MicrofilmReel ; + rdfs:subClassOf kbv:Microfilm . + +kbv:MicrofilmRoll a :CarrierType ; + :exactMatch kbrda:MicrofilmRoll ; + rdfs:subClassOf kbv:Microfilm, kbv:VideoRecording . + +kbv:MicrofilmSlip a :CarrierType ; + :exactMatch kbrda:MicrofilmSlip ; + rdfs:subClassOf kbv:Microform . + +kbv:Microopaque a :CarrierType ; + :exactMatch kbrda:Microopaque ; + rdfs:subClassOf kbv:Microform, marc:Microopaque . + + +kbv:Microscopic a :MediaType ; + ptg:abstract true ; + :exactMatch kbrda:Microscopic; + rdfs:subClassOf kbv:StorageMedium . + +kbv:MicroscopeSlide a :CarrierType ; + :exactMatch kbrda:MicroscopeSlide ; + rdfs:subClassOf kbv:Microscopic . + + +kbv:Projected a :MediaType ; + ptg:abstract true ; + :exactMatch kbrda:Projected; + rdfs:subClassOf kbv:StorageMedium . + +kbv:FilmCartridge a :CarrierType ; + :exactMatch kbrda:FilmCartridge ; + rdfs:subClassOf kbv:Projected . + +kbv:FilmCassette a :CarrierType ; + :exactMatch kbrda:FilmCassette ; + rdfs:subClassOf kbv:Projected . + +kbv:FilmReel a :CarrierType ; + :exactMatch kbrda:FilmReel ; + rdfs:subClassOf kbv:Projected . + +kbv:FilmRoll a :CarrierType ; + :exactMatch kbrda:FilmRoll ; + rdfs:subClassOf kbv:Projected . + +kbv:Filmslip a :CarrierType ; + :exactMatch kbrda:Filmslip ; + rdfs:subClassOf kbv:Projected . + +kbv:Filmstrip a :CarrierType ; + :exactMatch kbrda:Filmstrip ; + rdfs:subClassOf kbv:Projected . + +kbv:FilmstripCartridge a :CarrierType ; + :exactMatch kbrda:FilmstripCartridge ; + rdfs:subClassOf kbv:Projected . + +kbv:OverheadTransparency a :CarrierType ; + :exactMatch kbrda:OverheadTransparency ; + rdfs:subClassOf kbv:Projected . + +kbv:Slide a :CarrierType ; + :exactMatch kbrda:Slide ; + rdfs:subClassOf kbv:Projected . + + +kbv:Stereographic a :MediaType ; + ptg:abstract true ; + :exactMatch kbrda:Stereographic ; + rdfs:subClassOf kbv:StorageMedium . + +kbv:StereographCard a :CarrierType ; + :exactMatch kbrda:StereographCard; + rdfs:subClassOf kbv:Stereographic . + +kbv:StereographDisc a :CarrierType ; + :exactMatch kbrda:StereographDisc; + rdfs:subClassOf kbv:Stereographic . From 02530d8eab8d134a447cbde60c961450126089e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Mon, 3 Jun 2024 14:54:57 +0200 Subject: [PATCH 09/69] Update type mappings - Change some type candidates to just genres - Complete mappings to RDA content types - Add various notes --- source/vocab/newtypes/kbcr.ttl | 156 +++++++++------ source/vocab/newtypes/kbgf.ttl | 171 ++++++++++++++++- source/vocab/newtypes/kbtf.ttl | 339 +++++++++++++++++++-------------- 3 files changed, 457 insertions(+), 209 deletions(-) diff --git a/source/vocab/newtypes/kbcr.ttl b/source/vocab/newtypes/kbcr.ttl index 4aa0cdea..a9cfa1c4 100644 --- a/source/vocab/newtypes/kbcr.ttl +++ b/source/vocab/newtypes/kbcr.ttl @@ -21,6 +21,7 @@ prefix kbrda: #kbv:Instance a owl:Class ; ptg:abstract true . +# NOTE: En del Instanser/bärarformer är mångfaldigbara (såsom Tryckt), en del är (i regel?) unika (såsom Canvas)? # TODO: RDA Issuance - mixin? are we crossing dimensions/aspects/modalities/purposes? Serial CD vs. 2 CDs... #kbv:SingleUnit a :AggregationType ; # TODO: SingleUnit vs. Monograph as "purpose of instance"... @@ -29,8 +30,14 @@ prefix kbrda: # #kbv:MultipleUnits a :AggregationType ; # rdfs:subClassOf kbv:Instance ; +# :closeMatch marc:MixedForms ; +# :narrowMatch marc:MonographicSeries ; # ptg:abstract true . +# TODO: For export-to-bf+rda or revert-to-marc; use type-like properties to +# "bases" derived from exactMatch or broadMatch. For instance types, that +# mostly means :carrierType (unless some enum types are kept as subclasses of +# :GenreForm). # Unmediated @@ -43,10 +50,22 @@ kbv:Print a owl:Class; rdfs:subClassOf kbv:Unmediated . # TODO: Untenable: Printed vs. Handmade (Handwritten / Typewritten / Photocopied) ... -kbv:Handmade a :Class; rdfs:subClassOf kbv:Unmediated . -kbv:Handwritten a :Class; rdfs:subClassOf kbv:Handmade . -kbv:Typewrittten a :Class; rdfs:subClassOf kbv:Handmade . -kbv:Photocopied a :Class; rdfs:subClassOf kbv:Handmade ; :related marc:RegularPrintReproduction . +kbv:Handwritten a :Class; rdfs:subClassOf kbv:Unmediated . +kbv:Typewrittten a :Class; rdfs:subClassOf kbv:Unmediated . + +# mer extraordinärt? Sitter på exemplar? +#kbv:Photocopied a :Class; rdfs:subClassOf kbv:Unmediated ; :related marc:RegularPrintReproduction . + +kbv:Volume a :CarrierType; + #ptg:abstract true ; + :exactMatch kbrda:Volume ; + rdfs:subClassOf kbv:Unmediated . + +kbv:MassProducedVolume a :Class ; + rdfs:subClassOf kbv:MassProduced, kbv:Volume . + +kbv:RareVolume a :Class ; + rdfs:subClassOf kbv:Rare, kbv:Volume . kbv:PrintedVolume a :Class ; rdfs:subClassOf kbv:Print, kbv:Volume . @@ -57,9 +76,9 @@ kbv:HardcoverVolume a :Class; kbv:PaperbackVolume a :Class; rdfs:subClassOf kbv:PrintedVolume . -kbv:HandmadeVolume a :Class ; - ptg:abstract true ; - rdfs:subClassOf kbv:Volume, kbv:Handmade . + +kbv:Manuscript a owl:Class ; # TODO: changed to Work in BF + rdfs:subClassOf :Unmediated . kbv:Card a :CarrierType; @@ -81,26 +100,15 @@ kbv:Sheet a :CarrierType; kbv:PrintedSheet a :Class ; rdfs:subClassOf kbv:Print, kbv:Sheet . -kbv:HandmadeSheet a :Class ; - rdfs:subClassOf kbv:Handmade, kbv:Sheet . - - -kbv:Volume a :CarrierType; - :exactMatch kbrda:Volume ; - rdfs:subClassOf kbv:Unmediated . - -kbv:Manuscript a owl:Class ; - rdfs:subClassOf :Handmade . +kbv:NonPrintedSheet a :Class ; + rdfs:subClassOf kbv:Unmediated, kbv:Sheet . +# TODO: Every non-DigitalResource is physical of course; this is for "none of the others; actual purposeful 3d object"... kbv:PhysicalObject a owl:Class ; :exactMatch kbrda:Object ; rdfs:subClassOf kbv:Unmediated . -# TODO: Every non-DigitalResource is actually physical ... -#kbv:PhysicalGlobe a owl:Class ; -# rdfs:subClassOf kbv:PhysicalObject . - kbv:Tactile a :Class ; rdfs:subClassOf kbv:Unmediated . @@ -110,8 +118,12 @@ kbv:BrailleResource a :Class ; rdfs:subClassOf kbv:Tactile, kbv:Print . kbv:BrailleVolume a :Class ; - rdfs:subClassOf kbv:BrailleResource, kbv:Volume . - + rdfs:subClassOf kbv:BrailleResource, kbv:Volume , [ a owl:Restriction ; + owl:onProperty kbv:instanceOf ; + owl:allValuesFrom t:TactileBook + ] ; + :exactMatch saogf:Punktskriftsb\%C3\%B6cker . +# :prefLabel "Punktskriftsvolym"@sv, "Braille Volume"@en . # "Mediated" @@ -166,7 +178,7 @@ kbv:ElectronicStorageMedium a :Class ; kbv:DigitalResource a :CarrierType ; :broadMatch marc:Remote ; - :exactMatch marc:Online, kbrda:OnlineResource ; + :exactMatch marc:Online, marc:OnlineResource, kbrda:OnlineResource ; rdfs:subClassOf kbv:Electronic . kbv:ChipCartridge a :CarrierType ; @@ -205,65 +217,72 @@ kbv:StandaloneDevice a :CarrierType ; rdfs:subClassOf kbv:ElectronicStorageMedium, kbv:PhysicalObject . -# TODO: Is the content-as-media-type a "rebus" and enough if on the work? +# TODO: Is the content-as-media-type a "rebus" and enough if content is on the work? Or is the *unit for device capable of sound* encoded here (so "mode of provisioning", not the "purpose of provisioning")? -kbv:SoundRecording a :MediaType ; +kbv:SoundStorageMedium a :MediaType ; + owl:sameAs kbv:SoundRecording ; ptg:abstract true ; :exactMatch kbrda:Audio ; rdfs:subClassOf kbv:StorageMedium . kbv:AudioDisc a :CarrierType ; - rdfs:subClassOf kbv:SoundRecording ; - :exactMatch kbrda:AudioDisc . + rdfs:subClassOf kbv:SoundStorageMedium ; + :exactMatch kbrda:AudioDisc , marc:SoundDisc . kbv:AudioCassette a :CarrierType ; - rdfs:subClassOf kbv:SoundRecording, kbv:TapeCassette ; - :exactMatch kbrda:Audiocassette . + rdfs:subClassOf kbv:SoundStorageMedium, kbv:TapeCassette ; + :exactMatch kbrda:Audiocassette , marc:SoundCassette . kbv:AudioCartridge a :CarrierType ; - :exactMatch kbrda:AudioCartridge ; - rdfs:subClassOf kbv:SoundRecording . + :exactMatch kbrda:AudioCartridge , marc:SoundCartridge ; + rdfs:subClassOf kbv:SoundStorageMedium . kbv:AudioCylinder a :CarrierType ; - :exactMatch kbrda:AudioCylinder ; - rdfs:subClassOf kbv:SoundRecording . + :exactMatch kbrda:AudioCylinder, marc:Cylinder ; + rdfs:subClassOf kbv:SoundStorageMedium . kbv:AudioRoll a :CarrierType ; - :exactMatch kbrda:AudioRoll; - rdfs:subClassOf kbv:SoundRecording . + :exactMatch kbrda:AudioRoll , marc:Roll ; + rdfs:subClassOf kbv:SoundStorageMedium . kbv:AudioTapeReel a :CarrierType ; :exactMatch kbrda:AudiotapeReel; - rdfs:subClassOf kbv:SoundRecording, kbv:TapeReel . + rdfs:subClassOf kbv:SoundStorageMedium , kbv:TapeReel , marc:SoundTapeReel . + +# Zero uses in Libris... +kbv:AudioWireRecording a :CarrierType ; + :exactMatch marc:WireRecording . kbv:SoundTrackReel a :CarrierType ; - :exactMatch kbrda:SoundTrackReel; - rdfs:subClassOf kbv:SoundRecording . + :exactMatch kbrda:SoundTrackReel, marc:SoundTrackFilm; + rdfs:subClassOf kbv:SoundStorageMedium . -kbv:VideoRecording a :MediaType ; +kbv:VideoStorageMedium a :MediaType ; + owl:sameAs kbv:VideoRecording ; ptg:abstract true ; # TODO: deprecated baseclass kbv:MovingImageInstance ? - :broadMatch kbv:MovingImage ; :exactMatch kbrda:Video ; rdfs:subClassOf kbv:StorageMedium . kbv:VideoDisc a :CarrierType ; - :exactMatch kbrda:Videodisc ; - rdfs:subClassOf kbv:VideoRecording . + :exactMatch kbrda:Videodisc, marc:Videodisc ; + rdfs:subClassOf kbv:VideoStorageMedium . kbv:VideoCartridge a :CarrierType ; - :exactMatch kbrda:VideoCartridge ; - rdfs:subClassOf kbv:VideoRecording . + :exactMatch kbrda:VideoCartridge, marc:Videocartridge ; + rdfs:subClassOf kbv:VideoStorageMedium . kbv:VideoCassette a :CarrierType ; - :exactMatch kbrda:Videocassette ; - rdfs:subClassOf kbv:VideoRecording, kbv:TapeCassette . + :exactMatch kbrda:Videocassette, marc:Videocassette ; + rdfs:subClassOf kbv:VideoStorageMedium, kbv:TapeCassette . kbv:VideoTapeReel a :CarrierType ; - :exactMatch kbrda:VideotapeReel ; - rdfs:subClassOf kbv:VideoRecording, kbv:TapeReel . + :exactMatch kbrda:VideotapeReel , marc:Videoreel ; + rdfs:subClassOf kbv:VideoStorageMedium, kbv:TapeReel . + +# TODO: restricted to some content forms (Visual, TextAsVisual...) kbv:Microform a :MediaType ; ptg:abstract true ; @@ -276,7 +295,7 @@ kbv:Microfilm a :CarrierType ; rdfs:subClassOf kbv:Microform . kbv:ApertureCard a :CarrierType ; - :exactMatch kbrda:ApertureCard ; + :exactMatch kbrda:ApertureCard, marc:ApertureCard ; rdfs:subClassOf kbv:Microform . kbv:Microfiche a :CarrierType ; @@ -284,27 +303,27 @@ kbv:Microfiche a :CarrierType ; rdfs:subClassOf kbv:Microform, marc:Microfiche . kbv:MicroficheCassette a :CarrierType ; - :exactMatch kbrda:MicroficheCassette ; + :exactMatch kbrda:MicroficheCassette, marc:MicroficheCassette ; rdfs:subClassOf kbv:Microform . kbv:MicrofilmCartridge a :CarrierType ; - :exactMatch kbrda:MicrofilmCartridge ; + :exactMatch kbrda:MicrofilmCartridge, marc:MicrofilmCartridge ; rdfs:subClassOf kbv:Microfilm . kbv:MicrofilmCassette a :CarrierType ; - :exactMatch kbrda:MicrofilmCassette ; + :exactMatch kbrda:MicrofilmCassette, marc:MicrofilmCassette ; rdfs:subClassOf kbv:Microfilm . kbv:MicrofilmReel a :CarrierType ; - :exactMatch kbrda:MicrofilmReel ; + :exactMatch kbrda:MicrofilmReel, marc:MicrofilmReel ; rdfs:subClassOf kbv:Microfilm . kbv:MicrofilmRoll a :CarrierType ; - :exactMatch kbrda:MicrofilmRoll ; - rdfs:subClassOf kbv:Microfilm, kbv:VideoRecording . + :exactMatch kbrda:MicrofilmRoll, marc:MicrofilmRoll ; + rdfs:subClassOf kbv:Microfilm, kbv:VideoStorageMedium . kbv:MicrofilmSlip a :CarrierType ; - :exactMatch kbrda:MicrofilmSlip ; + :exactMatch kbrda:MicrofilmSlip, marc:MicrofilmSlip ; rdfs:subClassOf kbv:Microform . kbv:Microopaque a :CarrierType ; @@ -344,23 +363,25 @@ kbv:FilmRoll a :CarrierType ; rdfs:subClassOf kbv:Projected . kbv:Filmslip a :CarrierType ; - :exactMatch kbrda:Filmslip ; + :exactMatch kbrda:Filmslip, marc:Filmslip ; rdfs:subClassOf kbv:Projected . +# TODO: Ensure difference between StillImage Projected and MovingImage Projected! +# See e.g. <> kbv:Filmstrip a :CarrierType ; - :exactMatch kbrda:Filmstrip ; + :exactMatch kbrda:Filmstrip, marc:FilmstripRoll ; rdfs:subClassOf kbv:Projected . kbv:FilmstripCartridge a :CarrierType ; - :exactMatch kbrda:FilmstripCartridge ; + :exactMatch kbrda:FilmstripCartridge, marc:FilmstripCartridge ; rdfs:subClassOf kbv:Projected . kbv:OverheadTransparency a :CarrierType ; - :exactMatch kbrda:OverheadTransparency ; + :exactMatch kbrda:OverheadTransparency, marc:Transparency ; rdfs:subClassOf kbv:Projected . kbv:Slide a :CarrierType ; - :exactMatch kbrda:Slide ; + :exactMatch kbrda:Slide, marc:Slide ; rdfs:subClassOf kbv:Projected . @@ -376,3 +397,14 @@ kbv:StereographCard a :CarrierType ; kbv:StereographDisc a :CarrierType ; :exactMatch kbrda:StereographDisc; rdfs:subClassOf kbv:Stereographic . + + +## TODO: *when needed* for marc - map patterns to/from to some of these types... + +# TODO: ensure all of these (LHS) can be mapped to one specific type: +# Then these deine a MARC rebus for its restriction on instanceOf (RHS): +# kbv:StillImageInstance kbv:instanceOf kbv:StillImage . +# kbv:MovingImageInstance kbv:instanceOf kbv:MovingImage . +# kbv:ProjectedImageInstance kbv:instanceOf kbv:ProjectedImage . +# kbv:NotatedMusicInstance kbv:instanceOf kbv:NotatedMusic . +# kbv:KitInstance kbv:instanceOf kbv:Kit . diff --git a/source/vocab/newtypes/kbgf.ttl b/source/vocab/newtypes/kbgf.ttl index b3a66d67..2b5684bd 100644 --- a/source/vocab/newtypes/kbgf.ttl +++ b/source/vocab/newtypes/kbgf.ttl @@ -25,6 +25,8 @@ base # - it is not enough to determine under which BasicType or Form it belongs (it is a base); # - *or* it represents a combination of BasicType or Form and a Genre (it adds a nuance). +# TODO: replace subClassOf with broader and equivalentClass with broadMatch + g:AbstractSummary a :Genre ; rdfs:subClassOf t:NonBookText ; :exactMatch saogf:Sammanfattningar ; @@ -42,6 +44,14 @@ g:Blog a :Genre ; :prefLabel "Blogg"@sv , "Blog"@en . +f:CollectedWork a :Genre ; # :GenreForm + rdfs:subClassOf t:CollectingResource ; + skos:editorialNote "TODO: CollectedPart vs. CollectingWork! Cf. bibo:CollectedDocument, bibo:MultiVolumeBook, t:MultipartBook"@en ; + :exactMatch saogf:Samlingsverk ; + :closeMatch bibo:CollectedDocument ; + :prefLabel "Samlingsverk"@sv , + "Collected Work"@en . + g:ConferenceMaterial a :Genre ; rdfs:subClassOf t:NonBookText ; :exactMatch saogf:Konferensmaterial ; @@ -50,6 +60,12 @@ g:ConferenceMaterial a :Genre ; :prefLabel "Konferensmaterial"@sv , "Conference Material"@en . +f:ControlledVocabulary a :Genre ; + rdfs:subClassOf g:ReferenceWork ; + :exactMatch saogf:Kontrollerade\%20vokabul\%C3\%A4rer ; + :prefLabel "Kontrollerad vokabulär"@sv , + "Controlled Vocabulary"@en . + g:CourseMaterial a :Genre ; rdfs:subClassOf g:TeachingMaterial ; :exactMatch saogf:Kursmaterial ; @@ -57,6 +73,18 @@ g:CourseMaterial a :Genre ; :prefLabel "Kursmaterial"@sv , "Course Material"@en . +g:Encyclopedia a :Genre ; + rdfs:subClassOf g:ReferenceWork, t:Book ; + :exactMatch saogf:Encyklopedier ; + :prefLabel "Encyklopedia"@sv , + "Encyclopedia"@en . + +g:Lexicon a :Genre ; + rdfs:subClassOf g:ReferenceWork, t:Book ; + :exactMatch saogf:Lexikon ; + :prefLabel "Lexikon"@sv , + "Lexicon"@en . + g:TeachingMaterial a :Genre ; rdfs:seeAlso ; :exactMatch saogf:L\%C3\%A4romedel , @@ -75,11 +103,48 @@ g:GraphicLiterature a :Genre ; "Graphic Literature"@en . g:HandSignedCommunication a :Genre ; - rdfs:subClassOf s:Visual, kbv:Text ; + :broadMatch kbv:Visual, kbv:Text ; :exactMatch saogf:TAKK ; :prefLabel "TAKK"@sv , "Hand-signed Communication"@en . +g:GraphicNovel a :Genre ; + rdfs:subClassOf g:Novel , + t:BookWithImages , + g:GraphicLiterature ; + :exactMatch saogf:Serieromaner ; + :prefLabel "Serieroman"@sv , + "Graphic Novel"@en . + +g:ComicStory a :Genre ; + rdfs:subClassOf f:Comic, t:NonBookText ; + owl:equivalentClass sdo:ComicStory ; + :narrowMatch saogf:Serienoveller ; + :prefLabel "Serienovell"@sv , + "Comic Story"@en . + +g:Photoseries a :Genre ; + rdfs:subClassOf g:GraphicLiterature ; + skos:editorialNote "TODO: this is an issue? (foto-serietidning)? Not a Collection?"@en ; + :exactMatch saogf:Fotoserier ; + :prefLabel "Fotoserie"@sv , + "Photoseries"@en . + +g:Novel a :Genre ; + :broader g:Literature ; + :broadMatch t:Book ; + :exactMatch saogf:Romaner ; + :prefLabel "Roman"@sv , + "Novel"@en . + +g:ShortStory a :Genre ; + rdfs:subClassOf t:NonBookText , + g:Literature ; + owl:equivalentClass sdo:ShortStory ; + :exactMatch saogf:Noveller ; + :prefLabel "Novell"@sv , + "Short Story"@en . + g:Literature a :Genre ; rdfs:subClassOf kbv:Text ; :prefLabel "Litteratur"@sv , @@ -119,6 +184,12 @@ g:MusicRadioProgram a :Genre ; :prefLabel "Musikradioprogram"@sv , "Music Radio Program"@en . +g:MusicRecording a :Genre ; + rdfs:subClassOf kbv:Music ; + :exactMatch saogf:Musikinspelningar ; + :prefLabel "Musikrinspelning"@sv , + "Music Recording"@en . + g:NewsLetter a :Genre ; rdfs:subClassOf t:SerialPublication ; :exactMatch saogf:Nyhetsbrev ; @@ -150,6 +221,12 @@ g:Podcast a :Genre ; :prefLabel "Podcast"@sv , "Podcast"@en . +g:PublicationProgramme a :Genre ; + rdfs:subClassOf t:NonBookText ; + :exactMatch saogf:Program\%20\%28publikationer\%29 ; + :prefLabel "Programblad"@sv , + "Publication Programme"@en . + g:RadioProgram a :Genre ; rdfs:subClassOf f:AudioProgram ; :exactMatch saogf:Radioprogram ; @@ -183,6 +260,19 @@ g:PopupBook a :Genre ; :prefLabel "Pop-up-bok"@sv , "Pop-up Book"@en . +g:Review a :Genre ; + rdfs:subClassOf t:NonBookText ; + owl:equivalentClass sdo:Review ; + :exactMatch saogf:Recensioner ; + :prefLabel "Recension"@sv , + "Review"@en . + +g:Screenplay a :Genre ; + rdfs:subClassOf kbv:Text ; + :exactMatch saogf:Filmmanus ; + :prefLabel "Filmmanus"@sv , + "Screenplay"@en . + g:Standard a :Genre ; rdfs:subClassOf g:ReferenceWork ; owl:equivalentClass bibo:Standard ; @@ -203,6 +293,19 @@ g:Timetable a :Genre ; :prefLabel "Tidtabell"@sv , "Timetable"@en . +g:ThreeDimensionalMovingImage a :Genre ; # :ContentType + :exactMatch kbrda:ThreeDimensionalMovingImage; # sameAs + rdfs:subClassOf kbv:MovingImage ; + :prefLabel "Tredimensionell rörlig bild"@sv , + "Three-dimensional moving image"@en . + +g:TwoDimensionalMovingImage a :Genre ; # :ContentType + :exactMatch kbrda:TwoDimensionalMovingImage; # sameAs + rdfs:subClassOf kbv:MovingImage ; + :prefLabel "Tvådimensionell rörlig bild"@sv , + "Two-dimensional moving image"@en . + + #g:Patent # :prefLabel "Patent"@sv, "Patent"@en . @@ -214,6 +317,10 @@ g:Timetable a :Genre ; # owl:equivalentClass bibo:LegalDocument ; # :exactMatch saogf:Juridiskt\%20material . +#g:Leporello a :Genre ; +# rdfs:subClassOf f:NonBookTextWithImages ; +# :exactMatch saogf:Leporello . + #g:Patent a :Genre ; # rdfs:subClassOf kbv:Text ; # owl:equivalentClass bibo:Patent ; @@ -338,3 +445,65 @@ g:Timetable a :Genre ; # rdfs:subClassOf kbv:WorkHub ; # :closeMatch saogf:Visor . +## TODO: Move these instance MARC-types and -genreForms to work (and drop on marcframe revert?) + +# Instans-genrer (från användning ) + +# :Instance +# marc:Picture +# marc:Postcard +# marc:Poster +# marc:SingleMap +# tgm:Gravyrer +# tgm:Litografier +# tgm:M%C3%A5lningar +# tgm:Miniatyrer%20%28m%C3%A5lningar%29 +# tgm:Tr%C3%A4gravyrer + +# :StillImageInstance +# tgm:Affischer +# tgm:Flyers%20%28efem%C3%A4rt%20tryck%29 < :Print +# marc:ActivityCard +# marc:Picture +# marc:Postcard +# marc:Poster +# marc:Drawing +# marc:FlashCard +# marc:Painting +# marc:Photograph +# +# marc:Photonegative +# marc:Photoprint < :Print +# marc:PhotomechanicalPrint +# tgm:Fotomekaniska%20reproduktioner +# tgm:Fotografier%20p%C3%A5%20albuminpapper +# tgm:Glasnegativ + +# :Print +# marc:Print +# marc:PhotomechanicalPrint +# marc:Photoprint +# tgm:Ljustryck +# tgm:Plantryck +# tgm:Tryck + +# kbv:Globe kbv:instanceOf kbv:Cartography ; +# kbv:genreForm marc:GlobeMaterialType {| owl:oneOf +# marc:TerrestrialGlobe , +# marc:PlanetaryOrLunarGlobe , +# marc:CelestialGlobe , +# marc:EarthMoonGlobe |} . + +# kbv:Map kbv:instanceOf kbv:Cartography ; +# kbv:genreForm marc:MapMaterialType {| owl:oneOf +# marc:Model , +# marc:Section , +# marc:Profile , +# marc:MapATwoDimensionalMap , +# marc:MapMaterialType-d , # marc:Atlas # MapAsVolume +# marc:Diagram , # MapAsSheet? +# marc:View , +# marc:RemoteSensingImage # tgm:Satellitbild +# |} . + +# kbv:RemoteSensingImage kbv:instanceOf kbv:Cartography . diff --git a/source/vocab/newtypes/kbtf.ttl b/source/vocab/newtypes/kbtf.ttl index 35ca1917..ea2da6c0 100644 --- a/source/vocab/newtypes/kbtf.ttl +++ b/source/vocab/newtypes/kbtf.ttl @@ -9,8 +9,6 @@ prefix bf: prefix kbv: prefix : prefix marc: -prefix div: -prefix s: prefix t: prefix f: prefix g: @@ -21,27 +19,127 @@ prefix kbrda: base +# TODO: RDA Content Types (some are rebuses with gf:s or instance types) +# TODO: make kbrda:* sameAs or bases for (basic) types (possibly abstract)? +# *Some* are still better as "genreForm" though; so keep all as such (bound as genres for exact-matching types with a Restriction)? + + +# kbv:ArchivalUnit # TODO: remove from vocab + +kbv:Arrangement a :Class ; + :prefLabel "Arrangement"@en , + "Arrangemang"@sv . + + kbv:Cartography a :Class ; - rdfs:subClassOf s:Visual ; + rdfs:subClassOf kbv:Visual ; skos:editorialNote "TODO: restriction on Map for instanceOf; allValuesFrom this..."@en ; :exactMatch saogf:Kartor ; :narrowMatch kbv:Map ; :prefLabel "Kartografiskt verk"@sv , "Cartography"@en . +f:CartographicDataset a :Form; + owl:equivalentClass kbrda:CartographicDataset; + rdfs:subClassOf kbv:Cartography, kbv:Dataset . +f:CartographicImage a :Form; + owl:equivalentClass kbrda:CartographicImage; + rdfs:subClassOf kbv:Cartography, kbv:StillImage . +f:CartographicMovingImage a :Form; + owl:equivalentClass kbrda:CartographicMovingImage; + rdfs:subClassOf kbv:Cartography, kbv:MovingImage . +f:CartographicTactileImage a :Form; + owl:equivalentClass kbrda:CartographicTactileImage; + rdfs:subClassOf kbv:Cartography, kbv:StillImage . +f:CartographicTactileObject a :Form; + owl:equivalentClass kbrda:CartographicTactileThreeDimensionalForm; + rdfs:subClassOf kbv:Cartography, kbv:TactileObject ; + :prefLabel "kartografiskt taktilt objekt"@sv , + "cartographic tactile object"@en . +#f:TactileCartography a :Form ; +# rdfs:subClassOf kbv:Cartography , +# kbv:Tactile ; +# skos:editorialNote "TODO: edge case? Force a choice of primary purpose of expression? This is not a11y, that's about the instance. Mixed purposes can be solved by primary purpose as type and additional \"color\" as genre."@en ; +# :prefLabel "Taktilt kartografiskt verk"@sv , +# "Tactile Cartography"@en . +f:CartographicObject a :Form; + owl:equivalentClass kbrda:CartographicThreeDimensionalForm; + rdfs:subClassOf kbv:Cartography, kbv:Object ; + :prefLabel "kartografiskt objekt"@sv , + "cartographic object"@en . + +f:Atlas a :Form ; + rdfs:subClassOf kbv:Cartography , + t:Book ; + :prefLabel "Atlas"@sv , + "Atlas"@en . + +# FIXME: move instancetype kbv:Globe to work +f:Globe a :Form ; + rdfs:subClassOf f:CartographicObject ; + :prefLabel "Jord- eller månglob"@sv , + "Globe"@en . + +# FIXME: move instancetype kbv:Map to work +f:Map a :Form ; + rdfs:subClassOf f:CartographicImage ; + :prefLabel "Karta"@sv , + "Map"@en . + + +kbv:Tactile a :SensoryForm ; + :exactMatch saogf:Taktila\%20verk ; + :prefLabel "Tactile"@en , + "Taktilt verk"@sv . + +f:TactileImage a :Form ; + owl:equivalentClass kbrda:TactileImage; + rdfs:subClassOf kbv:StillImage, kbv:Tactile . # _:TactileInstanceRestriction . + +f:TactileNotatedMusic a :Form ; + owl:equivalentClass kbrda:TactileNotatedMusic; + rdfs:subClassOf kbv:NotatedMusic, kbv:Tactile . # , _:TactileInstanceRestriction . +f:TactileNotatedMovement a :Form ; + owl:equivalentClass kbrda:TactileNotatedMovement; + rdfs:subClassOf kbv:NotatedMovement, kbv:Tactile . # , _:TactileInstanceRestriction . +f:TactileText a :Form ; + owl:equivalentClass kbrda:TactileText; + rdfs:subClassOf kbv:Text, kbv:Tactile . # , _:TactileInstanceRestriction . +f:TactileObject a :Form ; + owl:equivalentClass kbrda:TactileThreeDimensionalForm; + rdfs:subClassOf kbv:Object, kbv:Tactile ; # , _:TactileInstanceRestriction , + :prefLabel "kartografiskt taktilt objekt"@sv , + "cartographic tactile object"@en . + +#_:TactileInstanceRestriction a owl:Restriction ; +# owl:onProperty kbv:hasInstance; +# owl:allValueFrom kbv:Tactile . + + +kbv:Dataset a :Class ; + rdfs:subClassOf f:Integrating ; + :prefLabel "Dataset"@en , + "Dataset"@sv . + +f:ComputerDataset a :Form; + owl:equivalentClass kbrda:ComputerDataset; + rdfs:subClassOf kbv:Dataset . + kbv:Text a :Class ; + :exactMatch kbrda:Text ; + # TODO: alternative bound genreForm + #rdfs:subClassOf [ a owl:Restriction ; + # owl:onProperty :genreForm ; owl:hasValue kbrda:Text ] ; :altLabel "Text"@en , "Text"@sv ; :prefLabel "Linguistic work"@en , "Språkligt verk"@sv . kbv:StillImage a :Class ; - rdfs:subClassOf s:Visual ; - :exactMatch t:StillImage , - saogf:Bilder ; + rdfs:subClassOf kbv:Visual ; + :exactMatch kbrda:StillImage , saogf:Bilder ; :prefLabel "Still Image"@en , - "Stillbild"@sv , - "Bild"@sv . + "Stillbild"@sv . kbv:Music a :Class ; :exactMatch f:Music ; @@ -49,17 +147,23 @@ kbv:Music a :Class ; "Musik"@sv . kbv:MovingImage a :Class ; - rdfs:subClassOf s:Visual ; + rdfs:subClassOf kbv:Visual ; :exactMatch t:MovingImage ; :prefLabel "Moving Image"@en , "Rörlig bild"@sv . kbv:NotatedMusic a :Class ; + :exactMatch kbrda:NotatedMusic ; rdfs:subClassOf kbv:Music ; :exactMatch saogf:Musikalier ; :prefLabel "Musikalie"@sv , "Notated Music"@en . +kbv:NotatedMovement a :Class ; + :exactMatch kbrda:NotatedMovement ; + :prefLabel "Notated movement"@en , + "Noterad rörelse"@sv . + t:SerialPublication a :BasicType ; rdfs:subClassOf t:CollectingResource ; :exactMatch saogf:Seriella\%20publikationer ; @@ -67,7 +171,8 @@ t:SerialPublication a :BasicType ; "Serial Publication"@en . t:IllustratedWork a :BasicType ; - rdfs:subClassOf s:Visual ; + rdfs:subClassOf kbv:Visual ; + :broadMatch kbrda:StillImage ; :exactMatch saogf:Illustrerade\%20verk ; :prefLabel "Illustrerat verk"@sv , "Illustrated Work"@en . @@ -104,26 +209,28 @@ t:MonographicSeries a :BasicType ; :prefLabel "Monograph Series"@en , "Monografiserie"@sv . -t:ObjectByPurpose a :BasicType ; +kbv:Object a :BasicType ; + :broadMatch kbrda:ThreeDimensionalForm ; + # TODO: rename or altLabel? owl:equivalentClass t:ObjectByPurpose ; :prefLabel "Intensional Object"@en , "Syftesmässig sak"@sv . t:WrittenBook a :BasicType ; + :broadMatch kbrda:Text ; rdfs:subClassOf t:Book ; :prefLabel "Written book"@en , "Skriven bok"@sv . -s:Audio a :SensoryForm ; - :exactMatch kbv:Audio ; +kbv:Audio a :SensoryForm ; + :exactMatch kbrda:Sounds ; :prefLabel "Audio"@en , "Ljud"@sv . t:BookWithImages a :BasicType ; - rdfs:subClassOf t:WrittenBook , - t:IllustratedWork ; + rdfs:subClassOf t:WrittenBook , t:IllustratedWork ; skos:editorialNote "TODO: PictorialWork?"@en ; :broadMatch saogf:Bildverk ; - :narrowMatch barngf:Kapitelb\%C3\%B6cker ; + :narrowMatch barngf:Bilderb%C3%B6cker , barngf:Kapitelb\%C3\%B6cker ; :prefLabel "Bok med bilder"@sv , "Book With Images"@en . @@ -132,12 +239,13 @@ t:CollectingResource a :BasicType ; :prefLabel "Collecting Resource"@en , "Samlande resurs"@sv . -t:MixedMaterial a :Class ; +kbv:MixedMaterial a :Class ; rdfs:subClassOf t:CollectingResource ; :prefLabel "Mixed Material"@en , "Blandat material"@sv . t:Kit a :Class ; + # :seeAlso ; rdfs:subClassOf t:CollectingResource ; :prefLabel "Kit"@en , "Kit"@sv . @@ -147,6 +255,12 @@ t:Collection a :Class ; :prefLabel "Collection"@en , "Samling"@sv . +f:Integrating a :Class ; + ptg:abstract true ; + rdfs:subClassOf t:CollectingResource ; + :prefLabel "Integrating"@en , + "Integrerande"@sv . + t:Periodical a :BasicType ; rdfs:seeAlso ; rdfs:subClassOf t:SerialPublication ; @@ -155,12 +269,6 @@ t:Periodical a :BasicType ; :prefLabel "Tidskrift"@sv , "Periodical"@en . -s:Tactile a :SensoryForm ; - rdfs:subClassOf kbv:Tactile ; - :exactMatch saogf:Taktila\%20verk ; - :prefLabel "Tactile"@en , - "Taktilt verk"@sv . - t:Film a :BasicType ; rdfs:subClassOf kbv:MovingImage ; owl:equivalentClass bibo:Film ; @@ -168,8 +276,7 @@ t:Film a :BasicType ; :prefLabel "Film"@sv , "Film"@en . -s:Visual a :SensoryForm ; - :exactMatch kbv:Visual ; +kbv:Visual a :SensoryForm ; :prefLabel "Visual"@en , "Visuellt verk"@sv . @@ -186,7 +293,7 @@ t:Article a :BasicType ; "Article"@en . t:Audiobook a :BasicType ; - rdfs:subClassOf s:Audio , + rdfs:subClassOf kbv:Audio , t:Book , bibo:AudioDocument ; :exactMatch saogf:Ljudb\%C3\%B6cker ; @@ -197,21 +304,23 @@ t:CollectedWork a :BasicType ; rdfs:subClassOf t:CollectingResource ; skos:editorialNote "TODO: CollectedPart vs. CollectingWork! Cf. bibo:CollectedDocument, bibo:MultiVolumeBook, t:MultipartBook"@en ; :exactMatch saogf:Samlingsverk ; + :closeMatch bibo:CollectedDocument ; :prefLabel "Samlingsverk"@sv , "Collected Work"@en . t:Database a :BasicType ; - rdfs:subClassOf t:CollectingResource ; + rdfs:subClassOf f:Integrating ; :exactMatch saogf:Databaser ; + :narrowMatch marc:UpdatingDatabase ; :prefLabel "Databas"@sv , "Database"@en . t:TactileBook a :BasicType ; rdfs:subClassOf t:Book , - s:Tactile ; + kbv:Tactile ; skos:editorialNote "TODO: differentiate between \"filtbok\" och \"punktskriftsbok\"?"@en ; :broadMatch kbrda:TactileText ; - :exactMatch saogf:Punktskriftsb\%C3\%B6cker ; + :narrowMatch saogf:Punktskriftsb\%C3\%B6cker ; :prefLabel "Tactile Book"@en , "Taktil bok"@sv . @@ -223,12 +332,6 @@ f:Almanac a :Form ; :prefLabel "Almanacka"@sv , "Almanac"@en . -f:Atlas a :Form ; - rdfs:subClassOf kbv:Cartography , - t:Book ; - :prefLabel "Atlas"@sv , - "Atlas"@en . - f:AudioProgram a :Form ; rdfs:subClassOf f:NonMusicAudio ; :prefLabel "Ljudprogram"@sv , @@ -236,7 +339,7 @@ f:AudioProgram a :Form ; f:NonMusicAudio a :Form ; ptg:abstract true ; - rdfs:subClassOf s:Audio ; + rdfs:subClassOf kbv:Audio ; :prefLabel "Non-music audio"@en , "Ljud men inte musik"@sv . @@ -292,37 +395,33 @@ f:ComicSeries a :Form ; :prefLabel "Serietidningsserie"@sv , "Comic Series"@en . -f:ComicStory a :Form ; - rdfs:subClassOf f:Comic, t:NonBookText ; - owl:equivalentClass sdo:ComicStory ; - :narrowMatch saogf:Serienoveller ; - :prefLabel "Serienovell"@sv , - "Comic Story"@en . +kbv:Multimedia a :Class ; + :prefLabel "Multimedia"@sv , + "Multimedia"@en . + +kbv:Software a :Form ; # TODO: pending; integrate with ComputerGame, Application, ... + rdfs:subClassOf kbv:Multimedia ; + :prefLabel "Mjukvara"@sv , + "Software"@en . + +f:ComputerProgram a :Form ; + owl:equivalentClass kbrda:ComputerProgram; + rdfs:subClassOf kbv:Multimedia ; + :prefLabel "Datorprogram"@sv , + "Computer Program"@en . f:ComputerGame a :Form ; - rdfs:subClassOf f:PuzzleOrGame ; + rdfs:subClassOf f:PuzzleOrGame, f:ComputerProgram ; :exactMatch saogf:Datorspel ; :prefLabel "Datorspel"@sv , "Computer Game"@en . -f:ControlledVocabulary a :Form ; - rdfs:subClassOf g:ReferenceWork ; - :exactMatch saogf:Kontrollerade\%20vokabul\%C3\%A4rer ; - :prefLabel "Kontrollerad vokabulär"@sv , - "Controlled Vocabulary"@en . - f:Diagram a :Form ; rdfs:subClassOf t:IllustratedWork ; :exactMatch saogf:Diagram ; :prefLabel "Diagram"@sv , "Diagram"@en . -f:Encyclopedia a :Form ; - rdfs:subClassOf g:ReferenceWork ; - :exactMatch saogf:Encyklopedier ; - :prefLabel "Encyklopedia"@sv , - "Encyclopedia"@en . - f:FormDocument a :Form ; rdfs:seeAlso ; rdfs:subClassOf t:NonBookText ; @@ -330,25 +429,6 @@ f:FormDocument a :Form ; :prefLabel "Blankett"@sv , "Form Document"@en . -f:Globe a :Form ; - rdfs:subClassOf kbv:Cartography ; - :prefLabel "Jord- eller månglob"@sv , - "Globe"@en . - -f:GraphicNovel a :Form ; - rdfs:subClassOf f:Novel , - t:BookWithImages , - g:GraphicLiterature ; - :exactMatch saogf:Serieromaner ; - :prefLabel "Serieroman"@sv , - "Graphic Novel"@en . - -f:Novel a :Form ; - rdfs:subClassOf g:Literature, t:Book ; - :exactMatch saogf:Romaner ; - :prefLabel "Roman"@sv , - "Novel"@en . - f:Handwriting a :Form ; rdfs:subClassOf kbv:Manuscript , kbv:Text ; @@ -363,16 +443,10 @@ f:Illustration a :Form ; "Illustration"@en . f:InteractiveObject a :Form ; - rdfs:subClassOf t:ObjectByPurpose ; + rdfs:subClassOf kbv:Object ; :prefLabel "Interaktivt objekt"@sv , "InteractiveObject"@en . -f:Lexicon a :Form ; - rdfs:subClassOf g:ReferenceWork ; - :exactMatch saogf:Lexikon ; - :prefLabel "Lexikon"@sv , - "Lexicon"@en . - f:Manual a :Form ; rdfs:subClassOf kbv:Text , g:TeachingMaterial ; @@ -381,11 +455,6 @@ f:Manual a :Form ; :prefLabel "Manual"@sv , "Manual"@en . -f:Map a :Form ; - rdfs:subClassOf kbv:Cartography ; - :prefLabel "Karta"@sv , - "Map"@en . - f:MechanicalBook a :Form ; rdfs:subClassOf f:InteractiveObject , t:WrittenBook ; @@ -406,7 +475,8 @@ f:Painting a :Form ; "Painting"@en . f:PerformedMusic a :Form ; - rdfs:subClassOf s:Audio , + :exactMatch kbrda:PerformedMusic ; + rdfs:subClassOf kbv:Audio , kbv:Music ; :prefLabel "Performed Music"@en , "Framförd musik"@sv . @@ -424,13 +494,6 @@ f:Photograph a :Form ; :prefLabel "Fotografi"@sv , "Photograph"@en . -f:Photoseries a :Form ; - rdfs:subClassOf g:GraphicLiterature ; - skos:editorialNote "TODO: this is an issue? (foto-serietidning)? Not a Collection?"@en ; - :exactMatch saogf:Fotoserier ; - :prefLabel "Fotoserie"@sv , - "Photoseries"@en . - f:PictureDictionary a :Form ; rdfs:subClassOf t:Lexicon , t:BookWithImages ; @@ -451,12 +514,6 @@ f:Poster a :Form ; :prefLabel "Affisch"@sv , "Poster"@en . -f:PublicationProgramme a :Form ; - rdfs:subClassOf t:NonBookText ; - :exactMatch saogf:Program\%20\%28publikationer\%29 ; - :prefLabel "Programblad"@sv , - "Publication Programme"@en . - f:Puzzle a :Form ; rdfs:subClassOf f:PuzzleOrGame ; :exactMatch saogf:Pussel ; @@ -475,32 +532,11 @@ f:RecordOrDeed a :Form ; :prefLabel "Handlingar (dokument)"@sv , "Records (Documents)"@en . -f:Review a :Form ; - rdfs:subClassOf t:NonBookText ; - owl:equivalentClass sdo:Review ; - :exactMatch saogf:Recensioner ; - :prefLabel "Recension"@sv , - "Review"@en . - -f:Screenplay a :Form ; - rdfs:subClassOf kbv:Text ; - :exactMatch saogf:Filmmanus ; - :prefLabel "Filmmanus"@sv , - "Screenplay"@en . - f:Sculpture a :Form ; - rdfs:subClassOf t:ObjectByPurpose ; + rdfs:subClassOf kbv:Object ; :prefLabel "Skulptur"@sv , "Sculpture"@en . -f:ShortStory a :Form ; - rdfs:subClassOf t:NonBookText , - g:Literature ; - owl:equivalentClass sdo:ShortStory ; - :exactMatch saogf:Noveller ; - :prefLabel "Novell"@sv , - "Short Story"@en . - f:SpokenBook a :Form ; rdfs:subClassOf t:Audiobook , f:SpokenWord ; @@ -509,8 +545,9 @@ f:SpokenBook a :Form ; "Spoken Book"@en . f:SpokenWord a :Form ; - rdfs:subClassOf t:NonBookText , - s:Audio ; + :exactMatch kbrda:SpokenWord ; + rdfs:subClassOf kbv:Text , + kbv:Audio ; :prefLabel "Tal"@sv , "Spoken Word"@en . @@ -540,13 +577,6 @@ f:Tables a :Form ; :prefLabel "Tabell"@sv , "Tables"@en . -f:TactileCartography a :Form ; - rdfs:subClassOf kbv:Cartography , - s:Tactile ; - skos:editorialNote "TODO: edge case? Force a choice of primary purpose of expression? This is not a11y, that's about the instance. Mixed purposes can be solved by primary purpose as type and additional \"color\" as genre."@en ; - :prefLabel "Taktilt kartografiskt verk"@sv , - "Tactile Cartography"@en . - f:Toy a :Form ; rdfs:subClassOf f:InteractiveObject ; :prefLabel "Leksak"@sv , @@ -560,22 +590,39 @@ f:Trailer a :Form ; f:Website a :Form ; rdfs:subClassOf kbv:OnlineResource , - t:Collection ; + f:Integrating ; :exactMatch saogf:Webbplatser ; :prefLabel "Webbplats"@sv , "Website"@en . -# TODO: -#f:BrailleBook a :CarrierForm ; -# rdfs:subClassOf t:TactileBook ; -# :prefLabel "Punktskriftsbok"@sv, "Braille Books"@en . - -# TODO: -#cr:Leporello a :CarrierForm ; -# rdfs:subClassOf rdacarrier:NonVolumePrint ; -# :exactMatch saogf:Leporello . - -# TODO: -#cr:MusicRecording a :CarrierForm ; -# rdfs:subClassOf kbv:SoundRecording, kbv:Music ; -# :exactMatch saogf:Musikinspelningar . +## labels extracted from RDA data: +f:CartographicDataset + :prefLabel "kartografiskt dataset"@sv , + "cartographic dataset"@en . +f:CartographicImage + :prefLabel "kartografisk bild"@sv , + "cartographic image"@en . +f:CartographicMovingImage + :prefLabel "kartografisk rörlig bild"@sv , + "cartographic moving image"@en . +f:CartographicTactileImage + :prefLabel "kartografisk taktil bild"@sv , + "cartographic tactile image"@en . +f:CartographicThreeDimensionalForm + :prefLabel "kartografisk tredimensionell form"@sv , + "cartographic three-dimensional form"@en . +f:TactileImage + :prefLabel "taktil bild"@sv , + "tactile image"@en . +f:TactileNotatedMovement + :prefLabel "taktil noterad rörelse"@sv , + "tactile notated movement"@en . +f:TactileNotatedMusic + :prefLabel "taktil noterad musik"@sv , + "tactile notated music"@en . +f:TactileText + :prefLabel "taktil text"@sv , + "tactile text"@en . +f:TactileThreeDimensionalForm + :prefLabel "taktil tredimensionell form"@sv , + "tactile three-dimensional form"@en . From b9b8db7c562766f6900ea78743d7bcb9b83a94cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Wed, 5 Jun 2024 12:43:31 +0200 Subject: [PATCH 10/69] Update type mappings - Move more candidates to Genre - Change ComicSeries to ComicSerial --- source/vocab/newtypes/kbgf.ttl | 38 +++++++++++++++++++++++++++ source/vocab/newtypes/kbtf.ttl | 47 ++++------------------------------ 2 files changed, 43 insertions(+), 42 deletions(-) diff --git a/source/vocab/newtypes/kbgf.ttl b/source/vocab/newtypes/kbgf.ttl index 2b5684bd..8d402db8 100644 --- a/source/vocab/newtypes/kbgf.ttl +++ b/source/vocab/newtypes/kbgf.ttl @@ -35,6 +35,13 @@ g:AbstractSummary a :Genre ; :prefLabel "Sammanfattning"@sv , "Abstract Summary"@en . +g:Almanac a :Genre ; + rdfs:subClassOf g:ReferenceWork ; # inte alltid t:IllustratedWork ; + :related t:SerialPublication ; # TODO: + :exactMatch saogf:Almanackor ; + :prefLabel "Almanacka"@sv , + "Almanac"@en . + g:Blog a :Genre ; rdfs:subClassOf f:Website , t:NonBookText ; @@ -44,6 +51,18 @@ g:Blog a :Genre ; :prefLabel "Blogg"@sv , "Blog"@en . +g:Calendar a :Genre ; + rdfs:subClassOf g:ReferenceWork ; # inte alltid t:IllustratedWork ; + :exactMatch saogf:Kalendrar ; + :prefLabel "Kalender"@sv , + "Calendar"@en . + +g:Catalogue a :Genre ; + rdfs:subClassOf g:ReferenceWork ; + :exactMatch saogf:Kataloger ; + :prefLabel "Katalog"@sv , + "Catalogue"@en . + f:CollectedWork a :Genre ; # :GenreForm rdfs:subClassOf t:CollectingResource ; skos:editorialNote "TODO: CollectedPart vs. CollectingWork! Cf. bibo:CollectedDocument, bibo:MultiVolumeBook, t:MultipartBook"@en ; @@ -233,6 +252,12 @@ g:RadioProgram a :Genre ; :prefLabel "Radioprogram"@sv , "Radio Program"@en . +g:RecordOrDeed a :Genre ; + rdfs:subClassOf t:NonBookText ; + :exactMatch saogf:Handlingar\%20\%28dokument\%29 ; + :prefLabel "Handlingar (dokument)"@sv , + "Records (Documents)"@en . + g:ReferenceWork a :Genre ; rdfs:subClassOf kbv:Text ; owl:equivalentClass bibo:ReferenceSource ; @@ -242,6 +267,12 @@ g:ReferenceWork a :Genre ; :prefLabel "Referensverk"@sv , "Reference Work"@en . +g:Register a :Genre ; + rdfs:subClassOf t:CollectingResource ; + :exactMatch saogf:F\%C3\%B6rteckningar ; + :prefLabel "Förteckning"@sv , + "Register"@en . + g:RolePlayingGame a :Genre ; rdfs:subClassOf f:PuzzleOrGame ; :exactMatch saogf:Rollspel ; @@ -286,6 +317,13 @@ g:Statistics a :Genre ; :prefLabel "Statistik"@sv , "Statistics"@en . +g:Tables a :Genre ; + rdfs:subClassOf g:ReferenceWork ; + :exactMatch saogf:Tabeller ; + :related kbv:Dataset ; + :prefLabel "Tabell"@sv , + "Tables"@en . + g:Timetable a :Genre ; rdfs:subClassOf f:Tables , f:Ephemera ; diff --git a/source/vocab/newtypes/kbtf.ttl b/source/vocab/newtypes/kbtf.ttl index ea2da6c0..704c1e9d 100644 --- a/source/vocab/newtypes/kbtf.ttl +++ b/source/vocab/newtypes/kbtf.ttl @@ -81,6 +81,7 @@ f:Globe a :Form ; "Globe"@en . # FIXME: move instancetype kbv:Map to work +# TODO: == Cartography f:Map a :Form ; rdfs:subClassOf f:CartographicImage ; :prefLabel "Karta"@sv , @@ -324,14 +325,6 @@ t:TactileBook a :BasicType ; :prefLabel "Tactile Book"@en , "Taktil bok"@sv . -f:Almanac a :Form ; - rdfs:subClassOf t:SerialPublication , - g:ReferenceWork , - t:IllustratedWork ; - :exactMatch saogf:Almanackor ; - :prefLabel "Almanacka"@sv , - "Almanac"@en . - f:AudioProgram a :Form ; rdfs:subClassOf f:NonMusicAudio ; :prefLabel "Ljudprogram"@sv , @@ -361,19 +354,6 @@ f:Broschure a :Form ; :prefLabel "Broschyr"@sv , "Broschure"@en . -f:Calendar a :Form ; - rdfs:subClassOf g:ReferenceWork , - t:IllustratedWork ; - :exactMatch saogf:Kalendrar ; - :prefLabel "Kalender"@sv , - "Calendar"@en . - -f:Catalogue a :Form ; - rdfs:subClassOf g:ReferenceWork ; - :exactMatch saogf:Kataloger ; - :prefLabel "Katalog"@sv , - "Catalogue"@en . - f:Comic a :Form ; rdfs:subClassOf g:GraphicLiterature ; :exactMatch saogf:Serietidningar ; @@ -387,10 +367,11 @@ f:ComicIssue a :Form ; :prefLabel "Serietidningsnummer"@sv , "Comic Issue"@en . -f:ComicSeries a :Form ; +f:ComicSerial a :Form ; rdfs:comment "TODO: series of issues vs. arc of stories?" ; rdfs:subClassOf f:Comic , - t:MonographicSeries ; + t:SerialPublication ; + # t:MonographicSeries ; # TODO: Separate ComicSeries ? owl:equivalentClass sdo:ComicSeries ; :prefLabel "Serietidningsserie"@sv , "Comic Series"@en . @@ -474,7 +455,7 @@ f:Painting a :Form ; :prefLabel "Målning"@sv , "Painting"@en . -f:PerformedMusic a :Form ; +t:PerformedMusic a :BasicType ; :exactMatch kbrda:PerformedMusic ; rdfs:subClassOf kbv:Audio , kbv:Music ; @@ -520,18 +501,6 @@ f:Puzzle a :Form ; :prefLabel "Pussel"@sv , "Puzzle"@en . -f:Register a :Form ; - rdfs:subClassOf t:CollectingResource ; - :exactMatch saogf:F\%C3\%B6rteckningar ; - :prefLabel "Förteckning"@sv , - "Register"@en . - -f:RecordOrDeed a :Form ; - rdfs:subClassOf t:NonBookText ; - :exactMatch saogf:Handlingar\%20\%28dokument\%29 ; - :prefLabel "Handlingar (dokument)"@sv , - "Records (Documents)"@en . - f:Sculpture a :Form ; rdfs:subClassOf kbv:Object ; :prefLabel "Skulptur"@sv , @@ -571,12 +540,6 @@ f:TVSeries a :Form ; :prefLabel "Tv-serie"@sv , "TV-Series"@en . -f:Tables a :Form ; - rdfs:subClassOf g:ReferenceWork ; - :exactMatch saogf:Tabeller ; - :prefLabel "Tabell"@sv , - "Tables"@en . - f:Toy a :Form ; rdfs:subClassOf f:InteractiveObject ; :prefLabel "Leksak"@sv , From d890614207efc021a6060b225789280fa28c9d4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Wed, 12 Jun 2024 14:53:39 +0200 Subject: [PATCH 11/69] Change use of BasicType to just Class --- source/vocab/newtypes/kbgf.ttl | 4 +- source/vocab/newtypes/kbtf.ttl | 80 ++++++++++++++++++++++------------ 2 files changed, 53 insertions(+), 31 deletions(-) diff --git a/source/vocab/newtypes/kbgf.ttl b/source/vocab/newtypes/kbgf.ttl index 8d402db8..d0e45efa 100644 --- a/source/vocab/newtypes/kbgf.ttl +++ b/source/vocab/newtypes/kbgf.ttl @@ -22,8 +22,8 @@ prefix kbrda: base # It is a Genre if *either*: -# - it is not enough to determine under which BasicType or Form it belongs (it is a base); -# - *or* it represents a combination of BasicType or Form and a Genre (it adds a nuance). +# - it is not enough to determine under which Class or Form it belongs (it is a base); +# - *or* it represents a combination of Class or Form and a Genre (it adds a nuance). # TODO: replace subClassOf with broader and equivalentClass with broadMatch diff --git a/source/vocab/newtypes/kbtf.ttl b/source/vocab/newtypes/kbtf.ttl index 704c1e9d..63036fd4 100644 --- a/source/vocab/newtypes/kbtf.ttl +++ b/source/vocab/newtypes/kbtf.ttl @@ -31,7 +31,7 @@ kbv:Arrangement a :Class ; "Arrangemang"@sv . -kbv:Cartography a :Class ; +kbv:Cartography a owl:Class ; rdfs:subClassOf kbv:Visual ; skos:editorialNote "TODO: restriction on Map for instanceOf; allValuesFrom this..."@en ; :exactMatch saogf:Kartor ; @@ -165,44 +165,57 @@ kbv:NotatedMovement a :Class ; :prefLabel "Notated movement"@en , "Noterad rörelse"@sv . -t:SerialPublication a :BasicType ; +t:SerialPublication a :Class ; + :category :OrderingType ; rdfs:subClassOf t:CollectingResource ; :exactMatch saogf:Seriella\%20publikationer ; :prefLabel "Seriell publikation"@sv , "Serial Publication"@en . -t:IllustratedWork a :BasicType ; +t:IllustratedWork a :Class ; + :category :OrderingType ; rdfs:subClassOf kbv:Visual ; :broadMatch kbrda:StillImage ; :exactMatch saogf:Illustrerade\%20verk ; :prefLabel "Illustrerat verk"@sv , "Illustrated Work"@en . -t:Book a :BasicType ; +t:Book a :Class ; # T:LargeText + :category :OrderingType ; owl:equivalentClass bibo:Book, sdo:Book ; rdfs:subClassOf kbv:Text ; :prefLabel "Book"@en , "Bok"@sv . -t:NonBookText a :BasicType ; +t:NonBookText a :Class ; + :category :OrderingType ; ptg:abstract true ; rdfs:subClassOf kbv:Text ; :prefLabel "Non-book text"@en , "Enskild text"@sv . +t:Booklet a :Form ; # t:MediumText + rdfs:subClassOf t:NonBookText ; + :prefLabel "Texthäfte"@sv , "Booklet"@en . + +t:Textleaf a :Form ; # t:SmallText + rdfs:subClassOf t:NonBookText ; + :prefLabel "Textblad"@sv , "Text leaf"@en . + f:NonBookTextWithImages a :Form ; - rdfs:subClassOf t:NonBookText , - t:IllustratedWork ; + rdfs:subClassOf t:NonBookText , t:IllustratedWork ; :prefLabel "Enskild text med bilder"@sv , "Non-book With Images"@en . -t:Issue a :BasicType ; +t:Issue a :Class ; + :category :OrderingType ; rdfs:subClassOf t:NonBookText ; owl:equivalentClass bibo:Issue ; :prefLabel "Tidskriftsnummer"@sv , "Periodical Issue"@en . -t:MonographicSeries a :BasicType ; +t:MonographicSeries a :Class ; + :category :OrderingType ; rdfs:subClassOf t:CollectingResource ; owl:equivalentClass bibo:Series , bf:Series, @@ -210,13 +223,15 @@ t:MonographicSeries a :BasicType ; :prefLabel "Monograph Series"@en , "Monografiserie"@sv . -kbv:Object a :BasicType ; +kbv:Object a :Class ; + :category :OrderingType ; :broadMatch kbrda:ThreeDimensionalForm ; # TODO: rename or altLabel? owl:equivalentClass t:ObjectByPurpose ; :prefLabel "Intensional Object"@en , "Syftesmässig sak"@sv . -t:WrittenBook a :BasicType ; +t:WrittenBook a :Class ; + :category :OrderingType ; :broadMatch kbrda:Text ; rdfs:subClassOf t:Book ; :prefLabel "Written book"@en , @@ -227,7 +242,8 @@ kbv:Audio a :SensoryForm ; :prefLabel "Audio"@en , "Ljud"@sv . -t:BookWithImages a :BasicType ; +t:BookWithImages a :Class ; + :category :OrderingType ; rdfs:subClassOf t:WrittenBook , t:IllustratedWork ; skos:editorialNote "TODO: PictorialWork?"@en ; :broadMatch saogf:Bildverk ; @@ -235,7 +251,8 @@ t:BookWithImages a :BasicType ; :prefLabel "Bok med bilder"@sv , "Book With Images"@en . -t:CollectingResource a :BasicType ; +t:CollectingResource a :Class ; + :category :OrderingType ; ptg:abstract true ; :prefLabel "Collecting Resource"@en , "Samlande resurs"@sv . @@ -262,7 +279,8 @@ f:Integrating a :Class ; :prefLabel "Integrating"@en , "Integrerande"@sv . -t:Periodical a :BasicType ; +t:Periodical a :Class ; + :category :OrderingType ; rdfs:seeAlso ; rdfs:subClassOf t:SerialPublication ; :exactMatch saogf:Periodika ; @@ -270,7 +288,8 @@ t:Periodical a :BasicType ; :prefLabel "Tidskrift"@sv , "Periodical"@en . -t:Film a :BasicType ; +t:Film a :Class ; + :category :OrderingType ; rdfs:subClassOf kbv:MovingImage ; owl:equivalentClass bibo:Film ; :exactMatch saogf:Filmer ; @@ -281,19 +300,22 @@ kbv:Visual a :SensoryForm ; :prefLabel "Visual"@en , "Visuellt verk"@sv . -t:Archive a :BasicType ; +t:Archive a :Class ; + :category :OrderingType ; rdfs:subClassOf t:CollectingResource ; :exactMatch saogf:Arkiv ; :prefLabel "Arkiv"@sv , "Archive"@en . -t:Article a :BasicType ; +t:Article a :Class ; + :category :OrderingType ; rdfs:subClassOf t:NonBookText ; owl:equivalentClass bibo:Article ; :prefLabel "Artikel"@sv , "Article"@en . -t:Audiobook a :BasicType ; +t:Audiobook a :Class ; + :category :OrderingType ; rdfs:subClassOf kbv:Audio , t:Book , bibo:AudioDocument ; @@ -301,22 +323,16 @@ t:Audiobook a :BasicType ; :prefLabel "Ljudbok"@sv , "Audiobook"@en . -t:CollectedWork a :BasicType ; - rdfs:subClassOf t:CollectingResource ; - skos:editorialNote "TODO: CollectedPart vs. CollectingWork! Cf. bibo:CollectedDocument, bibo:MultiVolumeBook, t:MultipartBook"@en ; - :exactMatch saogf:Samlingsverk ; - :closeMatch bibo:CollectedDocument ; - :prefLabel "Samlingsverk"@sv , - "Collected Work"@en . - -t:Database a :BasicType ; +t:Database a :Class ; + :category :OrderingType ; rdfs:subClassOf f:Integrating ; :exactMatch saogf:Databaser ; :narrowMatch marc:UpdatingDatabase ; :prefLabel "Databas"@sv , "Database"@en . -t:TactileBook a :BasicType ; +t:TactileBook a :Class ; + :category :OrderingType ; rdfs:subClassOf t:Book , kbv:Tactile ; skos:editorialNote "TODO: differentiate between \"filtbok\" och \"punktskriftsbok\"?"@en ; @@ -455,7 +471,8 @@ f:Painting a :Form ; :prefLabel "Målning"@sv , "Painting"@en . -t:PerformedMusic a :BasicType ; +t:PerformedMusic a :Class ; + :category :OrderingType ; :exactMatch kbrda:PerformedMusic ; rdfs:subClassOf kbv:Audio , kbv:Music ; @@ -488,6 +505,11 @@ f:Postcard a :Form ; :prefLabel "Vykort"@sv , "Postcard"@en . +# TODO: GenreForm? +#f:PostcardBook a :Form ; +# rdfs:subClassOf f:Postcard , f:Book ; +# :exactMatch ; + f:Poster a :Form ; rdfs:subClassOf t:IllustratedWork ; owl:equivalentClass sdo:Poster ; From 17c1ba4408a08c60359e085573fe08199a89e69e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Wed, 12 Jun 2024 14:55:54 +0200 Subject: [PATCH 12/69] Use rdfs and skos prefixes where applicable --- source/vocab/newtypes/kbcr.ttl | 144 +++++++++++++------------- source/vocab/newtypes/kbgf.ttl | 182 ++++++++++++++++----------------- source/vocab/newtypes/kbtf.ttl | 112 ++++++++++---------- 3 files changed, 219 insertions(+), 219 deletions(-) diff --git a/source/vocab/newtypes/kbcr.ttl b/source/vocab/newtypes/kbcr.ttl index a9cfa1c4..6e114cb5 100644 --- a/source/vocab/newtypes/kbcr.ttl +++ b/source/vocab/newtypes/kbcr.ttl @@ -30,8 +30,8 @@ prefix kbrda: # #kbv:MultipleUnits a :AggregationType ; # rdfs:subClassOf kbv:Instance ; -# :closeMatch marc:MixedForms ; -# :narrowMatch marc:MonographicSeries ; +# skos:closeMatch marc:MixedForms ; +# skos:narrowMatch marc:MonographicSeries ; # ptg:abstract true . # TODO: For export-to-bf+rda or revert-to-marc; use type-like properties to @@ -44,7 +44,7 @@ prefix kbrda: kbv:Unmediated a :MediaType ; ptg:abstract true ; rdfs:subClassOf kbv:Instance ; - :exactMatch kbrda:Unmediated . + skos:exactMatch kbrda:Unmediated . kbv:Print a owl:Class; rdfs:subClassOf kbv:Unmediated . @@ -54,11 +54,11 @@ kbv:Handwritten a :Class; rdfs:subClassOf kbv:Unmediated . kbv:Typewrittten a :Class; rdfs:subClassOf kbv:Unmediated . # mer extraordinärt? Sitter på exemplar? -#kbv:Photocopied a :Class; rdfs:subClassOf kbv:Unmediated ; :related marc:RegularPrintReproduction . +#kbv:Photocopied a :Class; rdfs:subClassOf kbv:Unmediated ; skos:related marc:RegularPrintReproduction . kbv:Volume a :CarrierType; #ptg:abstract true ; - :exactMatch kbrda:Volume ; + skos:exactMatch kbrda:Volume ; rdfs:subClassOf kbv:Unmediated . kbv:MassProducedVolume a :Class ; @@ -82,19 +82,19 @@ kbv:Manuscript a owl:Class ; # TODO: changed to Work in BF kbv:Card a :CarrierType; - :exactMatch kbrda:Card ; + skos:exactMatch kbrda:Card ; rdfs:subClassOf kbv:Unmediated . kbv:Flipchart a :CarrierType; - :exactMatch kbrda:Flipchart ; + skos:exactMatch kbrda:Flipchart ; rdfs:subClassOf kbv:Unmediated . kbv:Roll a :CarrierType; - :exactMatch kbrda:Roll ; + skos:exactMatch kbrda:Roll ; rdfs:subClassOf kbv:Unmediated . kbv:Sheet a :CarrierType; - :exactMatch kbrda:Sheet ; + skos:exactMatch kbrda:Sheet ; rdfs:subClassOf kbv:Unmediated . kbv:PrintedSheet a :Class ; @@ -106,7 +106,7 @@ kbv:NonPrintedSheet a :Class ; # TODO: Every non-DigitalResource is physical of course; this is for "none of the others; actual purposeful 3d object"... kbv:PhysicalObject a owl:Class ; - :exactMatch kbrda:Object ; + skos:exactMatch kbrda:Object ; rdfs:subClassOf kbv:Unmediated . @@ -114,7 +114,7 @@ kbv:Tactile a :Class ; rdfs:subClassOf kbv:Unmediated . kbv:BrailleResource a :Class ; - :exactMatch marc:Braille ; + skos:exactMatch marc:Braille ; rdfs:subClassOf kbv:Tactile, kbv:Print . kbv:BrailleVolume a :Class ; @@ -122,14 +122,14 @@ kbv:BrailleVolume a :Class ; owl:onProperty kbv:instanceOf ; owl:allValuesFrom t:TactileBook ] ; - :exactMatch saogf:Punktskriftsb\%C3\%B6cker . + skos:exactMatch saogf:Punktskriftsb\%C3\%B6cker . # :prefLabel "Punktskriftsvolym"@sv, "Braille Volume"@en . # "Mediated" kbv:Electronic a owl:Class ; # :MediaType ; ptg:abstract true ; - :exactMatch kbrda:Computer, marc:Electronic ; + skos:exactMatch kbrda:Computer, marc:Electronic ; rdfs:subClassOf kbv:Instance . @@ -142,24 +142,24 @@ kbv:StorageMedium a owl:Class ; kbv:TapeCartridge a :Class ; rdfs:subClassOf kbv:StorageMedium ; ptg:abstract true ; - :exactMatch marc:TapeCartridge . + skos:exactMatch marc:TapeCartridge . kbv:TapeCassette a :Class ; rdfs:subClassOf kbv:StorageMedium ; ptg:abstract true ; - :exactMatch marc:TapeCassette . + skos:exactMatch marc:TapeCassette . kbv:TapeReel a :Class ; ptg:abstract true ; rdfs:subClassOf kbv:StorageMedium ; - :exactMatch marc:TapeReel . + skos:exactMatch marc:TapeReel . kbv:MagneticDisk a :CarrierType ; - :exactMatch marc:MagneticDisk ; + skos:exactMatch marc:MagneticDisk ; rdfs:subClassOf kbv:StorageMedium . kbv:MagnetoOpticalDisc a :CarrierType ; - :exactMatch marc:MagnetoOpticalDisc ; + skos:exactMatch marc:MagnetoOpticalDisc ; rdfs:subClassOf kbv:StorageMedium . kbv:OpticalReel a :Class ; @@ -167,53 +167,53 @@ kbv:OpticalReel a :Class ; rdfs:subClassOf kbv:StorageMedium . kbv:OpticalDisc a :CarrierType ; - :exactMatch marc:OpticalDisc ; + skos:exactMatch marc:OpticalDisc ; rdfs:subClassOf kbv:StorageMedium . kbv:ElectronicStorageMedium a :Class ; ptg:abstract true ; - :exactMatch marc:DirectElectronic ; + skos:exactMatch marc:DirectElectronic ; rdfs:subClassOf kbv:Electronic, kbv:StorageMedium . kbv:DigitalResource a :CarrierType ; - :broadMatch marc:Remote ; - :exactMatch marc:Online, marc:OnlineResource, kbrda:OnlineResource ; + skos:broadMatch marc:Remote ; + skos:exactMatch marc:Online, marc:OnlineResource, kbrda:OnlineResource ; rdfs:subClassOf kbv:Electronic . kbv:ChipCartridge a :CarrierType ; rdfs:subClassOf kbv:ElectronicStorageMedium ; - :exactMatch kbrda:ComputerChipCartridge, marc:ChipCartridge . + skos:exactMatch kbrda:ComputerChipCartridge, marc:ChipCartridge . kbv:ComputerCard a :CarrierType ; rdfs:subClassOf kbv:ElectronicStorageMedium ; - :exactMatch kbrda:ComputerCard, marc:ComputerCard . + skos:exactMatch kbrda:ComputerCard, marc:ComputerCard . kbv:ComputerDisc a :CarrierType ; rdfs:subClassOf kbv:ElectronicStorageMedium ; - :broadMatch marc:MagneticDisk ; - :exactMatch kbrda:ComputerDisc, marc:ComputerDisc . + skos:broadMatch marc:MagneticDisk ; + skos:exactMatch kbrda:ComputerDisc, marc:ComputerDisc . kbv:ComputerDiscCartridge a :CarrierType ; rdfs:subClassOf kbv:ElectronicStorageMedium ; - :exactMatch kbrda:ComputerDiscCartridge, marc:ComputerDiscCartridge ; - :narrowMatch marc:ComputerOpticalDiscCartridge . + skos:exactMatch kbrda:ComputerDiscCartridge, marc:ComputerDiscCartridge ; + skos:narrowMatch marc:ComputerOpticalDiscCartridge . kbv:ComputerTapeCartridge a :CarrierType ; rdfs:subClassOf kbv:ElectronicStorageMedium , kbv:TapeCartridge ; - :exactMatch kbrda:ComputerTapeCartridge . + skos:exactMatch kbrda:ComputerTapeCartridge . kbv:ComputerTapeCassette a :CarrierType ; rdfs:subClassOf kbv:ElectronicStorageMedium, kbv:TapeCassette ; - :exactMatch kbrda:ComputerTapeCassette . + skos:exactMatch kbrda:ComputerTapeCassette . kbv:ComputerTapeReel a :CarrierType ; rdfs:subClassOf kbv:ElectronicStorageMedium, kbv:TapeReel ; - :exactMatch kbrda:ComputerTapeReel . + skos:exactMatch kbrda:ComputerTapeReel . kbv:StandaloneDevice a :CarrierType ; - :exactMatch marc:StandaloneDevice ; + skos:exactMatch marc:StandaloneDevice ; rdfs:subClassOf kbv:ElectronicStorageMedium, kbv:PhysicalObject . @@ -222,39 +222,39 @@ kbv:StandaloneDevice a :CarrierType ; kbv:SoundStorageMedium a :MediaType ; owl:sameAs kbv:SoundRecording ; ptg:abstract true ; - :exactMatch kbrda:Audio ; + skos:exactMatch kbrda:Audio ; rdfs:subClassOf kbv:StorageMedium . kbv:AudioDisc a :CarrierType ; rdfs:subClassOf kbv:SoundStorageMedium ; - :exactMatch kbrda:AudioDisc , marc:SoundDisc . + skos:exactMatch kbrda:AudioDisc , marc:SoundDisc . kbv:AudioCassette a :CarrierType ; rdfs:subClassOf kbv:SoundStorageMedium, kbv:TapeCassette ; - :exactMatch kbrda:Audiocassette , marc:SoundCassette . + skos:exactMatch kbrda:Audiocassette , marc:SoundCassette . kbv:AudioCartridge a :CarrierType ; - :exactMatch kbrda:AudioCartridge , marc:SoundCartridge ; + skos:exactMatch kbrda:AudioCartridge , marc:SoundCartridge ; rdfs:subClassOf kbv:SoundStorageMedium . kbv:AudioCylinder a :CarrierType ; - :exactMatch kbrda:AudioCylinder, marc:Cylinder ; + skos:exactMatch kbrda:AudioCylinder, marc:Cylinder ; rdfs:subClassOf kbv:SoundStorageMedium . kbv:AudioRoll a :CarrierType ; - :exactMatch kbrda:AudioRoll , marc:Roll ; + skos:exactMatch kbrda:AudioRoll , marc:Roll ; rdfs:subClassOf kbv:SoundStorageMedium . kbv:AudioTapeReel a :CarrierType ; - :exactMatch kbrda:AudiotapeReel; + skos:exactMatch kbrda:AudiotapeReel; rdfs:subClassOf kbv:SoundStorageMedium , kbv:TapeReel , marc:SoundTapeReel . # Zero uses in Libris... kbv:AudioWireRecording a :CarrierType ; - :exactMatch marc:WireRecording . + skos:exactMatch marc:WireRecording . kbv:SoundTrackReel a :CarrierType ; - :exactMatch kbrda:SoundTrackReel, marc:SoundTrackFilm; + skos:exactMatch kbrda:SoundTrackReel, marc:SoundTrackFilm; rdfs:subClassOf kbv:SoundStorageMedium . @@ -262,23 +262,23 @@ kbv:VideoStorageMedium a :MediaType ; owl:sameAs kbv:VideoRecording ; ptg:abstract true ; # TODO: deprecated baseclass kbv:MovingImageInstance ? - :exactMatch kbrda:Video ; + skos:exactMatch kbrda:Video ; rdfs:subClassOf kbv:StorageMedium . kbv:VideoDisc a :CarrierType ; - :exactMatch kbrda:Videodisc, marc:Videodisc ; + skos:exactMatch kbrda:Videodisc, marc:Videodisc ; rdfs:subClassOf kbv:VideoStorageMedium . kbv:VideoCartridge a :CarrierType ; - :exactMatch kbrda:VideoCartridge, marc:Videocartridge ; + skos:exactMatch kbrda:VideoCartridge, marc:Videocartridge ; rdfs:subClassOf kbv:VideoStorageMedium . kbv:VideoCassette a :CarrierType ; - :exactMatch kbrda:Videocassette, marc:Videocassette ; + skos:exactMatch kbrda:Videocassette, marc:Videocassette ; rdfs:subClassOf kbv:VideoStorageMedium, kbv:TapeCassette . kbv:VideoTapeReel a :CarrierType ; - :exactMatch kbrda:VideotapeReel , marc:Videoreel ; + skos:exactMatch kbrda:VideotapeReel , marc:Videoreel ; rdfs:subClassOf kbv:VideoStorageMedium, kbv:TapeReel . @@ -286,116 +286,116 @@ kbv:VideoTapeReel a :CarrierType ; kbv:Microform a :MediaType ; ptg:abstract true ; - :exactMatch kbrda:Microform; + skos:exactMatch kbrda:Microform; rdfs:subClassOf kbv:StorageMedium . kbv:Microfilm a :CarrierType ; ptg:abstract true ; - :exactMatch marc:Microfilm ; + skos:exactMatch marc:Microfilm ; rdfs:subClassOf kbv:Microform . kbv:ApertureCard a :CarrierType ; - :exactMatch kbrda:ApertureCard, marc:ApertureCard ; + skos:exactMatch kbrda:ApertureCard, marc:ApertureCard ; rdfs:subClassOf kbv:Microform . kbv:Microfiche a :CarrierType ; - :exactMatch kbrda:Microfiche ; + skos:exactMatch kbrda:Microfiche ; rdfs:subClassOf kbv:Microform, marc:Microfiche . kbv:MicroficheCassette a :CarrierType ; - :exactMatch kbrda:MicroficheCassette, marc:MicroficheCassette ; + skos:exactMatch kbrda:MicroficheCassette, marc:MicroficheCassette ; rdfs:subClassOf kbv:Microform . kbv:MicrofilmCartridge a :CarrierType ; - :exactMatch kbrda:MicrofilmCartridge, marc:MicrofilmCartridge ; + skos:exactMatch kbrda:MicrofilmCartridge, marc:MicrofilmCartridge ; rdfs:subClassOf kbv:Microfilm . kbv:MicrofilmCassette a :CarrierType ; - :exactMatch kbrda:MicrofilmCassette, marc:MicrofilmCassette ; + skos:exactMatch kbrda:MicrofilmCassette, marc:MicrofilmCassette ; rdfs:subClassOf kbv:Microfilm . kbv:MicrofilmReel a :CarrierType ; - :exactMatch kbrda:MicrofilmReel, marc:MicrofilmReel ; + skos:exactMatch kbrda:MicrofilmReel, marc:MicrofilmReel ; rdfs:subClassOf kbv:Microfilm . kbv:MicrofilmRoll a :CarrierType ; - :exactMatch kbrda:MicrofilmRoll, marc:MicrofilmRoll ; + skos:exactMatch kbrda:MicrofilmRoll, marc:MicrofilmRoll ; rdfs:subClassOf kbv:Microfilm, kbv:VideoStorageMedium . kbv:MicrofilmSlip a :CarrierType ; - :exactMatch kbrda:MicrofilmSlip, marc:MicrofilmSlip ; + skos:exactMatch kbrda:MicrofilmSlip, marc:MicrofilmSlip ; rdfs:subClassOf kbv:Microform . kbv:Microopaque a :CarrierType ; - :exactMatch kbrda:Microopaque ; + skos:exactMatch kbrda:Microopaque ; rdfs:subClassOf kbv:Microform, marc:Microopaque . kbv:Microscopic a :MediaType ; ptg:abstract true ; - :exactMatch kbrda:Microscopic; + skos:exactMatch kbrda:Microscopic; rdfs:subClassOf kbv:StorageMedium . kbv:MicroscopeSlide a :CarrierType ; - :exactMatch kbrda:MicroscopeSlide ; + skos:exactMatch kbrda:MicroscopeSlide ; rdfs:subClassOf kbv:Microscopic . kbv:Projected a :MediaType ; ptg:abstract true ; - :exactMatch kbrda:Projected; + skos:exactMatch kbrda:Projected; rdfs:subClassOf kbv:StorageMedium . kbv:FilmCartridge a :CarrierType ; - :exactMatch kbrda:FilmCartridge ; + skos:exactMatch kbrda:FilmCartridge ; rdfs:subClassOf kbv:Projected . kbv:FilmCassette a :CarrierType ; - :exactMatch kbrda:FilmCassette ; + skos:exactMatch kbrda:FilmCassette ; rdfs:subClassOf kbv:Projected . kbv:FilmReel a :CarrierType ; - :exactMatch kbrda:FilmReel ; + skos:exactMatch kbrda:FilmReel ; rdfs:subClassOf kbv:Projected . kbv:FilmRoll a :CarrierType ; - :exactMatch kbrda:FilmRoll ; + skos:exactMatch kbrda:FilmRoll ; rdfs:subClassOf kbv:Projected . kbv:Filmslip a :CarrierType ; - :exactMatch kbrda:Filmslip, marc:Filmslip ; + skos:exactMatch kbrda:Filmslip, marc:Filmslip ; rdfs:subClassOf kbv:Projected . # TODO: Ensure difference between StillImage Projected and MovingImage Projected! # See e.g. <> kbv:Filmstrip a :CarrierType ; - :exactMatch kbrda:Filmstrip, marc:FilmstripRoll ; + skos:exactMatch kbrda:Filmstrip, marc:FilmstripRoll ; rdfs:subClassOf kbv:Projected . kbv:FilmstripCartridge a :CarrierType ; - :exactMatch kbrda:FilmstripCartridge, marc:FilmstripCartridge ; + skos:exactMatch kbrda:FilmstripCartridge, marc:FilmstripCartridge ; rdfs:subClassOf kbv:Projected . kbv:OverheadTransparency a :CarrierType ; - :exactMatch kbrda:OverheadTransparency, marc:Transparency ; + skos:exactMatch kbrda:OverheadTransparency, marc:Transparency ; rdfs:subClassOf kbv:Projected . kbv:Slide a :CarrierType ; - :exactMatch kbrda:Slide, marc:Slide ; + skos:exactMatch kbrda:Slide, marc:Slide ; rdfs:subClassOf kbv:Projected . kbv:Stereographic a :MediaType ; ptg:abstract true ; - :exactMatch kbrda:Stereographic ; + skos:exactMatch kbrda:Stereographic ; rdfs:subClassOf kbv:StorageMedium . kbv:StereographCard a :CarrierType ; - :exactMatch kbrda:StereographCard; + skos:exactMatch kbrda:StereographCard; rdfs:subClassOf kbv:Stereographic . kbv:StereographDisc a :CarrierType ; - :exactMatch kbrda:StereographDisc; + skos:exactMatch kbrda:StereographDisc; rdfs:subClassOf kbv:Stereographic . diff --git a/source/vocab/newtypes/kbgf.ttl b/source/vocab/newtypes/kbgf.ttl index d0e45efa..ed2e5047 100644 --- a/source/vocab/newtypes/kbgf.ttl +++ b/source/vocab/newtypes/kbgf.ttl @@ -29,16 +29,16 @@ base g:AbstractSummary a :Genre ; rdfs:subClassOf t:NonBookText ; - :exactMatch saogf:Sammanfattningar ; + skos:exactMatch saogf:Sammanfattningar ; :inCollection f:informative-work ; - :seeAlso ; + rdfs:seeAlso ; :prefLabel "Sammanfattning"@sv , "Abstract Summary"@en . g:Almanac a :Genre ; rdfs:subClassOf g:ReferenceWork ; # inte alltid t:IllustratedWork ; - :related t:SerialPublication ; # TODO: - :exactMatch saogf:Almanackor ; + skos:related t:SerialPublication ; # TODO: + skos:exactMatch saogf:Almanackor ; :prefLabel "Almanacka"@sv , "Almanac"@en . @@ -46,34 +46,34 @@ g:Blog a :Genre ; rdfs:subClassOf f:Website , t:NonBookText ; owl:equivalentClass sdo:Blog ; - :exactMatch saogf:Bloggar ; + skos:exactMatch saogf:Bloggar ; :inCollection f:informative-work ; :prefLabel "Blogg"@sv , "Blog"@en . g:Calendar a :Genre ; rdfs:subClassOf g:ReferenceWork ; # inte alltid t:IllustratedWork ; - :exactMatch saogf:Kalendrar ; + skos:exactMatch saogf:Kalendrar ; :prefLabel "Kalender"@sv , "Calendar"@en . g:Catalogue a :Genre ; rdfs:subClassOf g:ReferenceWork ; - :exactMatch saogf:Kataloger ; + skos:exactMatch saogf:Kataloger ; :prefLabel "Katalog"@sv , "Catalogue"@en . f:CollectedWork a :Genre ; # :GenreForm rdfs:subClassOf t:CollectingResource ; skos:editorialNote "TODO: CollectedPart vs. CollectingWork! Cf. bibo:CollectedDocument, bibo:MultiVolumeBook, t:MultipartBook"@en ; - :exactMatch saogf:Samlingsverk ; - :closeMatch bibo:CollectedDocument ; + skos:exactMatch saogf:Samlingsverk ; + skos:closeMatch bibo:CollectedDocument ; :prefLabel "Samlingsverk"@sv , "Collected Work"@en . g:ConferenceMaterial a :Genre ; rdfs:subClassOf t:NonBookText ; - :exactMatch saogf:Konferensmaterial ; + skos:exactMatch saogf:Konferensmaterial ; :inCollection div:ephemera , f:informative-work ; :prefLabel "Konferensmaterial"@sv , @@ -81,32 +81,32 @@ g:ConferenceMaterial a :Genre ; f:ControlledVocabulary a :Genre ; rdfs:subClassOf g:ReferenceWork ; - :exactMatch saogf:Kontrollerade\%20vokabul\%C3\%A4rer ; + skos:exactMatch saogf:Kontrollerade\%20vokabul\%C3\%A4rer ; :prefLabel "Kontrollerad vokabulär"@sv , "Controlled Vocabulary"@en . g:CourseMaterial a :Genre ; rdfs:subClassOf g:TeachingMaterial ; - :exactMatch saogf:Kursmaterial ; + skos:exactMatch saogf:Kursmaterial ; :inCollection div:ephemera ; :prefLabel "Kursmaterial"@sv , "Course Material"@en . g:Encyclopedia a :Genre ; rdfs:subClassOf g:ReferenceWork, t:Book ; - :exactMatch saogf:Encyklopedier ; + skos:exactMatch saogf:Encyklopedier ; :prefLabel "Encyklopedia"@sv , "Encyclopedia"@en . g:Lexicon a :Genre ; rdfs:subClassOf g:ReferenceWork, t:Book ; - :exactMatch saogf:Lexikon ; + skos:exactMatch saogf:Lexikon ; :prefLabel "Lexikon"@sv , "Lexicon"@en . g:TeachingMaterial a :Genre ; rdfs:seeAlso ; - :exactMatch saogf:L\%C3\%A4romedel , + skos:exactMatch saogf:L\%C3\%A4romedel , saogf:Instruktions-\%20och\%20undervisningsmaterial ; :prefLabel "Läromedel"@sv , "Teaching Material"@en , @@ -115,15 +115,15 @@ g:TeachingMaterial a :Genre ; g:GraphicLiterature a :Genre ; rdfs:subClassOf t:IllustratedWork , g:Literature ; - :broadMatch kbrda:Text , + skos:broadMatch kbrda:Text , kbrda:Image ; - :exactMatch saogf:Tecknade\%20serier ; + skos:exactMatch saogf:Tecknade\%20serier ; :prefLabel "Tecknad serie"@sv , "Graphic Literature"@en . g:HandSignedCommunication a :Genre ; - :broadMatch kbv:Visual, kbv:Text ; - :exactMatch saogf:TAKK ; + skos:broadMatch kbv:Visual, kbv:Text ; + skos:exactMatch saogf:TAKK ; :prefLabel "TAKK"@sv , "Hand-signed Communication"@en . @@ -131,28 +131,28 @@ g:GraphicNovel a :Genre ; rdfs:subClassOf g:Novel , t:BookWithImages , g:GraphicLiterature ; - :exactMatch saogf:Serieromaner ; + skos:exactMatch saogf:Serieromaner ; :prefLabel "Serieroman"@sv , "Graphic Novel"@en . g:ComicStory a :Genre ; rdfs:subClassOf f:Comic, t:NonBookText ; owl:equivalentClass sdo:ComicStory ; - :narrowMatch saogf:Serienoveller ; + skos:narrowMatch saogf:Serienoveller ; :prefLabel "Serienovell"@sv , "Comic Story"@en . g:Photoseries a :Genre ; rdfs:subClassOf g:GraphicLiterature ; skos:editorialNote "TODO: this is an issue? (foto-serietidning)? Not a Collection?"@en ; - :exactMatch saogf:Fotoserier ; + skos:exactMatch saogf:Fotoserier ; :prefLabel "Fotoserie"@sv , "Photoseries"@en . g:Novel a :Genre ; - :broader g:Literature ; - :broadMatch t:Book ; - :exactMatch saogf:Romaner ; + skos:broader g:Literature ; + skos:broadMatch t:Book ; + skos:exactMatch saogf:Romaner ; :prefLabel "Roman"@sv , "Novel"@en . @@ -160,7 +160,7 @@ g:ShortStory a :Genre ; rdfs:subClassOf t:NonBookText , g:Literature ; owl:equivalentClass sdo:ShortStory ; - :exactMatch saogf:Noveller ; + skos:exactMatch saogf:Noveller ; :prefLabel "Novell"@sv , "Short Story"@en . @@ -176,13 +176,13 @@ g:Journal a :Genre ; g:JournalIssue a :Genre ; rdfs:subClassOf t:Issue ; - :broadMatch g:Journal ; + skos:broadMatch g:Journal ; :prefLabel "Vetenskapstidskriftssnummer"@sv , "Journal Issue"@en . g:Lecture a :Genre ; rdfs:subClassOf g:TeachingMaterial ; - :exactMatch saogf:F\%C3\%B6rel\%C3\%A4sningar ; + skos:exactMatch saogf:F\%C3\%B6rel\%C3\%A4sningar ; :prefLabel "Föreläsning"@sv , "Lecture"@en . @@ -193,7 +193,7 @@ g:Magazine a :Genre ; g:MagazineIssue a :Genre ; rdfs:subClassOf t:Issue ; - :broadMatch t:Magazine ; + skos:broadMatch t:Magazine ; :prefLabel "Magasin-nummer"@sv , "Magazine Issue"@en . @@ -205,32 +205,32 @@ g:MusicRadioProgram a :Genre ; g:MusicRecording a :Genre ; rdfs:subClassOf kbv:Music ; - :exactMatch saogf:Musikinspelningar ; + skos:exactMatch saogf:Musikinspelningar ; :prefLabel "Musikrinspelning"@sv , "Music Recording"@en . g:NewsLetter a :Genre ; rdfs:subClassOf t:SerialPublication ; - :exactMatch saogf:Nyhetsbrev ; + skos:exactMatch saogf:Nyhetsbrev ; :inCollection div:ephemera ; :prefLabel "Nyhetsbrev"@sv , "Newsletter"@en . g:Newspaper a :Genre ; rdfs:subClassOf t:Periodical ; - :exactMatch saogf:Dagstidningar ; + skos:exactMatch saogf:Dagstidningar ; :prefLabel "Dagstidning"@sv , "Newspaper"@en . g:NewspaperIssue a :Genre ; rdfs:subClassOf t:Issue ; - :broadMatch t:Newspaper ; + skos:broadMatch t:Newspaper ; :prefLabel "Dagstidningsnummer"@sv , "Newspaper Issue"@en . g:Pamphlet a :Genre ; rdfs:subClassOf f:Broschure ; - :exactMatch saogf:Pamfletter ; + skos:exactMatch saogf:Pamfletter ; :inCollection div:ephemera ; :prefLabel "Pamflett"@sv , "Pamphlet"@en . @@ -242,103 +242,103 @@ g:Podcast a :Genre ; g:PublicationProgramme a :Genre ; rdfs:subClassOf t:NonBookText ; - :exactMatch saogf:Program\%20\%28publikationer\%29 ; + skos:exactMatch saogf:Program\%20\%28publikationer\%29 ; :prefLabel "Programblad"@sv , "Publication Programme"@en . g:RadioProgram a :Genre ; rdfs:subClassOf f:AudioProgram ; - :exactMatch saogf:Radioprogram ; + skos:exactMatch saogf:Radioprogram ; :prefLabel "Radioprogram"@sv , "Radio Program"@en . g:RecordOrDeed a :Genre ; rdfs:subClassOf t:NonBookText ; - :exactMatch saogf:Handlingar\%20\%28dokument\%29 ; + skos:exactMatch saogf:Handlingar\%20\%28dokument\%29 ; :prefLabel "Handlingar (dokument)"@sv , "Records (Documents)"@en . g:ReferenceWork a :Genre ; rdfs:subClassOf kbv:Text ; owl:equivalentClass bibo:ReferenceSource ; - :exactMatch saogf:Referensverk ; + skos:exactMatch saogf:Referensverk ; :inCollection f:informative-work ; - :seeAlso ; + rdfs:seeAlso ; :prefLabel "Referensverk"@sv , "Reference Work"@en . g:Register a :Genre ; rdfs:subClassOf t:CollectingResource ; - :exactMatch saogf:F\%C3\%B6rteckningar ; + skos:exactMatch saogf:F\%C3\%B6rteckningar ; :prefLabel "Förteckning"@sv , "Register"@en . g:RolePlayingGame a :Genre ; rdfs:subClassOf f:PuzzleOrGame ; - :exactMatch saogf:Rollspel ; + skos:exactMatch saogf:Rollspel ; :prefLabel "Rollspel"@sv , "Roleplaying Game"@en . g:SoundEffectBook a :Genre ; rdfs:subClassOf f:MechanicalBook, s:Audio ; - :exactMatch saogf:B\%C3\%B6cker\%20med\%20ljudeffekter ; + skos:exactMatch saogf:B\%C3\%B6cker\%20med\%20ljudeffekter ; :prefLabel "Bok med ljudeffekt"@sv , "Sound-effect Book"@en . g:PopupBook a :Genre ; rdfs:subClassOf t:BookWithImages ; - :exactMatch ; + skos:exactMatch ; :prefLabel "Pop-up-bok"@sv , "Pop-up Book"@en . g:Review a :Genre ; rdfs:subClassOf t:NonBookText ; owl:equivalentClass sdo:Review ; - :exactMatch saogf:Recensioner ; + skos:exactMatch saogf:Recensioner ; :prefLabel "Recension"@sv , "Review"@en . g:Screenplay a :Genre ; rdfs:subClassOf kbv:Text ; - :exactMatch saogf:Filmmanus ; + skos:exactMatch saogf:Filmmanus ; :prefLabel "Filmmanus"@sv , "Screenplay"@en . g:Standard a :Genre ; rdfs:subClassOf g:ReferenceWork ; owl:equivalentClass bibo:Standard ; - :exactMatch saogf:Standarder ; + skos:exactMatch saogf:Standarder ; :prefLabel "Standard"@sv , "Standard"@en . g:Statistics a :Genre ; rdfs:subClassOf g:ReferenceWork ; - :exactMatch saogf:Statistik ; + skos:exactMatch saogf:Statistik ; :prefLabel "Statistik"@sv , "Statistics"@en . g:Tables a :Genre ; rdfs:subClassOf g:ReferenceWork ; - :exactMatch saogf:Tabeller ; - :related kbv:Dataset ; + skos:exactMatch saogf:Tabeller ; + skos:related kbv:Dataset ; :prefLabel "Tabell"@sv , "Tables"@en . g:Timetable a :Genre ; rdfs:subClassOf f:Tables , f:Ephemera ; - :exactMatch saogf:Tidtabeller ; + skos:exactMatch saogf:Tidtabeller ; :prefLabel "Tidtabell"@sv , "Timetable"@en . g:ThreeDimensionalMovingImage a :Genre ; # :ContentType - :exactMatch kbrda:ThreeDimensionalMovingImage; # sameAs + skos:exactMatch kbrda:ThreeDimensionalMovingImage; # sameAs rdfs:subClassOf kbv:MovingImage ; :prefLabel "Tredimensionell rörlig bild"@sv , "Three-dimensional moving image"@en . g:TwoDimensionalMovingImage a :Genre ; # :ContentType - :exactMatch kbrda:TwoDimensionalMovingImage; # sameAs + skos:exactMatch kbrda:TwoDimensionalMovingImage; # sameAs rdfs:subClassOf kbv:MovingImage ; :prefLabel "Tvådimensionell rörlig bild"@sv , "Two-dimensional moving image"@en . @@ -353,135 +353,135 @@ g:TwoDimensionalMovingImage a :Genre ; # :ContentType #g:LegalDocument a :Genre ; # rdfs:subClassOf kbv:Text ; # owl:equivalentClass bibo:LegalDocument ; -# :exactMatch saogf:Juridiskt\%20material . +# skos:exactMatch saogf:Juridiskt\%20material . #g:Leporello a :Genre ; # rdfs:subClassOf f:NonBookTextWithImages ; -# :exactMatch saogf:Leporello . +# skos:exactMatch saogf:Leporello . #g:Patent a :Genre ; # rdfs:subClassOf kbv:Text ; # owl:equivalentClass bibo:Patent ; -# :exactMatch saogf:Patent ; +# skos:exactMatch saogf:Patent ; # :inCollection . -#g:RareText :exactMatch saogf:Texter . +#g:RareText skos:exactMatch saogf:Texter . #g:Debate a :Genre ; # rdfs:subClassOf t:NonBookText ; -# :exactMatch saogf:Debatter . +# skos:exactMatch saogf:Debatter . #t:AdventCalendar a :Form ; -# :exactMatch saogf:Adventskalendrar ; +# skos:exactMatch saogf:Adventskalendrar ; # rdfs:subClassOf t:Calendar . #g:ReligiousWork a :Form ; -# :exactMatch saogf:Religi\%C3\%B6sa\%20verk . +# skos:exactMatch saogf:Religi\%C3\%B6sa\%20verk . #g:Biography a :Form ; -# :exactMatch saogf:Biografier . +# skos:exactMatch saogf:Biografier . #g:Essay a :Form ; -# :exactMatch saogf:Ess\%C3\%A4er . +# skos:exactMatch saogf:Ess\%C3\%A4er . # TODO: SerialPublication someValuesFrom t:Yearbook #t:Yearbook a :Form ; -# :exactMatch saogf:\%C3\%85rsb\%C3\%B6cker ; +# skos:exactMatch saogf:\%C3\%85rsb\%C3\%B6cker ; # rdfs:subClassOf t:SerialPublication . #:PhraseBook a :Form ; -# :exactMatch saogf:Parl\%C3\%B6rer . +# skos:exactMatch saogf:Parl\%C3\%B6rer . #:Offentligt_tryck a :Form ; -# :exactMatch saogf:Offentligt\%20tryck . +# skos:exactMatch saogf:Offentligt\%20tryck . #:CommemorativeWork a :Form ; -# :exactMatch saogf:Minnesbevarande\%20verk . +# skos:exactMatch saogf:Minnesbevarande\%20verk . #:Debattinlägg a :Form ; -# :exactMatch saogf:Debattinl\%C3\%A4gg . +# skos:exactMatch saogf:Debattinl\%C3\%A4gg . #:Examination a :Form ; -# :exactMatch saogf:Prov\%20och\%20examinationer . +# skos:exactMatch saogf:Prov\%20och\%20examinationer . #:Lucköppningskalendrar a :Form ; -# :exactMatch saogf:Luck\%C3\%B6ppningskalendrar . +# skos:exactMatch saogf:Luck\%C3\%B6ppningskalendrar . #:PressAnnouncement a :Form ; -# :exactMatch saogf:Pressmeddelanden . +# skos:exactMatch saogf:Pressmeddelanden . #:MiniatureBook a :Form ; -# :exactMatch saogf:Miniatyrb\%C3\%B6cker . +# skos:exactMatch saogf:Miniatyrb\%C3\%B6cker . #:MechanicalBook a :Form ; -# :exactMatch saogf:Mekaniska\%20b\%C3\%B6cker . +# skos:exactMatch saogf:Mekaniska\%20b\%C3\%B6cker . #:Pysselböcker a :Form ; -# :exactMatch saogf:Pysselb\%C3\%B6cker . +# skos:exactMatch saogf:Pysselb\%C3\%B6cker . #:Målarböcker a :Form ; -# :exactMatch saogf:Målarb\%C3\%B6cker . +# skos:exactMatch saogf:Målarb\%C3\%B6cker . #:GuideBook a :Form ; -# :exactMatch saogf:Guideb\%C3\%B6cker . +# skos:exactMatch saogf:Guideb\%C3\%B6cker . #:Samhällsinformation a :Form ; -# :exactMatch saogf:Samh\%C3\%A4llsinformation . +# skos:exactMatch saogf:Samh\%C3\%A4llsinformation . #:Chronicle a :Form ; -# :exactMatch saogf:Annaler\%20och\%20kr\%C3\%B6nikor . +# skos:exactMatch saogf:Annaler\%20och\%20kr\%C3\%B6nikor . #:RecreationalWork a :Form ; -# :exactMatch saogf:Tidsf\%C3\%B6rdriv . +# skos:exactMatch saogf:Tidsf\%C3\%B6rdriv . #:PopupBook a :Form ; -# :exactMatch saogf:Pop-up-b\%C3\%B6cker . +# skos:exactMatch saogf:Pop-up-b\%C3\%B6cker . #:Cookbook a :Form ; -# :exactMatch saogf:Kokb\%C3\%B6cker . +# skos:exactMatch saogf:Kokb\%C3\%B6cker . #:Recept a :Form ; -# :exactMatch saogf:Recept . +# skos:exactMatch saogf:Recept . #:DiningMenu a :Form ; -# :exactMatch saogf:Matsedlar . +# skos:exactMatch saogf:Matsedlar . #saogf:Dokument\%C3\%A4ra\%20serier a :GenreForm ; # :prefLabel "Dokumentära serier" ; -# :broader saogf:Tecknade\%20serier . +# skos:broader saogf:Tecknade\%20serier . #t:RethoricalSpeech a :Form ; -# :exactMatch saogf:Tal\%20\%28retorik\%29 . +# skos:exactMatch saogf:Tal\%20\%28retorik\%29 . #t:SourceMaterial a :Form ; -# :exactMatch saogf:K\%C3\%A4llmaterial ; +# skos:exactMatch saogf:K\%C3\%A4llmaterial ; # :inCollection . #t:DiscursiveWork a :Form ; -# :closeMatch saogf:Verk\%20med\%20samtalsliknande\%20karakt\%C3\%A4r . +# skos:closeMatch saogf:Verk\%20med\%20samtalsliknande\%20karakt\%C3\%A4r . #t:Interview a :Form ; # owl:equivalentClass bibo:Interview ; -# :exactMatch saogf:Intervjuer . +# skos:exactMatch saogf:Intervjuer . #t:Reportage a :Form ; # owl:equivalentClass bibo:Report ; -# :exactMatch saogf:Reportage . +# skos:exactMatch saogf:Reportage . #t:Survey a :Form ; -# :exactMatch saogf:Unders\%C3\%B6kningar ; +# skos:exactMatch saogf:Unders\%C3\%B6kningar ; # :inCollection . #t:Correspondence a :Form ; -# :exactMatch saogf:Korrespondens . +# skos:exactMatch saogf:Korrespondens . #t:Diary a :GenreForm ; # rdfs:subClassOf kbv:Text ; -# :exactMatch saogf:Dagb\%C3\%B6cker . +# skos:exactMatch saogf:Dagb\%C3\%B6cker . #t:Ballad a :GenreForm ; # rdfs:subClassOf kbv:WorkHub ; -# :closeMatch saogf:Visor . +# skos:closeMatch saogf:Visor . ## TODO: Move these instance MARC-types and -genreForms to work (and drop on marcframe revert?) diff --git a/source/vocab/newtypes/kbtf.ttl b/source/vocab/newtypes/kbtf.ttl index 63036fd4..646371fa 100644 --- a/source/vocab/newtypes/kbtf.ttl +++ b/source/vocab/newtypes/kbtf.ttl @@ -31,11 +31,11 @@ kbv:Arrangement a :Class ; "Arrangemang"@sv . -kbv:Cartography a owl:Class ; +kbv:Cartography a :Class ; rdfs:subClassOf kbv:Visual ; skos:editorialNote "TODO: restriction on Map for instanceOf; allValuesFrom this..."@en ; - :exactMatch saogf:Kartor ; - :narrowMatch kbv:Map ; + skos:exactMatch saogf:Kartor ; + skos:narrowMatch kbv:Map ; :prefLabel "Kartografiskt verk"@sv , "Cartography"@en . @@ -89,7 +89,7 @@ f:Map a :Form ; kbv:Tactile a :SensoryForm ; - :exactMatch saogf:Taktila\%20verk ; + skos:exactMatch saogf:Taktila\%20verk ; :prefLabel "Tactile"@en , "Taktilt verk"@sv . @@ -127,7 +127,7 @@ f:ComputerDataset a :Form; rdfs:subClassOf kbv:Dataset . kbv:Text a :Class ; - :exactMatch kbrda:Text ; + skos:exactMatch kbrda:Text ; # TODO: alternative bound genreForm #rdfs:subClassOf [ a owl:Restriction ; # owl:onProperty :genreForm ; owl:hasValue kbrda:Text ] ; @@ -138,45 +138,45 @@ kbv:Text a :Class ; kbv:StillImage a :Class ; rdfs:subClassOf kbv:Visual ; - :exactMatch kbrda:StillImage , saogf:Bilder ; + skos:exactMatch kbrda:StillImage , saogf:Bilder ; :prefLabel "Still Image"@en , "Stillbild"@sv . kbv:Music a :Class ; - :exactMatch f:Music ; + skos:exactMatch f:Music ; :prefLabel "Music"@en , "Musik"@sv . kbv:MovingImage a :Class ; rdfs:subClassOf kbv:Visual ; - :exactMatch t:MovingImage ; + skos:exactMatch t:MovingImage ; :prefLabel "Moving Image"@en , "Rörlig bild"@sv . kbv:NotatedMusic a :Class ; - :exactMatch kbrda:NotatedMusic ; + skos:exactMatch kbrda:NotatedMusic ; rdfs:subClassOf kbv:Music ; - :exactMatch saogf:Musikalier ; + skos:exactMatch saogf:Musikalier ; :prefLabel "Musikalie"@sv , "Notated Music"@en . kbv:NotatedMovement a :Class ; - :exactMatch kbrda:NotatedMovement ; + skos:exactMatch kbrda:NotatedMovement ; :prefLabel "Notated movement"@en , "Noterad rörelse"@sv . t:SerialPublication a :Class ; :category :OrderingType ; rdfs:subClassOf t:CollectingResource ; - :exactMatch saogf:Seriella\%20publikationer ; + skos:exactMatch saogf:Seriella\%20publikationer ; :prefLabel "Seriell publikation"@sv , "Serial Publication"@en . t:IllustratedWork a :Class ; :category :OrderingType ; rdfs:subClassOf kbv:Visual ; - :broadMatch kbrda:StillImage ; - :exactMatch saogf:Illustrerade\%20verk ; + skos:broadMatch kbrda:StillImage ; + skos:exactMatch saogf:Illustrerade\%20verk ; :prefLabel "Illustrerat verk"@sv , "Illustrated Work"@en . @@ -225,20 +225,20 @@ t:MonographicSeries a :Class ; kbv:Object a :Class ; :category :OrderingType ; - :broadMatch kbrda:ThreeDimensionalForm ; + skos:broadMatch kbrda:ThreeDimensionalForm ; # TODO: rename or altLabel? owl:equivalentClass t:ObjectByPurpose ; :prefLabel "Intensional Object"@en , "Syftesmässig sak"@sv . t:WrittenBook a :Class ; :category :OrderingType ; - :broadMatch kbrda:Text ; + skos:broadMatch kbrda:Text ; rdfs:subClassOf t:Book ; :prefLabel "Written book"@en , "Skriven bok"@sv . kbv:Audio a :SensoryForm ; - :exactMatch kbrda:Sounds ; + skos:exactMatch kbrda:Sounds ; :prefLabel "Audio"@en , "Ljud"@sv . @@ -246,8 +246,8 @@ t:BookWithImages a :Class ; :category :OrderingType ; rdfs:subClassOf t:WrittenBook , t:IllustratedWork ; skos:editorialNote "TODO: PictorialWork?"@en ; - :broadMatch saogf:Bildverk ; - :narrowMatch barngf:Bilderb%C3%B6cker , barngf:Kapitelb\%C3\%B6cker ; + skos:broadMatch saogf:Bildverk ; + skos:narrowMatch barngf:Bilderb%C3%B6cker , barngf:Kapitelb\%C3\%B6cker ; :prefLabel "Bok med bilder"@sv , "Book With Images"@en . @@ -263,7 +263,7 @@ kbv:MixedMaterial a :Class ; "Blandat material"@sv . t:Kit a :Class ; - # :seeAlso ; + # rdfs:seeAlso ; rdfs:subClassOf t:CollectingResource ; :prefLabel "Kit"@en , "Kit"@sv . @@ -283,7 +283,7 @@ t:Periodical a :Class ; :category :OrderingType ; rdfs:seeAlso ; rdfs:subClassOf t:SerialPublication ; - :exactMatch saogf:Periodika ; + skos:exactMatch saogf:Periodika ; :altLabel "Periodika"@sv ; :prefLabel "Tidskrift"@sv , "Periodical"@en . @@ -292,7 +292,7 @@ t:Film a :Class ; :category :OrderingType ; rdfs:subClassOf kbv:MovingImage ; owl:equivalentClass bibo:Film ; - :exactMatch saogf:Filmer ; + skos:exactMatch saogf:Filmer ; :prefLabel "Film"@sv , "Film"@en . @@ -303,7 +303,7 @@ kbv:Visual a :SensoryForm ; t:Archive a :Class ; :category :OrderingType ; rdfs:subClassOf t:CollectingResource ; - :exactMatch saogf:Arkiv ; + skos:exactMatch saogf:Arkiv ; :prefLabel "Arkiv"@sv , "Archive"@en . @@ -319,15 +319,15 @@ t:Audiobook a :Class ; rdfs:subClassOf kbv:Audio , t:Book , bibo:AudioDocument ; - :exactMatch saogf:Ljudb\%C3\%B6cker ; + skos:exactMatch saogf:Ljudb\%C3\%B6cker ; :prefLabel "Ljudbok"@sv , "Audiobook"@en . t:Database a :Class ; :category :OrderingType ; rdfs:subClassOf f:Integrating ; - :exactMatch saogf:Databaser ; - :narrowMatch marc:UpdatingDatabase ; + skos:exactMatch saogf:Databaser ; + skos:narrowMatch marc:UpdatingDatabase ; :prefLabel "Databas"@sv , "Database"@en . @@ -336,8 +336,8 @@ t:TactileBook a :Class ; rdfs:subClassOf t:Book , kbv:Tactile ; skos:editorialNote "TODO: differentiate between \"filtbok\" och \"punktskriftsbok\"?"@en ; - :broadMatch kbrda:TactileText ; - :narrowMatch saogf:Punktskriftsb\%C3\%B6cker ; + skos:broadMatch kbrda:TactileText ; + skos:narrowMatch saogf:Punktskriftsb\%C3\%B6cker ; :prefLabel "Tactile Book"@en , "Taktil bok"@sv . @@ -354,25 +354,25 @@ f:NonMusicAudio a :Form ; f:BoardGame a :Form ; rdfs:subClassOf f:PuzzleOrGame ; - :exactMatch ; + skos:exactMatch ; :prefLabel "Brädspel"@sv , "Boardgame"@en . f:PuzzleOrGame a :Form ; rdfs:subClassOf f:InteractiveObject ; - :exactMatch saogf:Spel\%20och\%20tanken\%C3\%B6tter ; + skos:exactMatch saogf:Spel\%20och\%20tanken\%C3\%B6tter ; :prefLabel "Spel eller tankenötter"@sv , "Puzzle or game"@en . f:Broschure a :Form ; rdfs:subClassOf t:NonBookText ; - :exactMatch ; + skos:exactMatch ; :prefLabel "Broschyr"@sv , "Broschure"@en . f:Comic a :Form ; rdfs:subClassOf g:GraphicLiterature ; - :exactMatch saogf:Serietidningar ; + skos:exactMatch saogf:Serietidningar ; :prefLabel "Serietidning"@sv , "Comic"@en . @@ -409,33 +409,33 @@ f:ComputerProgram a :Form ; f:ComputerGame a :Form ; rdfs:subClassOf f:PuzzleOrGame, f:ComputerProgram ; - :exactMatch saogf:Datorspel ; + skos:exactMatch saogf:Datorspel ; :prefLabel "Datorspel"@sv , "Computer Game"@en . f:Diagram a :Form ; rdfs:subClassOf t:IllustratedWork ; - :exactMatch saogf:Diagram ; + skos:exactMatch saogf:Diagram ; :prefLabel "Diagram"@sv , "Diagram"@en . f:FormDocument a :Form ; rdfs:seeAlso ; rdfs:subClassOf t:NonBookText ; - :exactMatch saogf:Blanketter ; + skos:exactMatch saogf:Blanketter ; :prefLabel "Blankett"@sv , "Form Document"@en . f:Handwriting a :Form ; rdfs:subClassOf kbv:Manuscript , kbv:Text ; - :exactMatch saogf:Handskrifter ; + skos:exactMatch saogf:Handskrifter ; :prefLabel "Handskrift"@sv , "Handwriting"@en . f:Illustration a :Form ; rdfs:subClassOf kbv:StillImage ; - :exactMatch saogf:Illustrationer ; + skos:exactMatch saogf:Illustrationer ; :prefLabel "Illustration"@sv , "Illustration"@en . @@ -447,8 +447,8 @@ f:InteractiveObject a :Form ; f:Manual a :Form ; rdfs:subClassOf kbv:Text , g:TeachingMaterial ; - :closeMatch saogf:Handb\%C3\%B6cker\%2C\%20manualer\%20etc ; - :seeAlso ; + skos:closeMatch saogf:Handb\%C3\%B6cker\%2C\%20manualer\%20etc ; + rdfs:seeAlso ; :prefLabel "Manual"@sv , "Manual"@en . @@ -461,19 +461,19 @@ f:MechanicalBook a :Form ; f:Note a :Form ; rdfs:subClassOf t:NonBookText ; owl:equivalentClass bibo:Note ; - :exactMatch saogf:Anteckningar ; + skos:exactMatch saogf:Anteckningar ; :prefLabel "Anteckning"@sv , "Note"@en . f:Painting a :Form ; rdfs:subClassOf kbv:StillImage ; - :exactMatch ; + skos:exactMatch ; :prefLabel "Målning"@sv , "Painting"@en . t:PerformedMusic a :Class ; :category :OrderingType ; - :exactMatch kbrda:PerformedMusic ; + skos:exactMatch kbrda:PerformedMusic ; rdfs:subClassOf kbv:Audio , kbv:Music ; :prefLabel "Performed Music"@en , @@ -482,44 +482,44 @@ t:PerformedMusic a :Class ; f:Photobook a :Form ; rdfs:subClassOf t:BookWithImages , t:Book ; - :exactMatch saogf:Fotob\%C3\%B6cker ; + skos:exactMatch saogf:Fotob\%C3\%B6cker ; :prefLabel "Fotobok"@sv , "Photobook"@en . f:Photograph a :Form ; rdfs:subClassOf kbv:StillImage ; - :exactMatch saogf:Fotografier ; + skos:exactMatch saogf:Fotografier ; :prefLabel "Fotografi"@sv , "Photograph"@en . f:PictureDictionary a :Form ; rdfs:subClassOf t:Lexicon , t:BookWithImages ; - :exactMatch saogf:Bildlexikon ; + skos:exactMatch saogf:Bildlexikon ; :prefLabel "Bildlexikon"@sv , "Picture Dictionary"@en . f:Postcard a :Form ; rdfs:subClassOf t:IllustratedWork ; - :exactMatch saogf:Vykort ; + skos:exactMatch saogf:Vykort ; :prefLabel "Vykort"@sv , "Postcard"@en . # TODO: GenreForm? #f:PostcardBook a :Form ; # rdfs:subClassOf f:Postcard , f:Book ; -# :exactMatch ; +# skos:exactMatch ; f:Poster a :Form ; rdfs:subClassOf t:IllustratedWork ; owl:equivalentClass sdo:Poster ; - :exactMatch saogf:Affischer ; + skos:exactMatch saogf:Affischer ; :prefLabel "Affisch"@sv , "Poster"@en . f:Puzzle a :Form ; rdfs:subClassOf f:PuzzleOrGame ; - :exactMatch saogf:Pussel ; + skos:exactMatch saogf:Pussel ; :prefLabel "Pussel"@sv , "Puzzle"@en . @@ -531,12 +531,12 @@ f:Sculpture a :Form ; f:SpokenBook a :Form ; rdfs:subClassOf t:Audiobook , f:SpokenWord ; - :exactMatch saogf:Talb\%C3\%B6cker ; + skos:exactMatch saogf:Talb\%C3\%B6cker ; :prefLabel "Talbok"@sv , "Spoken Book"@en . f:SpokenWord a :Form ; - :exactMatch kbrda:SpokenWord ; + skos:exactMatch kbrda:SpokenWord ; rdfs:subClassOf kbv:Text , kbv:Audio ; :prefLabel "Tal"@sv , @@ -545,20 +545,20 @@ f:SpokenWord a :Form ; f:SpokenPaper a :Form ; rdfs:subClassOf t:Periodical , f:SpokenWord ; - :exactMatch saogf:Taltidningar ; + skos:exactMatch saogf:Taltidningar ; :prefLabel "Taltidning"@sv , "Spoken Paper"@en . f:TVProgram a :Form ; rdfs:subClassOf kbv:MovingImage ; - :exactMatch saogf:Tv-program ; + skos:exactMatch saogf:Tv-program ; :prefLabel "Tv-program"@sv , "TV-Program"@en . f:TVSeries a :Form ; rdfs:subClassOf f:TVProgram , t:MonographicSeries ; - :exactMatch saogf:Tv-serier ; + skos:exactMatch saogf:Tv-serier ; :prefLabel "Tv-serie"@sv , "TV-Series"@en . @@ -569,14 +569,14 @@ f:Toy a :Form ; f:Trailer a :Form ; rdfs:subClassOf t:Film ; - :exactMatch saogf:Trailrar ; + skos:exactMatch saogf:Trailrar ; :prefLabel "Trailer"@sv , "Trailer"@en . f:Website a :Form ; rdfs:subClassOf kbv:OnlineResource , f:Integrating ; - :exactMatch saogf:Webbplatser ; + skos:exactMatch saogf:Webbplatser ; :prefLabel "Webbplats"@sv , "Website"@en . From 074e1e5ac4d32e657ffe7b59b4412a975c0f8da8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Wed, 12 Jun 2024 15:31:22 +0200 Subject: [PATCH 13/69] Move types into KBV as pending concrete types --- source/vocab/newtypes/kbcr.ttl | 3 +- source/vocab/newtypes/kbgf.ttl | 67 +++++++------- source/vocab/newtypes/kbtf.ttl | 158 +++++++++++++++++---------------- 3 files changed, 114 insertions(+), 114 deletions(-) diff --git a/source/vocab/newtypes/kbcr.ttl b/source/vocab/newtypes/kbcr.ttl index 6e114cb5..9368c3b0 100644 --- a/source/vocab/newtypes/kbcr.ttl +++ b/source/vocab/newtypes/kbcr.ttl @@ -11,7 +11,6 @@ prefix : prefix marc: prefix s: -prefix t: prefix f: prefix g: @@ -120,7 +119,7 @@ kbv:BrailleResource a :Class ; kbv:BrailleVolume a :Class ; rdfs:subClassOf kbv:BrailleResource, kbv:Volume , [ a owl:Restriction ; owl:onProperty kbv:instanceOf ; - owl:allValuesFrom t:TactileBook + owl:allValuesFrom kbv:TactileBook ] ; skos:exactMatch saogf:Punktskriftsb\%C3\%B6cker . # :prefLabel "Punktskriftsvolym"@sv, "Braille Volume"@en . diff --git a/source/vocab/newtypes/kbgf.ttl b/source/vocab/newtypes/kbgf.ttl index ed2e5047..9b7e62ba 100644 --- a/source/vocab/newtypes/kbgf.ttl +++ b/source/vocab/newtypes/kbgf.ttl @@ -11,7 +11,6 @@ prefix : prefix marc: prefix div: prefix s: -prefix t: prefix f: prefix g: @@ -28,7 +27,7 @@ base # TODO: replace subClassOf with broader and equivalentClass with broadMatch g:AbstractSummary a :Genre ; - rdfs:subClassOf t:NonBookText ; + rdfs:subClassOf kbv:NonBookText ; skos:exactMatch saogf:Sammanfattningar ; :inCollection f:informative-work ; rdfs:seeAlso ; @@ -36,15 +35,15 @@ g:AbstractSummary a :Genre ; "Abstract Summary"@en . g:Almanac a :Genre ; - rdfs:subClassOf g:ReferenceWork ; # inte alltid t:IllustratedWork ; - skos:related t:SerialPublication ; # TODO: + rdfs:subClassOf g:ReferenceWork ; # inte alltid kbv:IllustratedWork ; + skos:related kbv:SerialPublication ; # TODO: skos:exactMatch saogf:Almanackor ; :prefLabel "Almanacka"@sv , "Almanac"@en . g:Blog a :Genre ; rdfs:subClassOf f:Website , - t:NonBookText ; + kbv:NonBookText ; owl:equivalentClass sdo:Blog ; skos:exactMatch saogf:Bloggar ; :inCollection f:informative-work ; @@ -52,7 +51,7 @@ g:Blog a :Genre ; "Blog"@en . g:Calendar a :Genre ; - rdfs:subClassOf g:ReferenceWork ; # inte alltid t:IllustratedWork ; + rdfs:subClassOf g:ReferenceWork ; # inte alltid kbv:IllustratedWork ; skos:exactMatch saogf:Kalendrar ; :prefLabel "Kalender"@sv , "Calendar"@en . @@ -64,15 +63,15 @@ g:Catalogue a :Genre ; "Catalogue"@en . f:CollectedWork a :Genre ; # :GenreForm - rdfs:subClassOf t:CollectingResource ; - skos:editorialNote "TODO: CollectedPart vs. CollectingWork! Cf. bibo:CollectedDocument, bibo:MultiVolumeBook, t:MultipartBook"@en ; + rdfs:subClassOf kbv:CollectingResource ; + skos:editorialNote "TODO: CollectedPart vs. CollectingWork! Cf. bibo:CollectedDocument, bibo:MultiVolumeBook, kbv:MultipartBook"@en ; skos:exactMatch saogf:Samlingsverk ; skos:closeMatch bibo:CollectedDocument ; :prefLabel "Samlingsverk"@sv , "Collected Work"@en . g:ConferenceMaterial a :Genre ; - rdfs:subClassOf t:NonBookText ; + rdfs:subClassOf kbv:NonBookText ; skos:exactMatch saogf:Konferensmaterial ; :inCollection div:ephemera , f:informative-work ; @@ -93,13 +92,13 @@ g:CourseMaterial a :Genre ; "Course Material"@en . g:Encyclopedia a :Genre ; - rdfs:subClassOf g:ReferenceWork, t:Book ; + rdfs:subClassOf g:ReferenceWork, kbv:Book ; skos:exactMatch saogf:Encyklopedier ; :prefLabel "Encyklopedia"@sv , "Encyclopedia"@en . g:Lexicon a :Genre ; - rdfs:subClassOf g:ReferenceWork, t:Book ; + rdfs:subClassOf g:ReferenceWork, kbv:Book ; skos:exactMatch saogf:Lexikon ; :prefLabel "Lexikon"@sv , "Lexicon"@en . @@ -113,7 +112,7 @@ g:TeachingMaterial a :Genre ; "Instruktions- och undervisningsmaterial"@sv . g:GraphicLiterature a :Genre ; - rdfs:subClassOf t:IllustratedWork , + rdfs:subClassOf kbv:IllustratedWork , g:Literature ; skos:broadMatch kbrda:Text , kbrda:Image ; @@ -129,14 +128,14 @@ g:HandSignedCommunication a :Genre ; g:GraphicNovel a :Genre ; rdfs:subClassOf g:Novel , - t:BookWithImages , + kbv:BookWithImages , g:GraphicLiterature ; skos:exactMatch saogf:Serieromaner ; :prefLabel "Serieroman"@sv , "Graphic Novel"@en . g:ComicStory a :Genre ; - rdfs:subClassOf f:Comic, t:NonBookText ; + rdfs:subClassOf f:Comic, kbv:NonBookText ; owl:equivalentClass sdo:ComicStory ; skos:narrowMatch saogf:Serienoveller ; :prefLabel "Serienovell"@sv , @@ -151,13 +150,13 @@ g:Photoseries a :Genre ; g:Novel a :Genre ; skos:broader g:Literature ; - skos:broadMatch t:Book ; + skos:broadMatch kbv:Book ; skos:exactMatch saogf:Romaner ; :prefLabel "Roman"@sv , "Novel"@en . g:ShortStory a :Genre ; - rdfs:subClassOf t:NonBookText , + rdfs:subClassOf kbv:NonBookText , g:Literature ; owl:equivalentClass sdo:ShortStory ; skos:exactMatch saogf:Noveller ; @@ -170,12 +169,12 @@ g:Literature a :Genre ; "Literature"@en . g:Journal a :Genre ; - rdfs:subClassOf t:Periodical ; + rdfs:subClassOf kbv:Periodical ; :prefLabel "Vetenskaplig tidskrift"@sv , "Journal"@en . g:JournalIssue a :Genre ; - rdfs:subClassOf t:Issue ; + rdfs:subClassOf kbv:Issue ; skos:broadMatch g:Journal ; :prefLabel "Vetenskapstidskriftssnummer"@sv , "Journal Issue"@en . @@ -187,13 +186,13 @@ g:Lecture a :Genre ; "Lecture"@en . g:Magazine a :Genre ; - rdfs:subClassOf t:Periodical ; + rdfs:subClassOf kbv:Periodical ; :prefLabel "Magasin"@sv , "Magazine"@en . g:MagazineIssue a :Genre ; - rdfs:subClassOf t:Issue ; - skos:broadMatch t:Magazine ; + rdfs:subClassOf kbv:Issue ; + skos:broadMatch kbv:Magazine ; :prefLabel "Magasin-nummer"@sv , "Magazine Issue"@en . @@ -210,21 +209,21 @@ g:MusicRecording a :Genre ; "Music Recording"@en . g:NewsLetter a :Genre ; - rdfs:subClassOf t:SerialPublication ; + rdfs:subClassOf kbv:SerialPublication ; skos:exactMatch saogf:Nyhetsbrev ; :inCollection div:ephemera ; :prefLabel "Nyhetsbrev"@sv , "Newsletter"@en . g:Newspaper a :Genre ; - rdfs:subClassOf t:Periodical ; + rdfs:subClassOf kbv:Periodical ; skos:exactMatch saogf:Dagstidningar ; :prefLabel "Dagstidning"@sv , "Newspaper"@en . g:NewspaperIssue a :Genre ; - rdfs:subClassOf t:Issue ; - skos:broadMatch t:Newspaper ; + rdfs:subClassOf kbv:Issue ; + skos:broadMatch kbv:Newspaper ; :prefLabel "Dagstidningsnummer"@sv , "Newspaper Issue"@en . @@ -241,7 +240,7 @@ g:Podcast a :Genre ; "Podcast"@en . g:PublicationProgramme a :Genre ; - rdfs:subClassOf t:NonBookText ; + rdfs:subClassOf kbv:NonBookText ; skos:exactMatch saogf:Program\%20\%28publikationer\%29 ; :prefLabel "Programblad"@sv , "Publication Programme"@en . @@ -253,7 +252,7 @@ g:RadioProgram a :Genre ; "Radio Program"@en . g:RecordOrDeed a :Genre ; - rdfs:subClassOf t:NonBookText ; + rdfs:subClassOf kbv:NonBookText ; skos:exactMatch saogf:Handlingar\%20\%28dokument\%29 ; :prefLabel "Handlingar (dokument)"@sv , "Records (Documents)"@en . @@ -268,7 +267,7 @@ g:ReferenceWork a :Genre ; "Reference Work"@en . g:Register a :Genre ; - rdfs:subClassOf t:CollectingResource ; + rdfs:subClassOf kbv:CollectingResource ; skos:exactMatch saogf:F\%C3\%B6rteckningar ; :prefLabel "Förteckning"@sv , "Register"@en . @@ -286,13 +285,13 @@ g:SoundEffectBook a :Genre ; "Sound-effect Book"@en . g:PopupBook a :Genre ; - rdfs:subClassOf t:BookWithImages ; + rdfs:subClassOf kbv:BookWithImages ; skos:exactMatch ; :prefLabel "Pop-up-bok"@sv , "Pop-up Book"@en . g:Review a :Genre ; - rdfs:subClassOf t:NonBookText ; + rdfs:subClassOf kbv:NonBookText ; owl:equivalentClass sdo:Review ; skos:exactMatch saogf:Recensioner ; :prefLabel "Recension"@sv , @@ -368,12 +367,12 @@ g:TwoDimensionalMovingImage a :Genre ; # :ContentType #g:RareText skos:exactMatch saogf:Texter . #g:Debate a :Genre ; -# rdfs:subClassOf t:NonBookText ; +# rdfs:subClassOf kbv:NonBookText ; # skos:exactMatch saogf:Debatter . #t:AdventCalendar a :Form ; # skos:exactMatch saogf:Adventskalendrar ; -# rdfs:subClassOf t:Calendar . +# rdfs:subClassOf kbv:Calendar . #g:ReligiousWork a :Form ; # skos:exactMatch saogf:Religi\%C3\%B6sa\%20verk . @@ -384,10 +383,10 @@ g:TwoDimensionalMovingImage a :Genre ; # :ContentType #g:Essay a :Form ; # skos:exactMatch saogf:Ess\%C3\%A4er . -# TODO: SerialPublication someValuesFrom t:Yearbook +# TODO: SerialPublication someValuesFrom kbv:Yearbook #t:Yearbook a :Form ; # skos:exactMatch saogf:\%C3\%85rsb\%C3\%B6cker ; -# rdfs:subClassOf t:SerialPublication . +# rdfs:subClassOf kbv:SerialPublication . #:PhraseBook a :Form ; # skos:exactMatch saogf:Parl\%C3\%B6rer . diff --git a/source/vocab/newtypes/kbtf.ttl b/source/vocab/newtypes/kbtf.ttl index 646371fa..e86ab976 100644 --- a/source/vocab/newtypes/kbtf.ttl +++ b/source/vocab/newtypes/kbtf.ttl @@ -9,7 +9,6 @@ prefix bf: prefix kbv: prefix : prefix marc: -prefix t: prefix f: prefix g: @@ -70,7 +69,7 @@ f:CartographicObject a :Form; f:Atlas a :Form ; rdfs:subClassOf kbv:Cartography , - t:Book ; + kbv:Book ; :prefLabel "Atlas"@sv , "Atlas"@en . @@ -149,7 +148,6 @@ kbv:Music a :Class ; kbv:MovingImage a :Class ; rdfs:subClassOf kbv:Visual ; - skos:exactMatch t:MovingImage ; :prefLabel "Moving Image"@en , "Rörlig bild"@sv . @@ -165,58 +163,60 @@ kbv:NotatedMovement a :Class ; :prefLabel "Notated movement"@en , "Noterad rörelse"@sv . -t:SerialPublication a :Class ; - :category :OrderingType ; - rdfs:subClassOf t:CollectingResource ; +kbv:SerialPublication a :Class ; + :category :pending, :concretetype ; + rdfs:subClassOf kbv:CollectingResource ; skos:exactMatch saogf:Seriella\%20publikationer ; :prefLabel "Seriell publikation"@sv , "Serial Publication"@en . -t:IllustratedWork a :Class ; - :category :OrderingType ; +kbv:IllustratedWork a :Class ; + :category :pending, :concretetype ; rdfs:subClassOf kbv:Visual ; skos:broadMatch kbrda:StillImage ; skos:exactMatch saogf:Illustrerade\%20verk ; :prefLabel "Illustrerat verk"@sv , "Illustrated Work"@en . -t:Book a :Class ; # T:LargeText - :category :OrderingType ; +kbv:Book a :Class ; # T:LargeText + :category :pending, :concretetype ; owl:equivalentClass bibo:Book, sdo:Book ; rdfs:subClassOf kbv:Text ; :prefLabel "Book"@en , "Bok"@sv . -t:NonBookText a :Class ; - :category :OrderingType ; +kbv:NonBookText a :Class ; + :category :pending, :concretetype ; ptg:abstract true ; rdfs:subClassOf kbv:Text ; :prefLabel "Non-book text"@en , "Enskild text"@sv . -t:Booklet a :Form ; # t:MediumText - rdfs:subClassOf t:NonBookText ; +kbv:Booklet a :Form ; # kbv:MediumText + :category :pending, :richtype ; + rdfs:subClassOf kbv:NonBookText ; :prefLabel "Texthäfte"@sv , "Booklet"@en . -t:Textleaf a :Form ; # t:SmallText - rdfs:subClassOf t:NonBookText ; +kbv:Textleaf a :Form ; # kbv:SmallText + :category :pending, :richtype ; + rdfs:subClassOf kbv:NonBookText ; :prefLabel "Textblad"@sv , "Text leaf"@en . f:NonBookTextWithImages a :Form ; - rdfs:subClassOf t:NonBookText , t:IllustratedWork ; + rdfs:subClassOf kbv:NonBookText , kbv:IllustratedWork ; :prefLabel "Enskild text med bilder"@sv , "Non-book With Images"@en . -t:Issue a :Class ; - :category :OrderingType ; - rdfs:subClassOf t:NonBookText ; +kbv:Issue a :Class ; + :category :pending, :concretetype ; + rdfs:subClassOf kbv:NonBookText ; owl:equivalentClass bibo:Issue ; :prefLabel "Tidskriftsnummer"@sv , "Periodical Issue"@en . -t:MonographicSeries a :Class ; - :category :OrderingType ; - rdfs:subClassOf t:CollectingResource ; +kbv:MonographicSeries a :Class ; + :category :pending, :concretetype ; + rdfs:subClassOf kbv:CollectingResource ; owl:equivalentClass bibo:Series , bf:Series, marc:MonographicSeries ; @@ -224,16 +224,16 @@ t:MonographicSeries a :Class ; "Monografiserie"@sv . kbv:Object a :Class ; - :category :OrderingType ; + :category :ConcreteType ; skos:broadMatch kbrda:ThreeDimensionalForm ; - # TODO: rename or altLabel? owl:equivalentClass t:ObjectByPurpose ; + # TODO: rename or altLabel? owl:equivalentClass kbv:ObjectByPurpose ; :prefLabel "Intensional Object"@en , "Syftesmässig sak"@sv . -t:WrittenBook a :Class ; - :category :OrderingType ; +kbv:WrittenBook a :Class ; + :category :pending, :concretetype ; skos:broadMatch kbrda:Text ; - rdfs:subClassOf t:Book ; + rdfs:subClassOf kbv:Book ; :prefLabel "Written book"@en , "Skriven bok"@sv . @@ -242,54 +242,56 @@ kbv:Audio a :SensoryForm ; :prefLabel "Audio"@en , "Ljud"@sv . -t:BookWithImages a :Class ; - :category :OrderingType ; - rdfs:subClassOf t:WrittenBook , t:IllustratedWork ; +kbv:BookWithImages a :Class ; + :category :pending, :concretetype ; + rdfs:subClassOf kbv:WrittenBook , kbv:IllustratedWork ; skos:editorialNote "TODO: PictorialWork?"@en ; skos:broadMatch saogf:Bildverk ; skos:narrowMatch barngf:Bilderb%C3%B6cker , barngf:Kapitelb\%C3\%B6cker ; :prefLabel "Bok med bilder"@sv , "Book With Images"@en . -t:CollectingResource a :Class ; - :category :OrderingType ; +kbv:CollectingResource a :Class ; + :category :pending, :concretetype ; ptg:abstract true ; :prefLabel "Collecting Resource"@en , "Samlande resurs"@sv . kbv:MixedMaterial a :Class ; - rdfs:subClassOf t:CollectingResource ; + rdfs:subClassOf kbv:CollectingResource ; :prefLabel "Mixed Material"@en , "Blandat material"@sv . -t:Kit a :Class ; +kbv:Kit a :Class ; + :category :pending, :richtype ; # rdfs:seeAlso ; - rdfs:subClassOf t:CollectingResource ; + rdfs:subClassOf kbv:CollectingResource ; :prefLabel "Kit"@en , "Kit"@sv . -t:Collection a :Class ; - rdfs:subClassOf t:CollectingResource ; +kbv:Collection a :Class ; + :category :pending, :richtype ; + rdfs:subClassOf kbv:CollectingResource ; :prefLabel "Collection"@en , "Samling"@sv . f:Integrating a :Class ; ptg:abstract true ; - rdfs:subClassOf t:CollectingResource ; + rdfs:subClassOf kbv:CollectingResource ; :prefLabel "Integrating"@en , "Integrerande"@sv . -t:Periodical a :Class ; - :category :OrderingType ; +kbv:Periodical a :Class ; + :category :pending, :concretetype ; rdfs:seeAlso ; - rdfs:subClassOf t:SerialPublication ; + rdfs:subClassOf kbv:SerialPublication ; skos:exactMatch saogf:Periodika ; :altLabel "Periodika"@sv ; :prefLabel "Tidskrift"@sv , "Periodical"@en . -t:Film a :Class ; - :category :OrderingType ; +kbv:Film a :Class ; + :category :pending, :concretetype ; rdfs:subClassOf kbv:MovingImage ; owl:equivalentClass bibo:Film ; skos:exactMatch saogf:Filmer ; @@ -300,40 +302,40 @@ kbv:Visual a :SensoryForm ; :prefLabel "Visual"@en , "Visuellt verk"@sv . -t:Archive a :Class ; - :category :OrderingType ; - rdfs:subClassOf t:CollectingResource ; +kbv:Archive a :Class ; + :category :pending, :concretetype ; + rdfs:subClassOf kbv:CollectingResource ; skos:exactMatch saogf:Arkiv ; :prefLabel "Arkiv"@sv , "Archive"@en . -t:Article a :Class ; - :category :OrderingType ; - rdfs:subClassOf t:NonBookText ; +kbv:Article a :Class ; + :category :pending, :concretetype ; + rdfs:subClassOf kbv:NonBookText ; owl:equivalentClass bibo:Article ; :prefLabel "Artikel"@sv , "Article"@en . -t:Audiobook a :Class ; - :category :OrderingType ; +kbv:Audiobook a :Class ; + :category :pending, :concretetype ; rdfs:subClassOf kbv:Audio , - t:Book , + kbv:Book , bibo:AudioDocument ; skos:exactMatch saogf:Ljudb\%C3\%B6cker ; :prefLabel "Ljudbok"@sv , "Audiobook"@en . -t:Database a :Class ; - :category :OrderingType ; +kbv:Database a :Class ; + :category :pending, :concretetype ; rdfs:subClassOf f:Integrating ; skos:exactMatch saogf:Databaser ; skos:narrowMatch marc:UpdatingDatabase ; :prefLabel "Databas"@sv , "Database"@en . -t:TactileBook a :Class ; - :category :OrderingType ; - rdfs:subClassOf t:Book , +kbv:TactileBook a :Class ; + :category :pending, :concretetype ; + rdfs:subClassOf kbv:Book , kbv:Tactile ; skos:editorialNote "TODO: differentiate between \"filtbok\" och \"punktskriftsbok\"?"@en ; skos:broadMatch kbrda:TactileText ; @@ -365,7 +367,7 @@ f:PuzzleOrGame a :Form ; "Puzzle or game"@en . f:Broschure a :Form ; - rdfs:subClassOf t:NonBookText ; + rdfs:subClassOf kbv:NonBookText ; skos:exactMatch ; :prefLabel "Broschyr"@sv , "Broschure"@en . @@ -378,7 +380,7 @@ f:Comic a :Form ; f:ComicIssue a :Form ; rdfs:subClassOf f:Comic , - t:Issue ; + kbv:Issue ; owl:equivalentClass sdo:ComicIssue ; :prefLabel "Serietidningsnummer"@sv , "Comic Issue"@en . @@ -386,8 +388,8 @@ f:ComicIssue a :Form ; f:ComicSerial a :Form ; rdfs:comment "TODO: series of issues vs. arc of stories?" ; rdfs:subClassOf f:Comic , - t:SerialPublication ; - # t:MonographicSeries ; # TODO: Separate ComicSeries ? + kbv:SerialPublication ; + # kbv:MonographicSeries ; # TODO: Separate ComicSeries ? owl:equivalentClass sdo:ComicSeries ; :prefLabel "Serietidningsserie"@sv , "Comic Series"@en . @@ -414,14 +416,14 @@ f:ComputerGame a :Form ; "Computer Game"@en . f:Diagram a :Form ; - rdfs:subClassOf t:IllustratedWork ; + rdfs:subClassOf kbv:IllustratedWork ; skos:exactMatch saogf:Diagram ; :prefLabel "Diagram"@sv , "Diagram"@en . f:FormDocument a :Form ; rdfs:seeAlso ; - rdfs:subClassOf t:NonBookText ; + rdfs:subClassOf kbv:NonBookText ; skos:exactMatch saogf:Blanketter ; :prefLabel "Blankett"@sv , "Form Document"@en . @@ -454,12 +456,12 @@ f:Manual a :Form ; f:MechanicalBook a :Form ; rdfs:subClassOf f:InteractiveObject , - t:WrittenBook ; + kbv:WrittenBook ; :prefLabel "Mekanisk bok"@sv , "Mechanical Book"@en . f:Note a :Form ; - rdfs:subClassOf t:NonBookText ; + rdfs:subClassOf kbv:NonBookText ; owl:equivalentClass bibo:Note ; skos:exactMatch saogf:Anteckningar ; :prefLabel "Anteckning"@sv , @@ -471,8 +473,8 @@ f:Painting a :Form ; :prefLabel "Målning"@sv , "Painting"@en . -t:PerformedMusic a :Class ; - :category :OrderingType ; +kbv:PerformedMusic a :Class ; + :category :pending, :concretetype ; skos:exactMatch kbrda:PerformedMusic ; rdfs:subClassOf kbv:Audio , kbv:Music ; @@ -480,8 +482,8 @@ t:PerformedMusic a :Class ; "Framförd musik"@sv . f:Photobook a :Form ; - rdfs:subClassOf t:BookWithImages , - t:Book ; + rdfs:subClassOf kbv:BookWithImages , + kbv:Book ; skos:exactMatch saogf:Fotob\%C3\%B6cker ; :prefLabel "Fotobok"@sv , "Photobook"@en . @@ -493,14 +495,14 @@ f:Photograph a :Form ; "Photograph"@en . f:PictureDictionary a :Form ; - rdfs:subClassOf t:Lexicon , - t:BookWithImages ; + rdfs:subClassOf kbv:Lexicon , + kbv:BookWithImages ; skos:exactMatch saogf:Bildlexikon ; :prefLabel "Bildlexikon"@sv , "Picture Dictionary"@en . f:Postcard a :Form ; - rdfs:subClassOf t:IllustratedWork ; + rdfs:subClassOf kbv:IllustratedWork ; skos:exactMatch saogf:Vykort ; :prefLabel "Vykort"@sv , "Postcard"@en . @@ -511,7 +513,7 @@ f:Postcard a :Form ; # skos:exactMatch ; f:Poster a :Form ; - rdfs:subClassOf t:IllustratedWork ; + rdfs:subClassOf kbv:IllustratedWork ; owl:equivalentClass sdo:Poster ; skos:exactMatch saogf:Affischer ; :prefLabel "Affisch"@sv , @@ -529,7 +531,7 @@ f:Sculpture a :Form ; "Sculpture"@en . f:SpokenBook a :Form ; - rdfs:subClassOf t:Audiobook , + rdfs:subClassOf kbv:Audiobook , f:SpokenWord ; skos:exactMatch saogf:Talb\%C3\%B6cker ; :prefLabel "Talbok"@sv , @@ -543,7 +545,7 @@ f:SpokenWord a :Form ; "Spoken Word"@en . f:SpokenPaper a :Form ; - rdfs:subClassOf t:Periodical , + rdfs:subClassOf kbv:Periodical , f:SpokenWord ; skos:exactMatch saogf:Taltidningar ; :prefLabel "Taltidning"@sv , @@ -557,7 +559,7 @@ f:TVProgram a :Form ; f:TVSeries a :Form ; rdfs:subClassOf f:TVProgram , - t:MonographicSeries ; + kbv:MonographicSeries ; skos:exactMatch saogf:Tv-serier ; :prefLabel "Tv-serie"@sv , "TV-Series"@en . @@ -568,7 +570,7 @@ f:Toy a :Form ; "Toy"@en . f:Trailer a :Form ; - rdfs:subClassOf t:Film ; + rdfs:subClassOf kbv:Film ; skos:exactMatch saogf:Trailrar ; :prefLabel "Trailer"@sv , "Trailer"@en . From 8dbfa626ad91ed6efd9102d7dbcd62c563b1346c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Wed, 12 Jun 2024 16:25:21 +0200 Subject: [PATCH 14/69] Use simple label property for new types At least until the cataloguing interface can pick the most specific label property (usually prefLabel). --- source/vocab/newtypes/kbtf.ttl | 166 ++++++++++++++++----------------- 1 file changed, 83 insertions(+), 83 deletions(-) diff --git a/source/vocab/newtypes/kbtf.ttl b/source/vocab/newtypes/kbtf.ttl index e86ab976..c49f80f7 100644 --- a/source/vocab/newtypes/kbtf.ttl +++ b/source/vocab/newtypes/kbtf.ttl @@ -53,37 +53,37 @@ f:CartographicTactileImage a :Form; f:CartographicTactileObject a :Form; owl:equivalentClass kbrda:CartographicTactileThreeDimensionalForm; rdfs:subClassOf kbv:Cartography, kbv:TactileObject ; - :prefLabel "kartografiskt taktilt objekt"@sv , + rdfs:label "kartografiskt taktilt objekt"@sv , "cartographic tactile object"@en . #f:TactileCartography a :Form ; # rdfs:subClassOf kbv:Cartography , # kbv:Tactile ; # skos:editorialNote "TODO: edge case? Force a choice of primary purpose of expression? This is not a11y, that's about the instance. Mixed purposes can be solved by primary purpose as type and additional \"color\" as genre."@en ; -# :prefLabel "Taktilt kartografiskt verk"@sv , +# rdfs:label "Taktilt kartografiskt verk"@sv , # "Tactile Cartography"@en . f:CartographicObject a :Form; owl:equivalentClass kbrda:CartographicThreeDimensionalForm; rdfs:subClassOf kbv:Cartography, kbv:Object ; - :prefLabel "kartografiskt objekt"@sv , + rdfs:label "kartografiskt objekt"@sv , "cartographic object"@en . f:Atlas a :Form ; rdfs:subClassOf kbv:Cartography , kbv:Book ; - :prefLabel "Atlas"@sv , + rdfs:label "Atlas"@sv , "Atlas"@en . # FIXME: move instancetype kbv:Globe to work f:Globe a :Form ; rdfs:subClassOf f:CartographicObject ; - :prefLabel "Jord- eller månglob"@sv , + rdfs:label "Jord- eller månglob"@sv , "Globe"@en . # FIXME: move instancetype kbv:Map to work # TODO: == Cartography f:Map a :Form ; rdfs:subClassOf f:CartographicImage ; - :prefLabel "Karta"@sv , + rdfs:label "Karta"@sv , "Map"@en . @@ -108,7 +108,7 @@ f:TactileText a :Form ; f:TactileObject a :Form ; owl:equivalentClass kbrda:TactileThreeDimensionalForm; rdfs:subClassOf kbv:Object, kbv:Tactile ; # , _:TactileInstanceRestriction , - :prefLabel "kartografiskt taktilt objekt"@sv , + rdfs:label "kartografiskt taktilt objekt"@sv , "cartographic tactile object"@en . #_:TactileInstanceRestriction a owl:Restriction ; @@ -118,7 +118,7 @@ f:TactileObject a :Form ; kbv:Dataset a :Class ; rdfs:subClassOf f:Integrating ; - :prefLabel "Dataset"@en , + rdfs:label "Dataset"@en , "Dataset"@sv . f:ComputerDataset a :Form; @@ -138,36 +138,36 @@ kbv:Text a :Class ; kbv:StillImage a :Class ; rdfs:subClassOf kbv:Visual ; skos:exactMatch kbrda:StillImage , saogf:Bilder ; - :prefLabel "Still Image"@en , + rdfs:label "Still Image"@en , "Stillbild"@sv . kbv:Music a :Class ; skos:exactMatch f:Music ; - :prefLabel "Music"@en , + rdfs:label "Music"@en , "Musik"@sv . kbv:MovingImage a :Class ; rdfs:subClassOf kbv:Visual ; - :prefLabel "Moving Image"@en , + rdfs:label "Moving Image"@en , "Rörlig bild"@sv . kbv:NotatedMusic a :Class ; skos:exactMatch kbrda:NotatedMusic ; rdfs:subClassOf kbv:Music ; skos:exactMatch saogf:Musikalier ; - :prefLabel "Musikalie"@sv , + skos:prefLabel "Musikalie"@sv , "Notated Music"@en . kbv:NotatedMovement a :Class ; skos:exactMatch kbrda:NotatedMovement ; - :prefLabel "Notated movement"@en , + rdfs:label "Notated movement"@en , "Noterad rörelse"@sv . kbv:SerialPublication a :Class ; :category :pending, :concretetype ; rdfs:subClassOf kbv:CollectingResource ; skos:exactMatch saogf:Seriella\%20publikationer ; - :prefLabel "Seriell publikation"@sv , + rdfs:label "Seriell publikation"@sv , "Serial Publication"@en . kbv:IllustratedWork a :Class ; @@ -175,43 +175,43 @@ kbv:IllustratedWork a :Class ; rdfs:subClassOf kbv:Visual ; skos:broadMatch kbrda:StillImage ; skos:exactMatch saogf:Illustrerade\%20verk ; - :prefLabel "Illustrerat verk"@sv , + rdfs:label "Illustrerat verk"@sv , "Illustrated Work"@en . kbv:Book a :Class ; # T:LargeText :category :pending, :concretetype ; owl:equivalentClass bibo:Book, sdo:Book ; rdfs:subClassOf kbv:Text ; - :prefLabel "Book"@en , + rdfs:label "Book"@en , "Bok"@sv . kbv:NonBookText a :Class ; :category :pending, :concretetype ; ptg:abstract true ; rdfs:subClassOf kbv:Text ; - :prefLabel "Non-book text"@en , + rdfs:label "Non-book text"@en , "Enskild text"@sv . kbv:Booklet a :Form ; # kbv:MediumText :category :pending, :richtype ; rdfs:subClassOf kbv:NonBookText ; - :prefLabel "Texthäfte"@sv , "Booklet"@en . + rdfs:label "Texthäfte"@sv , "Booklet"@en . kbv:Textleaf a :Form ; # kbv:SmallText :category :pending, :richtype ; rdfs:subClassOf kbv:NonBookText ; - :prefLabel "Textblad"@sv , "Text leaf"@en . + rdfs:label "Textblad"@sv , "Text leaf"@en . f:NonBookTextWithImages a :Form ; rdfs:subClassOf kbv:NonBookText , kbv:IllustratedWork ; - :prefLabel "Enskild text med bilder"@sv , + rdfs:label "Enskild text med bilder"@sv , "Non-book With Images"@en . kbv:Issue a :Class ; :category :pending, :concretetype ; rdfs:subClassOf kbv:NonBookText ; owl:equivalentClass bibo:Issue ; - :prefLabel "Tidskriftsnummer"@sv , + rdfs:label "Tidskriftsnummer"@sv , "Periodical Issue"@en . kbv:MonographicSeries a :Class ; @@ -220,7 +220,7 @@ kbv:MonographicSeries a :Class ; owl:equivalentClass bibo:Series , bf:Series, marc:MonographicSeries ; - :prefLabel "Monograph Series"@en , + rdfs:label "Monograph Series"@en , "Monografiserie"@sv . kbv:Object a :Class ; @@ -234,12 +234,12 @@ kbv:WrittenBook a :Class ; :category :pending, :concretetype ; skos:broadMatch kbrda:Text ; rdfs:subClassOf kbv:Book ; - :prefLabel "Written book"@en , + rdfs:label "Written book"@en , "Skriven bok"@sv . kbv:Audio a :SensoryForm ; skos:exactMatch kbrda:Sounds ; - :prefLabel "Audio"@en , + rdfs:label "Audio"@en , "Ljud"@sv . kbv:BookWithImages a :Class ; @@ -248,37 +248,37 @@ kbv:BookWithImages a :Class ; skos:editorialNote "TODO: PictorialWork?"@en ; skos:broadMatch saogf:Bildverk ; skos:narrowMatch barngf:Bilderb%C3%B6cker , barngf:Kapitelb\%C3\%B6cker ; - :prefLabel "Bok med bilder"@sv , + rdfs:label "Bok med bilder"@sv , "Book With Images"@en . kbv:CollectingResource a :Class ; :category :pending, :concretetype ; ptg:abstract true ; - :prefLabel "Collecting Resource"@en , + rdfs:label "Collecting Resource"@en , "Samlande resurs"@sv . kbv:MixedMaterial a :Class ; rdfs:subClassOf kbv:CollectingResource ; - :prefLabel "Mixed Material"@en , + rdfs:label "Mixed Material"@en , "Blandat material"@sv . kbv:Kit a :Class ; :category :pending, :richtype ; # rdfs:seeAlso ; rdfs:subClassOf kbv:CollectingResource ; - :prefLabel "Kit"@en , + rdfs:label "Kit"@en , "Kit"@sv . kbv:Collection a :Class ; :category :pending, :richtype ; rdfs:subClassOf kbv:CollectingResource ; - :prefLabel "Collection"@en , + rdfs:label "Collection"@en , "Samling"@sv . f:Integrating a :Class ; ptg:abstract true ; rdfs:subClassOf kbv:CollectingResource ; - :prefLabel "Integrating"@en , + rdfs:label "Integrating"@en , "Integrerande"@sv . kbv:Periodical a :Class ; @@ -287,7 +287,7 @@ kbv:Periodical a :Class ; rdfs:subClassOf kbv:SerialPublication ; skos:exactMatch saogf:Periodika ; :altLabel "Periodika"@sv ; - :prefLabel "Tidskrift"@sv , + rdfs:label "Tidskrift"@sv , "Periodical"@en . kbv:Film a :Class ; @@ -295,7 +295,7 @@ kbv:Film a :Class ; rdfs:subClassOf kbv:MovingImage ; owl:equivalentClass bibo:Film ; skos:exactMatch saogf:Filmer ; - :prefLabel "Film"@sv , + rdfs:label "Film"@sv , "Film"@en . kbv:Visual a :SensoryForm ; @@ -306,14 +306,14 @@ kbv:Archive a :Class ; :category :pending, :concretetype ; rdfs:subClassOf kbv:CollectingResource ; skos:exactMatch saogf:Arkiv ; - :prefLabel "Arkiv"@sv , + rdfs:label "Arkiv"@sv , "Archive"@en . kbv:Article a :Class ; :category :pending, :concretetype ; rdfs:subClassOf kbv:NonBookText ; owl:equivalentClass bibo:Article ; - :prefLabel "Artikel"@sv , + rdfs:label "Artikel"@sv , "Article"@en . kbv:Audiobook a :Class ; @@ -322,7 +322,7 @@ kbv:Audiobook a :Class ; kbv:Book , bibo:AudioDocument ; skos:exactMatch saogf:Ljudb\%C3\%B6cker ; - :prefLabel "Ljudbok"@sv , + rdfs:label "Ljudbok"@sv , "Audiobook"@en . kbv:Database a :Class ; @@ -330,7 +330,7 @@ kbv:Database a :Class ; rdfs:subClassOf f:Integrating ; skos:exactMatch saogf:Databaser ; skos:narrowMatch marc:UpdatingDatabase ; - :prefLabel "Databas"@sv , + rdfs:label "Databas"@sv , "Database"@en . kbv:TactileBook a :Class ; @@ -340,49 +340,49 @@ kbv:TactileBook a :Class ; skos:editorialNote "TODO: differentiate between \"filtbok\" och \"punktskriftsbok\"?"@en ; skos:broadMatch kbrda:TactileText ; skos:narrowMatch saogf:Punktskriftsb\%C3\%B6cker ; - :prefLabel "Tactile Book"@en , + rdfs:label "Tactile Book"@en , "Taktil bok"@sv . f:AudioProgram a :Form ; rdfs:subClassOf f:NonMusicAudio ; - :prefLabel "Ljudprogram"@sv , + rdfs:label "Ljudprogram"@sv , "Audio Program"@en . f:NonMusicAudio a :Form ; ptg:abstract true ; rdfs:subClassOf kbv:Audio ; - :prefLabel "Non-music audio"@en , + rdfs:label "Non-music audio"@en , "Ljud men inte musik"@sv . f:BoardGame a :Form ; rdfs:subClassOf f:PuzzleOrGame ; skos:exactMatch ; - :prefLabel "Brädspel"@sv , + rdfs:label "Brädspel"@sv , "Boardgame"@en . f:PuzzleOrGame a :Form ; rdfs:subClassOf f:InteractiveObject ; skos:exactMatch saogf:Spel\%20och\%20tanken\%C3\%B6tter ; - :prefLabel "Spel eller tankenötter"@sv , + rdfs:label "Spel eller tankenötter"@sv , "Puzzle or game"@en . f:Broschure a :Form ; rdfs:subClassOf kbv:NonBookText ; skos:exactMatch ; - :prefLabel "Broschyr"@sv , + rdfs:label "Broschyr"@sv , "Broschure"@en . f:Comic a :Form ; rdfs:subClassOf g:GraphicLiterature ; skos:exactMatch saogf:Serietidningar ; - :prefLabel "Serietidning"@sv , + rdfs:label "Serietidning"@sv , "Comic"@en . f:ComicIssue a :Form ; rdfs:subClassOf f:Comic , kbv:Issue ; owl:equivalentClass sdo:ComicIssue ; - :prefLabel "Serietidningsnummer"@sv , + rdfs:label "Serietidningsnummer"@sv , "Comic Issue"@en . f:ComicSerial a :Form ; @@ -391,11 +391,11 @@ f:ComicSerial a :Form ; kbv:SerialPublication ; # kbv:MonographicSeries ; # TODO: Separate ComicSeries ? owl:equivalentClass sdo:ComicSeries ; - :prefLabel "Serietidningsserie"@sv , + rdfs:label "Serietidningsserie"@sv , "Comic Series"@en . kbv:Multimedia a :Class ; - :prefLabel "Multimedia"@sv , + rdfs:label "Multimedia"@sv , "Multimedia"@en . kbv:Software a :Form ; # TODO: pending; integrate with ComputerGame, Application, ... @@ -406,44 +406,44 @@ kbv:Software a :Form ; # TODO: pending; integrate with ComputerGame, Application f:ComputerProgram a :Form ; owl:equivalentClass kbrda:ComputerProgram; rdfs:subClassOf kbv:Multimedia ; - :prefLabel "Datorprogram"@sv , + rdfs:label "Datorprogram"@sv , "Computer Program"@en . f:ComputerGame a :Form ; rdfs:subClassOf f:PuzzleOrGame, f:ComputerProgram ; skos:exactMatch saogf:Datorspel ; - :prefLabel "Datorspel"@sv , + rdfs:label "Datorspel"@sv , "Computer Game"@en . f:Diagram a :Form ; rdfs:subClassOf kbv:IllustratedWork ; skos:exactMatch saogf:Diagram ; - :prefLabel "Diagram"@sv , + rdfs:label "Diagram"@sv , "Diagram"@en . f:FormDocument a :Form ; rdfs:seeAlso ; rdfs:subClassOf kbv:NonBookText ; skos:exactMatch saogf:Blanketter ; - :prefLabel "Blankett"@sv , + rdfs:label "Blankett"@sv , "Form Document"@en . f:Handwriting a :Form ; rdfs:subClassOf kbv:Manuscript , kbv:Text ; skos:exactMatch saogf:Handskrifter ; - :prefLabel "Handskrift"@sv , + rdfs:label "Handskrift"@sv , "Handwriting"@en . f:Illustration a :Form ; rdfs:subClassOf kbv:StillImage ; skos:exactMatch saogf:Illustrationer ; - :prefLabel "Illustration"@sv , + rdfs:label "Illustration"@sv , "Illustration"@en . f:InteractiveObject a :Form ; rdfs:subClassOf kbv:Object ; - :prefLabel "Interaktivt objekt"@sv , + rdfs:label "Interaktivt objekt"@sv , "InteractiveObject"@en . f:Manual a :Form ; @@ -451,26 +451,26 @@ f:Manual a :Form ; g:TeachingMaterial ; skos:closeMatch saogf:Handb\%C3\%B6cker\%2C\%20manualer\%20etc ; rdfs:seeAlso ; - :prefLabel "Manual"@sv , + rdfs:label "Manual"@sv , "Manual"@en . f:MechanicalBook a :Form ; rdfs:subClassOf f:InteractiveObject , kbv:WrittenBook ; - :prefLabel "Mekanisk bok"@sv , + rdfs:label "Mekanisk bok"@sv , "Mechanical Book"@en . f:Note a :Form ; rdfs:subClassOf kbv:NonBookText ; owl:equivalentClass bibo:Note ; skos:exactMatch saogf:Anteckningar ; - :prefLabel "Anteckning"@sv , + rdfs:label "Anteckning"@sv , "Note"@en . f:Painting a :Form ; rdfs:subClassOf kbv:StillImage ; skos:exactMatch ; - :prefLabel "Målning"@sv , + rdfs:label "Målning"@sv , "Painting"@en . kbv:PerformedMusic a :Class ; @@ -478,33 +478,33 @@ kbv:PerformedMusic a :Class ; skos:exactMatch kbrda:PerformedMusic ; rdfs:subClassOf kbv:Audio , kbv:Music ; - :prefLabel "Performed Music"@en , + rdfs:label "Performed Music"@en , "Framförd musik"@sv . f:Photobook a :Form ; rdfs:subClassOf kbv:BookWithImages , kbv:Book ; skos:exactMatch saogf:Fotob\%C3\%B6cker ; - :prefLabel "Fotobok"@sv , + rdfs:label "Fotobok"@sv , "Photobook"@en . f:Photograph a :Form ; rdfs:subClassOf kbv:StillImage ; skos:exactMatch saogf:Fotografier ; - :prefLabel "Fotografi"@sv , + rdfs:label "Fotografi"@sv , "Photograph"@en . f:PictureDictionary a :Form ; rdfs:subClassOf kbv:Lexicon , kbv:BookWithImages ; skos:exactMatch saogf:Bildlexikon ; - :prefLabel "Bildlexikon"@sv , + rdfs:label "Bildlexikon"@sv , "Picture Dictionary"@en . f:Postcard a :Form ; rdfs:subClassOf kbv:IllustratedWork ; skos:exactMatch saogf:Vykort ; - :prefLabel "Vykort"@sv , + rdfs:label "Vykort"@sv , "Postcard"@en . # TODO: GenreForm? @@ -516,100 +516,100 @@ f:Poster a :Form ; rdfs:subClassOf kbv:IllustratedWork ; owl:equivalentClass sdo:Poster ; skos:exactMatch saogf:Affischer ; - :prefLabel "Affisch"@sv , + rdfs:label "Affisch"@sv , "Poster"@en . f:Puzzle a :Form ; rdfs:subClassOf f:PuzzleOrGame ; skos:exactMatch saogf:Pussel ; - :prefLabel "Pussel"@sv , + rdfs:label "Pussel"@sv , "Puzzle"@en . f:Sculpture a :Form ; rdfs:subClassOf kbv:Object ; - :prefLabel "Skulptur"@sv , + rdfs:label "Skulptur"@sv , "Sculpture"@en . f:SpokenBook a :Form ; rdfs:subClassOf kbv:Audiobook , f:SpokenWord ; skos:exactMatch saogf:Talb\%C3\%B6cker ; - :prefLabel "Talbok"@sv , + rdfs:label "Talbok"@sv , "Spoken Book"@en . f:SpokenWord a :Form ; skos:exactMatch kbrda:SpokenWord ; rdfs:subClassOf kbv:Text , kbv:Audio ; - :prefLabel "Tal"@sv , + rdfs:label "Tal"@sv , "Spoken Word"@en . f:SpokenPaper a :Form ; rdfs:subClassOf kbv:Periodical , f:SpokenWord ; skos:exactMatch saogf:Taltidningar ; - :prefLabel "Taltidning"@sv , + rdfs:label "Taltidning"@sv , "Spoken Paper"@en . f:TVProgram a :Form ; rdfs:subClassOf kbv:MovingImage ; skos:exactMatch saogf:Tv-program ; - :prefLabel "Tv-program"@sv , + rdfs:label "Tv-program"@sv , "TV-Program"@en . f:TVSeries a :Form ; rdfs:subClassOf f:TVProgram , kbv:MonographicSeries ; skos:exactMatch saogf:Tv-serier ; - :prefLabel "Tv-serie"@sv , + rdfs:label "Tv-serie"@sv , "TV-Series"@en . f:Toy a :Form ; rdfs:subClassOf f:InteractiveObject ; - :prefLabel "Leksak"@sv , + rdfs:label "Leksak"@sv , "Toy"@en . f:Trailer a :Form ; rdfs:subClassOf kbv:Film ; skos:exactMatch saogf:Trailrar ; - :prefLabel "Trailer"@sv , + rdfs:label "Trailer"@sv , "Trailer"@en . f:Website a :Form ; rdfs:subClassOf kbv:OnlineResource , f:Integrating ; skos:exactMatch saogf:Webbplatser ; - :prefLabel "Webbplats"@sv , + rdfs:label "Webbplats"@sv , "Website"@en . ## labels extracted from RDA data: f:CartographicDataset - :prefLabel "kartografiskt dataset"@sv , + rdfs:label "kartografiskt dataset"@sv , "cartographic dataset"@en . f:CartographicImage - :prefLabel "kartografisk bild"@sv , + rdfs:label "kartografisk bild"@sv , "cartographic image"@en . f:CartographicMovingImage - :prefLabel "kartografisk rörlig bild"@sv , + rdfs:label "kartografisk rörlig bild"@sv , "cartographic moving image"@en . f:CartographicTactileImage - :prefLabel "kartografisk taktil bild"@sv , + rdfs:label "kartografisk taktil bild"@sv , "cartographic tactile image"@en . f:CartographicThreeDimensionalForm - :prefLabel "kartografisk tredimensionell form"@sv , + rdfs:label "kartografisk tredimensionell form"@sv , "cartographic three-dimensional form"@en . f:TactileImage - :prefLabel "taktil bild"@sv , + rdfs:label "taktil bild"@sv , "tactile image"@en . f:TactileNotatedMovement - :prefLabel "taktil noterad rörelse"@sv , + rdfs:label "taktil noterad rörelse"@sv , "tactile notated movement"@en . f:TactileNotatedMusic - :prefLabel "taktil noterad musik"@sv , + rdfs:label "taktil noterad musik"@sv , "tactile notated music"@en . f:TactileText - :prefLabel "taktil text"@sv , + rdfs:label "taktil text"@sv , "tactile text"@en . f:TactileThreeDimensionalForm - :prefLabel "taktil tredimensionell form"@sv , + rdfs:label "taktil tredimensionell form"@sv , "tactile three-dimensional form"@en . From b98f5c375947a7cbd5da85c57604e4ef1d0277d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Wed, 12 Jun 2024 18:09:21 +0200 Subject: [PATCH 15/69] Add more labels to genre and carrier types --- source/vocab/newtypes/kbcr.ttl | 199 +++++++++++++++++++++------------ source/vocab/newtypes/kbtf.ttl | 85 +++++++------- 2 files changed, 167 insertions(+), 117 deletions(-) diff --git a/source/vocab/newtypes/kbcr.ttl b/source/vocab/newtypes/kbcr.ttl index 9368c3b0..4355ac5d 100644 --- a/source/vocab/newtypes/kbcr.ttl +++ b/source/vocab/newtypes/kbcr.ttl @@ -10,12 +10,7 @@ prefix kbv: prefix : prefix marc: -prefix s: -prefix f: -prefix g: - prefix saogf: -prefix barngf: prefix kbrda: @@ -43,31 +38,40 @@ prefix kbrda: kbv:Unmediated a :MediaType ; ptg:abstract true ; rdfs:subClassOf kbv:Instance ; - skos:exactMatch kbrda:Unmediated . + skos:exactMatch kbrda:Unmediated ; + rdfs:label "Omedierad resurs"@sv , "Unmediated"@en ; + :altLabel "Fysisk resurs"@sv . + kbv:Print a owl:Class; rdfs:subClassOf kbv:Unmediated . # TODO: Untenable: Printed vs. Handmade (Handwritten / Typewritten / Photocopied) ... -kbv:Handwritten a :Class; rdfs:subClassOf kbv:Unmediated . -kbv:Typewrittten a :Class; rdfs:subClassOf kbv:Unmediated . +#kbv:Handwritten a :Class; rdfs:subClassOf kbv:Unmediated . +#kbv:Typewrittten a :Class; rdfs:subClassOf kbv:Unmediated . + +kbv:Manuscript a owl:Class ; # TODO: changed to Work in BF + rdfs:subClassOf :Unmediated . # mer extraordinärt? Sitter på exemplar? #kbv:Photocopied a :Class; rdfs:subClassOf kbv:Unmediated ; skos:related marc:RegularPrintReproduction . + kbv:Volume a :CarrierType; #ptg:abstract true ; skos:exactMatch kbrda:Volume ; - rdfs:subClassOf kbv:Unmediated . - -kbv:MassProducedVolume a :Class ; - rdfs:subClassOf kbv:MassProduced, kbv:Volume . + rdfs:subClassOf kbv:Unmediated ; + rdfs:label "Volym"@sv , "Volume"@en . -kbv:RareVolume a :Class ; - rdfs:subClassOf kbv:Rare, kbv:Volume . +#kbv:MassProducedVolume a :Class ; +# rdfs:subClassOf kbv:MassProduced, kbv:Volume . +# +#kbv:RareVolume a :Class ; +# rdfs:subClassOf kbv:Rare, kbv:Volume . kbv:PrintedVolume a :Class ; - rdfs:subClassOf kbv:Print, kbv:Volume . + rdfs:subClassOf kbv:Print, kbv:Volume ; + rdfs:label "Tryckt volym"@sv , "Printed Volume"@en . kbv:HardcoverVolume a :Class; rdfs:subClassOf kbv:PrintedVolume . @@ -76,25 +80,25 @@ kbv:PaperbackVolume a :Class; rdfs:subClassOf kbv:PrintedVolume . -kbv:Manuscript a owl:Class ; # TODO: changed to Work in BF - rdfs:subClassOf :Unmediated . - - kbv:Card a :CarrierType; skos:exactMatch kbrda:Card ; - rdfs:subClassOf kbv:Unmediated . + rdfs:subClassOf kbv:Unmediated ; + rdfs:label "Bildkort"@sv, "Card"@en . kbv:Flipchart a :CarrierType; skos:exactMatch kbrda:Flipchart ; - rdfs:subClassOf kbv:Unmediated . + rdfs:subClassOf kbv:Unmediated ; + rdfs:label "Blädderblock"@sv, "Flipchart"@en . kbv:Roll a :CarrierType; skos:exactMatch kbrda:Roll ; - rdfs:subClassOf kbv:Unmediated . + rdfs:subClassOf kbv:Unmediated ; + rdfs:label "Rulle"@sv, "Roll"@en . kbv:Sheet a :CarrierType; skos:exactMatch kbrda:Sheet ; - rdfs:subClassOf kbv:Unmediated . + rdfs:subClassOf kbv:Unmediated ; + rdfs:label "Ark"@sv, "Sheet"@en . kbv:PrintedSheet a :Class ; rdfs:subClassOf kbv:Print, kbv:Sheet . @@ -135,7 +139,8 @@ kbv:Electronic a owl:Class ; # :MediaType ; # TODO: other StorageMedium? Magnetic / Optical / Mechanical ? kbv:StorageMedium a owl:Class ; ptg:abstract true ; - rdfs:subClassOf kbv:Instance . + rdfs:subClassOf kbv:Instance ; + rdfs:label "Lagringsmedium"@sv , "StorageMedium"@en . kbv:TapeCartridge a :Class ; @@ -172,43 +177,52 @@ kbv:OpticalDisc a :CarrierType ; kbv:ElectronicStorageMedium a :Class ; ptg:abstract true ; skos:exactMatch marc:DirectElectronic ; - rdfs:subClassOf kbv:Electronic, kbv:StorageMedium . + rdfs:subClassOf kbv:Electronic, kbv:StorageMedium ; + rdfs:label "Elektroniskt lagringsmedium"@sv , "StorageMedium"@en . kbv:DigitalResource a :CarrierType ; skos:broadMatch marc:Remote ; skos:exactMatch marc:Online, marc:OnlineResource, kbrda:OnlineResource ; - rdfs:subClassOf kbv:Electronic . + rdfs:subClassOf kbv:Electronic ; + rdfs:label "Digital resurs"@sv , "Digital Resource"@en . kbv:ChipCartridge a :CarrierType ; rdfs:subClassOf kbv:ElectronicStorageMedium ; - skos:exactMatch kbrda:ComputerChipCartridge, marc:ChipCartridge . + skos:exactMatch kbrda:ComputerChipCartridge, marc:ChipCartridge ; + rdfs:label "Computer chip cartridge"@en . kbv:ComputerCard a :CarrierType ; rdfs:subClassOf kbv:ElectronicStorageMedium ; - skos:exactMatch kbrda:ComputerCard, marc:ComputerCard . + skos:exactMatch kbrda:ComputerCard, marc:ComputerCard ; + rdfs:label "Datorkort"@sv, "Computer card"@en . kbv:ComputerDisc a :CarrierType ; rdfs:subClassOf kbv:ElectronicStorageMedium ; skos:broadMatch marc:MagneticDisk ; - skos:exactMatch kbrda:ComputerDisc, marc:ComputerDisc . + skos:exactMatch kbrda:ComputerDisc, marc:ComputerDisc ; + rdfs:label "Datorskiva"@sv, "Computer Disc"@en . kbv:ComputerDiscCartridge a :CarrierType ; rdfs:subClassOf kbv:ElectronicStorageMedium ; skos:exactMatch kbrda:ComputerDiscCartridge, marc:ComputerDiscCartridge ; - skos:narrowMatch marc:ComputerOpticalDiscCartridge . + skos:narrowMatch marc:ComputerOpticalDiscCartridge ; + rdfs:label "Datorskivmagasin"@sv, "Computer disc cartridge"@en . kbv:ComputerTapeCartridge a :CarrierType ; rdfs:subClassOf kbv:ElectronicStorageMedium , kbv:TapeCartridge ; - skos:exactMatch kbrda:ComputerTapeCartridge . + skos:exactMatch kbrda:ComputerTapeCartridge ; + rdfs:label "Datorbandmagasin"@sv, "Computer tape cartridge"@en . kbv:ComputerTapeCassette a :CarrierType ; rdfs:subClassOf kbv:ElectronicStorageMedium, kbv:TapeCassette ; - skos:exactMatch kbrda:ComputerTapeCassette . + skos:exactMatch kbrda:ComputerTapeCassette ; + rdfs:label "Datorkassett"@sv, "Computer tape cassette"@en . kbv:ComputerTapeReel a :CarrierType ; rdfs:subClassOf kbv:ElectronicStorageMedium, kbv:TapeReel ; - skos:exactMatch kbrda:ComputerTapeReel . + skos:exactMatch kbrda:ComputerTapeReel ; + rdfs:label "Datorbandspole"@sv, "Computer tape reel"@en . kbv:StandaloneDevice a :CarrierType ; @@ -222,31 +236,38 @@ kbv:SoundStorageMedium a :MediaType ; owl:sameAs kbv:SoundRecording ; ptg:abstract true ; skos:exactMatch kbrda:Audio ; - rdfs:subClassOf kbv:StorageMedium . + rdfs:subClassOf kbv:StorageMedium ; + rdfs:label "Audio"@sv, "Audio"@en . kbv:AudioDisc a :CarrierType ; rdfs:subClassOf kbv:SoundStorageMedium ; - skos:exactMatch kbrda:AudioDisc , marc:SoundDisc . + skos:exactMatch kbrda:AudioDisc , marc:SoundDisc ; + rdfs:label "Ljudskiva"@sv , "Audio Disc"@en . kbv:AudioCassette a :CarrierType ; rdfs:subClassOf kbv:SoundStorageMedium, kbv:TapeCassette ; - skos:exactMatch kbrda:Audiocassette , marc:SoundCassette . + skos:exactMatch kbrda:Audiocassette , marc:SoundCassette ; + rdfs:label "Ljudkassett"@sv , "Audio Cassette"@en . kbv:AudioCartridge a :CarrierType ; skos:exactMatch kbrda:AudioCartridge , marc:SoundCartridge ; - rdfs:subClassOf kbv:SoundStorageMedium . + rdfs:subClassOf kbv:SoundStorageMedium ; + rdfs:label "Ljudmagasin"@sv, "Audio cartridge"@en . kbv:AudioCylinder a :CarrierType ; skos:exactMatch kbrda:AudioCylinder, marc:Cylinder ; - rdfs:subClassOf kbv:SoundStorageMedium . + rdfs:subClassOf kbv:SoundStorageMedium ; + rdfs:label "Ljudcylinder"@sv, "Audio cylinder"@en . kbv:AudioRoll a :CarrierType ; skos:exactMatch kbrda:AudioRoll , marc:Roll ; - rdfs:subClassOf kbv:SoundStorageMedium . + rdfs:subClassOf kbv:SoundStorageMedium ; + rdfs:label "Ljudrulle"@sv, "Audio roll"@en . kbv:AudioTapeReel a :CarrierType ; skos:exactMatch kbrda:AudiotapeReel; - rdfs:subClassOf kbv:SoundStorageMedium , kbv:TapeReel , marc:SoundTapeReel . + rdfs:subClassOf kbv:SoundStorageMedium , kbv:TapeReel , marc:SoundTapeReel ; + rdfs:label "Ljudspole"@sv, "Audiotape reel"@en . # Zero uses in Libris... kbv:AudioWireRecording a :CarrierType ; @@ -254,7 +275,8 @@ kbv:AudioWireRecording a :CarrierType ; kbv:SoundTrackReel a :CarrierType ; skos:exactMatch kbrda:SoundTrackReel, marc:SoundTrackFilm; - rdfs:subClassOf kbv:SoundStorageMedium . + rdfs:subClassOf kbv:SoundStorageMedium ; + rdfs:label "Sound-track reel"@en . kbv:VideoStorageMedium a :MediaType ; @@ -262,23 +284,28 @@ kbv:VideoStorageMedium a :MediaType ; ptg:abstract true ; # TODO: deprecated baseclass kbv:MovingImageInstance ? skos:exactMatch kbrda:Video ; - rdfs:subClassOf kbv:StorageMedium . + rdfs:subClassOf kbv:StorageMedium ; + rdfs:label "Lagringsmedium för video"@sv, "Video Storage Medium"@en . kbv:VideoDisc a :CarrierType ; skos:exactMatch kbrda:Videodisc, marc:Videodisc ; - rdfs:subClassOf kbv:VideoStorageMedium . + rdfs:subClassOf kbv:VideoStorageMedium ; + rdfs:label "Videoskiva"@sv , "Video Disc"@en . kbv:VideoCartridge a :CarrierType ; skos:exactMatch kbrda:VideoCartridge, marc:Videocartridge ; - rdfs:subClassOf kbv:VideoStorageMedium . + rdfs:subClassOf kbv:VideoStorageMedium ; + rdfs:label "Videomagasin"@sv, "Video cartridge"@en . kbv:VideoCassette a :CarrierType ; skos:exactMatch kbrda:Videocassette, marc:Videocassette ; - rdfs:subClassOf kbv:VideoStorageMedium, kbv:TapeCassette . + rdfs:subClassOf kbv:VideoStorageMedium, kbv:TapeCassette ; + rdfs:label "Videokassett"@sv, "Videocassette"@en . kbv:VideoTapeReel a :CarrierType ; skos:exactMatch kbrda:VideotapeReel , marc:Videoreel ; - rdfs:subClassOf kbv:VideoStorageMedium, kbv:TapeReel . + rdfs:subClassOf kbv:VideoStorageMedium, kbv:TapeReel ; + rdfs:label "Videospole"@sv, "Videotape reel"@en . # TODO: restricted to some content forms (Visual, TextAsVisual...) @@ -286,7 +313,8 @@ kbv:VideoTapeReel a :CarrierType ; kbv:Microform a :MediaType ; ptg:abstract true ; skos:exactMatch kbrda:Microform; - rdfs:subClassOf kbv:StorageMedium . + rdfs:subClassOf kbv:StorageMedium ; + rdfs:label "Mikroform"@sv, "Microform"@en . kbv:Microfilm a :CarrierType ; ptg:abstract true ; @@ -295,107 +323,131 @@ kbv:Microfilm a :CarrierType ; kbv:ApertureCard a :CarrierType ; skos:exactMatch kbrda:ApertureCard, marc:ApertureCard ; - rdfs:subClassOf kbv:Microform . + rdfs:subClassOf kbv:Microform ; + rdfs:label "Maskhålkort"@sv, "Aperture card"@en . kbv:Microfiche a :CarrierType ; skos:exactMatch kbrda:Microfiche ; - rdfs:subClassOf kbv:Microform, marc:Microfiche . + rdfs:subClassOf kbv:Microform, marc:Microfiche ; + rdfs:label "Mikrofiche"@sv, "Microfiche"@en . kbv:MicroficheCassette a :CarrierType ; skos:exactMatch kbrda:MicroficheCassette, marc:MicroficheCassette ; - rdfs:subClassOf kbv:Microform . + rdfs:subClassOf kbv:Microform ; + rdfs:label "Mikrofichekassett"@sv, "Microfiche cassette"@en . kbv:MicrofilmCartridge a :CarrierType ; skos:exactMatch kbrda:MicrofilmCartridge, marc:MicrofilmCartridge ; - rdfs:subClassOf kbv:Microfilm . + rdfs:subClassOf kbv:Microfilm ; + rdfs:label "Mikrofilmsmagasin"@sv, "Microfilm cartridge"@en . kbv:MicrofilmCassette a :CarrierType ; skos:exactMatch kbrda:MicrofilmCassette, marc:MicrofilmCassette ; - rdfs:subClassOf kbv:Microfilm . + rdfs:subClassOf kbv:Microfilm ; + rdfs:label "Mikrofilmskassett"@sv, "Microfilm cassette"@en . kbv:MicrofilmReel a :CarrierType ; skos:exactMatch kbrda:MicrofilmReel, marc:MicrofilmReel ; - rdfs:subClassOf kbv:Microfilm . + rdfs:subClassOf kbv:Microfilm ; + rdfs:label "Mikrofilmsspole"@sv, "Microfilm reel"@en . kbv:MicrofilmRoll a :CarrierType ; skos:exactMatch kbrda:MicrofilmRoll, marc:MicrofilmRoll ; - rdfs:subClassOf kbv:Microfilm, kbv:VideoStorageMedium . + rdfs:subClassOf kbv:Microfilm, kbv:VideoStorageMedium ; + rdfs:label "Mikrofilmsrulle"@sv, "Microfilm roll"@en . kbv:MicrofilmSlip a :CarrierType ; skos:exactMatch kbrda:MicrofilmSlip, marc:MicrofilmSlip ; - rdfs:subClassOf kbv:Microform . + rdfs:subClassOf kbv:Microform ; + rdfs:label "Mikrofilmsremsa"@sv, "Microfilm slip"@en . kbv:Microopaque a :CarrierType ; skos:exactMatch kbrda:Microopaque ; - rdfs:subClassOf kbv:Microform, marc:Microopaque . + rdfs:subClassOf kbv:Microform, marc:Microopaque ; + rdfs:label "Mikrokort"@sv, "Microopaque"@en . kbv:Microscopic a :MediaType ; ptg:abstract true ; skos:exactMatch kbrda:Microscopic; - rdfs:subClassOf kbv:StorageMedium . + rdfs:subClassOf kbv:StorageMedium ; + rdfs:label "Mikroskopisk"@sv, "Microscopic"@en . kbv:MicroscopeSlide a :CarrierType ; skos:exactMatch kbrda:MicroscopeSlide ; - rdfs:subClassOf kbv:Microscopic . + rdfs:subClassOf kbv:Microscopic ; + rdfs:label "Mikroskoperingspreparat"@sv, "Microscope slide"@en . kbv:Projected a :MediaType ; ptg:abstract true ; skos:exactMatch kbrda:Projected; - rdfs:subClassOf kbv:StorageMedium . + rdfs:subClassOf kbv:StorageMedium ; + rdfs:label "Projicerad"@sv, "Projected"@en . kbv:FilmCartridge a :CarrierType ; skos:exactMatch kbrda:FilmCartridge ; - rdfs:subClassOf kbv:Projected . + rdfs:subClassOf kbv:Projected ; + rdfs:label "Filmmagasin"@sv, "Film cartridge"@en . kbv:FilmCassette a :CarrierType ; skos:exactMatch kbrda:FilmCassette ; - rdfs:subClassOf kbv:Projected . + rdfs:subClassOf kbv:Projected ; + rdfs:label "Filmkassett"@sv, "Film cassette"@en . kbv:FilmReel a :CarrierType ; skos:exactMatch kbrda:FilmReel ; - rdfs:subClassOf kbv:Projected . + rdfs:subClassOf kbv:Projected ; + rdfs:label "Filmspole"@sv, "Film reel"@en . kbv:FilmRoll a :CarrierType ; skos:exactMatch kbrda:FilmRoll ; - rdfs:subClassOf kbv:Projected . + rdfs:subClassOf kbv:Projected ; + rdfs:label "Filmrulle"@sv, "Film roll"@en . kbv:Filmslip a :CarrierType ; skos:exactMatch kbrda:Filmslip, marc:Filmslip ; - rdfs:subClassOf kbv:Projected . + rdfs:subClassOf kbv:Projected ; + rdfs:label "Filmremsa"@sv, "Filmslip"@en . # TODO: Ensure difference between StillImage Projected and MovingImage Projected! # See e.g. <> kbv:Filmstrip a :CarrierType ; skos:exactMatch kbrda:Filmstrip, marc:FilmstripRoll ; - rdfs:subClassOf kbv:Projected . + rdfs:subClassOf kbv:Projected ; + rdfs:label "Bildband"@sv, "Filmstrip"@en . kbv:FilmstripCartridge a :CarrierType ; skos:exactMatch kbrda:FilmstripCartridge, marc:FilmstripCartridge ; - rdfs:subClassOf kbv:Projected . + rdfs:subClassOf kbv:Projected ; + rdfs:label "Bildbandsmagasin"@sv, "Filmstrip cartridge"@en . kbv:OverheadTransparency a :CarrierType ; skos:exactMatch kbrda:OverheadTransparency, marc:Transparency ; - rdfs:subClassOf kbv:Projected . + rdfs:subClassOf kbv:Projected ; + rdfs:label "OH-bild"@sv, "Overhead transparency"@en . kbv:Slide a :CarrierType ; skos:exactMatch kbrda:Slide, marc:Slide ; - rdfs:subClassOf kbv:Projected . + rdfs:subClassOf kbv:Projected ; + rdfs:label "Diabild"@sv, "Slide"@en . kbv:Stereographic a :MediaType ; ptg:abstract true ; skos:exactMatch kbrda:Stereographic ; - rdfs:subClassOf kbv:StorageMedium . + rdfs:subClassOf kbv:StorageMedium ; + rdfs:label "Stereografisk"@sv, "Stereographic"@en . kbv:StereographCard a :CarrierType ; skos:exactMatch kbrda:StereographCard; - rdfs:subClassOf kbv:Stereographic . + rdfs:subClassOf kbv:Stereographic ; + rdfs:label "Stereografiskt kort"@sv, "Stereograph card"@en . kbv:StereographDisc a :CarrierType ; skos:exactMatch kbrda:StereographDisc; - rdfs:subClassOf kbv:Stereographic . + rdfs:subClassOf kbv:Stereographic ; + rdfs:label "Stereografisk skiva"@sv, "Stereograph disc"@en . ## TODO: *when needed* for marc - map patterns to/from to some of these types... @@ -407,3 +459,8 @@ kbv:StereographDisc a :CarrierType ; # kbv:ProjectedImageInstance kbv:instanceOf kbv:ProjectedImage . # kbv:NotatedMusicInstance kbv:instanceOf kbv:NotatedMusic . # kbv:KitInstance kbv:instanceOf kbv:Kit . + +# Missing RDA equivalents: +#kbrda:ComputerDataset :prefLabel "Computer dataset"@en . +#kbrda:ComputerProgram :prefLabel "Datorprogram"@sv, "Computer program"@en . +#kbrda:ThreeDimensionalForm :prefLabel "Tredimensionell form"@sv, "Three-dimensional form"@en . diff --git a/source/vocab/newtypes/kbtf.ttl b/source/vocab/newtypes/kbtf.ttl index c49f80f7..7a4762b8 100644 --- a/source/vocab/newtypes/kbtf.ttl +++ b/source/vocab/newtypes/kbtf.ttl @@ -40,32 +40,42 @@ kbv:Cartography a :Class ; f:CartographicDataset a :Form; owl:equivalentClass kbrda:CartographicDataset; - rdfs:subClassOf kbv:Cartography, kbv:Dataset . + rdfs:subClassOf kbv:Cartography, kbv:Dataset ; + rdfs:label "Kartografiskt dataset"@sv , "Cartographic dataset"@en . + f:CartographicImage a :Form; owl:equivalentClass kbrda:CartographicImage; - rdfs:subClassOf kbv:Cartography, kbv:StillImage . + rdfs:subClassOf kbv:Cartography, kbv:StillImage ; + rdfs:label "Kartografisk bild"@sv , "Cartographic image"@en . + f:CartographicMovingImage a :Form; owl:equivalentClass kbrda:CartographicMovingImage; - rdfs:subClassOf kbv:Cartography, kbv:MovingImage . + rdfs:subClassOf kbv:Cartography, kbv:MovingImage ; + rdfs:label "Kartografisk rörlig bild"@sv , "Cartographic moving image"@en . + f:CartographicTactileImage a :Form; owl:equivalentClass kbrda:CartographicTactileImage; - rdfs:subClassOf kbv:Cartography, kbv:StillImage . + rdfs:subClassOf kbv:Cartography, kbv:StillImage ; + rdfs:label "Kartografisk taktil bild"@sv , "Cartographic tactile image"@en . + f:CartographicTactileObject a :Form; owl:equivalentClass kbrda:CartographicTactileThreeDimensionalForm; rdfs:subClassOf kbv:Cartography, kbv:TactileObject ; - rdfs:label "kartografiskt taktilt objekt"@sv , - "cartographic tactile object"@en . + rdfs:label "Kartografiskt taktilt objekt"@sv , + "Cartographic Tactile Object"@en . + #f:TactileCartography a :Form ; # rdfs:subClassOf kbv:Cartography , # kbv:Tactile ; # skos:editorialNote "TODO: edge case? Force a choice of primary purpose of expression? This is not a11y, that's about the instance. Mixed purposes can be solved by primary purpose as type and additional \"color\" as genre."@en ; # rdfs:label "Taktilt kartografiskt verk"@sv , # "Tactile Cartography"@en . + f:CartographicObject a :Form; owl:equivalentClass kbrda:CartographicThreeDimensionalForm; rdfs:subClassOf kbv:Cartography, kbv:Object ; - rdfs:label "kartografiskt objekt"@sv , - "cartographic object"@en . + rdfs:label "Kartografiskt objekt"@sv , + "Cartographic Object"@en . f:Atlas a :Form ; rdfs:subClassOf kbv:Cartography , @@ -94,22 +104,29 @@ kbv:Tactile a :SensoryForm ; f:TactileImage a :Form ; owl:equivalentClass kbrda:TactileImage; - rdfs:subClassOf kbv:StillImage, kbv:Tactile . # _:TactileInstanceRestriction . + rdfs:subClassOf kbv:StillImage, kbv:Tactile ; # _:TactileInstanceRestriction . + rdfs:label "Taktil bild"@sv , "Tactile image"@en . f:TactileNotatedMusic a :Form ; owl:equivalentClass kbrda:TactileNotatedMusic; - rdfs:subClassOf kbv:NotatedMusic, kbv:Tactile . # , _:TactileInstanceRestriction . + rdfs:subClassOf kbv:NotatedMusic, kbv:Tactile ; # , _:TactileInstanceRestriction . + rdfs:label "Taktil noterad musik"@sv , "Tactile notated music"@en . + f:TactileNotatedMovement a :Form ; owl:equivalentClass kbrda:TactileNotatedMovement; - rdfs:subClassOf kbv:NotatedMovement, kbv:Tactile . # , _:TactileInstanceRestriction . + rdfs:subClassOf kbv:NotatedMovement, kbv:Tactile ; # , _:TactileInstanceRestriction . + rdfs:label "Taktil noterad rörelse"@sv , "Tactile notated movement"@en . + f:TactileText a :Form ; owl:equivalentClass kbrda:TactileText; - rdfs:subClassOf kbv:Text, kbv:Tactile . # , _:TactileInstanceRestriction . + rdfs:subClassOf kbv:Text, kbv:Tactile ; # , _:TactileInstanceRestriction . + rdfs:label "Taktil text"@sv , "Tactile text"@en . + f:TactileObject a :Form ; owl:equivalentClass kbrda:TactileThreeDimensionalForm; rdfs:subClassOf kbv:Object, kbv:Tactile ; # , _:TactileInstanceRestriction , - rdfs:label "kartografiskt taktilt objekt"@sv , - "cartographic tactile object"@en . + rdfs:label "Taktilt objekt"@sv , + "Tactile Object"@en . #_:TactileInstanceRestriction a owl:Restriction ; # owl:onProperty kbv:hasInstance; @@ -151,6 +168,14 @@ kbv:MovingImage a :Class ; rdfs:label "Moving Image"@en , "Rörlig bild"@sv . +#kbv:ThreeDimensionalMovingImage +# skos:exactMatch kbrda:ThreeDimensionalMovingImage ; +# :prefLabel "Tredimensionell rörlig bild", "Three-dimensional moving image"@en . +# +#kbv:TwoDimensionalMovingImage +# skos:exactMatch kbrda:TwoDimensionalMovingImage ; +# :prefLabel "Tvådimensionell rörlig bild", "Two-dimensional moving image"@en . + kbv:NotatedMusic a :Class ; skos:exactMatch kbrda:NotatedMusic ; rdfs:subClassOf kbv:Music ; @@ -581,35 +606,3 @@ f:Website a :Form ; skos:exactMatch saogf:Webbplatser ; rdfs:label "Webbplats"@sv , "Website"@en . - -## labels extracted from RDA data: -f:CartographicDataset - rdfs:label "kartografiskt dataset"@sv , - "cartographic dataset"@en . -f:CartographicImage - rdfs:label "kartografisk bild"@sv , - "cartographic image"@en . -f:CartographicMovingImage - rdfs:label "kartografisk rörlig bild"@sv , - "cartographic moving image"@en . -f:CartographicTactileImage - rdfs:label "kartografisk taktil bild"@sv , - "cartographic tactile image"@en . -f:CartographicThreeDimensionalForm - rdfs:label "kartografisk tredimensionell form"@sv , - "cartographic three-dimensional form"@en . -f:TactileImage - rdfs:label "taktil bild"@sv , - "tactile image"@en . -f:TactileNotatedMovement - rdfs:label "taktil noterad rörelse"@sv , - "tactile notated movement"@en . -f:TactileNotatedMusic - rdfs:label "taktil noterad musik"@sv , - "tactile notated music"@en . -f:TactileText - rdfs:label "taktil text"@sv , - "tactile text"@en . -f:TactileThreeDimensionalForm - rdfs:label "taktil tredimensionell form"@sv , - "tactile three-dimensional form"@en . From f3aec89bc1bc1abb20d292744ba583ff1c8c601d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Fri, 28 Jun 2024 17:58:13 +0200 Subject: [PATCH 16/69] Add and update types to kbtf and update kbcr --- source/vocab/newtypes/kbcr.ttl | 8 ++++---- source/vocab/newtypes/kbtf.ttl | 36 +++++++++++++++++++++++++++------- 2 files changed, 33 insertions(+), 11 deletions(-) diff --git a/source/vocab/newtypes/kbcr.ttl b/source/vocab/newtypes/kbcr.ttl index 4355ac5d..a4ff09af 100644 --- a/source/vocab/newtypes/kbcr.ttl +++ b/source/vocab/newtypes/kbcr.ttl @@ -28,10 +28,10 @@ prefix kbrda: # skos:narrowMatch marc:MonographicSeries ; # ptg:abstract true . -# TODO: For export-to-bf+rda or revert-to-marc; use type-like properties to -# "bases" derived from exactMatch or broadMatch. For instance types, that -# mostly means :carrierType (unless some enum types are kept as subclasses of -# :GenreForm). +# TODO: For export-to-bf+rda or revert-to-marc; infer type-like properties +# linking to "bases" derived via exactMatch or broadMatch of given types. For +# instance types, that mostly means :carrierType (unless some enum types are +# kept as subclasses of :GenreForm). # Unmediated diff --git a/source/vocab/newtypes/kbtf.ttl b/source/vocab/newtypes/kbtf.ttl index 7a4762b8..e98dcb6e 100644 --- a/source/vocab/newtypes/kbtf.ttl +++ b/source/vocab/newtypes/kbtf.ttl @@ -22,6 +22,9 @@ base # TODO: make kbrda:* sameAs or bases for (basic) types (possibly abstract)? # *Some* are still better as "genreForm" though; so keep all as such (bound as genres for exact-matching types with a Restriction)? +# TODO: s/a :Form/a :GenreFormClass/g +# rdfs:subClassOf [ a owl:Restriction ; owl:onProperty :genreForm ; owl:hasSelf true ] . + # kbv:ArchivalUnit # TODO: remove from vocab @@ -60,7 +63,7 @@ f:CartographicTactileImage a :Form; f:CartographicTactileObject a :Form; owl:equivalentClass kbrda:CartographicTactileThreeDimensionalForm; - rdfs:subClassOf kbv:Cartography, kbv:TactileObject ; + rdfs:subClassOf kbv:Cartography, f:TactileObject ; rdfs:label "Kartografiskt taktilt objekt"@sv , "Cartographic Tactile Object"@en . @@ -424,13 +427,19 @@ kbv:Multimedia a :Class ; "Multimedia"@en . kbv:Software a :Form ; # TODO: pending; integrate with ComputerGame, Application, ... + ptg:abstract true ; rdfs:subClassOf kbv:Multimedia ; :prefLabel "Mjukvara"@sv , "Software"@en . +f:ComputerCode a :Form ; + rdfs:subClassOf kbv:Software ; + rdfs:label "Datorkod"@sv , + "Computer Code"@en . + f:ComputerProgram a :Form ; owl:equivalentClass kbrda:ComputerProgram; - rdfs:subClassOf kbv:Multimedia ; + rdfs:subClassOf kbv:Software ; rdfs:label "Datorprogram"@sv , "Computer Program"@en . @@ -441,7 +450,7 @@ f:ComputerGame a :Form ; "Computer Game"@en . f:Diagram a :Form ; - rdfs:subClassOf kbv:IllustratedWork ; + rdfs:subClassOf kbv:StillImage ; skos:exactMatch saogf:Diagram ; rdfs:label "Diagram"@sv , "Diagram"@en . @@ -527,7 +536,7 @@ f:PictureDictionary a :Form ; "Picture Dictionary"@en . f:Postcard a :Form ; - rdfs:subClassOf kbv:IllustratedWork ; + rdfs:subClassOf kbv:StillImage ; skos:exactMatch saogf:Vykort ; rdfs:label "Vykort"@sv , "Postcard"@en . @@ -538,11 +547,24 @@ f:Postcard a :Form ; # skos:exactMatch ; f:Poster a :Form ; - rdfs:subClassOf kbv:IllustratedWork ; + rdfs:subClassOf kbv:StillImage ; owl:equivalentClass sdo:Poster ; skos:exactMatch saogf:Affischer ; - rdfs:label "Affisch"@sv , - "Poster"@en . + rdfs:label "Affisch"@sv, "Poster"@en . + +f:ImagePoster a :Form ; + rdfs:subClassOf f:Poster ; + skos:broadMatch kbrda:StillImage ; + rdfs:label "Bildaffisch"@sv, "Image Poster"@en . + +f:TextPoster a :Form ; + rdfs:subClassOf f:Poster ; + skos:broadMatch kbrda:Text ; + rdfs:label "Textaffisch"@sv, "Text Poster"@en . + +f:ImageAndTextPoster a :Form ; + rdfs:subClassOf f:ImagePoster, f:TextPoster ; + rdfs:label "Bild- och textaffisch"@sv, "Image and Text Poster"@en . f:Puzzle a :Form ; rdfs:subClassOf f:PuzzleOrGame ; From b5889293e487ee50a24d85282db9ff2e1c0e1349 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Wed, 3 Jul 2024 17:09:25 +0200 Subject: [PATCH 17/69] Fix spelling in labels of new types --- source/vocab/newtypes/kbgf.ttl | 2 +- source/vocab/newtypes/kbtf.ttl | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source/vocab/newtypes/kbgf.ttl b/source/vocab/newtypes/kbgf.ttl index 9b7e62ba..26260b7c 100644 --- a/source/vocab/newtypes/kbgf.ttl +++ b/source/vocab/newtypes/kbgf.ttl @@ -205,7 +205,7 @@ g:MusicRadioProgram a :Genre ; g:MusicRecording a :Genre ; rdfs:subClassOf kbv:Music ; skos:exactMatch saogf:Musikinspelningar ; - :prefLabel "Musikrinspelning"@sv , + :prefLabel "Musikinspelning"@sv , "Music Recording"@en . g:NewsLetter a :Genre ; diff --git a/source/vocab/newtypes/kbtf.ttl b/source/vocab/newtypes/kbtf.ttl index e98dcb6e..83b107ed 100644 --- a/source/vocab/newtypes/kbtf.ttl +++ b/source/vocab/newtypes/kbtf.ttl @@ -394,11 +394,11 @@ f:PuzzleOrGame a :Form ; rdfs:label "Spel eller tankenötter"@sv , "Puzzle or game"@en . -f:Broschure a :Form ; +f:Brochure a :Form ; rdfs:subClassOf kbv:NonBookText ; skos:exactMatch ; rdfs:label "Broschyr"@sv , - "Broschure"@en . + "Brochure"@en . f:Comic a :Form ; rdfs:subClassOf g:GraphicLiterature ; From 54b4aa65836618fb3563161fbcf88e526b690d97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Mon, 8 Jul 2024 16:19:30 +0200 Subject: [PATCH 18/69] Adjusted new types --- source/vocab/newtypes/kbcr.ttl | 13 +++---- source/vocab/newtypes/kbtf.ttl | 69 ++++++++++++++++++---------------- 2 files changed, 41 insertions(+), 41 deletions(-) diff --git a/source/vocab/newtypes/kbcr.ttl b/source/vocab/newtypes/kbcr.ttl index a4ff09af..372cd4d8 100644 --- a/source/vocab/newtypes/kbcr.ttl +++ b/source/vocab/newtypes/kbcr.ttl @@ -43,10 +43,11 @@ kbv:Unmediated a :MediaType ; :altLabel "Fysisk resurs"@sv . +# TODO: Printed vs. Handmade as mixins for precoordinated (7x7)? kbv:Print a owl:Class; rdfs:subClassOf kbv:Unmediated . -# TODO: Untenable: Printed vs. Handmade (Handwritten / Typewritten / Photocopied) ... +# Untenable(?): Handwritten / Typewritten / Photocopied => Purpose (Genre) OR Manufacture/Production #kbv:Handwritten a :Class; rdfs:subClassOf kbv:Unmediated . #kbv:Typewrittten a :Class; rdfs:subClassOf kbv:Unmediated . @@ -56,6 +57,7 @@ kbv:Manuscript a owl:Class ; # TODO: changed to Work in BF # mer extraordinärt? Sitter på exemplar? #kbv:Photocopied a :Class; rdfs:subClassOf kbv:Unmediated ; skos:related marc:RegularPrintReproduction . +# fmt:LargeText a :Format ? kbv:Volume a :CarrierType; #ptg:abstract true ; @@ -103,12 +105,12 @@ kbv:Sheet a :CarrierType; kbv:PrintedSheet a :Class ; rdfs:subClassOf kbv:Print, kbv:Sheet . -kbv:NonPrintedSheet a :Class ; +kbv:HandmadeSheet a :Class ; rdfs:subClassOf kbv:Unmediated, kbv:Sheet . # TODO: Every non-DigitalResource is physical of course; this is for "none of the others; actual purposeful 3d object"... -kbv:PhysicalObject a owl:Class ; +kbv:PhysicalObject a owl:Class ; # kbv:UnmediatedObject ? skos:exactMatch kbrda:Object ; rdfs:subClassOf kbv:Unmediated . @@ -459,8 +461,3 @@ kbv:StereographDisc a :CarrierType ; # kbv:ProjectedImageInstance kbv:instanceOf kbv:ProjectedImage . # kbv:NotatedMusicInstance kbv:instanceOf kbv:NotatedMusic . # kbv:KitInstance kbv:instanceOf kbv:Kit . - -# Missing RDA equivalents: -#kbrda:ComputerDataset :prefLabel "Computer dataset"@en . -#kbrda:ComputerProgram :prefLabel "Datorprogram"@sv, "Computer program"@en . -#kbrda:ThreeDimensionalForm :prefLabel "Tredimensionell form"@sv, "Three-dimensional form"@en . diff --git a/source/vocab/newtypes/kbtf.ttl b/source/vocab/newtypes/kbtf.ttl index 83b107ed..1dab7b7a 100644 --- a/source/vocab/newtypes/kbtf.ttl +++ b/source/vocab/newtypes/kbtf.ttl @@ -23,7 +23,7 @@ base # *Some* are still better as "genreForm" though; so keep all as such (bound as genres for exact-matching types with a Restriction)? # TODO: s/a :Form/a :GenreFormClass/g -# rdfs:subClassOf [ a owl:Restriction ; owl:onProperty :genreForm ; owl:hasSelf true ] . +# ?gfcls a :GenreFormClass ; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty :genreForm ; owl:hasValue ?gfcls ] . # kbv:ArchivalUnit # TODO: remove from vocab @@ -33,36 +33,51 @@ kbv:Arrangement a :Class ; "Arrangemang"@sv . +# TODO: replace with f:Cartography and compute on revert (an "!important" f:Cartography genreForm) kbv:Cartography a :Class ; + ptg:abstract true ; rdfs:subClassOf kbv:Visual ; skos:editorialNote "TODO: restriction on Map for instanceOf; allValuesFrom this..."@en ; skos:exactMatch saogf:Kartor ; - skos:narrowMatch kbv:Map ; :prefLabel "Kartografiskt verk"@sv , "Cartography"@en . f:CartographicDataset a :Form; - owl:equivalentClass kbrda:CartographicDataset; + skos:exactMatch kbrda:CartographicDataset; rdfs:subClassOf kbv:Cartography, kbv:Dataset ; rdfs:label "Kartografiskt dataset"@sv , "Cartographic dataset"@en . f:CartographicImage a :Form; - owl:equivalentClass kbrda:CartographicImage; + skos:exactMatch kbrda:CartographicImage; + #skos:closeMatch kbv:Map ; rdfs:subClassOf kbv:Cartography, kbv:StillImage ; - rdfs:label "Kartografisk bild"@sv , "Cartographic image"@en . + rdfs:label "Kartografisk bild"@sv , "Cartographic image"@en ; + skos:altLabel "Karta"@sv, "Kartor in plano"@sv . + +# FIXME: remove instancetype kbv:Map ; compute on revert (if work is kbv:Cartography, prefer Map over all non-electronic?) +# TODO: == Cartography +#f:Map a :Form ; +# rdfs:subClassOf f:CartographicImage ; +# rdfs:label "Karta"@sv , "Map"@en . + +f:Atlas a :Form ; + rdfs:subClassOf kbv:Cartography , + kbv:Book ; + rdfs:label "Atlas"@sv , + "Atlas"@en . f:CartographicMovingImage a :Form; - owl:equivalentClass kbrda:CartographicMovingImage; + skos:exactMatch kbrda:CartographicMovingImage; rdfs:subClassOf kbv:Cartography, kbv:MovingImage ; rdfs:label "Kartografisk rörlig bild"@sv , "Cartographic moving image"@en . f:CartographicTactileImage a :Form; - owl:equivalentClass kbrda:CartographicTactileImage; + skos:exactMatch kbrda:CartographicTactileImage; rdfs:subClassOf kbv:Cartography, kbv:StillImage ; rdfs:label "Kartografisk taktil bild"@sv , "Cartographic tactile image"@en . f:CartographicTactileObject a :Form; - owl:equivalentClass kbrda:CartographicTactileThreeDimensionalForm; + skos:exactMatch kbrda:CartographicTactileThreeDimensionalForm; rdfs:subClassOf kbv:Cartography, f:TactileObject ; rdfs:label "Kartografiskt taktilt objekt"@sv , "Cartographic Tactile Object"@en . @@ -75,58 +90,44 @@ f:CartographicTactileObject a :Form; # "Tactile Cartography"@en . f:CartographicObject a :Form; - owl:equivalentClass kbrda:CartographicThreeDimensionalForm; + skos:exactMatch kbrda:CartographicThreeDimensionalForm; rdfs:subClassOf kbv:Cartography, kbv:Object ; rdfs:label "Kartografiskt objekt"@sv , "Cartographic Object"@en . -f:Atlas a :Form ; - rdfs:subClassOf kbv:Cartography , - kbv:Book ; - rdfs:label "Atlas"@sv , - "Atlas"@en . - # FIXME: move instancetype kbv:Globe to work f:Globe a :Form ; rdfs:subClassOf f:CartographicObject ; rdfs:label "Jord- eller månglob"@sv , "Globe"@en . -# FIXME: move instancetype kbv:Map to work -# TODO: == Cartography -f:Map a :Form ; - rdfs:subClassOf f:CartographicImage ; - rdfs:label "Karta"@sv , - "Map"@en . - - kbv:Tactile a :SensoryForm ; skos:exactMatch saogf:Taktila\%20verk ; :prefLabel "Tactile"@en , "Taktilt verk"@sv . f:TactileImage a :Form ; - owl:equivalentClass kbrda:TactileImage; + skos:exactMatch kbrda:TactileImage; rdfs:subClassOf kbv:StillImage, kbv:Tactile ; # _:TactileInstanceRestriction . rdfs:label "Taktil bild"@sv , "Tactile image"@en . f:TactileNotatedMusic a :Form ; - owl:equivalentClass kbrda:TactileNotatedMusic; + skos:exactMatch kbrda:TactileNotatedMusic; rdfs:subClassOf kbv:NotatedMusic, kbv:Tactile ; # , _:TactileInstanceRestriction . rdfs:label "Taktil noterad musik"@sv , "Tactile notated music"@en . f:TactileNotatedMovement a :Form ; - owl:equivalentClass kbrda:TactileNotatedMovement; + skos:exactMatch kbrda:TactileNotatedMovement; rdfs:subClassOf kbv:NotatedMovement, kbv:Tactile ; # , _:TactileInstanceRestriction . rdfs:label "Taktil noterad rörelse"@sv , "Tactile notated movement"@en . f:TactileText a :Form ; - owl:equivalentClass kbrda:TactileText; + skos:exactMatch kbrda:TactileText; rdfs:subClassOf kbv:Text, kbv:Tactile ; # , _:TactileInstanceRestriction . rdfs:label "Taktil text"@sv , "Tactile text"@en . f:TactileObject a :Form ; - owl:equivalentClass kbrda:TactileThreeDimensionalForm; + skos:exactMatch kbrda:TactileThreeDimensionalForm; rdfs:subClassOf kbv:Object, kbv:Tactile ; # , _:TactileInstanceRestriction , rdfs:label "Taktilt objekt"@sv , "Tactile Object"@en . @@ -142,7 +143,7 @@ kbv:Dataset a :Class ; "Dataset"@sv . f:ComputerDataset a :Form; - owl:equivalentClass kbrda:ComputerDataset; + skos:exactMatch kbrda:ComputerDataset; rdfs:subClassOf kbv:Dataset . kbv:Text a :Class ; @@ -206,7 +207,8 @@ kbv:IllustratedWork a :Class ; rdfs:label "Illustrerat verk"@sv , "Illustrated Work"@en . -kbv:Book a :Class ; # T:LargeText +kbv:Book a :Class ; + ptg:abstract true ; :category :pending, :concretetype ; owl:equivalentClass bibo:Book, sdo:Book ; rdfs:subClassOf kbv:Text ; @@ -253,7 +255,7 @@ kbv:MonographicSeries a :Class ; kbv:Object a :Class ; :category :ConcreteType ; - skos:broadMatch kbrda:ThreeDimensionalForm ; + skos:exactMatch kbrda:ThreeDimensionalForm ; # TODO: rename or altLabel? owl:equivalentClass kbv:ObjectByPurpose ; :prefLabel "Intensional Object"@en , "Syftesmässig sak"@sv . @@ -263,7 +265,8 @@ kbv:WrittenBook a :Class ; skos:broadMatch kbrda:Text ; rdfs:subClassOf kbv:Book ; rdfs:label "Written book"@en , - "Skriven bok"@sv . + "Skriven bok"@sv ; + skos:altLabel "Bok"@sv, "Book"@en . kbv:Audio a :SensoryForm ; skos:exactMatch kbrda:Sounds ; @@ -438,7 +441,7 @@ f:ComputerCode a :Form ; "Computer Code"@en . f:ComputerProgram a :Form ; - owl:equivalentClass kbrda:ComputerProgram; + skos:exactMatch kbrda:ComputerProgram; rdfs:subClassOf kbv:Software ; rdfs:label "Datorprogram"@sv , "Computer Program"@en . From c8aec3a80774536c612233588159113fd779d96c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Mon, 26 Aug 2024 19:02:44 +0200 Subject: [PATCH 19/69] Add OWL-based type normalization examples --- examples/typenormalization/categories.ttl | 65 ++++++++++++++++ examples/typenormalization/examples.ttl | 75 +++++++++++++++++++ examples/typenormalization/requirements.txt | 2 + examples/typenormalization/test_categories.py | 47 ++++++++++++ 4 files changed, 189 insertions(+) create mode 100644 examples/typenormalization/categories.ttl create mode 100644 examples/typenormalization/examples.ttl create mode 100644 examples/typenormalization/requirements.txt create mode 100644 examples/typenormalization/test_categories.py diff --git a/examples/typenormalization/categories.ttl b/examples/typenormalization/categories.ttl new file mode 100644 index 00000000..015ed6ed --- /dev/null +++ b/examples/typenormalization/categories.ttl @@ -0,0 +1,65 @@ +prefix rdfs: +prefix owl: +prefix : +prefix f: +prefix saogf: +prefix barngf: +prefix kbrda: +base + +f:Book a owl:Class ; + owl:intersectionOf ( + :Text + [ owl:unionOf ( + [ owl:onProperty :genreForm ; owl:hasValue saogf:Romaner ] + [ owl:onProperty :genreForm ; owl:hasValue [ :broaderTransitive saogf:Romaner ] ] + [ owl:onProperty :genreForm ; owl:hasValue barngf:Bilderb%F6cker ] + [ owl:onProperty :genreForm ; owl:hasValue barngf:Kapitelb%F6cker ] + ) ] + ) . + +f:Audiobook a owl:Class ; + owl:intersectionOf ( + :Audio + [ owl:unionOf ( + [ owl:onProperty :genreForm ; owl:hasValue saogf:Romaner ] + [ owl:onProperty :genreForm ; owl:hasValue saogf:Ljudb\%C3\%B6cker ] + ) ] + ) . + +f:EBook a owl:Class ; + owl:intersectionOf ( + :Electronic + [ owl:onProperty :instanceOf ; owl:someValuesFrom f:Book ] + ) . + +f:CDBook a owl:Class ; + owl:intersectionOf ( + [ owl:onProperty :carrierType ; owl:hasValue kbrda:AudioDisc ] + [ owl:onProperty :instanceOf ; owl:someValuesFrom f:Book ] + ) . + +f:ComputerGame a owl:Class ; + owl:intersectionOf ( + :Multimedia + [ owl:onProperty :genreForm ; owl:hasValue saogf:Datorspel ] + ) . + +f:ComicMagazine a owl:Class ; + rdfs:subClassOf [ owl:onProperty :contentType ; owl:hasValue kbrda:StillImage ] ; + owl:intersectionOf ( + :Text + [ owl:unionOf ( + [ owl:onProperty :genreForm ; owl:hasValue saogf:Tecknade%20serier ] + [ owl:onProperty :genreForm ; owl:hasValue barngf:Tecknade%20serier ] + ) ] + ) . + +f:GraphicNovel a owl:Class ; + owl:equivalentClass [ owl:intersectionOf ( + :Text + [ owl:onProperty :genreForm ; owl:hasValue saogf:Serieromaner ] + ) + ] ; + rdfs:subClassOf f:ComicMagazine , + [ owl:onProperty :genreForm ; owl:hasValue saogf:Romaner ] . diff --git a/examples/typenormalization/examples.ttl b/examples/typenormalization/examples.ttl new file mode 100644 index 00000000..88ed61ca --- /dev/null +++ b/examples/typenormalization/examples.ttl @@ -0,0 +1,75 @@ +## +# To run tests: +# +# $ pip install -r requirements.txt +# $ python test_categories.py +# +# (Add `-d` cmdline flag see full OWL-RL output.) + +prefix rdfs: +prefix owl: +prefix : +prefix kbrda: +prefix f: +prefix saogf: +prefix barngf: +prefix spec: + + a :Text ; + :genreForm saogf:Romaner ; + spec:query 'ASK { a f:Book }' . + + a :Audio ; + :genreForm saogf:Romaner ; + spec:query 'ASK { a f:Audiobook }' . + + a :Audio ; + :genreForm saogf:Ljudb\%C3\%B6cker ; + spec:query 'ASK { a f:Audiobook }' . + + a :Electronic ; + :instanceOf ; + spec:query 'ASK { a f:EBook }' . + + a :Electronic ; + :carrierType kbrda:AudioDisc ; + :instanceOf ; + spec:query 'ASK { a f:CDBook }' . + + a :Multimedia ; + :genreForm saogf:Datorspel ; + spec:query 'ASK { a f:ComputerGame }' . + + a f:ComputerGame ; + spec:query 'ASK { a :Multimedia ; :genreForm saogf:Datorspel }' . + + a :Multimedia ; + spec:query 'ASK { FILTER NOT EXISTS { a f:ComputerGame } }' . + + a :Serial ; + :genreForm saogf:Datorspel ; + spec:query 'ASK { FILTER NOT EXISTS { a f:ComputerGame } }' . + + a :Text ; + :genreForm saogf:Tecknade%20serier ; + spec:query 'ASK { a f:ComicMagazine }' . + + a :Text ; + :genreForm barngf:Tecknade%20serier ; + spec:query 'ASK { a f:ComicMagazine }' , + 'ASK { :contentType kbrda:StillImage }' . + + a f:ComicMagazine ; + spec:query 'ASK { a :Text ; :contentType kbrda:StillImage }' , + 'ASK { FILTER NOT EXISTS { :genreForm ?gf } }' . + + a f:ComicMagazine ; + spec:query 'ASK { :contentType kbrda:StillImage }' . + + a :Text ; + :genreForm saogf:Serieromaner ; + spec:query 'ASK { a f:GraphicNovel }' . + + a f:GraphicNovel ; + spec:query 'ASK { a :Text ; :genreForm saogf:Serieromaner }' , + 'ASK { :genreForm saogf:Romaner }' . diff --git a/examples/typenormalization/requirements.txt b/examples/typenormalization/requirements.txt new file mode 100644 index 00000000..07a5b202 --- /dev/null +++ b/examples/typenormalization/requirements.txt @@ -0,0 +1,2 @@ +rdflib +git+https://github.com/RDFLib/OWL-RL.git diff --git a/examples/typenormalization/test_categories.py b/examples/typenormalization/test_categories.py new file mode 100644 index 00000000..9bfba4bd --- /dev/null +++ b/examples/typenormalization/test_categories.py @@ -0,0 +1,47 @@ +from rdflib import Graph, Namespace +from owlrl import DeductiveClosure # type: ignore[import-untyped] +from owlrl.OWLRL import OWLRL_Semantics # type: ignore[import-untyped] + +SPEC = Namespace('https://libris.kb.se/sys/spec/') + + +def reason(*sources: str) -> Graph: + graph = Graph() + graph.parse(axioms_file_path) + graph.parse(tests_file_path, publicID=base_uri) + + DeductiveClosure( + OWLRL_Semantics, + improved_datatypes=True, + rdfs_closure=True, + axiomatic_triples=True, + datatype_axioms=True, + ).expand(graph) + + return graph + + +def run_tests(graph: Graph, base_uri: str): + for subject, query_literal in sorted(graph.subject_objects(SPEC.query)): + query = str(query_literal) + result = graph.query(f'BASE <{base_uri}> {query}') + status = "OK" if result.askAnswer else "FAIL" + s = str(subject).removeprefix(base_uri) + print(status, f"<{s}>", query, sep="\t") + + +if __name__ == '__main__': + import sys + + base_uri = "http://libris.kb.se/sys/examples/typenormalization/" + axioms_file_path = 'categories.ttl' + tests_file_path = 'examples.ttl' + + graph = reason(axioms_file_path, tests_file_path) + + if '-d' in sys.argv[1:]: + print('#' * 72) + print(graph.serialize(format='turtle')) + print('#' * 72) + + run_tests(graph, base_uri) From 79d337e93c255f5b794e05bf77e95439d470510c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Tue, 27 Aug 2024 20:37:20 +0200 Subject: [PATCH 20/69] Simplify complex types by reasoning over genreForm --- examples/typenormalization/categories.ttl | 79 +++++++++++++---------- examples/typenormalization/examples.ttl | 35 +++++----- 2 files changed, 64 insertions(+), 50 deletions(-) diff --git a/examples/typenormalization/categories.ttl b/examples/typenormalization/categories.ttl index 015ed6ed..d8116456 100644 --- a/examples/typenormalization/categories.ttl +++ b/examples/typenormalization/categories.ttl @@ -2,64 +2,77 @@ prefix rdfs: prefix owl: prefix : prefix f: +prefix t: prefix saogf: prefix barngf: prefix kbrda: base -f:Book a owl:Class ; +:narrower owl:inverseOf :broader . + +:genreForm owl:propertyChainAxiom (:genreForm :broader) . + +saogf:Serieromaner :broader saogf:Romaner . + +f:Book a :GenreForm ; + :narrower saogf:Romaner , + saogf:Ljudb%C3%B6cker , + barngf:Bilderb%F6cker , + barngf:Kapitelb%F6cker . + +f:Comics a :GenreForm ; + :narrower saogf:Tecknade%20serier , + barngf:Tecknade%20serier . + +t:Book a owl:Class ; owl:intersectionOf ( :Text - [ owl:unionOf ( - [ owl:onProperty :genreForm ; owl:hasValue saogf:Romaner ] - [ owl:onProperty :genreForm ; owl:hasValue [ :broaderTransitive saogf:Romaner ] ] - [ owl:onProperty :genreForm ; owl:hasValue barngf:Bilderb%F6cker ] - [ owl:onProperty :genreForm ; owl:hasValue barngf:Kapitelb%F6cker ] - ) ] + [ owl:onProperty :genreForm ; + owl:hasValue f:Book ] ) . -f:Audiobook a owl:Class ; +t:Audiobook a owl:Class ; owl:intersectionOf ( :Audio - [ owl:unionOf ( - [ owl:onProperty :genreForm ; owl:hasValue saogf:Romaner ] - [ owl:onProperty :genreForm ; owl:hasValue saogf:Ljudb\%C3\%B6cker ] - ) ] + [ owl:onProperty :genreForm ; + owl:hasValue f:Book ] ) . -f:EBook a owl:Class ; +t:EBook a owl:Class ; owl:intersectionOf ( :Electronic - [ owl:onProperty :instanceOf ; owl:someValuesFrom f:Book ] + [ owl:onProperty :instanceOf ; + owl:someValuesFrom t:Book ] ) . -f:CDBook a owl:Class ; +t:CDBook a owl:Class ; owl:intersectionOf ( - [ owl:onProperty :carrierType ; owl:hasValue kbrda:AudioDisc ] - [ owl:onProperty :instanceOf ; owl:someValuesFrom f:Book ] + [ owl:onProperty :carrierType ; + owl:hasValue kbrda:AudioDisc ] + [ owl:onProperty :instanceOf ; + owl:someValuesFrom t:Book ] ) . -f:ComputerGame a owl:Class ; +t:ComputerGame a owl:Class ; owl:intersectionOf ( :Multimedia - [ owl:onProperty :genreForm ; owl:hasValue saogf:Datorspel ] + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Datorspel ] ) . -f:ComicMagazine a owl:Class ; - rdfs:subClassOf [ owl:onProperty :contentType ; owl:hasValue kbrda:StillImage ] ; +t:ComicMagazine a owl:Class ; + rdfs:subClassOf [ owl:onProperty :contentType ; + owl:hasValue kbrda:StillImage ] ; owl:intersectionOf ( :Text - [ owl:unionOf ( - [ owl:onProperty :genreForm ; owl:hasValue saogf:Tecknade%20serier ] - [ owl:onProperty :genreForm ; owl:hasValue barngf:Tecknade%20serier ] - ) ] + [ owl:onProperty :genreForm ; + owl:hasValue f:Comics ] ) . -f:GraphicNovel a owl:Class ; - owl:equivalentClass [ owl:intersectionOf ( - :Text - [ owl:onProperty :genreForm ; owl:hasValue saogf:Serieromaner ] - ) - ] ; - rdfs:subClassOf f:ComicMagazine , - [ owl:onProperty :genreForm ; owl:hasValue saogf:Romaner ] . +t:GraphicNovel a owl:Class ; + rdfs:subClassOf t:ComicMagazine ; + owl:intersectionOf ( + :Text + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Serieromaner ] + ) . diff --git a/examples/typenormalization/examples.ttl b/examples/typenormalization/examples.ttl index 88ed61ca..d12c26d1 100644 --- a/examples/typenormalization/examples.ttl +++ b/examples/typenormalization/examples.ttl @@ -11,65 +11,66 @@ prefix owl: prefix : prefix kbrda: prefix f: +prefix t: prefix saogf: prefix barngf: prefix spec: a :Text ; :genreForm saogf:Romaner ; - spec:query 'ASK { a f:Book }' . + spec:query 'ASK { a t:Book }' . a :Audio ; :genreForm saogf:Romaner ; - spec:query 'ASK { a f:Audiobook }' . + spec:query 'ASK { a t:Audiobook }' . a :Audio ; :genreForm saogf:Ljudb\%C3\%B6cker ; - spec:query 'ASK { a f:Audiobook }' . + spec:query 'ASK { a t:Audiobook }' . a :Electronic ; :instanceOf ; - spec:query 'ASK { a f:EBook }' . + spec:query 'ASK { a t:EBook }' . a :Electronic ; :carrierType kbrda:AudioDisc ; :instanceOf ; - spec:query 'ASK { a f:CDBook }' . + spec:query 'ASK { a t:CDBook }' . a :Multimedia ; :genreForm saogf:Datorspel ; - spec:query 'ASK { a f:ComputerGame }' . + spec:query 'ASK { a t:ComputerGame }' . - a f:ComputerGame ; + a t:ComputerGame ; spec:query 'ASK { a :Multimedia ; :genreForm saogf:Datorspel }' . a :Multimedia ; - spec:query 'ASK { FILTER NOT EXISTS { a f:ComputerGame } }' . + spec:query 'ASK { FILTER NOT EXISTS { a t:ComputerGame } }' . a :Serial ; :genreForm saogf:Datorspel ; - spec:query 'ASK { FILTER NOT EXISTS { a f:ComputerGame } }' . + spec:query 'ASK { FILTER NOT EXISTS { a t:ComputerGame } }' . a :Text ; :genreForm saogf:Tecknade%20serier ; - spec:query 'ASK { a f:ComicMagazine }' . + spec:query 'ASK { a t:ComicMagazine }' . a :Text ; :genreForm barngf:Tecknade%20serier ; - spec:query 'ASK { a f:ComicMagazine }' , + spec:query 'ASK { a t:ComicMagazine }' , 'ASK { :contentType kbrda:StillImage }' . - a f:ComicMagazine ; - spec:query 'ASK { a :Text ; :contentType kbrda:StillImage }' , - 'ASK { FILTER NOT EXISTS { :genreForm ?gf } }' . + a t:ComicMagazine ; + spec:query 'ASK { a :Text ; :contentType kbrda:StillImage }' . + #'ASK { FILTER NOT EXISTS { :genreForm ?gf } }' . - a f:ComicMagazine ; + a t:ComicMagazine ; spec:query 'ASK { :contentType kbrda:StillImage }' . a :Text ; :genreForm saogf:Serieromaner ; - spec:query 'ASK { a f:GraphicNovel }' . + spec:query 'ASK { a t:GraphicNovel }' . - a f:GraphicNovel ; + a t:GraphicNovel ; spec:query 'ASK { a :Text ; :genreForm saogf:Serieromaner }' , 'ASK { :genreForm saogf:Romaner }' . From e79e1fb06cbcd83ac445fc7762905bc0be99b48e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Sun, 15 Sep 2024 17:00:01 +0200 Subject: [PATCH 21/69] Update complex type definitions --- examples/typenormalization/.gitignore | 1 + examples/typenormalization/Makefile | 7 + examples/typenormalization/categories.ttl | 78 ------ examples/typenormalization/classes.ttl | 259 ++++++++++++++++++ examples/typenormalization/examples.ttl | 51 ++-- examples/typenormalization/genreforms.ttl | 21 ++ examples/typenormalization/rdamatches.ttl | 85 ++++++ examples/typenormalization/test_categories.py | 70 ++++- source/vocab/concepts.ttl | 13 +- source/vocab/things.ttl | 7 - 10 files changed, 474 insertions(+), 118 deletions(-) create mode 100644 examples/typenormalization/.gitignore create mode 100644 examples/typenormalization/Makefile delete mode 100644 examples/typenormalization/categories.ttl create mode 100644 examples/typenormalization/classes.ttl create mode 100644 examples/typenormalization/genreforms.ttl create mode 100644 examples/typenormalization/rdamatches.ttl diff --git a/examples/typenormalization/.gitignore b/examples/typenormalization/.gitignore new file mode 100644 index 00000000..14d86ad6 --- /dev/null +++ b/examples/typenormalization/.gitignore @@ -0,0 +1 @@ +/cache diff --git a/examples/typenormalization/Makefile b/examples/typenormalization/Makefile new file mode 100644 index 00000000..a4b4820c --- /dev/null +++ b/examples/typenormalization/Makefile @@ -0,0 +1,7 @@ +test: cache/saogf.ttl + python test_categories.py + +cache/saogf.ttl: cache + curl -s https://libris.kb.se/sparql -HAccept:text/turtle --data-urlencode 'query=PREFIX : CONSTRUCT WHERE { ?a a :GenreForm ; :inScheme ; :broader ?b }' -o $@ +cache: + mkdir -p cache diff --git a/examples/typenormalization/categories.ttl b/examples/typenormalization/categories.ttl deleted file mode 100644 index d8116456..00000000 --- a/examples/typenormalization/categories.ttl +++ /dev/null @@ -1,78 +0,0 @@ -prefix rdfs: -prefix owl: -prefix : -prefix f: -prefix t: -prefix saogf: -prefix barngf: -prefix kbrda: -base - -:narrower owl:inverseOf :broader . - -:genreForm owl:propertyChainAxiom (:genreForm :broader) . - -saogf:Serieromaner :broader saogf:Romaner . - -f:Book a :GenreForm ; - :narrower saogf:Romaner , - saogf:Ljudb%C3%B6cker , - barngf:Bilderb%F6cker , - barngf:Kapitelb%F6cker . - -f:Comics a :GenreForm ; - :narrower saogf:Tecknade%20serier , - barngf:Tecknade%20serier . - -t:Book a owl:Class ; - owl:intersectionOf ( - :Text - [ owl:onProperty :genreForm ; - owl:hasValue f:Book ] - ) . - -t:Audiobook a owl:Class ; - owl:intersectionOf ( - :Audio - [ owl:onProperty :genreForm ; - owl:hasValue f:Book ] - ) . - -t:EBook a owl:Class ; - owl:intersectionOf ( - :Electronic - [ owl:onProperty :instanceOf ; - owl:someValuesFrom t:Book ] - ) . - -t:CDBook a owl:Class ; - owl:intersectionOf ( - [ owl:onProperty :carrierType ; - owl:hasValue kbrda:AudioDisc ] - [ owl:onProperty :instanceOf ; - owl:someValuesFrom t:Book ] - ) . - -t:ComputerGame a owl:Class ; - owl:intersectionOf ( - :Multimedia - [ owl:onProperty :genreForm ; - owl:hasValue saogf:Datorspel ] - ) . - -t:ComicMagazine a owl:Class ; - rdfs:subClassOf [ owl:onProperty :contentType ; - owl:hasValue kbrda:StillImage ] ; - owl:intersectionOf ( - :Text - [ owl:onProperty :genreForm ; - owl:hasValue f:Comics ] - ) . - -t:GraphicNovel a owl:Class ; - rdfs:subClassOf t:ComicMagazine ; - owl:intersectionOf ( - :Text - [ owl:onProperty :genreForm ; - owl:hasValue saogf:Serieromaner ] - ) . diff --git a/examples/typenormalization/classes.ttl b/examples/typenormalization/classes.ttl new file mode 100644 index 00000000..c71440bc --- /dev/null +++ b/examples/typenormalization/classes.ttl @@ -0,0 +1,259 @@ +prefix rdfs: +prefix owl: +prefix skos: +prefix bibo: +prefix sdo: +prefix ptg: + +prefix : +prefix saogf: +prefix kbrda: + +prefix kbgf: + +:ComplexClass rdfs:subClassOf owl:Class . + +# Complex Work Classes (Single Unit) + +:Book a owl:Class ; + ptg:abstract true ; + :category :pending ; + owl:equivalentClass bibo:Book, sdo:Book ; + :label "Book"@en , + "Bok"@sv . + +:WrittenBook a :ComplexClass ; + :category :pending ; + rdfs:subClassOf :Book ; + owl:intersectionOf ( + :Text + [ owl:onProperty :genreForm ; + owl:hasValue kbgf:Book ] + ) ; + :label "Written book"@en , + "Skriven bok"@sv ; + :altLabel "Bok"@sv, "Book"@en . + +:Audiobook a :ComplexClass ; + :category :pending ; + rdfs:subClassOf :Book , + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Ljudb%C3%B6cker ] , + bibo:AudioDocument ; + owl:intersectionOf ( + :Audio + [ owl:onProperty :genreForm ; + owl:hasValue kbgf:Book ] + ) ; + :label "Ljudbok"@sv , + "Audiobook"@en . + +:TactileBook a :ComplexClass ; + :category :pending ; + rdfs:subClassOf :Book ; + owl:intersectionOf ( + :Tactile + [ owl:onProperty :genreForm ; + owl:hasValue [ skos:narrowMatch saogf:Punktskriftsb%C3%B6cker ] ] + ) ; + skos:editorialNote 'TODO: differentiate between "filtbok" och "punktskriftsbok"?'@en ; + :label "Tactile Book"@en , + "Taktil bok"@sv . + + +:NonBookText a :ComplexClass ; + :category :pending ; + ptg:abstract true ; + rdfs:subClassOf :Text ; + :label "Non-book text"@en , + "Enskild text"@sv . + +:Article a :ComplexClass ; + :category :pending ; + rdfs:subClassOf :NonBookText ; + owl:equivalentClass bibo:Article ; + :label "Artikel"@sv , + "Article"@en . + +:Issue a :ComplexClass ; + :category :pending ; + rdfs:subClassOf :NonBookText ; + owl:equivalentClass bibo:Issue ; + :label "Tidskriftsnummer"@sv , + "Periodical Issue"@en . + + +:IllustratedWork a :ComplexClass ; + :category :pending ; + rdfs:subClassOf :ContainsImages ; + owl:intersectionOf ( + :Visual + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Illustrerade%20verk ] + ) ; + :label "Illustrerat verk"@sv , + "Illustrated Work"@en . + +:Brochure a :Form ; + rdfs:subClassOf :NonBookText ; + owl:intersectionOf ( + :Text + [ owl:onProperty :genreForm ; + owl:hasValue ] + ) ; + :label "Broschyr"@sv , + "Brochure"@en . + +:Comic a :ComplexClass ; + rdfs:subClassOf :IllustratedWork ; + owl:intersectionOf ( + :Text + [ owl:onProperty :genreForm ; + owl:hasValue kbgf:Comics ] + ) ; + :label "Serietidning"@sv , + "Comic"@en . + +:ComicIssue a :ComplexClass ; + owl:intersectionOf ( + :Comic + :Issue + ) ; + :label "Serietidningsnummer"@sv , + "Comic Issue"@en . + +:ComicStory a :ComplexClass ; + owl:intersectionOf ( + :Comic + [ owl:onProperty :genreForm ; + owl:hasValue kbgf:ShortStory ] + ) . + +:GraphicNovel a :ComplexClass ; + rdfs:subClassOf :ComicIssue ; + owl:intersectionOf ( + :Text + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Serieromaner ] + ) . + + +# TODO: +# * Link up *all* SAOGF-Musik(instrument) as hints for Music? + +:PerformedMusic a :ComplexClass ; + :category :pending ; + owl:intersectionOf ( + :Music + [ owl:onProperty :genreForm ; + owl:hasValue kbrda:PerformedMusic ] + ) ; + :label "Performed Music"@en , + "Framförd musik"@sv . + + +:Film a :FormClass ; + :category :pending ; + owl:intersectionOf ( + :MovingImage + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Filmer ] + ) ; + owl:equivalentClass bibo:Film ; + :label "Film"@sv , + "Film"@en . + + +:ComputerGame a :ComplexClass ; + owl:intersectionOf ( + :Multimedia + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Datorspel ] + ) . + + +# Complex Instance Classes (Single Unit) + +:PrintedVolume a :ComplexClass ; + owl:intersectionOf ( + :Print + [ owl:onProperty :carrierType ; + owl:hasValue kbrda:Volume ] + ) . + +:EBook a :ComplexClass ; + owl:intersectionOf ( + :Electronic + [ owl:onProperty :instanceOf ; + owl:someValuesFrom :Book ] + ) . + +:CDBook a :ComplexClass ; + owl:intersectionOf ( + [ owl:onProperty :carrierType ; + owl:hasValue kbrda:AudioDisc ] + [ owl:onProperty :instanceOf ; + owl:someValuesFrom :Book ] + ) . + + +# Collecting Work Classes + +:CollectingResource a :Class ; + :category :pending ; + ptg:abstract true ; + :label "Collecting Resource"@en , + "Samlande resurs"@sv . + +:Collection rdfs:subClassOf :CollectingResource . + +:Archive a :ComplexClass ; + :category :pending ; + rdfs:subClassOf :CollectingResource ; + owl:intersectionOf ( + :Collection + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Arkiv ] + ) ; + :label "Arkiv"@sv , + "Archive"@en . + +:Integrating rdfs:subClassOf :CollectingResource ; + ptg:abstract true . + +:Database a :ComplexClass ; + :category :pending ; + owl:intersectionOf ( + :Integrating + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Databaser ] + ) ; + #skos:narrowMatch marc:UpdatingDatabase ; + :label "Databas"@sv , + "Database"@en . + +# Serial Work Classes + +:SerialPublication a :ComplexClass ; + :category :pending ; + rdfs:subClassOf :CollectingResource ; # Abstraction + owl:intersectionOf ( + :Serial + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Seriella%20publikationer ] + ) ; + :label "Seriell publikation"@sv , + "Serial Publication"@en . + +:Periodical a :ComplexClass ; + :category :pending ; + rdfs:seeAlso ; + rdfs:subClassOf :SerialPublication ; + owl:intersectionOf ( + :Serial + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Periodika ] + ) ; + :altLabel "Periodika"@sv ; + :label "Tidskrift"@sv , + "Periodical"@en . diff --git a/examples/typenormalization/examples.ttl b/examples/typenormalization/examples.ttl index d12c26d1..a5e835a0 100644 --- a/examples/typenormalization/examples.ttl +++ b/examples/typenormalization/examples.ttl @@ -10,67 +10,80 @@ prefix rdfs: prefix owl: prefix : prefix kbrda: -prefix f: -prefix t: prefix saogf: prefix barngf: prefix spec: a :Text ; :genreForm saogf:Romaner ; - spec:query 'ASK { a t:Book }' . + spec:query 'ASK { a :WrittenBook }' , + 'ASK { :contentType kbrda:Text }' . a :Audio ; :genreForm saogf:Romaner ; - spec:query 'ASK { a t:Audiobook }' . + spec:query 'ASK { a :Audiobook }' . a :Audio ; :genreForm saogf:Ljudb\%C3\%B6cker ; - spec:query 'ASK { a t:Audiobook }' . + spec:query 'ASK { a :Audiobook }' . + +# TODO: :BrailleVolume :instanceOf [a :WrittenBook ] . +# a :WrittenBook ; +# :genreForm saogf:Punktskriftsb%C3%B6cker ; +# spec:query 'ASK { a :TactileBook }' . +# +# a :InteractiveObject ; :genreForm kbgf:TactileBook ; +# spec:query 'ASK { a :TactileBook }' . a :Electronic ; :instanceOf ; - spec:query 'ASK { a t:EBook }' . + spec:query 'ASK { a :EBook }' . a :Electronic ; :carrierType kbrda:AudioDisc ; :instanceOf ; - spec:query 'ASK { a t:CDBook }' . + spec:query 'ASK { a :CDBook }' . a :Multimedia ; :genreForm saogf:Datorspel ; - spec:query 'ASK { a t:ComputerGame }' . + spec:query 'ASK { a :ComputerGame }' . - a t:ComputerGame ; + a :ComputerGame ; spec:query 'ASK { a :Multimedia ; :genreForm saogf:Datorspel }' . a :Multimedia ; - spec:query 'ASK { FILTER NOT EXISTS { a t:ComputerGame } }' . + spec:query 'ASK { FILTER NOT EXISTS { a :ComputerGame } }' . a :Serial ; :genreForm saogf:Datorspel ; - spec:query 'ASK { FILTER NOT EXISTS { a t:ComputerGame } }' . + spec:query 'ASK { FILTER NOT EXISTS { a :ComputerGame } }' . a :Text ; :genreForm saogf:Tecknade%20serier ; - spec:query 'ASK { a t:ComicMagazine }' . + spec:query 'ASK { a :Comic }' . a :Text ; - :genreForm barngf:Tecknade%20serier ; - spec:query 'ASK { a t:ComicMagazine }' , + :genreForm barngf:Tecknade%20serier ; + spec:query 'ASK { a :Comic }' , 'ASK { :contentType kbrda:StillImage }' . - a t:ComicMagazine ; + a :ComicIssue ; spec:query 'ASK { a :Text ; :contentType kbrda:StillImage }' . #'ASK { FILTER NOT EXISTS { :genreForm ?gf } }' . - a t:ComicMagazine ; + a :ComicIssue ; spec:query 'ASK { :contentType kbrda:StillImage }' . + a :Serial ; + :genreForm saogf:Tecknade%20serier ; + spec:query 'ASK { FILTER NOT EXISTS { a :Comic } }' . + a :Text ; :genreForm saogf:Serieromaner ; - spec:query 'ASK { a t:GraphicNovel }' . + spec:query 'ASK { a :GraphicNovel }' , + 'ASK { a :Book }' . - a t:GraphicNovel ; + a :GraphicNovel ; spec:query 'ASK { a :Text ; :genreForm saogf:Serieromaner }' , - 'ASK { :genreForm saogf:Romaner }' . + 'ASK { :genreForm saogf:Romaner }' , + 'ASK { a :Book }' . diff --git a/examples/typenormalization/genreforms.ttl b/examples/typenormalization/genreforms.ttl new file mode 100644 index 00000000..bbf388c5 --- /dev/null +++ b/examples/typenormalization/genreforms.ttl @@ -0,0 +1,21 @@ +prefix : +prefix saogf: +prefix barngf: + +prefix kbgf: + +# Base Forms + +kbgf:Book a :GenreForm ; + :narrowMatch saogf:Romaner , + saogf:Ljudb%C3%B6cker , + barngf:Bilderb%F6cker , + barngf:Kapitelb%F6cker . + +kbgf:Comics a :GenreForm ; + :narrowMatch saogf:Tecknade%20serier , + barngf:Tecknade%20serier . + +kbgf:ShortStory a :GenreForm ; + :narrowMatch saogf:Noveller, + saogf:Serienoveller . diff --git a/examples/typenormalization/rdamatches.ttl b/examples/typenormalization/rdamatches.ttl new file mode 100644 index 00000000..c4bae84f --- /dev/null +++ b/examples/typenormalization/rdamatches.ttl @@ -0,0 +1,85 @@ +prefix rdfs: +prefix owl: +prefix skos: + +prefix : + +prefix saogf: +prefix kbrda: + +base + +# NOTE: just patterns to entail :contenType for RDA coordination. +# (See classes in other documents!) + +# TODO: replace :contentType with :genreForm (and always infer)? + +:Text rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:Text ] . + +:ContainsImages owl:onProperty :contentType ; owl:hasValue kbrda:StillImage . + +:StillImage rdfs:subClassOf :ContainsImages . + +#:ThreeDimensionalMovingImage +# owl:hasValue kbrda:ThreeDimensionalMovingImage ; +# +#:TwoDimensionalMovingImage +# owl:hasValue kbrda:TwoDimensionalMovingImage ; + +:NotatedMusic rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:NotatedMusic ] . + +:NotatedMovement rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:NotatedMovement ] . + +:Object rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:ThreeDimensionalForm ] . + +:Audio rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:Sounds ] . + +:PerformedMusic rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:PerformedMusic ] . + +:SpokenWord rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:SpokenWord ] . + +:ComputerProgram rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:ComputerProgram] . + +:ComputerDataset rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:ComputerDataset ] . + +[ owl:intersectionOf (:Cartography :Dataset) ] rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:CartographicDataset ] . + +[ owl:intersectionOf (:Cartography :StillImage) ] rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:CartographicImage ] . + +[ owl:intersectionOf (:Cartography :MovingImage) ] rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:CartographicMovingImage ] . + +[ owl:intersectionOf (:Cartography :StillImage :Tactile) ] rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:CartographicTactileImage ] . + +[ owl:intersectionOf (:Cartography :Tactile :Object) ] rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:CartographicTactileThreeDimensionalForm ] . + +[ owl:intersectionOf (:Cartography :Object) ] rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:CartographicThreeDimensionalForm ] . + +[ owl:intersectionOf (:StillImage :Tactile) ] rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:TactileImage ] . + +[ owl:intersectionOf (:NotatedMusic :Tactile) ] rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:TactileNotatedMusic ] . + +[ owl:intersectionOf (:NotatedMovement :Tactile) ] rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:TactileNotatedMovement ] . + +[ owl:intersectionOf (:Text :Tactile) ] rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:TactileText ] . + +[ owl:intersectionOf (:Object :Tactile) ] rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:TactileThreeDimensionalForm ] . diff --git a/examples/typenormalization/test_categories.py b/examples/typenormalization/test_categories.py index 9bfba4bd..c71acfbe 100644 --- a/examples/typenormalization/test_categories.py +++ b/examples/typenormalization/test_categories.py @@ -1,14 +1,30 @@ -from rdflib import Graph, Namespace +import sys + +from rdflib import Graph, Namespace, OWL from owlrl import DeductiveClosure # type: ignore[import-untyped] from owlrl.OWLRL import OWLRL_Semantics # type: ignore[import-untyped] SPEC = Namespace('https://libris.kb.se/sys/spec/') -def reason(*sources: str) -> Graph: +def reason(sources: list[str], base_uri: str) -> Graph: graph = Graph() - graph.parse(axioms_file_path) - graph.parse(tests_file_path, publicID=base_uri) + for source in sources: + subgraph = Graph().parse(source, publicID=base_uri) + + if len(subgraph) > 400 and (None, OWL.equivalentClass, None) in subgraph: + # Too much for OWL-RL (on a laptop in 2024); drop non-relevant axioms... + subgraph.update('''delete { ?s ?p ?o } where { + ?s ?p ?o + filter(?p not in (rdfs:subPropertyOf, + owl:inverseOf, + owl:propertyChainAxiom, + rdf:first, rdf:rest)) + }''') + + graph |= subgraph + for pfx, ns in subgraph.namespace_manager.namespaces(): + graph.namespace_manager.bind(pfx, ns) DeductiveClosure( OWLRL_Semantics, @@ -21,27 +37,57 @@ def reason(*sources: str) -> Graph: return graph -def run_tests(graph: Graph, base_uri: str): +def run_tests(graph: Graph, base_uri: str) -> bool: + total = 0 + passed = 0 + for subject, query_literal in sorted(graph.subject_objects(SPEC.query)): query = str(query_literal) result = graph.query(f'BASE <{base_uri}> {query}') - status = "OK" if result.askAnswer else "FAIL" + + total += 1 + + if result.askAnswer: + status = "OK" + passed += 1 + else: + status = "FAIL" + s = str(subject).removeprefix(base_uri) print(status, f"<{s}>", query, sep="\t") + print() + print(f"Passed {passed} of {total} tests.") -if __name__ == '__main__': - import sys + if failed := total - passed: + print(f"Failed {failed}.") + return False + + return True + + +def main(): + sources = [ + '../../source/vocab/concepts.ttl', + 'classes.ttl', + 'rdamatches.ttl', + 'genreforms.ttl', + 'cache/saogf.ttl', + 'examples.ttl', + ] base_uri = "http://libris.kb.se/sys/examples/typenormalization/" - axioms_file_path = 'categories.ttl' - tests_file_path = 'examples.ttl' - graph = reason(axioms_file_path, tests_file_path) + graph = reason(sources, base_uri=base_uri) if '-d' in sys.argv[1:]: print('#' * 72) print(graph.serialize(format='turtle')) print('#' * 72) - run_tests(graph, base_uri) + if not run_tests(graph, base_uri): + sys.exit(1) + + +if __name__ == '__main__': + main() diff --git a/source/vocab/concepts.ttl b/source/vocab/concepts.ttl index 80b0ceba..a5449517 100644 --- a/source/vocab/concepts.ttl +++ b/source/vocab/concepts.ttl @@ -225,8 +225,9 @@ rdfs:label "narrower match"@en, "smalare match"@sv; sdo:domainIncludes :Identity ; rdfs:range :Concept ; - owl:equivalentProperty skos:narrowMatch ; - owl:equivalentProperty madsrdf:hasNarrowerExternalAuthority . + owl:inverseOf :broadMatch ; + owl:equivalentProperty skos:narrowMatch , + madsrdf:hasNarrowerExternalAuthority . :prefLabel a owl:DatatypeProperty; rdfs:label "preferred label"@en, "föredragen benämning"@sv; #NOTE: föredragen term inom concept @@ -405,6 +406,14 @@ # Domain Specific Concept Classes +:genreForm a owl:ObjectProperty; + rdfs:label "genre/form"@sv; + rdfs:range :GenreForm; + # NOTE: Very (too?) powerful; relied on for classes derived from KBVF. + owl:propertyChainAxiom (:genreForm :broader) ; + rdfs:subPropertyOf dc:type, sdo:genre ; + owl:equivalentProperty bf2:genreForm . + :Topic a owl:Class; rdfs:label "Allmänt ämnesord"@sv; owl:equivalentClass bf2:Topic, madsrdf:Topic; diff --git a/source/vocab/things.ttl b/source/vocab/things.ttl index e5f87486..dd900aa5 100644 --- a/source/vocab/things.ttl +++ b/source/vocab/things.ttl @@ -136,13 +136,6 @@ rdfs:comment "Kategorisering som reflekterar om en resurs är utgiven i en eller flera delar, på vilket sätt den uppdateras, och dess tänkta avslutning."@sv; rdfs:subPropertyOf rdf:type, rdau:P60051 . # -#TODO move to concepts.ttl? -:genreForm a owl:ObjectProperty; - rdfs:label "genre/form"@sv; - rdfs:range :GenreForm; - rdfs:subPropertyOf dc:type, sdo:genre ; - owl:equivalentProperty bf2:genreForm . - :ContentType a owl:Class; rdfs:label "Innehållstyp"@sv; owl:equivalentClass bf2:Content . From 3a30fe39bed110fe70cb6c6b9dd402fa2d3eb33b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Wed, 2 Oct 2024 14:33:28 +0200 Subject: [PATCH 22/69] Change PuzzleOrGame to GenreForm --- source/vocab/newtypes/kbgf.ttl | 7 ++++++- source/vocab/newtypes/kbtf.ttl | 12 +++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/source/vocab/newtypes/kbgf.ttl b/source/vocab/newtypes/kbgf.ttl index 26260b7c..c7e89dc9 100644 --- a/source/vocab/newtypes/kbgf.ttl +++ b/source/vocab/newtypes/kbgf.ttl @@ -272,8 +272,13 @@ g:Register a :Genre ; :prefLabel "Förteckning"@sv , "Register"@en . +g:PuzzleOrGame a :Genre ; + skos:exactMatch saogf:Spel\%20och\%20tanken\%C3\%B6tter ; + rdfs:label "Spel eller tankenötter"@sv , + "Puzzle or game"@en . + g:RolePlayingGame a :Genre ; - rdfs:subClassOf f:PuzzleOrGame ; + rdfs:subClassOf g:PuzzleOrGame ; skos:exactMatch saogf:Rollspel ; :prefLabel "Rollspel"@sv , "Roleplaying Game"@en . diff --git a/source/vocab/newtypes/kbtf.ttl b/source/vocab/newtypes/kbtf.ttl index 1dab7b7a..bc17bcdb 100644 --- a/source/vocab/newtypes/kbtf.ttl +++ b/source/vocab/newtypes/kbtf.ttl @@ -386,17 +386,11 @@ f:NonMusicAudio a :Form ; "Ljud men inte musik"@sv . f:BoardGame a :Form ; - rdfs:subClassOf f:PuzzleOrGame ; + rdfs:subClassOf f:InteractiveObject , g:PuzzleOrGame ; skos:exactMatch ; rdfs:label "Brädspel"@sv , "Boardgame"@en . -f:PuzzleOrGame a :Form ; - rdfs:subClassOf f:InteractiveObject ; - skos:exactMatch saogf:Spel\%20och\%20tanken\%C3\%B6tter ; - rdfs:label "Spel eller tankenötter"@sv , - "Puzzle or game"@en . - f:Brochure a :Form ; rdfs:subClassOf kbv:NonBookText ; skos:exactMatch ; @@ -447,7 +441,7 @@ f:ComputerProgram a :Form ; "Computer Program"@en . f:ComputerGame a :Form ; - rdfs:subClassOf f:PuzzleOrGame, f:ComputerProgram ; + rdfs:subClassOf g:PuzzleOrGame, f:ComputerProgram ; skos:exactMatch saogf:Datorspel ; rdfs:label "Datorspel"@sv , "Computer Game"@en . @@ -570,7 +564,7 @@ f:ImageAndTextPoster a :Form ; rdfs:label "Bild- och textaffisch"@sv, "Image and Text Poster"@en . f:Puzzle a :Form ; - rdfs:subClassOf f:PuzzleOrGame ; + rdfs:subClassOf f:InteractiveObject, g:PuzzleOrGame ; skos:exactMatch saogf:Pussel ; rdfs:label "Pussel"@sv , "Puzzle"@en . From 267511fd457cdd92701956a4ab73ab5c878c8f6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Wed, 2 Oct 2024 14:38:12 +0200 Subject: [PATCH 23/69] Add scopeNote for BookWithImages --- source/vocab/newtypes/kbtf.ttl | 1 + 1 file changed, 1 insertion(+) diff --git a/source/vocab/newtypes/kbtf.ttl b/source/vocab/newtypes/kbtf.ttl index bc17bcdb..01df2ce5 100644 --- a/source/vocab/newtypes/kbtf.ttl +++ b/source/vocab/newtypes/kbtf.ttl @@ -277,6 +277,7 @@ kbv:BookWithImages a :Class ; :category :pending, :concretetype ; rdfs:subClassOf kbv:WrittenBook , kbv:IllustratedWork ; skos:editorialNote "TODO: PictorialWork?"@en ; + skos:scopeNote "Gör ingen skillnad mellan bilder som är integral del av verket (där nya bilder är ett nytt verk) och texter där bilderna är kompletterande (). Sådana skillnader kan anges som genre/form."@sv ; skos:broadMatch saogf:Bildverk ; skos:narrowMatch barngf:Bilderb%C3%B6cker , barngf:Kapitelb\%C3\%B6cker ; rdfs:label "Bok med bilder"@sv , From e983b9881369892669e02c035e6f574b1793d523 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Mon, 14 Oct 2024 19:25:05 +0200 Subject: [PATCH 24/69] Add KBV MARC term mappings to LCGFT, SAOGF, TGM Mainly matched on english labels, taken from LC marc gft and LC marc2bf2 mappings, then cross-matched with translations added by KB to SAOGF, TGM. --- examples/typenormalization/classes.ttl | 9 + examples/typenormalization/marcmatches.ttl | 790 +++++++++++++++++++++ 2 files changed, 799 insertions(+) create mode 100644 examples/typenormalization/marcmatches.ttl diff --git a/examples/typenormalization/classes.ttl b/examples/typenormalization/classes.ttl index c71440bc..9ffc4ef2 100644 --- a/examples/typenormalization/classes.ttl +++ b/examples/typenormalization/classes.ttl @@ -104,6 +104,15 @@ prefix kbgf: :label "Broschyr"@sv , "Brochure"@en . +:Atlas a :ComplexClass ; + rdfs:subClassOf :Book, :Cartography , + [ owl:intersectionOf ( + [ a owl:Restriction ; owl:onProperty :contentType ; + owl:hasValue kbrda:Text ] + [ a owl:Restriction ; owl:onProperty :contentType ; + owl:hasValue kbrda:CartographicImage ] + ) ] . + :Comic a :ComplexClass ; rdfs:subClassOf :IllustratedWork ; owl:intersectionOf ( diff --git a/examples/typenormalization/marcmatches.ttl b/examples/typenormalization/marcmatches.ttl new file mode 100644 index 00000000..ce167b66 --- /dev/null +++ b/examples/typenormalization/marcmatches.ttl @@ -0,0 +1,790 @@ +prefix : +prefix marc: +prefix saogf: +prefix tgm: + +# Stat numbers: Most GenreForm are tagged below (to aid prioritization). + +# TODO: "Vad är skönlitteratur?" - +# marc:NotFictionNotFurtherSpecified . # 8524469 # [also ssb] + +## +# marc:ConferencePublicationType +#-- +# marc:ConferencePublication . # 251347 # Primary? [also ssb] +# marc:ConferencePublication marc:ConferencePublicationType-1 + +## +# marc:BooksBiographyType + +marc:Autobiography # [a] also mac:MusicTextType # 41138 # [also ssb] + :closeMatch saogf:Sj\%C3\%A4lvbiografier ; + :closeMatch . # "Autobiographies"@en . + +marc:IndividualBiography # [b] 69428 # [also ssb] + :broadMatch saogf:Biografier ; + :broadMatch . # "Biographies"@en . + +marc:CollectiveBiography # [c] 17177 # Primary? [also ssb] + :broadMatch saogf:Biografier ; + :broadMatch . # "Biographies"@en . + +marc:ContainsBiographicalInformation # [d] 43201 # [also ssb] + :broadMatch saogf:Biografier ; + :broadMatch . # "Biographies"@en . + +## +# Books and Serials (continuing) -- marc:BooksContentsType | marc:SerialsNatureType | marc:SerialsContentsType + +marc:LegalArticle # [g] 642 # Primary? [also ssb] + :broadMatch saogf:Juridiskt\%20material ; + :broadMatch . # "Law materials"@en . + +marc:Legislation # [l] 5196 # [also ssb] + :broadMatch saogf:Juridiskt\%20material ; + :broadMatch . # "Law materials"@en . + +marc:SerialsNatureType-h # [h] 561 # [on Serials]; marc:Biography Primary? [also ssb] + :broadMatch saogf:Biografier ; + :broadMatch . # "Biographies"@en . + +marc:LawReportOrDigest # [w] 326 # Primary? + :broadMatch saogf:Juridiskt\%20material ; + :broadMatch . # "Law materials"@en . + +marc:Yearbook # [y] 6968 # [also ssb] + # a :ContentType ; # 1 # [also ssb] + :closeMatch saogf:\%C3\%85rsb\%C3\%B6cker ; + :closeMatch . # "Yearbooks"@en . + +marc:Index # [i] 3941 # Primary? [also ssb] + :closeMatch . # "Indexes"@en . + +marc:Statistics # [s] 20197 # Primary? [also ssb] + :closeMatch saogf:Statistik ; + :closeMatch . # "Statistics"@en . + +marc:Handbook # [f] 8727 # Primary? [also ssb] + # a :ContentType ; # 2 # Primary? [also ssb] + :closeMatch saogf:Handb\%C3\%B6cker\%2C\%20manualer\%20etc\. ; + :closeMatch . # "Handbooks and manuals"@en . + +marc:Treaty # [z] 1297 # [also ssb] + :closeMatch . # "Treaties"@en . + +marc:Discography # [k] 2287 # Primary? [also ssb] + :closeMatch saogf:Diskografier ; + :closeMatch . # "discography"@en . + +marc:TechnicalReport # [t] 466 # Primary? [also ssb] + # a :ContentType . # 2 # Primary? [also ssb] + :closeMatch . # "Technical reports"@en . + +marc:Filmography # [q] 2269 # [also ssb] + :closeMatch . # "filmography"@en . + +marc:Directory # [r] 2604 # Primary? [also ssb] + :closeMatch saogf:Adresskalendrar ; + :closeMatch . # "Directories"@en . + +marc:Encyclopedia # [e] 9137 # [also ssb] + :closeMatch saogf:Encyklopedier ; + :closeMatch . # "Encyclopedias"@en . + +marc:ComicOrGraphicNovel # [6] 17902 # Primary? [also ssb] + # a :ContentType ; # 20 # Primary? [also ssb] + :broadMatch saogf:Tecknade\%20serier ; + :closeMatch . # "Comics (Graphic works)"@en . + +marc:LegalCaseOrCaseNote # [v] 431 # Primary? + # a :ContentType ; # 1 # Primary? + :broadMatch saogf:Juridiskt\%20material ; + :broadMatch . # "Law materials"@en . + +marc:Catalog # [c] 61570 # Primary? [also ssb] + # a :ContentType ; # 4 # Primary? [also ssb] + :closeMatch saogf:Kataloger , tgm:Kataloger ; + :closeMatch . # "Catalogs"@en . + +marc:Thesis + :closeMatch saogf:Avhandlingar ; + # a :ContentType . # 16 # Primary? [also ssb] 326407# Primary? [also ssb] + :closeMatch ; :code "m"; :label "Academic theses" . + +marc:Dictionary # [d] 14033 # Primary? [also ssb] + # a :ContentType ; # 1 # Primary? [also ssb] + :closeMatch saogf:Lexikon ; + :closeMatch . # "Dictionaries"@en . + +marc:Bibliography # [b] + # a :ContentType . # 5 # [also ssb] 424362# [also ssb] + :closeMatch saogf:Bibliografier ; + :closeMatch . # "bibliography"@en . + +marc:Calendar # [x5] + # a :ContentType . # 2 # Primary? + :closeMatch saogf:Kalendrar ; + :closeMatch . # "Calendars"@en . + +marc:PatentDocument # [j] 661 # Primary? [also ssb] + :closeMatch saogf:Patent ; + :closeMatch . # "Patents"@en . + + +## +# marc:BooksBiographyType + +marc:FictionNotFurtherSpecified # [1] + :closeMatch . # "Fiction"@en . + +marc:HumorSatiresEtc # [h] 3653 # [also ssb] + :closeMatch saogf:Humor ; + :closeMatch . # "Humor"@en . + +marc:Letter # [i] 1436 # Primary? [also ssb] + :closeMatch saogf:Korrespondens ; + :closeMatch . # "Personal correspondence"@en . + +marc:MixedForms # [m] 4352 # Primary? [also ssb] + :closeMatch . # "Fiction"@en . + +marc:Novel # [f] # 248532 # Primary? [also ssb] + :closeMatch saogf:Romaner ; + :closeMatch . # "Novels"@en . + +marc:ShortStory # [j] 26024 # Primary? [also ssb] + :closeMatch saogf:Noveller ; + :closeMatch . # "Short stories"@en . + +marc:Speech # [s] 333 # Primary? [also ssb] + :closeMatch saogf:Tal\%20\%28retorik\%29 ; + :closeMatch . # "Speeches"@en . + +# N/A in codeMaps: +marc:Review :closeMatch saogf:Recensioner . # 31024 # [also ssb] + # a :ContentType . # 1 # [also ssb] +marc:StandardsSpecification :closeMatch saogf:Standarder . # 270 # Primary? +# marc:AbstractsSummary # 1324 # Primary? [also ssb] + # a :ContentType . # 4 # Primary? [also ssb] +# marc:ProgrammedText # 192 # Primary? [also ssb] + # a :ContentType . # 21 # Primary? [also ssb] +# marc:SurveysOfLiteratureInASubjectArea # 448 # [also ssb] + # a :ContentType . # 1 # [also ssb] +# marc:Offprint # 65 # Primary? +marc:Festschrift :closeMatch saogf:Festskrifter . # 32382 # [also ssb] + + +## +# marc:BooksBiographyType AND marc:MusicTextType + +marc:Poetry # [p] 51022 # [also ssb] + :closeMatch saogf:Poesi ; + :closeMatch . # "Poetry"@en . +marc:Drama # [d] 17418 # [also ssb] + :closeMatch saogf:Dramatik ; + :closeMatch . # "Drama"@en . +marc:Essay # [e] 4861 # [also ssb] + :closeMatch saogf:Ess\%C3\%A4er ; + :closeMatch . # "Essays"@en . + +# N/A in codeMaps: +# marc:NotFictionNotFurtherSpecified marc:BooksLiteraryFormType-0 +# marc:ComicStrip marc:BooksLiteraryFormType-c # 2773 # Primary? [also ssb] + + +## +# marc:MusicTextType + +marc:Interview # [t] 69 # [also ssb] + :closeMatch saogf:Intervjuer ; + :closeMatch . # "Interviews"@en . + +marc:Memoir # [m] 99 # [also ssb] + :closeMatch saogf:Sj\%C3\%A4lvbiografier ; + :closeMatch . # "Autobiographies"@en . + +marc:History # [h] 110 # [also ssb] + :closeMatch . # "history"@en . + +marc:Biography # [b] + :closeMatch saogf:Biografier ; + :closeMatch . # "Biographies"@en . +#marc:SerialsContentsType-h :broader marc:Biography . # in construct-enums.tq # 848 # marc:Biography Primary? [also ssb] # 290 # [also ssb] + +marc:Rehearsal # [r] + :closeMatch . # "rehearsals"@en . + +marc:Folktale # [o] 46 # [also ssb] + :closeMatch saogf:Folksagor ; + :closeMatch . # "Folk tales"@en . + +marc:LecturesSpeech # [l] 110 # Primary? [also ssb] + :broadMatch saogf:Tal\%20\%28retorik\%29 ; + :broadMatch . # "Speeches"@en . + +marc:Fiction # [f] + :closeMatch . # "Fiction"@en . + +marc:Sound # [s] + :closeMatch . # "Sound recordings"@en . + +marc:Reporting # [g] 33 # [also ssb] + :broadMatch saogf:Informativa\%20verk ; + :broadMatch . # "Informational works"@en . + +marc:ConferenceProceeding # [c] 9 # Primary? + :closeMatch saogf:Konferenser ; + :closeMatch . # "Conference papers and proceedings"@en . + +marc:Instruction # [i] 19 # Primary? + :broadMatch saogf:Instruktions-\%20och\%20undervisningsmaterial ; + :broadMatch . # "Instructional and educational works"@en . + +marc:LanguageInstruction # [j] 113 # Primary? + :closeMatch . # "language instruction"@en . + +marc:Comedy # [k] 17 # [also ssb] + :broadMatch saogf:Humor ; + :broadMatch . # "Humor"@en . + +# N/A in codeMaps: +# marc:ItemIsAMusicalSoundRecording marc:MusicTextType-_ # 1 # Primary? + + +## +# marc:SerialsTypeOfSerialType + +marc:MonographicSeries # [m] 94048 # Primary? [also ssb] + :closeMatch . # "monographic series"@en . + +marc:Newspaper # [n] 9076 # Primary? [also ssb] + :closeMatch saogf:Dagstidningar ; + :closeMatch . # "newspaper"@en . + +marc:Periodical + # a :ContentType ; # 1 # Primary? [also ssb] 565338# Primary? [also ssb] + :closeMatch saogf:Periodika ; + :closeMatch ; :code "p"; :label "periodical" . + +marc:UpdatingLooseLeaf # [l] 132 # Primary? + :closeMatch . # "loose leaf"@en . + +marc:UpdatingDatabase # [d] 2960 # Primary? + # a :ContentType . # 4 # Primary? + :closeMatch . # "database"@en . + +marc:UpdatingWebSite # [w] 635 # Primary? + :closeMatch . # "web site"@en . + +# Missing in KB marc (only relvant *IF* we were to map to marc bib 008!) +# :closeMatch ; :code "g"; :label "magazine" . +# :closeMatch ; :code "h"; :label "blog" . +# :closeMatch ; :code "j"; :label "journal" . +# :closeMatch ; :code "r"; :label "repository" . +# :closeMatch ; :code "s"; :label "newsletter" . +# :closeMatch ; :code "t"; :label "directory" . + + +## +# marc:VisualMaterialType + +marc:VisualMaterialType-b # [b] :broader marc:Kit ; # 1745 # marc:Kit Primary? [also ssb] + :broadMatch . # "kit"@en . + +marc:Videorecording # [v] + # a :ContentType . # 1 # Primary? [also ssb] 531734# Primary? [also ssb] SHOULD_BE_INSTANCE + :closeMatch . # "Video recordings"@en . + +marc:MicroscopeSlide # [p] + :closeMatch . # "microscope slide"@en . + +marc:Realia # [r] 34 # Primary? + :closeMatch . # "realia"@en . + +marc:MotionPicture # [m] 11841 # Primary? [also ssb] + # a :ContentType ; # 1 # Primary? [also ssb] + :narrowMatch saogf:Filmografi ; + :closeMatch saogf:Filmer ; + :closeMatch . # "Motion pictures"@en . + +marc:Graphic # [k] 8053 # Primary? + # a :ContentType . # 2 # Primary? + :closeMatch . # "graphic"@en . + +marc:ArtOriginal # [a] 116 # Primary? + :closeMatch . # "Art"@en . + +marc:Filmstrip # [f] 10 # Primary? [also ssb] + # a :ContentType . # 2 # Primary? [also ssb] + :closeMatch . # "filmstrip"@en . + +marc:ArtReproduction # [c] 31 # Primary? + # a :ContentType ; # 5 # Primary? + :closeMatch tgm:Konstreproduktioner ; + :closeMatch . # "art reproduction"@en . + +marc:VisualMaterialType-n # [n] :broader marc:Chart + # a :ContentType ; # 68 # marc:Chart + :broadMatch saogf:Diagram ; + :narrowMatch tgm:Diagram\%20och\%20tabeller ; + :broadMatch . # "chart"@en . + +marc:VisualMaterialType-g # [g] :broader marc:Game # 194 # marc:Game Primary? + # a :ContentType ; # 32 # marc:Game Primary? + :broadMatch saogf:Spel\%20och\%20tanken\%C3\%B6tter ; + :closeMatch . # "Puzzles and games"@en . + +marc:Diorama # [d] 739 # + :closeMatch . # "diorama"@en . + +marc:Toy # [w] 3 # Primary? + :closeMatch . # "toy"@en . + + +## +# marc:VisualMaterialType AND marc:NonProjMaterialType + +marc:TechnicalDrawing # [l] 109 # Primary? + # a :ContentType . # 6 # Primary? + :closeMatch . # "technical drawing"@en . + +marc:FlashCard # [o] 60 # Primary? + # a :ContentType . # 2 # Primary? + :closeMatch . # "flash card"@en . + +marc:Picture # [i] 105262 # Primary? + # a :ContentType ; # 86 # Primary? + :closeMatch tgm:Bilder ; + :closeMatch . # "Pictures"@en . + +marc:Transparency # [t] 71 # Primary? + # a :ContentType ; # 6 # Primary? + :closeMatch tgm:Genomsiktsbilder . + + :closeMatch . # "transparency"@en . + +marc:Slide # [s] 11 # Primary? + :closeMatch tgm:Diabilder ; + :closeMatch . # "slide"@en . + +marc:Model # [q] + :closeMatch . # "Models (Representations)"@en . + + +## +# marc:MapsFormatType + +marc:PlayingCard # [p] + :closeMatch tgm:Spelkort ; + :closeMatch . # "Playing cards"@en . + +marc:WallMap # [o] 350 # Primary? + :closeMatch . # "Wall maps"@en . + +marc:LooseLeaf # [r] 13 # Primary? + :closeMatch . # "Loose-leaf services"@en . + +marc:Game # [n] + :broadMatch saogf:Spel\%20och\%20tanken\%C3\%B6tter ; + :broadMatch . # "Puzzles and games"@en . + +marc:PictureCardPostCard # [j] + :closeMatch saogf:Vykort ; + :closeMatch tgm:Vykort ; + :closeMatch . # "Postcards"@en . + +marc:Manuscript # [e] 967 # Primary? + :closeMatch . # "Manuscript maps"@en . + +marc:Puzzle # [l] 8 # Primary? + :broadMatch saogf:Spel\%20och\%20tanken\%C3\%B6tter ; + :narrowMatch tgm:Ord-\%20och\%20bildg\%C3\%A5tor ; + :broadMatch . # "Puzzles and games"@en . + +marc:MapsFormatType-k # [k] # [on Maps]; :broader marc:Calendar # 10 # marc:Calendar Primary? # 57 # Primary? + :broadMatch tgm:Almanackor , + saogf:Kalendrar ; + :broadMatch . # "Calendars"@en . + + +## +# marc:ComputerTypeOfFileType + +marc:Representational # [c] 13197 # Primary? + :closeMatch . # "representational"@en . + +marc:OnlineSystemOrService # [j] 135687 # Primary? + :closeMatch . # "online system or service"@en . + +marc:ComputerTypeOfFileType-h # [h] :broader marc:Sound # 47 # marc:Sound Primary? # 26 # Primary? + :closeMatch . # "sound"@en . + +marc:ComputerTypeOfFileType-g # [g] :broader marc:Game # 3803 # marc:Game Primary? [also ssb] # 132 # Primary? + # a :ContentType . # 2 # marc:Game Primary? [also ssb] + :closeMatch . # "game"@en . + +marc:InteractiveMultimedia # [i] 420 # Primary? [also ssb] + :closeMatch . # "interactive multimedia"@en . + +marc:ComputerProgram # [b] 34 # Primary? + # a :ContentType . # 24 # Primary? + :closeMatch . # "computer program"@en . + +marc:Font # [f] + :closeMatch . # "font"@en . + +marc:Document # [d] 2885 # Primary? [also ssb] + :broadMatch tgm:Dokument ; + :closeMatch . # "document (computer)"@en . + +marc:BibliographicData # [e] + :closeMatch . # "bibliographic data"@en . + +marc:NumericData # [a] 22 # Primary? + :closeMatch . # "numeric data"@en . + +# N/A in codeMaps: +# marc:Combination marc:ComputerTypeOfFileType-m # 28574 # Primary? [also ssb] +# marc:Combination a :ContentType . # 1 # Primary? [also ssb] + +#marc:Other a :ContentType . # 1 # [also ssb] # 2190 # [also ssb] + + +## +# Instance marc:MapMaterialType ? +#---- +# marc:Model marc:MapMaterialType-q +# marc:MapATwoDimensionalMap marc:MapMaterialType-j # 20157 # Primary? [also ssb] + +marc:Section # ? marc:MapMaterialType-s # 9 # Primary? [also ssb] + :closeMatch tgm:Sektionsritningar . + +marc:View # = marc:MapMaterialType-y # 3 # Primary? + :closeMatch tgm:Vyer . + +# marc:RemoteSensingImage marc:MapMaterialType-r # 33 # Primary? +# marc:MapMaterialType-d UNDEF # 2134 # marc:Atlas Primary? [also ssb] +# marc:Profile marc:MapMaterialType-k +# marc:Diagram marc:MapMaterialType-g + +## +# marc:NonProjMaterialType TODO: on carriers ... +#---- +# marc:Photonegative marc:NonProjMaterialType-g +# marc:Poster marc:NonProjMaterialType-k # 620 # Primary? +# marc:ActivityCard marc:NonProjMaterialType-a +marc:PhotomechanicalPrint # = marc:NonProjMaterialType-f # 156 # Primary? + :closeMatch tgm:Fotomekaniska\%20reproduktioner . + +marc:Print # = marc:NonProjMaterialType-j # 15526 # Primary? + :closeMatch tgm:Tryck . + +marc:Painting # = marc:NonProjMaterialType-e # 627 # Primary? + :closeMatch tgm:M\%C3\%A5lningar . + +# marc:Radiograph marc:NonProjMaterialType-r # 1 # Primary? +# marc:Photoprint marc:NonProjMaterialType-h # 37816 # Primary? +# marc:StudyPrint marc:NonProjMaterialType-s # 1 # Primary? [also ssb] + +marc:Collage # = marc:NonProjMaterialType-c + :closeMatch tgm:Collage . + +# marc:NonProjMaterialType-n UNDEF +# marc:Postcard marc:NonProjMaterialType-p # 236 # Primary? + +marc:Drawing # = marc:NonProjMaterialType-d # 7018 # Primary? [also ssb] + :closeMatch tgm:Teckningar . + +# marc:NonProjMaterialType-v UNDEF # 57 # = marc:Photograph Primary? +# marc:Icon marc:NonProjMaterialType-q + + +# marc:GlobeMaterialType (missing in lcMarc2bfCodeMap?) +marc:CelestialGlobe # = marc:GlobeMaterialType-a ; a marc:GlobeMaterialType + :closeMatch tgm:Himmelsglober . +marc:TerrestrialGlobe # = marc:GlobeMaterialType-c # 59 # Primary? + :closeMatch tgm:Jordglober . +# marc:PlanetaryOrLunarGlobe marc:GlobeMaterialType-b +# marc:EarthMoonGlobe marc:GlobeMaterialType-e + +## +# marc:MapsMaterialType -- some are serials (see marcframe TODO) +# (missing in lcMarc2bfCodeMap?) +marc:Map :closeMatch tgm:Kartor . +marc:Globe # = marc:MapsMaterialType-d # 132 # Primary? + :closeMatch tgm:Glober . +# marc:Atlas marc:MapsMaterialType-e # 2044 # Primary? [also ssb] +# marc:SeparateMapSupplementToAnotherWork marc:MapsMaterialType-f # 240 # Primary? +# marc:MapSeries marc:MapsMaterialType-b # 1403 # Primary? [also ssb] +# marc:MapBoundAsPartOfAnotherWork marc:MapsMaterialType-g # 260 # Primary? +# marc:SingleMap marc:MapsMaterialType-a # 14589 # Primary? [also ssb] +# marc:MapSerial marc:MapsMaterialType-c # 17 # Primary? + +#################### +# Instance forms (not on works; but some should be): +marc:Diagram . # 28 # Primary? + :closeMatch tgm:Diagram\%20och\%20tabeller . +# marc:BibliographicData . # 26 # +# marc:Photonegative . # 16 # Primary? +# marc:CelestialGlobe . # 15 # Primary? +# marc:Model . # 10 # Primary? +# marc:PlanetaryOrLunarGlobe . # 3 # Primary? +# marc:Profile . # 3 # Primary? +# marc:Collage . # 2 # Primary? +marc:NonProjMaterialType-n # 1 # marc:Chart Primary? + :closeMatch saogf:Diagram . +# marc:ActivityCard . # 1 # Primary? + +## +# marc:MusicCompositionType + +marc:CanonOrRound # [cn] 18 # + :closeMatch . # "Canons (Music)"@en . + +marc:Fantasia # [ft] 56 # [also ssb] + :closeMatch . # "Fantasias (Music)"@en . + +marc:Rondo # [rd] 10 # + :closeMatch . # "Rondos"@en . + +marc:Rhapsody # [rp] 5 # + :closeMatch . # "Rhapsodies (Music)"@en . + +marc:Waltz # [wz] 68 # + :closeMatch . # "Waltzes (Music)"@en . + +marc:Overture # [ov] 70 # [also ssb] + :closeMatch . # "Overtures"@en . + +marc:Fugue # [fg] 18 # + :closeMatch . # "Fugues"@en . + +marc:Ricercar # [ri] 1 # + :closeMatch . # "Ricercars"@en . + +marc:Chaconne # [ca] 3 # + :closeMatch . # "Chaconnes"@en . + +marc:Oratorio # [or] 54 # [also ssb] + :closeMatch . # "Oratorios"@en . + +marc:Requiem # [rq] 33 # [also ssb] + :closeMatch . # "Requiems"@en . + +marc:PartSong # [pt] 62 # + :closeMatch . # "Part songs"@en . + +marc:Suite # [su] 213 # Primary? [also ssb] + :closeMatch . # "Suites"@en . + +marc:DanceForm # [df] 99 # + :closeMatch . # "Dance music"@en . + +marc:Canzona # [cz] 14 # + :closeMatch . # "Canzonas (Instrumental music)"@en . + +marc:ProgramMusic # [pg] 2 # Primary? + :closeMatch . # "Program music"@en . + +marc:Minuet # [mi] 8 # + :closeMatch . # "Minuets (Music)"@en . + +marc:ChantsOtherReligion # [cb] 4 # + :closeMatch . # "Chants"@en . + +marc:Variation # [vr] 69 # + :closeMatch . # "Variations (Music)"@en . + +marc:Cantata # [ct] 249 # + :closeMatch . # "Cantatas"@en . + +marc:Ballad # [bd] 10 # + :closeMatch . # "Ballads"@en . + +marc:Anthem # [an] 38 # Primary? [also ssb] + :closeMatch . # "Anthems"@en . + +marc:Nocturne # [nc] 22 # + :closeMatch . # "Nocturnes (Music)"@en . + +marc:Blues # [bl] 32 # [also ssb] + :closeMatch . # "Blues (Music)"@en . + +marc:Mass # [ms] 130 # + :narrowMatch saogf:Flerst\%C3\%A4mmiga\%20m\%C3\%A4ssor ; + :closeMatch . # "Masses"@en . + +marc:Pavan # [pv] 5 # + :closeMatch . # "Pavans (Music)"@en . + +marc:Hymn # [hy] 39 # + :closeMatch . # "Hymns"@en . + +marc:DivertimentosSerenadesCassationsDivertissementsNotturni # [dv] 29 # + :closeMatch . # "Suites"@en . + +marc:Jazz # [jz] 263 # [also ssb] + :closeMatch . # "Jazz"@en . + +marc:MotionPictureMusic # [mp] 76 # Primary? [also ssb] + :closeMatch . # "Motion picture music"@en . + +marc:TrioSonata # [ts] 38 # + :closeMatch . # "Sonatas"@en . + +marc:ChanceComposition # [cs] 19 # + :closeMatch . # "Aleatory music"@en . + +marc:Flamenco # [fl] + :closeMatch . # "Flamenco music"@en . + +marc:ChantChristian # [cc] 46 # + :closeMatch . # "Chants"@en . + +marc:Motet # [mo] 90 # + :closeMatch . # "Motets"@en . + +marc:Mazurka # [mz] 13 # + :closeMatch . # "Mazurkas"@en . + +marc:March # [mr] 26 # + :closeMatch . # "Marches (Music)"@en . + +marc:MusicalRevueOrComedy # [mc] 103 # + :closeMatch . # "Revues"@en . + +marc:Zarzuela # [za] 1 # + :closeMatch . # "Zarzuelas"@en . + +marc:ConcertiGrossi # [cg] 19 # + :closeMatch . # "Concerti grossi"@en . + +marc:CountryMusic # [cy] 21 # [also ssb] + :closeMatch . # "Country music"@en . + +marc:Carol # [cr] 27 # + :closeMatch . # "Carols"@en . + +marc:GospelMusic # [gm] 16 # + :closeMatch . # "Gospel music"@en . + +marc:StudyOrExercise # [st] 282 # + :closeMatch . # "Studies (Music)"@en . + +marc:Toccata # [tc] 15 # + :closeMatch . # "Toccatas"@en . + +marc:Concerto # [co] 370 # [also ssb] + :closeMatch . # "Concertos"@en . + +marc:Villancico # [vi] mismatcing code "vl"? + :closeMatch . # "Villancicos (Music)"@en . + +marc:SymphonicPoem # [sp] 38 # + :closeMatch saogf:Symfoniska\%20dikter ; + :closeMatch . # "Symphonic poems"@en . + +marc:RockMusic # [rc] 250 # [also ssb] + :closeMatch . # "Rock music"@en . + +marc:Song # [sg] 689 # Primary? [also ssb] + :closeMatch . # "Songs"@en . + +marc:Passacaglia # [ps] 16 # + :closeMatch . # "Passacaglias"@en . + +marc:Polonaise # [po] 7 # + :closeMatch . # "Polonaises (Music)"@en . + +marc:Symphony # [sy] 254 # [also ssb] + :closeMatch . # "Symphonies"@en . + +marc:Prelude # [pr] 42 # [also ssb] + :closeMatch . # "Preludes (Music)"@en . + +marc:ChoralePrelude # [cl] 15 # + :closeMatch . # "Chorale preludes"@en . + +marc:Sonata # [sn] 370 # [also ssb] + :closeMatch . # "Sonatas"@en . + +marc:Madrigal # [md] 49 # + :closeMatch . # "Madrigals (Music)"@en . + +marc:SquareDanceMusic # [sd] + :closeMatch . # "Square dance music"@en . + +marc:Opera # [op] 950 # [also ssb] + :closeMatch . # "Operas"@en . + +marc:Ballet # [bt] 57 # + :closeMatch saogf:Baletter ; + :closeMatch . # "Ballets (Music)"@en . + +marc:FolkMusic # [fm] 6899 # [also ssb] + :closeMatch . # "Folk music"@en . + +marc:Chorale # [ch] 11 # + :closeMatch saogf:Koraler ; + :closeMatch . # "Chorales"@en . + +marc:PassionMusic # [pm] 15 # + :closeMatch . # "Holy Week music"@en . + +marc:BluegrassMusic # [bg] 10 # + :closeMatch . # "Bluegrass music"@en . + +marc:ChansonsPolyphonic # [cp] 3 # + :closeMatch . # "Polyphonic chansons"@en . + +marc:PopularMusic # [pp] 220 # [also ssb] + :closeMatch . # "Popular music"@en . + +marc:RagtimeMusic # [rg] 6 # + :closeMatch . # "Ragtime music"@en . + +# marc:TeatroLirico . # 1 # + +# N/A in codeMaps: +# marc:MultipleForms marc:MusicCompositionType-mu # 766 # Primary? [also ssb] +# marc:MusicCompositionType-zz # 1002 # marc:Other [also ssb] + + +#### +# Government genre (not relevant?) + +#marc:GovernmentPublicationType +# marc:Multistate marc:GovernmentPublicationType-m # 25 # +# marc:InternationalIntergovernmental marc:GovernmentPublicationType-i # 27933 # +# marc:Multilocal marc:GovernmentPublicationType-c # 29 # +# marc:UnknownIfItemIsGovernmentPublication marc:GovernmentPublicationType-u # 14196 # [also ssb] +# marc:FederalNational marc:GovernmentPublicationType-f # 34060 # [also ssb] +# marc:StateProvincialTerritorialDependentEtc marc:GovernmentPublicationType-s # 11731 # [also ssb] +# marc:GovernmentPublicationLevelUndetermined marc:GovernmentPublicationType-o # 666969 # [also ssb] +# marc:Local marc:GovernmentPublicationType-l # 721 # [also ssb] +# marc:AutonomousOrSemiAutonomousComponent marc:GovernmentPublicationType-a # 328 # Primary? [also ssb] + + +# Others (not mapped to genreForm or contentType; no statistical usage) +marc:CoatsOfArms :closeMatch tgm:Vapensk\%C3\%B6ldar\%20\%28bilder\%29 . +marc:Facsimile :closeMatch tgm:Faksimil . +marc:GenealogicalTable :closeMatch saogf:Genealogiskt\%20material . +marc:Illumination :closeMatch tgm:Bokm\%C3\%A5leri . +marc:Illustration :closeMatch tgm:Illustrationer . +marc:MusicMatterType-a :closeMatch saogf:Diskografier . +marc:Photograph :closeMatch tgm:Fotografier . +marc:Plan :closeMatch tgm:Planritningar . +marc:Portrait :closeMatch saogf:Portr\%C3\%A4tt . + +# Instance/Carrier +marc:Microfiche :closeMatch tgm:Mikroficher . +marc:Microfilm :closeMatch tgm:Mikrofilmer . +marc:MicroformMaterialType-e :closeMatch tgm:Mikroficher . +marc:MicroformMaterialType-g :closeMatch tgm:Mikrokort . +marc:Microopaque :closeMatch tgm:Mikrokort . +marc:Negative :closeMatch tgm:Negativ . +marc:Photocopy :closeMatch tgm:Elektrostatkopior . +marc:ReproductionType-f :closeMatch saogf:Faksimiler . +marc:Sample :closeMatch tgm:Provexemplar . +marc:Videodisc :closeMatch tgm:Bildskivor . +marc:VideoMaterialType-d :closeMatch tgm:Bildskivor . From 22926989fc74a3e18eba1cfff6063f7b31edf106 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Tue, 15 Oct 2024 10:28:21 +0200 Subject: [PATCH 25/69] Fix syntax in marcmatches.ttl --- examples/typenormalization/marcmatches.ttl | 61 +++++++++++----------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/examples/typenormalization/marcmatches.ttl b/examples/typenormalization/marcmatches.ttl index ce167b66..0d70501a 100644 --- a/examples/typenormalization/marcmatches.ttl +++ b/examples/typenormalization/marcmatches.ttl @@ -18,7 +18,7 @@ prefix tgm: # marc:BooksBiographyType marc:Autobiography # [a] also mac:MusicTextType # 41138 # [also ssb] - :closeMatch saogf:Sj\%C3\%A4lvbiografier ; + :closeMatch saogf:Sj%C3%A4lvbiografier ; :closeMatch . # "Autobiographies"@en . marc:IndividualBiography # [b] 69428 # [also ssb] @@ -37,11 +37,11 @@ marc:ContainsBiographicalInformation # [d] 43201 # [also ssb] # Books and Serials (continuing) -- marc:BooksContentsType | marc:SerialsNatureType | marc:SerialsContentsType marc:LegalArticle # [g] 642 # Primary? [also ssb] - :broadMatch saogf:Juridiskt\%20material ; + :broadMatch saogf:Juridiskt%20material ; :broadMatch . # "Law materials"@en . marc:Legislation # [l] 5196 # [also ssb] - :broadMatch saogf:Juridiskt\%20material ; + :broadMatch saogf:Juridiskt%20material ; :broadMatch . # "Law materials"@en . marc:SerialsNatureType-h # [h] 561 # [on Serials]; marc:Biography Primary? [also ssb] @@ -49,12 +49,12 @@ marc:SerialsNatureType-h # [h] 561 # [on Serials]; marc:Biography Primary? [als :broadMatch . # "Biographies"@en . marc:LawReportOrDigest # [w] 326 # Primary? - :broadMatch saogf:Juridiskt\%20material ; + :broadMatch saogf:Juridiskt%20material ; :broadMatch . # "Law materials"@en . marc:Yearbook # [y] 6968 # [also ssb] # a :ContentType ; # 1 # [also ssb] - :closeMatch saogf:\%C3\%85rsb\%C3\%B6cker ; + :closeMatch saogf:%C3%85rsb%C3%B6cker ; :closeMatch . # "Yearbooks"@en . marc:Index # [i] 3941 # Primary? [also ssb] @@ -66,7 +66,7 @@ marc:Statistics # [s] 20197 # Primary? [also ssb] marc:Handbook # [f] 8727 # Primary? [also ssb] # a :ContentType ; # 2 # Primary? [also ssb] - :closeMatch saogf:Handb\%C3\%B6cker\%2C\%20manualer\%20etc\. ; + :closeMatch saogf:Handb%C3%B6cker%2C%20manualer%20etc\; ; :closeMatch . # "Handbooks and manuals"@en . marc:Treaty # [z] 1297 # [also ssb] @@ -93,12 +93,12 @@ marc:Encyclopedia # [e] 9137 # [also ssb] marc:ComicOrGraphicNovel # [6] 17902 # Primary? [also ssb] # a :ContentType ; # 20 # Primary? [also ssb] - :broadMatch saogf:Tecknade\%20serier ; + :broadMatch saogf:Tecknade%20serier ; :closeMatch . # "Comics (Graphic works)"@en . marc:LegalCaseOrCaseNote # [v] 431 # Primary? # a :ContentType ; # 1 # Primary? - :broadMatch saogf:Juridiskt\%20material ; + :broadMatch saogf:Juridiskt%20material ; :broadMatch . # "Law materials"@en . marc:Catalog # [c] 61570 # Primary? [also ssb] @@ -157,7 +157,7 @@ marc:ShortStory # [j] 26024 # Primary? [also ssb] :closeMatch . # "Short stories"@en . marc:Speech # [s] 333 # Primary? [also ssb] - :closeMatch saogf:Tal\%20\%28retorik\%29 ; + :closeMatch saogf:Tal%20%28retorik%29 ; :closeMatch . # "Speeches"@en . # N/A in codeMaps: @@ -184,7 +184,7 @@ marc:Drama # [d] 17418 # [also ssb] :closeMatch saogf:Dramatik ; :closeMatch . # "Drama"@en . marc:Essay # [e] 4861 # [also ssb] - :closeMatch saogf:Ess\%C3\%A4er ; + :closeMatch saogf:Ess%C3%A4er ; :closeMatch . # "Essays"@en . # N/A in codeMaps: @@ -200,7 +200,7 @@ marc:Interview # [t] 69 # [also ssb] :closeMatch . # "Interviews"@en . marc:Memoir # [m] 99 # [also ssb] - :closeMatch saogf:Sj\%C3\%A4lvbiografier ; + :closeMatch saogf:Sj%C3%A4lvbiografier ; :closeMatch . # "Autobiographies"@en . marc:History # [h] 110 # [also ssb] @@ -219,7 +219,7 @@ marc:Folktale # [o] 46 # [also ssb] :closeMatch . # "Folk tales"@en . marc:LecturesSpeech # [l] 110 # Primary? [also ssb] - :broadMatch saogf:Tal\%20\%28retorik\%29 ; + :broadMatch saogf:Tal%20%28retorik%29 ; :broadMatch . # "Speeches"@en . marc:Fiction # [f] @@ -229,7 +229,7 @@ marc:Sound # [s] :closeMatch . # "Sound recordings"@en . marc:Reporting # [g] 33 # [also ssb] - :broadMatch saogf:Informativa\%20verk ; + :broadMatch saogf:Informativa%20verk ; :broadMatch . # "Informational works"@en . marc:ConferenceProceeding # [c] 9 # Primary? @@ -237,7 +237,7 @@ marc:ConferenceProceeding # [c] 9 # Primary? :closeMatch . # "Conference papers and proceedings"@en . marc:Instruction # [i] 19 # Primary? - :broadMatch saogf:Instruktions-\%20och\%20undervisningsmaterial ; + :broadMatch saogf:Instruktions-%20och%20undervisningsmaterial ; :broadMatch . # "Instructional and educational works"@en . marc:LanguageInstruction # [j] 113 # Primary? @@ -326,12 +326,12 @@ marc:ArtReproduction # [c] 31 # Primary? marc:VisualMaterialType-n # [n] :broader marc:Chart # a :ContentType ; # 68 # marc:Chart :broadMatch saogf:Diagram ; - :narrowMatch tgm:Diagram\%20och\%20tabeller ; + :narrowMatch tgm:Diagram%20och%20tabeller ; :broadMatch . # "chart"@en . marc:VisualMaterialType-g # [g] :broader marc:Game # 194 # marc:Game Primary? # a :ContentType ; # 32 # marc:Game Primary? - :broadMatch saogf:Spel\%20och\%20tanken\%C3\%B6tter ; + :broadMatch saogf:Spel%20och%20tanken%C3%B6tter ; :closeMatch . # "Puzzles and games"@en . marc:Diorama # [d] 739 # @@ -359,8 +359,7 @@ marc:Picture # [i] 105262 # Primary? marc:Transparency # [t] 71 # Primary? # a :ContentType ; # 6 # Primary? - :closeMatch tgm:Genomsiktsbilder . - + :closeMatch tgm:Genomsiktsbilder ; :closeMatch . # "transparency"@en . marc:Slide # [s] 11 # Primary? @@ -385,7 +384,7 @@ marc:LooseLeaf # [r] 13 # Primary? :closeMatch . # "Loose-leaf services"@en . marc:Game # [n] - :broadMatch saogf:Spel\%20och\%20tanken\%C3\%B6tter ; + :broadMatch saogf:Spel%20och%20tanken%C3%B6tter ; :broadMatch . # "Puzzles and games"@en . marc:PictureCardPostCard # [j] @@ -397,8 +396,8 @@ marc:Manuscript # [e] 967 # Primary? :closeMatch . # "Manuscript maps"@en . marc:Puzzle # [l] 8 # Primary? - :broadMatch saogf:Spel\%20och\%20tanken\%C3\%B6tter ; - :narrowMatch tgm:Ord-\%20och\%20bildg\%C3\%A5tor ; + :broadMatch saogf:Spel%20och%20tanken%C3%B6tter ; + :narrowMatch tgm:Ord-%20och%20bildg%C3%A5tor ; :broadMatch . # "Puzzles and games"@en . marc:MapsFormatType-k # [k] # [on Maps]; :broader marc:Calendar # 10 # marc:Calendar Primary? # 57 # Primary? @@ -474,13 +473,13 @@ marc:View # = marc:MapMaterialType-y # 3 # Primary? # marc:Poster marc:NonProjMaterialType-k # 620 # Primary? # marc:ActivityCard marc:NonProjMaterialType-a marc:PhotomechanicalPrint # = marc:NonProjMaterialType-f # 156 # Primary? - :closeMatch tgm:Fotomekaniska\%20reproduktioner . + :closeMatch tgm:Fotomekaniska%20reproduktioner . marc:Print # = marc:NonProjMaterialType-j # 15526 # Primary? :closeMatch tgm:Tryck . marc:Painting # = marc:NonProjMaterialType-e # 627 # Primary? - :closeMatch tgm:M\%C3\%A5lningar . + :closeMatch tgm:M%C3%A5lningar . # marc:Radiograph marc:NonProjMaterialType-r # 1 # Primary? # marc:Photoprint marc:NonProjMaterialType-h # 37816 # Primary? @@ -522,8 +521,8 @@ marc:Globe # = marc:MapsMaterialType-d # 132 # Primary? #################### # Instance forms (not on works; but some should be): -marc:Diagram . # 28 # Primary? - :closeMatch tgm:Diagram\%20och\%20tabeller . +marc:Diagram ; # 28 # Primary? + :closeMatch tgm:Diagram%20och%20tabeller . # marc:BibliographicData . # 26 # # marc:Photonegative . # 16 # Primary? # marc:CelestialGlobe . # 15 # Primary? @@ -611,7 +610,7 @@ marc:Blues # [bl] 32 # [also ssb] :closeMatch . # "Blues (Music)"@en . marc:Mass # [ms] 130 # - :narrowMatch saogf:Flerst\%C3\%A4mmiga\%20m\%C3\%A4ssor ; + :narrowMatch saogf:Flerst%C3%A4mmiga%20m%C3%A4ssor ; :closeMatch . # "Masses"@en . marc:Pavan # [pv] 5 # @@ -681,7 +680,7 @@ marc:Villancico # [vi] mismatcing code "vl"? :closeMatch . # "Villancicos (Music)"@en . marc:SymphonicPoem # [sp] 38 # - :closeMatch saogf:Symfoniska\%20dikter ; + :closeMatch saogf:Symfoniska%20dikter ; :closeMatch . # "Symphonic poems"@en . marc:RockMusic # [rc] 250 # [also ssb] @@ -766,15 +765,15 @@ marc:RagtimeMusic # [rg] 6 # # Others (not mapped to genreForm or contentType; no statistical usage) -marc:CoatsOfArms :closeMatch tgm:Vapensk\%C3\%B6ldar\%20\%28bilder\%29 . +marc:CoatsOfArms :closeMatch tgm:Vapensk%C3%B6ldar%20%28bilder%29 . marc:Facsimile :closeMatch tgm:Faksimil . -marc:GenealogicalTable :closeMatch saogf:Genealogiskt\%20material . -marc:Illumination :closeMatch tgm:Bokm\%C3\%A5leri . +marc:GenealogicalTable :closeMatch saogf:Genealogiskt%20material . +marc:Illumination :closeMatch tgm:Bokm%C3%A5leri . marc:Illustration :closeMatch tgm:Illustrationer . marc:MusicMatterType-a :closeMatch saogf:Diskografier . marc:Photograph :closeMatch tgm:Fotografier . marc:Plan :closeMatch tgm:Planritningar . -marc:Portrait :closeMatch saogf:Portr\%C3\%A4tt . +marc:Portrait :closeMatch saogf:Portr%C3%A4tt . # Instance/Carrier marc:Microfiche :closeMatch tgm:Mikroficher . From 91198f0c3fed462befdd70cfed17f2ee2caa1c52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Tue, 15 Oct 2024 17:34:01 +0200 Subject: [PATCH 26/69] Add some mappings and remarks to marcmatches.ttl --- examples/typenormalization/marcmatches.ttl | 46 +++++++++++++++++----- 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/examples/typenormalization/marcmatches.ttl b/examples/typenormalization/marcmatches.ttl index 0d70501a..514574ae 100644 --- a/examples/typenormalization/marcmatches.ttl +++ b/examples/typenormalization/marcmatches.ttl @@ -5,6 +5,10 @@ prefix tgm: # Stat numbers: Most GenreForm are tagged below (to aid prioritization). +# TODO: "Primary?" means candidate as a basic Form (or a clear subclass thereof?). + +# TODO: what of these loc.gov-mappings are used by bibframe2marc to *produce* bib 008 values? + # TODO: "Vad är skönlitteratur?" - # marc:NotFictionNotFurtherSpecified . # 8524469 # [also ssb] @@ -59,6 +63,10 @@ marc:Yearbook # [y] 6968 # [also ssb] marc:Index # [i] 3941 # Primary? [also ssb] :closeMatch . # "Indexes"@en . +# TODO: +# Either: Delete - Unlikely to have been consistently and correctly applied? +# - How is it used in practise? "Sök i 008 minus Index för de som vill ha faktiskt innehåll"@sv?) +# Or: << marc:Index :broadMatch saogf:Referensverk >> a :Suggestion ; :source kbstaff:viklun . marc:Statistics # [s] 20197 # Primary? [also ssb] :closeMatch saogf:Statistik ; @@ -81,6 +89,7 @@ marc:TechnicalReport # [t] 466 # Primary? [also ssb] :closeMatch . # "Technical reports"@en . marc:Filmography # [q] 2269 # [also ssb] + :closeMatch saogf:Filmografi ; # [new saogf->lcgft mapping 241015] :closeMatch . # "filmography"@en . marc:Directory # [r] 2604 # Primary? [also ssb] @@ -135,19 +144,24 @@ marc:PatentDocument # [j] 661 # Primary? [also ssb] # marc:BooksBiographyType marc:FictionNotFurtherSpecified # [1] + :broadMatch saogf:Sk%C3%B6nlitteratur ; # ~ _:x670e8a6d {| a :PreferredGeneralization ; :source kbstaff:viklun |} ; + :closeMatch . # "Fiction"@en . + +marc:MixedForms # [m] 4352 # Primary? [also ssb] + :broadMatch saogf:Sk%C3%B6nlitteratur ; # ~ _:x670e8a6d {| a :ErasedDifference ; :source kbstaff:viklun |} ; + #:replacedBy marc:FictionNotFurtherSpecified ; ~ _:x670e8a6d :closeMatch . # "Fiction"@en . marc:HumorSatiresEtc # [h] 3653 # [also ssb] - :closeMatch saogf:Humor ; + :narrowMatch saogf:Humor ; # ~ _:x670e8a3c + :narrowMatch saogf:Satir ; # ~ _:x670e8a3c {| a :Suggestion ; :source kbstaff:viklun |} ; :closeMatch . # "Humor"@en . marc:Letter # [i] 1436 # Primary? [also ssb] :closeMatch saogf:Korrespondens ; + # :narrowMatch saogf:Brev ; {| a :TooSpecic ; :source kbstaff:viklun |} :closeMatch . # "Personal correspondence"@en . -marc:MixedForms # [m] 4352 # Primary? [also ssb] - :closeMatch . # "Fiction"@en . - marc:Novel # [f] # 248532 # Primary? [also ssb] :closeMatch saogf:Romaner ; :closeMatch . # "Novels"@en . @@ -161,15 +175,24 @@ marc:Speech # [s] 333 # Primary? [also ssb] :closeMatch . # "Speeches"@en . # N/A in codeMaps: -marc:Review :closeMatch saogf:Recensioner . # 31024 # [also ssb] - # a :ContentType . # 1 # [also ssb] -marc:StandardsSpecification :closeMatch saogf:Standarder . # 270 # Primary? -# marc:AbstractsSummary # 1324 # Primary? [also ssb] + +marc:Review # a :ContentType . # 1 # [also ssb] + :closeMatch saogf:Recensioner . # 31024 # [also ssb] + +marc:StandardsSpecification # 270 # Primary? + :closeMatch saogf:Standarder . + +marc:AbstractsSummary # 1324 # Primary? [also ssb] # a :ContentType . # 4 # Primary? [also ssb] + :broadMatch saogf:Sammanfattningar . # {| :source kbkat:viklun |} + # marc:ProgrammedText # 192 # Primary? [also ssb] # a :ContentType . # 21 # Primary? [also ssb] -# marc:SurveysOfLiteratureInASubjectArea # 448 # [also ssb] + +marc:SurveysOfLiteratureInASubjectArea # 448 # [also ssb] + :closeMatch saogf:Forsknings%C3%B6versikter . # {| :source kbkat:viklun |} # a :ContentType . # 1 # [also ssb] + # marc:Offprint # 65 # Primary? marc:Festschrift :closeMatch saogf:Festskrifter . # 32382 # [also ssb] @@ -271,9 +294,13 @@ marc:UpdatingLooseLeaf # [l] 132 # Primary? marc:UpdatingDatabase # [d] 2960 # Primary? # a :ContentType . # 4 # Primary? + # TODO: remove; maybe implied from possible new type :Database + :closeMatch saogf:Databaser ; # {| :source kbkat:viklun |} :closeMatch . # "database"@en . marc:UpdatingWebSite # [w] 635 # Primary? + # TODO: remove; maybe implied from possible new type :Website + :closeMatch saogf:Webbplatser ; # {| :source kbkat:viklun |} :closeMatch . # "web site"@en . # Missing in KB marc (only relvant *IF* we were to map to marc bib 008!) @@ -303,7 +330,6 @@ marc:Realia # [r] 34 # Primary? marc:MotionPicture # [m] 11841 # Primary? [also ssb] # a :ContentType ; # 1 # Primary? [also ssb] - :narrowMatch saogf:Filmografi ; :closeMatch saogf:Filmer ; :closeMatch . # "Motion pictures"@en . From c674a54f0f7eeadd7f4ea3b8fdcd33a94a5e2626 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Mon, 28 Oct 2024 18:12:41 +0100 Subject: [PATCH 27/69] Update type-normalization RDA mappings --- examples/typenormalization/classes.ttl | 64 ++++++++---- examples/typenormalization/examples.ttl | 13 +++ examples/typenormalization/genreforms.ttl | 28 +++++- examples/typenormalization/rdamatches.ttl | 115 ++++++++++++---------- 4 files changed, 147 insertions(+), 73 deletions(-) diff --git a/examples/typenormalization/classes.ttl b/examples/typenormalization/classes.ttl index 9ffc4ef2..a602502c 100644 --- a/examples/typenormalization/classes.ttl +++ b/examples/typenormalization/classes.ttl @@ -9,18 +9,34 @@ prefix : prefix saogf: prefix kbrda: -prefix kbgf: +prefix kbgf: :ComplexClass rdfs:subClassOf owl:Class . +:Text rdfs:subClassOf :TextContent . +:StillImage rdfs:subClassOf :ImageContent . +:TextWithImages rdfs:subClassOf :TextContent, :ImageContent . +:ImageAndText rdfs:subClassOf :TextContent, :ImageContent . +:NotatedMusic rdfs:subClassOf :NotatedMusicContent . +:NotatedMovement rdfs:subClassOf :NotatedMovementContent . +:Object rdfs:subClassOf :ObjectContent . +:Audio rdfs:subClassOf :AudioContent . +:PerformedMusic rdfs:subClassOf :PerformedMusicContent . +:SpokenWord rdfs:subClassOf :SpokenWordContent . +:ComputerProgram rdfs:subClassOf :ComputerProgramContent . +:ComputerDataset rdfs:subClassOf :ComputerDatasetContent . + # Complex Work Classes (Single Unit) +# * Use intersections to say: "this combo *means* this class". + :Book a owl:Class ; ptg:abstract true ; - :category :pending ; + :category :pending, :primary ; owl:equivalentClass bibo:Book, sdo:Book ; :label "Book"@en , - "Bok"@sv . + "Bok"@sv ; + :pluralLabel "Böcker"@sv . :WrittenBook a :ComplexClass ; :category :pending ; @@ -77,7 +93,7 @@ prefix kbgf: :Issue a :ComplexClass ; :category :pending ; - rdfs:subClassOf :NonBookText ; + rdfs:subClassOf :NonBookText ; # ambiguous; just :Text ? owl:equivalentClass bibo:Issue ; :label "Tidskriftsnummer"@sv , "Periodical Issue"@en . @@ -85,7 +101,7 @@ prefix kbgf: :IllustratedWork a :ComplexClass ; :category :pending ; - rdfs:subClassOf :ContainsImages ; + rdfs:subClassOf :ImageContent ; owl:intersectionOf ( :Visual [ owl:onProperty :genreForm ; @@ -95,7 +111,7 @@ prefix kbgf: "Illustrated Work"@en . :Brochure a :Form ; - rdfs:subClassOf :NonBookText ; + rdfs:subClassOf :NonBookText ; # ambiguous; just :Text ? owl:intersectionOf ( :Text [ owl:onProperty :genreForm ; @@ -105,20 +121,17 @@ prefix kbgf: "Brochure"@en . :Atlas a :ComplexClass ; - rdfs:subClassOf :Book, :Cartography , - [ owl:intersectionOf ( - [ a owl:Restriction ; owl:onProperty :contentType ; - owl:hasValue kbrda:Text ] - [ a owl:Restriction ; owl:onProperty :contentType ; - owl:hasValue kbrda:CartographicImage ] - ) ] . + rdfs:subClassOf :WrittenBook, :Cartography, :ImageContent . + +:Globe a :ComplexClass ; + rdfs:subClassOf :Cartography, :ObjectContent . :Comic a :ComplexClass ; rdfs:subClassOf :IllustratedWork ; owl:intersectionOf ( :Text [ owl:onProperty :genreForm ; - owl:hasValue kbgf:Comics ] + owl:hasValue kbgf:Comic ] ) ; :label "Serietidning"@sv , "Comic"@en . @@ -190,21 +203,31 @@ prefix kbgf: owl:hasValue kbrda:Volume ] ) . -:EBook a :ComplexClass ; +:CDBook a :ComplexClass ; owl:intersectionOf ( - :Electronic + [ owl:onProperty :carrierType ; + owl:hasValue kbrda:AudioDisc ] [ owl:onProperty :instanceOf ; owl:someValuesFrom :Book ] ) . -:CDBook a :ComplexClass ; +:EBook a :ComplexClass ; owl:intersectionOf ( - [ owl:onProperty :carrierType ; - owl:hasValue kbrda:AudioDisc ] + :Electronic # DigitalResource [ owl:onProperty :instanceOf ; owl:someValuesFrom :Book ] ) . +# TODO: used by whom? Not Webbsök... +#:EAudioBook a :ComplexClass ; +# owl:intersectionOf ( +# :Electronic +# [ owl:onProperty :instanceOf ; +# owl:someValuesFrom :AudioBook ] +# ) . + +# Multimedia AudioBook + WrittenBook Bundle ? + # Collecting Work Classes @@ -255,7 +278,7 @@ prefix kbgf: "Serial Publication"@en . :Periodical a :ComplexClass ; - :category :pending ; + :category :pending, :primary ; rdfs:seeAlso ; rdfs:subClassOf :SerialPublication ; owl:intersectionOf ( @@ -263,6 +286,7 @@ prefix kbgf: [ owl:onProperty :genreForm ; owl:hasValue saogf:Periodika ] ) ; + # TODO: :scopeNote Tidskrift vs. Tidning vs. Årsbok () :altLabel "Periodika"@sv ; :label "Tidskrift"@sv , "Periodical"@en . diff --git a/examples/typenormalization/examples.ttl b/examples/typenormalization/examples.ttl index a5e835a0..67c098d1 100644 --- a/examples/typenormalization/examples.ttl +++ b/examples/typenormalization/examples.ttl @@ -9,6 +9,7 @@ prefix rdfs: prefix owl: prefix : +prefix kbgf: prefix kbrda: prefix saogf: prefix barngf: @@ -87,3 +88,15 @@ prefix spec: spec:query 'ASK { a :Text ; :genreForm saogf:Serieromaner }' , 'ASK { :genreForm saogf:Romaner }' , 'ASK { a :Book }' . + + a :Atlas ; + spec:query '''ASK { + a :Text ; + :contentType kbrda:Text, kbrda:CartographicImage + }''' . + + a :Globe ; + spec:query '''ASK { + a :Cartography ; + :contentType kbrda:CartographicThreeDimensionalForm + }''' . diff --git a/examples/typenormalization/genreforms.ttl b/examples/typenormalization/genreforms.ttl index bbf388c5..e5220651 100644 --- a/examples/typenormalization/genreforms.ttl +++ b/examples/typenormalization/genreforms.ttl @@ -1,21 +1,43 @@ prefix : prefix saogf: prefix barngf: +prefix tgm: +prefix marc: +prefix marcgt: -prefix kbgf: +prefix kbgf: # Base Forms -kbgf:Book a :GenreForm ; +kbgf:LinguisticWork a :GenreForm ; + :altLabel "Literature"@en , + "Litteratur"@sv ; + :prefLabel "Linguistic work"@en , + "Språkligt verk"@sv . + +kbgf:Book a :GenreForm ; # BookForm :narrowMatch saogf:Romaner , saogf:Ljudb%C3%B6cker , barngf:Bilderb%F6cker , barngf:Kapitelb%F6cker . -kbgf:Comics a :GenreForm ; +kbgf:Atlas a :GenreForm ; #AtlasForm + :exactMatch marc:Atlas, tgm:Atlaser . + #:narrowMatch tgm:Bilatlaser ; #:relatedMatch tgm:V\%C3\%A4gkartor . + +kbgf:Comic a :GenreForm ; + :prefLabel "Tecknad serie"@sv, "Comic"@en ; :narrowMatch saogf:Tecknade%20serier , barngf:Tecknade%20serier . kbgf:ShortStory a :GenreForm ; :narrowMatch saogf:Noveller, saogf:Serienoveller . + +# TODO: trying to map *relevant* MARC GT... + +kbgf:Fiction a :GenreForm ; + :narrowMatch marc:Fiction ; # 84678 # (SSB) + :narrowMatch marc:FictionNotFurtherSpecified . # 573355 # (SSB) + +# <./marcmatches.ttl> diff --git a/examples/typenormalization/rdamatches.ttl b/examples/typenormalization/rdamatches.ttl index c4bae84f..c022d69f 100644 --- a/examples/typenormalization/rdamatches.ttl +++ b/examples/typenormalization/rdamatches.ttl @@ -1,6 +1,7 @@ prefix rdfs: prefix owl: prefix skos: +#prefix ptg: prefix : @@ -9,77 +10,91 @@ prefix kbrda: base -# NOTE: just patterns to entail :contenType for RDA coordination. -# (See classes in other documents!) +## +# Mixin classes to entail :contentType for RDA coordination. +# See subclasses in other documents. -# TODO: replace :contentType with :genreForm (and always infer)? +# TODO: Define restriction classes as ptg:abstract true? -:Text rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty :contentType ; owl:hasValue kbrda:Text ] . +:TextContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:Text . -:ContainsImages owl:onProperty :contentType ; owl:hasValue kbrda:StillImage . +:ImageContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:StillImage . -:StillImage rdfs:subClassOf :ContainsImages . +:ThreeDimensionalMovingImageContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:ThreeDimensionalMovingImage . -#:ThreeDimensionalMovingImage -# owl:hasValue kbrda:ThreeDimensionalMovingImage ; -# -#:TwoDimensionalMovingImage -# owl:hasValue kbrda:TwoDimensionalMovingImage ; +:TwoDimensionalMovingImageContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:TwoDimensionalMovingImage . -:NotatedMusic rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty :contentType ; owl:hasValue kbrda:NotatedMusic ] . +:NotatedMusicContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:NotatedMusic . -:NotatedMovement rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty :contentType ; owl:hasValue kbrda:NotatedMovement ] . +:NotatedMovementContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:NotatedMovement . -:Object rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty :contentType ; owl:hasValue kbrda:ThreeDimensionalForm ] . +:ObjectContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:ThreeDimensionalForm . -:Audio rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty :contentType ; owl:hasValue kbrda:Sounds ] . +:AudioContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:Sounds . -:PerformedMusic rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty :contentType ; owl:hasValue kbrda:PerformedMusic ] . +:PerformedMusicContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:PerformedMusic . -:SpokenWord rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty :contentType ; owl:hasValue kbrda:SpokenWord ] . +:SpokenWordContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:SpokenWord . -:ComputerProgram rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty :contentType ; owl:hasValue kbrda:ComputerProgram] . +:ComputerProgramContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:ComputerProgram. -:ComputerDataset rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty :contentType ; owl:hasValue kbrda:ComputerDataset ] . +:ComputerDatasetContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:ComputerDataset . -[ owl:intersectionOf (:Cartography :Dataset) ] rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty :contentType ; owl:hasValue kbrda:CartographicDataset ] . -[ owl:intersectionOf (:Cartography :StillImage) ] rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty :contentType ; owl:hasValue kbrda:CartographicImage ] . +## Articifial combos (patterns matching some of ComplexClass:es) -[ owl:intersectionOf (:Cartography :MovingImage) ] rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty :contentType ; owl:hasValue kbrda:CartographicMovingImage ] . +[ owl:intersectionOf (:Cartography :Dataset) ] rdfs:subClassOf :CartographicDatasetContent . +:CartographicDatasetContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:CartographicDataset . -[ owl:intersectionOf (:Cartography :StillImage :Tactile) ] rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty :contentType ; owl:hasValue kbrda:CartographicTactileImage ] . +[ owl:intersectionOf (:Cartography :ImageContent) ] rdfs:subClassOf :CartographicImageContent . +:CartographicImageContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:CartographicImage . -[ owl:intersectionOf (:Cartography :Tactile :Object) ] rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty :contentType ; owl:hasValue kbrda:CartographicTactileThreeDimensionalForm ] . +[ owl:intersectionOf (:Cartography :MovingImage) ] rdfs:subClassOf :CartographicMovingImageContent . +:CartographicMovingImageContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:CartographicMovingImage . -[ owl:intersectionOf (:Cartography :Object) ] rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty :contentType ; owl:hasValue kbrda:CartographicThreeDimensionalForm ] . +[ owl:intersectionOf (:Cartography :ImageContent :Tactile) ] rdfs:subClassOf :CartographicTactileImageContent . +:CartographicTactileImageContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:CartographicTactileImage . -[ owl:intersectionOf (:StillImage :Tactile) ] rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty :contentType ; owl:hasValue kbrda:TactileImage ] . +[ owl:intersectionOf (:Cartography :Tactile :ObjectContent) ] rdfs:subClassOf :CartographicTactileThreeDimensionalFormContent . +:CartographicTactileThreeDimensionalFormContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:CartographicTactileThreeDimensionalForm . -[ owl:intersectionOf (:NotatedMusic :Tactile) ] rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty :contentType ; owl:hasValue kbrda:TactileNotatedMusic ] . +[ owl:intersectionOf (:Cartography :ObjectContent) ] rdfs:subClassOf :CartographicThreeDimensionalFormContent . +:CartographicThreeDimensionalFormContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:CartographicThreeDimensionalForm . -[ owl:intersectionOf (:NotatedMovement :Tactile) ] rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty :contentType ; owl:hasValue kbrda:TactileNotatedMovement ] . +[ owl:intersectionOf (:ImageContent :Tactile) ] rdfs:subClassOf :TactileImageContent . +:TactileImageContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:TactileImage . -[ owl:intersectionOf (:Text :Tactile) ] rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty :contentType ; owl:hasValue kbrda:TactileText ] . +[ owl:intersectionOf (:NotatedMusic :Tactile) ] rdfs:subClassOf :TactileNotatedMusicContent . +:TactileNotatedMusicContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:TactileNotatedMusic . -[ owl:intersectionOf (:Object :Tactile) ] rdfs:subClassOf [ a owl:Restriction ; - owl:onProperty :contentType ; owl:hasValue kbrda:TactileThreeDimensionalForm ] . +[ owl:intersectionOf (:NotatedMovement :Tactile) ] rdfs:subClassOf :TactileNotatedMovementContent . +:TactileNotatedMovementContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:TactileNotatedMovement . + +[ owl:intersectionOf (:Text :Tactile) ] rdfs:subClassOf :TactileTextContent . +:TactileTextContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:TactileText . + +[ owl:intersectionOf (:ObjectContent :Tactile) ] rdfs:subClassOf :TactileThreeDimensionalFormContent . +:TactileThreeDimensionalFormContent a owl:Restriction ; + owl:onProperty :contentType ; owl:hasValue kbrda:TactileThreeDimensionalForm . From 4fad8f7a3a0ec570419c57500174d6091d04acf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Thu, 31 Oct 2024 16:18:27 +0100 Subject: [PATCH 28/69] Update example new types --- examples/typenormalization/classes.ttl | 74 +++++++++++++++++++--- examples/typenormalization/marcmatches.ttl | 2 +- 2 files changed, 67 insertions(+), 9 deletions(-) diff --git a/examples/typenormalization/classes.ttl b/examples/typenormalization/classes.ttl index a602502c..190f826f 100644 --- a/examples/typenormalization/classes.ttl +++ b/examples/typenormalization/classes.ttl @@ -28,7 +28,7 @@ prefix kbgf: # Complex Work Classes (Single Unit) -# * Use intersections to say: "this combo *means* this class". +# * Uses intersections to say: "this combo *means* this class". :Book a owl:Class ; ptg:abstract true ; @@ -99,6 +99,29 @@ prefix kbgf: "Periodical Issue"@en . +:Poster a :ComplexClass ; + :category :pending ; + # TODO: is a TextPoster a kind of ImagePoster? + #ptg:abstract true ; + #rdfs:subClassOf :StillImage ; + owl:equivalentClass sdo:Poster ; + owl:intersectionOf ( + :Visual + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Affischer ] + ) ; + rdfs:label "Affisch"@sv, "Poster"@en ; + :pluralLabel "Affischer"@sv . + +:ImagePoster a :ComplexClass ; + rdfs:subClassOf :Poster , :ImageContent ; + rdfs:label "Bildaffisch"@sv, "Image Poster"@en . + +:TextPoster a :ComplexClass ; + rdfs:subClassOf :Poster , :TextContent ; + rdfs:label "Textaffisch"@sv, "Text Poster"@en . + + :IllustratedWork a :ComplexClass ; :category :pending ; rdfs:subClassOf :ImageContent ; @@ -110,7 +133,7 @@ prefix kbgf: :label "Illustrerat verk"@sv , "Illustrated Work"@en . -:Brochure a :Form ; +:Brochure a :ComplexClass ; rdfs:subClassOf :NonBookText ; # ambiguous; just :Text ? owl:intersectionOf ( :Text @@ -120,12 +143,6 @@ prefix kbgf: :label "Broschyr"@sv , "Brochure"@en . -:Atlas a :ComplexClass ; - rdfs:subClassOf :WrittenBook, :Cartography, :ImageContent . - -:Globe a :ComplexClass ; - rdfs:subClassOf :Cartography, :ObjectContent . - :Comic a :ComplexClass ; rdfs:subClassOf :IllustratedWork ; owl:intersectionOf ( @@ -160,6 +177,13 @@ prefix kbgf: ) . +:Atlas a :ComplexClass ; + rdfs:subClassOf :WrittenBook, :Cartography, :ImageContent . + +:Globe a :ComplexClass ; + rdfs:subClassOf :Cartography, :ObjectContent . + + # TODO: # * Link up *all* SAOGF-Musik(instrument) as hints for Music? @@ -290,3 +314,37 @@ prefix kbgf: :altLabel "Periodika"@sv ; :label "Tidskrift"@sv , "Periodical"@en . + +## +# Possible Serial combos: +# (Or prefer :collectsType (or :containsType (== :contentType?))?) +## Get associated GenreForm: +#### PREFIX : +#### SELECT ?collectstype ?gf (COUNT(?serial)AS ?count) { +#### ?serial a :Serial ; :collectsType ?collectstype ; :genreForm ?gf . FILTER isIRI(?gf) +#### } GROUP BY ?collectstype ?gf ORDER BY ?collectstype DESC(?count) +# +#:TextSerial # 683169 +# :WrittenBookSerial # 84 +# :NotatedMusicSerial # 402 +# +#:CartographySerial # 19 +# :AtlasSerial # 2 +# :SingleMapSerial # 20 +# +#:AudioSerial # 13 +# +# :MusicSerial # 6 +# +# :AudioBookSerial # 20 +# :SpokenWordSerial # 3 +# +#:MovingImageSerial # 24 +#:StillImageSerial # 3 +# +#:MultimediaSerial # 101 +# +#:MixedMaterialSerial # 5 +# +##:WorkSerial # 2 +##:ManuscriptTextSerial # 1 diff --git a/examples/typenormalization/marcmatches.ttl b/examples/typenormalization/marcmatches.ttl index 514574ae..0fed9644 100644 --- a/examples/typenormalization/marcmatches.ttl +++ b/examples/typenormalization/marcmatches.ttl @@ -547,7 +547,7 @@ marc:Globe # = marc:MapsMaterialType-d # 132 # Primary? #################### # Instance forms (not on works; but some should be): -marc:Diagram ; # 28 # Primary? +marc:Diagram # 28 # Primary? :closeMatch tgm:Diagram%20och%20tabeller . # marc:BibliographicData . # 26 # # marc:Photonegative . # 16 # Primary? From 425b0b27a86eb0220b66791a4d9fe4610e66d342 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Mon, 11 Nov 2024 17:53:59 +0100 Subject: [PATCH 29/69] Update type-normalization classes and genre/forms --- examples/typenormalization/README.md | 6 + examples/typenormalization/examples.trig | 84 +++++++ examples/typenormalization/examples.ttl | 102 -------- examples/typenormalization/test_categories.py | 186 ++++++++++---- .../vocab/newtypes}/classes.ttl | 144 +++++++---- .../vocab/newtypes}/genreforms.ttl | 4 + source/vocab/newtypes/kbgf.ttl | 7 +- source/vocab/newtypes/kbtf.ttl | 236 ++++++++++-------- .../vocab/newtypes}/rdamatches.ttl | 5 +- 9 files changed, 464 insertions(+), 310 deletions(-) create mode 100644 examples/typenormalization/README.md create mode 100644 examples/typenormalization/examples.trig delete mode 100644 examples/typenormalization/examples.ttl rename {examples/typenormalization => source/vocab/newtypes}/classes.ttl (72%) rename {examples/typenormalization => source/vocab/newtypes}/genreforms.ttl (91%) rename {examples/typenormalization => source/vocab/newtypes}/rdamatches.ttl (96%) diff --git a/examples/typenormalization/README.md b/examples/typenormalization/README.md new file mode 100644 index 00000000..9fa543fe --- /dev/null +++ b/examples/typenormalization/README.md @@ -0,0 +1,6 @@ +To run tests: + + $ pip install -r requirements.txt + $ make test + +(Add `-d` cmdline flag see full OWL-RL output.) diff --git a/examples/typenormalization/examples.trig b/examples/typenormalization/examples.trig new file mode 100644 index 00000000..422db911 --- /dev/null +++ b/examples/typenormalization/examples.trig @@ -0,0 +1,84 @@ +prefix rdfs: +prefix owl: +prefix : +prefix kbgf: +prefix kbrda: +prefix saogf: +prefix barngf: + + { a :WrittenBook } + { a :Text ; :genreForm kbgf:Book ; :contentType kbrda:Text } + { a :WrittenBook; :genreForm saogf:Romaner } + { a :Text ; :genreForm saogf:Romaner ; :contentType kbrda:Text } + + { a :Audiobook } + { a :Audio ; :genreForm kbgf:Book } + { a :Audiobook ; :genreForm saogf:Ljudb%C3%B6cker } + { a :Audio ; :genreForm saogf:Ljudb%C3%B6cker } + + { a :EBook } + { a :Electronic ; :instanceOf [ a :Book ] } + + { a :CDBook } + { a :Electronic ; :carrierType kbrda:AudioDisc ; :instanceOf [ a :Book ] } + + { a :ComputerGame } + { a :Multimedia ; :genreForm saogf:Datorspel } + + { a :Multimedia } + { a :ComputerGame } + + { a :Serial ; :genreForm saogf:Datorspel } + { a :Serial ; :genreForm saogf:Datorspel } + { a :ComputerGame } + + { a :Comic ; :genreForm kbgf:Comic } + { a :Text ; :genreForm kbgf:Comic ; :contentType kbrda:StillImage } + { a :Comic ; :genreForm saogf:Tecknade%20serier } + { a :Text ; :genreForm kbgf:Comic, saogf:Tecknade%20serier ; :contentType kbrda:StillImage } + + { a :ComicIssue } + { a :Text ; :genreForm kbgf:Comic, kbgf:Issue ; :contentType kbrda:StillImage } + + { a :Serial ; :genreForm saogf:Tecknade%20serier } + { a :Comic } + + { a :GraphicNovel } + { a :Text, :Book ; :genreForm saogf:Serieromaner , saogf:Romaner } + + { a :Atlas } + { a :Cartography ; :genreForm kbgf:Book ; :contentType kbrda:Text, kbrda:CartographicImage } + + { a :Globe } + { a :Cartography ; :contentType kbrda:CartographicThreeDimensionalForm } + + { a :Photograph ; :genreForm saogf:Portr%C3%A4tt } + { a :StillImage ; :genreForm saogf:Fotografier, saogf:Portr%C3%A4tt ; :contentType kbrda:StillImage } + +# TODO: :BrailleVolume :instanceOf [a :WrittenBook ] . +# a :WrittenBook ; +# :genreForm saogf:Punktskriftsb%C3%B6cker ; +# spec:query 'ASK { a :TactileBook }' . +# +# a :InteractiveObject ; :genreForm kbgf:TactileBook ; +# spec:query 'ASK { a :TactileBook }' . + +# Instance Types + +# TODO: Handmade (vs. Printed)? +#<66829ddb> a :Book ; :genreForm kbgf:Manuscript . +#<66829d88> a :HandmadeVolume ; :instanceOf <66829ddb> . +# +#<66829def> a :Text ; :genreForm kbgf:Decree . +#<66829d8a> a :HandmadeSheet ; :instanceOf <66829def> . +# +#<66829e07> a :StillImage ; :genreForm kbgf:ImagePoster . +#<66829d8c> a :PrintedSheet ; :instanceOf <66829e07> . +# +#<66829e1d> a :StillImage ; :genreForm kbgf:Poster . +#<66829d8f> a :PrintedSheet ; :instanceOf <66829e1d> . +#<66829d92> a :DigitalSheet ; :instanceOf <66829e1d> . +# +#<66829d94> a :HandmadeSheet ; :instanceOf [ a :StillImage ; :genreForm kbgf:MapInPlano ] . +#<66829d97> a :DigitalVolume ; :instanceOf [ a :Book ; :genreForm kbgf:Atlas ] . +#<66829d98> a :DigitalVolume ; :instanceOf [ a :AudioBook ; :genreForm kbgf:SpokenBook ] . diff --git a/examples/typenormalization/examples.ttl b/examples/typenormalization/examples.ttl deleted file mode 100644 index 67c098d1..00000000 --- a/examples/typenormalization/examples.ttl +++ /dev/null @@ -1,102 +0,0 @@ -## -# To run tests: -# -# $ pip install -r requirements.txt -# $ python test_categories.py -# -# (Add `-d` cmdline flag see full OWL-RL output.) - -prefix rdfs: -prefix owl: -prefix : -prefix kbgf: -prefix kbrda: -prefix saogf: -prefix barngf: -prefix spec: - - a :Text ; - :genreForm saogf:Romaner ; - spec:query 'ASK { a :WrittenBook }' , - 'ASK { :contentType kbrda:Text }' . - - a :Audio ; - :genreForm saogf:Romaner ; - spec:query 'ASK { a :Audiobook }' . - - a :Audio ; - :genreForm saogf:Ljudb\%C3\%B6cker ; - spec:query 'ASK { a :Audiobook }' . - -# TODO: :BrailleVolume :instanceOf [a :WrittenBook ] . -# a :WrittenBook ; -# :genreForm saogf:Punktskriftsb%C3%B6cker ; -# spec:query 'ASK { a :TactileBook }' . -# -# a :InteractiveObject ; :genreForm kbgf:TactileBook ; -# spec:query 'ASK { a :TactileBook }' . - - a :Electronic ; - :instanceOf ; - spec:query 'ASK { a :EBook }' . - - a :Electronic ; - :carrierType kbrda:AudioDisc ; - :instanceOf ; - spec:query 'ASK { a :CDBook }' . - - a :Multimedia ; - :genreForm saogf:Datorspel ; - spec:query 'ASK { a :ComputerGame }' . - - a :ComputerGame ; - spec:query 'ASK { a :Multimedia ; :genreForm saogf:Datorspel }' . - - a :Multimedia ; - spec:query 'ASK { FILTER NOT EXISTS { a :ComputerGame } }' . - - a :Serial ; - :genreForm saogf:Datorspel ; - spec:query 'ASK { FILTER NOT EXISTS { a :ComputerGame } }' . - - a :Text ; - :genreForm saogf:Tecknade%20serier ; - spec:query 'ASK { a :Comic }' . - - a :Text ; - :genreForm barngf:Tecknade%20serier ; - spec:query 'ASK { a :Comic }' , - 'ASK { :contentType kbrda:StillImage }' . - - a :ComicIssue ; - spec:query 'ASK { a :Text ; :contentType kbrda:StillImage }' . - #'ASK { FILTER NOT EXISTS { :genreForm ?gf } }' . - - a :ComicIssue ; - spec:query 'ASK { :contentType kbrda:StillImage }' . - - a :Serial ; - :genreForm saogf:Tecknade%20serier ; - spec:query 'ASK { FILTER NOT EXISTS { a :Comic } }' . - - a :Text ; - :genreForm saogf:Serieromaner ; - spec:query 'ASK { a :GraphicNovel }' , - 'ASK { a :Book }' . - - a :GraphicNovel ; - spec:query 'ASK { a :Text ; :genreForm saogf:Serieromaner }' , - 'ASK { :genreForm saogf:Romaner }' , - 'ASK { a :Book }' . - - a :Atlas ; - spec:query '''ASK { - a :Text ; - :contentType kbrda:Text, kbrda:CartographicImage - }''' . - - a :Globe ; - spec:query '''ASK { - a :Cartography ; - :contentType kbrda:CartographicThreeDimensionalForm - }''' . diff --git a/examples/typenormalization/test_categories.py b/examples/typenormalization/test_categories.py index c71acfbe..cdaf3206 100644 --- a/examples/typenormalization/test_categories.py +++ b/examples/typenormalization/test_categories.py @@ -1,31 +1,25 @@ import sys -from rdflib import Graph, Namespace, OWL -from owlrl import DeductiveClosure # type: ignore[import-untyped] -from owlrl.OWLRL import OWLRL_Semantics # type: ignore[import-untyped] +from rdflib import BNode, OWL, RDF, Dataset, Graph, Namespace, URIRef +from rdflib.graph import DATASET_DEFAULT_GRAPH_ID SPEC = Namespace('https://libris.kb.se/sys/spec/') -def reason(sources: list[str], base_uri: str) -> Graph: - graph = Graph() - for source in sources: - subgraph = Graph().parse(source, publicID=base_uri) - - if len(subgraph) > 400 and (None, OWL.equivalentClass, None) in subgraph: - # Too much for OWL-RL (on a laptop in 2024); drop non-relevant axioms... - subgraph.update('''delete { ?s ?p ?o } where { - ?s ?p ?o - filter(?p not in (rdfs:subPropertyOf, - owl:inverseOf, - owl:propertyChainAxiom, - rdf:first, rdf:rest)) - }''') - - graph |= subgraph - for pfx, ns in subgraph.namespace_manager.namespaces(): - graph.namespace_manager.bind(pfx, ns) +def reason(graph: Graph) -> None: + if '--reasonable' in sys.argv[1:]: + import reasonable # type: ignore[import-untyped] + + r = reasonable.PyReasoner() + r.from_graph(graph) + for triple in r.reason(): + graph.add(triple) + + return + from owlrl import DeductiveClosure # type: ignore[import-untyped] + from owlrl.OWLRL import OWLRL_Semantics # type: ignore[import-untyped] + DeductiveClosure( OWLRL_Semantics, improved_datatypes=True, @@ -34,27 +28,112 @@ def reason(sources: list[str], base_uri: str) -> Graph: datatype_axioms=True, ).expand(graph) - return graph +def drop_too_much(graph: Graph) -> None: + if len(graph) > 400 and (None, OWL.equivalentClass, None) in graph: + # A bit too much for OWL-RL (on a laptop in 2024); drop non-relevant axioms... + graph.update( + '''delete { ?s ?p ?o } where { + ?s ?p ?o + filter(?p not in (rdfs:subPropertyOf, + owl:inverseOf, + owl:propertyChainAxiom, + rdf:first, rdf:rest)) + }''' + ) + + +def build_tests(ds: Dataset, tbox: Graph, base_uri: str) -> tuple: + tests: dict = {} + variants = {'cmp', 'exp', 'cmp-ext', 'exp-ext', 'neg'} + + cmps = tbox | Graph() + exps = tbox | Graph() + cmp_exts = tbox | Graph() + exp_exts = tbox | Graph() + + for g in ds.graphs(): + if g.identifier == DATASET_DEFAULT_GRAPH_ID: + continue + + s = str(g.identifier).removeprefix(base_uri) + if '/' not in s: + continue + + name, leaf = s.rsplit('/', 1) + if leaf in variants: + tests.setdefault(name, {})[leaf] = g + match leaf: + case 'cmp': + cmps |= g + case 'exp': + exps |= g + case 'cmp-ext': + cmp_exts |= g + case 'exp-ext': + exp_exts |= g + + reason(cmps) + reason(exps) + reason(cmp_exts) + reason(exp_exts) + + return tests, cmps, exps, cmp_exts, exp_exts + + +def test_contained_in(knowledge, subgraph): + ok = True + diffing = Graph() + none_blank = lambda t: None if isinstance(t, BNode) else t + for spo in subgraph: + s, p, o = spo + # TODO: too smushed; may give false positives; use C14N instead... + if (none_blank(s), p, none_blank(o)) not in knowledge: + ok = False + diffing.add(spo) + + diffing.namespace_manager = knowledge.namespace_manager + + return ok, diffing + + +def run_tests(ds: Dataset, tbox: Graph, base_uri: str) -> bool: + tests, cmps, exps, cmp_exts, exp_exts = build_tests(ds, tbox, base_uri) -def run_tests(graph: Graph, base_uri: str) -> bool: total = 0 passed = 0 - for subject, query_literal in sorted(graph.subject_objects(SPEC.query)): - query = str(query_literal) - result = graph.query(f'BASE <{base_uri}> {query}') - - total += 1 - - if result.askAnswer: - status = "OK" - passed += 1 - else: - status = "FAIL" - - s = str(subject).removeprefix(base_uri) - print(status, f"<{s}>", query, sep="\t") + for name, graphs in tests.items(): + for variant, contained_in_variant, knowledge in [ + ('cmp', 'exp', exps), + ('exp', 'cmp', cmps), + ('cmp-ext', 'exp-ext', exp_exts), + ('exp-ext', 'cmp-ext', cmp_exts), + ]: + if variant not in graphs: + continue + + if contained_in_variant not in graphs: + continue + + subgraph = graphs[variant] + ok, diffing = test_contained_in(knowledge, subgraph) + total += 1 + if ok: + passed += 1 + label = f"<{name}/{contained_in_variant}> implies <{name}/{variant}>" + report(label, ok, diffing, base_uri) + + if 'exp-neg' in graphs: + neg = graphs['exp-neg'] + total += 1 + ok = True + for spo in neg: + if spo in exps: + ok = False + if ok: + passed += 1 + report(name, ok, neg, base_uri, "negative") print() print(f"Passed {passed} of {total} tests.") @@ -66,26 +145,37 @@ def run_tests(graph: Graph, base_uri: str) -> bool: return True +def report(name: str, ok: bool, diffing: Graph, base_uri: str, note="") -> None: + note = f" [{note}]" if note else "" + if not ok: + print() + status = "OK" if ok else "FAIL" + print(f"{status}\t{name}{note}") + if not ok and len(diffing) > 0: + ttl = diffing.serialize(format='turtle', publicID=base_uri) + print(ttl.split('\n\n', 1)[1]) + + def main(): sources = [ '../../source/vocab/concepts.ttl', - 'classes.ttl', - 'rdamatches.ttl', - 'genreforms.ttl', + '../../source/vocab/newtypes/classes.ttl', + '../../source/vocab/newtypes/rdamatches.ttl', + '../../source/vocab/newtypes/genreforms.ttl', 'cache/saogf.ttl', - 'examples.ttl', ] base_uri = "http://libris.kb.se/sys/examples/typenormalization/" + tbox = Graph() + for source in sources: + graph = Graph().parse(source, publicID=base_uri) + drop_too_much(graph) + tbox |= graph - graph = reason(sources, base_uri=base_uri) - - if '-d' in sys.argv[1:]: - print('#' * 72) - print(graph.serialize(format='turtle')) - print('#' * 72) + ds = Dataset(default_union=False) + ds.parse('examples.trig', publicID=base_uri) - if not run_tests(graph, base_uri): + if not run_tests(ds, tbox, base_uri): sys.exit(1) diff --git a/examples/typenormalization/classes.ttl b/source/vocab/newtypes/classes.ttl similarity index 72% rename from examples/typenormalization/classes.ttl rename to source/vocab/newtypes/classes.ttl index 190f826f..61641cad 100644 --- a/examples/typenormalization/classes.ttl +++ b/source/vocab/newtypes/classes.ttl @@ -11,8 +11,6 @@ prefix kbrda: prefix kbgf: -:ComplexClass rdfs:subClassOf owl:Class . - :Text rdfs:subClassOf :TextContent . :StillImage rdfs:subClassOf :ImageContent . :TextWithImages rdfs:subClassOf :TextContent, :ImageContent . @@ -38,8 +36,8 @@ prefix kbgf: "Bok"@sv ; :pluralLabel "Böcker"@sv . -:WrittenBook a :ComplexClass ; - :category :pending ; +:WrittenBook a owl:Class ; + :category :pending, :complex ; rdfs:subClassOf :Book ; owl:intersectionOf ( :Text @@ -50,8 +48,8 @@ prefix kbgf: "Skriven bok"@sv ; :altLabel "Bok"@sv, "Book"@en . -:Audiobook a :ComplexClass ; - :category :pending ; +:Audiobook a owl:Class ; + :category :pending, :complex ; rdfs:subClassOf :Book , [ owl:onProperty :genreForm ; owl:hasValue saogf:Ljudb%C3%B6cker ] , @@ -64,8 +62,8 @@ prefix kbgf: :label "Ljudbok"@sv , "Audiobook"@en . -:TactileBook a :ComplexClass ; - :category :pending ; +:TactileBook a owl:Class ; + :category :pending, :complex ; rdfs:subClassOf :Book ; owl:intersectionOf ( :Tactile @@ -77,30 +75,35 @@ prefix kbgf: "Taktil bok"@sv . -:NonBookText a :ComplexClass ; - :category :pending ; +:NonBookText a owl:Class ; + :category :pending, :complex ; ptg:abstract true ; rdfs:subClassOf :Text ; :label "Non-book text"@en , "Enskild text"@sv . -:Article a :ComplexClass ; - :category :pending ; +:Article a owl:Class ; + :category :pending, :complex ; rdfs:subClassOf :NonBookText ; owl:equivalentClass bibo:Article ; :label "Artikel"@sv , "Article"@en . -:Issue a :ComplexClass ; - :category :pending ; +:Issue a owl:Class ; + :category :pending, :complex ; rdfs:subClassOf :NonBookText ; # ambiguous; just :Text ? owl:equivalentClass bibo:Issue ; + owl:intersectionOf ( + :Text + [ owl:onProperty :genreForm ; + owl:hasValue kbgf:Issue ] + ) ; :label "Tidskriftsnummer"@sv , "Periodical Issue"@en . -:Poster a :ComplexClass ; - :category :pending ; +:Poster a owl:Class ; + :category :pending, :complex ; # TODO: is a TextPoster a kind of ImagePoster? #ptg:abstract true ; #rdfs:subClassOf :StillImage ; @@ -113,17 +116,31 @@ prefix kbgf: rdfs:label "Affisch"@sv, "Poster"@en ; :pluralLabel "Affischer"@sv . -:ImagePoster a :ComplexClass ; +:Photograph a owl:Class ; + :category :pending, :complex ; + #rdfs:subClassOf :StillImage ; + owl:equivalentClass sdo:Photograph ; + owl:intersectionOf ( + :StillImage + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Fotografier ] + ) ; + rdfs:label "Fotografi"@sv, "Photograph"@en ; + :pluralLabel "Fotografier"@sv . + +:ImagePoster a owl:Class ; + :category :pending, :complex ; rdfs:subClassOf :Poster , :ImageContent ; rdfs:label "Bildaffisch"@sv, "Image Poster"@en . -:TextPoster a :ComplexClass ; +:TextPoster a owl:Class ; + :category :pending, :complex ; rdfs:subClassOf :Poster , :TextContent ; rdfs:label "Textaffisch"@sv, "Text Poster"@en . -:IllustratedWork a :ComplexClass ; - :category :pending ; +:IllustratedWork a owl:Class ; + :category :pending, :complex ; rdfs:subClassOf :ImageContent ; owl:intersectionOf ( :Visual @@ -133,7 +150,8 @@ prefix kbgf: :label "Illustrerat verk"@sv , "Illustrated Work"@en . -:Brochure a :ComplexClass ; +:Brochure a owl:Class ; + :category :pending, :complex ; rdfs:subClassOf :NonBookText ; # ambiguous; just :Text ? owl:intersectionOf ( :Text @@ -143,7 +161,8 @@ prefix kbgf: :label "Broschyr"@sv , "Brochure"@en . -:Comic a :ComplexClass ; +:Comic a owl:Class ; + :category :pending, :complex ; rdfs:subClassOf :IllustratedWork ; owl:intersectionOf ( :Text @@ -153,7 +172,8 @@ prefix kbgf: :label "Serietidning"@sv , "Comic"@en . -:ComicIssue a :ComplexClass ; +:ComicIssue a owl:Class ; + :category :pending, :complex ; owl:intersectionOf ( :Comic :Issue @@ -161,15 +181,17 @@ prefix kbgf: :label "Serietidningsnummer"@sv , "Comic Issue"@en . -:ComicStory a :ComplexClass ; +:ComicStory a owl:Class ; + :category :pending, :complex ; owl:intersectionOf ( :Comic [ owl:onProperty :genreForm ; owl:hasValue kbgf:ShortStory ] ) . -:GraphicNovel a :ComplexClass ; - rdfs:subClassOf :ComicIssue ; +:GraphicNovel a owl:Class ; + :category :pending, :complex ; + rdfs:subClassOf :ComicIssue ; # TODO: really ComicIssue? owl:intersectionOf ( :Text [ owl:onProperty :genreForm ; @@ -177,18 +199,36 @@ prefix kbgf: ) . -:Atlas a :ComplexClass ; - rdfs:subClassOf :WrittenBook, :Cartography, :ImageContent . +:Atlas a owl:Class ; + :category :pending, :complex ; + rdfs:subClassOf :WrittenBook, :Cartography ; + owl:intersectionOf ( + #:WrittenBook + :Cartography + [ owl:onProperty :genreForm ; + owl:hasValue kbgf:Book ] + [ owl:onProperty :contentType ; + owl:hasValue kbrda:Text ] + [ owl:onProperty :contentType ; + owl:hasValue kbrda:CartographicImage ] + ) . -:Globe a :ComplexClass ; - rdfs:subClassOf :Cartography, :ObjectContent . +:Globe a owl:Class ; + :category :pending, :complex ; + # TODO: make these also imply the intersection? + #rdfs:subClassOf :Cartography, :ObjectContent ; + owl:intersectionOf ( + :Cartography + [ owl:onProperty :contentType ; + owl:hasValue kbrda:CartographicThreeDimensionalForm ] + ) . # TODO: # * Link up *all* SAOGF-Musik(instrument) as hints for Music? -:PerformedMusic a :ComplexClass ; - :category :pending ; +:PerformedMusic a owl:Class ; + :category :pending, :complex ; owl:intersectionOf ( :Music [ owl:onProperty :genreForm ; @@ -198,8 +238,8 @@ prefix kbgf: "Framförd musik"@sv . -:Film a :FormClass ; - :category :pending ; +:Film a owl:Class ; + :category :pending, :complex ; owl:intersectionOf ( :MovingImage [ owl:onProperty :genreForm ; @@ -210,7 +250,8 @@ prefix kbgf: "Film"@en . -:ComputerGame a :ComplexClass ; +:ComputerGame a owl:Class ; + :category :pending, :complex ; owl:intersectionOf ( :Multimedia [ owl:onProperty :genreForm ; @@ -220,30 +261,35 @@ prefix kbgf: # Complex Instance Classes (Single Unit) -:PrintedVolume a :ComplexClass ; +:PrintedVolume a owl:Class ; + :category :pending, :complex ; owl:intersectionOf ( :Print [ owl:onProperty :carrierType ; owl:hasValue kbrda:Volume ] ) . -:CDBook a :ComplexClass ; +:CDBook a owl:Class ; + :category :pending, :complex ; owl:intersectionOf ( + :Electronic [ owl:onProperty :carrierType ; owl:hasValue kbrda:AudioDisc ] [ owl:onProperty :instanceOf ; owl:someValuesFrom :Book ] ) . -:EBook a :ComplexClass ; +:EBook a owl:Class ; + :category :pending, :complex ; owl:intersectionOf ( - :Electronic # DigitalResource + :Electronic # :DigitalResource [ owl:onProperty :instanceOf ; owl:someValuesFrom :Book ] ) . # TODO: used by whom? Not Webbsök... -#:EAudioBook a :ComplexClass ; +#:EAudioBook a owl:Class ; +# :category :pending, :complex ; # owl:intersectionOf ( # :Electronic # [ owl:onProperty :instanceOf ; @@ -255,7 +301,7 @@ prefix kbgf: # Collecting Work Classes -:CollectingResource a :Class ; +:CollectingResource a owl:Class ; :category :pending ; ptg:abstract true ; :label "Collecting Resource"@en , @@ -263,8 +309,8 @@ prefix kbgf: :Collection rdfs:subClassOf :CollectingResource . -:Archive a :ComplexClass ; - :category :pending ; +:Archive a owl:Class ; + :category :pending, :complex ; rdfs:subClassOf :CollectingResource ; owl:intersectionOf ( :Collection @@ -277,8 +323,8 @@ prefix kbgf: :Integrating rdfs:subClassOf :CollectingResource ; ptg:abstract true . -:Database a :ComplexClass ; - :category :pending ; +:Database a owl:Class ; + :category :pending, :complex ; owl:intersectionOf ( :Integrating [ owl:onProperty :genreForm ; @@ -290,8 +336,8 @@ prefix kbgf: # Serial Work Classes -:SerialPublication a :ComplexClass ; - :category :pending ; +:SerialPublication a owl:Class ; + :category :pending, :complex ; rdfs:subClassOf :CollectingResource ; # Abstraction owl:intersectionOf ( :Serial @@ -301,8 +347,8 @@ prefix kbgf: :label "Seriell publikation"@sv , "Serial Publication"@en . -:Periodical a :ComplexClass ; - :category :pending, :primary ; +:Periodical a owl:Class ; + :category :pending, :primary, :complex ; rdfs:seeAlso ; rdfs:subClassOf :SerialPublication ; owl:intersectionOf ( diff --git a/examples/typenormalization/genreforms.ttl b/source/vocab/newtypes/genreforms.ttl similarity index 91% rename from examples/typenormalization/genreforms.ttl rename to source/vocab/newtypes/genreforms.ttl index e5220651..70d264ef 100644 --- a/examples/typenormalization/genreforms.ttl +++ b/source/vocab/newtypes/genreforms.ttl @@ -34,6 +34,10 @@ kbgf:ShortStory a :GenreForm ; :narrowMatch saogf:Noveller, saogf:Serienoveller . +kbgf:Issue a :GenreForm . # TODO: matches... + +kbgf:Photograph :exactMatch saogf:Fotografier, tgm:Fotografier . + # TODO: trying to map *relevant* MARC GT... kbgf:Fiction a :GenreForm ; diff --git a/source/vocab/newtypes/kbgf.ttl b/source/vocab/newtypes/kbgf.ttl index c7e89dc9..158bff11 100644 --- a/source/vocab/newtypes/kbgf.ttl +++ b/source/vocab/newtypes/kbgf.ttl @@ -20,11 +20,13 @@ prefix kbrda: base +# FIXME: replace this file with genreforms.ttl ! + # It is a Genre if *either*: # - it is not enough to determine under which Class or Form it belongs (it is a base); # - *or* it represents a combination of Class or Form and a Genre (it adds a nuance). -# TODO: replace subClassOf with broader and equivalentClass with broadMatch +# TODO: replace subClassOf with broader and equivalentClass with closeMatch/broadMatch g:AbstractSummary a :Genre ; rdfs:subClassOf kbv:NonBookText ; @@ -219,7 +221,8 @@ g:Newspaper a :Genre ; rdfs:subClassOf kbv:Periodical ; skos:exactMatch saogf:Dagstidningar ; :prefLabel "Dagstidning"@sv , - "Newspaper"@en . + "Newspaper"@en ; + :pluralLabel "Dagstidningar"@sv . g:NewspaperIssue a :Genre ; rdfs:subClassOf kbv:Issue ; diff --git a/source/vocab/newtypes/kbtf.ttl b/source/vocab/newtypes/kbtf.ttl index 01df2ce5..8a1942e7 100644 --- a/source/vocab/newtypes/kbtf.ttl +++ b/source/vocab/newtypes/kbtf.ttl @@ -18,13 +18,21 @@ prefix kbrda: base -# TODO: RDA Content Types (some are rebuses with gf:s or instance types) +# FIXME: replace this file with classes.ttl ! + +# [x] TODO (done in classes?): RDA Content Types (some are rebuses with gf:s or instance types) # TODO: make kbrda:* sameAs or bases for (basic) types (possibly abstract)? # *Some* are still better as "genreForm" though; so keep all as such (bound as genres for exact-matching types with a Restriction)? # TODO: s/a :Form/a :GenreFormClass/g # ?gfcls a :GenreFormClass ; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty :genreForm ; owl:hasValue ?gfcls ] . +# TODO: complement SensoryForm with Affordance? +#kbaf:Listening a :Affordance . +#kbaf:Viewing a :Affordance . +#kbaf:Reading a :Affordance . +#kbaf:Touching a :Affordance . + # kbv:ArchivalUnit # TODO: remove from vocab @@ -42,18 +50,6 @@ kbv:Cartography a :Class ; :prefLabel "Kartografiskt verk"@sv , "Cartography"@en . -f:CartographicDataset a :Form; - skos:exactMatch kbrda:CartographicDataset; - rdfs:subClassOf kbv:Cartography, kbv:Dataset ; - rdfs:label "Kartografiskt dataset"@sv , "Cartographic dataset"@en . - -f:CartographicImage a :Form; - skos:exactMatch kbrda:CartographicImage; - #skos:closeMatch kbv:Map ; - rdfs:subClassOf kbv:Cartography, kbv:StillImage ; - rdfs:label "Kartografisk bild"@sv , "Cartographic image"@en ; - skos:altLabel "Karta"@sv, "Kartor in plano"@sv . - # FIXME: remove instancetype kbv:Map ; compute on revert (if work is kbv:Cartography, prefer Map over all non-electronic?) # TODO: == Cartography #f:Map a :Form ; @@ -66,31 +62,8 @@ f:Atlas a :Form ; rdfs:label "Atlas"@sv , "Atlas"@en . -f:CartographicMovingImage a :Form; - skos:exactMatch kbrda:CartographicMovingImage; - rdfs:subClassOf kbv:Cartography, kbv:MovingImage ; - rdfs:label "Kartografisk rörlig bild"@sv , "Cartographic moving image"@en . - -f:CartographicTactileImage a :Form; - skos:exactMatch kbrda:CartographicTactileImage; - rdfs:subClassOf kbv:Cartography, kbv:StillImage ; - rdfs:label "Kartografisk taktil bild"@sv , "Cartographic tactile image"@en . - -f:CartographicTactileObject a :Form; - skos:exactMatch kbrda:CartographicTactileThreeDimensionalForm; - rdfs:subClassOf kbv:Cartography, f:TactileObject ; - rdfs:label "Kartografiskt taktilt objekt"@sv , - "Cartographic Tactile Object"@en . - -#f:TactileCartography a :Form ; -# rdfs:subClassOf kbv:Cartography , -# kbv:Tactile ; -# skos:editorialNote "TODO: edge case? Force a choice of primary purpose of expression? This is not a11y, that's about the instance. Mixed purposes can be solved by primary purpose as type and additional \"color\" as genre."@en ; -# rdfs:label "Taktilt kartografiskt verk"@sv , -# "Tactile Cartography"@en . - f:CartographicObject a :Form; - skos:exactMatch kbrda:CartographicThreeDimensionalForm; + #skos:exactMatch kbrda:CartographicThreeDimensionalForm; rdfs:subClassOf kbv:Cartography, kbv:Object ; rdfs:label "Kartografiskt objekt"@sv , "Cartographic Object"@en . @@ -106,36 +79,6 @@ kbv:Tactile a :SensoryForm ; :prefLabel "Tactile"@en , "Taktilt verk"@sv . -f:TactileImage a :Form ; - skos:exactMatch kbrda:TactileImage; - rdfs:subClassOf kbv:StillImage, kbv:Tactile ; # _:TactileInstanceRestriction . - rdfs:label "Taktil bild"@sv , "Tactile image"@en . - -f:TactileNotatedMusic a :Form ; - skos:exactMatch kbrda:TactileNotatedMusic; - rdfs:subClassOf kbv:NotatedMusic, kbv:Tactile ; # , _:TactileInstanceRestriction . - rdfs:label "Taktil noterad musik"@sv , "Tactile notated music"@en . - -f:TactileNotatedMovement a :Form ; - skos:exactMatch kbrda:TactileNotatedMovement; - rdfs:subClassOf kbv:NotatedMovement, kbv:Tactile ; # , _:TactileInstanceRestriction . - rdfs:label "Taktil noterad rörelse"@sv , "Tactile notated movement"@en . - -f:TactileText a :Form ; - skos:exactMatch kbrda:TactileText; - rdfs:subClassOf kbv:Text, kbv:Tactile ; # , _:TactileInstanceRestriction . - rdfs:label "Taktil text"@sv , "Tactile text"@en . - -f:TactileObject a :Form ; - skos:exactMatch kbrda:TactileThreeDimensionalForm; - rdfs:subClassOf kbv:Object, kbv:Tactile ; # , _:TactileInstanceRestriction , - rdfs:label "Taktilt objekt"@sv , - "Tactile Object"@en . - -#_:TactileInstanceRestriction a owl:Restriction ; -# owl:onProperty kbv:hasInstance; -# owl:allValueFrom kbv:Tactile . - kbv:Dataset a :Class ; rdfs:subClassOf f:Integrating ; @@ -143,52 +86,47 @@ kbv:Dataset a :Class ; "Dataset"@sv . f:ComputerDataset a :Form; - skos:exactMatch kbrda:ComputerDataset; + #skos:exactMatch kbrda:ComputerDataset; rdfs:subClassOf kbv:Dataset . kbv:Text a :Class ; - skos:exactMatch kbrda:Text ; + #skos:exactMatch kbrda:Text ; # TODO: alternative bound genreForm #rdfs:subClassOf [ a owl:Restriction ; # owl:onProperty :genreForm ; owl:hasValue kbrda:Text ] ; - :altLabel "Text"@en , - "Text"@sv ; - :prefLabel "Linguistic work"@en , - "Språkligt verk"@sv . + rdfs:label "Text"@en , "Text"@sv . kbv:StillImage a :Class ; rdfs:subClassOf kbv:Visual ; - skos:exactMatch kbrda:StillImage , saogf:Bilder ; + #skos:exactMatch kbrda:StillImage ; + skos:exactMatch saogf:Bilder ; rdfs:label "Still Image"@en , - "Stillbild"@sv . + "Stillbild"@sv ; + :pluralLabel "Stillbilder"@sv . # Bilder kbv:Music a :Class ; skos:exactMatch f:Music ; rdfs:label "Music"@en , "Musik"@sv . +# TODO: base GenreForm? +#kbv:Radio a :Class ; :label "Radio"@sv . +#kbv:TV a :Class ; :label "TV"@sv . + kbv:MovingImage a :Class ; rdfs:subClassOf kbv:Visual ; rdfs:label "Moving Image"@en , "Rörlig bild"@sv . -#kbv:ThreeDimensionalMovingImage -# skos:exactMatch kbrda:ThreeDimensionalMovingImage ; -# :prefLabel "Tredimensionell rörlig bild", "Three-dimensional moving image"@en . -# -#kbv:TwoDimensionalMovingImage -# skos:exactMatch kbrda:TwoDimensionalMovingImage ; -# :prefLabel "Tvådimensionell rörlig bild", "Two-dimensional moving image"@en . - kbv:NotatedMusic a :Class ; - skos:exactMatch kbrda:NotatedMusic ; + #skos:exactMatch kbrda:NotatedMusic ; rdfs:subClassOf kbv:Music ; skos:exactMatch saogf:Musikalier ; skos:prefLabel "Musikalie"@sv , "Notated Music"@en . kbv:NotatedMovement a :Class ; - skos:exactMatch kbrda:NotatedMovement ; + #skos:exactMatch kbrda:NotatedMovement ; rdfs:label "Notated movement"@en , "Noterad rörelse"@sv . @@ -202,18 +140,18 @@ kbv:SerialPublication a :Class ; kbv:IllustratedWork a :Class ; :category :pending, :concretetype ; rdfs:subClassOf kbv:Visual ; - skos:broadMatch kbrda:StillImage ; + #skos:broadMatch kbrda:StillImage ; skos:exactMatch saogf:Illustrerade\%20verk ; rdfs:label "Illustrerat verk"@sv , "Illustrated Work"@en . kbv:Book a :Class ; ptg:abstract true ; - :category :pending, :concretetype ; + :category :pending ; owl:equivalentClass bibo:Book, sdo:Book ; - rdfs:subClassOf kbv:Text ; - rdfs:label "Book"@en , - "Bok"@sv . + :label "Book"@en , + "Bok"@sv ; + :pluralLabel "Böcker"@sv . kbv:NonBookText a :Class ; :category :pending, :concretetype ; @@ -255,21 +193,26 @@ kbv:MonographicSeries a :Class ; kbv:Object a :Class ; :category :ConcreteType ; - skos:exactMatch kbrda:ThreeDimensionalForm ; + #skos:exactMatch kbrda:ThreeDimensionalForm ; # TODO: rename or altLabel? owl:equivalentClass kbv:ObjectByPurpose ; :prefLabel "Intensional Object"@en , "Syftesmässig sak"@sv . kbv:WrittenBook a :Class ; :category :pending, :concretetype ; - skos:broadMatch kbrda:Text ; rdfs:subClassOf kbv:Book ; - rdfs:label "Written book"@en , + owl:intersectionOf ( + kbv:Text + [ owl:onProperty :genreForm ; + owl:hasValue g:Book ] + ) ; + skos:narrowMatch barngf:Kapitelb\%C3\%B6cker ; + :label "Written book"@en , "Skriven bok"@sv ; - skos:altLabel "Bok"@sv, "Book"@en . + :altLabel "Bok"@sv, "Book"@en . kbv:Audio a :SensoryForm ; - skos:exactMatch kbrda:Sounds ; + #skos:exactMatch kbrda:Sounds ; rdfs:label "Audio"@en , "Ljud"@sv . @@ -279,7 +222,7 @@ kbv:BookWithImages a :Class ; skos:editorialNote "TODO: PictorialWork?"@en ; skos:scopeNote "Gör ingen skillnad mellan bilder som är integral del av verket (där nya bilder är ett nytt verk) och texter där bilderna är kompletterande (). Sådana skillnader kan anges som genre/form."@sv ; skos:broadMatch saogf:Bildverk ; - skos:narrowMatch barngf:Bilderb%C3%B6cker , barngf:Kapitelb\%C3\%B6cker ; + skos:narrowMatch barngf:Bilderb%C3%B6cker ; rdfs:label "Bok med bilder"@sv , "Book With Images"@en . @@ -320,7 +263,8 @@ kbv:Periodical a :Class ; skos:exactMatch saogf:Periodika ; :altLabel "Periodika"@sv ; rdfs:label "Tidskrift"@sv , - "Periodical"@en . + "Periodical"@en ; + :pluralLabel "Tidskrifter"@sv . kbv:Film a :Class ; :category :pending, :concretetype ; @@ -370,7 +314,7 @@ kbv:TactileBook a :Class ; rdfs:subClassOf kbv:Book , kbv:Tactile ; skos:editorialNote "TODO: differentiate between \"filtbok\" och \"punktskriftsbok\"?"@en ; - skos:broadMatch kbrda:TactileText ; + #skos:broadMatch kbrda:TactileText ; skos:narrowMatch saogf:Punktskriftsb\%C3\%B6cker ; rdfs:label "Tactile Book"@en , "Taktil bok"@sv . @@ -436,7 +380,7 @@ f:ComputerCode a :Form ; "Computer Code"@en . f:ComputerProgram a :Form ; - skos:exactMatch kbrda:ComputerProgram; + #skos:exactMatch kbrda:ComputerProgram; rdfs:subClassOf kbv:Software ; rdfs:label "Datorprogram"@sv , "Computer Program"@en . @@ -465,7 +409,8 @@ f:Handwriting a :Form ; kbv:Text ; skos:exactMatch saogf:Handskrifter ; rdfs:label "Handskrift"@sv , - "Handwriting"@en . + "Handwriting"@en ; + :pluralLabel "Handskrifter"@sv . f:Illustration a :Form ; rdfs:subClassOf kbv:StillImage ; @@ -507,7 +452,7 @@ f:Painting a :Form ; kbv:PerformedMusic a :Class ; :category :pending, :concretetype ; - skos:exactMatch kbrda:PerformedMusic ; + #skos:exactMatch kbrda:PerformedMusic ; rdfs:subClassOf kbv:Audio , kbv:Music ; rdfs:label "Performed Music"@en , @@ -524,7 +469,8 @@ f:Photograph a :Form ; rdfs:subClassOf kbv:StillImage ; skos:exactMatch saogf:Fotografier ; rdfs:label "Fotografi"@sv , - "Photograph"@en . + "Photograph"@en ; + :pluralLabel "Fotografier"@sv . f:PictureDictionary a :Form ; rdfs:subClassOf kbv:Lexicon , @@ -548,16 +494,17 @@ f:Poster a :Form ; rdfs:subClassOf kbv:StillImage ; owl:equivalentClass sdo:Poster ; skos:exactMatch saogf:Affischer ; - rdfs:label "Affisch"@sv, "Poster"@en . + rdfs:label "Affisch"@sv, "Poster"@en ; + :pluralLabel "Affischer"@sv . f:ImagePoster a :Form ; rdfs:subClassOf f:Poster ; - skos:broadMatch kbrda:StillImage ; + #skos:broadMatch kbrda:StillImage ; rdfs:label "Bildaffisch"@sv, "Image Poster"@en . f:TextPoster a :Form ; rdfs:subClassOf f:Poster ; - skos:broadMatch kbrda:Text ; + #skos:broadMatch kbrda:Text ; rdfs:label "Textaffisch"@sv, "Text Poster"@en . f:ImageAndTextPoster a :Form ; @@ -583,7 +530,7 @@ f:SpokenBook a :Form ; "Spoken Book"@en . f:SpokenWord a :Form ; - skos:exactMatch kbrda:SpokenWord ; + #skos:exactMatch kbrda:SpokenWord ; rdfs:subClassOf kbv:Text , kbv:Audio ; rdfs:label "Tal"@sv , @@ -626,3 +573,80 @@ f:Website a :Form ; skos:exactMatch saogf:Webbplatser ; rdfs:label "Webbplats"@sv , "Website"@en . + +## Just RDA content types (handled by rdamatches IF used by some concrete/complex type) +#f:CartographicDataset a :Form; +# skos:exactMatch kbrda:CartographicDataset; +# rdfs:subClassOf kbv:Cartography, kbv:Dataset ; +# rdfs:label "Kartografiskt dataset"@sv , "Cartographic dataset"@en . +# +#f:CartographicImage a :Form; +# skos:exactMatch kbrda:CartographicImage; +# #skos:closeMatch kbv:Map ; +# rdfs:subClassOf kbv:Cartography, kbv:StillImage ; +# rdfs:label "Kartografisk bild"@sv , "Cartographic image"@en ; +# skos:altLabel "Karta"@sv, "Kartor in plano"@sv ; +# :pluralLabel "Kartor"@sv . +# +#f:CartographicMovingImage a :Form; +# skos:exactMatch kbrda:CartographicMovingImage; +# rdfs:subClassOf kbv:Cartography, kbv:MovingImage ; +# rdfs:label "Kartografisk rörlig bild"@sv , "Cartographic moving image"@en . +# +#f:TactileCartography a :Form ; +# rdfs:subClassOf kbv:Cartography , +# kbv:Tactile ; +# skos:narrowMatch kbrda:CartographicTactileImage, kbdra:CartographicTactileThreeDimensionalForm ; #? +# skos:editorialNote "TODO: edge case? Force a choice of primary purpose of expression? This is not a11y, that's about the instance. Mixed purposes can be solved by primary purpose as type and additional \"color\" as genre."@en ; +# rdfs:label "Taktilt kartografiskt verk"@sv , +# "Tactile Cartography"@en . +# +#f:CartographicTactileImage a :Form; +# skos:exactMatch kbrda:CartographicTactileImage; +# rdfs:subClassOf kbv:Cartography, kbv:StillImage ; +# rdfs:label "Kartografisk taktil bild"@sv , "Cartographic tactile image"@en . +# +#f:CartographicTactileObject a :Form; +# skos:exactMatch kbrda:CartographicTactileThreeDimensionalForm; +# rdfs:subClassOf kbv:Cartography, f:TactileObject ; +# rdfs:label "Kartografiskt taktilt objekt"@sv , +# "Cartographic Tactile Object"@en . +# +#f:TactileImage a :Form ; +# skos:exactMatch kbrda:TactileImage; +# rdfs:subClassOf kbv:StillImage, kbv:Tactile ; # _:TactileInstanceRestriction . +# rdfs:label "Taktil bild"@sv , "Tactile image"@en . +# +#f:TactileNotatedMusic a :Form ; +# skos:exactMatch kbrda:TactileNotatedMusic; +# rdfs:subClassOf kbv:NotatedMusic, kbv:Tactile ; # , _:TactileInstanceRestriction . +# rdfs:label "Taktil noterad musik"@sv , "Tactile notated music"@en . +# +#f:TactileNotatedMovement a :Form ; +# skos:exactMatch kbrda:TactileNotatedMovement; +# rdfs:subClassOf kbv:NotatedMovement, kbv:Tactile ; # , _:TactileInstanceRestriction . +# rdfs:label "Taktil noterad rörelse"@sv , "Tactile notated movement"@en . +# +#f:TactileText a :Form ; +# skos:exactMatch kbrda:TactileText; +# rdfs:subClassOf kbv:Text, kbv:Tactile ; # , _:TactileInstanceRestriction . +# rdfs:label "Taktil text"@sv , "Tactile text"@en . +# +#f:TactileObject a :Form ; +# skos:exactMatch kbrda:TactileThreeDimensionalForm; +# rdfs:subClassOf kbv:Object, kbv:Tactile ; # , _:TactileInstanceRestriction , +# rdfs:label "Taktilt objekt"@sv , +# "Tactile Object"@en . +# +##_:TactileInstanceRestriction a owl:Restriction ; +## owl:onProperty kbv:hasInstance; +## owl:allValueFrom kbv:Tactile . +# +#kbv:ThreeDimensionalMovingImage +# skos:exactMatch kbrda:ThreeDimensionalMovingImage ; +# :prefLabel "Tredimensionell rörlig bild", "Three-dimensional moving image"@en . +# +#kbv:TwoDimensionalMovingImage +# skos:exactMatch kbrda:TwoDimensionalMovingImage ; +# :prefLabel "Tvådimensionell rörlig bild", "Two-dimensional moving image"@en . + diff --git a/examples/typenormalization/rdamatches.ttl b/source/vocab/newtypes/rdamatches.ttl similarity index 96% rename from examples/typenormalization/rdamatches.ttl rename to source/vocab/newtypes/rdamatches.ttl index c022d69f..ac2299c6 100644 --- a/examples/typenormalization/rdamatches.ttl +++ b/source/vocab/newtypes/rdamatches.ttl @@ -8,8 +8,6 @@ prefix : prefix saogf: prefix kbrda: -base - ## # Mixin classes to entail :contentType for RDA coordination. # See subclasses in other documents. @@ -52,6 +50,7 @@ base :ComputerDatasetContent a owl:Restriction ; owl:onProperty :contentType ; owl:hasValue kbrda:ComputerDataset . +:CartographicContent a owl:Class . ## Articifial combos (patterns matching some of ComplexClass:es) @@ -75,7 +74,7 @@ base :CartographicTactileThreeDimensionalFormContent a owl:Restriction ; owl:onProperty :contentType ; owl:hasValue kbrda:CartographicTactileThreeDimensionalForm . -[ owl:intersectionOf (:Cartography :ObjectContent) ] rdfs:subClassOf :CartographicThreeDimensionalFormContent . +[ owl:intersectionOf (:CartographicContent :ObjectContent) ] owl:equivalentClass :CartographicThreeDimensionalFormContent . :CartographicThreeDimensionalFormContent a owl:Restriction ; owl:onProperty :contentType ; owl:hasValue kbrda:CartographicThreeDimensionalForm . From 892f647aecc4ee1c36a3aa070fa405a6057787b3 Mon Sep 17 00:00:00 2001 From: branchedelac Date: Mon, 3 Feb 2025 16:29:37 +0100 Subject: [PATCH 30/69] add owlrl --- examples/typenormalization/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/typenormalization/requirements.txt b/examples/typenormalization/requirements.txt index 07a5b202..1f76d203 100644 --- a/examples/typenormalization/requirements.txt +++ b/examples/typenormalization/requirements.txt @@ -1,2 +1,2 @@ rdflib -git+https://github.com/RDFLib/OWL-RL.git +owlrl \ No newline at end of file From 90525be6a6d753bd2f4edcf75e4717d7dc6eb94e Mon Sep 17 00:00:00 2001 From: branchedelac Date: Mon, 3 Feb 2025 17:02:00 +0100 Subject: [PATCH 31/69] bump pyRdfa3 to 3.6.4 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 33f060cd..55c4acd6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ setuptools==70.0.0 rdflib==6.1.1 -pyRdfa3==3.5.3 +pyRdfa3==3.6.4 requests==2.32.3 Markdown==3.7 From 82da28ae4f647d67aad4a8ed7807a4f2f211b559 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Mon, 3 Feb 2025 18:06:48 +0100 Subject: [PATCH 32/69] Bump rdflib to 7.1.3 and adapt to change in jsonld --- lxltools/ldutil.py | 5 +++++ requirements.txt | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lxltools/ldutil.py b/lxltools/ldutil.py index ebb92793..08c5f631 100644 --- a/lxltools/ldutil.py +++ b/lxltools/ldutil.py @@ -5,9 +5,14 @@ def to_jsonld(source: Graph, context_uri: str, contextobj) -> dict: data = from_rdf(source, context_data=contextobj) + assert isinstance(data, dict) + if '@graph' not in data: + data = {'@graph': [data]} + data['@context'] = context_uri _embed_singly_referenced_bnodes(data) _expand_ids(data['@graph'], contextobj['@context']) + return data diff --git a/requirements.txt b/requirements.txt index 55c4acd6..dcf4f175 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ setuptools==70.0.0 -rdflib==6.1.1 +rdflib==7.1.3 pyRdfa3==3.6.4 requests==2.32.3 Markdown==3.7 From 192f03f424855ba6918baec534363d3cd35fc196 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Wed, 5 Feb 2025 20:02:44 +0100 Subject: [PATCH 33/69] Update definition of new (complex) classes --- examples/typenormalization/examples.trig | 6 +- source/vocab/newtypes/classes.ttl | 221 ++++++++++------------- 2 files changed, 96 insertions(+), 131 deletions(-) diff --git a/examples/typenormalization/examples.trig b/examples/typenormalization/examples.trig index 422db911..06392dec 100644 --- a/examples/typenormalization/examples.trig +++ b/examples/typenormalization/examples.trig @@ -17,10 +17,10 @@ prefix barngf: { a :Audio ; :genreForm saogf:Ljudb%C3%B6cker } { a :EBook } - { a :Electronic ; :instanceOf [ a :Book ] } + { a :Electronic ; :instanceOf [ a :BookForm ] } { a :CDBook } - { a :Electronic ; :carrierType kbrda:AudioDisc ; :instanceOf [ a :Book ] } + { a :Electronic ; :carrierType kbrda:AudioDisc ; :instanceOf [ a :BookForm ] } { a :ComputerGame } { a :Multimedia ; :genreForm saogf:Datorspel } @@ -44,7 +44,7 @@ prefix barngf: { a :Comic } { a :GraphicNovel } - { a :Text, :Book ; :genreForm saogf:Serieromaner , saogf:Romaner } + { a :Text, :BookForm ; :genreForm saogf:Serieromaner , saogf:Romaner } { a :Atlas } { a :Cartography ; :genreForm kbgf:Book ; :contentType kbrda:Text, kbrda:CartographicImage } diff --git a/source/vocab/newtypes/classes.ttl b/source/vocab/newtypes/classes.ttl index 61641cad..99917f63 100644 --- a/source/vocab/newtypes/classes.ttl +++ b/source/vocab/newtypes/classes.ttl @@ -11,38 +11,55 @@ prefix kbrda: prefix kbgf: -:Text rdfs:subClassOf :TextContent . -:StillImage rdfs:subClassOf :ImageContent . -:TextWithImages rdfs:subClassOf :TextContent, :ImageContent . -:ImageAndText rdfs:subClassOf :TextContent, :ImageContent . -:NotatedMusic rdfs:subClassOf :NotatedMusicContent . -:NotatedMovement rdfs:subClassOf :NotatedMovementContent . -:Object rdfs:subClassOf :ObjectContent . -:Audio rdfs:subClassOf :AudioContent . -:PerformedMusic rdfs:subClassOf :PerformedMusicContent . -:SpokenWord rdfs:subClassOf :SpokenWordContent . -:ComputerProgram rdfs:subClassOf :ComputerProgramContent . -:ComputerDataset rdfs:subClassOf :ComputerDatasetContent . - -# Complex Work Classes (Single Unit) +## +# This file depends on patterns defined in <./rdamatches.ttl> . -# * Uses intersections to say: "this combo *means* this class". -:Book a owl:Class ; +# Locally defined restriction shapes + +:BookForm a owl:Restriction ; ptg:abstract true ; - :category :pending, :primary ; - owl:equivalentClass bibo:Book, sdo:Book ; + owl:onProperty :genreForm ; + owl:hasValue kbgf:Book ; :label "Book"@en , "Bok"@sv ; :pluralLabel "Böcker"@sv . + +# Extend existing classes + +:Text rdfs:subClassOf :Monograph, :TextContent . +:TextWithImages rdfs:subClassOf :Monograph, :TextContent, :ImageContent . +:StillImage rdfs:subClassOf :Monograph, :ImageContent . +:ImageAndText rdfs:subClassOf :Monograph, :TextContent, :ImageContent . + +:NotatedMusic rdfs:subClassOf :Monograph, :NotatedMusicContent . +:NotatedMovement rdfs:subClassOf :Monograph, :NotatedMovementContent . + +:Kit rdfs:subClassOf :Monograph . +:Object rdfs:subClassOf :Monograph, :ObjectContent . +:Audio rdfs:subClassOf :Monograph, :AudioContent . +:PerformedMusic rdfs:subClassOf :Monograph, :PerformedMusicContent . +:SpokenWord rdfs:subClassOf :Monograph, :SpokenWordContent . +:ComputerProgram rdfs:subClassOf :Monograph, :ComputerProgramContent . +:ComputerDataset rdfs:subClassOf :Monograph, :Dataset, :ComputerDatasetContent . + + +# Complex Work Classes + +# * Uses intersections to say: "this combo *means* this class". +:complex a skos:Collection ; + rdfs:label "complex"@en, "komplex"@sv ; + rdfs:comment "Anges på abstrakta klasser som namnger välkända mönster, definierade som intersektioner."@sv ; + :code "complex" . + +# TODO: RenameTo :TextMonograph "Textmonografi"@sv ? :WrittenBook a owl:Class ; + owl:equivalentClass bibo:Book, sdo:Book ; :category :pending, :complex ; - rdfs:subClassOf :Book ; owl:intersectionOf ( :Text - [ owl:onProperty :genreForm ; - owl:hasValue kbgf:Book ] + :BookForm ) ; :label "Written book"@en , "Skriven bok"@sv ; @@ -50,23 +67,21 @@ prefix kbgf: :Audiobook a owl:Class ; :category :pending, :complex ; - rdfs:subClassOf :Book , - [ owl:onProperty :genreForm ; + rdfs:subClassOf [ owl:onProperty :genreForm ; owl:hasValue saogf:Ljudb%C3%B6cker ] , bibo:AudioDocument ; owl:intersectionOf ( :Audio - [ owl:onProperty :genreForm ; - owl:hasValue kbgf:Book ] + :BookForm ) ; :label "Ljudbok"@sv , "Audiobook"@en . :TactileBook a owl:Class ; :category :pending, :complex ; - rdfs:subClassOf :Book ; owl:intersectionOf ( :Tactile + :BookForm [ owl:onProperty :genreForm ; owl:hasValue [ skos:narrowMatch saogf:Punktskriftsb%C3%B6cker ] ] ) ; @@ -200,32 +215,29 @@ prefix kbgf: :Atlas a owl:Class ; + ptg:abstract true ; :category :pending, :complex ; - rdfs:subClassOf :WrittenBook, :Cartography ; owl:intersectionOf ( - #:WrittenBook :Cartography - [ owl:onProperty :genreForm ; - owl:hasValue kbgf:Book ] - [ owl:onProperty :contentType ; - owl:hasValue kbrda:Text ] - [ owl:onProperty :contentType ; - owl:hasValue kbrda:CartographicImage ] - ) . + :BookForm + :TextContent + :CartographicImageContent + ) ; + rdfs:label "Atlas"@sv , + "Atlas"@en . :Globe a owl:Class ; :category :pending, :complex ; - # TODO: make these also imply the intersection? - #rdfs:subClassOf :Cartography, :ObjectContent ; owl:intersectionOf ( :Cartography - [ owl:onProperty :contentType ; - owl:hasValue kbrda:CartographicThreeDimensionalForm ] - ) . + :CartographicThreeDimensionalFormContent + ) ; + rdfs:label "Jord- eller månglob"@sv , + "Globe"@en . # TODO: -# * Link up *all* SAOGF-Musik(instrument) as hints for Music? +# * In SAOGF, link up *all* SAOGF-Musik[*instrument] as hints for "Music-content"? :PerformedMusic a owl:Class ; :category :pending, :complex ; @@ -259,59 +271,10 @@ prefix kbgf: ) . -# Complex Instance Classes (Single Unit) - -:PrintedVolume a owl:Class ; - :category :pending, :complex ; - owl:intersectionOf ( - :Print - [ owl:onProperty :carrierType ; - owl:hasValue kbrda:Volume ] - ) . - -:CDBook a owl:Class ; - :category :pending, :complex ; - owl:intersectionOf ( - :Electronic - [ owl:onProperty :carrierType ; - owl:hasValue kbrda:AudioDisc ] - [ owl:onProperty :instanceOf ; - owl:someValuesFrom :Book ] - ) . - -:EBook a owl:Class ; - :category :pending, :complex ; - owl:intersectionOf ( - :Electronic # :DigitalResource - [ owl:onProperty :instanceOf ; - owl:someValuesFrom :Book ] - ) . - -# TODO: used by whom? Not Webbsök... -#:EAudioBook a owl:Class ; -# :category :pending, :complex ; -# owl:intersectionOf ( -# :Electronic -# [ owl:onProperty :instanceOf ; -# owl:someValuesFrom :AudioBook ] -# ) . - -# Multimedia AudioBook + WrittenBook Bundle ? - - # Collecting Work Classes -:CollectingResource a owl:Class ; - :category :pending ; - ptg:abstract true ; - :label "Collecting Resource"@en , - "Samlande resurs"@sv . - -:Collection rdfs:subClassOf :CollectingResource . - :Archive a owl:Class ; :category :pending, :complex ; - rdfs:subClassOf :CollectingResource ; owl:intersectionOf ( :Collection [ owl:onProperty :genreForm ; @@ -320,9 +283,6 @@ prefix kbgf: :label "Arkiv"@sv , "Archive"@en . -:Integrating rdfs:subClassOf :CollectingResource ; - ptg:abstract true . - :Database a owl:Class ; :category :pending, :complex ; owl:intersectionOf ( @@ -338,7 +298,6 @@ prefix kbgf: :SerialPublication a owl:Class ; :category :pending, :complex ; - rdfs:subClassOf :CollectingResource ; # Abstraction owl:intersectionOf ( :Serial [ owl:onProperty :genreForm ; @@ -348,7 +307,7 @@ prefix kbgf: "Serial Publication"@en . :Periodical a owl:Class ; - :category :pending, :primary, :complex ; + :category :pending, :complex ; rdfs:seeAlso ; rdfs:subClassOf :SerialPublication ; owl:intersectionOf ( @@ -361,36 +320,42 @@ prefix kbgf: :label "Tidskrift"@sv , "Periodical"@en . -## -# Possible Serial combos: -# (Or prefer :collectsType (or :containsType (== :contentType?))?) -## Get associated GenreForm: -#### PREFIX : -#### SELECT ?collectstype ?gf (COUNT(?serial)AS ?count) { -#### ?serial a :Serial ; :collectsType ?collectstype ; :genreForm ?gf . FILTER isIRI(?gf) -#### } GROUP BY ?collectstype ?gf ORDER BY ?collectstype DESC(?count) -# -#:TextSerial # 683169 -# :WrittenBookSerial # 84 -# :NotatedMusicSerial # 402 -# -#:CartographySerial # 19 -# :AtlasSerial # 2 -# :SingleMapSerial # 20 -# -#:AudioSerial # 13 -# -# :MusicSerial # 6 -# -# :AudioBookSerial # 20 -# :SpokenWordSerial # 3 -# -#:MovingImageSerial # 24 -#:StillImageSerial # 3 -# -#:MultimediaSerial # 101 -# -#:MixedMaterialSerial # 5 -# -##:WorkSerial # 2 -##:ManuscriptTextSerial # 1 + +# Complex Instance Classes (Single Unit) + +:PrintedVolume a owl:Class ; + :category :pending, :complex ; + owl:intersectionOf ( + :Print + [ owl:onProperty :carrierType ; + owl:hasValue kbrda:Volume ] + ) . + +:CDBook a owl:Class ; + :category :pending, :complex ; + owl:intersectionOf ( + :Electronic + [ owl:onProperty :carrierType ; + owl:hasValue kbrda:AudioDisc ] + [ owl:onProperty :instanceOf ; + owl:someValuesFrom :BookForm ] + ) . + +:EBook a owl:Class ; + :category :pending, :complex ; + owl:intersectionOf ( + :Electronic # :DigitalResource + [ owl:onProperty :instanceOf ; + owl:someValuesFrom :BookForm ] + ) . + +# TODO: used by whom? Not Webbsök... +#:EAudioBook a owl:Class ; +# :category :pending, :complex ; +# owl:intersectionOf ( +# :Electronic +# [ owl:onProperty :instanceOf ; +# owl:someValuesFrom :AudioBook ] +# ) . + +# Multimedia AudioBook + WrittenBook Bundle ? From 6b64d0527174ed3d711b31a5dcd810b5199f7efa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Thu, 13 Feb 2025 17:16:49 +0100 Subject: [PATCH 34/69] Restructure typenormalized newtypes and genreforms --- source/genreforms/contentforms.ttl | 431 ++++++++++++ .../kbgf.ttl => genreforms/contentgenres.ttl} | 3 +- .../newtypes => genreforms}/genreforms.ttl | 6 +- source/genreforms/materialformat.ttl | 142 ++++ source/rda-terms.ttl | 81 ++- source/vocab/base.ttl | 6 + source/vocab/newtypes/carrierclasses.ttl | 580 ++++++++++++++++ .../{classes.ttl => contentclasses.ttl} | 82 ++- source/vocab/newtypes/kbcr.ttl | 463 ------------- source/vocab/newtypes/kbtf.ttl | 652 ------------------ ...{rdamatches.ttl => rdacontentpatterns.ttl} | 3 +- source/vocab/things.ttl | 289 ++------ 12 files changed, 1351 insertions(+), 1387 deletions(-) create mode 100644 source/genreforms/contentforms.ttl rename source/{vocab/newtypes/kbgf.ttl => genreforms/contentgenres.ttl} (99%) rename source/{vocab/newtypes => genreforms}/genreforms.ttl (89%) create mode 100644 source/genreforms/materialformat.ttl create mode 100644 source/vocab/newtypes/carrierclasses.ttl rename source/vocab/newtypes/{classes.ttl => contentclasses.ttl} (82%) delete mode 100644 source/vocab/newtypes/kbcr.ttl delete mode 100644 source/vocab/newtypes/kbtf.ttl rename source/vocab/newtypes/{rdamatches.ttl => rdacontentpatterns.ttl} (98%) diff --git a/source/genreforms/contentforms.ttl b/source/genreforms/contentforms.ttl new file mode 100644 index 00000000..bb85d19c --- /dev/null +++ b/source/genreforms/contentforms.ttl @@ -0,0 +1,431 @@ +prefix rdfs: +prefix owl: +prefix skos: +prefix bibo: +prefix sdo: +prefix ptg: +prefix bf: + +prefix : +prefix marc: +prefix f: +prefix g: + +prefix saogf: +prefix barngf: +prefix kbrda: + +base + +# TODO: split this and move to either rda content mappings, or genreforms? + +f:CartographicObject a :ContentForm; + #skos:exactMatch kbrda:CartographicThreeDimensionalForm; + rdfs:subClassOf :Cartography, :Object ; + rdfs:label "Kartografiskt objekt"@sv , + "Cartographic Object"@en . + +# FIXME: move instancetype :Globe to work +f:Globe a :ContentForm ; + rdfs:subClassOf f:CartographicObject . + +f:ComputerDataset a :ContentForm; + skos:exactMatch kbrda:ComputerDataset; + rdfs:subClassOf :Dataset . + + +f:Booklet a :ContentForm ; # :MediumText + :category :pending, :richtype ; + rdfs:subClassOf :NonBookText ; + rdfs:label "Texthäfte"@sv , "Booklet"@en . + +f:Textleaf a :ContentForm ; # :SmallText + :category :pending, :richtype ; + rdfs:subClassOf :NonBookText ; + rdfs:label "Textblad"@sv , "Text leaf"@en . + +f:NonBookTextWithImages a :ContentForm ; + rdfs:subClassOf :NonBookText , :IllustratedWork ; + rdfs:label "Enskild text med bilder"@sv , + "Non-book With Images"@en . + +f:Issue a :ContentForm ; + :category :pending, :concretetype ; + rdfs:subClassOf :NonBookText ; + owl:equivalentClass bibo:Issue ; + rdfs:label "Tidskriftsnummer"@sv , + "Periodical Issue"@en . + +f:MonographicSeries a :ContentForm ; + :category :pending, :concretetype ; + rdfs:subClassOf :CollectingResource ; + owl:equivalentClass bibo:Series , + bf:Series, + marc:MonographicSeries ; + rdfs:label "Monograph Series"@en , + "Monografiserie"@sv . + +f:WrittenBook a :ContentForm ; + :category :pending, :concretetype ; + rdfs:subClassOf :Book ; + owl:intersectionOf ( + :Text + [ owl:onProperty :genreForm ; + owl:hasValue g:Book ] + ) ; + skos:narrowMatch barngf:Kapitelb\%C3\%B6cker ; + :label "Written book"@en , + "Skriven bok"@sv ; + :altLabel "Bok"@sv, "Book"@en . + +f:BookWithImages a :ContentForm ; + :category :pending, :concretetype ; + rdfs:subClassOf f:WrittenBook , :IllustratedWork ; + skos:editorialNote "TODO: PictorialWork?"@en ; + skos:scopeNote "Gör ingen skillnad mellan bilder som är integral del av verket (där nya bilder är ett nytt verk) och texter där bilderna är kompletterande (). Sådana skillnader kan anges som genre/form."@sv ; + skos:broadMatch saogf:Bildverk ; + skos:narrowMatch barngf:Bilderb%C3%B6cker ; + rdfs:label "Bok med bilder"@sv , + "Book With Images"@en . + +f:Film a :ContentForm ; + :category :pending, :concretetype ; + rdfs:subClassOf :MovingImage ; + owl:equivalentClass bibo:Film ; + skos:exactMatch saogf:Filmer ; + rdfs:label "Film"@sv , + "Film"@en . + +f:Article a :ContentForm ; + :category :pending, :concretetype ; + rdfs:subClassOf :NonBookText ; + owl:equivalentClass bibo:Article ; + rdfs:label "Artikel"@sv , + "Article"@en . + +f:Audiobook a :ContentForm ; + :category :pending, :concretetype ; + rdfs:subClassOf :Audio , + :Book , + bibo:AudioDocument ; + skos:exactMatch saogf:Ljudb\%C3\%B6cker ; + rdfs:label "Ljudbok"@sv , + "Audiobook"@en . + +f:Database a :ContentForm ; + :category :pending, :concretetype ; + rdfs:subClassOf :Integrating ; + skos:exactMatch saogf:Databaser ; + skos:narrowMatch marc:UpdatingDatabase ; + rdfs:label "Databas"@sv , + "Database"@en . + +f:TactileBook a :ContentForm ; + :category :pending, :concretetype ; + rdfs:subClassOf :Book , + :Tactile ; + skos:editorialNote "TODO: differentiate between \"filtbok\" och \"punktskriftsbok\"?"@en ; + #skos:broadMatch kbrda:TactileText ; + skos:narrowMatch saogf:Punktskriftsb\%C3\%B6cker ; + rdfs:label "Tactile Book"@en , + "Taktil bok"@sv . + + +f:AudioProgram a :ContentForm ; + rdfs:subClassOf f:NonMusicAudio ; + rdfs:label "Ljudprogram"@sv , + "Audio Program"@en . + +f:NonMusicAudio a :ContentForm ; + ptg:abstract true ; + rdfs:subClassOf :Audio ; + rdfs:label "Non-music audio"@en , + "Ljud men inte musik"@sv . + +f:BoardGame a :ContentForm ; + rdfs:subClassOf f:InteractiveObject , g:PuzzleOrGame ; + skos:exactMatch ; + rdfs:label "Brädspel"@sv , + "Boardgame"@en . + +f:Brochure a :ContentForm ; + rdfs:subClassOf :NonBookText ; + skos:exactMatch ; + rdfs:label "Broschyr"@sv , + "Brochure"@en . + +f:Comic a :ContentForm ; + rdfs:subClassOf g:GraphicLiterature ; + skos:exactMatch saogf:Serietidningar ; + rdfs:label "Serietidning"@sv , + "Comic"@en . + +f:ComicIssue a :ContentForm ; + rdfs:subClassOf f:Comic , + f:Issue ; + owl:equivalentClass sdo:ComicIssue ; + rdfs:label "Serietidningsnummer"@sv , + "Comic Issue"@en . + +f:ComicSerial a :ContentForm ; + rdfs:comment "TODO: series of issues vs. arc of stories?" ; + rdfs:subClassOf f:Comic , + :SerialPublication ; + # :MonographicSeries ; # TODO: Separate ComicSeries ? + owl:equivalentClass sdo:ComicSeries ; + rdfs:label "Serietidningsserie"@sv , + "Comic Series"@en . + +f:Software a :ContentForm ; # TODO: pending; integrate with ComputerGame, Application, ... + ptg:abstract true ; + rdfs:subClassOf :Multimedia ; + :prefLabel "Mjukvara"@sv , + "Software"@en . + +f:ComputerCode a :ContentForm ; + rdfs:subClassOf f:Software ; + rdfs:label "Datorkod"@sv , + "Computer Code"@en . + +f:ComputerProgram a :ContentForm ; + #skos:exactMatch kbrda:ComputerProgram; + rdfs:subClassOf f:Software ; + rdfs:label "Datorprogram"@sv , + "Computer Program"@en . + +f:ComputerGame a :ContentForm ; + rdfs:subClassOf g:PuzzleOrGame, f:ComputerProgram ; + skos:exactMatch saogf:Datorspel ; + rdfs:label "Datorspel"@sv , + "Computer Game"@en . + +f:Diagram a :ContentForm ; + rdfs:subClassOf :StillImage ; + skos:exactMatch saogf:Diagram ; + rdfs:label "Diagram"@sv , + "Diagram"@en . + +f:FormDocument a :ContentForm ; + rdfs:seeAlso ; + rdfs:subClassOf :NonBookText ; + skos:exactMatch saogf:Blanketter ; + rdfs:label "Blankett"@sv , + "Form Document"@en . + +f:Handwriting a :ContentForm ; + rdfs:subClassOf :Manuscript , + :Text ; + skos:exactMatch saogf:Handskrifter ; + rdfs:label "Handskrift"@sv , + "Handwriting"@en ; + :pluralLabel "Handskrifter"@sv . + +f:Illustration a :ContentForm ; + rdfs:subClassOf :StillImage ; + skos:exactMatch saogf:Illustrationer ; + rdfs:label "Illustration"@sv , + "Illustration"@en . + +f:InteractiveObject a :ContentForm ; + rdfs:subClassOf :Object ; + rdfs:label "Interaktivt objekt"@sv , + "InteractiveObject"@en . + +f:Manual a :ContentForm ; + rdfs:subClassOf :Text , + g:TeachingMaterial ; + skos:closeMatch saogf:Handb\%C3\%B6cker\%2C\%20manualer\%20etc ; + rdfs:seeAlso ; + rdfs:label "Manual"@sv , + "Manual"@en . + +f:MechanicalBook a :ContentForm ; + rdfs:subClassOf f:InteractiveObject , + :WrittenBook ; + rdfs:label "Mekanisk bok"@sv , + "Mechanical Book"@en . + +f:Note a :ContentForm ; + rdfs:subClassOf :NonBookText ; + owl:equivalentClass bibo:Note ; + skos:exactMatch saogf:Anteckningar ; + rdfs:label "Anteckning"@sv , + "Note"@en . + +f:Painting a :ContentForm ; + rdfs:subClassOf :StillImage ; + skos:exactMatch ; + rdfs:label "Målning"@sv , + "Painting"@en . + +f:Photobook a :ContentForm ; + rdfs:subClassOf f:BookWithImages , + :Book ; + skos:exactMatch saogf:Fotob\%C3\%B6cker ; + rdfs:label "Fotobok"@sv , + "Photobook"@en . + +f:Photograph a :ContentForm ; + rdfs:subClassOf :StillImage ; + skos:exactMatch saogf:Fotografier ; + rdfs:label "Fotografi"@sv , + "Photograph"@en ; + :pluralLabel "Fotografier"@sv . + +f:PictureDictionary a :ContentForm ; + rdfs:subClassOf :Lexicon , + f:BookWithImages ; + skos:exactMatch saogf:Bildlexikon ; + rdfs:label "Bildlexikon"@sv , + "Picture Dictionary"@en . + +f:Postcard a :ContentForm ; + rdfs:subClassOf :StillImage ; + skos:exactMatch saogf:Vykort ; + rdfs:label "Vykort"@sv , + "Postcard"@en . + +# TODO: GenreForm? +#f:PostcardBook a :ContentForm ; +# rdfs:subClassOf f:Postcard , f:Book ; +# skos:exactMatch ; + +f:Puzzle a :ContentForm ; + rdfs:subClassOf f:InteractiveObject, g:PuzzleOrGame ; + skos:exactMatch saogf:Pussel ; + rdfs:label "Pussel"@sv , + "Puzzle"@en . + +f:Sculpture a :ContentForm ; + rdfs:subClassOf :Object ; + rdfs:label "Skulptur"@sv , + "Sculpture"@en . + +f:SpokenBook a :ContentForm ; + rdfs:subClassOf f:Audiobook , + f:SpokenWord ; + skos:exactMatch saogf:Talb\%C3\%B6cker ; + rdfs:label "Talbok"@sv , + "Spoken Book"@en . + +f:SpokenWord a :ContentForm ; + #skos:exactMatch kbrda:SpokenWord ; + rdfs:subClassOf :Text , + :Audio ; + rdfs:label "Tal"@sv , + "Spoken Word"@en . + +f:SpokenPaper a :ContentForm ; + rdfs:subClassOf :Periodical , + f:SpokenWord ; + skos:exactMatch saogf:Taltidningar ; + rdfs:label "Taltidning"@sv , + "Spoken Paper"@en . + +f:TVProgram a :ContentForm ; + rdfs:subClassOf :MovingImage ; + skos:exactMatch saogf:Tv-program ; + rdfs:label "Tv-program"@sv , + "TV-Program"@en . + +f:TVSeries a :ContentForm ; + rdfs:subClassOf f:TVProgram , + :MonographicSeries ; + skos:exactMatch saogf:Tv-serier ; + rdfs:label "Tv-serie"@sv , + "TV-Series"@en . + +f:Toy a :ContentForm ; + rdfs:subClassOf f:InteractiveObject ; + rdfs:label "Leksak"@sv , + "Toy"@en . + +f:Trailer a :ContentForm ; + rdfs:subClassOf f:Film ; + skos:exactMatch saogf:Trailrar ; + rdfs:label "Trailer"@sv , + "Trailer"@en . + +f:Website a :ContentForm ; + rdfs:subClassOf :OnlineResource , + :Integrating ; + skos:exactMatch saogf:Webbplatser ; + rdfs:label "Webbplats"@sv , + "Website"@en . + +## Just RDA content types (handled by rdamatches IF used by some concrete/complex type) +#f:CartographicDataset a :ContentForm; +# skos:exactMatch kbrda:CartographicDataset; +# rdfs:subClassOf :Cartography, :Dataset ; +# rdfs:label "Kartografiskt dataset"@sv , "Cartographic dataset"@en . +# +#f:CartographicImage a :ContentForm; +# skos:exactMatch kbrda:CartographicImage; +# #skos:closeMatch :Map ; +# rdfs:subClassOf :Cartography, :StillImage ; +# rdfs:label "Kartografisk bild"@sv , "Cartographic image"@en ; +# skos:altLabel "Karta"@sv, "Kartor in plano"@sv ; +# :pluralLabel "Kartor"@sv . +# +#f:CartographicMovingImage a :ContentForm; +# skos:exactMatch kbrda:CartographicMovingImage; +# rdfs:subClassOf :Cartography, :MovingImage ; +# rdfs:label "Kartografisk rörlig bild"@sv , "Cartographic moving image"@en . +# +#f:TactileCartography a :ContentForm ; +# rdfs:subClassOf :Cartography , +# :Tactile ; +# skos:narrowMatch kbrda:CartographicTactileImage, kbdra:CartographicTactileThreeDimensionalForm ; #? +# skos:editorialNote "TODO: edge case? Force a choice of primary purpose of expression? This is not a11y, that's about the instance. Mixed purposes can be solved by primary purpose as type and additional \"color\" as genre."@en ; +# rdfs:label "Taktilt kartografiskt verk"@sv , +# "Tactile Cartography"@en . +# +#f:CartographicTactileImage a :ContentForm; +# skos:exactMatch kbrda:CartographicTactileImage; +# rdfs:subClassOf :Cartography, :StillImage ; +# rdfs:label "Kartografisk taktil bild"@sv , "Cartographic tactile image"@en . +# +#f:CartographicTactileObject a :ContentForm; +# skos:exactMatch kbrda:CartographicTactileThreeDimensionalForm; +# rdfs:subClassOf :Cartography, f:TactileObject ; +# rdfs:label "Kartografiskt taktilt objekt"@sv , +# "Cartographic Tactile Object"@en . +# +#f:TactileImage a :ContentForm ; +# skos:exactMatch kbrda:TactileImage; +# rdfs:subClassOf :StillImage, :Tactile ; # _:TactileInstanceRestriction . +# rdfs:label "Taktil bild"@sv , "Tactile image"@en . +# +#f:TactileNotatedMusic a :ContentForm ; +# skos:exactMatch kbrda:TactileNotatedMusic; +# rdfs:subClassOf :NotatedMusic, :Tactile ; # , _:TactileInstanceRestriction . +# rdfs:label "Taktil noterad musik"@sv , "Tactile notated music"@en . +# +#f:TactileNotatedMovement a :ContentForm ; +# skos:exactMatch kbrda:TactileNotatedMovement; +# rdfs:subClassOf :NotatedMovement, :Tactile ; # , _:TactileInstanceRestriction . +# rdfs:label "Taktil noterad rörelse"@sv , "Tactile notated movement"@en . +# +#f:TactileText a :ContentForm ; +# skos:exactMatch kbrda:TactileText; +# rdfs:subClassOf :Text, :Tactile ; # , _:TactileInstanceRestriction . +# rdfs:label "Taktil text"@sv , "Tactile text"@en . +# +#f:TactileObject a :ContentForm ; +# skos:exactMatch kbrda:TactileThreeDimensionalForm; +# rdfs:subClassOf :Object, :Tactile ; # , _:TactileInstanceRestriction , +# rdfs:label "Taktilt objekt"@sv , +# "Tactile Object"@en . +# +##_:TactileInstanceRestriction a owl:Restriction ; +## owl:onProperty :hasInstance; +## owl:allValueFrom :Tactile . +# +#:ThreeDimensionalMovingImage +# skos:exactMatch kbrda:ThreeDimensionalMovingImage ; +# :prefLabel "Tredimensionell rörlig bild", "Three-dimensional moving image"@en . +# +#:TwoDimensionalMovingImage +# skos:exactMatch kbrda:TwoDimensionalMovingImage ; +# :prefLabel "Tvådimensionell rörlig bild", "Two-dimensional moving image"@en . + diff --git a/source/vocab/newtypes/kbgf.ttl b/source/genreforms/contentgenres.ttl similarity index 99% rename from source/vocab/newtypes/kbgf.ttl rename to source/genreforms/contentgenres.ttl index 158bff11..4f4334bc 100644 --- a/source/vocab/newtypes/kbgf.ttl +++ b/source/genreforms/contentgenres.ttl @@ -10,7 +10,6 @@ prefix kbv: prefix : prefix marc: prefix div: -prefix s: prefix f: prefix g: @@ -287,7 +286,7 @@ g:RolePlayingGame a :Genre ; "Roleplaying Game"@en . g:SoundEffectBook a :Genre ; - rdfs:subClassOf f:MechanicalBook, s:Audio ; + rdfs:subClassOf f:MechanicalBook, :Audio ; skos:exactMatch saogf:B\%C3\%B6cker\%20med\%20ljudeffekter ; :prefLabel "Bok med ljudeffekt"@sv , "Sound-effect Book"@en . diff --git a/source/vocab/newtypes/genreforms.ttl b/source/genreforms/genreforms.ttl similarity index 89% rename from source/vocab/newtypes/genreforms.ttl rename to source/genreforms/genreforms.ttl index 70d264ef..6f789909 100644 --- a/source/vocab/newtypes/genreforms.ttl +++ b/source/genreforms/genreforms.ttl @@ -7,7 +7,7 @@ prefix marcgt: prefix kbgf: -# Base Forms +# Base Forms (Categories?! Nature of content, etc.) kbgf:LinguisticWork a :GenreForm ; :altLabel "Literature"@en , @@ -44,4 +44,8 @@ kbgf:Fiction a :GenreForm ; :narrowMatch marc:Fiction ; # 84678 # (SSB) :narrowMatch marc:FictionNotFurtherSpecified . # 573355 # (SSB) +# TODO: base GenreForm? +#:Radio a :GenreForm ; :label "Radio"@sv . +#:TV a :GenreForm ; :label "TV"@sv . + # <./marcmatches.ttl> diff --git a/source/genreforms/materialformat.ttl b/source/genreforms/materialformat.ttl new file mode 100644 index 00000000..d9fda33f --- /dev/null +++ b/source/genreforms/materialformat.ttl @@ -0,0 +1,142 @@ +prefix rdfs: +prefix owl: +prefix ptg: +prefix sdo: + +prefix kbv: +prefix : +prefix marc: + +prefix mat: +prefix carrier: + +mat:BristolBoard a :BaseMaterial ; + :exactMatch marc:BristolBoard . +mat:Canvas a :BaseMaterial ; + :exactMatch marc:Canvas . +mat:CardboardIllustrationBoard a :BaseMaterial ; + :exactMatch marc:CardboardIllustrationBoard . +mat:Glass a :BaseMaterial ; + :exactMatch marc:Glass . +mat:Hardboard a :BaseMaterial ; + :exactMatch marc:Hardboard . +mat:Leather a :BaseMaterial ; + :exactMatch marc:Leather . +mat:Metal a :BaseMaterial ; + :exactMatch marc:Metal . +mat:Parchment a :BaseMaterial ; + :exactMatch marc:Parchment . +mat:Plaster a :BaseMaterial ; + :exactMatch marc:Plaster . +mat:Porcelain a :BaseMaterial ; + :exactMatch marc:Porcelain . +mat:Skin a :BaseMaterial ; + :exactMatch marc:Skin . +mat:Stone a :BaseMaterial ; + :exactMatch marc:Stone . +mat:Synthetic a :BaseMaterial ; + :exactMatch marc:Synthetic . +mat:Textile a :BaseMaterial ; + :exactMatch marc:Textile . +mat:Vellum a :BaseMaterial ; + :exactMatch marc:Vellum . +mat:Vinyl a :BaseMaterial ; + :exactMatch marc:Vinyl . +mat:Wood a :BaseMaterial ; + :exactMatch marc:Wood . + +##marc:Other +#marc:MixedCollection a :BaseMaterial . + + +mat:MoonScript a :TactileMaterial ; + :exactMatch marc:Moon . + +mat:Braille a :TactileMaterial ; + :exactMatch marc:TacMaterialType-b . + +mat:TactileCombination a :TactileMaterial ; + :exactMatch marc:TacMaterialType-c . + +mat:TactileWithNoWritingSystem a :TactileMaterial ; + :exactMatch marc:TactileWithNoWritingSystem . + + +mat:ImageOnGlass a :ImageMaterial ; + :broader mat:Glass ; + :exactMatch marc:NonProjectedType-d . + +mat:ImageOnStone a :ImageMaterial ; + :broader mat:Stone ; + :exactMatch marc:NonProjectedType-s . + +mat:ImageOnWood a :ImageMaterial ; + :exactMatch marc:NonProjectedType-t . + +mat:ImageOnMetal a :ImageMaterial ; + :exactMatch marc:NonProjectedType-h . + + +marc:FlexibleBasePhotographicPositive a :MapFormat . +marc:FlexibleBasePhotographicNegative a :MapFormat . +marc:NonFlexibleBasePhotographicNegative a :MapFormat . +marc:NonFlexibleBasePhotographicPositive a :MapFormat . + +# TODO: consolidate with smdbterms.ttl ! + +mat:Beta12InVideocassette a :VideoFormat ; + :exactMatch marc:Beta12InVideocassette . # TODO: smdb + +mat:Betacam12InVideocassette a :VideoFormat ; + :exactMatch marc:Betacam12InVideocassette . # TODO: smdb + +mat:BetacamSp12InVideocassette a :VideoFormat ; + :exactMatch marc:BetacamSp12InVideocassette . # TODO: smdb + +mat:BluRayDisc a :VideoFormat ; + :exactMatch marc:BluRayDisc , carrier:Blu-ray_Disc_\%28BD\%29 . + +mat:D234InVideocassette a :VideoFormat ; + :exactMatch marc:D234InVideocassette . # TODO: smdb + +mat:SuperVhs12InVideocassette a :VideoFormat ; + :exactMatch marc:SuperVhs12InVideocassette, carrier:S-VHS . + +mat:Vhs12InVideocassette a :VideoFormat ; + :exactMatch marc:Vhs12InVideocassette , carrier:VHS . + +mat:Eiaj12InReel a :VideoFormat ; + :exactMatch marc:Eiaj12InReel ; + :narrowMatch carrier:\%C2\%BD_tum_Sony_AV_\%28EIAJ_Type_1\%29 , + carrier:EIAJ_Type_2_\%3B_\%C2\%BD_tum . + +mat:Hi8Mm a :VideoFormat ; + :exactMatch marc:Hi8Mm , carrier:Hi8 . + +mat:Dvd a :VideoFormat ; + :exactMatch marc:Dvd , carrier:DVD . + +mat:Laserdisc a :VideoFormat ; + :exactMatch marc:Laserdisc , carrier:Laserdisk . + +mat:UMatic34InVideocassette a :VideoFormat ; + :exactMatch marc:UMatic34InVideocassette , carrier:Umatic ; + :narrowMatch carrier:Umatic_HB, carrier:Umatic_LB, carrier:Umatic_SP . + +mat:CedCapacitanceElectronicDiscVideodisc a :VideoFormat ; + :exactMatch marc:CedCapacitanceElectronicDiscVideodisc . + +mat:Quadruplex1InOr2InReel a :VideoFormat ; + :exactMatch marc:Quadruplex1InOr2InReel ; + :narrowMatch carrier:2_tum_Quad . + +mat:MIi12InVideocassette a :VideoFormat ; + :broadMatch carrier:MII ; + :exactMatch marc:MIi12InVideocassette . + +mat:TypeC1InReel a :VideoFormat ; + :exactMatch marc:TypeC1InReel . + +mat:Video8Mm a :VideoFormat ; + :exactMatch marc:VideoFormatType-p . # :broadMatch marc:8Mm + # TODO: carrier:Film_\%3B_8_mm ? diff --git a/source/rda-terms.ttl b/source/rda-terms.ttl index 53946812..82902f19 100644 --- a/source/rda-terms.ttl +++ b/source/rda-terms.ttl @@ -5,6 +5,69 @@ @base . +# TODO: Check these rdacarrier mappings: +# Deprecated: skos:exactMatch rdacarrier:1001 ; # "Audio carriers" # skos:closeMatch rdamedia:1001 +# skos:exactMatch rdacarrier:1002 ; # "audio cartridge" +# skos:exactMatch rdacarrier:1003 ; # "audio cylinder" +# skos:exactMatch rdacarrier:1004 ; # "audio disc" +# skos:exactMatch rdacarrier:1005 ; # "sound-track reel" +# skos:exactMatch rdacarrier:1006 ; # "audio roll" +# skos:exactMatch rdacarrier:1007 ; # "audiocassette" +# skos:exactMatch rdacarrier:1008 ; # "audiotape reel" + +# Deprecated: skos:exactMatch rdacarrier:1010 ; # "Computer carriers" # skos:closeMatch rdamedia:1003 +# skos:exactMatch rdacarrier:1011 ; # "computer card" +# skos:exactMatch rdacarrier:1012 ; # "computer chip cartridge" +# skos:exactMatch rdacarrier:1013 ; # "computer disc" +# skos:exactMatch rdacarrier:1014 ; # "computer disc cartridge" +# skos:exactMatch rdacarrier:1015 ; # "computer tape cartridge" +# skos:exactMatch rdacarrier:1016 ; # "computer tape cassette" +# skos:exactMatch rdacarrier:1017 ; # "computer tape reel" +# skos:exactMatch rdacarrier:1018 ; # "online resource" + +# Deprecated: skos:exactMatch rdacarrier:1020 ; # "Microform carriers" # skos:closeMatch rdamedia:1002 +# skos:exactMatch rdacarrier:1021 ; # "aperture card" +# skos:exactMatch rdacarrier:1022 ; # "microfiche" +# skos:exactMatch rdacarrier:1023 ; # "microfiche cassette" +# skos:exactMatch rdacarrier:1024 ; # "microfilm cartridge" +# skos:exactMatch rdacarrier:1025 ; # "microfilm cassette" +# skos:exactMatch rdacarrier:1026 ; # "microfilm reel" +# skos:exactMatch rdacarrier:1027 ; # "microfilm slip" +# skos:exactMatch rdacarrier:1028 ; # "microopaque" +# skos:exactMatch rdacarrier:1056 ; # "microfilm roll" + +# Deprecated: rdacarrier:1029 ; # "Microscopic carriers" # skos:closeMatch rdamedia:1004 +# skos:exactMatch rdacarrier:1030 ; # "microscope slide" + +# Deprecated: skos:exactMatch rdacarrier:1031 ; # "Projected image carriers" # skos:closeMatch rdamedia:1005 +# skos:exactMatch rdacarrier:1032 ; # "film cartridge" +# skos:exactMatch rdacarrier:1033 ; # "film cassette" +# skos:exactMatch rdacarrier:1034 ; # "film reel" +# skos:exactMatch rdacarrier:1035 ; # "filmslip" +# skos:exactMatch rdacarrier:1036 ; # "filmstrip" +# skos:exactMatch rdacarrier:1037 ; # "filmstrip cartridge" +# skos:exactMatch rdacarrier:1039 ; # "overhead transparency" +# skos:exactMatch rdacarrier:1040 ; # "slide" +# skos:exactMatch rdacarrier:1069 ; # "film roll" + +# Deprecated: skos:exactMatch rdacarrier:1041 ; # "Stereographic carriers" # skos:closeMatch rdamedia:1006 +# skos:exactMatch rdacarrier:1042 ; # "stereograph card" +# skos:exactMatch rdacarrier:1043 ; # "stereograph disc" + +# Deprecated: skos:exactMatch rdacarrier:1044 ; # "Unmediated carriers" # skos:closeMatch rdamedia:1007 +# skos:exactMatch rdacarrier:1045 ; # "card" +# skos:exactMatch rdacarrier:1046 ; # "flipchart" +# skos:exactMatch rdacarrier:1047 ; # "roll" +# skos:exactMatch rdacarrier:1048 ; # "sheet" +# skos:exactMatch rdacarrier:1049 ; # "volume" +# skos:exactMatch rdacarrier:1059 ; # "object" + +# Deprecated: skos:exactMatch rdacarrier:1050 ; # "Video carriers" # skos:closeMatch rdamedia:1008 +# skos:exactMatch rdacarrier:1051 ; # "video cartridge" +# skos:exactMatch rdacarrier:1052 ; # "videocassette" +# skos:exactMatch rdacarrier:1053 ; # "videotape reel" +# skos:exactMatch rdacarrier:1060 ; # "videodisc" + ## Carriers ## @@ -328,7 +391,7 @@ a bf:Content ; owl:sameAs , ; - skos:exactMatch , + skos:exactMatch , # Used in LC codeMaps.xml ; skos:inScheme ; skos:notation "prm" . @@ -383,7 +446,7 @@ a bf:Content ; owl:sameAs , ; - skos:exactMatch , + skos:exactMatch , # Used in LC codeMaps.xml ; skos:inScheme ; skos:notation "spw" . @@ -469,7 +532,7 @@ a bf:Content ; owl:sameAs , ; - skos:exactMatch , + skos:exactMatch , # Used in LC codeMaps.xml ; skos:inScheme ; skos:notation "cri" . @@ -536,7 +599,7 @@ a bf:Content ; owl:sameAs , ; - skos:exactMatch , + skos:exactMatch , # Used in LC codeMaps.xml , marc:ComputerProgram ; skos:inScheme ; @@ -553,7 +616,7 @@ a bf:Content ; owl:sameAs , ; - skos:exactMatch , + skos:exactMatch , # Used in LC codeMaps.xml ; skos:inScheme ; skos:notation "ntm" . @@ -561,7 +624,7 @@ a bf:Content ; owl:sameAs , ; - skos:exactMatch , + skos:exactMatch , # Used in LC codeMaps.xml ; skos:inScheme ; skos:notation "sti" . @@ -609,7 +672,7 @@ a bf:Content ; owl:sameAs , ; - skos:exactMatch , + skos:exactMatch , # Used in LC codeMaps.xml ; skos:inScheme ; skos:notation "txt" . @@ -617,7 +680,7 @@ a bf:Content ; owl:sameAs , ; - skos:exactMatch , + skos:exactMatch , # Used in LC codeMaps.xml ; skos:inScheme ; skos:notation "tdf" . @@ -633,7 +696,7 @@ a bf:Content ; owl:sameAs , ; - skos:exactMatch , + skos:exactMatch , # Used in LC codeMaps.xml ; skos:inScheme ; skos:notation "tdi" . diff --git a/source/vocab/base.ttl b/source/vocab/base.ttl index e4a012e4..1cc02b3c 100644 --- a/source/vocab/base.ttl +++ b/source/vocab/base.ttl @@ -239,6 +239,12 @@ rdf:type a owl:ObjectProperty; :category :heuristicIdentifier ; owl:equivalentProperty rdfs:label, sdo:name . +:pluralLabel a owl:DatatypeProperty; + rdfs:label "plural label"@en, "benämning i plural"@sv; + rdfs:domain :Resource ; + #:category :heuristicIdentifier ; + rdfs:subPropertyOf :label . + :comment a owl:DatatypeProperty; rdfs:label "comment"@en, "kommentar"@sv; sdo:domainIncludes :Agent, :Title, :ToCEntry, :EAN, :UPC, :Language, :Script , :ChangeNote, :AdministrativeAction, bulk:Job; diff --git a/source/vocab/newtypes/carrierclasses.ttl b/source/vocab/newtypes/carrierclasses.ttl new file mode 100644 index 00000000..96a691eb --- /dev/null +++ b/source/vocab/newtypes/carrierclasses.ttl @@ -0,0 +1,580 @@ +prefix rdfs: +prefix owl: +prefix skos: +prefix bibo: +prefix sdo: +prefix ptg: +prefix bf: + +prefix : +prefix marc: + +prefix saogf: +prefix kbrda: + + +#:Instance a owl:Class ; ptg:abstract true . +# NOTE: En del Instanser/bärarformer är mångfaldigbara (såsom Tryckt), en del är (i regel?) unika (såsom Canvas)? + +# TODO: For export-to-bf+rda or revert-to-marc; infer type-like properties +# linking to "bases" derived via exactMatch or broadMatch of given types. For +# instance types, that mostly means :carrierType (unless some enum types are +# kept as subclasses of :GenreForm). + + +# Complex Instance Classes (Single Unit) + +:PrintedVolume a owl:Class ; + :category :pending, :complex ; + owl:intersectionOf ( + :Print + [ owl:onProperty :carrierType ; + owl:hasValue kbrda:Volume ] + ) . + +:CDBook a owl:Class ; + :category :pending, :complex ; + owl:intersectionOf ( + :Electronic + [ owl:onProperty :carrierType ; + owl:hasValue kbrda:AudioDisc ] + [ owl:onProperty :instanceOf ; + owl:someValuesFrom :BookForm ] + ) . + +:EBook a owl:Class ; + :category :pending, :complex ; + owl:intersectionOf ( + :Electronic # :DigitalResource + [ owl:onProperty :instanceOf ; + owl:someValuesFrom :BookForm ] + ) ; + rdfs:label "E-bok"@sv . + +# TODO: used by whom? Not Webbsök... +#:EAudioBook a owl:Class ; +# :category :pending, :complex ; +# owl:intersectionOf ( +# :Electronic +# [ owl:onProperty :instanceOf ; +# owl:someValuesFrom :AudioBook ] +# ) . + +# Multimedia AudioBook + WrittenBook Bundle ? + +#CDMap +#ESerial +#Music +#MusicCD + + +#---- FIXME: Either turn into :complex intersection patterns, or *just* move to (RDA) carriera or materials/formats... + +# Unmediated + +:Unmediated a :MediaType ; # TODO: :PhysicalForm? + ptg:abstract true ; + rdfs:subClassOf :Instance ; + skos:exactMatch kbrda:Unmediated ; + rdfs:label "Omedierad resurs"@sv , "Unmediated"@en ; + :altLabel "Fysisk resurs"@sv . + +# Vocab Macro for type-like on carrier...: +# INSERT { +# ?enumType rdfs:subClassOf [ a owl:Restriction; +# owl:onProperty bf2:carrier; owl:hasValue ?enumType ] . +#} WHERE { +# ?enumProp rdfs:subPropertyOf rdf:type ; +# rdfs:range ?metaType . +# ?enumType a ?metaType . +#} + + +# TODO: Printed vs. Handmade as mixins for precoordinated (7x7)? +:Print a owl:Class; + rdfs:subClassOf :Unmediated . + +# Untenable(?): Handwritten / Typewritten / Photocopied => Purpose (Genre) OR Manufacture/Production +#:Handwritten a owl:Class; rdfs:subClassOf :Unmediated . +#:Typewrittten a owl:Class; rdfs:subClassOf :Unmediated . + +:Manuscript a owl:Class ; # TODO: changed to Work in BF + rdfs:subClassOf :Unmediated . + +# mer extraordinärt? Sitter på exemplar? +#:Photocopied a owl:Class; rdfs:subClassOf :Unmediated ; skos:related marc:RegularPrintReproduction . + +# fmt:LargeText a :Format ? + +:Volume a :CarrierType; + #ptg:abstract true ; + skos:exactMatch kbrda:Volume ; + rdfs:subClassOf :Unmediated ; + rdfs:label "Volym"@sv , "Volume"@en . + +#:MassProducedVolume a owl:Class ; +# rdfs:subClassOf :MassProduced, :Volume . +# +#:RareVolume a owl:Class ; +# rdfs:subClassOf :Rare, :Volume . + +:PrintedVolume a owl:Class ; + rdfs:subClassOf :Print, :Volume ; + rdfs:label "Tryckt volym"@sv , "Printed Volume"@en . + +:HardcoverVolume a owl:Class; + rdfs:subClassOf :PrintedVolume . + +:PaperbackVolume a owl:Class; + rdfs:subClassOf :PrintedVolume . + + +:Card a :CarrierType; + skos:exactMatch kbrda:Card ; + rdfs:subClassOf :Unmediated ; + rdfs:label "Bildkort"@sv, "Card"@en . + +:Flipchart a :CarrierType; + skos:exactMatch kbrda:Flipchart ; + rdfs:subClassOf :Unmediated ; + rdfs:label "Blädderblock"@sv, "Flipchart"@en . + +:Roll a :CarrierType; + skos:exactMatch kbrda:Roll ; + rdfs:subClassOf :Unmediated ; + rdfs:label "Rulle"@sv, "Roll"@en . + +:Sheet a :CarrierType; + skos:exactMatch kbrda:Sheet ; + rdfs:subClassOf :Unmediated ; + rdfs:label "Ark"@sv, "Sheet"@en . + +:PrintedSheet a owl:Class ; + rdfs:subClassOf :Print, :Sheet . + +:HandmadeSheet a owl:Class ; + rdfs:subClassOf :Unmediated, :Sheet . + + +# TODO: Every non-DigitalResource is physical of course; this is for "none of the others; actual purposeful 3d object"... +:PhysicalObject a owl:Class ; # :UnmediatedObject ? + skos:exactMatch kbrda:Object ; + rdfs:subClassOf :Unmediated . + + +# TODO: "bless" these from marc to KBV going forward? (Clearer delinetion between "punktskrift" och "objekt-med-syfte"! +#:Tactile a owl:Class ; +# rdfs:subClassOf :Unmediated ; +# rdfs:subClassOf [ +# owl:onProperty :format ; +# owl:someValuesFrom :TactileMaterial ] . + +:BrailleResource a owl:Class ; + skos:exactMatch marc:Braille ; + rdfs:subClassOf :Tactile, :Print . + +:BrailleVolume a owl:Class ; + rdfs:subClassOf :BrailleResource, :Volume , [ a owl:Restriction ; + owl:onProperty :instanceOf ; + owl:allValuesFrom :TactileBook + ] ; + skos:exactMatch saogf:Punktskriftsb\%C3\%B6cker . +# :prefLabel "Punktskriftsvolym"@sv, "Braille Volume"@en . + + +# "Mediated" + +# TODO: other StorageMedium? Magnetic / Optical / Mechanical ? +:StorageMedium a owl:Class ; + ptg:abstract true ; + rdfs:subClassOf :Instance ; + rdfs:label "Lagringsmedium"@sv , "StorageMedium"@en . + + +:TapeCartridge a owl:Class ; + rdfs:subClassOf :StorageMedium ; + ptg:abstract true ; + skos:exactMatch marc:TapeCartridge . + +:TapeCassette a owl:Class ; + rdfs:subClassOf :StorageMedium ; + ptg:abstract true ; + skos:exactMatch marc:TapeCassette . + +:TapeReel a owl:Class ; + ptg:abstract true ; + rdfs:subClassOf :StorageMedium ; + skos:exactMatch marc:TapeReel . + +:MagneticDisk a :CarrierType ; + skos:exactMatch marc:MagneticDisk ; + rdfs:subClassOf :StorageMedium . + +:MagnetoOpticalDisc a :CarrierType ; + skos:exactMatch marc:MagnetoOpticalDisc ; + rdfs:subClassOf :StorageMedium . + +:OpticalReel a owl:Class ; + ptg:abstract true ; + rdfs:subClassOf :StorageMedium . + +:OpticalDisc a :CarrierType ; + skos:exactMatch marc:OpticalDisc ; + rdfs:subClassOf :StorageMedium . + + +:ElectronicStorageMedium a owl:Class ; + ptg:abstract true ; + skos:exactMatch marc:DirectElectronic ; + rdfs:subClassOf :Electronic, :StorageMedium ; + rdfs:label "Elektroniskt lagringsmedium"@sv , "StorageMedium"@en . + +# TODO: rename to: DigitalForm? (Cf. PhysicalForm > PhysicalObject) +:DigitalResource a :CarrierType ; + skos:broadMatch marc:Remote ; + skos:exactMatch marc:Online, marc:OnlineResource, kbrda:OnlineResource ; + rdfs:subClassOf :Electronic ; + rdfs:label "Digital resurs"@sv , "Digital Resource"@en . + +:ChipCartridge a :CarrierType ; + rdfs:subClassOf :ElectronicStorageMedium ; + skos:exactMatch kbrda:ComputerChipCartridge, marc:ChipCartridge ; + rdfs:label "Computer chip cartridge"@en . + +:ComputerCard a :CarrierType ; + rdfs:subClassOf :ElectronicStorageMedium ; + skos:exactMatch kbrda:ComputerCard, marc:ComputerCard ; + rdfs:label "Datorkort"@sv, "Computer card"@en . + +:ComputerDisc a :CarrierType ; + rdfs:subClassOf :ElectronicStorageMedium ; + skos:broadMatch marc:MagneticDisk ; + skos:exactMatch kbrda:ComputerDisc, marc:ComputerDisc ; + rdfs:label "Datorskiva"@sv, "Computer Disc"@en . + +:ComputerDiscCartridge a :CarrierType ; + rdfs:subClassOf :ElectronicStorageMedium ; + skos:exactMatch kbrda:ComputerDiscCartridge, marc:ComputerDiscCartridge ; + skos:narrowMatch marc:ComputerOpticalDiscCartridge ; + rdfs:label "Datorskivmagasin"@sv, "Computer disc cartridge"@en . + +:ComputerTapeCartridge a :CarrierType ; + rdfs:subClassOf :ElectronicStorageMedium , :TapeCartridge ; + skos:exactMatch kbrda:ComputerTapeCartridge ; + rdfs:label "Datorbandmagasin"@sv, "Computer tape cartridge"@en . + +:ComputerTapeCassette a :CarrierType ; + rdfs:subClassOf :ElectronicStorageMedium, :TapeCassette ; + skos:exactMatch kbrda:ComputerTapeCassette ; + rdfs:label "Datorkassett"@sv, "Computer tape cassette"@en . + +:ComputerTapeReel a :CarrierType ; + rdfs:subClassOf :ElectronicStorageMedium, :TapeReel ; + skos:exactMatch kbrda:ComputerTapeReel ; + rdfs:label "Datorbandspole"@sv, "Computer tape reel"@en . + + +:StandaloneDevice a :CarrierType ; + skos:exactMatch marc:StandaloneDevice ; + rdfs:subClassOf :ElectronicStorageMedium, :PhysicalObject . + + +# TODO: Is the content-as-media-type a "rebus" and enough if content is on the work? +# Or is the *unit for device capable of sound* encoded here (so "mode of provisioning", not the "purpose of provisioning")? + +:SoundStorageMedium a :MediaType ; + owl:sameAs :SoundRecording ; + ptg:abstract true ; + skos:exactMatch kbrda:Audio ; + rdfs:subClassOf :StorageMedium ; + rdfs:label "Audio"@sv, "Audio"@en . + +:AudioDisc a :CarrierType ; + rdfs:subClassOf :SoundStorageMedium ; + skos:exactMatch kbrda:AudioDisc , marc:SoundDisc ; + rdfs:label "Ljudskiva"@sv , "Audio Disc"@en . + +:AudioCassette a :CarrierType ; + rdfs:subClassOf :SoundStorageMedium, :TapeCassette ; + skos:exactMatch kbrda:Audiocassette , marc:SoundCassette ; + rdfs:label "Ljudkassett"@sv , "Audio Cassette"@en . + +:AudioCartridge a :CarrierType ; + skos:exactMatch kbrda:AudioCartridge , marc:SoundCartridge ; + rdfs:subClassOf :SoundStorageMedium ; + rdfs:label "Ljudmagasin"@sv, "Audio cartridge"@en . + +:AudioCylinder a :CarrierType ; + skos:exactMatch kbrda:AudioCylinder, marc:Cylinder ; + rdfs:subClassOf :SoundStorageMedium ; + rdfs:label "Ljudcylinder"@sv, "Audio cylinder"@en . + +:AudioRoll a :CarrierType ; + skos:exactMatch kbrda:AudioRoll , marc:Roll ; + rdfs:subClassOf :SoundStorageMedium ; + rdfs:label "Ljudrulle"@sv, "Audio roll"@en . + +:AudioTapeReel a :CarrierType ; + skos:exactMatch kbrda:AudiotapeReel; + rdfs:subClassOf :SoundStorageMedium , :TapeReel , marc:SoundTapeReel ; + rdfs:label "Ljudspole"@sv, "Audiotape reel"@en . + +# Zero uses in Libris... +:AudioWireRecording a :CarrierType ; + skos:exactMatch marc:WireRecording . + +:SoundTrackReel a :CarrierType ; + skos:exactMatch kbrda:SoundTrackReel, marc:SoundTrackFilm; + rdfs:subClassOf :SoundStorageMedium ; + rdfs:label "Sound-track reel"@en . + + +:VideoStorageMedium a :MediaType ; + owl:sameAs :VideoRecording ; + ptg:abstract true ; + # TODO: deprecated baseclass :MovingImageInstance ? + skos:exactMatch kbrda:Video ; + rdfs:subClassOf :StorageMedium ; + rdfs:label "Lagringsmedium för video"@sv, "Video Storage Medium"@en . + +:VideoDisc a :CarrierType ; + skos:exactMatch kbrda:Videodisc, marc:Videodisc ; + rdfs:subClassOf :VideoStorageMedium ; + rdfs:label "Videoskiva"@sv , "Video Disc"@en . + +:VideoCartridge a :CarrierType ; + skos:exactMatch kbrda:VideoCartridge, marc:Videocartridge ; + rdfs:subClassOf :VideoStorageMedium ; + rdfs:label "Videomagasin"@sv, "Video cartridge"@en . + +:VideoCassette a :CarrierType ; + skos:exactMatch kbrda:Videocassette, marc:Videocassette ; + rdfs:subClassOf :VideoStorageMedium, :TapeCassette ; + rdfs:label "Videokassett"@sv, "Videocassette"@en . + +:VideoTapeReel a :CarrierType ; + skos:exactMatch kbrda:VideotapeReel , marc:Videoreel ; + rdfs:subClassOf :VideoStorageMedium, :TapeReel ; + rdfs:label "Videospole"@sv, "Videotape reel"@en . + + +# TODO: restricted to some content forms (Visual, TextAsVisual...) + +:Microform a :MediaType ; + ptg:abstract true ; + skos:exactMatch kbrda:Microform; + rdfs:subClassOf :StorageMedium ; + rdfs:label "Mikroform"@sv, "Microform"@en . + +:Microfilm a :CarrierType ; + ptg:abstract true ; + skos:exactMatch marc:Microfilm ; + rdfs:subClassOf :Microform . + +:ApertureCard a :CarrierType ; + skos:exactMatch kbrda:ApertureCard, marc:ApertureCard ; + rdfs:subClassOf :Microform ; + rdfs:label "Maskhålkort"@sv, "Aperture card"@en . + +:Microfiche a :CarrierType ; + skos:exactMatch kbrda:Microfiche ; + rdfs:subClassOf :Microform, marc:Microfiche ; + rdfs:label "Mikrofiche"@sv, "Microfiche"@en . + +:MicroficheCassette a :CarrierType ; + skos:exactMatch kbrda:MicroficheCassette, marc:MicroficheCassette ; + rdfs:subClassOf :Microform ; + rdfs:label "Mikrofichekassett"@sv, "Microfiche cassette"@en . + +:MicrofilmCartridge a :CarrierType ; + skos:exactMatch kbrda:MicrofilmCartridge, marc:MicrofilmCartridge ; + rdfs:subClassOf :Microfilm ; + rdfs:label "Mikrofilmsmagasin"@sv, "Microfilm cartridge"@en . + +:MicrofilmCassette a :CarrierType ; + skos:exactMatch kbrda:MicrofilmCassette, marc:MicrofilmCassette ; + rdfs:subClassOf :Microfilm ; + rdfs:label "Mikrofilmskassett"@sv, "Microfilm cassette"@en . + +:MicrofilmReel a :CarrierType ; + skos:exactMatch kbrda:MicrofilmReel, marc:MicrofilmReel ; + rdfs:subClassOf :Microfilm ; + rdfs:label "Mikrofilmsspole"@sv, "Microfilm reel"@en . + +:MicrofilmRoll a :CarrierType ; + skos:exactMatch kbrda:MicrofilmRoll, marc:MicrofilmRoll ; + rdfs:subClassOf :Microfilm, :VideoStorageMedium ; + rdfs:label "Mikrofilmsrulle"@sv, "Microfilm roll"@en . + +:MicrofilmSlip a :CarrierType ; + skos:exactMatch kbrda:MicrofilmSlip, marc:MicrofilmSlip ; + rdfs:subClassOf :Microform ; + rdfs:label "Mikrofilmsremsa"@sv, "Microfilm slip"@en . + +:Microopaque a :CarrierType ; + skos:exactMatch kbrda:Microopaque ; + rdfs:subClassOf :Microform, marc:Microopaque ; + rdfs:label "Mikrokort"@sv, "Microopaque"@en . + + +:Microscopic a :MediaType ; + ptg:abstract true ; + skos:exactMatch kbrda:Microscopic; + rdfs:subClassOf :StorageMedium ; + rdfs:label "Mikroskopisk"@sv, "Microscopic"@en . + +:MicroscopeSlide a :CarrierType ; + skos:exactMatch kbrda:MicroscopeSlide ; + rdfs:subClassOf :Microscopic ; + rdfs:label "Mikroskoperingspreparat"@sv, "Microscope slide"@en . + + +:Projected a :MediaType ; + ptg:abstract true ; + skos:exactMatch kbrda:Projected; + rdfs:subClassOf :StorageMedium ; + rdfs:label "Projicerad"@sv, "Projected"@en . + +:FilmCartridge a :CarrierType ; + skos:exactMatch kbrda:FilmCartridge ; + rdfs:subClassOf :Projected ; + rdfs:label "Filmmagasin"@sv, "Film cartridge"@en . + +:FilmCassette a :CarrierType ; + skos:exactMatch kbrda:FilmCassette ; + rdfs:subClassOf :Projected ; + rdfs:label "Filmkassett"@sv, "Film cassette"@en . + +:FilmReel a :CarrierType ; + skos:exactMatch kbrda:FilmReel ; + rdfs:subClassOf :Projected ; + rdfs:label "Filmspole"@sv, "Film reel"@en . + +:FilmRoll a :CarrierType ; + skos:exactMatch kbrda:FilmRoll ; + rdfs:subClassOf :Projected ; + rdfs:label "Filmrulle"@sv, "Film roll"@en . + +:Filmslip a :CarrierType ; + skos:exactMatch kbrda:Filmslip, marc:Filmslip ; + rdfs:subClassOf :Projected ; + rdfs:label "Filmremsa"@sv, "Filmslip"@en . + +# TODO: Ensure difference between StillImage Projected and MovingImage Projected! +# See e.g. <> +:Filmstrip a :CarrierType ; + skos:exactMatch kbrda:Filmstrip, marc:FilmstripRoll ; + rdfs:subClassOf :Projected ; + rdfs:label "Bildband"@sv, "Filmstrip"@en . + +:FilmstripCartridge a :CarrierType ; + skos:exactMatch kbrda:FilmstripCartridge, marc:FilmstripCartridge ; + rdfs:subClassOf :Projected ; + rdfs:label "Bildbandsmagasin"@sv, "Filmstrip cartridge"@en . + +:OverheadTransparency a :CarrierType ; + skos:exactMatch kbrda:OverheadTransparency, marc:Transparency ; + rdfs:subClassOf :Projected ; + rdfs:label "OH-bild"@sv, "Overhead transparency"@en . + +:Slide a :CarrierType ; + skos:exactMatch kbrda:Slide, marc:Slide ; + rdfs:subClassOf :Projected ; + rdfs:label "Diabild"@sv, "Slide"@en . + + +:Stereographic a :MediaType ; + ptg:abstract true ; + skos:exactMatch kbrda:Stereographic ; + rdfs:subClassOf :StorageMedium ; + rdfs:label "Stereografisk"@sv, "Stereographic"@en . + +:StereographCard a :CarrierType ; + skos:exactMatch kbrda:StereographCard; + rdfs:subClassOf :Stereographic ; + rdfs:label "Stereografiskt kort"@sv, "Stereograph card"@en . + +:StereographDisc a :CarrierType ; + skos:exactMatch kbrda:StereographDisc; + rdfs:subClassOf :Stereographic ; + rdfs:label "Stereografisk skiva"@sv, "Stereograph disc"@en . + + +# Instances defined in: <../../genreforms/materialformat.ttl>. + +:BaseMaterial rdfs:subClassOf :Material . + +:TactileMaterial rdfs:subClassOf :Material ; + :broadMatch marc:TacMaterialType . + +:ImageMaterial rdfs:subClassOf :Material ; + :broadMatch marc:NonProjectedType . + +:MapMaterial rdfs:subClassOf :Material ; + :broadMatch marc:MapMediumType . + +# TODO: Upgrade some marc: properties to KBV going forward? +#:videoCharacteristic +# rdfs:subPropertyOf :format ; +# rdfs:domain :VideoStorageMedium ; +# sdo:rangeIncludes :VideoFormat . + +:VideoFormat rdfs:subClassOf :Material ; + :broadMatch marc:VideoFormatType . + +## TODO: *when needed* for marc - map patterns to/from to some of these types... + +# TODO: ensure all of these (LHS) can be mapped to one specific type: +# Then these deine a MARC rebus for its restriction on instanceOf (RHS): + +# :StillImageInstance :instanceOf :StillImage . +#:StillImageInstance +# ptg:abstract true ; +# owl:equivalentClass [ owl:onProperty :instanceOf ; owl:allValuesFrom :StillImage ] ; +# rdfs:subClassOf [ owl:onProperty :baseMaterial ; owl:someValuesFrom :ImageMaterial ] . + +# :MovingImageInstance :instanceOf :MovingImage . +# :ProjectedImageInstance :instanceOf :ProjectedImage . +# :NotatedMusicInstance :instanceOf :NotatedMusic . +# :KitInstance :instanceOf :Kit . + + +# TODO: OLD Aligning ideas (notes from things.ttl dating back to 2017): + +# Common Carrier Types + +#:Disc +#:CD +#:DVD + +#:Book a owl:Class; +# rdfs:label "Book"@en, "Bok"@sv; +# owl:equivalentClass bibo:Book; +# rdfs:subClassOf +# :Print, +# [ a owl:Restriction; owl:onProperty :instanceOf; owl:allValuesFrom :Text ] . +# [ a owl:Restriction; owl:onProperty :issuanceType; owl:hasValue :Monograph ] . +# #[ a owl:Restriction; owl:onProperty :extent; owl:allValuesFrom :PageCount ] . +# +#:BookSeries a owl:Class; +# rdfs:subClassOf :Text, :Serial . +# +#:MultiVolumeBook a owl:Class; +# rdfs:label "Multipart Book"@en, "Bokverk"@sv; +# skos:altLabel "Flervolymsbok"@sv; +# rdfs:subClassOf :Book, :MultipartMonograph; +# owl:equivalentClass bibo:MultiVolumeBook . +# +#:BookVolume a owl:Class; +# rdfs:label "Book Volume"@en, "Bokband"@sv ; +# skos:altLabel "Band"@sv, "Volym"@sv ; +# rdfs:subClassOf :Book, +# :PublicationVolume . +# +#:PrintedText a owl:Class; +# rdfs:label "Tryckt text"@sv; +# rdfs:subClassOf :TextInstance, :Print . +# +#:PrintedBook a owl:Class; +# rdfs:label "Printed Book"@en, "Tryckt bok"@sv; +# rdfs:subClassOf :Book, :PrintedText, :Volume . diff --git a/source/vocab/newtypes/classes.ttl b/source/vocab/newtypes/contentclasses.ttl similarity index 82% rename from source/vocab/newtypes/classes.ttl rename to source/vocab/newtypes/contentclasses.ttl index 99917f63..4b8c3b3e 100644 --- a/source/vocab/newtypes/classes.ttl +++ b/source/vocab/newtypes/contentclasses.ttl @@ -12,7 +12,7 @@ prefix kbrda: prefix kbgf: ## -# This file depends on patterns defined in <./rdamatches.ttl> . +# This file depends on patterns defined in <./rdacontentpatterns.ttl> . # Locally defined restriction shapes @@ -25,9 +25,27 @@ prefix kbgf: "Bok"@sv ; :pluralLabel "Böcker"@sv . +:CartographyForm a owl:Restriction ; + owl:onProperty :genreForm ; + owl:hasValue saogf:Kartor ; + :note "SAOGF *is* this general, *not* just for planar maps." . + +:Tactile rdfs:subClassOf [ owl:onProperty :genreForm ; owl:hasValue saogf:Taktila\%20verk ] . + +:StillImage rdfs:subClassOf [ owl:onProperty :genreForm ; owl:hasValue saogf:Bilder ] . + +:NotatedMusic rdfs:subClassOf [ owl:onProperty :genreForm ; owl:hasValue saogf:Musikalier ] . + # Extend existing classes +# TODO: +# * If only contentType kbrda:* will be used; these *need* to be intersections? Or "probably" :Text on revert?! +# We won't know what they are in bf either, unless e.g. a :Poster is a :Text, :Image ... +# * RDA Content Types (some are rebuses with gf:s or even instance types) +# * Some kbrda:* are "primary genreForm"; some could exact-match a type as a Restriction on genreForm or contentType + +:Cartography rdfs:subClassOf :Monograph, :CartographyForm, :CartographyContent . :Text rdfs:subClassOf :Monograph, :TextContent . :TextWithImages rdfs:subClassOf :Monograph, :TextContent, :ImageContent . :StillImage rdfs:subClassOf :Monograph, :ImageContent . @@ -63,7 +81,8 @@ prefix kbgf: ) ; :label "Written book"@en , "Skriven bok"@sv ; - :altLabel "Bok"@sv, "Book"@en . + :altLabel "Bok"@sv, "Book"@en ; + :pluralLabel "Böcker"@sv . :Audiobook a owl:Class ; :category :pending, :complex ; @@ -153,6 +172,11 @@ prefix kbgf: rdfs:subClassOf :Poster , :TextContent ; rdfs:label "Textaffisch"@sv, "Text Poster"@en . +:ImageAndTextPoster a owl:Class ; + :category :pending, :complex ; + rdfs:subClassOf :ImagePoster, :TextPoster ; + rdfs:label "Bild- och textaffisch"@sv, "Image and Text Poster"@en . + :IllustratedWork a owl:Class ; :category :pending, :complex ; @@ -214,6 +238,12 @@ prefix kbgf: ) . +# FIXME: remove instancetype :Map ; compute on revert (if work is :Cartography, prefer Map over all non-electronic?) +# TODO: == Cartography +#f:Map a :Form ; +# rdfs:subClassOf f:CartographicImage ; +# rdfs:label "Karta"@sv , "Map"@en . + :Atlas a owl:Class ; ptg:abstract true ; :category :pending, :complex ; @@ -240,6 +270,7 @@ prefix kbgf: # * In SAOGF, link up *all* SAOGF-Musik[*instrument] as hints for "Music-content"? :PerformedMusic a owl:Class ; + # TODO: is this the "real" :Music (subClassOf :Audio), and :Music is more "genre"? :category :pending, :complex ; owl:intersectionOf ( :Music @@ -285,6 +316,7 @@ prefix kbgf: :Database a owl:Class ; :category :pending, :complex ; + #rdfs:subClassOf :Dataset ; owl:intersectionOf ( :Integrating [ owl:onProperty :genreForm ; @@ -318,44 +350,10 @@ prefix kbgf: # TODO: :scopeNote Tidskrift vs. Tidning vs. Årsbok () :altLabel "Periodika"@sv ; :label "Tidskrift"@sv , - "Periodical"@en . - - -# Complex Instance Classes (Single Unit) - -:PrintedVolume a owl:Class ; - :category :pending, :complex ; - owl:intersectionOf ( - :Print - [ owl:onProperty :carrierType ; - owl:hasValue kbrda:Volume ] - ) . - -:CDBook a owl:Class ; - :category :pending, :complex ; - owl:intersectionOf ( - :Electronic - [ owl:onProperty :carrierType ; - owl:hasValue kbrda:AudioDisc ] - [ owl:onProperty :instanceOf ; - owl:someValuesFrom :BookForm ] - ) . - -:EBook a owl:Class ; - :category :pending, :complex ; - owl:intersectionOf ( - :Electronic # :DigitalResource - [ owl:onProperty :instanceOf ; - owl:someValuesFrom :BookForm ] - ) . - -# TODO: used by whom? Not Webbsök... -#:EAudioBook a owl:Class ; -# :category :pending, :complex ; -# owl:intersectionOf ( -# :Electronic -# [ owl:onProperty :instanceOf ; -# owl:someValuesFrom :AudioBook ] -# ) . + "Periodical"@en ; + :pluralLabel "Tidskrifter"@sv . -# Multimedia AudioBook + WrittenBook Bundle ? +#:CreativeWorkSeries a owl:Class; +# owl:equivalentClass sdo:CreativeWorkSeries; +# rdfs:subClassOf :Serial; +# rdfs:label "Creative Work Series"@en, "Utgivningsserie"@sv . diff --git a/source/vocab/newtypes/kbcr.ttl b/source/vocab/newtypes/kbcr.ttl deleted file mode 100644 index 372cd4d8..00000000 --- a/source/vocab/newtypes/kbcr.ttl +++ /dev/null @@ -1,463 +0,0 @@ -prefix rdfs: -prefix owl: -prefix skos: -prefix bibo: -prefix sdo: -prefix ptg: -prefix bf: - -prefix kbv: -prefix : -prefix marc: - -prefix saogf: -prefix kbrda: - - -#kbv:Instance a owl:Class ; ptg:abstract true . -# NOTE: En del Instanser/bärarformer är mångfaldigbara (såsom Tryckt), en del är (i regel?) unika (såsom Canvas)? - -# TODO: RDA Issuance - mixin? are we crossing dimensions/aspects/modalities/purposes? Serial CD vs. 2 CDs... -#kbv:SingleUnit a :AggregationType ; # TODO: SingleUnit vs. Monograph as "purpose of instance"... -# rdfs:subClassOf kbv:Instance ; -# ptg:abstract true . -# -#kbv:MultipleUnits a :AggregationType ; -# rdfs:subClassOf kbv:Instance ; -# skos:closeMatch marc:MixedForms ; -# skos:narrowMatch marc:MonographicSeries ; -# ptg:abstract true . - -# TODO: For export-to-bf+rda or revert-to-marc; infer type-like properties -# linking to "bases" derived via exactMatch or broadMatch of given types. For -# instance types, that mostly means :carrierType (unless some enum types are -# kept as subclasses of :GenreForm). - -# Unmediated - -kbv:Unmediated a :MediaType ; - ptg:abstract true ; - rdfs:subClassOf kbv:Instance ; - skos:exactMatch kbrda:Unmediated ; - rdfs:label "Omedierad resurs"@sv , "Unmediated"@en ; - :altLabel "Fysisk resurs"@sv . - - -# TODO: Printed vs. Handmade as mixins for precoordinated (7x7)? -kbv:Print a owl:Class; - rdfs:subClassOf kbv:Unmediated . - -# Untenable(?): Handwritten / Typewritten / Photocopied => Purpose (Genre) OR Manufacture/Production -#kbv:Handwritten a :Class; rdfs:subClassOf kbv:Unmediated . -#kbv:Typewrittten a :Class; rdfs:subClassOf kbv:Unmediated . - -kbv:Manuscript a owl:Class ; # TODO: changed to Work in BF - rdfs:subClassOf :Unmediated . - -# mer extraordinärt? Sitter på exemplar? -#kbv:Photocopied a :Class; rdfs:subClassOf kbv:Unmediated ; skos:related marc:RegularPrintReproduction . - -# fmt:LargeText a :Format ? - -kbv:Volume a :CarrierType; - #ptg:abstract true ; - skos:exactMatch kbrda:Volume ; - rdfs:subClassOf kbv:Unmediated ; - rdfs:label "Volym"@sv , "Volume"@en . - -#kbv:MassProducedVolume a :Class ; -# rdfs:subClassOf kbv:MassProduced, kbv:Volume . -# -#kbv:RareVolume a :Class ; -# rdfs:subClassOf kbv:Rare, kbv:Volume . - -kbv:PrintedVolume a :Class ; - rdfs:subClassOf kbv:Print, kbv:Volume ; - rdfs:label "Tryckt volym"@sv , "Printed Volume"@en . - -kbv:HardcoverVolume a :Class; - rdfs:subClassOf kbv:PrintedVolume . - -kbv:PaperbackVolume a :Class; - rdfs:subClassOf kbv:PrintedVolume . - - -kbv:Card a :CarrierType; - skos:exactMatch kbrda:Card ; - rdfs:subClassOf kbv:Unmediated ; - rdfs:label "Bildkort"@sv, "Card"@en . - -kbv:Flipchart a :CarrierType; - skos:exactMatch kbrda:Flipchart ; - rdfs:subClassOf kbv:Unmediated ; - rdfs:label "Blädderblock"@sv, "Flipchart"@en . - -kbv:Roll a :CarrierType; - skos:exactMatch kbrda:Roll ; - rdfs:subClassOf kbv:Unmediated ; - rdfs:label "Rulle"@sv, "Roll"@en . - -kbv:Sheet a :CarrierType; - skos:exactMatch kbrda:Sheet ; - rdfs:subClassOf kbv:Unmediated ; - rdfs:label "Ark"@sv, "Sheet"@en . - -kbv:PrintedSheet a :Class ; - rdfs:subClassOf kbv:Print, kbv:Sheet . - -kbv:HandmadeSheet a :Class ; - rdfs:subClassOf kbv:Unmediated, kbv:Sheet . - - -# TODO: Every non-DigitalResource is physical of course; this is for "none of the others; actual purposeful 3d object"... -kbv:PhysicalObject a owl:Class ; # kbv:UnmediatedObject ? - skos:exactMatch kbrda:Object ; - rdfs:subClassOf kbv:Unmediated . - - -kbv:Tactile a :Class ; - rdfs:subClassOf kbv:Unmediated . - -kbv:BrailleResource a :Class ; - skos:exactMatch marc:Braille ; - rdfs:subClassOf kbv:Tactile, kbv:Print . - -kbv:BrailleVolume a :Class ; - rdfs:subClassOf kbv:BrailleResource, kbv:Volume , [ a owl:Restriction ; - owl:onProperty kbv:instanceOf ; - owl:allValuesFrom kbv:TactileBook - ] ; - skos:exactMatch saogf:Punktskriftsb\%C3\%B6cker . -# :prefLabel "Punktskriftsvolym"@sv, "Braille Volume"@en . - -# "Mediated" - -kbv:Electronic a owl:Class ; # :MediaType ; - ptg:abstract true ; - skos:exactMatch kbrda:Computer, marc:Electronic ; - rdfs:subClassOf kbv:Instance . - - -# TODO: other StorageMedium? Magnetic / Optical / Mechanical ? -kbv:StorageMedium a owl:Class ; - ptg:abstract true ; - rdfs:subClassOf kbv:Instance ; - rdfs:label "Lagringsmedium"@sv , "StorageMedium"@en . - - -kbv:TapeCartridge a :Class ; - rdfs:subClassOf kbv:StorageMedium ; - ptg:abstract true ; - skos:exactMatch marc:TapeCartridge . - -kbv:TapeCassette a :Class ; - rdfs:subClassOf kbv:StorageMedium ; - ptg:abstract true ; - skos:exactMatch marc:TapeCassette . - -kbv:TapeReel a :Class ; - ptg:abstract true ; - rdfs:subClassOf kbv:StorageMedium ; - skos:exactMatch marc:TapeReel . - -kbv:MagneticDisk a :CarrierType ; - skos:exactMatch marc:MagneticDisk ; - rdfs:subClassOf kbv:StorageMedium . - -kbv:MagnetoOpticalDisc a :CarrierType ; - skos:exactMatch marc:MagnetoOpticalDisc ; - rdfs:subClassOf kbv:StorageMedium . - -kbv:OpticalReel a :Class ; - ptg:abstract true ; - rdfs:subClassOf kbv:StorageMedium . - -kbv:OpticalDisc a :CarrierType ; - skos:exactMatch marc:OpticalDisc ; - rdfs:subClassOf kbv:StorageMedium . - -kbv:ElectronicStorageMedium a :Class ; - ptg:abstract true ; - skos:exactMatch marc:DirectElectronic ; - rdfs:subClassOf kbv:Electronic, kbv:StorageMedium ; - rdfs:label "Elektroniskt lagringsmedium"@sv , "StorageMedium"@en . - - -kbv:DigitalResource a :CarrierType ; - skos:broadMatch marc:Remote ; - skos:exactMatch marc:Online, marc:OnlineResource, kbrda:OnlineResource ; - rdfs:subClassOf kbv:Electronic ; - rdfs:label "Digital resurs"@sv , "Digital Resource"@en . - -kbv:ChipCartridge a :CarrierType ; - rdfs:subClassOf kbv:ElectronicStorageMedium ; - skos:exactMatch kbrda:ComputerChipCartridge, marc:ChipCartridge ; - rdfs:label "Computer chip cartridge"@en . - -kbv:ComputerCard a :CarrierType ; - rdfs:subClassOf kbv:ElectronicStorageMedium ; - skos:exactMatch kbrda:ComputerCard, marc:ComputerCard ; - rdfs:label "Datorkort"@sv, "Computer card"@en . - -kbv:ComputerDisc a :CarrierType ; - rdfs:subClassOf kbv:ElectronicStorageMedium ; - skos:broadMatch marc:MagneticDisk ; - skos:exactMatch kbrda:ComputerDisc, marc:ComputerDisc ; - rdfs:label "Datorskiva"@sv, "Computer Disc"@en . - -kbv:ComputerDiscCartridge a :CarrierType ; - rdfs:subClassOf kbv:ElectronicStorageMedium ; - skos:exactMatch kbrda:ComputerDiscCartridge, marc:ComputerDiscCartridge ; - skos:narrowMatch marc:ComputerOpticalDiscCartridge ; - rdfs:label "Datorskivmagasin"@sv, "Computer disc cartridge"@en . - -kbv:ComputerTapeCartridge a :CarrierType ; - rdfs:subClassOf kbv:ElectronicStorageMedium , kbv:TapeCartridge ; - skos:exactMatch kbrda:ComputerTapeCartridge ; - rdfs:label "Datorbandmagasin"@sv, "Computer tape cartridge"@en . - -kbv:ComputerTapeCassette a :CarrierType ; - rdfs:subClassOf kbv:ElectronicStorageMedium, kbv:TapeCassette ; - skos:exactMatch kbrda:ComputerTapeCassette ; - rdfs:label "Datorkassett"@sv, "Computer tape cassette"@en . - -kbv:ComputerTapeReel a :CarrierType ; - rdfs:subClassOf kbv:ElectronicStorageMedium, kbv:TapeReel ; - skos:exactMatch kbrda:ComputerTapeReel ; - rdfs:label "Datorbandspole"@sv, "Computer tape reel"@en . - - -kbv:StandaloneDevice a :CarrierType ; - skos:exactMatch marc:StandaloneDevice ; - rdfs:subClassOf kbv:ElectronicStorageMedium, kbv:PhysicalObject . - - -# TODO: Is the content-as-media-type a "rebus" and enough if content is on the work? Or is the *unit for device capable of sound* encoded here (so "mode of provisioning", not the "purpose of provisioning")? - -kbv:SoundStorageMedium a :MediaType ; - owl:sameAs kbv:SoundRecording ; - ptg:abstract true ; - skos:exactMatch kbrda:Audio ; - rdfs:subClassOf kbv:StorageMedium ; - rdfs:label "Audio"@sv, "Audio"@en . - -kbv:AudioDisc a :CarrierType ; - rdfs:subClassOf kbv:SoundStorageMedium ; - skos:exactMatch kbrda:AudioDisc , marc:SoundDisc ; - rdfs:label "Ljudskiva"@sv , "Audio Disc"@en . - -kbv:AudioCassette a :CarrierType ; - rdfs:subClassOf kbv:SoundStorageMedium, kbv:TapeCassette ; - skos:exactMatch kbrda:Audiocassette , marc:SoundCassette ; - rdfs:label "Ljudkassett"@sv , "Audio Cassette"@en . - -kbv:AudioCartridge a :CarrierType ; - skos:exactMatch kbrda:AudioCartridge , marc:SoundCartridge ; - rdfs:subClassOf kbv:SoundStorageMedium ; - rdfs:label "Ljudmagasin"@sv, "Audio cartridge"@en . - -kbv:AudioCylinder a :CarrierType ; - skos:exactMatch kbrda:AudioCylinder, marc:Cylinder ; - rdfs:subClassOf kbv:SoundStorageMedium ; - rdfs:label "Ljudcylinder"@sv, "Audio cylinder"@en . - -kbv:AudioRoll a :CarrierType ; - skos:exactMatch kbrda:AudioRoll , marc:Roll ; - rdfs:subClassOf kbv:SoundStorageMedium ; - rdfs:label "Ljudrulle"@sv, "Audio roll"@en . - -kbv:AudioTapeReel a :CarrierType ; - skos:exactMatch kbrda:AudiotapeReel; - rdfs:subClassOf kbv:SoundStorageMedium , kbv:TapeReel , marc:SoundTapeReel ; - rdfs:label "Ljudspole"@sv, "Audiotape reel"@en . - -# Zero uses in Libris... -kbv:AudioWireRecording a :CarrierType ; - skos:exactMatch marc:WireRecording . - -kbv:SoundTrackReel a :CarrierType ; - skos:exactMatch kbrda:SoundTrackReel, marc:SoundTrackFilm; - rdfs:subClassOf kbv:SoundStorageMedium ; - rdfs:label "Sound-track reel"@en . - - -kbv:VideoStorageMedium a :MediaType ; - owl:sameAs kbv:VideoRecording ; - ptg:abstract true ; - # TODO: deprecated baseclass kbv:MovingImageInstance ? - skos:exactMatch kbrda:Video ; - rdfs:subClassOf kbv:StorageMedium ; - rdfs:label "Lagringsmedium för video"@sv, "Video Storage Medium"@en . - -kbv:VideoDisc a :CarrierType ; - skos:exactMatch kbrda:Videodisc, marc:Videodisc ; - rdfs:subClassOf kbv:VideoStorageMedium ; - rdfs:label "Videoskiva"@sv , "Video Disc"@en . - -kbv:VideoCartridge a :CarrierType ; - skos:exactMatch kbrda:VideoCartridge, marc:Videocartridge ; - rdfs:subClassOf kbv:VideoStorageMedium ; - rdfs:label "Videomagasin"@sv, "Video cartridge"@en . - -kbv:VideoCassette a :CarrierType ; - skos:exactMatch kbrda:Videocassette, marc:Videocassette ; - rdfs:subClassOf kbv:VideoStorageMedium, kbv:TapeCassette ; - rdfs:label "Videokassett"@sv, "Videocassette"@en . - -kbv:VideoTapeReel a :CarrierType ; - skos:exactMatch kbrda:VideotapeReel , marc:Videoreel ; - rdfs:subClassOf kbv:VideoStorageMedium, kbv:TapeReel ; - rdfs:label "Videospole"@sv, "Videotape reel"@en . - - -# TODO: restricted to some content forms (Visual, TextAsVisual...) - -kbv:Microform a :MediaType ; - ptg:abstract true ; - skos:exactMatch kbrda:Microform; - rdfs:subClassOf kbv:StorageMedium ; - rdfs:label "Mikroform"@sv, "Microform"@en . - -kbv:Microfilm a :CarrierType ; - ptg:abstract true ; - skos:exactMatch marc:Microfilm ; - rdfs:subClassOf kbv:Microform . - -kbv:ApertureCard a :CarrierType ; - skos:exactMatch kbrda:ApertureCard, marc:ApertureCard ; - rdfs:subClassOf kbv:Microform ; - rdfs:label "Maskhålkort"@sv, "Aperture card"@en . - -kbv:Microfiche a :CarrierType ; - skos:exactMatch kbrda:Microfiche ; - rdfs:subClassOf kbv:Microform, marc:Microfiche ; - rdfs:label "Mikrofiche"@sv, "Microfiche"@en . - -kbv:MicroficheCassette a :CarrierType ; - skos:exactMatch kbrda:MicroficheCassette, marc:MicroficheCassette ; - rdfs:subClassOf kbv:Microform ; - rdfs:label "Mikrofichekassett"@sv, "Microfiche cassette"@en . - -kbv:MicrofilmCartridge a :CarrierType ; - skos:exactMatch kbrda:MicrofilmCartridge, marc:MicrofilmCartridge ; - rdfs:subClassOf kbv:Microfilm ; - rdfs:label "Mikrofilmsmagasin"@sv, "Microfilm cartridge"@en . - -kbv:MicrofilmCassette a :CarrierType ; - skos:exactMatch kbrda:MicrofilmCassette, marc:MicrofilmCassette ; - rdfs:subClassOf kbv:Microfilm ; - rdfs:label "Mikrofilmskassett"@sv, "Microfilm cassette"@en . - -kbv:MicrofilmReel a :CarrierType ; - skos:exactMatch kbrda:MicrofilmReel, marc:MicrofilmReel ; - rdfs:subClassOf kbv:Microfilm ; - rdfs:label "Mikrofilmsspole"@sv, "Microfilm reel"@en . - -kbv:MicrofilmRoll a :CarrierType ; - skos:exactMatch kbrda:MicrofilmRoll, marc:MicrofilmRoll ; - rdfs:subClassOf kbv:Microfilm, kbv:VideoStorageMedium ; - rdfs:label "Mikrofilmsrulle"@sv, "Microfilm roll"@en . - -kbv:MicrofilmSlip a :CarrierType ; - skos:exactMatch kbrda:MicrofilmSlip, marc:MicrofilmSlip ; - rdfs:subClassOf kbv:Microform ; - rdfs:label "Mikrofilmsremsa"@sv, "Microfilm slip"@en . - -kbv:Microopaque a :CarrierType ; - skos:exactMatch kbrda:Microopaque ; - rdfs:subClassOf kbv:Microform, marc:Microopaque ; - rdfs:label "Mikrokort"@sv, "Microopaque"@en . - - -kbv:Microscopic a :MediaType ; - ptg:abstract true ; - skos:exactMatch kbrda:Microscopic; - rdfs:subClassOf kbv:StorageMedium ; - rdfs:label "Mikroskopisk"@sv, "Microscopic"@en . - -kbv:MicroscopeSlide a :CarrierType ; - skos:exactMatch kbrda:MicroscopeSlide ; - rdfs:subClassOf kbv:Microscopic ; - rdfs:label "Mikroskoperingspreparat"@sv, "Microscope slide"@en . - - -kbv:Projected a :MediaType ; - ptg:abstract true ; - skos:exactMatch kbrda:Projected; - rdfs:subClassOf kbv:StorageMedium ; - rdfs:label "Projicerad"@sv, "Projected"@en . - -kbv:FilmCartridge a :CarrierType ; - skos:exactMatch kbrda:FilmCartridge ; - rdfs:subClassOf kbv:Projected ; - rdfs:label "Filmmagasin"@sv, "Film cartridge"@en . - -kbv:FilmCassette a :CarrierType ; - skos:exactMatch kbrda:FilmCassette ; - rdfs:subClassOf kbv:Projected ; - rdfs:label "Filmkassett"@sv, "Film cassette"@en . - -kbv:FilmReel a :CarrierType ; - skos:exactMatch kbrda:FilmReel ; - rdfs:subClassOf kbv:Projected ; - rdfs:label "Filmspole"@sv, "Film reel"@en . - -kbv:FilmRoll a :CarrierType ; - skos:exactMatch kbrda:FilmRoll ; - rdfs:subClassOf kbv:Projected ; - rdfs:label "Filmrulle"@sv, "Film roll"@en . - -kbv:Filmslip a :CarrierType ; - skos:exactMatch kbrda:Filmslip, marc:Filmslip ; - rdfs:subClassOf kbv:Projected ; - rdfs:label "Filmremsa"@sv, "Filmslip"@en . - -# TODO: Ensure difference between StillImage Projected and MovingImage Projected! -# See e.g. <> -kbv:Filmstrip a :CarrierType ; - skos:exactMatch kbrda:Filmstrip, marc:FilmstripRoll ; - rdfs:subClassOf kbv:Projected ; - rdfs:label "Bildband"@sv, "Filmstrip"@en . - -kbv:FilmstripCartridge a :CarrierType ; - skos:exactMatch kbrda:FilmstripCartridge, marc:FilmstripCartridge ; - rdfs:subClassOf kbv:Projected ; - rdfs:label "Bildbandsmagasin"@sv, "Filmstrip cartridge"@en . - -kbv:OverheadTransparency a :CarrierType ; - skos:exactMatch kbrda:OverheadTransparency, marc:Transparency ; - rdfs:subClassOf kbv:Projected ; - rdfs:label "OH-bild"@sv, "Overhead transparency"@en . - -kbv:Slide a :CarrierType ; - skos:exactMatch kbrda:Slide, marc:Slide ; - rdfs:subClassOf kbv:Projected ; - rdfs:label "Diabild"@sv, "Slide"@en . - - -kbv:Stereographic a :MediaType ; - ptg:abstract true ; - skos:exactMatch kbrda:Stereographic ; - rdfs:subClassOf kbv:StorageMedium ; - rdfs:label "Stereografisk"@sv, "Stereographic"@en . - -kbv:StereographCard a :CarrierType ; - skos:exactMatch kbrda:StereographCard; - rdfs:subClassOf kbv:Stereographic ; - rdfs:label "Stereografiskt kort"@sv, "Stereograph card"@en . - -kbv:StereographDisc a :CarrierType ; - skos:exactMatch kbrda:StereographDisc; - rdfs:subClassOf kbv:Stereographic ; - rdfs:label "Stereografisk skiva"@sv, "Stereograph disc"@en . - - -## TODO: *when needed* for marc - map patterns to/from to some of these types... - -# TODO: ensure all of these (LHS) can be mapped to one specific type: -# Then these deine a MARC rebus for its restriction on instanceOf (RHS): -# kbv:StillImageInstance kbv:instanceOf kbv:StillImage . -# kbv:MovingImageInstance kbv:instanceOf kbv:MovingImage . -# kbv:ProjectedImageInstance kbv:instanceOf kbv:ProjectedImage . -# kbv:NotatedMusicInstance kbv:instanceOf kbv:NotatedMusic . -# kbv:KitInstance kbv:instanceOf kbv:Kit . diff --git a/source/vocab/newtypes/kbtf.ttl b/source/vocab/newtypes/kbtf.ttl deleted file mode 100644 index 8a1942e7..00000000 --- a/source/vocab/newtypes/kbtf.ttl +++ /dev/null @@ -1,652 +0,0 @@ -prefix rdfs: -prefix owl: -prefix skos: -prefix bibo: -prefix sdo: -prefix ptg: -prefix bf: - -prefix kbv: -prefix : -prefix marc: -prefix f: -prefix g: - -prefix saogf: -prefix barngf: -prefix kbrda: - -base - -# FIXME: replace this file with classes.ttl ! - -# [x] TODO (done in classes?): RDA Content Types (some are rebuses with gf:s or instance types) -# TODO: make kbrda:* sameAs or bases for (basic) types (possibly abstract)? -# *Some* are still better as "genreForm" though; so keep all as such (bound as genres for exact-matching types with a Restriction)? - -# TODO: s/a :Form/a :GenreFormClass/g -# ?gfcls a :GenreFormClass ; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty :genreForm ; owl:hasValue ?gfcls ] . - -# TODO: complement SensoryForm with Affordance? -#kbaf:Listening a :Affordance . -#kbaf:Viewing a :Affordance . -#kbaf:Reading a :Affordance . -#kbaf:Touching a :Affordance . - - -# kbv:ArchivalUnit # TODO: remove from vocab - -kbv:Arrangement a :Class ; - :prefLabel "Arrangement"@en , - "Arrangemang"@sv . - - -# TODO: replace with f:Cartography and compute on revert (an "!important" f:Cartography genreForm) -kbv:Cartography a :Class ; - ptg:abstract true ; - rdfs:subClassOf kbv:Visual ; - skos:editorialNote "TODO: restriction on Map for instanceOf; allValuesFrom this..."@en ; - skos:exactMatch saogf:Kartor ; - :prefLabel "Kartografiskt verk"@sv , - "Cartography"@en . - -# FIXME: remove instancetype kbv:Map ; compute on revert (if work is kbv:Cartography, prefer Map over all non-electronic?) -# TODO: == Cartography -#f:Map a :Form ; -# rdfs:subClassOf f:CartographicImage ; -# rdfs:label "Karta"@sv , "Map"@en . - -f:Atlas a :Form ; - rdfs:subClassOf kbv:Cartography , - kbv:Book ; - rdfs:label "Atlas"@sv , - "Atlas"@en . - -f:CartographicObject a :Form; - #skos:exactMatch kbrda:CartographicThreeDimensionalForm; - rdfs:subClassOf kbv:Cartography, kbv:Object ; - rdfs:label "Kartografiskt objekt"@sv , - "Cartographic Object"@en . - -# FIXME: move instancetype kbv:Globe to work -f:Globe a :Form ; - rdfs:subClassOf f:CartographicObject ; - rdfs:label "Jord- eller månglob"@sv , - "Globe"@en . - -kbv:Tactile a :SensoryForm ; - skos:exactMatch saogf:Taktila\%20verk ; - :prefLabel "Tactile"@en , - "Taktilt verk"@sv . - - -kbv:Dataset a :Class ; - rdfs:subClassOf f:Integrating ; - rdfs:label "Dataset"@en , - "Dataset"@sv . - -f:ComputerDataset a :Form; - #skos:exactMatch kbrda:ComputerDataset; - rdfs:subClassOf kbv:Dataset . - -kbv:Text a :Class ; - #skos:exactMatch kbrda:Text ; - # TODO: alternative bound genreForm - #rdfs:subClassOf [ a owl:Restriction ; - # owl:onProperty :genreForm ; owl:hasValue kbrda:Text ] ; - rdfs:label "Text"@en , "Text"@sv . - -kbv:StillImage a :Class ; - rdfs:subClassOf kbv:Visual ; - #skos:exactMatch kbrda:StillImage ; - skos:exactMatch saogf:Bilder ; - rdfs:label "Still Image"@en , - "Stillbild"@sv ; - :pluralLabel "Stillbilder"@sv . # Bilder - -kbv:Music a :Class ; - skos:exactMatch f:Music ; - rdfs:label "Music"@en , - "Musik"@sv . - -# TODO: base GenreForm? -#kbv:Radio a :Class ; :label "Radio"@sv . -#kbv:TV a :Class ; :label "TV"@sv . - -kbv:MovingImage a :Class ; - rdfs:subClassOf kbv:Visual ; - rdfs:label "Moving Image"@en , - "Rörlig bild"@sv . - -kbv:NotatedMusic a :Class ; - #skos:exactMatch kbrda:NotatedMusic ; - rdfs:subClassOf kbv:Music ; - skos:exactMatch saogf:Musikalier ; - skos:prefLabel "Musikalie"@sv , - "Notated Music"@en . - -kbv:NotatedMovement a :Class ; - #skos:exactMatch kbrda:NotatedMovement ; - rdfs:label "Notated movement"@en , - "Noterad rörelse"@sv . - -kbv:SerialPublication a :Class ; - :category :pending, :concretetype ; - rdfs:subClassOf kbv:CollectingResource ; - skos:exactMatch saogf:Seriella\%20publikationer ; - rdfs:label "Seriell publikation"@sv , - "Serial Publication"@en . - -kbv:IllustratedWork a :Class ; - :category :pending, :concretetype ; - rdfs:subClassOf kbv:Visual ; - #skos:broadMatch kbrda:StillImage ; - skos:exactMatch saogf:Illustrerade\%20verk ; - rdfs:label "Illustrerat verk"@sv , - "Illustrated Work"@en . - -kbv:Book a :Class ; - ptg:abstract true ; - :category :pending ; - owl:equivalentClass bibo:Book, sdo:Book ; - :label "Book"@en , - "Bok"@sv ; - :pluralLabel "Böcker"@sv . - -kbv:NonBookText a :Class ; - :category :pending, :concretetype ; - ptg:abstract true ; - rdfs:subClassOf kbv:Text ; - rdfs:label "Non-book text"@en , - "Enskild text"@sv . - -kbv:Booklet a :Form ; # kbv:MediumText - :category :pending, :richtype ; - rdfs:subClassOf kbv:NonBookText ; - rdfs:label "Texthäfte"@sv , "Booklet"@en . - -kbv:Textleaf a :Form ; # kbv:SmallText - :category :pending, :richtype ; - rdfs:subClassOf kbv:NonBookText ; - rdfs:label "Textblad"@sv , "Text leaf"@en . - -f:NonBookTextWithImages a :Form ; - rdfs:subClassOf kbv:NonBookText , kbv:IllustratedWork ; - rdfs:label "Enskild text med bilder"@sv , - "Non-book With Images"@en . - -kbv:Issue a :Class ; - :category :pending, :concretetype ; - rdfs:subClassOf kbv:NonBookText ; - owl:equivalentClass bibo:Issue ; - rdfs:label "Tidskriftsnummer"@sv , - "Periodical Issue"@en . - -kbv:MonographicSeries a :Class ; - :category :pending, :concretetype ; - rdfs:subClassOf kbv:CollectingResource ; - owl:equivalentClass bibo:Series , - bf:Series, - marc:MonographicSeries ; - rdfs:label "Monograph Series"@en , - "Monografiserie"@sv . - -kbv:Object a :Class ; - :category :ConcreteType ; - #skos:exactMatch kbrda:ThreeDimensionalForm ; - # TODO: rename or altLabel? owl:equivalentClass kbv:ObjectByPurpose ; - :prefLabel "Intensional Object"@en , - "Syftesmässig sak"@sv . - -kbv:WrittenBook a :Class ; - :category :pending, :concretetype ; - rdfs:subClassOf kbv:Book ; - owl:intersectionOf ( - kbv:Text - [ owl:onProperty :genreForm ; - owl:hasValue g:Book ] - ) ; - skos:narrowMatch barngf:Kapitelb\%C3\%B6cker ; - :label "Written book"@en , - "Skriven bok"@sv ; - :altLabel "Bok"@sv, "Book"@en . - -kbv:Audio a :SensoryForm ; - #skos:exactMatch kbrda:Sounds ; - rdfs:label "Audio"@en , - "Ljud"@sv . - -kbv:BookWithImages a :Class ; - :category :pending, :concretetype ; - rdfs:subClassOf kbv:WrittenBook , kbv:IllustratedWork ; - skos:editorialNote "TODO: PictorialWork?"@en ; - skos:scopeNote "Gör ingen skillnad mellan bilder som är integral del av verket (där nya bilder är ett nytt verk) och texter där bilderna är kompletterande (). Sådana skillnader kan anges som genre/form."@sv ; - skos:broadMatch saogf:Bildverk ; - skos:narrowMatch barngf:Bilderb%C3%B6cker ; - rdfs:label "Bok med bilder"@sv , - "Book With Images"@en . - -kbv:CollectingResource a :Class ; - :category :pending, :concretetype ; - ptg:abstract true ; - rdfs:label "Collecting Resource"@en , - "Samlande resurs"@sv . - -kbv:MixedMaterial a :Class ; - rdfs:subClassOf kbv:CollectingResource ; - rdfs:label "Mixed Material"@en , - "Blandat material"@sv . - -kbv:Kit a :Class ; - :category :pending, :richtype ; - # rdfs:seeAlso ; - rdfs:subClassOf kbv:CollectingResource ; - rdfs:label "Kit"@en , - "Kit"@sv . - -kbv:Collection a :Class ; - :category :pending, :richtype ; - rdfs:subClassOf kbv:CollectingResource ; - rdfs:label "Collection"@en , - "Samling"@sv . - -f:Integrating a :Class ; - ptg:abstract true ; - rdfs:subClassOf kbv:CollectingResource ; - rdfs:label "Integrating"@en , - "Integrerande"@sv . - -kbv:Periodical a :Class ; - :category :pending, :concretetype ; - rdfs:seeAlso ; - rdfs:subClassOf kbv:SerialPublication ; - skos:exactMatch saogf:Periodika ; - :altLabel "Periodika"@sv ; - rdfs:label "Tidskrift"@sv , - "Periodical"@en ; - :pluralLabel "Tidskrifter"@sv . - -kbv:Film a :Class ; - :category :pending, :concretetype ; - rdfs:subClassOf kbv:MovingImage ; - owl:equivalentClass bibo:Film ; - skos:exactMatch saogf:Filmer ; - rdfs:label "Film"@sv , - "Film"@en . - -kbv:Visual a :SensoryForm ; - :prefLabel "Visual"@en , - "Visuellt verk"@sv . - -kbv:Archive a :Class ; - :category :pending, :concretetype ; - rdfs:subClassOf kbv:CollectingResource ; - skos:exactMatch saogf:Arkiv ; - rdfs:label "Arkiv"@sv , - "Archive"@en . - -kbv:Article a :Class ; - :category :pending, :concretetype ; - rdfs:subClassOf kbv:NonBookText ; - owl:equivalentClass bibo:Article ; - rdfs:label "Artikel"@sv , - "Article"@en . - -kbv:Audiobook a :Class ; - :category :pending, :concretetype ; - rdfs:subClassOf kbv:Audio , - kbv:Book , - bibo:AudioDocument ; - skos:exactMatch saogf:Ljudb\%C3\%B6cker ; - rdfs:label "Ljudbok"@sv , - "Audiobook"@en . - -kbv:Database a :Class ; - :category :pending, :concretetype ; - rdfs:subClassOf f:Integrating ; - skos:exactMatch saogf:Databaser ; - skos:narrowMatch marc:UpdatingDatabase ; - rdfs:label "Databas"@sv , - "Database"@en . - -kbv:TactileBook a :Class ; - :category :pending, :concretetype ; - rdfs:subClassOf kbv:Book , - kbv:Tactile ; - skos:editorialNote "TODO: differentiate between \"filtbok\" och \"punktskriftsbok\"?"@en ; - #skos:broadMatch kbrda:TactileText ; - skos:narrowMatch saogf:Punktskriftsb\%C3\%B6cker ; - rdfs:label "Tactile Book"@en , - "Taktil bok"@sv . - -f:AudioProgram a :Form ; - rdfs:subClassOf f:NonMusicAudio ; - rdfs:label "Ljudprogram"@sv , - "Audio Program"@en . - -f:NonMusicAudio a :Form ; - ptg:abstract true ; - rdfs:subClassOf kbv:Audio ; - rdfs:label "Non-music audio"@en , - "Ljud men inte musik"@sv . - -f:BoardGame a :Form ; - rdfs:subClassOf f:InteractiveObject , g:PuzzleOrGame ; - skos:exactMatch ; - rdfs:label "Brädspel"@sv , - "Boardgame"@en . - -f:Brochure a :Form ; - rdfs:subClassOf kbv:NonBookText ; - skos:exactMatch ; - rdfs:label "Broschyr"@sv , - "Brochure"@en . - -f:Comic a :Form ; - rdfs:subClassOf g:GraphicLiterature ; - skos:exactMatch saogf:Serietidningar ; - rdfs:label "Serietidning"@sv , - "Comic"@en . - -f:ComicIssue a :Form ; - rdfs:subClassOf f:Comic , - kbv:Issue ; - owl:equivalentClass sdo:ComicIssue ; - rdfs:label "Serietidningsnummer"@sv , - "Comic Issue"@en . - -f:ComicSerial a :Form ; - rdfs:comment "TODO: series of issues vs. arc of stories?" ; - rdfs:subClassOf f:Comic , - kbv:SerialPublication ; - # kbv:MonographicSeries ; # TODO: Separate ComicSeries ? - owl:equivalentClass sdo:ComicSeries ; - rdfs:label "Serietidningsserie"@sv , - "Comic Series"@en . - -kbv:Multimedia a :Class ; - rdfs:label "Multimedia"@sv , - "Multimedia"@en . - -kbv:Software a :Form ; # TODO: pending; integrate with ComputerGame, Application, ... - ptg:abstract true ; - rdfs:subClassOf kbv:Multimedia ; - :prefLabel "Mjukvara"@sv , - "Software"@en . - -f:ComputerCode a :Form ; - rdfs:subClassOf kbv:Software ; - rdfs:label "Datorkod"@sv , - "Computer Code"@en . - -f:ComputerProgram a :Form ; - #skos:exactMatch kbrda:ComputerProgram; - rdfs:subClassOf kbv:Software ; - rdfs:label "Datorprogram"@sv , - "Computer Program"@en . - -f:ComputerGame a :Form ; - rdfs:subClassOf g:PuzzleOrGame, f:ComputerProgram ; - skos:exactMatch saogf:Datorspel ; - rdfs:label "Datorspel"@sv , - "Computer Game"@en . - -f:Diagram a :Form ; - rdfs:subClassOf kbv:StillImage ; - skos:exactMatch saogf:Diagram ; - rdfs:label "Diagram"@sv , - "Diagram"@en . - -f:FormDocument a :Form ; - rdfs:seeAlso ; - rdfs:subClassOf kbv:NonBookText ; - skos:exactMatch saogf:Blanketter ; - rdfs:label "Blankett"@sv , - "Form Document"@en . - -f:Handwriting a :Form ; - rdfs:subClassOf kbv:Manuscript , - kbv:Text ; - skos:exactMatch saogf:Handskrifter ; - rdfs:label "Handskrift"@sv , - "Handwriting"@en ; - :pluralLabel "Handskrifter"@sv . - -f:Illustration a :Form ; - rdfs:subClassOf kbv:StillImage ; - skos:exactMatch saogf:Illustrationer ; - rdfs:label "Illustration"@sv , - "Illustration"@en . - -f:InteractiveObject a :Form ; - rdfs:subClassOf kbv:Object ; - rdfs:label "Interaktivt objekt"@sv , - "InteractiveObject"@en . - -f:Manual a :Form ; - rdfs:subClassOf kbv:Text , - g:TeachingMaterial ; - skos:closeMatch saogf:Handb\%C3\%B6cker\%2C\%20manualer\%20etc ; - rdfs:seeAlso ; - rdfs:label "Manual"@sv , - "Manual"@en . - -f:MechanicalBook a :Form ; - rdfs:subClassOf f:InteractiveObject , - kbv:WrittenBook ; - rdfs:label "Mekanisk bok"@sv , - "Mechanical Book"@en . - -f:Note a :Form ; - rdfs:subClassOf kbv:NonBookText ; - owl:equivalentClass bibo:Note ; - skos:exactMatch saogf:Anteckningar ; - rdfs:label "Anteckning"@sv , - "Note"@en . - -f:Painting a :Form ; - rdfs:subClassOf kbv:StillImage ; - skos:exactMatch ; - rdfs:label "Målning"@sv , - "Painting"@en . - -kbv:PerformedMusic a :Class ; - :category :pending, :concretetype ; - #skos:exactMatch kbrda:PerformedMusic ; - rdfs:subClassOf kbv:Audio , - kbv:Music ; - rdfs:label "Performed Music"@en , - "Framförd musik"@sv . - -f:Photobook a :Form ; - rdfs:subClassOf kbv:BookWithImages , - kbv:Book ; - skos:exactMatch saogf:Fotob\%C3\%B6cker ; - rdfs:label "Fotobok"@sv , - "Photobook"@en . - -f:Photograph a :Form ; - rdfs:subClassOf kbv:StillImage ; - skos:exactMatch saogf:Fotografier ; - rdfs:label "Fotografi"@sv , - "Photograph"@en ; - :pluralLabel "Fotografier"@sv . - -f:PictureDictionary a :Form ; - rdfs:subClassOf kbv:Lexicon , - kbv:BookWithImages ; - skos:exactMatch saogf:Bildlexikon ; - rdfs:label "Bildlexikon"@sv , - "Picture Dictionary"@en . - -f:Postcard a :Form ; - rdfs:subClassOf kbv:StillImage ; - skos:exactMatch saogf:Vykort ; - rdfs:label "Vykort"@sv , - "Postcard"@en . - -# TODO: GenreForm? -#f:PostcardBook a :Form ; -# rdfs:subClassOf f:Postcard , f:Book ; -# skos:exactMatch ; - -f:Poster a :Form ; - rdfs:subClassOf kbv:StillImage ; - owl:equivalentClass sdo:Poster ; - skos:exactMatch saogf:Affischer ; - rdfs:label "Affisch"@sv, "Poster"@en ; - :pluralLabel "Affischer"@sv . - -f:ImagePoster a :Form ; - rdfs:subClassOf f:Poster ; - #skos:broadMatch kbrda:StillImage ; - rdfs:label "Bildaffisch"@sv, "Image Poster"@en . - -f:TextPoster a :Form ; - rdfs:subClassOf f:Poster ; - #skos:broadMatch kbrda:Text ; - rdfs:label "Textaffisch"@sv, "Text Poster"@en . - -f:ImageAndTextPoster a :Form ; - rdfs:subClassOf f:ImagePoster, f:TextPoster ; - rdfs:label "Bild- och textaffisch"@sv, "Image and Text Poster"@en . - -f:Puzzle a :Form ; - rdfs:subClassOf f:InteractiveObject, g:PuzzleOrGame ; - skos:exactMatch saogf:Pussel ; - rdfs:label "Pussel"@sv , - "Puzzle"@en . - -f:Sculpture a :Form ; - rdfs:subClassOf kbv:Object ; - rdfs:label "Skulptur"@sv , - "Sculpture"@en . - -f:SpokenBook a :Form ; - rdfs:subClassOf kbv:Audiobook , - f:SpokenWord ; - skos:exactMatch saogf:Talb\%C3\%B6cker ; - rdfs:label "Talbok"@sv , - "Spoken Book"@en . - -f:SpokenWord a :Form ; - #skos:exactMatch kbrda:SpokenWord ; - rdfs:subClassOf kbv:Text , - kbv:Audio ; - rdfs:label "Tal"@sv , - "Spoken Word"@en . - -f:SpokenPaper a :Form ; - rdfs:subClassOf kbv:Periodical , - f:SpokenWord ; - skos:exactMatch saogf:Taltidningar ; - rdfs:label "Taltidning"@sv , - "Spoken Paper"@en . - -f:TVProgram a :Form ; - rdfs:subClassOf kbv:MovingImage ; - skos:exactMatch saogf:Tv-program ; - rdfs:label "Tv-program"@sv , - "TV-Program"@en . - -f:TVSeries a :Form ; - rdfs:subClassOf f:TVProgram , - kbv:MonographicSeries ; - skos:exactMatch saogf:Tv-serier ; - rdfs:label "Tv-serie"@sv , - "TV-Series"@en . - -f:Toy a :Form ; - rdfs:subClassOf f:InteractiveObject ; - rdfs:label "Leksak"@sv , - "Toy"@en . - -f:Trailer a :Form ; - rdfs:subClassOf kbv:Film ; - skos:exactMatch saogf:Trailrar ; - rdfs:label "Trailer"@sv , - "Trailer"@en . - -f:Website a :Form ; - rdfs:subClassOf kbv:OnlineResource , - f:Integrating ; - skos:exactMatch saogf:Webbplatser ; - rdfs:label "Webbplats"@sv , - "Website"@en . - -## Just RDA content types (handled by rdamatches IF used by some concrete/complex type) -#f:CartographicDataset a :Form; -# skos:exactMatch kbrda:CartographicDataset; -# rdfs:subClassOf kbv:Cartography, kbv:Dataset ; -# rdfs:label "Kartografiskt dataset"@sv , "Cartographic dataset"@en . -# -#f:CartographicImage a :Form; -# skos:exactMatch kbrda:CartographicImage; -# #skos:closeMatch kbv:Map ; -# rdfs:subClassOf kbv:Cartography, kbv:StillImage ; -# rdfs:label "Kartografisk bild"@sv , "Cartographic image"@en ; -# skos:altLabel "Karta"@sv, "Kartor in plano"@sv ; -# :pluralLabel "Kartor"@sv . -# -#f:CartographicMovingImage a :Form; -# skos:exactMatch kbrda:CartographicMovingImage; -# rdfs:subClassOf kbv:Cartography, kbv:MovingImage ; -# rdfs:label "Kartografisk rörlig bild"@sv , "Cartographic moving image"@en . -# -#f:TactileCartography a :Form ; -# rdfs:subClassOf kbv:Cartography , -# kbv:Tactile ; -# skos:narrowMatch kbrda:CartographicTactileImage, kbdra:CartographicTactileThreeDimensionalForm ; #? -# skos:editorialNote "TODO: edge case? Force a choice of primary purpose of expression? This is not a11y, that's about the instance. Mixed purposes can be solved by primary purpose as type and additional \"color\" as genre."@en ; -# rdfs:label "Taktilt kartografiskt verk"@sv , -# "Tactile Cartography"@en . -# -#f:CartographicTactileImage a :Form; -# skos:exactMatch kbrda:CartographicTactileImage; -# rdfs:subClassOf kbv:Cartography, kbv:StillImage ; -# rdfs:label "Kartografisk taktil bild"@sv , "Cartographic tactile image"@en . -# -#f:CartographicTactileObject a :Form; -# skos:exactMatch kbrda:CartographicTactileThreeDimensionalForm; -# rdfs:subClassOf kbv:Cartography, f:TactileObject ; -# rdfs:label "Kartografiskt taktilt objekt"@sv , -# "Cartographic Tactile Object"@en . -# -#f:TactileImage a :Form ; -# skos:exactMatch kbrda:TactileImage; -# rdfs:subClassOf kbv:StillImage, kbv:Tactile ; # _:TactileInstanceRestriction . -# rdfs:label "Taktil bild"@sv , "Tactile image"@en . -# -#f:TactileNotatedMusic a :Form ; -# skos:exactMatch kbrda:TactileNotatedMusic; -# rdfs:subClassOf kbv:NotatedMusic, kbv:Tactile ; # , _:TactileInstanceRestriction . -# rdfs:label "Taktil noterad musik"@sv , "Tactile notated music"@en . -# -#f:TactileNotatedMovement a :Form ; -# skos:exactMatch kbrda:TactileNotatedMovement; -# rdfs:subClassOf kbv:NotatedMovement, kbv:Tactile ; # , _:TactileInstanceRestriction . -# rdfs:label "Taktil noterad rörelse"@sv , "Tactile notated movement"@en . -# -#f:TactileText a :Form ; -# skos:exactMatch kbrda:TactileText; -# rdfs:subClassOf kbv:Text, kbv:Tactile ; # , _:TactileInstanceRestriction . -# rdfs:label "Taktil text"@sv , "Tactile text"@en . -# -#f:TactileObject a :Form ; -# skos:exactMatch kbrda:TactileThreeDimensionalForm; -# rdfs:subClassOf kbv:Object, kbv:Tactile ; # , _:TactileInstanceRestriction , -# rdfs:label "Taktilt objekt"@sv , -# "Tactile Object"@en . -# -##_:TactileInstanceRestriction a owl:Restriction ; -## owl:onProperty kbv:hasInstance; -## owl:allValueFrom kbv:Tactile . -# -#kbv:ThreeDimensionalMovingImage -# skos:exactMatch kbrda:ThreeDimensionalMovingImage ; -# :prefLabel "Tredimensionell rörlig bild", "Three-dimensional moving image"@en . -# -#kbv:TwoDimensionalMovingImage -# skos:exactMatch kbrda:TwoDimensionalMovingImage ; -# :prefLabel "Tvådimensionell rörlig bild", "Two-dimensional moving image"@en . - diff --git a/source/vocab/newtypes/rdamatches.ttl b/source/vocab/newtypes/rdacontentpatterns.ttl similarity index 98% rename from source/vocab/newtypes/rdamatches.ttl rename to source/vocab/newtypes/rdacontentpatterns.ttl index ac2299c6..0e78a0f0 100644 --- a/source/vocab/newtypes/rdamatches.ttl +++ b/source/vocab/newtypes/rdacontentpatterns.ttl @@ -10,7 +10,8 @@ prefix kbrda: ## # Mixin classes to entail :contentType for RDA coordination. -# See subclasses in other documents. +# See <../../rda-terms.ttl>. +# See subclasses of these in other documents. # TODO: Define restriction classes as ptg:abstract true? diff --git a/source/vocab/things.ttl b/source/vocab/things.ttl index ca096b5a..58e692ea 100644 --- a/source/vocab/things.ttl +++ b/source/vocab/things.ttl @@ -14,12 +14,17 @@ @prefix lcvi: . @prefix sdo: . -@prefix rdaent: . -@prefix rdael: . -@prefix rdacontent: . -@prefix rdamedia: . -@prefix rdacarrier: . -@prefix rdami: . +# FIXME: Broken? Also; map to openwemi (instead or as well)! +@prefix rdaent: . + +@prefix rdael: . + +# FIXME: replace use of these in mappings below with kbrda equivalents! +@prefix rdacontent: . +@prefix rdamedia: . +@prefix rdacarrier: . + +@prefix rdami: . @prefix rdau: . @prefix rdfa: . @@ -132,8 +137,10 @@ # alternative: kbv:issuanceType dct:isReferencedBy [ rdfs:label "RDA 2.13" ] :issuanceType a owl:ObjectProperty; rdfs:label "Mode of issuance"@en, "utgivningssätt"@sv; + rdfs:domain :Instance ; owl:equivalentProperty bf2:issuance; - rdfs:comment "Kategorisering som reflekterar om en resurs är utgiven i en eller flera delar, på vilket sätt den uppdateras, och dess tänkta avslutning."@sv; + rdfs:comment "Kategorisering som reflekterar om en resurs är utgiven i en eller flera delar."@sv ; + # ", på vilket sätt den uppdateras, och dess tänkta avslutning."@sv; # NOTE: This is now an aspect of Work type! rdfs:subPropertyOf rdf:type, rdau:P60051 . # :ContentType a owl:Class; @@ -144,7 +151,7 @@ rdfs:label "Medietyp"@sv; owl:equivalentClass bf2:Media, dc:MediaType . -:CarrierType a owl:Class; # a :MediaType ? +:CarrierType a owl:Class; rdfs:label "Bärartyp"@sv; rdfs:subClassOf :MediaType ; owl:equivalentClass bf2:Carrier . @@ -156,34 +163,6 @@ sdo:domainIncludes :ContentType, :MediaType, :CarrierType ; rdfs:label "Termgroup"@en, "Termgrupp"@sv . -# Generation Rules for Alignment Mappings: - -# Vocab Macro: -# INSERT { -# ?enumType rdfs:subClassOf [ a owl:Restriction; -# owl:onProperty bf2:carrier; owl:hasValue ?enumType ] . -#} WHERE { -# ?enumProp rdfs:subPropertyOf rdf:type ; -# rdfs:range ?metaType . -# ?enumType a ?metaType . -#} - - -# MARC Aligments for Editing - -# RDA Alignments (some draft examples...) - -#:Unmediated a bf2:Media; -# skos:exactMatch rdamedia:1007 ; # "unmediated" ("text", "non-projected graphic") -# rdfs:label "Omedierad"@sv; -# rdfs:subClassOf [ a owl:Restriction; owl:onProperty bf2:media; owl:hasValue :Unmediated ] . - -#:Volume a owl:Class, bf2:Carrier; -# rdfs:label "Volym"@sv; -# skos:exactMatch rdacarrier:1049; # "volume" -# rdfs:subClassOf :Unmediated, -# [ a owl:Restriction; owl:onProperty bf2:carrier; owl:hasValue :Volume ] . - # Detailed Carrier Enumeration Properties and Types @@ -231,6 +210,7 @@ # subClassOf bf2:Work Types :Audio a owl:Class; + #:category :SensoryForm ; rdfs:label "Ljud"@sv; skos:definition "Resurs uttryckt i en hörbar form, inklusive musik och andra ljud."@sv; rdfs:subClassOf :Work; @@ -239,6 +219,7 @@ :Cartography a owl:Class; rdfs:label "Karta"@sv; + #skos:prefLabel "Kartografiskt verk"@sv , "Cartography"@en ; skos:definition "Resurs som visar spatial information, inkluderar kartor, atlaser, glober med mera."@sv; rdfs:subClassOf :Work; owl:equivalentClass bf2:Cartography . @@ -248,7 +229,10 @@ # rdfs:label "Dataset"@sv; # skos:definition "Data kodad i en definierad struktur. Inkluderar bland annat numeriska data, miljödata. Används av applikationsprogramvara för att beräkna medelvärden, korrelationer, eller för att producera modeller etc. Visas normalt inte i sin råa form."@sv; # rdfs:subClassOf :Work; - owl:equivalentClass bf2:Dataset . + rdfs:subClassOf :Integrating ; + rdfs:label "Dataset"@en , + "Dataset"@sv ; + owl:equivalentClass bf2:Dataset, dctype:Dataset . :MixedMaterial a owl:Class; rdfs:label "Blandat material"@sv; @@ -295,10 +279,13 @@ skos:definition "Resurs i en form avsedd att uppfattas visuellt i tre dimensioner. Inkluderar tillverkade föremål som modeller, skulpturer, kläder och leksaker samt naturligt förekommande föremål, till exempel monterade för visning."@sv; skos:broadMatch rdacontent:1021 ; # "three-dimensional form" rdfs:subClassOf :Work; - owl:equivalentClass bf2:Object . + owl:equivalentClass bf2:Object ; + :altLabel "Intensional Object"@en , + "Syftesmässig sak"@sv . :StillImage a owl:Class; rdfs:label "Stillbild"@sv; + :pluralLabel "Stillbilder"@sv ; skos:definition "Resurs uttryckt genom linje, form, skuggning, etc. Avsedd att uppfattas visuellt som en stillbild eller bilder i två dimensioner."@sv; skos:exactMatch rdacontent:1014 ; # "still image" rdfs:subClassOf :Visual ; @@ -320,6 +307,7 @@ # rdfs:subClassOf :Work . :Kit a owl:Class; + # rdfs:seeAlso ; rdfs:label "Kit"@en, "Paket"@sv; rdfs:subClassOf :Work . @@ -341,6 +329,7 @@ owl:equivalentClass dctype:Software . :Visual a owl:Class; + #:category :SensoryForm ; ptg:abstract true ; rdfs:label "Visual"@en, "Visuell resurs"@sv ; skos:altLabel "Bild"@sv ; @@ -428,7 +417,8 @@ # Mereological Dimensions (Issuance / Composition) -:Monograph a owl:Class, :IssuanceType; +:Monograph a owl:Class ; + rdfs:subClassOf :Work ; rdfs:label "Monograph"@en, "Monografisk resurs"@sv; skos:exactMatch lcvi:mono, rdami:1001 . # "single unit"@en @@ -436,7 +426,8 @@ rdfs:label "Part"@en, "Del av resurs"@sv; ptg:abstract true . -:ComponentPart a owl:Class, :IssuanceType; +:ComponentPart a owl:Class ; + owl:deprecated true ; # {| rdfs:label "Ersatt av Monograph."@sv |} rdfs:label "Component Part"@en, "Del av sammansatt resurs"@sv; rdfs:subClassOf :Part . # Is this really Multipart monograph? @@ -446,21 +437,24 @@ ptg:abstract true . # Not used in marcframe from 1.15.0. -:Continuing a owl:Class; - rdfs:label "Continuing"@en, "Fortlöpande resurs"@sv; - ptg:abstract true; - rdfs:subClassOf :Aggregate . - -:Collection a owl:Class, :IssuanceType; +:Collection a owl:Class ; + rdfs:subClassOf :Work ; rdfs:label "Collection"@en, "Samling"@sv; rdfs:subClassOf :Aggregate; owl:equivalentClass dctype:Collection . -:SubCollection a owl:Class, :IssuanceType; +:SubCollection a owl:Class ; + owl:deprecated true ; # {| rdfs:label "Ersatt av enbart Collection."@sv |} rdfs:label "Subcollection"@en, "Delsamling"@sv; rdfs:subClassOf :Collection, :Part . -:Integrating a owl:Class, :IssuanceType; +:Continuing a owl:Class; + rdfs:label "Continuing"@en, "Fortlöpande resurs"@sv; # Diachronic? + ptg:abstract true; + rdfs:subClassOf :Aggregate . + +:Integrating a owl:Class ; + rdfs:subClassOf :Work ; rdfs:label "Integrating"@en, "Integrerande resurs"@sv; skos:exactMatch lcvi:intg, rdami:1004 ; # "integrating resource"@en rdfs:subClassOf :Continuing . @@ -470,40 +464,31 @@ # owl:equivalentClass bibo:DocumentPart; # rdfs:subClassOf :Monograph, :ComponentPart . # -:SerialComponentPart a owl:Class, :IssuanceType; +:SerialComponentPart a owl:Class ; + owl:deprecated true ; # {| rdfs:label "Ersatt av Monograph."@sv |} # TODO: Är dessa *faktiskt* ComponentPart? rdfs:label "Serial Component Part"@en, "Del av sammansatt seriell resurs"@sv; rdfs:subClassOf :Serial, :ComponentPart . -:Multipart a owl:Class; - ptg:abstract true; - rdfs:label "Multipart"@en, "Multipel del"@sv; - rdfs:subClassOf :Aggregate . +#:Multipart a owl:Class; +# ptg:abstract true; +# rdfs:label "Multipart"@en, "Multipel del"@sv; +# rdfs:subClassOf :Aggregate . #:MultipartMonograph a owl:Class; # rdfs:label "Flerbandsverk"@sv; # skos:exactMatch rdami:1002 ; # "multipart monograph"@en # rdfs:subClassOf :Multipart, :Monograph . -:Serial a owl:Class, :IssuanceType; +:Serial a owl:Class ; + rdfs:subClassOf :Work ; rdfs:label "Serial"@en, "Seriell resurs"@sv; skos:exactMatch lcvi:serl, rdami:1003 ; # "serial" @en rdfs:subClassOf :Continuing . -# OBSOLOTE CHOICE should use serial instead. -#:Periodical a owl:Class, :IssuanceType; -# rdfs:label "Periodical"@en, "Periodika"@sv; -# skos:altLabel "Periodisk resurs"@sv; -# rdfs:comment "Samma sak som seriell resurs."@sv . - -#:CreativeWorkSeries a owl:Class; -# owl:equivalentClass sdo:CreativeWorkSeries; -# rdfs:subClassOf :Serial; -# rdfs:label "Creative Work Series"@en, "Utgivningsserie"@sv . - -:LicenseAgreementBoundDescription a owl:Class, :IssuanceType ; +:LicenseAgreementBoundDescription a owl:Class ; :category :pending ; - rdfs:label "License Agreement Bound Description"@en, "Licensavtalsbunden beskrivning"@sv; - rdfs:subClassOf :Aggregate . + owl:deprecated true ; + rdfs:label "License Agreement Bound Description"@en, "Licensavtalsbunden beskrivning"@sv . :SerialEdition a owl:Class ; rdfs:subClassOf :Creation, :TemporalEntity , [ a owl:Restriction ; @@ -533,10 +518,12 @@ owl:equivalentClass bf2:Archival . :Electronic a owl:Class; + #ptg:abstract true ; rdfs:label "Elektronisk"@sv; skos:definition "Resurs som är avsedd för manipulering av en dator, åtkomst direkt eller på distans."@sv; rdfs:subClassOf :Instance; :inCollection marc:typeFromBib007; + #skos:exactMatch kbrda:Computer, marc:Electronic ; skos:closeMatch rdamedia:1003 ; # "computer" owl:equivalentClass bf2:Electronic . @@ -553,7 +540,9 @@ owl:equivalentClass bf2:Print . :Tactile a owl:Class; + #:category :SensoryForm ; rdfs:label "Taktil resurs"@sv; + skos:altLabel "Taktilt verk"@sv; skos:definition "Resurs som är avsedd att uppfattas genom beröring."@sv; rdfs:subClassOf :Instance; :inCollection marc:typeFromBib007; @@ -570,6 +559,7 @@ # Combined "Instance with restricted Work" types from MARC (007) :StillImageInstance a owl:Class; + owl:deprecated true ; rdfs:label "Still Image Instance"@en, "Instans av stillbild"@sv; rdfs:subClassOf :Instance ; :inCollection marc:typeFromBib007; @@ -579,6 +569,7 @@ ] . :MovingImageInstance a owl:Class; + owl:deprecated true ; :category :pending ; rdfs:label "Instans av rörlig bild"@sv; rdfs:subClassOf :Instance ; @@ -589,6 +580,7 @@ ] . :KitInstance a owl:Class; + owl:deprecated true ; :category :pending ; rdfs:label "Kit Instance"@en, "Instans av paket"@sv; rdfs:subClassOf :Instance ; @@ -609,6 +601,7 @@ ] . :TextInstance a owl:Class; + owl:deprecated true ; :category :pending ; rdfs:label "Text Instance"@en, "Instans av text"@sv; rdfs:subClassOf :Instance ; @@ -619,6 +612,7 @@ ] . :ProjectedImageInstance a owl:Class; + owl:deprecated true ; :category :pending ; rdfs:label "Projected Image Instance"@en, "Instans av projicerad bild"@sv; rdfs:subClassOf :Instance ; @@ -631,19 +625,21 @@ # Concrete Types (can grow a lot, be combined with e.g. productontology...) # TODO: Do some classes here still conflate Work/Instance? (Apart from some commented?) +# FIXME: Redefine as Work (possibly complex) subclass; *calculate* on convert/revert to marc :Globe a owl:Class; rdfs:label "Globe"@en, "Kartglob"@sv; - rdfs:subClassOf :Instance ; + rdfs:subClassOf :Instance ; # FIXME: :Cartography :inCollection marc:typeFromBib007; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty :instanceOf ; owl:allValuesFrom :Cartography ] . +# FIXME: Redefine as Work (possibly complex) subclass; *calculate* on convert/revert to marc :Map a owl:Class; rdfs:label "Map"@en, "Karta"@sv; owl:equivalentClass bibo:Map ; - rdfs:subClassOf :Instance ; + rdfs:subClassOf :Instance ; # FIXME: :Cartography :inCollection marc:typeFromBib007; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty :instanceOf ; @@ -651,6 +647,7 @@ ] . :RemoteSensingImage a owl:Class; + owl:deprecated true ; :category :pending ; rdfs:label "Satellitbild"@sv; # Fjärranalysbild? rdfs:subClassOf :Instance ; @@ -678,152 +675,10 @@ owl:allValuesFrom :MovingImage ] . -# TODO: Aligning ideas: - -# Common Carrier Types +# on Instance. Cf. Monograph subclassof Work ("purpose of expression") -#:Disc -#:CD -#:DVD +:SingleUnit a :IssuanceType ; + rdfs:label "Enskild enhet"@sv . -# TODO: missing rdamedia mappings: -# skos:exactMatch rdamedia:1004 ; # "microscopic" -# skos:exactMatch rdamedia:1006 ; # "stereographic" -# skos:exactMatch rdamedia:1008 ; # "video" - -#:Database a owl:Class; -# rdfs:label "Databas"@sv; -# rdfs:subClassOf :Integrating, :Electronic, :Dataset . -# -#:Website a owl:Class; -# rdfs:label "Webbplats"@sv; -# rdfs:subClassOf :Integrating, :Multimedia, :Text; -# owl:equivalentClass bibo:Website . -# -#:Book a owl:Class; -# rdfs:label "Book"@en, "Bok"@sv; -# owl:equivalentClass bibo:Book; -# rdfs:subClassOf -# :Print, -# [ a owl:Restriction; owl:onProperty :instanceOf; owl:allValuesFrom :Text ] . -# [ a owl:Restriction; owl:onProperty :issuanceType; owl:hasValue :Monograph ] . -# #[ a owl:Restriction; owl:onProperty :extent; owl:allValuesFrom :PageCount ] . -# -#:BookSeries a owl:Class; -# rdfs:subClassOf :Text, :Serial . -# -#:MultiVolumeBook a owl:Class; -# rdfs:label "Multipart Book"@en, "Bokverk"@sv; -# skos:altLabel "Flervolymsbok"@sv; -# rdfs:subClassOf :Book, :MultipartMonograph; -# owl:equivalentClass bibo:MultiVolumeBook . -# -#:BookVolume a owl:Class; -# rdfs:label "Book Volume"@en, "Bokband"@sv ; -# skos:altLabel "Band"@sv, "Volym"@sv ; -# rdfs:subClassOf :Book, -# :PublicationVolume . -# -#:PrintedText a owl:Class; -# rdfs:label "Tryckt text"@sv; -# rdfs:subClassOf :Text, :Print . -# -#:PrintedBook a owl:Class; -# rdfs:label "Printed Book"@en, "Tryckt bok"@sv; -# rdfs:subClassOf :Book, :PrintedText; -# rdfs:subClassOf [ -# a owl:Restriction; -# owl:onProperty :contentType; -# owl:hasValue :Text -# ], [ -# a owl:Restriction; -# owl:onProperty :mediaType; -# owl:hasValue :Unmediated -# ], [ -# a owl:Restriction; -# owl:onProperty :carrierType; -# owl:hasValue :Volume -# ] . -# -#:EBook a owl:Class; -# rdfs:label "E-bok"@sv; -# rdfs:subClassOf :Book, :Electronic . -# -#:Audiobook a owl:Class; -# rdfs:label "Ljudbok"@sv; -# #owl:equivalentClass bibo:AudioDocument; -# rdfs:subClassOf :Book, :Audio, bibo:AudioDocument . - -#CDBook -#CDMap -#ESerial -#Music -#MusicCD - - -# TODO: informative: -# - -# - # old (BF1) - -# TODO: missing rdacarrier mappings: -# skos:exactMatch rdacarrier:1001 ; # "Audio carriers" # skos:closeMatch rdamedia:1001 -# skos:exactMatch rdacarrier:1002 ; # "audio cartridge" -# skos:exactMatch rdacarrier:1003 ; # "audio cylinder" -# skos:exactMatch rdacarrier:1004 ; # "audio disc" -# skos:exactMatch rdacarrier:1005 ; # "sound-track reel" -# skos:exactMatch rdacarrier:1006 ; # "audio roll" -# skos:exactMatch rdacarrier:1007 ; # "audiocassette" -# skos:exactMatch rdacarrier:1008 ; # "audiotape reel" - -# skos:exactMatch rdacarrier:1010 ; # "Computer carriers" # skos:closeMatch rdamedia:1003 -# skos:exactMatch rdacarrier:1011 ; # "computer card" -# skos:exactMatch rdacarrier:1012 ; # "computer chip cartridge" -# skos:exactMatch rdacarrier:1013 ; # "computer disc" -# skos:exactMatch rdacarrier:1014 ; # "computer disc cartridge" -# skos:exactMatch rdacarrier:1015 ; # "computer tape cartridge" -# skos:exactMatch rdacarrier:1016 ; # "computer tape cassette" -# skos:exactMatch rdacarrier:1017 ; # "computer tape reel" -# skos:exactMatch rdacarrier:1018 ; # "online resource" - -# skos:exactMatch rdacarrier:1020 ; # "Microform carriers" # skos:closeMatch rdamedia:1002 -# skos:exactMatch rdacarrier:1021 ; # "aperture card" -# skos:exactMatch rdacarrier:1022 ; # "microfiche" -# skos:exactMatch rdacarrier:1023 ; # "microfiche cassette" -# skos:exactMatch rdacarrier:1024 ; # "microfilm cartridge" -# skos:exactMatch rdacarrier:1025 ; # "microfilm cassette" -# skos:exactMatch rdacarrier:1026 ; # "microfilm reel" -# skos:exactMatch rdacarrier:1027 ; # "microfilm slip" -# skos:exactMatch rdacarrier:1028 ; # "microopaque" -# skos:exactMatch rdacarrier:1056 ; # "microfilm roll" - -# skos:exactMatch rdacarrier:1029 ; # "Microscopic carriers" # skos:closeMatch rdamedia:1004 -# skos:exactMatch rdacarrier:1030 ; # "microscope slide" - -# skos:exactMatch rdacarrier:1031 ; # "Projected image carriers" # skos:closeMatch rdamedia:1005 -# skos:exactMatch rdacarrier:1032 ; # "film cartridge" -# skos:exactMatch rdacarrier:1033 ; # "film cassette" -# skos:exactMatch rdacarrier:1034 ; # "film reel" -# skos:exactMatch rdacarrier:1035 ; # "filmslip" -# skos:exactMatch rdacarrier:1036 ; # "filmstrip" -# skos:exactMatch rdacarrier:1037 ; # "filmstrip cartridge" -# skos:exactMatch rdacarrier:1039 ; # "overhead transparency" -# skos:exactMatch rdacarrier:1040 ; # "slide" -# skos:exactMatch rdacarrier:1069 ; # "film roll" - -# skos:exactMatch rdacarrier:1041 ; # "Stereographic carriers" # skos:closeMatch rdamedia:1006 -# skos:exactMatch rdacarrier:1042 ; # "stereograph card" -# skos:exactMatch rdacarrier:1043 ; # "stereograph disc" - -# skos:exactMatch rdacarrier:1044 ; # "Unmediated carriers" # skos:closeMatch rdamedia:1007 -# skos:exactMatch rdacarrier:1045 ; # "card" -# skos:exactMatch rdacarrier:1046 ; # "flipchart" -# skos:exactMatch rdacarrier:1047 ; # "roll" -# skos:exactMatch rdacarrier:1048 ; # "sheet" -# skos:exactMatch rdacarrier:1049 ; # "volume" -# skos:exactMatch rdacarrier:1059 ; # "object" - -# skos:exactMatch rdacarrier:1050 ; # "Video carriers" # skos:closeMatch rdamedia:1008 -# skos:exactMatch rdacarrier:1051 ; # "video cartridge" -# skos:exactMatch rdacarrier:1052 ; # "videocassette" -# skos:exactMatch rdacarrier:1053 ; # "videotape reel" -# skos:exactMatch rdacarrier:1060 ; # "videodisc" +:MultipleUnits a :IssuanceType ; + rdfs:label "Flera enheter"@sv . From b29898fa31288a04076f9406a8ce27ed7e27fa04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Tue, 18 Feb 2025 19:14:31 +0100 Subject: [PATCH 35/69] Type tentative media and carrier types as classes --- source/vocab/newtypes/carrierclasses.ttl | 118 +++++++++++------------ 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/source/vocab/newtypes/carrierclasses.ttl b/source/vocab/newtypes/carrierclasses.ttl index 96a691eb..9dcce26d 100644 --- a/source/vocab/newtypes/carrierclasses.ttl +++ b/source/vocab/newtypes/carrierclasses.ttl @@ -68,11 +68,11 @@ prefix kbrda: #MusicCD -#---- FIXME: Either turn into :complex intersection patterns, or *just* move to (RDA) carriera or materials/formats... +#---- FIXME: Either turn into :complex intersection patterns, or *just* move to (RDA) carriers or materials/formats... # Unmediated -:Unmediated a :MediaType ; # TODO: :PhysicalForm? +:Unmediated a owl:Class, :MediaType ; # TODO: :PhysicalForm? ptg:abstract true ; rdfs:subClassOf :Instance ; skos:exactMatch kbrda:Unmediated ; @@ -106,7 +106,7 @@ prefix kbrda: # fmt:LargeText a :Format ? -:Volume a :CarrierType; +:Volume a owl:Class, :CarrierType ; #ptg:abstract true ; skos:exactMatch kbrda:Volume ; rdfs:subClassOf :Unmediated ; @@ -129,22 +129,22 @@ prefix kbrda: rdfs:subClassOf :PrintedVolume . -:Card a :CarrierType; +:Card a owl:Class, :CarrierType ; skos:exactMatch kbrda:Card ; rdfs:subClassOf :Unmediated ; rdfs:label "Bildkort"@sv, "Card"@en . -:Flipchart a :CarrierType; +:Flipchart a owl:Class, :CarrierType ; skos:exactMatch kbrda:Flipchart ; rdfs:subClassOf :Unmediated ; rdfs:label "Blädderblock"@sv, "Flipchart"@en . -:Roll a :CarrierType; +:Roll a owl:Class, :CarrierType ; skos:exactMatch kbrda:Roll ; rdfs:subClassOf :Unmediated ; rdfs:label "Rulle"@sv, "Roll"@en . -:Sheet a :CarrierType; +:Sheet a owl:Class, :CarrierType ; skos:exactMatch kbrda:Sheet ; rdfs:subClassOf :Unmediated ; rdfs:label "Ark"@sv, "Sheet"@en . @@ -206,11 +206,11 @@ prefix kbrda: rdfs:subClassOf :StorageMedium ; skos:exactMatch marc:TapeReel . -:MagneticDisk a :CarrierType ; +:MagneticDisk a owl:Class, :CarrierType ; skos:exactMatch marc:MagneticDisk ; rdfs:subClassOf :StorageMedium . -:MagnetoOpticalDisc a :CarrierType ; +:MagnetoOpticalDisc a owl:Class, :CarrierType ; skos:exactMatch marc:MagnetoOpticalDisc ; rdfs:subClassOf :StorageMedium . @@ -218,7 +218,7 @@ prefix kbrda: ptg:abstract true ; rdfs:subClassOf :StorageMedium . -:OpticalDisc a :CarrierType ; +:OpticalDisc a owl:Class, :CarrierType ; skos:exactMatch marc:OpticalDisc ; rdfs:subClassOf :StorageMedium . @@ -230,51 +230,51 @@ prefix kbrda: rdfs:label "Elektroniskt lagringsmedium"@sv , "StorageMedium"@en . # TODO: rename to: DigitalForm? (Cf. PhysicalForm > PhysicalObject) -:DigitalResource a :CarrierType ; +:DigitalResource a owl:Class, :CarrierType ; skos:broadMatch marc:Remote ; skos:exactMatch marc:Online, marc:OnlineResource, kbrda:OnlineResource ; rdfs:subClassOf :Electronic ; rdfs:label "Digital resurs"@sv , "Digital Resource"@en . -:ChipCartridge a :CarrierType ; +:ChipCartridge a owl:Class, :CarrierType ; rdfs:subClassOf :ElectronicStorageMedium ; skos:exactMatch kbrda:ComputerChipCartridge, marc:ChipCartridge ; rdfs:label "Computer chip cartridge"@en . -:ComputerCard a :CarrierType ; +:ComputerCard a owl:Class, :CarrierType ; rdfs:subClassOf :ElectronicStorageMedium ; skos:exactMatch kbrda:ComputerCard, marc:ComputerCard ; rdfs:label "Datorkort"@sv, "Computer card"@en . -:ComputerDisc a :CarrierType ; +:ComputerDisc a owl:Class, :CarrierType ; rdfs:subClassOf :ElectronicStorageMedium ; skos:broadMatch marc:MagneticDisk ; skos:exactMatch kbrda:ComputerDisc, marc:ComputerDisc ; rdfs:label "Datorskiva"@sv, "Computer Disc"@en . -:ComputerDiscCartridge a :CarrierType ; +:ComputerDiscCartridge a owl:Class, :CarrierType ; rdfs:subClassOf :ElectronicStorageMedium ; skos:exactMatch kbrda:ComputerDiscCartridge, marc:ComputerDiscCartridge ; skos:narrowMatch marc:ComputerOpticalDiscCartridge ; rdfs:label "Datorskivmagasin"@sv, "Computer disc cartridge"@en . -:ComputerTapeCartridge a :CarrierType ; +:ComputerTapeCartridge a owl:Class, :CarrierType ; rdfs:subClassOf :ElectronicStorageMedium , :TapeCartridge ; skos:exactMatch kbrda:ComputerTapeCartridge ; rdfs:label "Datorbandmagasin"@sv, "Computer tape cartridge"@en . -:ComputerTapeCassette a :CarrierType ; +:ComputerTapeCassette a owl:Class, :CarrierType ; rdfs:subClassOf :ElectronicStorageMedium, :TapeCassette ; skos:exactMatch kbrda:ComputerTapeCassette ; rdfs:label "Datorkassett"@sv, "Computer tape cassette"@en . -:ComputerTapeReel a :CarrierType ; +:ComputerTapeReel a owl:Class, :CarrierType ; rdfs:subClassOf :ElectronicStorageMedium, :TapeReel ; skos:exactMatch kbrda:ComputerTapeReel ; rdfs:label "Datorbandspole"@sv, "Computer tape reel"@en . -:StandaloneDevice a :CarrierType ; +:StandaloneDevice a owl:Class, :CarrierType ; skos:exactMatch marc:StandaloneDevice ; rdfs:subClassOf :ElectronicStorageMedium, :PhysicalObject . @@ -282,54 +282,54 @@ prefix kbrda: # TODO: Is the content-as-media-type a "rebus" and enough if content is on the work? # Or is the *unit for device capable of sound* encoded here (so "mode of provisioning", not the "purpose of provisioning")? -:SoundStorageMedium a :MediaType ; +:SoundStorageMedium a owl:Class, :MediaType ; owl:sameAs :SoundRecording ; ptg:abstract true ; skos:exactMatch kbrda:Audio ; rdfs:subClassOf :StorageMedium ; rdfs:label "Audio"@sv, "Audio"@en . -:AudioDisc a :CarrierType ; +:AudioDisc a owl:Class, :CarrierType ; rdfs:subClassOf :SoundStorageMedium ; skos:exactMatch kbrda:AudioDisc , marc:SoundDisc ; rdfs:label "Ljudskiva"@sv , "Audio Disc"@en . -:AudioCassette a :CarrierType ; +:AudioCassette a owl:Class, :CarrierType ; rdfs:subClassOf :SoundStorageMedium, :TapeCassette ; skos:exactMatch kbrda:Audiocassette , marc:SoundCassette ; rdfs:label "Ljudkassett"@sv , "Audio Cassette"@en . -:AudioCartridge a :CarrierType ; +:AudioCartridge a owl:Class, :CarrierType ; skos:exactMatch kbrda:AudioCartridge , marc:SoundCartridge ; rdfs:subClassOf :SoundStorageMedium ; rdfs:label "Ljudmagasin"@sv, "Audio cartridge"@en . -:AudioCylinder a :CarrierType ; +:AudioCylinder a owl:Class, :CarrierType ; skos:exactMatch kbrda:AudioCylinder, marc:Cylinder ; rdfs:subClassOf :SoundStorageMedium ; rdfs:label "Ljudcylinder"@sv, "Audio cylinder"@en . -:AudioRoll a :CarrierType ; +:AudioRoll a owl:Class, :CarrierType ; skos:exactMatch kbrda:AudioRoll , marc:Roll ; rdfs:subClassOf :SoundStorageMedium ; rdfs:label "Ljudrulle"@sv, "Audio roll"@en . -:AudioTapeReel a :CarrierType ; +:AudioTapeReel a owl:Class, :CarrierType ; skos:exactMatch kbrda:AudiotapeReel; rdfs:subClassOf :SoundStorageMedium , :TapeReel , marc:SoundTapeReel ; rdfs:label "Ljudspole"@sv, "Audiotape reel"@en . # Zero uses in Libris... -:AudioWireRecording a :CarrierType ; +:AudioWireRecording a owl:Class, :CarrierType ; skos:exactMatch marc:WireRecording . -:SoundTrackReel a :CarrierType ; +:SoundTrackReel a owl:Class, :CarrierType ; skos:exactMatch kbrda:SoundTrackReel, marc:SoundTrackFilm; rdfs:subClassOf :SoundStorageMedium ; rdfs:label "Sound-track reel"@en . -:VideoStorageMedium a :MediaType ; +:VideoStorageMedium a owl:Class, :MediaType ; owl:sameAs :VideoRecording ; ptg:abstract true ; # TODO: deprecated baseclass :MovingImageInstance ? @@ -337,22 +337,22 @@ prefix kbrda: rdfs:subClassOf :StorageMedium ; rdfs:label "Lagringsmedium för video"@sv, "Video Storage Medium"@en . -:VideoDisc a :CarrierType ; +:VideoDisc a owl:Class, :CarrierType ; skos:exactMatch kbrda:Videodisc, marc:Videodisc ; rdfs:subClassOf :VideoStorageMedium ; rdfs:label "Videoskiva"@sv , "Video Disc"@en . -:VideoCartridge a :CarrierType ; +:VideoCartridge a owl:Class, :CarrierType ; skos:exactMatch kbrda:VideoCartridge, marc:Videocartridge ; rdfs:subClassOf :VideoStorageMedium ; rdfs:label "Videomagasin"@sv, "Video cartridge"@en . -:VideoCassette a :CarrierType ; +:VideoCassette a owl:Class, :CarrierType ; skos:exactMatch kbrda:Videocassette, marc:Videocassette ; rdfs:subClassOf :VideoStorageMedium, :TapeCassette ; rdfs:label "Videokassett"@sv, "Videocassette"@en . -:VideoTapeReel a :CarrierType ; +:VideoTapeReel a owl:Class, :CarrierType ; skos:exactMatch kbrda:VideotapeReel , marc:Videoreel ; rdfs:subClassOf :VideoStorageMedium, :TapeReel ; rdfs:label "Videospole"@sv, "Videotape reel"@en . @@ -360,141 +360,141 @@ prefix kbrda: # TODO: restricted to some content forms (Visual, TextAsVisual...) -:Microform a :MediaType ; +:Microform a owl:Class, :MediaType ; ptg:abstract true ; skos:exactMatch kbrda:Microform; rdfs:subClassOf :StorageMedium ; rdfs:label "Mikroform"@sv, "Microform"@en . -:Microfilm a :CarrierType ; +:Microfilm a owl:Class, :CarrierType ; ptg:abstract true ; skos:exactMatch marc:Microfilm ; rdfs:subClassOf :Microform . -:ApertureCard a :CarrierType ; +:ApertureCard a owl:Class, :CarrierType ; skos:exactMatch kbrda:ApertureCard, marc:ApertureCard ; rdfs:subClassOf :Microform ; rdfs:label "Maskhålkort"@sv, "Aperture card"@en . -:Microfiche a :CarrierType ; +:Microfiche a owl:Class, :CarrierType ; skos:exactMatch kbrda:Microfiche ; rdfs:subClassOf :Microform, marc:Microfiche ; rdfs:label "Mikrofiche"@sv, "Microfiche"@en . -:MicroficheCassette a :CarrierType ; +:MicroficheCassette a owl:Class, :CarrierType ; skos:exactMatch kbrda:MicroficheCassette, marc:MicroficheCassette ; rdfs:subClassOf :Microform ; rdfs:label "Mikrofichekassett"@sv, "Microfiche cassette"@en . -:MicrofilmCartridge a :CarrierType ; +:MicrofilmCartridge a owl:Class, :CarrierType ; skos:exactMatch kbrda:MicrofilmCartridge, marc:MicrofilmCartridge ; rdfs:subClassOf :Microfilm ; rdfs:label "Mikrofilmsmagasin"@sv, "Microfilm cartridge"@en . -:MicrofilmCassette a :CarrierType ; +:MicrofilmCassette a owl:Class, :CarrierType ; skos:exactMatch kbrda:MicrofilmCassette, marc:MicrofilmCassette ; rdfs:subClassOf :Microfilm ; rdfs:label "Mikrofilmskassett"@sv, "Microfilm cassette"@en . -:MicrofilmReel a :CarrierType ; +:MicrofilmReel a owl:Class, :CarrierType ; skos:exactMatch kbrda:MicrofilmReel, marc:MicrofilmReel ; rdfs:subClassOf :Microfilm ; rdfs:label "Mikrofilmsspole"@sv, "Microfilm reel"@en . -:MicrofilmRoll a :CarrierType ; +:MicrofilmRoll a owl:Class, :CarrierType ; skos:exactMatch kbrda:MicrofilmRoll, marc:MicrofilmRoll ; rdfs:subClassOf :Microfilm, :VideoStorageMedium ; rdfs:label "Mikrofilmsrulle"@sv, "Microfilm roll"@en . -:MicrofilmSlip a :CarrierType ; +:MicrofilmSlip a owl:Class, :CarrierType ; skos:exactMatch kbrda:MicrofilmSlip, marc:MicrofilmSlip ; rdfs:subClassOf :Microform ; rdfs:label "Mikrofilmsremsa"@sv, "Microfilm slip"@en . -:Microopaque a :CarrierType ; +:Microopaque a owl:Class, :CarrierType ; skos:exactMatch kbrda:Microopaque ; rdfs:subClassOf :Microform, marc:Microopaque ; rdfs:label "Mikrokort"@sv, "Microopaque"@en . -:Microscopic a :MediaType ; +:Microscopic a owl:Class, :MediaType ; ptg:abstract true ; skos:exactMatch kbrda:Microscopic; rdfs:subClassOf :StorageMedium ; rdfs:label "Mikroskopisk"@sv, "Microscopic"@en . -:MicroscopeSlide a :CarrierType ; +:MicroscopeSlide a owl:Class, :CarrierType ; skos:exactMatch kbrda:MicroscopeSlide ; rdfs:subClassOf :Microscopic ; rdfs:label "Mikroskoperingspreparat"@sv, "Microscope slide"@en . -:Projected a :MediaType ; +:Projected a owl:Class, :MediaType ; ptg:abstract true ; skos:exactMatch kbrda:Projected; rdfs:subClassOf :StorageMedium ; rdfs:label "Projicerad"@sv, "Projected"@en . -:FilmCartridge a :CarrierType ; +:FilmCartridge a owl:Class, :CarrierType ; skos:exactMatch kbrda:FilmCartridge ; rdfs:subClassOf :Projected ; rdfs:label "Filmmagasin"@sv, "Film cartridge"@en . -:FilmCassette a :CarrierType ; +:FilmCassette a owl:Class, :CarrierType ; skos:exactMatch kbrda:FilmCassette ; rdfs:subClassOf :Projected ; rdfs:label "Filmkassett"@sv, "Film cassette"@en . -:FilmReel a :CarrierType ; +:FilmReel a owl:Class, :CarrierType ; skos:exactMatch kbrda:FilmReel ; rdfs:subClassOf :Projected ; rdfs:label "Filmspole"@sv, "Film reel"@en . -:FilmRoll a :CarrierType ; +:FilmRoll a owl:Class, :CarrierType ; skos:exactMatch kbrda:FilmRoll ; rdfs:subClassOf :Projected ; rdfs:label "Filmrulle"@sv, "Film roll"@en . -:Filmslip a :CarrierType ; +:Filmslip a owl:Class, :CarrierType ; skos:exactMatch kbrda:Filmslip, marc:Filmslip ; rdfs:subClassOf :Projected ; rdfs:label "Filmremsa"@sv, "Filmslip"@en . # TODO: Ensure difference between StillImage Projected and MovingImage Projected! # See e.g. <> -:Filmstrip a :CarrierType ; +:Filmstrip a owl:Class, :CarrierType ; skos:exactMatch kbrda:Filmstrip, marc:FilmstripRoll ; rdfs:subClassOf :Projected ; rdfs:label "Bildband"@sv, "Filmstrip"@en . -:FilmstripCartridge a :CarrierType ; +:FilmstripCartridge a owl:Class, :CarrierType ; skos:exactMatch kbrda:FilmstripCartridge, marc:FilmstripCartridge ; rdfs:subClassOf :Projected ; rdfs:label "Bildbandsmagasin"@sv, "Filmstrip cartridge"@en . -:OverheadTransparency a :CarrierType ; +:OverheadTransparency a owl:Class, :CarrierType ; skos:exactMatch kbrda:OverheadTransparency, marc:Transparency ; rdfs:subClassOf :Projected ; rdfs:label "OH-bild"@sv, "Overhead transparency"@en . -:Slide a :CarrierType ; +:Slide a owl:Class, :CarrierType ; skos:exactMatch kbrda:Slide, marc:Slide ; rdfs:subClassOf :Projected ; rdfs:label "Diabild"@sv, "Slide"@en . -:Stereographic a :MediaType ; +:Stereographic a owl:Class, :MediaType ; ptg:abstract true ; skos:exactMatch kbrda:Stereographic ; rdfs:subClassOf :StorageMedium ; rdfs:label "Stereografisk"@sv, "Stereographic"@en . -:StereographCard a :CarrierType ; +:StereographCard a owl:Class, :CarrierType ; skos:exactMatch kbrda:StereographCard; rdfs:subClassOf :Stereographic ; rdfs:label "Stereografiskt kort"@sv, "Stereograph card"@en . -:StereographDisc a :CarrierType ; +:StereographDisc a owl:Class, :CarrierType ; skos:exactMatch kbrda:StereographDisc; rdfs:subClassOf :Stereographic ; rdfs:label "Stereografisk skiva"@sv, "Stereograph disc"@en . From f3a063c3386c30cc345f9f8435c4e37b4a7047e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Tue, 4 Mar 2025 19:02:54 +0100 Subject: [PATCH 36/69] Add PhysicalResource and update some details --- source/vocab/newtypes/carrierclasses.ttl | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/source/vocab/newtypes/carrierclasses.ttl b/source/vocab/newtypes/carrierclasses.ttl index 9dcce26d..276f22fa 100644 --- a/source/vocab/newtypes/carrierclasses.ttl +++ b/source/vocab/newtypes/carrierclasses.ttl @@ -2,6 +2,7 @@ prefix rdfs: prefix owl: prefix skos: prefix bibo: +prefix dc: prefix sdo: prefix ptg: prefix bf: @@ -70,14 +71,18 @@ prefix kbrda: #---- FIXME: Either turn into :complex intersection patterns, or *just* move to (RDA) carriers or materials/formats... +:PhysicalResource a owl:Class ; + rdfs:subClassOf :Instance , dc:PhysicalResource ; + rdfs:label "Fysisk resurs"@sv , "Physical resource"@en . + # NOTE: :transitiveBaseClassOf :PhysicalObject . + # Unmediated -:Unmediated a owl:Class, :MediaType ; # TODO: :PhysicalForm? +:Unmediated a owl:Class, :MediaType ; ptg:abstract true ; - rdfs:subClassOf :Instance ; + rdfs:subClassOf :PhysicalResource ; skos:exactMatch kbrda:Unmediated ; - rdfs:label "Omedierad resurs"@sv , "Unmediated"@en ; - :altLabel "Fysisk resurs"@sv . + rdfs:label "Omedierad resurs"@sv , "Unmediated"@en . # Vocab Macro for type-like on carrier...: # INSERT { @@ -187,7 +192,7 @@ prefix kbrda: # TODO: other StorageMedium? Magnetic / Optical / Mechanical ? :StorageMedium a owl:Class ; ptg:abstract true ; - rdfs:subClassOf :Instance ; + rdfs:subClassOf :PhysicalResource ; rdfs:label "Lagringsmedium"@sv , "StorageMedium"@en . @@ -229,7 +234,6 @@ prefix kbrda: rdfs:subClassOf :Electronic, :StorageMedium ; rdfs:label "Elektroniskt lagringsmedium"@sv , "StorageMedium"@en . -# TODO: rename to: DigitalForm? (Cf. PhysicalForm > PhysicalObject) :DigitalResource a owl:Class, :CarrierType ; skos:broadMatch marc:Remote ; skos:exactMatch marc:Online, marc:OnlineResource, kbrda:OnlineResource ; @@ -505,13 +509,13 @@ prefix kbrda: :BaseMaterial rdfs:subClassOf :Material . :TactileMaterial rdfs:subClassOf :Material ; - :broadMatch marc:TacMaterialType . + skos:broadMatch marc:TacMaterialType . :ImageMaterial rdfs:subClassOf :Material ; - :broadMatch marc:NonProjectedType . + skos:broadMatch marc:NonProjectedType . :MapMaterial rdfs:subClassOf :Material ; - :broadMatch marc:MapMediumType . + skos:broadMatch marc:MapMediumType . # TODO: Upgrade some marc: properties to KBV going forward? #:videoCharacteristic @@ -520,7 +524,7 @@ prefix kbrda: # sdo:rangeIncludes :VideoFormat . :VideoFormat rdfs:subClassOf :Material ; - :broadMatch marc:VideoFormatType . + skos:broadMatch marc:VideoFormatType . ## TODO: *when needed* for marc - map patterns to/from to some of these types... From 5563b5b0244d4f6d10684b082faa12c7853af61c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Tue, 4 Mar 2025 19:04:26 +0100 Subject: [PATCH 37/69] Update genreform descriptions --- source/genreforms/genreforms.ttl | 32 +++-- source/genreforms/materialformat.ttl | 183 ++++++++++++++------------- 2 files changed, 111 insertions(+), 104 deletions(-) diff --git a/source/genreforms/genreforms.ttl b/source/genreforms/genreforms.ttl index 6f789909..c9b0fd81 100644 --- a/source/genreforms/genreforms.ttl +++ b/source/genreforms/genreforms.ttl @@ -1,4 +1,5 @@ prefix : +prefix skos: prefix saogf: prefix barngf: prefix tgm: @@ -9,40 +10,45 @@ prefix kbgf: # Base Forms (Categories?! Nature of content, etc.) -kbgf:LinguisticWork a :GenreForm ; - :altLabel "Literature"@en , - "Litteratur"@sv ; - :prefLabel "Linguistic work"@en , - "Språkligt verk"@sv . +#kbgf:LinguisticWork a :GenreForm ; +# :altLabel "Literature"@en , +# "Litteratur"@sv ; +# :prefLabel "Linguistic work"@en , +# "Språkligt verk"@sv . kbgf:Book a :GenreForm ; # BookForm - :narrowMatch saogf:Romaner , + skos:narrowMatch saogf:Romaner , saogf:Ljudb%C3%B6cker , barngf:Bilderb%F6cker , barngf:Kapitelb%F6cker . +kbgf:Map a :GenreForm ; #MapForm + skos:exactMatch marc:MapATwoDimensionalMap, tgm:Kartor . + kbgf:Atlas a :GenreForm ; #AtlasForm - :exactMatch marc:Atlas, tgm:Atlaser . - #:narrowMatch tgm:Bilatlaser ; #:relatedMatch tgm:V\%C3\%A4gkartor . + skos:exactMatch marc:Atlas, tgm:Atlaser . + +kbgf:Globe a :GenreForm ; #GlobeForm + skos:exactMatch tgm:Glober . kbgf:Comic a :GenreForm ; :prefLabel "Tecknad serie"@sv, "Comic"@en ; - :narrowMatch saogf:Tecknade%20serier , + skos:narrowMatch saogf:Tecknade%20serier , barngf:Tecknade%20serier . kbgf:ShortStory a :GenreForm ; - :narrowMatch saogf:Noveller, + skos:narrowMatch saogf:Noveller, saogf:Serienoveller . kbgf:Issue a :GenreForm . # TODO: matches... -kbgf:Photograph :exactMatch saogf:Fotografier, tgm:Fotografier . +kbgf:Photograph skos:exactMatch saogf:Fotografier, tgm:Fotografier . # TODO: trying to map *relevant* MARC GT... kbgf:Fiction a :GenreForm ; - :narrowMatch marc:Fiction ; # 84678 # (SSB) - :narrowMatch marc:FictionNotFurtherSpecified . # 573355 # (SSB) + skos:narrowMatch marc:Fiction ; # 84678 # (SSB) + skos:narrowMatch marc:FictionNotFurtherSpecified . # 573355 # (SSB) # TODO: base GenreForm? #:Radio a :GenreForm ; :label "Radio"@sv . diff --git a/source/genreforms/materialformat.ttl b/source/genreforms/materialformat.ttl index d9fda33f..f7662415 100644 --- a/source/genreforms/materialformat.ttl +++ b/source/genreforms/materialformat.ttl @@ -1,5 +1,6 @@ prefix rdfs: prefix owl: +prefix skos: prefix ptg: prefix sdo: @@ -7,74 +8,74 @@ prefix kbv: prefix : prefix marc: -prefix mat: +prefix kbfmt: prefix carrier: -mat:BristolBoard a :BaseMaterial ; - :exactMatch marc:BristolBoard . -mat:Canvas a :BaseMaterial ; - :exactMatch marc:Canvas . -mat:CardboardIllustrationBoard a :BaseMaterial ; - :exactMatch marc:CardboardIllustrationBoard . -mat:Glass a :BaseMaterial ; - :exactMatch marc:Glass . -mat:Hardboard a :BaseMaterial ; - :exactMatch marc:Hardboard . -mat:Leather a :BaseMaterial ; - :exactMatch marc:Leather . -mat:Metal a :BaseMaterial ; - :exactMatch marc:Metal . -mat:Parchment a :BaseMaterial ; - :exactMatch marc:Parchment . -mat:Plaster a :BaseMaterial ; - :exactMatch marc:Plaster . -mat:Porcelain a :BaseMaterial ; - :exactMatch marc:Porcelain . -mat:Skin a :BaseMaterial ; - :exactMatch marc:Skin . -mat:Stone a :BaseMaterial ; - :exactMatch marc:Stone . -mat:Synthetic a :BaseMaterial ; - :exactMatch marc:Synthetic . -mat:Textile a :BaseMaterial ; - :exactMatch marc:Textile . -mat:Vellum a :BaseMaterial ; - :exactMatch marc:Vellum . -mat:Vinyl a :BaseMaterial ; - :exactMatch marc:Vinyl . -mat:Wood a :BaseMaterial ; - :exactMatch marc:Wood . +kbfmt:BristolBoard a :BaseMaterial ; + skos:exactMatch marc:BristolBoard . +kbfmt:Canvas a :BaseMaterial ; + skos:exactMatch marc:Canvas . +kbfmt:CardboardIllustrationBoard a :BaseMaterial ; + skos:exactMatch marc:CardboardIllustrationBoard . +kbfmt:Glass a :BaseMaterial ; + skos:exactMatch marc:Glass . +kbfmt:Hardboard a :BaseMaterial ; + skos:exactMatch marc:Hardboard . +kbfmt:Leather a :BaseMaterial ; + skos:exactMatch marc:Leather . +kbfmt:Metal a :BaseMaterial ; + skos:exactMatch marc:Metal . +kbfmt:Parchment a :BaseMaterial ; + skos:exactMatch marc:Parchment . +kbfmt:Plaster a :BaseMaterial ; + skos:exactMatch marc:Plaster . +kbfmt:Porcelain a :BaseMaterial ; + skos:exactMatch marc:Porcelain . +kbfmt:Skin a :BaseMaterial ; + skos:exactMatch marc:Skin . +kbfmt:Stone a :BaseMaterial ; + skos:exactMatch marc:Stone . +kbfmt:Synthetic a :BaseMaterial ; + skos:exactMatch marc:Synthetic . +kbfmt:Textile a :BaseMaterial ; + skos:exactMatch marc:Textile . +kbfmt:Vellum a :BaseMaterial ; + skos:exactMatch marc:Vellum . +kbfmt:Vinyl a :BaseMaterial ; + skos:exactMatch marc:Vinyl . +kbfmt:Wood a :BaseMaterial ; + skos:exactMatch marc:Wood . ##marc:Other #marc:MixedCollection a :BaseMaterial . -mat:MoonScript a :TactileMaterial ; - :exactMatch marc:Moon . +kbfmt:MoonScript a :TactileMaterial ; + skos:exactMatch marc:Moon . -mat:Braille a :TactileMaterial ; - :exactMatch marc:TacMaterialType-b . +kbfmt:Braille a :TactileMaterial ; + skos:exactMatch marc:TacMaterialType-b . -mat:TactileCombination a :TactileMaterial ; - :exactMatch marc:TacMaterialType-c . +kbfmt:TactileCombination a :TactileMaterial ; + skos:exactMatch marc:TacMaterialType-c . -mat:TactileWithNoWritingSystem a :TactileMaterial ; - :exactMatch marc:TactileWithNoWritingSystem . +kbfmt:TactileWithNoWritingSystem a :TactileMaterial ; + skos:exactMatch marc:TactileWithNoWritingSystem . -mat:ImageOnGlass a :ImageMaterial ; - :broader mat:Glass ; - :exactMatch marc:NonProjectedType-d . +kbfmt:ImageOnGlass a :ImageMaterial ; + :broader kbfmt:Glass ; + skos:exactMatch marc:NonProjectedType-d . -mat:ImageOnStone a :ImageMaterial ; - :broader mat:Stone ; - :exactMatch marc:NonProjectedType-s . +kbfmt:ImageOnStone a :ImageMaterial ; + :broader kbfmt:Stone ; + skos:exactMatch marc:NonProjectedType-s . -mat:ImageOnWood a :ImageMaterial ; - :exactMatch marc:NonProjectedType-t . +kbfmt:ImageOnWood a :ImageMaterial ; + skos:exactMatch marc:NonProjectedType-t . -mat:ImageOnMetal a :ImageMaterial ; - :exactMatch marc:NonProjectedType-h . +kbfmt:ImageOnMetal a :ImageMaterial ; + skos:exactMatch marc:NonProjectedType-h . marc:FlexibleBasePhotographicPositive a :MapFormat . @@ -84,59 +85,59 @@ marc:NonFlexibleBasePhotographicPositive a :MapFormat . # TODO: consolidate with smdbterms.ttl ! -mat:Beta12InVideocassette a :VideoFormat ; - :exactMatch marc:Beta12InVideocassette . # TODO: smdb +kbfmt:Beta12InVideocassette a :VideoFormat ; + skos:exactMatch marc:Beta12InVideocassette . # TODO: smdb -mat:Betacam12InVideocassette a :VideoFormat ; - :exactMatch marc:Betacam12InVideocassette . # TODO: smdb +kbfmt:Betacam12InVideocassette a :VideoFormat ; + skos:exactMatch marc:Betacam12InVideocassette . # TODO: smdb -mat:BetacamSp12InVideocassette a :VideoFormat ; - :exactMatch marc:BetacamSp12InVideocassette . # TODO: smdb +kbfmt:BetacamSp12InVideocassette a :VideoFormat ; + skos:exactMatch marc:BetacamSp12InVideocassette . # TODO: smdb -mat:BluRayDisc a :VideoFormat ; - :exactMatch marc:BluRayDisc , carrier:Blu-ray_Disc_\%28BD\%29 . +kbfmt:BluRayDisc a :VideoFormat ; + skos:exactMatch marc:BluRayDisc , carrier:Blu-ray_Disc_\%28BD\%29 . -mat:D234InVideocassette a :VideoFormat ; - :exactMatch marc:D234InVideocassette . # TODO: smdb +kbfmt:D234InVideocassette a :VideoFormat ; + skos:exactMatch marc:D234InVideocassette . # TODO: smdb -mat:SuperVhs12InVideocassette a :VideoFormat ; - :exactMatch marc:SuperVhs12InVideocassette, carrier:S-VHS . +kbfmt:SuperVhs12InVideocassette a :VideoFormat ; + skos:exactMatch marc:SuperVhs12InVideocassette, carrier:S-VHS . -mat:Vhs12InVideocassette a :VideoFormat ; - :exactMatch marc:Vhs12InVideocassette , carrier:VHS . +kbfmt:Vhs12InVideocassette a :VideoFormat ; + skos:exactMatch marc:Vhs12InVideocassette , carrier:VHS . -mat:Eiaj12InReel a :VideoFormat ; - :exactMatch marc:Eiaj12InReel ; - :narrowMatch carrier:\%C2\%BD_tum_Sony_AV_\%28EIAJ_Type_1\%29 , +kbfmt:Eiaj12InReel a :VideoFormat ; + skos:exactMatch marc:Eiaj12InReel ; + skos:narrowMatch carrier:\%C2\%BD_tum_Sony_AV_\%28EIAJ_Type_1\%29 , carrier:EIAJ_Type_2_\%3B_\%C2\%BD_tum . -mat:Hi8Mm a :VideoFormat ; - :exactMatch marc:Hi8Mm , carrier:Hi8 . +kbfmt:Hi8Mm a :VideoFormat ; + skos:exactMatch marc:Hi8Mm , carrier:Hi8 . -mat:Dvd a :VideoFormat ; - :exactMatch marc:Dvd , carrier:DVD . +kbfmt:Dvd a :VideoFormat ; + skos:exactMatch marc:Dvd , carrier:DVD . -mat:Laserdisc a :VideoFormat ; - :exactMatch marc:Laserdisc , carrier:Laserdisk . +kbfmt:Laserdisc a :VideoFormat ; + skos:exactMatch marc:Laserdisc , carrier:Laserdisk . -mat:UMatic34InVideocassette a :VideoFormat ; - :exactMatch marc:UMatic34InVideocassette , carrier:Umatic ; - :narrowMatch carrier:Umatic_HB, carrier:Umatic_LB, carrier:Umatic_SP . +kbfmt:UMatic34InVideocassette a :VideoFormat ; + skos:exactMatch marc:UMatic34InVideocassette , carrier:Umatic ; + skos:narrowMatch carrier:Umatic_HB, carrier:Umatic_LB, carrier:Umatic_SP . -mat:CedCapacitanceElectronicDiscVideodisc a :VideoFormat ; - :exactMatch marc:CedCapacitanceElectronicDiscVideodisc . +kbfmt:CedCapacitanceElectronicDiscVideodisc a :VideoFormat ; + skos:exactMatch marc:CedCapacitanceElectronicDiscVideodisc . -mat:Quadruplex1InOr2InReel a :VideoFormat ; - :exactMatch marc:Quadruplex1InOr2InReel ; - :narrowMatch carrier:2_tum_Quad . +kbfmt:Quadruplex1InOr2InReel a :VideoFormat ; + skos:exactMatch marc:Quadruplex1InOr2InReel ; + skos:narrowMatch carrier:2_tum_Quad . -mat:MIi12InVideocassette a :VideoFormat ; - :broadMatch carrier:MII ; - :exactMatch marc:MIi12InVideocassette . +kbfmt:MIi12InVideocassette a :VideoFormat ; + skos:broadMatch carrier:MII ; + skos:exactMatch marc:MIi12InVideocassette . -mat:TypeC1InReel a :VideoFormat ; - :exactMatch marc:TypeC1InReel . +kbfmt:TypeC1InReel a :VideoFormat ; + skos:exactMatch marc:TypeC1InReel . -mat:Video8Mm a :VideoFormat ; - :exactMatch marc:VideoFormatType-p . # :broadMatch marc:8Mm +kbfmt:Video8Mm a :VideoFormat ; + skos:exactMatch marc:VideoFormatType-p . # skos:broadMatch marc:8Mm # TODO: carrier:Film_\%3B_8_mm ? From 745e8524459b71a71926119bf0bc7dced1682f7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Wed, 5 Mar 2025 15:59:48 +0100 Subject: [PATCH 38/69] Add category facets to apps.jsonld --- source/apps.jsonld | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/apps.jsonld b/source/apps.jsonld index 87f9309e..ed245521 100644 --- a/source/apps.jsonld +++ b/source/apps.jsonld @@ -36,7 +36,9 @@ { "dimensionChain": ["inScheme"], "itemLimit": 100 }, { "dimensionChain": ["inCollection"], "itemLimit": 100 }, { "dimensionChain": ["genreForm"], "itemLimit": 100 }, + { "dimensionChain": ["category"], "itemLimit": 100 }, { "dimensionChain": ["instanceOf", "genreForm"], "itemLimit": 100 }, + { "dimensionChain": ["instanceOf", "category"], "itemLimit": 100 }, { "dimensionChain": ["contentType"], "itemLimit": 100 }, { "dimensionChain": ["nationality"], "itemLimit": 100 }, { "dimensionChain": ["language"], "itemLimit": 100 }, @@ -46,8 +48,7 @@ { "dimensionChain": ["intendedAudience"], "itemLimit": 100 }, { "dimensionChain": ["meta", "bibliography"], "itemLimit": 100 }, { "dimensionChain": ["concerning", {"inverseOfTerm": "itemOf"}, "heldBy"], "itemLimit": 1000, "connective": "OR", "_matchMissing": "concerning" }, - { "dimensionChain": ["concerning", "issuanceType"], "itemLimit": 100 }, - { "dimensionChain": ["category"], "itemLimit": 100, "connective": "OR", "_matchMissing": "category"} + { "dimensionChain": ["concerning", "issuanceType"], "itemLimit": 100 } ] } }, From 8a3cb7f7a1041b9168607f7880363cde4d30c2e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Thu, 6 Mar 2025 12:01:52 +0100 Subject: [PATCH 39/69] Move duplicate prefLabel to altLabel --- source/genreforms/contentgenres.ttl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/genreforms/contentgenres.ttl b/source/genreforms/contentgenres.ttl index 4f4334bc..e03ac7af 100644 --- a/source/genreforms/contentgenres.ttl +++ b/source/genreforms/contentgenres.ttl @@ -108,9 +108,9 @@ g:TeachingMaterial a :Genre ; rdfs:seeAlso ; skos:exactMatch saogf:L\%C3\%A4romedel , saogf:Instruktions-\%20och\%20undervisningsmaterial ; - :prefLabel "Läromedel"@sv , - "Teaching Material"@en , - "Instruktions- och undervisningsmaterial"@sv . + :prefLabel "Instruktions- och undervisningsmaterial"@sv , + "Teaching Material"@en ; + :altLabel "Läromedel"@sv . g:GraphicLiterature a :Genre ; rdfs:subClassOf kbv:IllustratedWork , From ada92d0c16d1ccd1f542f22cfb553bdae3115614 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Thu, 6 Mar 2025 12:04:10 +0100 Subject: [PATCH 40/69] Comment out alt-altLabel --- source/vocab/things.ttl | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/source/vocab/things.ttl b/source/vocab/things.ttl index 58e692ea..1c9ded71 100644 --- a/source/vocab/things.ttl +++ b/source/vocab/things.ttl @@ -279,9 +279,8 @@ skos:definition "Resurs i en form avsedd att uppfattas visuellt i tre dimensioner. Inkluderar tillverkade föremål som modeller, skulpturer, kläder och leksaker samt naturligt förekommande föremål, till exempel monterade för visning."@sv; skos:broadMatch rdacontent:1021 ; # "three-dimensional form" rdfs:subClassOf :Work; - owl:equivalentClass bf2:Object ; - :altLabel "Intensional Object"@en , - "Syftesmässig sak"@sv . + owl:equivalentClass bf2:Object . + #:altLabel "Intensional Object"@en , "Syftesmässig sak"@sv . :StillImage a owl:Class; rdfs:label "Stillbild"@sv; From 5625a6379e8254587fc6577b11a7fe3df52b225b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Thu, 6 Mar 2025 13:09:39 +0100 Subject: [PATCH 41/69] Use well-known terms for all vocab descriptions --- source/vocab/newtypes/contentclasses.ttl | 69 ++++++++++++++---------- 1 file changed, 42 insertions(+), 27 deletions(-) diff --git a/source/vocab/newtypes/contentclasses.ttl b/source/vocab/newtypes/contentclasses.ttl index 4b8c3b3e..bb103f28 100644 --- a/source/vocab/newtypes/contentclasses.ttl +++ b/source/vocab/newtypes/contentclasses.ttl @@ -21,7 +21,7 @@ prefix kbgf: ptg:abstract true ; owl:onProperty :genreForm ; owl:hasValue kbgf:Book ; - :label "Book"@en , + rdfs:label "Book"@en , "Bok"@sv ; :pluralLabel "Böcker"@sv . @@ -79,11 +79,17 @@ prefix kbgf: :Text :BookForm ) ; - :label "Written book"@en , + rdfs:label "Written book"@en , "Skriven bok"@sv ; - :altLabel "Bok"@sv, "Book"@en ; + skos:altLabel "Bok"@sv, "Book"@en ; :pluralLabel "Böcker"@sv . +:TextAndImagesBook a owl:Class ; + :category :pending, :complex ; + rdfs:subClassOf :BookForm, :ImageAndText ; + rdfs:label "Text- och bilderbok"@sv, "Picture book"@en . + + :Audiobook a owl:Class ; :category :pending, :complex ; rdfs:subClassOf [ owl:onProperty :genreForm ; @@ -93,7 +99,7 @@ prefix kbgf: :Audio :BookForm ) ; - :label "Ljudbok"@sv , + rdfs:label "Ljudbok"@sv , "Audiobook"@en . :TactileBook a owl:Class ; @@ -105,7 +111,7 @@ prefix kbgf: owl:hasValue [ skos:narrowMatch saogf:Punktskriftsb%C3%B6cker ] ] ) ; skos:editorialNote 'TODO: differentiate between "filtbok" och "punktskriftsbok"?'@en ; - :label "Tactile Book"@en , + rdfs:label "Tactile Book"@en , "Taktil bok"@sv . @@ -113,14 +119,14 @@ prefix kbgf: :category :pending, :complex ; ptg:abstract true ; rdfs:subClassOf :Text ; - :label "Non-book text"@en , + rdfs:label "Non-book text"@en , "Enskild text"@sv . :Article a owl:Class ; :category :pending, :complex ; rdfs:subClassOf :NonBookText ; owl:equivalentClass bibo:Article ; - :label "Artikel"@sv , + rdfs:label "Artikel"@sv , "Article"@en . :Issue a owl:Class ; @@ -132,7 +138,7 @@ prefix kbgf: [ owl:onProperty :genreForm ; owl:hasValue kbgf:Issue ] ) ; - :label "Tidskriftsnummer"@sv , + rdfs:label "Tidskriftsnummer"@sv , "Periodical Issue"@en . @@ -186,7 +192,7 @@ prefix kbgf: [ owl:onProperty :genreForm ; owl:hasValue saogf:Illustrerade%20verk ] ) ; - :label "Illustrerat verk"@sv , + rdfs:label "Illustrerat verk"@sv , "Illustrated Work"@en . :Brochure a owl:Class ; @@ -197,7 +203,7 @@ prefix kbgf: [ owl:onProperty :genreForm ; owl:hasValue ] ) ; - :label "Broschyr"@sv , + rdfs:label "Broschyr"@sv , "Brochure"@en . :Comic a owl:Class ; @@ -208,7 +214,7 @@ prefix kbgf: [ owl:onProperty :genreForm ; owl:hasValue kbgf:Comic ] ) ; - :label "Serietidning"@sv , + rdfs:label "Serietidning"@sv , "Comic"@en . :ComicIssue a owl:Class ; @@ -217,7 +223,7 @@ prefix kbgf: :Comic :Issue ) ; - :label "Serietidningsnummer"@sv , + rdfs:label "Serietidningsnummer"@sv , "Comic Issue"@en . :ComicStory a owl:Class ; @@ -239,10 +245,16 @@ prefix kbgf: # FIXME: remove instancetype :Map ; compute on revert (if work is :Cartography, prefer Map over all non-electronic?) -# TODO: == Cartography -#f:Map a :Form ; -# rdfs:subClassOf f:CartographicImage ; -# rdfs:label "Karta"@sv , "Map"@en . +:CartographicImage a owl:Class ; + ptg:abstract true ; + :category :pending, :complex ; + owl:intersectionOf ( + :Cartography + :CartographicImageContent + [ owl:onProperty :genreForm ; + owl:hasValue kbgf:Map ] + ) ; + rdfs:label "Karta"@sv , "Map"@en . :Atlas a owl:Class ; ptg:abstract true ; @@ -256,14 +268,17 @@ prefix kbgf: rdfs:label "Atlas"@sv , "Atlas"@en . -:Globe a owl:Class ; +:CartographicGlobe a owl:Class ; :category :pending, :complex ; owl:intersectionOf ( :Cartography :CartographicThreeDimensionalFormContent + [ owl:onProperty :genreForm ; + owl:hasValue kbgf:Globe ] ) ; - rdfs:label "Jord- eller månglob"@sv , - "Globe"@en . + rdfs:label "Kartglob"@sv , + "Cartographic Globe"@en ; + skos:altLabel "Jord- eller månglob"@sv . # TODO: @@ -277,7 +292,7 @@ prefix kbgf: [ owl:onProperty :genreForm ; owl:hasValue kbrda:PerformedMusic ] ) ; - :label "Performed Music"@en , + rdfs:label "Performed Music"@en , "Framförd musik"@sv . @@ -286,10 +301,10 @@ prefix kbgf: owl:intersectionOf ( :MovingImage [ owl:onProperty :genreForm ; - owl:hasValue saogf:Filmer ] + owl:hasValue saogf:Filmer ] ) ; owl:equivalentClass bibo:Film ; - :label "Film"@sv , + rdfs:label "Film"@sv , "Film"@en . @@ -311,7 +326,7 @@ prefix kbgf: [ owl:onProperty :genreForm ; owl:hasValue saogf:Arkiv ] ) ; - :label "Arkiv"@sv , + rdfs:label "Arkiv"@sv , "Archive"@en . :Database a owl:Class ; @@ -323,7 +338,7 @@ prefix kbgf: owl:hasValue saogf:Databaser ] ) ; #skos:narrowMatch marc:UpdatingDatabase ; - :label "Databas"@sv , + rdfs:label "Databas"@sv , "Database"@en . # Serial Work Classes @@ -335,7 +350,7 @@ prefix kbgf: [ owl:onProperty :genreForm ; owl:hasValue saogf:Seriella%20publikationer ] ) ; - :label "Seriell publikation"@sv , + rdfs:label "Seriell publikation"@sv , "Serial Publication"@en . :Periodical a owl:Class ; @@ -348,8 +363,8 @@ prefix kbgf: owl:hasValue saogf:Periodika ] ) ; # TODO: :scopeNote Tidskrift vs. Tidning vs. Årsbok () - :altLabel "Periodika"@sv ; - :label "Tidskrift"@sv , + skos:altLabel "Periodika"@sv ; + rdfs:label "Tidskrift"@sv , "Periodical"@en ; :pluralLabel "Tidskrifter"@sv . From 7dc33a97c8bbb1a3a862a999a121a95578fd9f62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Mon, 10 Mar 2025 18:29:49 +0100 Subject: [PATCH 42/69] Bless new work subclasses --- source/vocab/update.rq | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/vocab/update.rq b/source/vocab/update.rq index cb994299..cb3a7025 100644 --- a/source/vocab/update.rq +++ b/source/vocab/update.rq @@ -46,10 +46,10 @@ delete { } where { values (?notawork) { (:Manuscript) - (:Collection) - (:Integrating) - (:Monograph) - (:Serial) + #(:Collection) + #(:Integrating) + #(:Monograph) + #(:Serial) (:Series) } } From c5fbb5713058cccdbec1d52d7b347a270a250921 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Thu, 13 Mar 2025 16:22:49 +0100 Subject: [PATCH 43/69] Add more MARC genre/form mappings --- examples/typenormalization/marcmatches.ttl | 24 +++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/examples/typenormalization/marcmatches.ttl b/examples/typenormalization/marcmatches.ttl index 0fed9644..615a7b6a 100644 --- a/examples/typenormalization/marcmatches.ttl +++ b/examples/typenormalization/marcmatches.ttl @@ -15,7 +15,8 @@ prefix tgm: ## # marc:ConferencePublicationType #-- -# marc:ConferencePublication . # 251347 # Primary? [also ssb] +marc:ConferencePublication # 251347 # Primary? [also ssb] + :closeMatch saogf:Konferensmaterial . # marc:ConferencePublication marc:ConferencePublicationType-1 ## @@ -74,7 +75,8 @@ marc:Statistics # [s] 20197 # Primary? [also ssb] marc:Handbook # [f] 8727 # Primary? [also ssb] # a :ContentType ; # 2 # Primary? [also ssb] - :closeMatch saogf:Handb%C3%B6cker%2C%20manualer%20etc\; ; + #:closeMatch saogf:Handb%C3%B6cker%2C%20manualer%20etc\. ; + :closeMatch ; :closeMatch . # "Handbooks and manuals"@en . marc:Treaty # [z] 1297 # [also ssb] @@ -186,7 +188,8 @@ marc:AbstractsSummary # 1324 # Primary? [also ssb] # a :ContentType . # 4 # Primary? [also ssb] :broadMatch saogf:Sammanfattningar . # {| :source kbkat:viklun |} -# marc:ProgrammedText # 192 # Primary? [also ssb] +marc:ProgrammedText # 192 # Primary? [also ssb] + :broadMatch saogf:Instruktions-%20och%20undervisningsmaterial . # a :ContentType . # 21 # Primary? [also ssb] marc:SurveysOfLiteratureInASubjectArea # 448 # [also ssb] @@ -212,7 +215,8 @@ marc:Essay # [e] 4861 # [also ssb] # N/A in codeMaps: # marc:NotFictionNotFurtherSpecified marc:BooksLiteraryFormType-0 -# marc:ComicStrip marc:BooksLiteraryFormType-c # 2773 # Primary? [also ssb] +marc:ComicStrip # marc:BooksLiteraryFormType-c # 2773 # Primary? [also ssb] + :broadMatch saogf:Tecknade%20serier . ## @@ -446,6 +450,7 @@ marc:ComputerTypeOfFileType-h # [h] :broader marc:Sound # 47 # marc:Sound Prima marc:ComputerTypeOfFileType-g # [g] :broader marc:Game # 3803 # marc:Game Primary? [also ssb] # 132 # Primary? # a :ContentType . # 2 # marc:Game Primary? [also ssb] + :closeMatch saogf:Datorspel ; :closeMatch . # "game"@en . marc:InteractiveMultimedia # [i] 420 # Primary? [also ssb] @@ -488,7 +493,8 @@ marc:View # = marc:MapMaterialType-y # 3 # Primary? :closeMatch tgm:Vyer . # marc:RemoteSensingImage marc:MapMaterialType-r # 33 # Primary? -# marc:MapMaterialType-d UNDEF # 2134 # marc:Atlas Primary? [also ssb] +marc:MapMaterialType-d # UNDEF # 2134 # marc:Atlas Primary? [also ssb] + :broadMatch tgm:Atlaser . # marc:Profile marc:MapMaterialType-k # marc:Diagram marc:MapMaterialType-g @@ -538,7 +544,8 @@ marc:TerrestrialGlobe # = marc:GlobeMaterialType-c # 59 # Primary? marc:Map :closeMatch tgm:Kartor . marc:Globe # = marc:MapsMaterialType-d # 132 # Primary? :closeMatch tgm:Glober . -# marc:Atlas marc:MapsMaterialType-e # 2044 # Primary? [also ssb] +marc:Atlas # marc:MapsMaterialType-e # 2044 # Primary? [also ssb] + :closeMatch tgm:Atlaser . # marc:SeparateMapSupplementToAnotherWork marc:MapsMaterialType-f # 240 # Primary? # marc:MapSeries marc:MapsMaterialType-b # 1403 # Primary? [also ssb] # marc:MapBoundAsPartOfAnotherWork marc:MapsMaterialType-g # 260 # Primary? @@ -740,6 +747,7 @@ marc:SquareDanceMusic # [sd] :closeMatch . # "Square dance music"@en . marc:Opera # [op] 950 # [also ssb] + :closeMatch saogf:Operor ; :closeMatch . # "Operas"@en . marc:Ballet # [bt] 57 # @@ -747,6 +755,7 @@ marc:Ballet # [bt] 57 # :closeMatch . # "Ballets (Music)"@en . marc:FolkMusic # [fm] 6899 # [also ssb] + :closeMatch saogf:Folkmusik ; :closeMatch . # "Folk music"@en . marc:Chorale # [ch] 11 # @@ -785,7 +794,8 @@ marc:RagtimeMusic # [rg] 6 # # marc:UnknownIfItemIsGovernmentPublication marc:GovernmentPublicationType-u # 14196 # [also ssb] # marc:FederalNational marc:GovernmentPublicationType-f # 34060 # [also ssb] # marc:StateProvincialTerritorialDependentEtc marc:GovernmentPublicationType-s # 11731 # [also ssb] -# marc:GovernmentPublicationLevelUndetermined marc:GovernmentPublicationType-o # 666969 # [also ssb] +marc:GovernmentPublicationLevelUndetermined # marc:GovernmentPublicationType-o # 666969 # [also ssb] + :broadMatch saogf:Myndighetspublikationer . # FIXME: N/A # marc:Local marc:GovernmentPublicationType-l # 721 # [also ssb] # marc:AutonomousOrSemiAutonomousComponent marc:GovernmentPublicationType-a # 328 # Primary? [also ssb] From 500af99f1d9813c07249adf72c05c0e33204a9ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Wed, 26 Mar 2025 17:48:23 +0100 Subject: [PATCH 44/69] Add rdabox2jsonld "one off" script --- scripts/oneoffs/rdabox2jsonld.py | 157 +++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 scripts/oneoffs/rdabox2jsonld.py diff --git a/scripts/oneoffs/rdabox2jsonld.py b/scripts/oneoffs/rdabox2jsonld.py new file mode 100644 index 00000000..846f5636 --- /dev/null +++ b/scripts/oneoffs/rdabox2jsonld.py @@ -0,0 +1,157 @@ +""" +Convert RDA term lists in Box Notes to JSON-LD + +1. Download all lists from a given Box folder (here "Värdevokabulär") as a ZIP file. +2. Run this script (pipe or redirect output as desired): + $ python scripts/rdabox2jsonld.py cache/Värdevokabulär.zip + +""" +from urllib.parse import quote +from zipfile import ZipFile +import json +import re +import sys + + +def convert(doc, rtype): + items = [] + for block in doc['content']: + if block['type'] == 'table': + skipped_first_row = False + for row in block['content']: + if not skipped_first_row: + skipped_first_row = True + continue + + cells = row['content'] + + if content := cells[0]['content'][0].get('content'): + label_en = content[0]['text'] + else: + continue + + ref = None + if content := find_with_content(cells[0]['content'])[-1].get('content'): + for mark in content[0]['marks']: + ref = mark['attrs'].get('href') + if ref: + break + + definition_en = None + if content := cells[1]['content'][0].get('content'): + definition_en = content[0]['text'] + + label_sv = None + if content := cells[2]['content'][0].get('content'): + label_sv = content[0].get('text') + + definition_sv = None + if content := cells[3]['content'][0].get('content'): + definition_sv = content[0]['text'] + + matches = [] + linkcells = set() + for cell in cells[4:]: + for p in cell['content']: + if content := p.get('content'): + for block in [p] + content: + for mark in block.get('marks', []): + if mark['type'] == 'link': + matches.append({'@id': mark['attrs']['href']}) + linkcells.add(id(cell)) + + notes = [] + for cell in cells[4:]: + if id(cell) in linkcells: + continue + for p in cell['content']: + if content := p.get('content'): + notes.append(clean(content[0]['text'])) + + id_label = clean(label_en) or clean(label_sv) + r_id = quote(id_label.title().replace(' ', '')) + item = { + "@id": r_id, + "@type": rtype, + "prefLabel_en": clean(label_en), + "prefLabel_sv": clean(label_sv), + "definition_en": clean(definition_en), + "definition_sv": clean(definition_sv), + "exactMatch": {"@id": ref} if ref else None, + "closeMatch": matches, + "note": notes + } + items.append(item) + + return {item['@id']: item for item in items} + + +def find_with_content(items): + return [item for item in items if 'content' in item] + + +def to_type(fname): + fname = fname.rsplit('/')[-1].rsplit('.')[0] + return re.sub(r'\W', '', fname.title().replace(' ', '')) + + +def clean(s): + if s is None: + return None + + s = s.replace(chr(160), ' ').strip() + if not s: + return None + + return s[0].upper() + s[1:] + + +def main(): + result_map = {} + + def convert_and_add_results(source, fname): + if not (doc := source.get('doc')) or 'content' not in doc: + return + + results = convert(doc, to_type(fname)) + for key, item in results.items(): + if dup := result_map.get(key): + print( + '#', + f"Duplicate on {key}:", + dup['@type'], + "and", + item['@type'], + file=sys.stderr + ) + result_map.update(results) + + for fname in sys.argv[1:]: + if fname.endswith('.zip'): + with ZipFile(fname) as zipfile: + for zfname in zipfile.namelist(): + with zipfile.open(zfname) as zf: + source = json.load(zf) + convert_and_add_results(source, zfname) + else: + with open(fname) as f: + source = json.load(f) + convert_and_add_results(source, fname) + + doc = { + "@context": { + "@vocab": "https://id.kb.se/vocab/", + "@base": "https://id.kb.se/term/rda/", + "prefLabel_sv": {"@id": "prefLabel", "@language": "sv"}, + "prefLabel_en": {"@id": "prefLabel", "@language": "en"}, + "definition_sv": {"@id": "definition", "@language": "sv"}, + "definition_en": {"@id": "definition", "@language": "en"} + }, + "@graph": list(result_map.values()) + } + + print(json.dumps(doc, indent=2, ensure_ascii=False)) + + +if __name__ == '__main__': + main() From ec8822a9132d3b8d37f80a5a8629c392a299ba0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Thu, 27 Mar 2025 18:45:03 +0100 Subject: [PATCH 45/69] Extract some more text with rdabox2jsonld --- scripts/oneoffs/rdabox2jsonld.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/scripts/oneoffs/rdabox2jsonld.py b/scripts/oneoffs/rdabox2jsonld.py index 846f5636..974baa02 100644 --- a/scripts/oneoffs/rdabox2jsonld.py +++ b/scripts/oneoffs/rdabox2jsonld.py @@ -46,8 +46,11 @@ def convert(doc, rtype): label_sv = content[0].get('text') definition_sv = None - if content := cells[3]['content'][0].get('content'): - definition_sv = content[0]['text'] + + for p in cells[3]['content']: + if content := p.get('content'): + definition_sv = ''.join(x['text'] for x in content) + break matches = [] linkcells = set() @@ -66,10 +69,13 @@ def convert(doc, rtype): continue for p in cell['content']: if content := p.get('content'): - notes.append(clean(content[0]['text'])) + notes.append(clean(''.join( + x.get('text') or ('\n' if x['type'] == 'hard_break' else ' ') + for x in content + ))) id_label = clean(label_en) or clean(label_sv) - r_id = quote(id_label.title().replace(' ', '')) + r_id = quote(id_label.title().replace(' ', '').replace('-', '')) item = { "@id": r_id, "@type": rtype, From ef35efdf34a6442c4e74d7efda90937769da1c3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Fri, 28 Mar 2025 12:16:25 +0100 Subject: [PATCH 46/69] Extract altLabel, scopeNote, related for RDA terms --- scripts/oneoffs/rdabox2jsonld.py | 99 ++++++++++++++++++++++++++------ 1 file changed, 82 insertions(+), 17 deletions(-) diff --git a/scripts/oneoffs/rdabox2jsonld.py b/scripts/oneoffs/rdabox2jsonld.py index 974baa02..c51629b8 100644 --- a/scripts/oneoffs/rdabox2jsonld.py +++ b/scripts/oneoffs/rdabox2jsonld.py @@ -30,27 +30,18 @@ def convert(doc, rtype): else: continue - ref = None - if content := find_with_content(cells[0]['content'])[-1].get('content'): - for mark in content[0]['marks']: - ref = mark['attrs'].get('href') - if ref: - break + ( + definition_en, scopenote_en, related_en, altlabel_en + ) = extract_properties(cells[1]) - definition_en = None - if content := cells[1]['content'][0].get('content'): - definition_en = content[0]['text'] label_sv = None if content := cells[2]['content'][0].get('content'): label_sv = content[0].get('text') - definition_sv = None - - for p in cells[3]['content']: - if content := p.get('content'): - definition_sv = ''.join(x['text'] for x in content) - break + ( + definition_sv, scopenote_sv, related_sv, altlabel_sv + ) = extract_properties(cells[3]) matches = [] linkcells = set() @@ -74,15 +65,36 @@ def convert(doc, rtype): for x in content ))) + ref = None + if content := find_with_content(cells[0]['content'])[-1].get('content'): + for mark in content[0]['marks']: + ref = mark['attrs'].get('href') + if ref: + break + id_label = clean(label_en) or clean(label_sv) - r_id = quote(id_label.title().replace(' ', '').replace('-', '')) + + r_id = label_to_slug(id_label) + + # NOTE: related_sv is probably superfluous + # (those labels *should* already be on the targets) + related = [ + {"@id": label_to_slug(label)} + for label in related_en + ] + item = { "@id": r_id, "@type": rtype, "prefLabel_en": clean(label_en), "prefLabel_sv": clean(label_sv), + "altLabel_en": clean(altlabel_en), + "altLabel_sv": clean(altlabel_sv), "definition_en": clean(definition_en), "definition_sv": clean(definition_sv), + "scopeNote_en": clean(scopenote_en), + "scopeNote_sv": clean(scopenote_sv), + "related": related, "exactMatch": {"@id": ref} if ref else None, "closeMatch": matches, "note": notes @@ -92,6 +104,51 @@ def convert(doc, rtype): return {item['@id']: item for item in items} +def extract_properties(cell): + definition = None + # "Scope Note:" + scopenote = None + # "Related Terms:" (bullet list) + related = [] + # "Synonyms:" + altlabel = None + + next_is = None + + for p in cell['content']: + if content := p.get('content'): + text = ''.join(t for x in content if (t := x.get('text'))) + if definition is None: + definition = text + elif next_is == 'synonyms': + altlabel = text + next_is = None + elif next_is == 'scope note': + scopenote = text + next_is = None + elif next_is == 'related terms': + if text: + related.append(text) + else: + assert p['type'] == 'bullet_list' + items = [ + y['text'] + for li in content + for x in li['content'] + for y in x['content'] + ] + related += items + next_is = None + else: + for next_is in ['scope note', 'synonyms', 'related terms']: + if next_is in text.lower(): + break + else: + next_is = None + + return definition, scopenote, related, altlabel + + def find_with_content(items): return [item for item in items if 'content' in item] @@ -101,6 +158,10 @@ def to_type(fname): return re.sub(r'\W', '', fname.title().replace(' ', '')) +def label_to_slug(label): + return quote(label.title().replace(' ', '').replace('-', '')) + + def clean(s): if s is None: return None @@ -151,7 +212,11 @@ def convert_and_add_results(source, fname): "prefLabel_sv": {"@id": "prefLabel", "@language": "sv"}, "prefLabel_en": {"@id": "prefLabel", "@language": "en"}, "definition_sv": {"@id": "definition", "@language": "sv"}, - "definition_en": {"@id": "definition", "@language": "en"} + "definition_en": {"@id": "definition", "@language": "en"}, + "altLabel_sv": {"@id": "altLabel", "@language": "sv"}, + "altLabel_en": {"@id": "altLabel", "@language": "en"}, + "scopeNote_sv": {"@id": "scopeNote", "@language": "sv"}, + "scopeNote_en": {"@id": "scopeNote", "@language": "en"}, }, "@graph": list(result_map.values()) } From 2a12d7edb344c2fc84f94c215f9dabf4536194e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Tue, 1 Apr 2025 19:55:38 +0200 Subject: [PATCH 47/69] Categorize genre, form and content type mappings --- examples/typenormalization/marcmatches.ttl | 3 +- source/genreforms/contentforms.ttl | 493 +++++++-------------- source/genreforms/contentgenres.ttl | 466 ++++++++++--------- source/genreforms/genreforms.ttl | 224 ++++++++-- source/vocab/newtypes/carrierclasses.ttl | 4 +- source/vocab/newtypes/contentclasses.ttl | 150 ++++++- 6 files changed, 711 insertions(+), 629 deletions(-) diff --git a/examples/typenormalization/marcmatches.ttl b/examples/typenormalization/marcmatches.ttl index 615a7b6a..ad0eb07e 100644 --- a/examples/typenormalization/marcmatches.ttl +++ b/examples/typenormalization/marcmatches.ttl @@ -492,7 +492,8 @@ marc:Section # ? marc:MapMaterialType-s # 9 # Primary? [also ssb] marc:View # = marc:MapMaterialType-y # 3 # Primary? :closeMatch tgm:Vyer . -# marc:RemoteSensingImage marc:MapMaterialType-r # 33 # Primary? +marc:RemoteSensingImage + :broadMatch tgm:Satellitbilder . # marc:MapMaterialType-r # 33 # Primary? marc:MapMaterialType-d # UNDEF # 2134 # marc:Atlas Primary? [also ssb] :broadMatch tgm:Atlaser . # marc:Profile marc:MapMaterialType-k diff --git a/source/genreforms/contentforms.ttl b/source/genreforms/contentforms.ttl index bb85d19c..5361b106 100644 --- a/source/genreforms/contentforms.ttl +++ b/source/genreforms/contentforms.ttl @@ -1,425 +1,261 @@ +prefix : prefix rdfs: prefix owl: prefix skos: -prefix bibo: -prefix sdo: prefix ptg: -prefix bf: -prefix : -prefix marc: -prefix f: -prefix g: +prefix bibo: +prefix bf: prefix saogf: prefix barngf: +prefix tgm: prefix kbrda: +prefix marc: +prefix marcgt: +prefix term: +prefix kbgf: -base +# Base Forms (Categories?! Nature of content, etc.) -# TODO: split this and move to either rda content mappings, or genreforms? +kbgf:Text a :ContentForm ; + :inCollection term:form . +#kbgf:LinguisticWork a :ContentForm ; +# :inCollection term:abstract ; +# :altLabel "Literature"@en , +# "Litteratur"@sv ; +# :prefLabel "Linguistic work"@en , +# "Språkligt verk"@sv . -f:CartographicObject a :ContentForm; - #skos:exactMatch kbrda:CartographicThreeDimensionalForm; - rdfs:subClassOf :Cartography, :Object ; - rdfs:label "Kartografiskt objekt"@sv , - "Cartographic Object"@en . +kbgf:Visual a :ContentForm . -# FIXME: move instancetype :Globe to work -f:Globe a :ContentForm ; - rdfs:subClassOf f:CartographicObject . +kbgf:Audio a :ContentForm . -f:ComputerDataset a :ContentForm; - skos:exactMatch kbrda:ComputerDataset; - rdfs:subClassOf :Dataset . +kbgf:Dataset a :ContentForm . +kbgf:Integrating a :ContentForm ; + skos:broader kbgf:CollectingResource . -f:Booklet a :ContentForm ; # :MediumText - :category :pending, :richtype ; - rdfs:subClassOf :NonBookText ; - rdfs:label "Texthäfte"@sv , "Booklet"@en . +kbgf:Manuscript a :GenreForm . -f:Textleaf a :ContentForm ; # :SmallText - :category :pending, :richtype ; - rdfs:subClassOf :NonBookText ; - rdfs:label "Textblad"@sv , "Text leaf"@en . +kbgf:MovingImage a :ContentForm . -f:NonBookTextWithImages a :ContentForm ; - rdfs:subClassOf :NonBookText , :IllustratedWork ; - rdfs:label "Enskild text med bilder"@sv , - "Non-book With Images"@en . +kbgf:Multimedia a :GenreForm . -f:Issue a :ContentForm ; - :category :pending, :concretetype ; - rdfs:subClassOf :NonBookText ; - owl:equivalentClass bibo:Issue ; - rdfs:label "Tidskriftsnummer"@sv , - "Periodical Issue"@en . +kbgf:Music a :ContentForm . + +kbgf:Object a :ContentForm . + +kbgf:StillImage a :ContentForm ; + skos:closeMatch saogf:Bilder . + +kbgf:Tactile a :ContentForm . -f:MonographicSeries a :ContentForm ; - :category :pending, :concretetype ; - rdfs:subClassOf :CollectingResource ; - owl:equivalentClass bibo:Series , - bf:Series, - marc:MonographicSeries ; - rdfs:label "Monograph Series"@en , +kbgf:CollectingResource a :GenreForm . + +kbgf:IllustratedWork a :ContentForm . + +kbgf:NonBookText a :ContentForm ; # kbgf:Document ?? + ptg:abstract true ; + skos:broader kbgf:Text ; + skos:prefLabel "Non-book text"@en , + "Enskild text"@sv . + +kbgf:OnlineResource a :ContentForm . + +kbgf:SerialPublication a :GenreForm ; + skos:broader kbgf:CollectingResource . + +kbgf:Book a :ContentForm ; + :inCollection term:form ; + skos:narrowMatch saogf:Romaner , + saogf:Ljudb%C3%B6cker , + barngf:Bilderb%C3%B6cker , + barngf:Kapitelb%C3%B6cker . + +kbgf:Cartography a :ContentForm ; + skos:closeMatch saogf:Kartor ; + :inCollection term:form . + +kbgf:Map a :GenreForm ; + skos:broader kbgf:Cartography ; + skos:exactMatch marc:MapATwoDimensionalMap, tgm:Kartor . + +kbgf:Atlas a :GenreForm ; + skos:broader kbgf:Cartography, kbgf:Book ; + skos:exactMatch marc:Atlas, tgm:Atlaser . + +kbgf:Globe a :GenreForm ; + skos:broader kbgf:CartographicObject ; + skos:exactMatch tgm:Glober . + +kbgf:MonographicSeries a :GenreForm ; + skos:broader kbgf:CollectingResource ; + skos:exactMatch marc:MonographicSeries ; + :singularLabel "Monograph Series"@en , "Monografiserie"@sv . -f:WrittenBook a :ContentForm ; - :category :pending, :concretetype ; - rdfs:subClassOf :Book ; - owl:intersectionOf ( - :Text - [ owl:onProperty :genreForm ; - owl:hasValue g:Book ] - ) ; +kbgf:WrittenBook a :ContentForm ; + skos:broader kbgf:Text, kbgf:Book ; skos:narrowMatch barngf:Kapitelb\%C3\%B6cker ; - :label "Written book"@en , + :singularLabel "Written book"@en , "Skriven bok"@sv ; :altLabel "Bok"@sv, "Book"@en . -f:BookWithImages a :ContentForm ; - :category :pending, :concretetype ; - rdfs:subClassOf f:WrittenBook , :IllustratedWork ; +kbgf:BookWithImages a :ContentForm ; + skos:broader kbgf:WrittenBook , kbgf:IllustratedWork ; skos:editorialNote "TODO: PictorialWork?"@en ; skos:scopeNote "Gör ingen skillnad mellan bilder som är integral del av verket (där nya bilder är ett nytt verk) och texter där bilderna är kompletterande (). Sådana skillnader kan anges som genre/form."@sv ; skos:broadMatch saogf:Bildverk ; skos:narrowMatch barngf:Bilderb%C3%B6cker ; - rdfs:label "Bok med bilder"@sv , + :singularLabel "Bok med bilder"@sv , "Book With Images"@en . -f:Film a :ContentForm ; - :category :pending, :concretetype ; - rdfs:subClassOf :MovingImage ; - owl:equivalentClass bibo:Film ; - skos:exactMatch saogf:Filmer ; - rdfs:label "Film"@sv , - "Film"@en . - -f:Article a :ContentForm ; - :category :pending, :concretetype ; - rdfs:subClassOf :NonBookText ; - owl:equivalentClass bibo:Article ; - rdfs:label "Artikel"@sv , - "Article"@en . +kbgf:CartographicObject a :ContentForm; + skos:broadMatch kbrda:CartographicThreeDimensionalForm ; + skos:broader kbgf:Cartography, kbgf:Object ; + rdfs:label "Kartografiskt objekt"@sv , + "Cartographic Object"@en . -f:Audiobook a :ContentForm ; - :category :pending, :concretetype ; - rdfs:subClassOf :Audio , - :Book , - bibo:AudioDocument ; +kbgf:Audiobook a :ContentForm ; + skos:broader kbgf:Audio , + kbgf:Book ; skos:exactMatch saogf:Ljudb\%C3\%B6cker ; - rdfs:label "Ljudbok"@sv , + :singularLabel "Ljudbok"@sv , "Audiobook"@en . -f:Database a :ContentForm ; - :category :pending, :concretetype ; - rdfs:subClassOf :Integrating ; +kbgf:Database a :ContentForm ; + skos:broader kbgf:Integrating ; skos:exactMatch saogf:Databaser ; skos:narrowMatch marc:UpdatingDatabase ; - rdfs:label "Databas"@sv , + :singularLabel "Databas"@sv , "Database"@en . -f:TactileBook a :ContentForm ; - :category :pending, :concretetype ; - rdfs:subClassOf :Book , - :Tactile ; - skos:editorialNote "TODO: differentiate between \"filtbok\" och \"punktskriftsbok\"?"@en ; - #skos:broadMatch kbrda:TactileText ; - skos:narrowMatch saogf:Punktskriftsb\%C3\%B6cker ; - rdfs:label "Tactile Book"@en , - "Taktil bok"@sv . - +kbgf:Photograph a :ContentForm ; + skos:broader kbgf:StillImage ; + skos:exactMatch saogf:Fotografier ; + :singularLabel "Fotografi"@sv , + "Photograph"@en ; + :pluralLabel "Fotografier"@sv . -f:AudioProgram a :ContentForm ; - rdfs:subClassOf f:NonMusicAudio ; - rdfs:label "Ljudprogram"@sv , - "Audio Program"@en . +#kbgf:TactileBook a :ContentForm ; +# skos:broader kbgf:Book , +# kbgf:Tactile ; +# skos:editorialNote "TODO: differentiate between \"filtbok\" och \"punktskriftsbok\"?"@en ; +# skos:broadMatch kbrda:TactileText ; +# skos:narrowMatch saogf:Punktskriftsb\%C3\%B6cker ; +# :singularLabel "Tactile Book"@en , +# "Taktil bok"@sv . + +kbgf:ComputerDataset a :ContentForm ; + skos:broadMatch kbrda:ComputerDataset ; + skos:broader kbgf:Dataset . + +kbgf:NonBookTextWithImages a :ContentForm ; + skos:broader kbgf:NonBookText , kbgf:IllustratedWork ; + rdfs:label "Enskild text med bilder"@sv , + "Non-book With Images"@en . -f:NonMusicAudio a :ContentForm ; +kbgf:NonMusicAudio a :ContentForm ; ptg:abstract true ; - rdfs:subClassOf :Audio ; + skos:broader kbgf:Audio ; rdfs:label "Non-music audio"@en , "Ljud men inte musik"@sv . -f:BoardGame a :ContentForm ; - rdfs:subClassOf f:InteractiveObject , g:PuzzleOrGame ; - skos:exactMatch ; - rdfs:label "Brädspel"@sv , - "Boardgame"@en . - -f:Brochure a :ContentForm ; - rdfs:subClassOf :NonBookText ; - skos:exactMatch ; - rdfs:label "Broschyr"@sv , - "Brochure"@en . - -f:Comic a :ContentForm ; - rdfs:subClassOf g:GraphicLiterature ; - skos:exactMatch saogf:Serietidningar ; - rdfs:label "Serietidning"@sv , - "Comic"@en . - -f:ComicIssue a :ContentForm ; - rdfs:subClassOf f:Comic , - f:Issue ; - owl:equivalentClass sdo:ComicIssue ; - rdfs:label "Serietidningsnummer"@sv , - "Comic Issue"@en . - -f:ComicSerial a :ContentForm ; - rdfs:comment "TODO: series of issues vs. arc of stories?" ; - rdfs:subClassOf f:Comic , - :SerialPublication ; - # :MonographicSeries ; # TODO: Separate ComicSeries ? - owl:equivalentClass sdo:ComicSeries ; - rdfs:label "Serietidningsserie"@sv , - "Comic Series"@en . - -f:Software a :ContentForm ; # TODO: pending; integrate with ComputerGame, Application, ... +kbgf:Software a :ContentForm ; # TODO: pending; integrate with ComputerGame, Application, ... ptg:abstract true ; - rdfs:subClassOf :Multimedia ; + skos:related kbgf:Multimedia ; :prefLabel "Mjukvara"@sv , "Software"@en . -f:ComputerCode a :ContentForm ; - rdfs:subClassOf f:Software ; - rdfs:label "Datorkod"@sv , - "Computer Code"@en . - -f:ComputerProgram a :ContentForm ; - #skos:exactMatch kbrda:ComputerProgram; - rdfs:subClassOf f:Software ; - rdfs:label "Datorprogram"@sv , - "Computer Program"@en . - -f:ComputerGame a :ContentForm ; - rdfs:subClassOf g:PuzzleOrGame, f:ComputerProgram ; - skos:exactMatch saogf:Datorspel ; - rdfs:label "Datorspel"@sv , - "Computer Game"@en . - -f:Diagram a :ContentForm ; - rdfs:subClassOf :StillImage ; - skos:exactMatch saogf:Diagram ; - rdfs:label "Diagram"@sv , - "Diagram"@en . - -f:FormDocument a :ContentForm ; - rdfs:seeAlso ; - rdfs:subClassOf :NonBookText ; - skos:exactMatch saogf:Blanketter ; - rdfs:label "Blankett"@sv , - "Form Document"@en . - -f:Handwriting a :ContentForm ; - rdfs:subClassOf :Manuscript , - :Text ; - skos:exactMatch saogf:Handskrifter ; - rdfs:label "Handskrift"@sv , - "Handwriting"@en ; - :pluralLabel "Handskrifter"@sv . - -f:Illustration a :ContentForm ; - rdfs:subClassOf :StillImage ; - skos:exactMatch saogf:Illustrationer ; - rdfs:label "Illustration"@sv , - "Illustration"@en . - -f:InteractiveObject a :ContentForm ; - rdfs:subClassOf :Object ; - rdfs:label "Interaktivt objekt"@sv , - "InteractiveObject"@en . - -f:Manual a :ContentForm ; - rdfs:subClassOf :Text , - g:TeachingMaterial ; - skos:closeMatch saogf:Handb\%C3\%B6cker\%2C\%20manualer\%20etc ; - rdfs:seeAlso ; - rdfs:label "Manual"@sv , - "Manual"@en . - -f:MechanicalBook a :ContentForm ; - rdfs:subClassOf f:InteractiveObject , - :WrittenBook ; - rdfs:label "Mekanisk bok"@sv , - "Mechanical Book"@en . - -f:Note a :ContentForm ; - rdfs:subClassOf :NonBookText ; - owl:equivalentClass bibo:Note ; - skos:exactMatch saogf:Anteckningar ; - rdfs:label "Anteckning"@sv , - "Note"@en . - -f:Painting a :ContentForm ; - rdfs:subClassOf :StillImage ; - skos:exactMatch ; - rdfs:label "Målning"@sv , - "Painting"@en . - -f:Photobook a :ContentForm ; - rdfs:subClassOf f:BookWithImages , - :Book ; - skos:exactMatch saogf:Fotob\%C3\%B6cker ; - rdfs:label "Fotobok"@sv , - "Photobook"@en . - -f:Photograph a :ContentForm ; - rdfs:subClassOf :StillImage ; - skos:exactMatch saogf:Fotografier ; - rdfs:label "Fotografi"@sv , - "Photograph"@en ; - :pluralLabel "Fotografier"@sv . +kbgf:Issue a :GenreForm ; + skos:broader kbgf:NonBookText ; + :singularLabel "Tidskriftsnummer"@sv , + "Periodical Issue"@en . + +kbgf:Photograph a :GenreForm ; + skos:exactMatch saogf:Fotografier, tgm:Fotografier . + +kbgf:Periodical a :GenreForm . -f:PictureDictionary a :ContentForm ; - rdfs:subClassOf :Lexicon , - f:BookWithImages ; - skos:exactMatch saogf:Bildlexikon ; - rdfs:label "Bildlexikon"@sv , - "Picture Dictionary"@en . - -f:Postcard a :ContentForm ; - rdfs:subClassOf :StillImage ; - skos:exactMatch saogf:Vykort ; - rdfs:label "Vykort"@sv , - "Postcard"@en . - -# TODO: GenreForm? -#f:PostcardBook a :ContentForm ; -# rdfs:subClassOf f:Postcard , f:Book ; -# skos:exactMatch ; - -f:Puzzle a :ContentForm ; - rdfs:subClassOf f:InteractiveObject, g:PuzzleOrGame ; - skos:exactMatch saogf:Pussel ; - rdfs:label "Pussel"@sv , - "Puzzle"@en . - -f:Sculpture a :ContentForm ; - rdfs:subClassOf :Object ; - rdfs:label "Skulptur"@sv , - "Sculpture"@en . - -f:SpokenBook a :ContentForm ; - rdfs:subClassOf f:Audiobook , - f:SpokenWord ; - skos:exactMatch saogf:Talb\%C3\%B6cker ; - rdfs:label "Talbok"@sv , - "Spoken Book"@en . - -f:SpokenWord a :ContentForm ; - #skos:exactMatch kbrda:SpokenWord ; - rdfs:subClassOf :Text , - :Audio ; - rdfs:label "Tal"@sv , - "Spoken Word"@en . - -f:SpokenPaper a :ContentForm ; - rdfs:subClassOf :Periodical , - f:SpokenWord ; - skos:exactMatch saogf:Taltidningar ; - rdfs:label "Taltidning"@sv , - "Spoken Paper"@en . - -f:TVProgram a :ContentForm ; - rdfs:subClassOf :MovingImage ; - skos:exactMatch saogf:Tv-program ; - rdfs:label "Tv-program"@sv , - "TV-Program"@en . - -f:TVSeries a :ContentForm ; - rdfs:subClassOf f:TVProgram , - :MonographicSeries ; - skos:exactMatch saogf:Tv-serier ; - rdfs:label "Tv-serie"@sv , - "TV-Series"@en . - -f:Toy a :ContentForm ; - rdfs:subClassOf f:InteractiveObject ; - rdfs:label "Leksak"@sv , - "Toy"@en . - -f:Trailer a :ContentForm ; - rdfs:subClassOf f:Film ; - skos:exactMatch saogf:Trailrar ; - rdfs:label "Trailer"@sv , - "Trailer"@en . - -f:Website a :ContentForm ; - rdfs:subClassOf :OnlineResource , - :Integrating ; - skos:exactMatch saogf:Webbplatser ; - rdfs:label "Webbplats"@sv , - "Website"@en . +kbgf:Film a :GenreForm ; + skos:broader kbgf:MovingImage ; + skos:exactMatch saogf:Filmer ; + :singularLabel "Film"@sv , + "Film"@en . + +kbgf:Article a :GenreForm ; + skos:broader kbgf:NonBookText ; + :singularLabel "Artikel"@sv , + "Article"@en . ## Just RDA content types (handled by rdamatches IF used by some concrete/complex type) -#f:CartographicDataset a :ContentForm; +#f:CartographicDataset a :ContentAspect; # skos:exactMatch kbrda:CartographicDataset; -# rdfs:subClassOf :Cartography, :Dataset ; +# skos:broader kbgf:Cartography, kbgf:Dataset ; # rdfs:label "Kartografiskt dataset"@sv , "Cartographic dataset"@en . # -#f:CartographicImage a :ContentForm; +#f:CartographicImage a :ContentAspect; # skos:exactMatch kbrda:CartographicImage; -# #skos:closeMatch :Map ; -# rdfs:subClassOf :Cartography, :StillImage ; +# #skos:closeMatch kbgf:Map ; +# skos:broader kbgf:Cartography, kbgf:StillImage ; # rdfs:label "Kartografisk bild"@sv , "Cartographic image"@en ; # skos:altLabel "Karta"@sv, "Kartor in plano"@sv ; # :pluralLabel "Kartor"@sv . # -#f:CartographicMovingImage a :ContentForm; +#f:CartographicMovingImage a :ContentAspect; # skos:exactMatch kbrda:CartographicMovingImage; -# rdfs:subClassOf :Cartography, :MovingImage ; +# skos:broader kbgf:Cartography, kbgf:MovingImage ; # rdfs:label "Kartografisk rörlig bild"@sv , "Cartographic moving image"@en . # -#f:TactileCartography a :ContentForm ; -# rdfs:subClassOf :Cartography , -# :Tactile ; +#f:TactileCartography a :ContentAspect ; +# skos:broader kbgf:Cartography , +# kbgf:Tactile ; # skos:narrowMatch kbrda:CartographicTactileImage, kbdra:CartographicTactileThreeDimensionalForm ; #? # skos:editorialNote "TODO: edge case? Force a choice of primary purpose of expression? This is not a11y, that's about the instance. Mixed purposes can be solved by primary purpose as type and additional \"color\" as genre."@en ; # rdfs:label "Taktilt kartografiskt verk"@sv , # "Tactile Cartography"@en . # -#f:CartographicTactileImage a :ContentForm; +#f:CartographicTactileImage a :ContentAspect; # skos:exactMatch kbrda:CartographicTactileImage; -# rdfs:subClassOf :Cartography, :StillImage ; +# skos:broader kbgf:Cartography, kbgf:StillImage ; # rdfs:label "Kartografisk taktil bild"@sv , "Cartographic tactile image"@en . # -#f:CartographicTactileObject a :ContentForm; +#f:CartographicTactileObject a :ContentAspect; # skos:exactMatch kbrda:CartographicTactileThreeDimensionalForm; -# rdfs:subClassOf :Cartography, f:TactileObject ; +# skos:broader kbgf:Cartography, f:TactileObject ; # rdfs:label "Kartografiskt taktilt objekt"@sv , # "Cartographic Tactile Object"@en . # -#f:TactileImage a :ContentForm ; +#f:TactileImage a :ContentAspect ; # skos:exactMatch kbrda:TactileImage; -# rdfs:subClassOf :StillImage, :Tactile ; # _:TactileInstanceRestriction . +# skos:broader kbgf:StillImage, kbgf:Tactile ; # _:TactileInstanceRestriction . # rdfs:label "Taktil bild"@sv , "Tactile image"@en . # -#f:TactileNotatedMusic a :ContentForm ; +#f:TactileNotatedMusic a :ContentAspect ; # skos:exactMatch kbrda:TactileNotatedMusic; -# rdfs:subClassOf :NotatedMusic, :Tactile ; # , _:TactileInstanceRestriction . +# skos:broader kbgf:NotatedMusic, kbgf:Tactile ; # , _:TactileInstanceRestriction . # rdfs:label "Taktil noterad musik"@sv , "Tactile notated music"@en . # -#f:TactileNotatedMovement a :ContentForm ; +#f:TactileNotatedMovement a :ContentAspect ; # skos:exactMatch kbrda:TactileNotatedMovement; -# rdfs:subClassOf :NotatedMovement, :Tactile ; # , _:TactileInstanceRestriction . +# skos:broader kbgf:NotatedMovement, kbgf:Tactile ; # , _:TactileInstanceRestriction . # rdfs:label "Taktil noterad rörelse"@sv , "Tactile notated movement"@en . # -#f:TactileText a :ContentForm ; +#f:TactileText a :ContentAspect ; # skos:exactMatch kbrda:TactileText; -# rdfs:subClassOf :Text, :Tactile ; # , _:TactileInstanceRestriction . +# skos:broader kbgf:Text, kbgf:Tactile ; # , _:TactileInstanceRestriction . # rdfs:label "Taktil text"@sv , "Tactile text"@en . # -#f:TactileObject a :ContentForm ; +#f:TactileObject a :ContentAspect ; # skos:exactMatch kbrda:TactileThreeDimensionalForm; -# rdfs:subClassOf :Object, :Tactile ; # , _:TactileInstanceRestriction , +# skos:broader kbgf:Object, kbgf:Tactile ; # , _:TactileInstanceRestriction , # rdfs:label "Taktilt objekt"@sv , # "Tactile Object"@en . # ##_:TactileInstanceRestriction a owl:Restriction ; ## owl:onProperty :hasInstance; -## owl:allValueFrom :Tactile . +## owl:allValueFrom kbgf:Tactile . # #:ThreeDimensionalMovingImage # skos:exactMatch kbrda:ThreeDimensionalMovingImage ; @@ -428,4 +264,3 @@ f:Website a :ContentForm ; #:TwoDimensionalMovingImage # skos:exactMatch kbrda:TwoDimensionalMovingImage ; # :prefLabel "Tvådimensionell rörlig bild", "Two-dimensional moving image"@en . - diff --git a/source/genreforms/contentgenres.ttl b/source/genreforms/contentgenres.ttl index e03ac7af..f4099cda 100644 --- a/source/genreforms/contentgenres.ttl +++ b/source/genreforms/contentgenres.ttl @@ -3,275 +3,247 @@ prefix owl: prefix skos: prefix bibo: prefix sdo: -prefix ptg: -prefix bf: -prefix kbv: prefix : prefix marc: prefix div: -prefix f: prefix g: +prefix kbgf: prefix saogf: -prefix barngf: prefix kbrda: -base +# FIXME: Add these facts to their SAOGF exactMatch:es! -# FIXME: replace this file with genreforms.ttl ! +# It is a Genre if: +# - it is does not belong to one broader ContentForm (it is topical). +# It is a GenreForm if: +# - it represents a combination of ContentForm and a Genre (it adds a topical nuance). -# It is a Genre if *either*: -# - it is not enough to determine under which Class or Form it belongs (it is a base); -# - *or* it represents a combination of Class or Form and a Genre (it adds a nuance). +# TODO: equivalentClass with closeMatch/broadMatch (or virtual class...) -# TODO: replace subClassOf with broader and equivalentClass with closeMatch/broadMatch +g:Fiction a :Genre ; + skos:narrowMatch marc:Fiction ; # 84678 # (SSB) + skos:narrowMatch marc:FictionNotFurtherSpecified . # 573355 # (SSB) + +g:Radio a :GenreForm ; :label "Radio"@sv . +g:TV a :GenreForm ; :label "TV"@sv . g:AbstractSummary a :Genre ; - rdfs:subClassOf kbv:NonBookText ; + skos:broader kbgf:NonBookText ; skos:exactMatch saogf:Sammanfattningar ; - :inCollection f:informative-work ; + :inCollection div:informative-work ; rdfs:seeAlso ; - :prefLabel "Sammanfattning"@sv , + :singularLabel "Sammanfattning"@sv , "Abstract Summary"@en . -g:Almanac a :Genre ; - rdfs:subClassOf g:ReferenceWork ; # inte alltid kbv:IllustratedWork ; - skos:related kbv:SerialPublication ; # TODO: +g:Almanac a :GenreForm ; + skos:broader g:ReferenceWork ; # inte alltid kbgf:IllustratedWork ; + skos:related kbgf:SerialPublication ; # TODO: skos:exactMatch saogf:Almanackor ; - :prefLabel "Almanacka"@sv , + :singularLabel "Almanacka"@sv , "Almanac"@en . -g:Blog a :Genre ; - rdfs:subClassOf f:Website , - kbv:NonBookText ; - owl:equivalentClass sdo:Blog ; - skos:exactMatch saogf:Bloggar ; - :inCollection f:informative-work ; - :prefLabel "Blogg"@sv , - "Blog"@en . - -g:Calendar a :Genre ; - rdfs:subClassOf g:ReferenceWork ; # inte alltid kbv:IllustratedWork ; +g:Calendar a :GenreForm ; + skos:broader g:ReferenceWork ; # inte alltid kbgf:IllustratedWork ; skos:exactMatch saogf:Kalendrar ; - :prefLabel "Kalender"@sv , + :singularLabel "Kalender"@sv , "Calendar"@en . -g:Catalogue a :Genre ; - rdfs:subClassOf g:ReferenceWork ; +g:Catalogue a :GenreForm ; + skos:broader g:ReferenceWork ; skos:exactMatch saogf:Kataloger ; - :prefLabel "Katalog"@sv , + :singularLabel "Katalog"@sv , "Catalogue"@en . -f:CollectedWork a :Genre ; # :GenreForm - rdfs:subClassOf kbv:CollectingResource ; - skos:editorialNote "TODO: CollectedPart vs. CollectingWork! Cf. bibo:CollectedDocument, bibo:MultiVolumeBook, kbv:MultipartBook"@en ; +g:CollectedWork a :Genre ; # :GenreForm + skos:broader kbgf:CollectingResource ; + skos:editorialNote "TODO: CollectedPart vs. CollectingWork! Cf. bibo:CollectedDocument, bibo:MultiVolumeBook, kbgf:MultipartBook"@en ; skos:exactMatch saogf:Samlingsverk ; - skos:closeMatch bibo:CollectedDocument ; - :prefLabel "Samlingsverk"@sv , + :singularLabel "Samlingsverk"@sv , "Collected Work"@en . g:ConferenceMaterial a :Genre ; - rdfs:subClassOf kbv:NonBookText ; + #skos:broader kbgf:NonBookText ; skos:exactMatch saogf:Konferensmaterial ; :inCollection div:ephemera , - f:informative-work ; - :prefLabel "Konferensmaterial"@sv , + div:informative-work ; + :singularLabel "Konferensmaterial"@sv , "Conference Material"@en . -f:ControlledVocabulary a :Genre ; - rdfs:subClassOf g:ReferenceWork ; +g:ControlledVocabulary a :Genre ; + skos:broader g:ReferenceWork ; skos:exactMatch saogf:Kontrollerade\%20vokabul\%C3\%A4rer ; - :prefLabel "Kontrollerad vokabulär"@sv , + :singularLabel "Kontrollerad vokabulär"@sv , "Controlled Vocabulary"@en . g:CourseMaterial a :Genre ; - rdfs:subClassOf g:TeachingMaterial ; + skos:broader g:TeachingMaterial ; skos:exactMatch saogf:Kursmaterial ; :inCollection div:ephemera ; - :prefLabel "Kursmaterial"@sv , + :singularLabel "Kursmaterial"@sv , "Course Material"@en . g:Encyclopedia a :Genre ; - rdfs:subClassOf g:ReferenceWork, kbv:Book ; + skos:broader g:ReferenceWork, kbgf:Book ; skos:exactMatch saogf:Encyklopedier ; - :prefLabel "Encyklopedia"@sv , + :singularLabel "Encyklopedia"@sv , "Encyclopedia"@en . g:Lexicon a :Genre ; - rdfs:subClassOf g:ReferenceWork, kbv:Book ; + skos:broader g:ReferenceWork, kbgf:Book ; skos:exactMatch saogf:Lexikon ; - :prefLabel "Lexikon"@sv , + :singularLabel "Lexikon"@sv , "Lexicon"@en . g:TeachingMaterial a :Genre ; rdfs:seeAlso ; skos:exactMatch saogf:L\%C3\%A4romedel , saogf:Instruktions-\%20och\%20undervisningsmaterial ; - :prefLabel "Instruktions- och undervisningsmaterial"@sv , + :singularLabel "Instruktions- och undervisningsmaterial"@sv , "Teaching Material"@en ; :altLabel "Läromedel"@sv . -g:GraphicLiterature a :Genre ; - rdfs:subClassOf kbv:IllustratedWork , +g:GraphicLiterature a :GenreForm ; + skos:broader kbgf:IllustratedWork , g:Literature ; skos:broadMatch kbrda:Text , kbrda:Image ; skos:exactMatch saogf:Tecknade\%20serier ; - :prefLabel "Tecknad serie"@sv , + :singularLabel "Tecknad serie"@sv , "Graphic Literature"@en . g:HandSignedCommunication a :Genre ; - skos:broadMatch kbv:Visual, kbv:Text ; + skos:broadMatch kbgf:Visual, kbgf:Text ; skos:exactMatch saogf:TAKK ; - :prefLabel "TAKK"@sv , + :singularLabel "TAKK"@sv , "Hand-signed Communication"@en . g:GraphicNovel a :Genre ; - rdfs:subClassOf g:Novel , - kbv:BookWithImages , + skos:broader g:Novel , + kbgf:BookWithImages , g:GraphicLiterature ; skos:exactMatch saogf:Serieromaner ; - :prefLabel "Serieroman"@sv , + :singularLabel "Serieroman"@sv , "Graphic Novel"@en . -g:ComicStory a :Genre ; - rdfs:subClassOf f:Comic, kbv:NonBookText ; - owl:equivalentClass sdo:ComicStory ; - skos:narrowMatch saogf:Serienoveller ; - :prefLabel "Serienovell"@sv , - "Comic Story"@en . - g:Photoseries a :Genre ; - rdfs:subClassOf g:GraphicLiterature ; - skos:editorialNote "TODO: this is an issue? (foto-serietidning)? Not a Collection?"@en ; + skos:broader g:GraphicLiterature , + kbgf:CollectingResource ; skos:exactMatch saogf:Fotoserier ; - :prefLabel "Fotoserie"@sv , + :singularLabel "Fotoserie"@sv , "Photoseries"@en . +g:Note a :Genre ; + skos:broader kbgf:NonBookText ; + skos:exactMatch saogf:Anteckningar . + g:Novel a :Genre ; skos:broader g:Literature ; - skos:broadMatch kbv:Book ; + skos:broadMatch kbgf:Book ; skos:exactMatch saogf:Romaner ; - :prefLabel "Roman"@sv , + :singularLabel "Roman"@sv , "Novel"@en . -g:ShortStory a :Genre ; - rdfs:subClassOf kbv:NonBookText , - g:Literature ; - owl:equivalentClass sdo:ShortStory ; - skos:exactMatch saogf:Noveller ; - :prefLabel "Novell"@sv , - "Short Story"@en . - g:Literature a :Genre ; - rdfs:subClassOf kbv:Text ; - :prefLabel "Litteratur"@sv , + skos:broader kbgf:Text ; + :singularLabel "Litteratur"@sv , "Literature"@en . g:Journal a :Genre ; - rdfs:subClassOf kbv:Periodical ; - :prefLabel "Vetenskaplig tidskrift"@sv , + skos:broader kbgf:Periodical ; + :singularLabel "Vetenskaplig tidskrift"@sv , "Journal"@en . -g:JournalIssue a :Genre ; - rdfs:subClassOf kbv:Issue ; - skos:broadMatch g:Journal ; - :prefLabel "Vetenskapstidskriftssnummer"@sv , - "Journal Issue"@en . +#g:JournalIssue a :Genre ; +# skos:broader kbgf:Issue ; +# skos:broadMatch g:Journal ; +# :singularLabel "Vetenskapstidskriftssnummer"@sv , +# "Journal Issue"@en . g:Lecture a :Genre ; - rdfs:subClassOf g:TeachingMaterial ; + skos:broader g:TeachingMaterial ; skos:exactMatch saogf:F\%C3\%B6rel\%C3\%A4sningar ; - :prefLabel "Föreläsning"@sv , + :singularLabel "Föreläsning"@sv , "Lecture"@en . g:Magazine a :Genre ; - rdfs:subClassOf kbv:Periodical ; - :prefLabel "Magasin"@sv , + skos:broader kbgf:Periodical ; + :singularLabel "Magasin"@sv , "Magazine"@en . -g:MagazineIssue a :Genre ; - rdfs:subClassOf kbv:Issue ; - skos:broadMatch kbv:Magazine ; - :prefLabel "Magasin-nummer"@sv , - "Magazine Issue"@en . +#g:MagazineIssue a :Genre ; +# skos:broader kbgf:Issue ; +# skos:broadMatch g:Magazine ; +# :singularLabel "Magasin-nummer"@sv , +# "Magazine Issue"@en . g:MusicRadioProgram a :Genre ; - rdfs:subClassOf f:AudioProgram , - kbv:Music ; - :prefLabel "Musikradioprogram"@sv , + skos:broader g:AudioProgram , + kbgf:Music ; + :singularLabel "Musikradioprogram"@sv , "Music Radio Program"@en . g:MusicRecording a :Genre ; - rdfs:subClassOf kbv:Music ; + skos:broader kbgf:Music ; skos:exactMatch saogf:Musikinspelningar ; - :prefLabel "Musikinspelning"@sv , + :singularLabel "Musikinspelning"@sv , "Music Recording"@en . g:NewsLetter a :Genre ; - rdfs:subClassOf kbv:SerialPublication ; + skos:broader kbgf:SerialPublication ; skos:exactMatch saogf:Nyhetsbrev ; :inCollection div:ephemera ; - :prefLabel "Nyhetsbrev"@sv , + :singularLabel "Nyhetsbrev"@sv , "Newsletter"@en . g:Newspaper a :Genre ; - rdfs:subClassOf kbv:Periodical ; + skos:broader kbgf:Periodical ; skos:exactMatch saogf:Dagstidningar ; - :prefLabel "Dagstidning"@sv , + :singularLabel "Dagstidning"@sv , "Newspaper"@en ; :pluralLabel "Dagstidningar"@sv . -g:NewspaperIssue a :Genre ; - rdfs:subClassOf kbv:Issue ; - skos:broadMatch kbv:Newspaper ; - :prefLabel "Dagstidningsnummer"@sv , - "Newspaper Issue"@en . +#g:NewspaperIssue a :Genre ; +# skos:broader kbgf:Issue ; +# skos:broadMatch g:Newspaper ; +# :singularLabel "Dagstidningsnummer"@sv , +# "Newspaper Issue"@en . g:Pamphlet a :Genre ; - rdfs:subClassOf f:Broschure ; + skos:broader g:Brochure ; skos:exactMatch saogf:Pamfletter ; :inCollection div:ephemera ; - :prefLabel "Pamflett"@sv , + :singularLabel "Pamflett"@sv , "Pamphlet"@en . g:Podcast a :Genre ; - rdfs:subClassOf f:AudioProgram ; - :prefLabel "Podcast"@sv , + skos:broader g:AudioProgram ; + :singularLabel "Podcast"@sv , "Podcast"@en . g:PublicationProgramme a :Genre ; - rdfs:subClassOf kbv:NonBookText ; + skos:broader kbgf:NonBookText ; skos:exactMatch saogf:Program\%20\%28publikationer\%29 ; - :prefLabel "Programblad"@sv , + :singularLabel "Programblad"@sv , "Publication Programme"@en . g:RadioProgram a :Genre ; - rdfs:subClassOf f:AudioProgram ; + skos:broader g:AudioProgram ; skos:exactMatch saogf:Radioprogram ; - :prefLabel "Radioprogram"@sv , + :singularLabel "Radioprogram"@sv , "Radio Program"@en . g:RecordOrDeed a :Genre ; - rdfs:subClassOf kbv:NonBookText ; + skos:broader kbgf:NonBookText ; skos:exactMatch saogf:Handlingar\%20\%28dokument\%29 ; - :prefLabel "Handlingar (dokument)"@sv , - "Records (Documents)"@en . - -g:ReferenceWork a :Genre ; - rdfs:subClassOf kbv:Text ; - owl:equivalentClass bibo:ReferenceSource ; - skos:exactMatch saogf:Referensverk ; - :inCollection f:informative-work ; - rdfs:seeAlso ; - :prefLabel "Referensverk"@sv , - "Reference Work"@en . + :singularLabel "Handling (dokument)"@sv , + "Record (Document)"@en . g:Register a :Genre ; - rdfs:subClassOf kbv:CollectingResource ; + skos:broader kbgf:CollectingResource ; skos:exactMatch saogf:F\%C3\%B6rteckningar ; - :prefLabel "Förteckning"@sv , + :singularLabel "Förteckning"@sv , "Register"@en . g:PuzzleOrGame a :Genre ; @@ -280,213 +252,199 @@ g:PuzzleOrGame a :Genre ; "Puzzle or game"@en . g:RolePlayingGame a :Genre ; - rdfs:subClassOf g:PuzzleOrGame ; + skos:broader g:PuzzleOrGame ; skos:exactMatch saogf:Rollspel ; - :prefLabel "Rollspel"@sv , + :singularLabel "Rollspel"@sv , "Roleplaying Game"@en . -g:SoundEffectBook a :Genre ; - rdfs:subClassOf f:MechanicalBook, :Audio ; +g:SoundEffectBook a :GenreForm ; + skos:broader g:MechanicalBook, kbgf:Audio ; skos:exactMatch saogf:B\%C3\%B6cker\%20med\%20ljudeffekter ; - :prefLabel "Bok med ljudeffekt"@sv , + :singularLabel "Bok med ljudeffekt"@sv , "Sound-effect Book"@en . -g:PopupBook a :Genre ; - rdfs:subClassOf kbv:BookWithImages ; - skos:exactMatch ; - :prefLabel "Pop-up-bok"@sv , +g:PopupBook a :GenreForm ; + skos:broader kbgf:BookWithImages ; + skos:exactMatch saogf:Pop-up-b\%C3\%B6cker ; + :singularLabel "Pop-up-bok"@sv , "Pop-up Book"@en . -g:Review a :Genre ; - rdfs:subClassOf kbv:NonBookText ; - owl:equivalentClass sdo:Review ; - skos:exactMatch saogf:Recensioner ; - :prefLabel "Recension"@sv , - "Review"@en . - -g:Screenplay a :Genre ; - rdfs:subClassOf kbv:Text ; +g:Screenplay a :GenreForm ; + skos:broader kbgf:Text ; skos:exactMatch saogf:Filmmanus ; - :prefLabel "Filmmanus"@sv , + :singularLabel "Filmmanus"@sv , "Screenplay"@en . -g:Standard a :Genre ; - rdfs:subClassOf g:ReferenceWork ; - owl:equivalentClass bibo:Standard ; - skos:exactMatch saogf:Standarder ; - :prefLabel "Standard"@sv , - "Standard"@en . - g:Statistics a :Genre ; - rdfs:subClassOf g:ReferenceWork ; + skos:broader g:ReferenceWork ; skos:exactMatch saogf:Statistik ; - :prefLabel "Statistik"@sv , + :singularLabel "Statistik"@sv , "Statistics"@en . g:Tables a :Genre ; - rdfs:subClassOf g:ReferenceWork ; + skos:broader g:ReferenceWork ; skos:exactMatch saogf:Tabeller ; - skos:related kbv:Dataset ; - :prefLabel "Tabell"@sv , + skos:related kbgf:Dataset ; + :singularLabel "Tabell"@sv , "Tables"@en . +g:Ephemera a :Genre ; + skos:exactMatch saogf:Efem%C3%A4rt%20material ; + skos:prefLabel "Efemärt material"@sv . + g:Timetable a :Genre ; - rdfs:subClassOf f:Tables , - f:Ephemera ; + skos:broader g:Tables , + g:Ephemera ; skos:exactMatch saogf:Tidtabeller ; - :prefLabel "Tidtabell"@sv , + :singularLabel "Tidtabell"@sv , "Timetable"@en . g:ThreeDimensionalMovingImage a :Genre ; # :ContentType skos:exactMatch kbrda:ThreeDimensionalMovingImage; # sameAs - rdfs:subClassOf kbv:MovingImage ; + skos:broader kbgf:MovingImage ; :prefLabel "Tredimensionell rörlig bild"@sv , "Three-dimensional moving image"@en . g:TwoDimensionalMovingImage a :Genre ; # :ContentType skos:exactMatch kbrda:TwoDimensionalMovingImage; # sameAs - rdfs:subClassOf kbv:MovingImage ; + skos:broader kbgf:MovingImage ; :prefLabel "Tvådimensionell rörlig bild"@sv , "Two-dimensional moving image"@en . #g:Patent -# :prefLabel "Patent"@sv, "Patent"@en . +# :singularLabel "Patent"@sv, "Patent"@en . #g:LegalDocument -# :prefLabel "Juridiskt material"@sv, "Legal Document"@en . +# :singularLabel "Juridiskt material"@sv, "Legal Document"@en . #g:LegalDocument a :Genre ; -# rdfs:subClassOf kbv:Text ; +# skos:broader kbgf:Text ; # owl:equivalentClass bibo:LegalDocument ; # skos:exactMatch saogf:Juridiskt\%20material . #g:Leporello a :Genre ; -# rdfs:subClassOf f:NonBookTextWithImages ; +# skos:broader kbgf:NonBookTextWithImages ; # skos:exactMatch saogf:Leporello . #g:Patent a :Genre ; -# rdfs:subClassOf kbv:Text ; +# skos:broader kbgf:Text ; # owl:equivalentClass bibo:Patent ; # skos:exactMatch saogf:Patent ; -# :inCollection . +# :inCollection div:informative-work . #g:RareText skos:exactMatch saogf:Texter . #g:Debate a :Genre ; -# rdfs:subClassOf kbv:NonBookText ; +# skos:broader kbgf:NonBookText ; # skos:exactMatch saogf:Debatter . -#t:AdventCalendar a :Form ; +#t:AdventCalendar a :GenreForm ; # skos:exactMatch saogf:Adventskalendrar ; -# rdfs:subClassOf kbv:Calendar . +# skos:broader g:Calendar . -#g:ReligiousWork a :Form ; +#g:ReligiousWork a :GenreForm ; # skos:exactMatch saogf:Religi\%C3\%B6sa\%20verk . -#g:Biography a :Form ; +#g:Biography a :GenreForm ; # skos:exactMatch saogf:Biografier . -#g:Essay a :Form ; +#g:Essay a :GenreForm ; # skos:exactMatch saogf:Ess\%C3\%A4er . -# TODO: SerialPublication someValuesFrom kbv:Yearbook -#t:Yearbook a :Form ; +# TODO: SerialPublication someValuesFrom g:Yearbook +#g:Yearbook a :GenreForm ; # skos:exactMatch saogf:\%C3\%85rsb\%C3\%B6cker ; -# rdfs:subClassOf kbv:SerialPublication . +# skos:broader kbgf:SerialPublication . -#:PhraseBook a :Form ; +#:PhraseBook a :GenreForm ; # skos:exactMatch saogf:Parl\%C3\%B6rer . -#:Offentligt_tryck a :Form ; +#:Offentligt_tryck a :GenreForm ; # skos:exactMatch saogf:Offentligt\%20tryck . -#:CommemorativeWork a :Form ; +#:CommemorativeWork a :GenreForm ; # skos:exactMatch saogf:Minnesbevarande\%20verk . -#:Debattinlägg a :Form ; +#:Debattinlägg a :GenreForm ; # skos:exactMatch saogf:Debattinl\%C3\%A4gg . -#:Examination a :Form ; +#:Examination a :GenreForm ; # skos:exactMatch saogf:Prov\%20och\%20examinationer . -#:Lucköppningskalendrar a :Form ; +#:Lucköppningskalendrar a :GenreForm ; # skos:exactMatch saogf:Luck\%C3\%B6ppningskalendrar . -#:PressAnnouncement a :Form ; +#:PressAnnouncement a :GenreForm ; # skos:exactMatch saogf:Pressmeddelanden . -#:MiniatureBook a :Form ; +#:MiniatureBook a :GenreForm ; # skos:exactMatch saogf:Miniatyrb\%C3\%B6cker . -#:MechanicalBook a :Form ; -# skos:exactMatch saogf:Mekaniska\%20b\%C3\%B6cker . - -#:Pysselböcker a :Form ; +#:Pysselböcker a :GenreForm ; # skos:exactMatch saogf:Pysselb\%C3\%B6cker . -#:Målarböcker a :Form ; +#:Målarböcker a :GenreForm ; # skos:exactMatch saogf:Målarb\%C3\%B6cker . -#:GuideBook a :Form ; +#:GuideBook a :GenreForm ; # skos:exactMatch saogf:Guideb\%C3\%B6cker . -#:Samhällsinformation a :Form ; +#:Samhällsinformation a :GenreForm ; # skos:exactMatch saogf:Samh\%C3\%A4llsinformation . -#:Chronicle a :Form ; +#:Chronicle a :GenreForm ; # skos:exactMatch saogf:Annaler\%20och\%20kr\%C3\%B6nikor . -#:RecreationalWork a :Form ; +#:RecreationalWork a :GenreForm ; # skos:exactMatch saogf:Tidsf\%C3\%B6rdriv . -#:PopupBook a :Form ; +#:PopupBook a :GenreForm ; # skos:exactMatch saogf:Pop-up-b\%C3\%B6cker . -#:Cookbook a :Form ; +#:Cookbook a :GenreForm ; # skos:exactMatch saogf:Kokb\%C3\%B6cker . -#:Recept a :Form ; +#:Recept a :GenreForm ; # skos:exactMatch saogf:Recept . -#:DiningMenu a :Form ; +#:DiningMenu a :GenreForm ; # skos:exactMatch saogf:Matsedlar . #saogf:Dokument\%C3\%A4ra\%20serier a :GenreForm ; -# :prefLabel "Dokumentära serier" ; +# :singularLabel "Dokumentär serie" ; # skos:broader saogf:Tecknade\%20serier . -#t:RethoricalSpeech a :Form ; +#t:RethoricalSpeech a :GenreForm ; # skos:exactMatch saogf:Tal\%20\%28retorik\%29 . -#t:SourceMaterial a :Form ; +#t:SourceMaterial a :GenreForm ; # skos:exactMatch saogf:K\%C3\%A4llmaterial ; -# :inCollection . +# :inCollection div:informative-work . -#t:DiscursiveWork a :Form ; +#t:DiscursiveWork a :GenreForm ; # skos:closeMatch saogf:Verk\%20med\%20samtalsliknande\%20karakt\%C3\%A4r . -#t:Interview a :Form ; +#t:Interview a :GenreForm ; # owl:equivalentClass bibo:Interview ; # skos:exactMatch saogf:Intervjuer . -#t:Reportage a :Form ; +#t:Reportage a :GenreForm ; # owl:equivalentClass bibo:Report ; # skos:exactMatch saogf:Reportage . -#t:Survey a :Form ; +#t:Survey a :GenreForm ; # skos:exactMatch saogf:Unders\%C3\%B6kningar ; -# :inCollection . +# :inCollection div:informative-work . -#t:Correspondence a :Form ; +#t:Correspondence a :GenreForm ; # skos:exactMatch saogf:Korrespondens . #t:Diary a :GenreForm ; -# rdfs:subClassOf kbv:Text ; +# skos:broader kbgf:Text ; # skos:exactMatch saogf:Dagb\%C3\%B6cker . #t:Ballad a :GenreForm ; -# rdfs:subClassOf kbv:WorkHub ; # skos:closeMatch saogf:Visor . ## TODO: Move these instance MARC-types and -genreForms to work (and drop on marcframe revert?) @@ -531,23 +489,57 @@ g:TwoDimensionalMovingImage a :Genre ; # :ContentType # tgm:Plantryck # tgm:Tryck -# kbv:Globe kbv:instanceOf kbv:Cartography ; -# kbv:genreForm marc:GlobeMaterialType {| owl:oneOf -# marc:TerrestrialGlobe , -# marc:PlanetaryOrLunarGlobe , -# marc:CelestialGlobe , -# marc:EarthMoonGlobe |} . - -# kbv:Map kbv:instanceOf kbv:Cartography ; -# kbv:genreForm marc:MapMaterialType {| owl:oneOf -# marc:Model , -# marc:Section , -# marc:Profile , -# marc:MapATwoDimensionalMap , -# marc:MapMaterialType-d , # marc:Atlas # MapAsVolume -# marc:Diagram , # MapAsSheet? -# marc:View , -# marc:RemoteSensingImage # tgm:Satellitbild -# |} . - -# kbv:RemoteSensingImage kbv:instanceOf kbv:Cartography . +# TODO: Define in saogf? And move these to marcmatches.ttl (to be remapped). +g:TerrestrialGlobe skos:broader kbgf:Globe ; skos:closeMatch marc:TerrestrialGlobe . +g:PlanetaryOrLunarGlobe skos:broader kbgf:Globe ; skos:closeMatch marc:PlanetaryOrLunarGlobe . +g:CelestialGlobe skos:broader kbgf:Globe ; skos:closeMatch marc:CelestialGlobe . +g:EarthMoonGlobe skos:broader kbgf:Globe ; skos:closeMatch marc:EarthMoonGlobe . + +g:Model skos:broader kbgf:Map ; skos:closeMatch marc:Model . +g:Section skos:broader kbgf:Map ; skos:closeMatch marc:Section . +g:Profile skos:broader kbgf:Map ; skos:closeMatch marc:Profile . +g:MapATwoDimensionalMap skos:broader kbgf:Map ; skos:closeMatch marc:MapATwoDimensionalMap . +g:Diagram skos:broader kbgf:Map ; skos:closeMatch marc:Diagram . + +g:RemoteSensingImage skos:broader kbgf:Cartography . + +g:Blog a :Genre ; + skos:broader g:Website , + kbgf:NonBookText ; + skos:exactMatch saogf:Bloggar ; + :inCollection div:informative-work ; + :singularLabel "Blogg"@sv , + "Blog"@en . + +g:ShortStory a :Genre ; + skos:broader kbgf:NonBookText , + g:Literature ; + skos:exactMatch saogf:Noveller ; + :singularLabel "Novell"@sv , + "Short Story"@en . + +g:ComicStory a :Genre ; + skos:broader g:Comic, g:ShortStory ; + skos:narrowMatch saogf:Serienoveller ; + :singularLabel "Serienovell"@sv , + "Comic Story"@en . + +g:ReferenceWork a :Genre ; + skos:broader kbgf:Text ; + skos:exactMatch saogf:Referensverk ; + :inCollection div:informative-work ; + rdfs:seeAlso ; + :singularLabel "Referensverk"@sv , + "Reference Work"@en . + +g:Review a :Genre ; + skos:broader kbgf:NonBookText ; + skos:exactMatch saogf:Recensioner ; + :singularLabel "Recension"@sv , + "Review"@en . + +g:Standard a :Genre ; + skos:broader g:ReferenceWork ; + skos:exactMatch saogf:Standarder ; + :singularLabel "Standard"@sv , + "Standard"@en . diff --git a/source/genreforms/genreforms.ttl b/source/genreforms/genreforms.ttl index c9b0fd81..4cd71580 100644 --- a/source/genreforms/genreforms.ttl +++ b/source/genreforms/genreforms.ttl @@ -1,57 +1,203 @@ -prefix : +prefix rdfs: prefix skos: + +prefix : +prefix g: +prefix kbgf: + prefix saogf: prefix barngf: -prefix tgm: -prefix marc: -prefix marcgt: +prefix kbrda: -prefix kbgf: +g:Booklet a :GenreForm ; # g:MediumText + :category :pending ; + skos:broader kbgf:NonBookText ; + rdfs:label "Texthäfte"@sv , "Booklet"@en . + +g:Textleaf a :GenreForm ; # g:SmallText + :category :pending ; + skos:broader kbgf:NonBookText ; + rdfs:label "Textblad"@sv , "Text leaf"@en . + +g:AudioProgram a :GenreForm ; + skos:broader kbgf:NonMusicAudio ; + rdfs:label "Ljudprogram"@sv , + "Audio Program"@en . + +g:BoardGame a :GenreForm ; + skos:broader g:InteractiveObject , g:PuzzleOrGame ; + skos:exactMatch ; + rdfs:label "Brädspel"@sv , + "Boardgame"@en . + +g:Brochure a :GenreForm ; + skos:broader kbgf:NonBookText ; + skos:exactMatch ; + rdfs:label "Broschyr"@sv , + "Brochure"@en . + +g:Comic a :GenreForm ; + skos:broader g:GraphicLiterature ; + skos:altLabel "Tecknad serie"@sv ; + skos:broadMatch saogf:Tecknade%20serier , + barngf:Tecknade%20serier ; + skos:exactMatch saogf:Serietidningar ; + rdfs:label "Serietidning"@sv , + "Comic"@en . + +g:ComputerCode a :GenreForm ; + skos:broader kbgf:Software ; + rdfs:label "Datorkod"@sv , + "Computer Code"@en . + +g:ComputerProgram a :GenreForm ; + skos:broadMatch kbrda:ComputerProgram ; + skos:broader kbgf:Software ; + rdfs:label "Datorprogram"@sv , + "Computer Program"@en . + +g:ComputerGame a :GenreForm ; + skos:broader g:PuzzleOrGame, g:ComputerProgram ; + skos:exactMatch saogf:Datorspel ; + rdfs:label "Datorspel"@sv , + "Computer Game"@en . + +g:Diagram a :GenreForm ; + skos:broader kbgf:StillImage ; + skos:exactMatch saogf:Diagram ; + rdfs:label "Diagram"@sv , + "Diagram"@en . + +g:FormDocument a :GenreForm ; + rdfs:seeAlso ; + skos:broader kbgf:NonBookText ; + skos:exactMatch saogf:Blanketter ; + rdfs:label "Blankett"@sv , + "Form Document"@en . + +g:Handwriting a :GenreForm ; + skos:broader kbgf:Manuscript , + kbgf:Text ; + skos:exactMatch saogf:Handskrifter ; + rdfs:label "Handskrift"@sv , + "Handwriting"@en ; + :pluralLabel "Handskrifter"@sv . + +g:Illustration a :GenreForm ; + skos:broader kbgf:StillImage ; + skos:exactMatch saogf:Illustrationer ; + rdfs:label "Illustration"@sv , + "Illustration"@en . + +g:InteractiveObject a :GenreForm ; + skos:broader kbgf:Object ; + rdfs:label "Interaktivt objekt"@sv , + "InteractiveObject"@en . + +g:Manual a :GenreForm ; + skos:broader kbgf:Text , + g:TeachingMaterial ; + skos:closeMatch saogf:Handb\%C3\%B6cker\%2C\%20manualer\%20etc ; + rdfs:seeAlso ; + rdfs:label "Manual"@sv , + "Manual"@en . + +g:MechanicalBook a :GenreForm ; + skos:exactMatch saogf:Mekaniska\%20b\%C3\%B6cker ; + skos:broader g:InteractiveObject , + kbgf:WrittenBook ; + rdfs:label "Mekanisk bok"@sv , + "Mechanical Book"@en . + +g:Painting a :GenreForm ; + skos:broader kbgf:StillImage ; + skos:exactMatch ; + rdfs:label "Målning"@sv , + "Painting"@en . -# Base Forms (Categories?! Nature of content, etc.) +g:Photobook a :GenreForm ; + skos:broader kbgf:BookWithImages , + kbgf:Book ; + skos:exactMatch saogf:Fotob\%C3\%B6cker ; + rdfs:label "Fotobok"@sv , + "Photobook"@en . -#kbgf:LinguisticWork a :GenreForm ; -# :altLabel "Literature"@en , -# "Litteratur"@sv ; -# :prefLabel "Linguistic work"@en , -# "Språkligt verk"@sv . +g:PictureDictionary a :GenreForm ; + skos:broader g:Lexicon , + kbgf:BookWithImages ; + skos:exactMatch saogf:Bildlexikon ; + rdfs:label "Bildlexikon"@sv , + "Picture Dictionary"@en . -kbgf:Book a :GenreForm ; # BookForm - skos:narrowMatch saogf:Romaner , - saogf:Ljudb%C3%B6cker , - barngf:Bilderb%F6cker , - barngf:Kapitelb%F6cker . +g:Postcard a :GenreForm ; + skos:broader kbgf:StillImage ; + skos:exactMatch saogf:Vykort ; + rdfs:label "Vykort"@sv , + "Postcard"@en . -kbgf:Map a :GenreForm ; #MapForm - skos:exactMatch marc:MapATwoDimensionalMap, tgm:Kartor . +g:PostcardBook a :GenreForm ; + skos:broader g:Postcard , kbgf:Book ; + skos:exactMatch . -kbgf:Atlas a :GenreForm ; #AtlasForm - skos:exactMatch marc:Atlas, tgm:Atlaser . +g:Puzzle a :GenreForm ; + skos:broader g:InteractiveObject, g:PuzzleOrGame ; + skos:exactMatch saogf:Pussel ; + rdfs:label "Pussel"@sv , + "Puzzle"@en . -kbgf:Globe a :GenreForm ; #GlobeForm - skos:exactMatch tgm:Glober . +g:Sculpture a :GenreForm ; + skos:broader kbgf:Object ; + rdfs:label "Skulptur"@sv , + "Sculpture"@en . -kbgf:Comic a :GenreForm ; - :prefLabel "Tecknad serie"@sv, "Comic"@en ; - skos:narrowMatch saogf:Tecknade%20serier , - barngf:Tecknade%20serier . +g:SpokenBook a :GenreForm ; + skos:broader kbgf:Audiobook , + g:SpokenWord ; + skos:exactMatch saogf:Talb\%C3\%B6cker ; + rdfs:label "Talbok"@sv , + "Spoken Book"@en . -kbgf:ShortStory a :GenreForm ; - skos:narrowMatch saogf:Noveller, - saogf:Serienoveller . +g:SpokenWord a :GenreForm ; + skos:broadMatch kbrda:SpokenWord ; + skos:broader kbgf:Text , + kbgf:Audio ; + rdfs:label "Tal"@sv , + "Spoken Word"@en . -kbgf:Issue a :GenreForm . # TODO: matches... +g:SpokenPaper a :GenreForm ; + skos:broader kbgf:Periodical , + g:SpokenWord ; + skos:exactMatch saogf:Taltidningar ; + rdfs:label "Taltidning"@sv , + "Spoken Paper"@en . -kbgf:Photograph skos:exactMatch saogf:Fotografier, tgm:Fotografier . +g:TVProgram a :GenreForm ; + skos:broader kbgf:MovingImage ; + skos:exactMatch saogf:Tv-program ; + rdfs:label "Tv-program"@sv , + "TV-Program"@en . -# TODO: trying to map *relevant* MARC GT... +g:TVSeries a :GenreForm ; + skos:broader g:TVProgram , + kbgf:MonographicSeries ; + skos:exactMatch saogf:Tv-serier ; + rdfs:label "Tv-serie"@sv , + "TV-Series"@en . -kbgf:Fiction a :GenreForm ; - skos:narrowMatch marc:Fiction ; # 84678 # (SSB) - skos:narrowMatch marc:FictionNotFurtherSpecified . # 573355 # (SSB) +g:Toy a :GenreForm ; + skos:broader g:InteractiveObject ; + rdfs:label "Leksak"@sv , + "Toy"@en . -# TODO: base GenreForm? -#:Radio a :GenreForm ; :label "Radio"@sv . -#:TV a :GenreForm ; :label "TV"@sv . +g:Trailer a :GenreForm ; + skos:broader kbgf:Film ; + skos:exactMatch saogf:Trailrar ; + rdfs:label "Trailer"@sv , + "Trailer"@en . -# <./marcmatches.ttl> +g:Website a :GenreForm ; + skos:broader kbgf:OnlineResource , + kbgf:Integrating ; + skos:exactMatch saogf:Webbplatser ; + rdfs:label "Webbplats"@sv , + "Website"@en . diff --git a/source/vocab/newtypes/carrierclasses.ttl b/source/vocab/newtypes/carrierclasses.ttl index 276f22fa..190b30cc 100644 --- a/source/vocab/newtypes/carrierclasses.ttl +++ b/source/vocab/newtypes/carrierclasses.ttl @@ -175,7 +175,7 @@ prefix kbrda: # owl:someValuesFrom :TactileMaterial ] . :BrailleResource a owl:Class ; - skos:exactMatch marc:Braille ; + skos:exactMatch marc:Braille, marc:TextMaterialType-c ; rdfs:subClassOf :Tactile, :Print . :BrailleVolume a owl:Class ; @@ -337,7 +337,7 @@ prefix kbrda: owl:sameAs :VideoRecording ; ptg:abstract true ; # TODO: deprecated baseclass :MovingImageInstance ? - skos:exactMatch kbrda:Video ; + skos:exactMatch kbrda:Video, marc:Videorecording ; rdfs:subClassOf :StorageMedium ; rdfs:label "Lagringsmedium för video"@sv, "Video Storage Medium"@en . diff --git a/source/vocab/newtypes/contentclasses.ttl b/source/vocab/newtypes/contentclasses.ttl index bb103f28..828a54f6 100644 --- a/source/vocab/newtypes/contentclasses.ttl +++ b/source/vocab/newtypes/contentclasses.ttl @@ -1,9 +1,11 @@ prefix rdfs: prefix owl: prefix skos: +prefix ptg: + prefix bibo: prefix sdo: -prefix ptg: +prefix bf: prefix : prefix saogf: @@ -98,9 +100,17 @@ prefix kbgf: owl:intersectionOf ( :Audio :BookForm - ) ; - rdfs:label "Ljudbok"@sv , - "Audiobook"@en . + ) . + +:CollectedDocument a owl:Class ; + :category :pending, :complex ; + owl:equivalentClass bibo:CollectedDocument ; + owl:intersectionOf ( + :Audio + :BookForm + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Samlingsverk ] + ) . :TactileBook a owl:Class ; :category :pending, :complex ; @@ -115,23 +125,17 @@ prefix kbgf: "Taktil bok"@sv . -:NonBookText a owl:Class ; - :category :pending, :complex ; - ptg:abstract true ; - rdfs:subClassOf :Text ; - rdfs:label "Non-book text"@en , - "Enskild text"@sv . - :Article a owl:Class ; :category :pending, :complex ; - rdfs:subClassOf :NonBookText ; owl:equivalentClass bibo:Article ; - rdfs:label "Artikel"@sv , - "Article"@en . + owl:intersectionOf ( + :Monograph + [ owl:onProperty :genreForm ; + owl:hasValue kbgf:Article ] + ) . :Issue a owl:Class ; :category :pending, :complex ; - rdfs:subClassOf :NonBookText ; # ambiguous; just :Text ? owl:equivalentClass bibo:Issue ; owl:intersectionOf ( :Text @@ -142,6 +146,43 @@ prefix kbgf: "Periodical Issue"@en . +:ComicIssue a owl:Class ; + :category :pending, :complex ; + rdfs:subClassOf :Issue ; + owl:equivalentClass sdo:ComicIssue ; + owl:intersectionOf ( + :Monograph + [ owl:onProperty :genreForm ; + owl:hasValue kbgf:Issue ] + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Tecknade%20serier ] + ) ; + rdfs:label "Serietidningsnummer"@sv , + "Comic Issue"@en . + +:ComicSerial a :GenreForm ; + :category :pending, :complex ; + rdfs:comment "TODO: series of issues vs. arc of stories?" ; + owl:equivalentClass sdo:ComicSeries ; + owl:intersectionOf ( + :Serial + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Tecknade%20serier ] + ) ; + rdfs:label "Serietidningsserie"@sv , + "Comic Series"@en . + +:Note a :GenreForm ; + :category :pending, :complex ; + owl:equivalentClass bibo:Note ; + owl:intersectionOf ( + :Monograph + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Anteckningar ] + ) ; + rdfs:label "Anteckning"@sv , + "Note"@en . + :Poster a owl:Class ; :category :pending, :complex ; # TODO: is a TextPoster a kind of ImagePoster? @@ -153,6 +194,12 @@ prefix kbgf: [ owl:onProperty :genreForm ; owl:hasValue saogf:Affischer ] ) ; + # TODO: rewrite to shorthand classes: + #owl:intersectionOf ( + # :Monograph + # [ owl:onProperty :category ; + # owl:hasValue kbgf:Affisch] + # ) ; rdfs:label "Affisch"@sv, "Poster"@en ; :pluralLabel "Affischer"@sv . @@ -197,7 +244,6 @@ prefix kbgf: :Brochure a owl:Class ; :category :pending, :complex ; - rdfs:subClassOf :NonBookText ; # ambiguous; just :Text ? owl:intersectionOf ( :Text [ owl:onProperty :genreForm ; @@ -210,12 +256,10 @@ prefix kbgf: :category :pending, :complex ; rdfs:subClassOf :IllustratedWork ; owl:intersectionOf ( - :Text + :Monograph [ owl:onProperty :genreForm ; - owl:hasValue kbgf:Comic ] - ) ; - rdfs:label "Serietidning"@sv , - "Comic"@en . + owl:hasValue saogf:Serietidningar ] + ) . :ComicIssue a owl:Class ; :category :pending, :complex ; @@ -372,3 +416,67 @@ prefix kbgf: # owl:equivalentClass sdo:CreativeWorkSeries; # rdfs:subClassOf :Serial; # rdfs:label "Creative Work Series"@en, "Utgivningsserie"@sv . + +:MonographicSeries a owl:Class ; + :category :pending, :form ; + owl:equivalentClass bibo:Series , + bf:Series ; + owl:intersectionOf ( + :Serial + [ owl:onProperty :genreForm ; + owl:hasValue kbgf:MonographicSeries ] + ) . + +:Blog a owl:Class ; + :category :pending, :complex ; + owl:equivalentClass sdo:Blog ; + owl:intersectionOf ( + :Integrating + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Bloggar ] + ) . + +:ComicStory a owl:Class ; + :category :pending, :complex ; + owl:equivalentClass sdo:ComicStory ; + owl:intersectionOf ( + :Monograph + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Serienoveller ] + ) . + +:ShortStory a owl:Class ; + :category :pending, :complex ; + owl:equivalentClass sdo:ShortStory ; + owl:intersectionOf ( + :Monograph + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Noveller ] + ) . + +:ReferenceWork a owl:Class ; + :category :pending, :complex ; + owl:equivalentClass bibo:ReferenceSource ; + owl:intersectionOf ( + :Monograph + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Referensverk ] + ) . + +:Review a owl:Class ; + :category :pending, :complex ; + owl:equivalentClass sdo:Review ; + owl:intersectionOf ( + :Monograph + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Recensioner ] + ) . + +:Standard a owl:Class ; + :category :pending, :complex ; + owl:equivalentClass bibo:Standard ; + owl:intersectionOf ( + :Monograph + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Standarder ] + ) . From c16a49329cb3faf7230d0cc712bb80f6b3e4e88d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Wed, 2 Apr 2025 18:42:56 +0200 Subject: [PATCH 48/69] Update genre, form and content categories --- source/genreforms/contentforms.ttl | 74 ++---- source/genreforms/contentgenres.ttl | 280 ++++++++--------------- source/genreforms/genreforms.ttl | 193 +++++++++++++++- source/vocab/newtypes/contentclasses.ttl | 36 +++ 4 files changed, 328 insertions(+), 255 deletions(-) diff --git a/source/genreforms/contentforms.ttl b/source/genreforms/contentforms.ttl index 5361b106..673c1e15 100644 --- a/source/genreforms/contentforms.ttl +++ b/source/genreforms/contentforms.ttl @@ -13,15 +13,13 @@ prefix tgm: prefix kbrda: prefix marc: prefix marcgt: -prefix term: prefix kbgf: # Base Forms (Categories?! Nature of content, etc.) -kbgf:Text a :ContentForm ; - :inCollection term:form . +kbgf:Text a :ContentForm . #kbgf:LinguisticWork a :ContentForm ; -# :inCollection term:abstract ; +# ptg:abstract true ; # :altLabel "Literature"@en , # "Litteratur"@sv ; # :prefLabel "Linguistic work"@en , @@ -36,24 +34,25 @@ kbgf:Dataset a :ContentForm . kbgf:Integrating a :ContentForm ; skos:broader kbgf:CollectingResource . -kbgf:Manuscript a :GenreForm . +kbgf:MovingImage a :ContentForm ; + skos:broader kbgf:Visual . -kbgf:MovingImage a :ContentForm . - -kbgf:Multimedia a :GenreForm . +kbgf:Multimedia a :ContentForm . # TODO: Too vague? :GenreForm (but still mapped to BF)? kbgf:Music a :ContentForm . kbgf:Object a :ContentForm . kbgf:StillImage a :ContentForm ; + skos:broader kbgf:Visual ; skos:closeMatch saogf:Bilder . kbgf:Tactile a :ContentForm . -kbgf:CollectingResource a :GenreForm . +kbgf:CollectingResource a :ContentForm . -kbgf:IllustratedWork a :ContentForm . +kbgf:IllustratedWork a :ContentForm ; + skos:broader kbgf:Visual . kbgf:NonBookText a :ContentForm ; # kbgf:Document ?? ptg:abstract true ; @@ -63,41 +62,26 @@ kbgf:NonBookText a :ContentForm ; # kbgf:Document ?? kbgf:OnlineResource a :ContentForm . -kbgf:SerialPublication a :GenreForm ; - skos:broader kbgf:CollectingResource . - kbgf:Book a :ContentForm ; - :inCollection term:form ; skos:narrowMatch saogf:Romaner , saogf:Ljudb%C3%B6cker , barngf:Bilderb%C3%B6cker , barngf:Kapitelb%C3%B6cker . kbgf:Cartography a :ContentForm ; - skos:closeMatch saogf:Kartor ; - :inCollection term:form . + skos:closeMatch saogf:Kartor . # TODO: Kartografiskt material? -kbgf:Map a :GenreForm ; +kbgf:Map a :ContentForm ; skos:broader kbgf:Cartography ; skos:exactMatch marc:MapATwoDimensionalMap, tgm:Kartor . -kbgf:Atlas a :GenreForm ; - skos:broader kbgf:Cartography, kbgf:Book ; - skos:exactMatch marc:Atlas, tgm:Atlaser . - -kbgf:Globe a :GenreForm ; +kbgf:Globe a :ContentForm ; skos:broader kbgf:CartographicObject ; skos:exactMatch tgm:Glober . -kbgf:MonographicSeries a :GenreForm ; - skos:broader kbgf:CollectingResource ; - skos:exactMatch marc:MonographicSeries ; - :singularLabel "Monograph Series"@en , - "Monografiserie"@sv . - kbgf:WrittenBook a :ContentForm ; skos:broader kbgf:Text, kbgf:Book ; - skos:narrowMatch barngf:Kapitelb\%C3\%B6cker ; + skos:narrowMatch barngf:Kapitelb%C3%B6cker ; :singularLabel "Written book"@en , "Skriven bok"@sv ; :altLabel "Bok"@sv, "Book"@en . @@ -120,7 +104,7 @@ kbgf:CartographicObject a :ContentForm; kbgf:Audiobook a :ContentForm ; skos:broader kbgf:Audio , kbgf:Book ; - skos:exactMatch saogf:Ljudb\%C3\%B6cker ; + skos:exactMatch saogf:Ljudb%C3%B6cker ; :singularLabel "Ljudbok"@sv , "Audiobook"@en . @@ -131,19 +115,12 @@ kbgf:Database a :ContentForm ; :singularLabel "Databas"@sv , "Database"@en . -kbgf:Photograph a :ContentForm ; - skos:broader kbgf:StillImage ; - skos:exactMatch saogf:Fotografier ; - :singularLabel "Fotografi"@sv , - "Photograph"@en ; - :pluralLabel "Fotografier"@sv . - #kbgf:TactileBook a :ContentForm ; # skos:broader kbgf:Book , # kbgf:Tactile ; # skos:editorialNote "TODO: differentiate between \"filtbok\" och \"punktskriftsbok\"?"@en ; # skos:broadMatch kbrda:TactileText ; -# skos:narrowMatch saogf:Punktskriftsb\%C3\%B6cker ; +# skos:narrowMatch saogf:Punktskriftsb%C3%B6cker ; # :singularLabel "Tactile Book"@en , # "Taktil bok"@sv . @@ -168,27 +145,6 @@ kbgf:Software a :ContentForm ; # TODO: pending; integrate with ComputerGame, App :prefLabel "Mjukvara"@sv , "Software"@en . -kbgf:Issue a :GenreForm ; - skos:broader kbgf:NonBookText ; - :singularLabel "Tidskriftsnummer"@sv , - "Periodical Issue"@en . - -kbgf:Photograph a :GenreForm ; - skos:exactMatch saogf:Fotografier, tgm:Fotografier . - -kbgf:Periodical a :GenreForm . - -kbgf:Film a :GenreForm ; - skos:broader kbgf:MovingImage ; - skos:exactMatch saogf:Filmer ; - :singularLabel "Film"@sv , - "Film"@en . - -kbgf:Article a :GenreForm ; - skos:broader kbgf:NonBookText ; - :singularLabel "Artikel"@sv , - "Article"@en . - ## Just RDA content types (handled by rdamatches IF used by some concrete/complex type) #f:CartographicDataset a :ContentAspect; # skos:exactMatch kbrda:CartographicDataset; diff --git a/source/genreforms/contentgenres.ttl b/source/genreforms/contentgenres.ttl index f4099cda..98f00334 100644 --- a/source/genreforms/contentgenres.ttl +++ b/source/genreforms/contentgenres.ttl @@ -13,21 +13,20 @@ prefix kbgf: prefix saogf: prefix kbrda: -# FIXME: Add these facts to their SAOGF exactMatch:es! +# TODO: Plan is to add these facts to their SAOGF exactMatches and remove (all of?) g:. +# TODO: This is not fulfilled! How do we *suggest* a :ContentForm? (Using skos:relatedMatch?) # It is a Genre if: -# - it is does not belong to one broader ContentForm (it is topical). -# It is a GenreForm if: -# - it represents a combination of ContentForm and a Genre (it adds a topical nuance). - -# TODO: equivalentClass with closeMatch/broadMatch (or virtual class...) +# - it is independent of any broader ContentForm (it is "topical" and/or "thematic"). g:Fiction a :Genre ; skos:narrowMatch marc:Fiction ; # 84678 # (SSB) skos:narrowMatch marc:FictionNotFurtherSpecified . # 573355 # (SSB) -g:Radio a :GenreForm ; :label "Radio"@sv . -g:TV a :GenreForm ; :label "TV"@sv . +g:Literature a :Genre ; + skos:broader kbgf:Text ; + :singularLabel "Litteratur"@sv , + "Literature"@en . g:AbstractSummary a :Genre ; skos:broader kbgf:NonBookText ; @@ -37,28 +36,28 @@ g:AbstractSummary a :Genre ; :singularLabel "Sammanfattning"@sv , "Abstract Summary"@en . -g:Almanac a :GenreForm ; +g:Almanac a :Genre ; skos:broader g:ReferenceWork ; # inte alltid kbgf:IllustratedWork ; - skos:related kbgf:SerialPublication ; # TODO: + skos:related g:SerialPublication ; # TODO: skos:exactMatch saogf:Almanackor ; :singularLabel "Almanacka"@sv , "Almanac"@en . -g:Calendar a :GenreForm ; +g:Calendar a :Genre ; skos:broader g:ReferenceWork ; # inte alltid kbgf:IllustratedWork ; skos:exactMatch saogf:Kalendrar ; :singularLabel "Kalender"@sv , "Calendar"@en . -g:Catalogue a :GenreForm ; +g:Catalogue a :Genre ; skos:broader g:ReferenceWork ; skos:exactMatch saogf:Kataloger ; :singularLabel "Katalog"@sv , "Catalogue"@en . -g:CollectedWork a :Genre ; # :GenreForm +g:CollectedWork a :Genre ; skos:broader kbgf:CollectingResource ; - skos:editorialNote "TODO: CollectedPart vs. CollectingWork! Cf. bibo:CollectedDocument, bibo:MultiVolumeBook, kbgf:MultipartBook"@en ; + # TODO: CollectedPart vs. CollectingWork! Cf. bibo:CollectedDocument, bibo:MultiVolumeBook, kbgf:MultipartBook skos:exactMatch saogf:Samlingsverk ; :singularLabel "Samlingsverk"@sv , "Collected Work"@en . @@ -104,15 +103,6 @@ g:TeachingMaterial a :Genre ; "Teaching Material"@en ; :altLabel "Läromedel"@sv . -g:GraphicLiterature a :GenreForm ; - skos:broader kbgf:IllustratedWork , - g:Literature ; - skos:broadMatch kbrda:Text , - kbrda:Image ; - skos:exactMatch saogf:Tecknade\%20serier ; - :singularLabel "Tecknad serie"@sv , - "Graphic Literature"@en . - g:HandSignedCommunication a :Genre ; skos:broadMatch kbgf:Visual, kbgf:Text ; skos:exactMatch saogf:TAKK ; @@ -145,22 +135,23 @@ g:Novel a :Genre ; :singularLabel "Roman"@sv , "Novel"@en . -g:Literature a :Genre ; - skos:broader kbgf:Text ; - :singularLabel "Litteratur"@sv , - "Literature"@en . +g:Periodical a :Genre ; + skos:broader kbgf:CollectingResource . + +g:SerialPublication a :Genre ; + skos:broader kbgf:CollectingResource . + +g:MonographicSeries a :GenreForm ; + skos:broader kbgf:CollectingResource ; + skos:exactMatch marc:MonographicSeries ; + :singularLabel "Monograph Series"@en , + "Monografiserie"@sv . g:Journal a :Genre ; - skos:broader kbgf:Periodical ; + skos:broader g:Periodical ; :singularLabel "Vetenskaplig tidskrift"@sv , "Journal"@en . -#g:JournalIssue a :Genre ; -# skos:broader kbgf:Issue ; -# skos:broadMatch g:Journal ; -# :singularLabel "Vetenskapstidskriftssnummer"@sv , -# "Journal Issue"@en . - g:Lecture a :Genre ; skos:broader g:TeachingMaterial ; skos:exactMatch saogf:F\%C3\%B6rel\%C3\%A4sningar ; @@ -168,16 +159,10 @@ g:Lecture a :Genre ; "Lecture"@en . g:Magazine a :Genre ; - skos:broader kbgf:Periodical ; + skos:broader g:Periodical ; :singularLabel "Magasin"@sv , "Magazine"@en . -#g:MagazineIssue a :Genre ; -# skos:broader kbgf:Issue ; -# skos:broadMatch g:Magazine ; -# :singularLabel "Magasin-nummer"@sv , -# "Magazine Issue"@en . - g:MusicRadioProgram a :Genre ; skos:broader g:AudioProgram , kbgf:Music ; @@ -191,25 +176,19 @@ g:MusicRecording a :Genre ; "Music Recording"@en . g:NewsLetter a :Genre ; - skos:broader kbgf:SerialPublication ; + skos:broader g:SerialPublication ; skos:exactMatch saogf:Nyhetsbrev ; :inCollection div:ephemera ; :singularLabel "Nyhetsbrev"@sv , "Newsletter"@en . g:Newspaper a :Genre ; - skos:broader kbgf:Periodical ; + skos:broader g:Periodical ; skos:exactMatch saogf:Dagstidningar ; :singularLabel "Dagstidning"@sv , "Newspaper"@en ; :pluralLabel "Dagstidningar"@sv . -#g:NewspaperIssue a :Genre ; -# skos:broader kbgf:Issue ; -# skos:broadMatch g:Newspaper ; -# :singularLabel "Dagstidningsnummer"@sv , -# "Newspaper Issue"@en . - g:Pamphlet a :Genre ; skos:broader g:Brochure ; skos:exactMatch saogf:Pamfletter ; @@ -257,24 +236,6 @@ g:RolePlayingGame a :Genre ; :singularLabel "Rollspel"@sv , "Roleplaying Game"@en . -g:SoundEffectBook a :GenreForm ; - skos:broader g:MechanicalBook, kbgf:Audio ; - skos:exactMatch saogf:B\%C3\%B6cker\%20med\%20ljudeffekter ; - :singularLabel "Bok med ljudeffekt"@sv , - "Sound-effect Book"@en . - -g:PopupBook a :GenreForm ; - skos:broader kbgf:BookWithImages ; - skos:exactMatch saogf:Pop-up-b\%C3\%B6cker ; - :singularLabel "Pop-up-bok"@sv , - "Pop-up Book"@en . - -g:Screenplay a :GenreForm ; - skos:broader kbgf:Text ; - skos:exactMatch saogf:Filmmanus ; - :singularLabel "Filmmanus"@sv , - "Screenplay"@en . - g:Statistics a :Genre ; skos:broader g:ReferenceWork ; skos:exactMatch saogf:Statistik ; @@ -320,7 +281,6 @@ g:TwoDimensionalMovingImage a :Genre ; # :ContentType #g:LegalDocument a :Genre ; # skos:broader kbgf:Text ; -# owl:equivalentClass bibo:LegalDocument ; # skos:exactMatch saogf:Juridiskt\%20material . #g:Leporello a :Genre ; @@ -329,7 +289,6 @@ g:TwoDimensionalMovingImage a :Genre ; # :ContentType #g:Patent a :Genre ; # skos:broader kbgf:Text ; -# owl:equivalentClass bibo:Patent ; # skos:exactMatch saogf:Patent ; # :inCollection div:informative-work . @@ -339,114 +298,114 @@ g:TwoDimensionalMovingImage a :Genre ; # :ContentType # skos:broader kbgf:NonBookText ; # skos:exactMatch saogf:Debatter . -#t:AdventCalendar a :GenreForm ; +#g:AdventCalendar a :Genre ; # skos:exactMatch saogf:Adventskalendrar ; # skos:broader g:Calendar . -#g:ReligiousWork a :GenreForm ; +#g:ReligiousWork a :Genre ; # skos:exactMatch saogf:Religi\%C3\%B6sa\%20verk . -#g:Biography a :GenreForm ; +#g:Biography a :Genre ; # skos:exactMatch saogf:Biografier . -#g:Essay a :GenreForm ; +#g:Essay a :Genre ; # skos:exactMatch saogf:Ess\%C3\%A4er . -# TODO: SerialPublication someValuesFrom g:Yearbook -#g:Yearbook a :GenreForm ; -# skos:exactMatch saogf:\%C3\%85rsb\%C3\%B6cker ; -# skos:broader kbgf:SerialPublication . - -#:PhraseBook a :GenreForm ; -# skos:exactMatch saogf:Parl\%C3\%B6rer . - -#:Offentligt_tryck a :GenreForm ; -# skos:exactMatch saogf:Offentligt\%20tryck . - -#:CommemorativeWork a :GenreForm ; +#:CommemorativeWork a :Genre; # skos:exactMatch saogf:Minnesbevarande\%20verk . -#:Debattinlägg a :GenreForm ; +#:Debattinlägg a :Genre; # skos:exactMatch saogf:Debattinl\%C3\%A4gg . -#:Examination a :GenreForm ; +#:Examination a :Genre; # skos:exactMatch saogf:Prov\%20och\%20examinationer . -#:Lucköppningskalendrar a :GenreForm ; -# skos:exactMatch saogf:Luck\%C3\%B6ppningskalendrar . - -#:PressAnnouncement a :GenreForm ; +#:PressAnnouncement a :Genre; # skos:exactMatch saogf:Pressmeddelanden . -#:MiniatureBook a :GenreForm ; -# skos:exactMatch saogf:Miniatyrb\%C3\%B6cker . - -#:Pysselböcker a :GenreForm ; -# skos:exactMatch saogf:Pysselb\%C3\%B6cker . - -#:Målarböcker a :GenreForm ; -# skos:exactMatch saogf:Målarb\%C3\%B6cker . - -#:GuideBook a :GenreForm ; -# skos:exactMatch saogf:Guideb\%C3\%B6cker . - -#:Samhällsinformation a :GenreForm ; +#:Samhällsinformation a :Genre; # skos:exactMatch saogf:Samh\%C3\%A4llsinformation . -#:Chronicle a :GenreForm ; +#:Chronicle a :Genre; # skos:exactMatch saogf:Annaler\%20och\%20kr\%C3\%B6nikor . -#:RecreationalWork a :GenreForm ; -# skos:exactMatch saogf:Tidsf\%C3\%B6rdriv . - -#:PopupBook a :GenreForm ; -# skos:exactMatch saogf:Pop-up-b\%C3\%B6cker . - -#:Cookbook a :GenreForm ; -# skos:exactMatch saogf:Kokb\%C3\%B6cker . - -#:Recept a :GenreForm ; +#:Recept a :Genre; # skos:exactMatch saogf:Recept . -#:DiningMenu a :GenreForm ; -# skos:exactMatch saogf:Matsedlar . - -#saogf:Dokument\%C3\%A4ra\%20serier a :GenreForm ; -# :singularLabel "Dokumentär serie" ; -# skos:broader saogf:Tecknade\%20serier . - -#t:RethoricalSpeech a :GenreForm ; +#g:RethoricalSpeech a :Genre ; # skos:exactMatch saogf:Tal\%20\%28retorik\%29 . -#t:SourceMaterial a :GenreForm ; +#g:SourceMaterial a :Genre ; # skos:exactMatch saogf:K\%C3\%A4llmaterial ; # :inCollection div:informative-work . -#t:DiscursiveWork a :GenreForm ; +#:RecreationalWork a :Genre ; +# skos:exactMatch saogf:Tidsf\%C3\%B6rdriv . + +#g:DiscursiveWork a :Genre ; # skos:closeMatch saogf:Verk\%20med\%20samtalsliknande\%20karakt\%C3\%A4r . -#t:Interview a :GenreForm ; -# owl:equivalentClass bibo:Interview ; +#g:Interview a :Genre ; # skos:exactMatch saogf:Intervjuer . -#t:Reportage a :GenreForm ; -# owl:equivalentClass bibo:Report ; +#g:Reportage a :Genre ; # skos:exactMatch saogf:Reportage . -#t:Survey a :GenreForm ; +#g:Survey a :Genre ; # skos:exactMatch saogf:Unders\%C3\%B6kningar ; # :inCollection div:informative-work . -#t:Correspondence a :GenreForm ; +#g:Correspondence a :Genre ; # skos:exactMatch saogf:Korrespondens . -#t:Diary a :GenreForm ; +#g:Diary a :Genre ; # skos:broader kbgf:Text ; # skos:exactMatch saogf:Dagb\%C3\%B6cker . -#t:Ballad a :GenreForm ; +#g:Ballad a :Genre ; # skos:closeMatch saogf:Visor . +g:Blog a :Genre ; + skos:broader g:Website , + kbgf:NonBookText ; + skos:exactMatch saogf:Bloggar ; + :inCollection div:informative-work ; + :singularLabel "Blogg"@sv , + "Blog"@en . + +g:ShortStory a :Genre ; + skos:broader kbgf:NonBookText , + g:Literature ; + skos:exactMatch saogf:Noveller ; + :singularLabel "Novell"@sv , + "Short Story"@en . + +g:ComicStory a :Genre ; + skos:broader g:Comic, g:ShortStory ; + skos:narrowMatch saogf:Serienoveller ; + :singularLabel "Serienovell"@sv , + "Comic Story"@en . + +g:ReferenceWork a :Genre ; + skos:broader kbgf:Text ; + skos:exactMatch saogf:Referensverk ; + :inCollection div:informative-work ; + rdfs:seeAlso ; + :singularLabel "Referensverk"@sv , + "Reference Work"@en . + +g:Review a :Genre ; + skos:broader kbgf:NonBookText ; + skos:exactMatch saogf:Recensioner ; + :singularLabel "Recension"@sv , + "Review"@en . + +g:Standard a :Genre ; + skos:broader g:ReferenceWork ; + skos:exactMatch saogf:Standarder ; + :singularLabel "Standard"@sv , + "Standard"@en . + ## TODO: Move these instance MARC-types and -genreForms to work (and drop on marcframe revert?) # Instans-genrer (från användning ) @@ -488,58 +447,3 @@ g:TwoDimensionalMovingImage a :Genre ; # :ContentType # tgm:Ljustryck # tgm:Plantryck # tgm:Tryck - -# TODO: Define in saogf? And move these to marcmatches.ttl (to be remapped). -g:TerrestrialGlobe skos:broader kbgf:Globe ; skos:closeMatch marc:TerrestrialGlobe . -g:PlanetaryOrLunarGlobe skos:broader kbgf:Globe ; skos:closeMatch marc:PlanetaryOrLunarGlobe . -g:CelestialGlobe skos:broader kbgf:Globe ; skos:closeMatch marc:CelestialGlobe . -g:EarthMoonGlobe skos:broader kbgf:Globe ; skos:closeMatch marc:EarthMoonGlobe . - -g:Model skos:broader kbgf:Map ; skos:closeMatch marc:Model . -g:Section skos:broader kbgf:Map ; skos:closeMatch marc:Section . -g:Profile skos:broader kbgf:Map ; skos:closeMatch marc:Profile . -g:MapATwoDimensionalMap skos:broader kbgf:Map ; skos:closeMatch marc:MapATwoDimensionalMap . -g:Diagram skos:broader kbgf:Map ; skos:closeMatch marc:Diagram . - -g:RemoteSensingImage skos:broader kbgf:Cartography . - -g:Blog a :Genre ; - skos:broader g:Website , - kbgf:NonBookText ; - skos:exactMatch saogf:Bloggar ; - :inCollection div:informative-work ; - :singularLabel "Blogg"@sv , - "Blog"@en . - -g:ShortStory a :Genre ; - skos:broader kbgf:NonBookText , - g:Literature ; - skos:exactMatch saogf:Noveller ; - :singularLabel "Novell"@sv , - "Short Story"@en . - -g:ComicStory a :Genre ; - skos:broader g:Comic, g:ShortStory ; - skos:narrowMatch saogf:Serienoveller ; - :singularLabel "Serienovell"@sv , - "Comic Story"@en . - -g:ReferenceWork a :Genre ; - skos:broader kbgf:Text ; - skos:exactMatch saogf:Referensverk ; - :inCollection div:informative-work ; - rdfs:seeAlso ; - :singularLabel "Referensverk"@sv , - "Reference Work"@en . - -g:Review a :Genre ; - skos:broader kbgf:NonBookText ; - skos:exactMatch saogf:Recensioner ; - :singularLabel "Recension"@sv , - "Review"@en . - -g:Standard a :Genre ; - skos:broader g:ReferenceWork ; - skos:exactMatch saogf:Standarder ; - :singularLabel "Standard"@sv , - "Standard"@en . diff --git a/source/genreforms/genreforms.ttl b/source/genreforms/genreforms.ttl index 4cd71580..816d6616 100644 --- a/source/genreforms/genreforms.ttl +++ b/source/genreforms/genreforms.ttl @@ -2,20 +2,60 @@ prefix rdfs: prefix skos: prefix : -prefix g: +prefix marc: +prefix term: prefix kbgf: +prefix g: prefix saogf: +prefix tgm: prefix barngf: prefix kbrda: -g:Booklet a :GenreForm ; # g:MediumText - :category :pending ; +# It is a GenreForm if: +# - it's a combination of ContentForm and a Genre (it adds a topical/thematic nuance). + +g:Manuscript a :GenreForm . + +g:Issue a :GenreForm ; + skos:broader kbgf:NonBookText ; + :singularLabel "Tidskriftsnummer"@sv , + "Periodical Issue"@en . + +#g:JournalIssue a :Genre ; +# skos:broader g:Issue ; +# skos:broadMatch g:Journal ; +# :singularLabel "Vetenskapstidskriftssnummer"@sv , +# "Journal Issue"@en . + +#g:MagazineIssue a :Genre ; +# skos:broader g:Issue ; +# skos:broadMatch g:Magazine ; +# :singularLabel "Magasin-nummer"@sv , +# "Magazine Issue"@en . + +#g:NewspaperIssue a :Genre ; +# skos:broader g:Issue ; +# skos:broadMatch g:Newspaper ; +# :singularLabel "Dagstidningsnummer"@sv , +# "Newspaper Issue"@en . + +g:Film a :GenreForm ; + skos:broader kbgf:MovingImage ; + skos:exactMatch saogf:Filmer ; + :singularLabel "Film"@sv , + "Film"@en . + +g:Article a :GenreForm ; + skos:broader kbgf:NonBookText ; + :singularLabel "Artikel"@sv , + "Article"@en . + +g:Booklet a :GenreForm ; # g:MediumText# TODO: CarrierGenreForm? skos:broader kbgf:NonBookText ; rdfs:label "Texthäfte"@sv , "Booklet"@en . -g:Textleaf a :GenreForm ; # g:SmallText - :category :pending ; +g:Textleaf a :GenreForm ; # g:SmallText # TODO: CarrierGenreForm? skos:broader kbgf:NonBookText ; rdfs:label "Textblad"@sv , "Text leaf"@en . @@ -24,6 +64,14 @@ g:AudioProgram a :GenreForm ; rdfs:label "Ljudprogram"@sv , "Audio Program"@en . +g:Radio a :GenreForm ; + skos:broader kbgf:Audio ; + skos:prefLabel "Radio"@sv, "Radio"@en . + +g:TV a :GenreForm ; + skos:broader kbgf:MovingImage ; + skos:prefLabel "TV"@sv, "TV"@en . + g:BoardGame a :GenreForm ; skos:broader g:InteractiveObject , g:PuzzleOrGame ; skos:exactMatch ; @@ -76,7 +124,7 @@ g:FormDocument a :GenreForm ; "Form Document"@en . g:Handwriting a :GenreForm ; - skos:broader kbgf:Manuscript , + skos:broader g:Manuscript , kbgf:Text ; skos:exactMatch saogf:Handskrifter ; rdfs:label "Handskrift"@sv , @@ -89,6 +137,15 @@ g:Illustration a :GenreForm ; rdfs:label "Illustration"@sv , "Illustration"@en . +g:GraphicLiterature a :GenreForm ; + skos:broader kbgf:IllustratedWork , + g:Literature ; + skos:broadMatch kbrda:Text , + kbrda:Image ; + skos:exactMatch saogf:Tecknade%20serier ; + :singularLabel "Tecknad serie"@sv , + "Graphic Literature"@en . + g:InteractiveObject a :GenreForm ; skos:broader kbgf:Object ; rdfs:label "Interaktivt objekt"@sv , @@ -102,6 +159,12 @@ g:Manual a :GenreForm ; rdfs:label "Manual"@sv , "Manual"@en . +g:Screenplay a :GenreForm ; + skos:broader kbgf:Text ; + skos:exactMatch saogf:Filmmanus ; + :singularLabel "Filmmanus"@sv , + "Screenplay"@en . + g:MechanicalBook a :GenreForm ; skos:exactMatch saogf:Mekaniska\%20b\%C3\%B6cker ; skos:broader g:InteractiveObject , @@ -109,6 +172,25 @@ g:MechanicalBook a :GenreForm ; rdfs:label "Mekanisk bok"@sv , "Mechanical Book"@en . +g:SoundEffectBook a :GenreForm ; + skos:broader g:MechanicalBook, kbgf:Audio ; + skos:exactMatch saogf:B\%C3\%B6cker\%20med\%20ljudeffekter ; + :singularLabel "Bok med ljudeffekt"@sv , + "Sound-effect Book"@en . + +g:PopupBook a :GenreForm ; + skos:broader kbgf:BookWithImages ; + skos:exactMatch saogf:Pop-up-b\%C3\%B6cker ; + :singularLabel "Pop-up-bok"@sv , + "Pop-up Book"@en . + +g:Photograph a :GenreForm ; + skos:broader kbgf:StillImage ; + skos:exactMatch saogf:Fotografier, tgm:Fotografier ; + :singularLabel "Fotografi"@sv , + "Photograph"@en ; + :pluralLabel "Fotografier"@sv . + g:Painting a :GenreForm ; skos:broader kbgf:StillImage ; skos:exactMatch ; @@ -165,7 +247,7 @@ g:SpokenWord a :GenreForm ; "Spoken Word"@en . g:SpokenPaper a :GenreForm ; - skos:broader kbgf:Periodical , + skos:broader g:Periodical , g:SpokenWord ; skos:exactMatch saogf:Taltidningar ; rdfs:label "Taltidning"@sv , @@ -190,7 +272,7 @@ g:Toy a :GenreForm ; "Toy"@en . g:Trailer a :GenreForm ; - skos:broader kbgf:Film ; + skos:broader g:Film ; skos:exactMatch saogf:Trailrar ; rdfs:label "Trailer"@sv , "Trailer"@en . @@ -201,3 +283,98 @@ g:Website a :GenreForm ; skos:exactMatch saogf:Webbplatser ; rdfs:label "Webbplats"@sv , "Website"@en . + +g:Yearbook a :GenreForm ; + skos:exactMatch saogf:%C3%85rsb%C3%B6cker ; + skos:broader kbgf:SerialPublication , + kbgf:Book . + +g:PhraseBook a :GenreForm ; + skos:broader kbgf:Book ; + skos:exactMatch saogf:Parl%C3%B6rer . + +g:Offentligt_tryck a :GenreForm ; + skos:broader kbgf:Text ; + skos:exactMatch saogf:Offentligt%20tryck . + +g:Lucköppningskalendrar a :GenreForm ; + skos:broader kbgf:Object ; + skos:exactMatch saogf:Luck%C3%B6ppningskalendrar . + +g:MiniatureBook a :GenreForm ; + skos:broader kbgf:Book ; + skos:exactMatch saogf:Miniatyrb%C3%B6cker . + +g:PuzzleBook a :GenreForm ; + skos:broader kbgf:Book, g:PuzzleOrGame ; + skos:exactMatch saogf:Pysselb%C3%B6cker . + +g:Målarböcker a :GenreForm ; + skos:broader kbgf:BookWithImages ; + skos:exactMatch saogf:Målarb%C3%B6cker . + +g:GuideBook a :GenreForm ; + skos:broader kbgf:WrittenBook ; + skos:exactMatch saogf:Guideb%C3%B6cker . + +g:PopupBook a :GenreForm ; + skos:broader g:MechanicalBook ; + skos:exactMatch saogf:Pop-up-b%C3%B6cker . + +g:Cookbook a :GenreForm ; + skos:broader kbgf:WrittenBook ; + skos:exactMatch saogf:Kokb%C3%B6cker . + +g:DiningMenu a :GenreForm ; + skos:broader kbgf:NonBookText ; + skos:exactMatch saogf:Matsedlar . + +g:DocumentaryComic a :GenreForm ; + :singularLabel "Dokumentär serie" ; + skos:exactMatch saogf:Dokument%C3%A4ra%20serier ; + skos:broader saogf:Tecknade%20serier . + +g:Atlas a :GenreForm ; + skos:broader kbgf:Cartography, kbgf:Book ; + skos:exactMatch marc:Atlas, tgm:Atlaser . + +# TODO: Define in saogf? And move these to marcmatches.ttl (to be remapped). +g:TerrestrialGlobe a :GenreForm ; + skos:broader kbgf:Globe ; + skos:closeMatch marc:TerrestrialGlobe . + +g:PlanetaryOrLunarGlobe a :GenreForm ; + skos:broader kbgf:Globe ; + skos:closeMatch marc:PlanetaryOrLunarGlobe . + +g:CelestialGlobe a :GenreForm ; + skos:broader kbgf:Globe ; + skos:closeMatch marc:CelestialGlobe . + +g:EarthMoonGlobe a :GenreForm ; + skos:broader kbgf:Globe ; + skos:closeMatch marc:EarthMoonGlobe . + +g:Model a :GenreForm ; + skos:broader kbgf:Map ; + skos:closeMatch marc:Model . + +g:Section a :GenreForm ; + skos:broader kbgf:Map ; + skos:closeMatch marc:Section . + +g:ProfileMap a :GenreForm ; + skos:broader kbgf:Map ; + skos:closeMatch marc:Profile . + +g:MapATwoDimensionalMap a :GenreForm ; + skos:broader kbgf:Map ; + skos:closeMatch marc:MapATwoDimensionalMap . + +g:MapDiagram a :GenreForm ; + skos:broader kbgf:Map ; + skos:closeMatch marc:Diagram . + +g:RemoteSensingImage a :GenreForm ; + skos:broader kbgf:Map ; + skos:closeMatch marc:RemoteSensingImage . diff --git a/source/vocab/newtypes/contentclasses.ttl b/source/vocab/newtypes/contentclasses.ttl index 828a54f6..63a445f1 100644 --- a/source/vocab/newtypes/contentclasses.ttl +++ b/source/vocab/newtypes/contentclasses.ttl @@ -112,6 +112,42 @@ prefix kbgf: owl:hasValue saogf:Samlingsverk ] ) . +:LegalDocument a owl:Class ; + :category :pending, :complex ; + owl:equivalentClass bibo:LegalDocument ; + owl:intersectionOf ( + :Monograph + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Juridiskt\%20material ] + ) . + +:Patent a owl:Class ; + :category :pending, :complex ; + owl:equivalentClass bibo:Patent ; + owl:intersectionOf ( + :Monograph + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Patent ] + ) . + +:Interview a owl:Class ; + :category :pending, :complex ; + owl:equivalentClass bibo:Interview ; + owl:intersectionOf ( + :Monograph + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Intervjuer ] + ) . + +:Report a owl:Class ; + :category :pending, :complex ; + owl:equivalentClass bibo:Report ; + owl:intersectionOf ( + :Monograph + [ owl:onProperty :genreForm ; + owl:hasValue saogf:Reportage ] + ) . + :TactileBook a owl:Class ; :category :pending, :complex ; owl:intersectionOf ( From 57f21c380d4d4c0d279064ad81179595d7d26d27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Wed, 2 Apr 2025 19:18:50 +0200 Subject: [PATCH 49/69] Update category mappings --- source/genreforms/contentforms.ttl | 2 +- source/genreforms/contentgenres.ttl | 16 ++++++++-------- source/genreforms/genreforms.ttl | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/source/genreforms/contentforms.ttl b/source/genreforms/contentforms.ttl index 673c1e15..02d58cdb 100644 --- a/source/genreforms/contentforms.ttl +++ b/source/genreforms/contentforms.ttl @@ -72,7 +72,7 @@ kbgf:Cartography a :ContentForm ; skos:closeMatch saogf:Kartor . # TODO: Kartografiskt material? kbgf:Map a :ContentForm ; - skos:broader kbgf:Cartography ; + skos:broader kbgf:Cartography, kbgf:StillImage ; skos:exactMatch marc:MapATwoDimensionalMap, tgm:Kartor . kbgf:Globe a :ContentForm ; diff --git a/source/genreforms/contentgenres.ttl b/source/genreforms/contentgenres.ttl index 98f00334..0c903aea 100644 --- a/source/genreforms/contentgenres.ttl +++ b/source/genreforms/contentgenres.ttl @@ -311,25 +311,25 @@ g:TwoDimensionalMovingImage a :Genre ; # :ContentType #g:Essay a :Genre ; # skos:exactMatch saogf:Ess\%C3\%A4er . -#:CommemorativeWork a :Genre; +#g:CommemorativeWork a :Genre; # skos:exactMatch saogf:Minnesbevarande\%20verk . -#:Debattinlägg a :Genre; +#g:Debattinlägg a :Genre; # skos:exactMatch saogf:Debattinl\%C3\%A4gg . -#:Examination a :Genre; +#g:Examination a :Genre; # skos:exactMatch saogf:Prov\%20och\%20examinationer . -#:PressAnnouncement a :Genre; +#g:PressAnnouncement a :Genre; # skos:exactMatch saogf:Pressmeddelanden . -#:Samhällsinformation a :Genre; +#g:Samhällsinformation a :Genre; # skos:exactMatch saogf:Samh\%C3\%A4llsinformation . -#:Chronicle a :Genre; +#g:Chronicle a :Genre; # skos:exactMatch saogf:Annaler\%20och\%20kr\%C3\%B6nikor . -#:Recept a :Genre; +#g:Recept a :Genre; # skos:exactMatch saogf:Recept . #g:RethoricalSpeech a :Genre ; @@ -339,7 +339,7 @@ g:TwoDimensionalMovingImage a :Genre ; # :ContentType # skos:exactMatch saogf:K\%C3\%A4llmaterial ; # :inCollection div:informative-work . -#:RecreationalWork a :Genre ; +#g:RecreationalWork a :Genre ; # skos:exactMatch saogf:Tidsf\%C3\%B6rdriv . #g:DiscursiveWork a :Genre ; diff --git a/source/genreforms/genreforms.ttl b/source/genreforms/genreforms.ttl index 816d6616..f17fc4b6 100644 --- a/source/genreforms/genreforms.ttl +++ b/source/genreforms/genreforms.ttl @@ -356,7 +356,7 @@ g:EarthMoonGlobe a :GenreForm ; skos:closeMatch marc:EarthMoonGlobe . g:Model a :GenreForm ; - skos:broader kbgf:Map ; + skos:broader kbgf:CartographicObject ; skos:closeMatch marc:Model . g:Section a :GenreForm ; From cc17a187f68cf08abf00d0ed65c5fa120ee33d4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Tue, 15 Apr 2025 18:28:39 +0200 Subject: [PATCH 50/69] Update genre/form definitions and mappings --- source/genreforms/contentforms.ttl | 187 +++++---------- source/genreforms/contentgenres.ttl | 182 ++++----------- source/genreforms/genreforms.ttl | 337 +++++++++++++++++++--------- source/genreforms/rdacategories.ttl | 67 ++++++ 4 files changed, 396 insertions(+), 377 deletions(-) create mode 100644 source/genreforms/rdacategories.ttl diff --git a/source/genreforms/contentforms.ttl b/source/genreforms/contentforms.ttl index 02d58cdb..021740f1 100644 --- a/source/genreforms/contentforms.ttl +++ b/source/genreforms/contentforms.ttl @@ -13,46 +13,61 @@ prefix tgm: prefix kbrda: prefix marc: prefix marcgt: + prefix kbgf: +prefix g: # Base Forms (Categories?! Nature of content, etc.) +# Applies to an *Expression* + +# TODO: ONLY Text, Image, Audio; *every* concrete is G/F? PerformedMusic, Cartographic{X}, ... + +# TODO: +# - Will ContentForm be replaced by ? +# - Or do we want to "GenreForm:ize" some of the RDA terms? +# - Do we miss some, and/or want to leave open additions (called ContentForm)? +# -Is there a sometimes necessary distinction between "contains" ContentType and "is" ContentForm? + +kbgf:SpokenWord a :ContentForm ; + skos:broadMatch kbrda:SpokenWord ; + skos:broader kbgf:Text , + kbgf:Audio ; + rdfs:label "Tal"@sv , + "Spoken Word"@en . + +kbgf:MovingImage a :ContentForm ; + skos:broader kbgf:Visual . kbgf:Text a :ContentForm . -#kbgf:LinguisticWork a :ContentForm ; -# ptg:abstract true ; -# :altLabel "Literature"@en , -# "Litteratur"@sv ; -# :prefLabel "Linguistic work"@en , -# "Språkligt verk"@sv . +# skos:broadMatch kbrda:Text . # see match in rdacategories.ttl -kbgf:Visual a :ContentForm . +kbgf:Visual a :ContentForm . # TODO: AbstractForm? -kbgf:Audio a :ContentForm . +kbgf:Audio a :ContentForm ; + skos:broadMatch kbrda:Audio . kbgf:Dataset a :ContentForm . -kbgf:Integrating a :ContentForm ; - skos:broader kbgf:CollectingResource . - -kbgf:MovingImage a :ContentForm ; - skos:broader kbgf:Visual . +kbgf:Integrating a :ContentForm ; # TODO: AbstractForm? + skos:broader g:CollectingResource . kbgf:Multimedia a :ContentForm . # TODO: Too vague? :GenreForm (but still mapped to BF)? -kbgf:Music a :ContentForm . - kbgf:Object a :ContentForm . +kbgf:WorkWithImages a :ContentForm ; # kbgf:IllustratedWork + skos:broader kbgf:StillImage ; + skos:closeMatch saogf:Bildverk . + kbgf:StillImage a :ContentForm ; skos:broader kbgf:Visual ; skos:closeMatch saogf:Bilder . -kbgf:Tactile a :ContentForm . +kbgf:Tactile a :ContentForm ; + skos:prefLabel "Taktil"@sv . -kbgf:CollectingResource a :ContentForm . - -kbgf:IllustratedWork a :ContentForm ; - skos:broader kbgf:Visual . +kbgf:Movement a :ContentForm ; + skos:prefLabel "Rörelser"@sv . kbgf:NonBookText a :ContentForm ; # kbgf:Document ?? ptg:abstract true ; @@ -60,25 +75,13 @@ kbgf:NonBookText a :ContentForm ; # kbgf:Document ?? skos:prefLabel "Non-book text"@en , "Enskild text"@sv . -kbgf:OnlineResource a :ContentForm . - -kbgf:Book a :ContentForm ; +kbgf:Book a :ContentForm ; # TODO: AbstractForm ? + #skos:broader g:LinguisticWork ; skos:narrowMatch saogf:Romaner , saogf:Ljudb%C3%B6cker , barngf:Bilderb%C3%B6cker , barngf:Kapitelb%C3%B6cker . -kbgf:Cartography a :ContentForm ; - skos:closeMatch saogf:Kartor . # TODO: Kartografiskt material? - -kbgf:Map a :ContentForm ; - skos:broader kbgf:Cartography, kbgf:StillImage ; - skos:exactMatch marc:MapATwoDimensionalMap, tgm:Kartor . - -kbgf:Globe a :ContentForm ; - skos:broader kbgf:CartographicObject ; - skos:exactMatch tgm:Glober . - kbgf:WrittenBook a :ContentForm ; skos:broader kbgf:Text, kbgf:Book ; skos:narrowMatch barngf:Kapitelb%C3%B6cker ; @@ -86,30 +89,34 @@ kbgf:WrittenBook a :ContentForm ; "Skriven bok"@sv ; :altLabel "Bok"@sv, "Book"@en . +kbgf:Audiobook a :ContentForm ; + skos:broader kbgf:Audio , + kbgf:Book ; + skos:exactMatch saogf:Ljudb%C3%B6cker ; + :singularLabel "Ljudbok"@sv , + "Audiobook"@en . + +kbgf:NonBookTextWithImages a :ContentForm ; + skos:broader kbgf:NonBookText , kbgf:WorkWithImages ; + rdfs:label "Text med bilder"@sv , + "Text With Images"@en . + kbgf:BookWithImages a :ContentForm ; - skos:broader kbgf:WrittenBook , kbgf:IllustratedWork ; + skos:broader kbgf:WrittenBook , kbgf:WorkWithImages ; skos:editorialNote "TODO: PictorialWork?"@en ; skos:scopeNote "Gör ingen skillnad mellan bilder som är integral del av verket (där nya bilder är ett nytt verk) och texter där bilderna är kompletterande (). Sådana skillnader kan anges som genre/form."@sv ; - skos:broadMatch saogf:Bildverk ; skos:narrowMatch barngf:Bilderb%C3%B6cker ; - :singularLabel "Bok med bilder"@sv , + :singularLabel "Bilderbok"@sv , "Book With Images"@en . -kbgf:CartographicObject a :ContentForm; +kbgf:CartographicObject a :ContentForm; # GenreForm? skos:broadMatch kbrda:CartographicThreeDimensionalForm ; - skos:broader kbgf:Cartography, kbgf:Object ; + skos:broader kbgf:Object , g:Cartography ; rdfs:label "Kartografiskt objekt"@sv , "Cartographic Object"@en . -kbgf:Audiobook a :ContentForm ; - skos:broader kbgf:Audio , - kbgf:Book ; - skos:exactMatch saogf:Ljudb%C3%B6cker ; - :singularLabel "Ljudbok"@sv , - "Audiobook"@en . - -kbgf:Database a :ContentForm ; - skos:broader kbgf:Integrating ; +kbgf:Database a :ContentForm ; # TODO: AbstractForm ? + skos:broader kbgf:Integrating, kbgf:ComputerDataset ; skos:exactMatch saogf:Databaser ; skos:narrowMatch marc:UpdatingDatabase ; :singularLabel "Databas"@sv , @@ -124,15 +131,10 @@ kbgf:Database a :ContentForm ; # :singularLabel "Tactile Book"@en , # "Taktil bok"@sv . -kbgf:ComputerDataset a :ContentForm ; +kbgf:ComputerDataset a :ContentForm ; # GenreForm? skos:broadMatch kbrda:ComputerDataset ; skos:broader kbgf:Dataset . -kbgf:NonBookTextWithImages a :ContentForm ; - skos:broader kbgf:NonBookText , kbgf:IllustratedWork ; - rdfs:label "Enskild text med bilder"@sv , - "Non-book With Images"@en . - kbgf:NonMusicAudio a :ContentForm ; ptg:abstract true ; skos:broader kbgf:Audio ; @@ -141,82 +143,7 @@ kbgf:NonMusicAudio a :ContentForm ; kbgf:Software a :ContentForm ; # TODO: pending; integrate with ComputerGame, Application, ... ptg:abstract true ; + # kbrda:ComputerProgram skos:related kbgf:Multimedia ; :prefLabel "Mjukvara"@sv , "Software"@en . - -## Just RDA content types (handled by rdamatches IF used by some concrete/complex type) -#f:CartographicDataset a :ContentAspect; -# skos:exactMatch kbrda:CartographicDataset; -# skos:broader kbgf:Cartography, kbgf:Dataset ; -# rdfs:label "Kartografiskt dataset"@sv , "Cartographic dataset"@en . -# -#f:CartographicImage a :ContentAspect; -# skos:exactMatch kbrda:CartographicImage; -# #skos:closeMatch kbgf:Map ; -# skos:broader kbgf:Cartography, kbgf:StillImage ; -# rdfs:label "Kartografisk bild"@sv , "Cartographic image"@en ; -# skos:altLabel "Karta"@sv, "Kartor in plano"@sv ; -# :pluralLabel "Kartor"@sv . -# -#f:CartographicMovingImage a :ContentAspect; -# skos:exactMatch kbrda:CartographicMovingImage; -# skos:broader kbgf:Cartography, kbgf:MovingImage ; -# rdfs:label "Kartografisk rörlig bild"@sv , "Cartographic moving image"@en . -# -#f:TactileCartography a :ContentAspect ; -# skos:broader kbgf:Cartography , -# kbgf:Tactile ; -# skos:narrowMatch kbrda:CartographicTactileImage, kbdra:CartographicTactileThreeDimensionalForm ; #? -# skos:editorialNote "TODO: edge case? Force a choice of primary purpose of expression? This is not a11y, that's about the instance. Mixed purposes can be solved by primary purpose as type and additional \"color\" as genre."@en ; -# rdfs:label "Taktilt kartografiskt verk"@sv , -# "Tactile Cartography"@en . -# -#f:CartographicTactileImage a :ContentAspect; -# skos:exactMatch kbrda:CartographicTactileImage; -# skos:broader kbgf:Cartography, kbgf:StillImage ; -# rdfs:label "Kartografisk taktil bild"@sv , "Cartographic tactile image"@en . -# -#f:CartographicTactileObject a :ContentAspect; -# skos:exactMatch kbrda:CartographicTactileThreeDimensionalForm; -# skos:broader kbgf:Cartography, f:TactileObject ; -# rdfs:label "Kartografiskt taktilt objekt"@sv , -# "Cartographic Tactile Object"@en . -# -#f:TactileImage a :ContentAspect ; -# skos:exactMatch kbrda:TactileImage; -# skos:broader kbgf:StillImage, kbgf:Tactile ; # _:TactileInstanceRestriction . -# rdfs:label "Taktil bild"@sv , "Tactile image"@en . -# -#f:TactileNotatedMusic a :ContentAspect ; -# skos:exactMatch kbrda:TactileNotatedMusic; -# skos:broader kbgf:NotatedMusic, kbgf:Tactile ; # , _:TactileInstanceRestriction . -# rdfs:label "Taktil noterad musik"@sv , "Tactile notated music"@en . -# -#f:TactileNotatedMovement a :ContentAspect ; -# skos:exactMatch kbrda:TactileNotatedMovement; -# skos:broader kbgf:NotatedMovement, kbgf:Tactile ; # , _:TactileInstanceRestriction . -# rdfs:label "Taktil noterad rörelse"@sv , "Tactile notated movement"@en . -# -#f:TactileText a :ContentAspect ; -# skos:exactMatch kbrda:TactileText; -# skos:broader kbgf:Text, kbgf:Tactile ; # , _:TactileInstanceRestriction . -# rdfs:label "Taktil text"@sv , "Tactile text"@en . -# -#f:TactileObject a :ContentAspect ; -# skos:exactMatch kbrda:TactileThreeDimensionalForm; -# skos:broader kbgf:Object, kbgf:Tactile ; # , _:TactileInstanceRestriction , -# rdfs:label "Taktilt objekt"@sv , -# "Tactile Object"@en . -# -##_:TactileInstanceRestriction a owl:Restriction ; -## owl:onProperty :hasInstance; -## owl:allValueFrom kbgf:Tactile . -# -#:ThreeDimensionalMovingImage -# skos:exactMatch kbrda:ThreeDimensionalMovingImage ; -# :prefLabel "Tredimensionell rörlig bild", "Three-dimensional moving image"@en . -# -#:TwoDimensionalMovingImage -# skos:exactMatch kbrda:TwoDimensionalMovingImage ; -# :prefLabel "Tvådimensionell rörlig bild", "Two-dimensional moving image"@en . diff --git a/source/genreforms/contentgenres.ttl b/source/genreforms/contentgenres.ttl index 0c903aea..1fa4d8fd 100644 --- a/source/genreforms/contentgenres.ttl +++ b/source/genreforms/contentgenres.ttl @@ -7,29 +7,47 @@ prefix sdo: prefix : prefix marc: prefix div: -prefix g: -prefix kbgf: prefix saogf: prefix kbrda: -# TODO: Plan is to add these facts to their SAOGF exactMatches and remove (all of?) g:. +prefix g: +prefix gf: +prefix kbgf: + +# TODO: Is the plan to add these facts to SAOGF and remove g:? -# TODO: This is not fulfilled! How do we *suggest* a :ContentForm? (Using skos:relatedMatch?) # It is a Genre if: -# - it is independent of any broader ContentForm (it is "topical" and/or "thematic"). +# - it is independent of any broader ContentForm (it is "topical", "thematic", "style/method", and/or "purpose"). + +# TODO: There are some "too concrete" GenreForm candidates left: +# construct { ?x skos:broader ?y } { ?x skos:broader|skos:broadMatch ?y . filter(strstarts(str(?y), str(kbgf:))) } + +# TODO: Do we want to *suggest* a :ContentForm? (Using skos:relatedMatch?) g:Fiction a :Genre ; skos:narrowMatch marc:Fiction ; # 84678 # (SSB) skos:narrowMatch marc:FictionNotFurtherSpecified . # 573355 # (SSB) +g:LinguisticWork a :Genre ; + #ptg:abstract true ; + :altLabel "Literature"@en , + "Litteratur"@sv ; + :prefLabel "Linguistic work"@en , + "Språkligt verk"@sv . + g:Literature a :Genre ; - skos:broader kbgf:Text ; + #skos:broader kbgf:Text ; :singularLabel "Litteratur"@sv , "Literature"@en . +g:Cartography a :Genre ; + skos:closeMatch saogf:Kartor . # TODO: Kartografiskt material? + +g:Music a :Genre . + g:AbstractSummary a :Genre ; - skos:broader kbgf:NonBookText ; + #skos:broader kbgf:NonBookText ; skos:exactMatch saogf:Sammanfattningar ; :inCollection div:informative-work ; rdfs:seeAlso ; @@ -37,14 +55,14 @@ g:AbstractSummary a :Genre ; "Abstract Summary"@en . g:Almanac a :Genre ; - skos:broader g:ReferenceWork ; # inte alltid kbgf:IllustratedWork ; + skos:broader g:ReferenceWork ; # inte alltid kbgf:WorkWithImages ; skos:related g:SerialPublication ; # TODO: skos:exactMatch saogf:Almanackor ; :singularLabel "Almanacka"@sv , "Almanac"@en . g:Calendar a :Genre ; - skos:broader g:ReferenceWork ; # inte alltid kbgf:IllustratedWork ; + skos:broader g:ReferenceWork ; # inte alltid kbgf:WorkWithImages ; skos:exactMatch saogf:Kalendrar ; :singularLabel "Kalender"@sv , "Calendar"@en . @@ -55,8 +73,17 @@ g:Catalogue a :Genre ; :singularLabel "Katalog"@sv , "Catalogue"@en . +g:CollectingResource a :Genre ; + :singularLabel "Samlande resurs"@sv . + +g:MonographicSeries a :Genre ; + skos:broader g:CollectingResource ; + skos:exactMatch marc:MonographicSeries ; + :singularLabel "Monograph Series"@en , + "Monografiserie"@sv . + g:CollectedWork a :Genre ; - skos:broader kbgf:CollectingResource ; + skos:broader g:CollectingResource ; # TODO: CollectedPart vs. CollectingWork! Cf. bibo:CollectedDocument, bibo:MultiVolumeBook, kbgf:MultipartBook skos:exactMatch saogf:Samlingsverk ; :singularLabel "Samlingsverk"@sv , @@ -104,26 +131,11 @@ g:TeachingMaterial a :Genre ; :altLabel "Läromedel"@sv . g:HandSignedCommunication a :Genre ; - skos:broadMatch kbgf:Visual, kbgf:Text ; + #skos:broadMatch kbgf:Visual, kbgf:Text ; skos:exactMatch saogf:TAKK ; :singularLabel "TAKK"@sv , "Hand-signed Communication"@en . -g:GraphicNovel a :Genre ; - skos:broader g:Novel , - kbgf:BookWithImages , - g:GraphicLiterature ; - skos:exactMatch saogf:Serieromaner ; - :singularLabel "Serieroman"@sv , - "Graphic Novel"@en . - -g:Photoseries a :Genre ; - skos:broader g:GraphicLiterature , - kbgf:CollectingResource ; - skos:exactMatch saogf:Fotoserier ; - :singularLabel "Fotoserie"@sv , - "Photoseries"@en . - g:Note a :Genre ; skos:broader kbgf:NonBookText ; skos:exactMatch saogf:Anteckningar . @@ -136,16 +148,10 @@ g:Novel a :Genre ; "Novel"@en . g:Periodical a :Genre ; - skos:broader kbgf:CollectingResource . + skos:broader g:CollectingResource . g:SerialPublication a :Genre ; - skos:broader kbgf:CollectingResource . - -g:MonographicSeries a :GenreForm ; - skos:broader kbgf:CollectingResource ; - skos:exactMatch marc:MonographicSeries ; - :singularLabel "Monograph Series"@en , - "Monografiserie"@sv . + skos:broader g:CollectingResource . g:Journal a :Genre ; skos:broader g:Periodical ; @@ -163,18 +169,6 @@ g:Magazine a :Genre ; :singularLabel "Magasin"@sv , "Magazine"@en . -g:MusicRadioProgram a :Genre ; - skos:broader g:AudioProgram , - kbgf:Music ; - :singularLabel "Musikradioprogram"@sv , - "Music Radio Program"@en . - -g:MusicRecording a :Genre ; - skos:broader kbgf:Music ; - skos:exactMatch saogf:Musikinspelningar ; - :singularLabel "Musikinspelning"@sv , - "Music Recording"@en . - g:NewsLetter a :Genre ; skos:broader g:SerialPublication ; skos:exactMatch saogf:Nyhetsbrev ; @@ -189,30 +183,12 @@ g:Newspaper a :Genre ; "Newspaper"@en ; :pluralLabel "Dagstidningar"@sv . -g:Pamphlet a :Genre ; - skos:broader g:Brochure ; - skos:exactMatch saogf:Pamfletter ; - :inCollection div:ephemera ; - :singularLabel "Pamflett"@sv , - "Pamphlet"@en . - -g:Podcast a :Genre ; - skos:broader g:AudioProgram ; - :singularLabel "Podcast"@sv , - "Podcast"@en . - g:PublicationProgramme a :Genre ; skos:broader kbgf:NonBookText ; skos:exactMatch saogf:Program\%20\%28publikationer\%29 ; :singularLabel "Programblad"@sv , "Publication Programme"@en . -g:RadioProgram a :Genre ; - skos:broader g:AudioProgram ; - skos:exactMatch saogf:Radioprogram ; - :singularLabel "Radioprogram"@sv , - "Radio Program"@en . - g:RecordOrDeed a :Genre ; skos:broader kbgf:NonBookText ; skos:exactMatch saogf:Handlingar\%20\%28dokument\%29 ; @@ -220,7 +196,7 @@ g:RecordOrDeed a :Genre ; "Record (Document)"@en . g:Register a :Genre ; - skos:broader kbgf:CollectingResource ; + skos:broader g:CollectingResource ; skos:exactMatch saogf:F\%C3\%B6rteckningar ; :singularLabel "Förteckning"@sv , "Register"@en . @@ -260,18 +236,6 @@ g:Timetable a :Genre ; :singularLabel "Tidtabell"@sv , "Timetable"@en . -g:ThreeDimensionalMovingImage a :Genre ; # :ContentType - skos:exactMatch kbrda:ThreeDimensionalMovingImage; # sameAs - skos:broader kbgf:MovingImage ; - :prefLabel "Tredimensionell rörlig bild"@sv , - "Three-dimensional moving image"@en . - -g:TwoDimensionalMovingImage a :Genre ; # :ContentType - skos:exactMatch kbrda:TwoDimensionalMovingImage; # sameAs - skos:broader kbgf:MovingImage ; - :prefLabel "Tvådimensionell rörlig bild"@sv , - "Two-dimensional moving image"@en . - #g:Patent # :singularLabel "Patent"@sv, "Patent"@en . @@ -365,29 +329,19 @@ g:TwoDimensionalMovingImage a :Genre ; # :ContentType #g:Ballad a :Genre ; # skos:closeMatch saogf:Visor . -g:Blog a :Genre ; - skos:broader g:Website , - kbgf:NonBookText ; - skos:exactMatch saogf:Bloggar ; - :inCollection div:informative-work ; - :singularLabel "Blogg"@sv , - "Blog"@en . - g:ShortStory a :Genre ; - skos:broader kbgf:NonBookText , + skos:broader # kbgf:NonBookText , g:Literature ; skos:exactMatch saogf:Noveller ; :singularLabel "Novell"@sv , "Short Story"@en . -g:ComicStory a :Genre ; - skos:broader g:Comic, g:ShortStory ; - skos:narrowMatch saogf:Serienoveller ; - :singularLabel "Serienovell"@sv , - "Comic Story"@en . +g:Offentligt_tryck a :Genre ; + skos:broader kbgf:Text ; + skos:exactMatch saogf:Offentligt%20tryck . g:ReferenceWork a :Genre ; - skos:broader kbgf:Text ; + #skos:broader kbgf:Text ; skos:exactMatch saogf:Referensverk ; :inCollection div:informative-work ; rdfs:seeAlso ; @@ -395,7 +349,7 @@ g:ReferenceWork a :Genre ; "Reference Work"@en . g:Review a :Genre ; - skos:broader kbgf:NonBookText ; + #skos:broader kbgf:NonBookText ; skos:exactMatch saogf:Recensioner ; :singularLabel "Recension"@sv , "Review"@en . @@ -405,45 +359,3 @@ g:Standard a :Genre ; skos:exactMatch saogf:Standarder ; :singularLabel "Standard"@sv , "Standard"@en . - -## TODO: Move these instance MARC-types and -genreForms to work (and drop on marcframe revert?) - -# Instans-genrer (från användning ) - -# :Instance -# marc:Picture -# marc:Postcard -# marc:Poster -# marc:SingleMap -# tgm:Gravyrer -# tgm:Litografier -# tgm:M%C3%A5lningar -# tgm:Miniatyrer%20%28m%C3%A5lningar%29 -# tgm:Tr%C3%A4gravyrer - -# :StillImageInstance -# tgm:Affischer -# tgm:Flyers%20%28efem%C3%A4rt%20tryck%29 < :Print -# marc:ActivityCard -# marc:Picture -# marc:Postcard -# marc:Poster -# marc:Drawing -# marc:FlashCard -# marc:Painting -# marc:Photograph -# -# marc:Photonegative -# marc:Photoprint < :Print -# marc:PhotomechanicalPrint -# tgm:Fotomekaniska%20reproduktioner -# tgm:Fotografier%20p%C3%A5%20albuminpapper -# tgm:Glasnegativ - -# :Print -# marc:Print -# marc:PhotomechanicalPrint -# marc:Photoprint -# tgm:Ljustryck -# tgm:Plantryck -# tgm:Tryck diff --git a/source/genreforms/genreforms.ttl b/source/genreforms/genreforms.ttl index f17fc4b6..b31fafb5 100644 --- a/source/genreforms/genreforms.ttl +++ b/source/genreforms/genreforms.ttl @@ -3,63 +3,58 @@ prefix skos: prefix : prefix marc: -prefix term: -prefix kbgf: -prefix g: prefix saogf: prefix tgm: prefix barngf: prefix kbrda: +prefix div: +prefix kbgf: +prefix gf: +prefix g: + # It is a GenreForm if: # - it's a combination of ContentForm and a Genre (it adds a topical/thematic nuance). +# - Applies to an *Expression* (per ContentForm) -g:Manuscript a :GenreForm . +gf:Manuscript a :GenreForm . -g:Issue a :GenreForm ; +gf:Issue a :GenreForm ; skos:broader kbgf:NonBookText ; :singularLabel "Tidskriftsnummer"@sv , "Periodical Issue"@en . -#g:JournalIssue a :Genre ; -# skos:broader g:Issue ; +#gf:JournalIssue a :GenreForm ; +# skos:broader gf:Issue ; # skos:broadMatch g:Journal ; # :singularLabel "Vetenskapstidskriftssnummer"@sv , # "Journal Issue"@en . -#g:MagazineIssue a :Genre ; -# skos:broader g:Issue ; +#gf:MagazineIssue a :GenreForm ; +# skos:broader gf:Issue ; # skos:broadMatch g:Magazine ; # :singularLabel "Magasin-nummer"@sv , # "Magazine Issue"@en . -#g:NewspaperIssue a :Genre ; -# skos:broader g:Issue ; +#gf:NewspaperIssue a :GenreForm ; +# skos:broader gf:Issue ; # skos:broadMatch g:Newspaper ; # :singularLabel "Dagstidningsnummer"@sv , # "Newspaper Issue"@en . -g:Film a :GenreForm ; +gf:Film a :GenreForm ; skos:broader kbgf:MovingImage ; skos:exactMatch saogf:Filmer ; :singularLabel "Film"@sv , "Film"@en . -g:Article a :GenreForm ; +gf:Article a :GenreForm ; skos:broader kbgf:NonBookText ; :singularLabel "Artikel"@sv , "Article"@en . -g:Booklet a :GenreForm ; # g:MediumText# TODO: CarrierGenreForm? - skos:broader kbgf:NonBookText ; - rdfs:label "Texthäfte"@sv , "Booklet"@en . - -g:Textleaf a :GenreForm ; # g:SmallText # TODO: CarrierGenreForm? - skos:broader kbgf:NonBookText ; - rdfs:label "Textblad"@sv , "Text leaf"@en . - -g:AudioProgram a :GenreForm ; +gf:AudioProgram a :GenreForm ; skos:broader kbgf:NonMusicAudio ; rdfs:label "Ljudprogram"@sv , "Audio Program"@en . @@ -72,20 +67,20 @@ g:TV a :GenreForm ; skos:broader kbgf:MovingImage ; skos:prefLabel "TV"@sv, "TV"@en . -g:BoardGame a :GenreForm ; - skos:broader g:InteractiveObject , g:PuzzleOrGame ; +gf:BoardGame a :GenreForm ; + skos:broader gf:InteractiveObject , g:PuzzleOrGame ; skos:exactMatch ; rdfs:label "Brädspel"@sv , "Boardgame"@en . -g:Brochure a :GenreForm ; +gf:Brochure a :GenreForm ; skos:broader kbgf:NonBookText ; skos:exactMatch ; rdfs:label "Broschyr"@sv , "Brochure"@en . -g:Comic a :GenreForm ; - skos:broader g:GraphicLiterature ; +gf:Comic a :GenreForm ; + skos:broader gf:GraphicLiterature ; skos:altLabel "Tecknad serie"@sv ; skos:broadMatch saogf:Tecknade%20serier , barngf:Tecknade%20serier ; @@ -93,52 +88,58 @@ g:Comic a :GenreForm ; rdfs:label "Serietidning"@sv , "Comic"@en . -g:ComputerCode a :GenreForm ; +g:ComicStory a :GenreForm ; + skos:broader gf:Comic, g:ShortStory ; + skos:narrowMatch saogf:Serienoveller ; + :singularLabel "Serienovell"@sv , + "Comic Story"@en . + +gf:ComputerCode a :GenreForm ; skos:broader kbgf:Software ; rdfs:label "Datorkod"@sv , "Computer Code"@en . -g:ComputerProgram a :GenreForm ; - skos:broadMatch kbrda:ComputerProgram ; +gf:ComputerProgram a :GenreForm ; + skos:exactMatch kbrda:ComputerProgram ; skos:broader kbgf:Software ; rdfs:label "Datorprogram"@sv , "Computer Program"@en . -g:ComputerGame a :GenreForm ; - skos:broader g:PuzzleOrGame, g:ComputerProgram ; +gf:ComputerGame a :GenreForm ; + skos:broader g:PuzzleOrGame, gf:ComputerProgram ; skos:exactMatch saogf:Datorspel ; rdfs:label "Datorspel"@sv , "Computer Game"@en . -g:Diagram a :GenreForm ; +gf:Diagram a :GenreForm ; skos:broader kbgf:StillImage ; skos:exactMatch saogf:Diagram ; rdfs:label "Diagram"@sv , "Diagram"@en . -g:FormDocument a :GenreForm ; +gf:FormDocument a :GenreForm ; rdfs:seeAlso ; skos:broader kbgf:NonBookText ; skos:exactMatch saogf:Blanketter ; rdfs:label "Blankett"@sv , "Form Document"@en . -g:Handwriting a :GenreForm ; - skos:broader g:Manuscript , +gf:Handwriting a :GenreForm ; + skos:broader gf:Manuscript , kbgf:Text ; skos:exactMatch saogf:Handskrifter ; rdfs:label "Handskrift"@sv , "Handwriting"@en ; :pluralLabel "Handskrifter"@sv . -g:Illustration a :GenreForm ; +gf:Illustration a :GenreForm ; skos:broader kbgf:StillImage ; skos:exactMatch saogf:Illustrationer ; rdfs:label "Illustration"@sv , "Illustration"@en . -g:GraphicLiterature a :GenreForm ; - skos:broader kbgf:IllustratedWork , +gf:GraphicLiterature a :GenreForm ; + skos:broader kbgf:WorkWithImages , g:Literature ; skos:broadMatch kbrda:Text , kbrda:Image ; @@ -146,12 +147,20 @@ g:GraphicLiterature a :GenreForm ; :singularLabel "Tecknad serie"@sv , "Graphic Literature"@en . -g:InteractiveObject a :GenreForm ; +gf:GraphicNovel a :GenreForm ; + skos:broader g:Novel , + kbgf:BookWithImages , + gf:GraphicLiterature ; + skos:exactMatch saogf:Serieromaner ; + :singularLabel "Serieroman"@sv , + "Graphic Novel"@en . + +gf:InteractiveObject a :GenreForm ; skos:broader kbgf:Object ; rdfs:label "Interaktivt objekt"@sv , "InteractiveObject"@en . -g:Manual a :GenreForm ; +gf:Manual a :GenreForm ; skos:broader kbgf:Text , g:TeachingMaterial ; skos:closeMatch saogf:Handb\%C3\%B6cker\%2C\%20manualer\%20etc ; @@ -159,222 +168,326 @@ g:Manual a :GenreForm ; rdfs:label "Manual"@sv , "Manual"@en . -g:Screenplay a :GenreForm ; +gf:Screenplay a :GenreForm ; skos:broader kbgf:Text ; skos:exactMatch saogf:Filmmanus ; :singularLabel "Filmmanus"@sv , "Screenplay"@en . -g:MechanicalBook a :GenreForm ; +gf:MechanicalBook a :GenreForm ; skos:exactMatch saogf:Mekaniska\%20b\%C3\%B6cker ; - skos:broader g:InteractiveObject , + skos:broader gf:InteractiveObject , kbgf:WrittenBook ; rdfs:label "Mekanisk bok"@sv , "Mechanical Book"@en . -g:SoundEffectBook a :GenreForm ; - skos:broader g:MechanicalBook, kbgf:Audio ; +gf:MusicRadioProgram a :GenreForm ; + skos:broader gf:AudioProgram , + gf:PerformedMusic ; + :singularLabel "Musikradioprogram"@sv , + "Music Radio Program"@en . + +gf:MusicRecording a :GenreForm ; + skos:broader kbgf:PerformedMusic ; + skos:exactMatch saogf:Musikinspelningar ; + :singularLabel "Musikinspelning"@sv , + "Music Recording"@en . + +gf:SoundEffectBook a :GenreForm ; + skos:broader gf:MechanicalBook, kbgf:Audio ; skos:exactMatch saogf:B\%C3\%B6cker\%20med\%20ljudeffekter ; :singularLabel "Bok med ljudeffekt"@sv , "Sound-effect Book"@en . -g:PopupBook a :GenreForm ; +gf:Pamphlet a :GenreForm ; + skos:broader gf:Brochure ; + skos:exactMatch saogf:Pamfletter ; + :inCollection div:ephemera ; + :singularLabel "Pamflett"@sv , + "Pamphlet"@en . + +gf:PerformedMusic a :GenreForm ; + skos:broader g:Music, kbgf:Audio ; + skos:exactMatch kbrda:PerformedMusic ; + skos:broadMatch kbgf:Audio . + +gf:Podcast a :GenreForm ; + skos:broader gf:AudioProgram ; + :singularLabel "Podcast"@sv , + "Podcast"@en . + +gf:PopupBook a :GenreForm ; skos:broader kbgf:BookWithImages ; skos:exactMatch saogf:Pop-up-b\%C3\%B6cker ; :singularLabel "Pop-up-bok"@sv , "Pop-up Book"@en . -g:Photograph a :GenreForm ; +gf:Photograph a :GenreForm ; skos:broader kbgf:StillImage ; skos:exactMatch saogf:Fotografier, tgm:Fotografier ; :singularLabel "Fotografi"@sv , "Photograph"@en ; :pluralLabel "Fotografier"@sv . -g:Painting a :GenreForm ; +gf:Painting a :GenreForm ; skos:broader kbgf:StillImage ; skos:exactMatch ; rdfs:label "Målning"@sv , "Painting"@en . -g:Photobook a :GenreForm ; +gf:Photobook a :GenreForm ; skos:broader kbgf:BookWithImages , kbgf:Book ; skos:exactMatch saogf:Fotob\%C3\%B6cker ; rdfs:label "Fotobok"@sv , "Photobook"@en . -g:PictureDictionary a :GenreForm ; - skos:broader g:Lexicon , - kbgf:BookWithImages ; +g:Photoseries a :GenreForm ; + skos:broader gf:GraphicLiterature , + g:CollectingResource ; + skos:exactMatch saogf:Fotoserier ; + :singularLabel "Fotoserie"@sv , + "Photoseries"@en . + +gf:PictureDictionary a :GenreForm ; + skos:broader kbgf:BookWithImages , g:Lexicon ; skos:exactMatch saogf:Bildlexikon ; rdfs:label "Bildlexikon"@sv , "Picture Dictionary"@en . -g:Postcard a :GenreForm ; +gf:Postcard a :GenreForm ; skos:broader kbgf:StillImage ; skos:exactMatch saogf:Vykort ; rdfs:label "Vykort"@sv , "Postcard"@en . -g:PostcardBook a :GenreForm ; - skos:broader g:Postcard , kbgf:Book ; +gf:PostcardBook a :GenreForm ; + skos:broader kbgf:Book , gf:Postcard ; # not really *is*; works if category is "sort-of-is"... skos:exactMatch . -g:Puzzle a :GenreForm ; - skos:broader g:InteractiveObject, g:PuzzleOrGame ; +gf:Puzzle a :GenreForm ; + skos:broader gf:InteractiveObject, g:PuzzleOrGame ; skos:exactMatch saogf:Pussel ; rdfs:label "Pussel"@sv , "Puzzle"@en . -g:Sculpture a :GenreForm ; +gf:RadioProgram a :GenreForm ; + skos:broader gf:AudioProgram, g:Radio ; + skos:exactMatch saogf:Radioprogram ; + :singularLabel "Radioprogram"@sv , + "Radio Program"@en . + +gf:Sculpture a :GenreForm ; skos:broader kbgf:Object ; rdfs:label "Skulptur"@sv , "Sculpture"@en . -g:SpokenBook a :GenreForm ; +gf:SpokenBook a :GenreForm ; skos:broader kbgf:Audiobook , - g:SpokenWord ; + kbgf:SpokenWord ; skos:exactMatch saogf:Talb\%C3\%B6cker ; rdfs:label "Talbok"@sv , "Spoken Book"@en . -g:SpokenWord a :GenreForm ; - skos:broadMatch kbrda:SpokenWord ; - skos:broader kbgf:Text , - kbgf:Audio ; - rdfs:label "Tal"@sv , - "Spoken Word"@en . - -g:SpokenPaper a :GenreForm ; +gf:SpokenPaper a :GenreForm ; skos:broader g:Periodical , - g:SpokenWord ; + kbgf:SpokenWord ; skos:exactMatch saogf:Taltidningar ; rdfs:label "Taltidning"@sv , "Spoken Paper"@en . -g:TVProgram a :GenreForm ; - skos:broader kbgf:MovingImage ; +gf:TVProgram a :GenreForm ; + skos:broader kbgf:MovingImage, g:TV ; skos:exactMatch saogf:Tv-program ; rdfs:label "Tv-program"@sv , "TV-Program"@en . -g:TVSeries a :GenreForm ; - skos:broader g:TVProgram , - kbgf:MonographicSeries ; +gf:TVSeries a :GenreForm ; + skos:broader g:TV , + g:MonographicSeries ; skos:exactMatch saogf:Tv-serier ; rdfs:label "Tv-serie"@sv , "TV-Series"@en . -g:Toy a :GenreForm ; - skos:broader g:InteractiveObject ; +gf:Toy a :GenreForm ; + skos:broader gf:InteractiveObject ; rdfs:label "Leksak"@sv , "Toy"@en . -g:Trailer a :GenreForm ; - skos:broader g:Film ; +gf:Trailer a :GenreForm ; + skos:broader gf:Film ; skos:exactMatch saogf:Trailrar ; rdfs:label "Trailer"@sv , "Trailer"@en . -g:Website a :GenreForm ; +gf:Website a :GenreForm ; skos:broader kbgf:OnlineResource , kbgf:Integrating ; skos:exactMatch saogf:Webbplatser ; rdfs:label "Webbplats"@sv , "Website"@en . -g:Yearbook a :GenreForm ; +g:Blog a :GenreForm ; + skos:broader gf:Website , + kbgf:NonBookText ; + skos:exactMatch saogf:Bloggar ; + :inCollection div:informative-work ; + :singularLabel "Blogg"@sv , + "Blog"@en . + +gf:Yearbook a :GenreForm ; skos:exactMatch saogf:%C3%85rsb%C3%B6cker ; skos:broader kbgf:SerialPublication , kbgf:Book . -g:PhraseBook a :GenreForm ; +gf:PhraseBook a :GenreForm ; skos:broader kbgf:Book ; skos:exactMatch saogf:Parl%C3%B6rer . -g:Offentligt_tryck a :GenreForm ; - skos:broader kbgf:Text ; - skos:exactMatch saogf:Offentligt%20tryck . - -g:Lucköppningskalendrar a :GenreForm ; +gf:Luck%C3%B6ppningskalendrar a :GenreForm ; skos:broader kbgf:Object ; - skos:exactMatch saogf:Luck%C3%B6ppningskalendrar . + skos:exactMatch saogf:Luck%C3%B6ppningskalendrar ; + :singularLabel "Lucköppningskalender"@sv . -g:MiniatureBook a :GenreForm ; +gf:MiniatureBook a :GenreForm ; skos:broader kbgf:Book ; skos:exactMatch saogf:Miniatyrb%C3%B6cker . -g:PuzzleBook a :GenreForm ; +gf:PuzzleBook a :GenreForm ; skos:broader kbgf:Book, g:PuzzleOrGame ; skos:exactMatch saogf:Pysselb%C3%B6cker . -g:Målarböcker a :GenreForm ; +gf:M%C3%A5larböcker a :GenreForm ; skos:broader kbgf:BookWithImages ; - skos:exactMatch saogf:Målarb%C3%B6cker . + skos:exactMatch saogf:M%C3%A5larb%C3%B6cker ; + :singularLabel "Målarbok"@sv . -g:GuideBook a :GenreForm ; +gf:GuideBook a :GenreForm ; skos:broader kbgf:WrittenBook ; skos:exactMatch saogf:Guideb%C3%B6cker . -g:PopupBook a :GenreForm ; - skos:broader g:MechanicalBook ; +gf:PopupBook a :GenreForm ; + skos:broader kbgf:BookWithImages, gf:MechanicalBook ; skos:exactMatch saogf:Pop-up-b%C3%B6cker . -g:Cookbook a :GenreForm ; +gf:Cookbook a :GenreForm ; skos:broader kbgf:WrittenBook ; skos:exactMatch saogf:Kokb%C3%B6cker . -g:DiningMenu a :GenreForm ; +gf:DiningMenu a :GenreForm ; skos:broader kbgf:NonBookText ; skos:exactMatch saogf:Matsedlar . -g:DocumentaryComic a :GenreForm ; +gf:DocumentaryComic a :GenreForm ; :singularLabel "Dokumentär serie" ; - skos:exactMatch saogf:Dokument%C3%A4ra%20serier ; - skos:broader saogf:Tecknade%20serier . + skos:broader gf:Comic ; + skos:exactMatch saogf:Dokument%C3%A4ra%20serier . + +kbgf:Map a :GenreForm ; + skos:broader g:Cartography, kbgf:StillImage ; + skos:exactMatch marc:MapATwoDimensionalMap, tgm:Kartor ; + :singularLabel "Single map"@en , + "Enskild karta"@sv . + +kbgf:Globe a :GenreForm ; + skos:broader kbgf:CartographicObject ; + skos:exactMatch tgm:Glober . -g:Atlas a :GenreForm ; - skos:broader kbgf:Cartography, kbgf:Book ; +gf:Atlas a :GenreForm ; + skos:broader g:Cartography, kbgf:Book ; skos:exactMatch marc:Atlas, tgm:Atlaser . # TODO: Define in saogf? And move these to marcmatches.ttl (to be remapped). -g:TerrestrialGlobe a :GenreForm ; +gf:TerrestrialGlobe a :GenreForm ; skos:broader kbgf:Globe ; skos:closeMatch marc:TerrestrialGlobe . -g:PlanetaryOrLunarGlobe a :GenreForm ; +gf:PlanetaryOrLunarGlobe a :GenreForm ; skos:broader kbgf:Globe ; skos:closeMatch marc:PlanetaryOrLunarGlobe . -g:CelestialGlobe a :GenreForm ; +gf:CelestialGlobe a :GenreForm ; skos:broader kbgf:Globe ; skos:closeMatch marc:CelestialGlobe . -g:EarthMoonGlobe a :GenreForm ; +gf:EarthMoonGlobe a :GenreForm ; skos:broader kbgf:Globe ; skos:closeMatch marc:EarthMoonGlobe . -g:Model a :GenreForm ; +gf:Model a :GenreForm ; skos:broader kbgf:CartographicObject ; skos:closeMatch marc:Model . -g:Section a :GenreForm ; +gf:Section a :GenreForm ; skos:broader kbgf:Map ; skos:closeMatch marc:Section . -g:ProfileMap a :GenreForm ; +gf:ProfileMap a :GenreForm ; skos:broader kbgf:Map ; skos:closeMatch marc:Profile . -g:MapATwoDimensionalMap a :GenreForm ; +gf:MapATwoDimensionalMap a :GenreForm ; skos:broader kbgf:Map ; skos:closeMatch marc:MapATwoDimensionalMap . -g:MapDiagram a :GenreForm ; +gf:MapDiagram a :GenreForm ; skos:broader kbgf:Map ; skos:closeMatch marc:Diagram . -g:RemoteSensingImage a :GenreForm ; +gf:RemoteSensingImage a :GenreForm ; skos:broader kbgf:Map ; skos:closeMatch marc:RemoteSensingImage . + +#--- + +gf:Booklet a :GenreForm ; # gf:MediumText# TODO: CarrierGenreForm? + skos:broader kbgf:NonBookText ; + rdfs:label "Texthäfte"@sv , "Booklet"@en . + +gf:Textleaf a :GenreForm ; # gf:SmallText # TODO: CarrierGenreForm? + skos:broader kbgf:NonBookText ; + rdfs:label "Textblad"@sv , "Text leaf"@en . + +#kbgf:OnlineResource a :CarrierForm . # TODO: move to carrierform... + +## TODO: Move these instance MARC-types and -genreForms to work (and drop on marcframe revert?) + +# Instans-former (från användning ) + +# :Instance +# marc:Picture +# marc:Postcard +# marc:Poster +# marc:SingleMap +# tgm:Gravyrer +# tgm:Litografier +# tgm:M%C3%A5lningar +# tgm:Miniatyrer%20%28m%C3%A5lningar%29 +# tgm:Tr%C3%A4gravyrer + +# :StillImageInstance +# tgm:Affischer +# tgm:Flyers%20%28efem%C3%A4rt%20tryck%29 < :Print +# marc:ActivityCard +# marc:Picture +# marc:Postcard +# marc:Poster +# marc:Drawing +# marc:FlashCard +# marc:Painting +# marc:Photograph +# +# marc:Photonegative +# marc:Photoprint < :Print +# marc:PhotomechanicalPrint +# tgm:Fotomekaniska%20reproduktioner +# tgm:Fotografier%20p%C3%A5%20albuminpapper +# tgm:Glasnegativ + +# :Print +# marc:Print +# marc:PhotomechanicalPrint +# marc:Photoprint +# tgm:Ljustryck +# tgm:Plantryck +# tgm:Tryck diff --git a/source/genreforms/rdacategories.ttl b/source/genreforms/rdacategories.ttl new file mode 100644 index 00000000..df3b53ee --- /dev/null +++ b/source/genreforms/rdacategories.ttl @@ -0,0 +1,67 @@ +prefix skos: +prefix kbrda: +prefix kbgf: +prefix g: +prefix : + +kbrda:CartographicDataset a :ContentType ; + skos:broadMatch kbgf:Dataset , kbgf:Cartography . +kbrda:CartographicImage a :ContentType ; + skos:broadMatch kbrda:StillImage , kbgf:Cartography . +kbrda:CartographicMovingImage a :ContentType ; + skos:broadMatch kbgf:Cartography , kbgf:MovingImage . +kbrda:CartographicTactileImage a :ContentType ; + skos:broadMatch kbgf:Tactile , kbgf:Cartography , kbrda:StillImage . +kbrda:CartographicTactileThreeDimensionalForm a :ContentType ; + skos:broadMatch kbrda:ThreeDimensionalForm , kbgf:Cartography , kbgf:Tactile . +kbrda:CartographicThreeDimensionalForm a :ContentType ; + skos:broadMatch kbgf:Cartography, kbrda:ThreeDimensionalForm . + +kbrda:TactileImage a :ContentType ; + skos:broadMatch kbgf:Tactile , kbrda:StillImage . +kbrda:TactileNotatedMovement a :ContentType ; + skos:broadMatch kbgf:Tactile , kbrda:NotatedMovement . +kbrda:TactileNotatedMusic a :ContentType ; + skos:broadMatch kbgf:Tactile , kbrda:NotatedMusic . +kbrda:TactileText a :ContentType ; + skos:broadMatch kbgf:Tactile , kbrda:Text . +kbrda:TactileThreeDimensionalForm a :ContentType ; + skos:broadMatch kbgf:Tactile , kbrda:ThreeDimensionalForm . + +kbrda:ComputerDataset a :ContentType ; + skos:broadMatch kbgf:Multimedia, kbgf:Dataset . +kbrda:ComputerProgram a :ContentType ; + skos:broadMatch kbgf:Multimedia . + +kbrda:NotatedMovement a :ContentType ; + skos:closeMatch kbgf:NotatedMovement ; + skos:broadMatch kbgf:Movement . + +kbrda:NotatedMusic a :ContentType ; + skos:broadMatch g:Music ; + skos:closeMatch kbgf:NotatedMusic . + +kbrda:PerformedMovement a :ContentType ; + skos:broadMatch kbgf:Movement . +kbrda:PerformedMusic a :ContentType ; + skos:broadMatch kbgf:Audio, g:Music . + +kbrda:Sounds a :ContentType ; + skos:broadMatch kbgf:Audio . + +kbrda:SpokenWord a :ContentType ; + skos:broadMatch kbgf:Audio . + +kbrda:StillImage a :ContentType ; + skos:closeMatch kbgf:StillImage . + +kbrda:Text a :ContentType ; + skos:closeMatch kbgf:Text . + +kbrda:ThreeDimensionalForm a :ContentType ; + skos:closeMatch kbgf:Object . +kbrda:ThreeDimensionalMovingImage a :ContentType ; + skos:broadMatch kbgf:MovingImage . + +kbrda:TwoDimensionalMovingImage a :ContentType ; + skos:broadMatch kbgf:MovingImage . From 77dacbd4bd38cbac3fa847d6b60d20b31f28cc36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Thu, 17 Apr 2025 17:12:40 +0200 Subject: [PATCH 51/69] Further normalize genre/form mappings --- source/genreforms/contentforms.ttl | 151 +++------------ source/genreforms/contentgenres.ttl | 121 ++++++------ source/genreforms/genreforms.ttl | 288 +++++++++++++++++++--------- source/genreforms/rdacategories.ttl | 86 +++++---- 4 files changed, 332 insertions(+), 314 deletions(-) diff --git a/source/genreforms/contentforms.ttl b/source/genreforms/contentforms.ttl index 021740f1..8461d0ee 100644 --- a/source/genreforms/contentforms.ttl +++ b/source/genreforms/contentforms.ttl @@ -1,149 +1,42 @@ prefix : prefix rdfs: -prefix owl: prefix skos: -prefix ptg: - -prefix bibo: -prefix bf: prefix saogf: -prefix barngf: -prefix tgm: prefix kbrda: -prefix marc: -prefix marcgt: - -prefix kbgf: -prefix g: +prefix div: +prefix ctf: -# Base Forms (Categories?! Nature of content, etc.) +# Base Forms # Applies to an *Expression* -# TODO: ONLY Text, Image, Audio; *every* concrete is G/F? PerformedMusic, Cartographic{X}, ... - # TODO: -# - Will ContentForm be replaced by ? -# - Or do we want to "GenreForm:ize" some of the RDA terms? -# - Do we miss some, and/or want to leave open additions (called ContentForm)? -# -Is there a sometimes necessary distinction between "contains" ContentType and "is" ContentForm? - -kbgf:SpokenWord a :ContentForm ; - skos:broadMatch kbrda:SpokenWord ; - skos:broader kbgf:Text , - kbgf:Audio ; - rdfs:label "Tal"@sv , - "Spoken Word"@en . - -kbgf:MovingImage a :ContentForm ; - skos:broader kbgf:Visual . - -kbgf:Text a :ContentForm . -# skos:broadMatch kbrda:Text . # see match in rdacategories.ttl +# - Replace ContentForm with ContentType and merge into ? +# - Some RDA terms have broader Genre terms! +# - Some are "SensoryForm" super-ContentType:s... +# - Is there a sometimes necessary distinction between "contains" and "is"? If so, we reasonably should say that using a concrete GenreForm... -kbgf:Visual a :ContentForm . # TODO: AbstractForm? +ctf:Visual a :ContentForm ; + :inCollection div:sensoryform . -kbgf:Audio a :ContentForm ; - skos:broadMatch kbrda:Audio . +ctf:Audio a :ContentForm ; + :inCollection div:sensoryform . -kbgf:Dataset a :ContentForm . - -kbgf:Integrating a :ContentForm ; # TODO: AbstractForm? - skos:broader g:CollectingResource . +ctf:Tactile a :ContentForm ; + :inCollection div:sensoryform ; + skos:closeMatch saogf:Taktila%20verk ; + skos:prefLabel "Taktil"@sv . -kbgf:Multimedia a :ContentForm . # TODO: Too vague? :GenreForm (but still mapped to BF)? +ctf:MovingImage a :ContentForm ; + skos:broader ctf:Visual . -kbgf:Object a :ContentForm . +ctf:Dataset a :ContentForm . -kbgf:WorkWithImages a :ContentForm ; # kbgf:IllustratedWork - skos:broader kbgf:StillImage ; - skos:closeMatch saogf:Bildverk . +ctf:Object a :ContentForm . -kbgf:StillImage a :ContentForm ; - skos:broader kbgf:Visual ; +ctf:StillImage a :ContentForm ; + skos:broader ctf:Visual ; skos:closeMatch saogf:Bilder . -kbgf:Tactile a :ContentForm ; - skos:prefLabel "Taktil"@sv . - -kbgf:Movement a :ContentForm ; +ctf:Movement a :ContentForm ; skos:prefLabel "Rörelser"@sv . - -kbgf:NonBookText a :ContentForm ; # kbgf:Document ?? - ptg:abstract true ; - skos:broader kbgf:Text ; - skos:prefLabel "Non-book text"@en , - "Enskild text"@sv . - -kbgf:Book a :ContentForm ; # TODO: AbstractForm ? - #skos:broader g:LinguisticWork ; - skos:narrowMatch saogf:Romaner , - saogf:Ljudb%C3%B6cker , - barngf:Bilderb%C3%B6cker , - barngf:Kapitelb%C3%B6cker . - -kbgf:WrittenBook a :ContentForm ; - skos:broader kbgf:Text, kbgf:Book ; - skos:narrowMatch barngf:Kapitelb%C3%B6cker ; - :singularLabel "Written book"@en , - "Skriven bok"@sv ; - :altLabel "Bok"@sv, "Book"@en . - -kbgf:Audiobook a :ContentForm ; - skos:broader kbgf:Audio , - kbgf:Book ; - skos:exactMatch saogf:Ljudb%C3%B6cker ; - :singularLabel "Ljudbok"@sv , - "Audiobook"@en . - -kbgf:NonBookTextWithImages a :ContentForm ; - skos:broader kbgf:NonBookText , kbgf:WorkWithImages ; - rdfs:label "Text med bilder"@sv , - "Text With Images"@en . - -kbgf:BookWithImages a :ContentForm ; - skos:broader kbgf:WrittenBook , kbgf:WorkWithImages ; - skos:editorialNote "TODO: PictorialWork?"@en ; - skos:scopeNote "Gör ingen skillnad mellan bilder som är integral del av verket (där nya bilder är ett nytt verk) och texter där bilderna är kompletterande (). Sådana skillnader kan anges som genre/form."@sv ; - skos:narrowMatch barngf:Bilderb%C3%B6cker ; - :singularLabel "Bilderbok"@sv , - "Book With Images"@en . - -kbgf:CartographicObject a :ContentForm; # GenreForm? - skos:broadMatch kbrda:CartographicThreeDimensionalForm ; - skos:broader kbgf:Object , g:Cartography ; - rdfs:label "Kartografiskt objekt"@sv , - "Cartographic Object"@en . - -kbgf:Database a :ContentForm ; # TODO: AbstractForm ? - skos:broader kbgf:Integrating, kbgf:ComputerDataset ; - skos:exactMatch saogf:Databaser ; - skos:narrowMatch marc:UpdatingDatabase ; - :singularLabel "Databas"@sv , - "Database"@en . - -#kbgf:TactileBook a :ContentForm ; -# skos:broader kbgf:Book , -# kbgf:Tactile ; -# skos:editorialNote "TODO: differentiate between \"filtbok\" och \"punktskriftsbok\"?"@en ; -# skos:broadMatch kbrda:TactileText ; -# skos:narrowMatch saogf:Punktskriftsb%C3%B6cker ; -# :singularLabel "Tactile Book"@en , -# "Taktil bok"@sv . - -kbgf:ComputerDataset a :ContentForm ; # GenreForm? - skos:broadMatch kbrda:ComputerDataset ; - skos:broader kbgf:Dataset . - -kbgf:NonMusicAudio a :ContentForm ; - ptg:abstract true ; - skos:broader kbgf:Audio ; - rdfs:label "Non-music audio"@en , - "Ljud men inte musik"@sv . - -kbgf:Software a :ContentForm ; # TODO: pending; integrate with ComputerGame, Application, ... - ptg:abstract true ; - # kbrda:ComputerProgram - skos:related kbgf:Multimedia ; - :prefLabel "Mjukvara"@sv , - "Software"@en . diff --git a/source/genreforms/contentgenres.ttl b/source/genreforms/contentgenres.ttl index 1fa4d8fd..873c1526 100644 --- a/source/genreforms/contentgenres.ttl +++ b/source/genreforms/contentgenres.ttl @@ -1,8 +1,6 @@ prefix rdfs: -prefix owl: prefix skos: prefix bibo: -prefix sdo: prefix : prefix marc: @@ -13,41 +11,57 @@ prefix kbrda: prefix g: prefix gf: -prefix kbgf: - -# TODO: Is the plan to add these facts to SAOGF and remove g:? +prefix ctf: # It is a Genre if: # - it is independent of any broader ContentForm (it is "topical", "thematic", "style/method", and/or "purpose"). +# TODO: The plan to add these facts to SAOGF and *remove* g: ... + # TODO: There are some "too concrete" GenreForm candidates left: -# construct { ?x skos:broader ?y } { ?x skos:broader|skos:broadMatch ?y . filter(strstarts(str(?y), str(kbgf:))) } +# - construct { ?x skos:broader ?y } { ?x skos:broader|skos:broadMatch ?y . filter(strstarts(str(?y), str(gf:))) } -# TODO: Do we want to *suggest* a :ContentForm? (Using skos:relatedMatch?) +# TODO: Do we want to *suggest* a :ContentForm (see commented kbgf)? (Using skos:relatedMatch?) + +# To find missing: +# - select ?gf { ?x ?rel ?gf filter( strstarts(str(?gf), str(saogf:)) || strstarts(str(?gf), str(tgm:)) ) } g:Fiction a :Genre ; skos:narrowMatch marc:Fiction ; # 84678 # (SSB) skos:narrowMatch marc:FictionNotFurtherSpecified . # 573355 # (SSB) g:LinguisticWork a :Genre ; - #ptg:abstract true ; :altLabel "Literature"@en , "Litteratur"@sv ; :prefLabel "Linguistic work"@en , "Språkligt verk"@sv . g:Literature a :Genre ; - #skos:broader kbgf:Text ; + skos:broader g:LinguisticWork ; + #skos:broader kbrda:Text ; :singularLabel "Litteratur"@sv , "Literature"@en . g:Cartography a :Genre ; - skos:closeMatch saogf:Kartor . # TODO: Kartografiskt material? + skos:closeMatch saogf:Kartor ; + :singularLabel "Kartografiskt material"@sv . g:Music a :Genre . +g:Manuscript a :Genre . + +g:Software a :Genre ; + :prefLabel "Mjukvara"@sv , + "Software"@en . + +g:Multimedia a :Genre ; + skos:broader g:Software . + +g:Integrating a :Genre ; + skos:broader g:CollectingResource . + g:AbstractSummary a :Genre ; - #skos:broader kbgf:NonBookText ; + skos:broader gf:TextPiece ; skos:exactMatch saogf:Sammanfattningar ; :inCollection div:informative-work ; rdfs:seeAlso ; @@ -55,14 +69,14 @@ g:AbstractSummary a :Genre ; "Abstract Summary"@en . g:Almanac a :Genre ; - skos:broader g:ReferenceWork ; # inte alltid kbgf:WorkWithImages ; + skos:broader g:ReferenceWork ; # inte alltid gf:WorkWithImages ; skos:related g:SerialPublication ; # TODO: skos:exactMatch saogf:Almanackor ; :singularLabel "Almanacka"@sv , "Almanac"@en . g:Calendar a :Genre ; - skos:broader g:ReferenceWork ; # inte alltid kbgf:WorkWithImages ; + skos:broader g:ReferenceWork ; # inte alltid gf:WorkWithImages ; skos:exactMatch saogf:Kalendrar ; :singularLabel "Kalender"@sv , "Calendar"@en . @@ -76,6 +90,11 @@ g:Catalogue a :Genre ; g:CollectingResource a :Genre ; :singularLabel "Samlande resurs"@sv . +g:Archive a :Genre ; + skos:broader g:CollectingResource , saogf:Arkiv ; + :singularLabel "Arkiv"@sv , + "Archive"@en . + g:MonographicSeries a :Genre ; skos:broader g:CollectingResource ; skos:exactMatch marc:MonographicSeries ; @@ -84,13 +103,12 @@ g:MonographicSeries a :Genre ; g:CollectedWork a :Genre ; skos:broader g:CollectingResource ; - # TODO: CollectedPart vs. CollectingWork! Cf. bibo:CollectedDocument, bibo:MultiVolumeBook, kbgf:MultipartBook + # TODO: CollectedPart vs. CollectingWork! Cf. bibo:CollectedDocument, bibo:MultiVolumeBook, ctf:MultipartBook skos:exactMatch saogf:Samlingsverk ; :singularLabel "Samlingsverk"@sv , "Collected Work"@en . g:ConferenceMaterial a :Genre ; - #skos:broader kbgf:NonBookText ; skos:exactMatch saogf:Konferensmaterial ; :inCollection div:ephemera , div:informative-work ; @@ -111,16 +129,13 @@ g:CourseMaterial a :Genre ; "Course Material"@en . g:Encyclopedia a :Genre ; - skos:broader g:ReferenceWork, kbgf:Book ; + skos:broader g:ReferenceWork, gf:Book ; skos:exactMatch saogf:Encyklopedier ; :singularLabel "Encyklopedia"@sv , "Encyclopedia"@en . -g:Lexicon a :Genre ; - skos:broader g:ReferenceWork, kbgf:Book ; - skos:exactMatch saogf:Lexikon ; - :singularLabel "Lexikon"@sv , - "Lexicon"@en . +g:Juridiskt%20material a :Genre ; + skos:exactMatch saogf:Juridiskt%20material . g:TeachingMaterial a :Genre ; rdfs:seeAlso ; @@ -131,27 +146,29 @@ g:TeachingMaterial a :Genre ; :altLabel "Läromedel"@sv . g:HandSignedCommunication a :Genre ; - #skos:broadMatch kbgf:Visual, kbgf:Text ; + #skos:broadMatch ctf:Visual, kbgf:Text ; skos:exactMatch saogf:TAKK ; :singularLabel "TAKK"@sv , "Hand-signed Communication"@en . -g:Note a :Genre ; - skos:broader kbgf:NonBookText ; - skos:exactMatch saogf:Anteckningar . - g:Novel a :Genre ; skos:broader g:Literature ; - skos:broadMatch kbgf:Book ; + skos:broadMatch gf:Book ; skos:exactMatch saogf:Romaner ; :singularLabel "Roman"@sv , "Novel"@en . g:Periodical a :Genre ; - skos:broader g:CollectingResource . + skos:broader g:CollectingResource ; + skos:exactMatch saogf:Periodika ; + skos:altLabel "Periodika"@sv ; + rdfs:label "Tidskrift"@sv , + "Periodical"@en ; + :pluralLabel "Tidskrifter"@sv . g:SerialPublication a :Genre ; - skos:broader g:CollectingResource . + skos:exactMatch saogf:Seriella%20publikationer ; + skos:broader g:CollectingResource . g:Journal a :Genre ; skos:broader g:Periodical ; @@ -183,18 +200,6 @@ g:Newspaper a :Genre ; "Newspaper"@en ; :pluralLabel "Dagstidningar"@sv . -g:PublicationProgramme a :Genre ; - skos:broader kbgf:NonBookText ; - skos:exactMatch saogf:Program\%20\%28publikationer\%29 ; - :singularLabel "Programblad"@sv , - "Publication Programme"@en . - -g:RecordOrDeed a :Genre ; - skos:broader kbgf:NonBookText ; - skos:exactMatch saogf:Handlingar\%20\%28dokument\%29 ; - :singularLabel "Handling (dokument)"@sv , - "Record (Document)"@en . - g:Register a :Genre ; skos:broader g:CollectingResource ; skos:exactMatch saogf:F\%C3\%B6rteckningar ; @@ -221,7 +226,7 @@ g:Statistics a :Genre ; g:Tables a :Genre ; skos:broader g:ReferenceWork ; skos:exactMatch saogf:Tabeller ; - skos:related kbgf:Dataset ; + skos:related ctf:Dataset ; :singularLabel "Tabell"@sv , "Tables"@en . @@ -244,22 +249,22 @@ g:Timetable a :Genre ; # :singularLabel "Juridiskt material"@sv, "Legal Document"@en . #g:LegalDocument a :Genre ; -# skos:broader kbgf:Text ; +# skos:broader kbrda:Text ; # skos:exactMatch saogf:Juridiskt\%20material . #g:Leporello a :Genre ; -# skos:broader kbgf:NonBookTextWithImages ; +# skos:broader ctf:NonBookTextWithImages ; # skos:exactMatch saogf:Leporello . -#g:Patent a :Genre ; -# skos:broader kbgf:Text ; -# skos:exactMatch saogf:Patent ; -# :inCollection div:informative-work . +g:Patent a :Genre ; + #skos:broader kbrda:Text ; + skos:exactMatch saogf:Patent ; + :inCollection div:informative-work . #g:RareText skos:exactMatch saogf:Texter . #g:Debate a :Genre ; -# skos:broader kbgf:NonBookText ; +# skos:broader gf:TextPiece ; # skos:exactMatch saogf:Debatter . #g:AdventCalendar a :Genre ; @@ -309,11 +314,11 @@ g:Timetable a :Genre ; #g:DiscursiveWork a :Genre ; # skos:closeMatch saogf:Verk\%20med\%20samtalsliknande\%20karakt\%C3\%A4r . -#g:Interview a :Genre ; -# skos:exactMatch saogf:Intervjuer . +g:Interview a :Genre ; + skos:exactMatch saogf:Intervjuer . -#g:Reportage a :Genre ; -# skos:exactMatch saogf:Reportage . +g:Reportage a :Genre ; + skos:exactMatch saogf:Reportage . #g:Survey a :Genre ; # skos:exactMatch saogf:Unders\%C3\%B6kningar ; @@ -323,25 +328,25 @@ g:Timetable a :Genre ; # skos:exactMatch saogf:Korrespondens . #g:Diary a :Genre ; -# skos:broader kbgf:Text ; +# skos:broader kbrda:Text ; # skos:exactMatch saogf:Dagb\%C3\%B6cker . #g:Ballad a :Genre ; # skos:closeMatch saogf:Visor . g:ShortStory a :Genre ; - skos:broader # kbgf:NonBookText , + skos:broader gf:TextPiece , g:Literature ; skos:exactMatch saogf:Noveller ; :singularLabel "Novell"@sv , "Short Story"@en . g:Offentligt_tryck a :Genre ; - skos:broader kbgf:Text ; + # skos:broader kbrda:Text ; (... could be images; but rarely *only* with image?) skos:exactMatch saogf:Offentligt%20tryck . g:ReferenceWork a :Genre ; - #skos:broader kbgf:Text ; + #skos:broader kbrda:Text ; skos:exactMatch saogf:Referensverk ; :inCollection div:informative-work ; rdfs:seeAlso ; @@ -349,7 +354,7 @@ g:ReferenceWork a :Genre ; "Reference Work"@en . g:Review a :Genre ; - #skos:broader kbgf:NonBookText ; + #skos:broader gf:TextPiece ; skos:exactMatch saogf:Recensioner ; :singularLabel "Recension"@sv , "Review"@en . diff --git a/source/genreforms/genreforms.ttl b/source/genreforms/genreforms.ttl index b31fafb5..be85d30d 100644 --- a/source/genreforms/genreforms.ttl +++ b/source/genreforms/genreforms.ttl @@ -10,18 +10,89 @@ prefix barngf: prefix kbrda: prefix div: -prefix kbgf: +prefix ctf: prefix gf: prefix g: -# It is a GenreForm if: -# - it's a combination of ContentForm and a Genre (it adds a topical/thematic nuance). -# - Applies to an *Expression* (per ContentForm) - -gf:Manuscript a :GenreForm . +# It is a GenreForm if it: +# - applies to an *Expression* (per ContentType/ContentForm); and +# - either: +# - incorporates a Genre (it adds a topical/thematic nuance), or +# - is an abstract workform shared by concrete GenreForm:s. + +gf:Book a :GenreForm ; + #skos:broader g:LinguisticWork ; + :inCollection div:workform . + +gf:WrittenBook a :GenreForm ; + :inCollection div:contentform ; + skos:broader kbrda:Text, gf:Book ; + skos:narrowMatch barngf:Kapitelb%C3%B6cker ; + :singularLabel "Written book"@en , + "Skriven bok"@sv ; + :altLabel "Bok"@sv, "Book"@en . + +gf:Audiobook a :GenreForm ; + :inCollection div:contentform ; + skos:broader ctf:Audio , + gf:Book ; + skos:exactMatch saogf:Ljudb%C3%B6cker ; + :singularLabel "Ljudbok"@sv , + "Audiobook"@en . + +gf:TextPiece a :GenreForm ; # gf:Document ?? + :inCollection div:contentform ; + skos:broader kbrda:Text ; + skos:prefLabel "Text piece"@en , + "Kortare text"@sv . # "Textdel"@sv, "Textenhet"@sv . + +gf:WorkWithImages a :GenreForm ; # ctf:IllustratedWork + :inCollection div:contentform ; + skos:broader ctf:StillImage ; + skos:closeMatch saogf:Bildverk . # saogf:Illustrerade%20verk + +gf:TextWithImages a :GenreForm ; + :inCollection div:contentform ; + skos:broader kbrda:Text , gf:WorkWithImages ; + rdfs:label "Text med bilder"@sv , + "Text With Images"@en . + +gf:WrittenBookWithImages a :GenreForm ; + :inCollection div:contentform ; + skos:broader gf:WrittenBook , gf:WorkWithImages ; + skos:scopeNote "Gör ingen skillnad mellan bilder som är integral del av verket (där nya bilder är ett nytt verk) och texter där bilderna är kompletterande (). Sådana skillnader kan anges som genre/form."@sv ; + skos:narrowMatch barngf:Bilderb%C3%B6cker ; + :singularLabel "Bok med bilder"@sv , + "Book with Images"@en . + +gf:Database a :GenreForm ; + :inCollection div:workform ; + skos:broader g:Integrating, kbrda:ComputerDataset ; + skos:exactMatch saogf:Databaser ; + skos:narrowMatch marc:UpdatingDatabase ; + :singularLabel "Databas"@sv , + "Database"@en . + +#gf:TactileBook a :GenreForm ; +# :inCollection div:contentform ; +# skos:broader gf:Book , +# ctf:Tactile ; +# skos:editorialNote "TODO: differentiate between \"filtbok\" och \"punktskriftsbok\"?"@en ; +# skos:broadMatch kbrda:TactileText ; +# skos:narrowMatch saogf:Punktskriftsb%C3%B6cker ; +# :singularLabel "Tactile Book"@en , +# "Taktil bok"@sv . + +#-- + +gf:Poster a :GenreForm ; + skos:broader ctf:StillImage ; + skos:exactMatch saogf:Affischer ; + :singularLabel "Affisch"@sv, "Poster"@en ; + :pluralLabel "Affischer"@sv . gf:Issue a :GenreForm ; - skos:broader kbgf:NonBookText ; + skos:broader gf:TextPiece ; :singularLabel "Tidskriftsnummer"@sv , "Periodical Issue"@en . @@ -44,29 +115,39 @@ gf:Issue a :GenreForm ; # "Newspaper Issue"@en . gf:Film a :GenreForm ; - skos:broader kbgf:MovingImage ; + skos:broader ctf:MovingImage ; skos:exactMatch saogf:Filmer ; :singularLabel "Film"@sv , "Film"@en . gf:Article a :GenreForm ; - skos:broader kbgf:NonBookText ; + skos:broader gf:TextPiece ; :singularLabel "Artikel"@sv , "Article"@en . gf:AudioProgram a :GenreForm ; - skos:broader kbgf:NonMusicAudio ; + skos:broader kbrda:Sounds ; rdfs:label "Ljudprogram"@sv , "Audio Program"@en . g:Radio a :GenreForm ; - skos:broader kbgf:Audio ; + skos:broader ctf:Audio ; skos:prefLabel "Radio"@sv, "Radio"@en . g:TV a :GenreForm ; - skos:broader kbgf:MovingImage ; + skos:broader ctf:MovingImage ; skos:prefLabel "TV"@sv, "TV"@en . +gf:PictureBook a :GenreForm ; + skos:exactMatch barngf:Bilderb%C3%B6cker ; + skos:broader gf:WrittenBookWithImages ; + :singularLabel "Bilderbok"@sv , + "Picture Book"@en . + +gf:ChapterBook a :GenreForm ; + skos:exactMatch barngf:Kapitelb%C3%B6cker ; + skos:broader gf:WrittenBookWithImages . + gf:BoardGame a :GenreForm ; skos:broader gf:InteractiveObject , g:PuzzleOrGame ; skos:exactMatch ; @@ -74,7 +155,7 @@ gf:BoardGame a :GenreForm ; "Boardgame"@en . gf:Brochure a :GenreForm ; - skos:broader kbgf:NonBookText ; + skos:broader gf:TextPiece ; skos:exactMatch ; rdfs:label "Broschyr"@sv , "Brochure"@en . @@ -95,81 +176,97 @@ g:ComicStory a :GenreForm ; "Comic Story"@en . gf:ComputerCode a :GenreForm ; - skos:broader kbgf:Software ; + skos:broader g:Software ; rdfs:label "Datorkod"@sv , "Computer Code"@en . -gf:ComputerProgram a :GenreForm ; - skos:exactMatch kbrda:ComputerProgram ; - skos:broader kbgf:Software ; - rdfs:label "Datorprogram"@sv , - "Computer Program"@en . - gf:ComputerGame a :GenreForm ; - skos:broader g:PuzzleOrGame, gf:ComputerProgram ; + skos:broader g:PuzzleOrGame, kbrda:ComputerProgram ; skos:exactMatch saogf:Datorspel ; rdfs:label "Datorspel"@sv , "Computer Game"@en . +gf:DesignDrawing a :GenreForm ; + skos:broader ctf:StillImage ; + skos:exactMatch tgm:Ritningar ; # sao:Ritningar + rdfs:label "Ritning"@sv , + "Design drawing"@en . + gf:Diagram a :GenreForm ; - skos:broader kbgf:StillImage ; + skos:broader ctf:StillImage ; skos:exactMatch saogf:Diagram ; rdfs:label "Diagram"@sv , "Diagram"@en . +gf:Drawing a :GenreForm ; + skos:broader ctf:StillImage, g:Manuscript ; + skos:exactMatch tgm:Teckningar ; + :singularLabel "Teckning"@sv , + "Drawing"@en . + gf:FormDocument a :GenreForm ; rdfs:seeAlso ; - skos:broader kbgf:NonBookText ; + skos:broader gf:TextPiece ; skos:exactMatch saogf:Blanketter ; rdfs:label "Blankett"@sv , "Form Document"@en . gf:Handwriting a :GenreForm ; - skos:broader gf:Manuscript , - kbgf:Text ; + skos:broader g:Manuscript , + kbrda:Text ; skos:exactMatch saogf:Handskrifter ; rdfs:label "Handskrift"@sv , "Handwriting"@en ; :pluralLabel "Handskrifter"@sv . gf:Illustration a :GenreForm ; - skos:broader kbgf:StillImage ; + skos:broader ctf:StillImage ; skos:exactMatch saogf:Illustrationer ; rdfs:label "Illustration"@sv , "Illustration"@en . gf:GraphicLiterature a :GenreForm ; - skos:broader kbgf:WorkWithImages , + skos:broader gf:WorkWithImages , g:Literature ; skos:broadMatch kbrda:Text , - kbrda:Image ; + kbrda:StillImage ; skos:exactMatch saogf:Tecknade%20serier ; :singularLabel "Tecknad serie"@sv , "Graphic Literature"@en . gf:GraphicNovel a :GenreForm ; skos:broader g:Novel , - kbgf:BookWithImages , + gf:WrittenBookWithImages , gf:GraphicLiterature ; skos:exactMatch saogf:Serieromaner ; :singularLabel "Serieroman"@sv , "Graphic Novel"@en . gf:InteractiveObject a :GenreForm ; - skos:broader kbgf:Object ; + skos:broader ctf:Object ; rdfs:label "Interaktivt objekt"@sv , "InteractiveObject"@en . +gf:Lexicon a :GenreForm ; + skos:broader g:ReferenceWork, gf:Book ; + skos:exactMatch saogf:Lexikon ; + :singularLabel "Lexikon"@sv , + "Lexicon"@en . + gf:Manual a :GenreForm ; - skos:broader kbgf:Text , + skos:broader kbrda:Text , g:TeachingMaterial ; skos:closeMatch saogf:Handb\%C3\%B6cker\%2C\%20manualer\%20etc ; rdfs:seeAlso ; rdfs:label "Manual"@sv , "Manual"@en . +gf:Note a :GenreForm ; + skos:broader gf:TextPiece ; + skos:exactMatch saogf:Anteckningar . + gf:Screenplay a :GenreForm ; - skos:broader kbgf:Text ; + skos:broader kbrda:Text ; skos:exactMatch saogf:Filmmanus ; :singularLabel "Filmmanus"@sv , "Screenplay"@en . @@ -177,24 +274,24 @@ gf:Screenplay a :GenreForm ; gf:MechanicalBook a :GenreForm ; skos:exactMatch saogf:Mekaniska\%20b\%C3\%B6cker ; skos:broader gf:InteractiveObject , - kbgf:WrittenBook ; + gf:WrittenBook ; rdfs:label "Mekanisk bok"@sv , "Mechanical Book"@en . gf:MusicRadioProgram a :GenreForm ; skos:broader gf:AudioProgram , - gf:PerformedMusic ; + kbrda:PerformedMusic ; :singularLabel "Musikradioprogram"@sv , "Music Radio Program"@en . gf:MusicRecording a :GenreForm ; - skos:broader kbgf:PerformedMusic ; + skos:broader kbrda:PerformedMusic ; skos:exactMatch saogf:Musikinspelningar ; :singularLabel "Musikinspelning"@sv , "Music Recording"@en . gf:SoundEffectBook a :GenreForm ; - skos:broader gf:MechanicalBook, kbgf:Audio ; + skos:broader gf:MechanicalBook, ctf:Audio ; skos:exactMatch saogf:B\%C3\%B6cker\%20med\%20ljudeffekter ; :singularLabel "Bok med ljudeffekt"@sv , "Sound-effect Book"@en . @@ -206,43 +303,32 @@ gf:Pamphlet a :GenreForm ; :singularLabel "Pamflett"@sv , "Pamphlet"@en . -gf:PerformedMusic a :GenreForm ; - skos:broader g:Music, kbgf:Audio ; - skos:exactMatch kbrda:PerformedMusic ; - skos:broadMatch kbgf:Audio . - gf:Podcast a :GenreForm ; - skos:broader gf:AudioProgram ; + skos:broader gf:AudioProgram, kbrda:SpokenWord ; :singularLabel "Podcast"@sv , "Podcast"@en . -gf:PopupBook a :GenreForm ; - skos:broader kbgf:BookWithImages ; - skos:exactMatch saogf:Pop-up-b\%C3\%B6cker ; - :singularLabel "Pop-up-bok"@sv , - "Pop-up Book"@en . - gf:Photograph a :GenreForm ; - skos:broader kbgf:StillImage ; + skos:broader ctf:StillImage ; skos:exactMatch saogf:Fotografier, tgm:Fotografier ; :singularLabel "Fotografi"@sv , "Photograph"@en ; :pluralLabel "Fotografier"@sv . gf:Painting a :GenreForm ; - skos:broader kbgf:StillImage ; + skos:broader ctf:StillImage ; skos:exactMatch ; rdfs:label "Målning"@sv , "Painting"@en . gf:Photobook a :GenreForm ; - skos:broader kbgf:BookWithImages , - kbgf:Book ; + skos:broader gf:WrittenBookWithImages , + gf:Book ; skos:exactMatch saogf:Fotob\%C3\%B6cker ; rdfs:label "Fotobok"@sv , "Photobook"@en . -g:Photoseries a :GenreForm ; +gf:Photoseries a :GenreForm ; skos:broader gf:GraphicLiterature , g:CollectingResource ; skos:exactMatch saogf:Fotoserier ; @@ -250,21 +336,27 @@ g:Photoseries a :GenreForm ; "Photoseries"@en . gf:PictureDictionary a :GenreForm ; - skos:broader kbgf:BookWithImages , g:Lexicon ; + skos:broader gf:WrittenBookWithImages , g:Lexicon ; skos:exactMatch saogf:Bildlexikon ; rdfs:label "Bildlexikon"@sv , "Picture Dictionary"@en . gf:Postcard a :GenreForm ; - skos:broader kbgf:StillImage ; + skos:broader ctf:StillImage ; skos:exactMatch saogf:Vykort ; rdfs:label "Vykort"@sv , "Postcard"@en . gf:PostcardBook a :GenreForm ; - skos:broader kbgf:Book , gf:Postcard ; # not really *is*; works if category is "sort-of-is"... + skos:broader gf:Book , gf:Postcard ; # not really *is*; works if category is "sort-of-is"... skos:exactMatch . +gf:PublicationProgramme a :GenreForm ; + skos:broader gf:TextPiece ; + skos:exactMatch saogf:Program\%20\%28publikationer\%29 ; + :singularLabel "Programblad"@sv , + "Publication Programme"@en . + gf:Puzzle a :GenreForm ; skos:broader gf:InteractiveObject, g:PuzzleOrGame ; skos:exactMatch saogf:Pussel ; @@ -277,27 +369,33 @@ gf:RadioProgram a :GenreForm ; :singularLabel "Radioprogram"@sv , "Radio Program"@en . +gf:RecordOrDeed a :GenreForm ; + skos:broader gf:TextPiece ; + skos:exactMatch saogf:Handlingar%20%28dokument%29 ; + :singularLabel "Handling (dokument)"@sv , + "Record (Document)"@en . + gf:Sculpture a :GenreForm ; - skos:broader kbgf:Object ; + skos:broader ctf:Object ; rdfs:label "Skulptur"@sv , "Sculpture"@en . gf:SpokenBook a :GenreForm ; - skos:broader kbgf:Audiobook , - kbgf:SpokenWord ; + skos:broader gf:Audiobook , + kbrda:SpokenWord ; skos:exactMatch saogf:Talb\%C3\%B6cker ; rdfs:label "Talbok"@sv , "Spoken Book"@en . gf:SpokenPaper a :GenreForm ; skos:broader g:Periodical , - kbgf:SpokenWord ; + kbrda:SpokenWord ; skos:exactMatch saogf:Taltidningar ; rdfs:label "Taltidning"@sv , "Spoken Paper"@en . gf:TVProgram a :GenreForm ; - skos:broader kbgf:MovingImage, g:TV ; + skos:broader ctf:MovingImage, g:TV ; skos:exactMatch saogf:Tv-program ; rdfs:label "Tv-program"@sv , "TV-Program"@en . @@ -321,15 +419,15 @@ gf:Trailer a :GenreForm ; "Trailer"@en . gf:Website a :GenreForm ; - skos:broader kbgf:OnlineResource , - kbgf:Integrating ; + skos:broader ctf:OnlineResource , + ctf:Integrating ; skos:exactMatch saogf:Webbplatser ; rdfs:label "Webbplats"@sv , "Website"@en . g:Blog a :GenreForm ; skos:broader gf:Website , - kbgf:NonBookText ; + gf:TextPiece ; skos:exactMatch saogf:Bloggar ; :inCollection div:informative-work ; :singularLabel "Blogg"@sv , @@ -337,45 +435,47 @@ g:Blog a :GenreForm ; gf:Yearbook a :GenreForm ; skos:exactMatch saogf:%C3%85rsb%C3%B6cker ; - skos:broader kbgf:SerialPublication , - kbgf:Book . + skos:broader ctf:SerialPublication , + gf:Book . gf:PhraseBook a :GenreForm ; - skos:broader kbgf:Book ; + skos:broader gf:Book ; skos:exactMatch saogf:Parl%C3%B6rer . gf:Luck%C3%B6ppningskalendrar a :GenreForm ; - skos:broader kbgf:Object ; + skos:broader ctf:Object ; skos:exactMatch saogf:Luck%C3%B6ppningskalendrar ; :singularLabel "Lucköppningskalender"@sv . gf:MiniatureBook a :GenreForm ; - skos:broader kbgf:Book ; + skos:broader gf:Book ; skos:exactMatch saogf:Miniatyrb%C3%B6cker . gf:PuzzleBook a :GenreForm ; - skos:broader kbgf:Book, g:PuzzleOrGame ; + skos:broader gf:Book, g:PuzzleOrGame ; skos:exactMatch saogf:Pysselb%C3%B6cker . gf:M%C3%A5larböcker a :GenreForm ; - skos:broader kbgf:BookWithImages ; + skos:broader gf:WrittenBookWithImages ; skos:exactMatch saogf:M%C3%A5larb%C3%B6cker ; :singularLabel "Målarbok"@sv . gf:GuideBook a :GenreForm ; - skos:broader kbgf:WrittenBook ; + skos:broader gf:WrittenBook ; skos:exactMatch saogf:Guideb%C3%B6cker . gf:PopupBook a :GenreForm ; - skos:broader kbgf:BookWithImages, gf:MechanicalBook ; - skos:exactMatch saogf:Pop-up-b%C3%B6cker . + skos:broader gf:WrittenBookWithImages, gf:MechanicalBook ; + skos:exactMatch saogf:Pop-up-b%C3%B6cker ; + :singularLabel "Pop-up-bok"@sv , + "Pop-up Book"@en . gf:Cookbook a :GenreForm ; - skos:broader kbgf:WrittenBook ; + skos:broader gf:WrittenBook ; skos:exactMatch saogf:Kokb%C3%B6cker . gf:DiningMenu a :GenreForm ; - skos:broader kbgf:NonBookText ; + skos:broader gf:TextPiece ; skos:exactMatch saogf:Matsedlar . gf:DocumentaryComic a :GenreForm ; @@ -383,72 +483,72 @@ gf:DocumentaryComic a :GenreForm ; skos:broader gf:Comic ; skos:exactMatch saogf:Dokument%C3%A4ra%20serier . -kbgf:Map a :GenreForm ; - skos:broader g:Cartography, kbgf:StillImage ; +gf:Map a :GenreForm ; + skos:broader kbrda:CartographicImage ; skos:exactMatch marc:MapATwoDimensionalMap, tgm:Kartor ; :singularLabel "Single map"@en , "Enskild karta"@sv . -kbgf:Globe a :GenreForm ; - skos:broader kbgf:CartographicObject ; +gf:Globe a :GenreForm ; + skos:broader kbrda:CartographicThreeDimensionalForm ; skos:exactMatch tgm:Glober . gf:Atlas a :GenreForm ; - skos:broader g:Cartography, kbgf:Book ; + skos:broader kbrda:CartographicImage, gf:WrittenBook ; skos:exactMatch marc:Atlas, tgm:Atlaser . # TODO: Define in saogf? And move these to marcmatches.ttl (to be remapped). gf:TerrestrialGlobe a :GenreForm ; - skos:broader kbgf:Globe ; + skos:broader gf:Globe ; skos:closeMatch marc:TerrestrialGlobe . gf:PlanetaryOrLunarGlobe a :GenreForm ; - skos:broader kbgf:Globe ; + skos:broader gf:Globe ; skos:closeMatch marc:PlanetaryOrLunarGlobe . gf:CelestialGlobe a :GenreForm ; - skos:broader kbgf:Globe ; + skos:broader gf:Globe ; skos:closeMatch marc:CelestialGlobe . gf:EarthMoonGlobe a :GenreForm ; - skos:broader kbgf:Globe ; + skos:broader gf:Globe ; skos:closeMatch marc:EarthMoonGlobe . gf:Model a :GenreForm ; - skos:broader kbgf:CartographicObject ; + skos:broader kbrda:CartographicThreeDimensionalForm ; skos:closeMatch marc:Model . gf:Section a :GenreForm ; - skos:broader kbgf:Map ; + skos:broader gf:Map ; skos:closeMatch marc:Section . gf:ProfileMap a :GenreForm ; - skos:broader kbgf:Map ; + skos:broader gf:Map ; skos:closeMatch marc:Profile . gf:MapATwoDimensionalMap a :GenreForm ; - skos:broader kbgf:Map ; + skos:broader gf:Map ; skos:closeMatch marc:MapATwoDimensionalMap . gf:MapDiagram a :GenreForm ; - skos:broader kbgf:Map ; + skos:broader gf:Map, gf:Diagram ; skos:closeMatch marc:Diagram . gf:RemoteSensingImage a :GenreForm ; - skos:broader kbgf:Map ; + skos:broader gf:Map ; skos:closeMatch marc:RemoteSensingImage . #--- gf:Booklet a :GenreForm ; # gf:MediumText# TODO: CarrierGenreForm? - skos:broader kbgf:NonBookText ; + skos:broader gf:TextPiece ; rdfs:label "Texthäfte"@sv , "Booklet"@en . gf:Textleaf a :GenreForm ; # gf:SmallText # TODO: CarrierGenreForm? - skos:broader kbgf:NonBookText ; + skos:broader gf:TextPiece ; rdfs:label "Textblad"@sv , "Text leaf"@en . -#kbgf:OnlineResource a :CarrierForm . # TODO: move to carrierform... +#gf:OnlineResource a :CarrierForm . # TODO: move to carrierform... ## TODO: Move these instance MARC-types and -genreForms to work (and drop on marcframe revert?) diff --git a/source/genreforms/rdacategories.ttl b/source/genreforms/rdacategories.ttl index df3b53ee..ff417713 100644 --- a/source/genreforms/rdacategories.ttl +++ b/source/genreforms/rdacategories.ttl @@ -1,67 +1,87 @@ +prefix owl: prefix skos: +prefix : + prefix kbrda: -prefix kbgf: +prefix saogf: +prefix ctf: prefix g: -prefix : kbrda:CartographicDataset a :ContentType ; - skos:broadMatch kbgf:Dataset , kbgf:Cartography . + skos:broadMatch ctf:Dataset , g:Cartography . + kbrda:CartographicImage a :ContentType ; - skos:broadMatch kbrda:StillImage , kbgf:Cartography . + skos:broadMatch kbrda:StillImage , g:Cartography . + kbrda:CartographicMovingImage a :ContentType ; - skos:broadMatch kbgf:Cartography , kbgf:MovingImage . + skos:broadMatch g:Cartography , ctf:MovingImage . + kbrda:CartographicTactileImage a :ContentType ; - skos:broadMatch kbgf:Tactile , kbgf:Cartography , kbrda:StillImage . + skos:broadMatch ctf:Tactile , g:Cartography , kbrda:StillImage . + kbrda:CartographicTactileThreeDimensionalForm a :ContentType ; - skos:broadMatch kbrda:ThreeDimensionalForm , kbgf:Cartography , kbgf:Tactile . -kbrda:CartographicThreeDimensionalForm a :ContentType ; - skos:broadMatch kbgf:Cartography, kbrda:ThreeDimensionalForm . + skos:broadMatch kbrda:CartographicThreeDimensionalForm , ctf:Tactile . -kbrda:TactileImage a :ContentType ; - skos:broadMatch kbgf:Tactile , kbrda:StillImage . -kbrda:TactileNotatedMovement a :ContentType ; - skos:broadMatch kbgf:Tactile , kbrda:NotatedMovement . -kbrda:TactileNotatedMusic a :ContentType ; - skos:broadMatch kbgf:Tactile , kbrda:NotatedMusic . -kbrda:TactileText a :ContentType ; - skos:broadMatch kbgf:Tactile , kbrda:Text . -kbrda:TactileThreeDimensionalForm a :ContentType ; - skos:broadMatch kbgf:Tactile , kbrda:ThreeDimensionalForm . +kbrda:CartographicThreeDimensionalForm a :ContentType ; + owl:sameAs ctf:CartographicObject ; + skos:broadMatch g:Cartography, kbrda:ThreeDimensionalForm ; # ctf:Object + skos:altLabel "Kartografiskt objekt"@sv , + "Cartographic Object"@en . kbrda:ComputerDataset a :ContentType ; - skos:broadMatch kbgf:Multimedia, kbgf:Dataset . + skos:broadMatch g:Multimedia, ctf:Dataset . + kbrda:ComputerProgram a :ContentType ; - skos:broadMatch kbgf:Multimedia . + skos:broadMatch g:Software . kbrda:NotatedMovement a :ContentType ; - skos:closeMatch kbgf:NotatedMovement ; - skos:broadMatch kbgf:Movement . + skos:closeMatch ctf:NotatedMovement ; + skos:broadMatch ctf:Movement . kbrda:NotatedMusic a :ContentType ; skos:broadMatch g:Music ; - skos:closeMatch kbgf:NotatedMusic . + skos:closeMatch ctf:NotatedMusic . kbrda:PerformedMovement a :ContentType ; - skos:broadMatch kbgf:Movement . + skos:broadMatch ctf:Movement . + kbrda:PerformedMusic a :ContentType ; - skos:broadMatch kbgf:Audio, g:Music . + skos:broadMatch ctf:Audio, g:Music . kbrda:Sounds a :ContentType ; - skos:broadMatch kbgf:Audio . + skos:broadMatch ctf:Audio . kbrda:SpokenWord a :ContentType ; - skos:broadMatch kbgf:Audio . + skos:broadMatch ctf:Audio , + g:LinguisticWork . kbrda:StillImage a :ContentType ; - skos:closeMatch kbgf:StillImage . + skos:closeMatch ctf:StillImage . kbrda:Text a :ContentType ; - skos:closeMatch kbgf:Text . + skos:broadMatch g:LinguisticWork . kbrda:ThreeDimensionalForm a :ContentType ; - skos:closeMatch kbgf:Object . + skos:closeMatch ctf:Object . + kbrda:ThreeDimensionalMovingImage a :ContentType ; - skos:broadMatch kbgf:MovingImage . + skos:broadMatch ctf:MovingImage . kbrda:TwoDimensionalMovingImage a :ContentType ; - skos:broadMatch kbgf:MovingImage . + skos:broadMatch ctf:MovingImage . + +kbrda:TactileImage a :ContentType ; + skos:broadMatch ctf:Tactile , kbrda:StillImage . + +kbrda:TactileNotatedMovement a :ContentType ; + skos:broadMatch ctf:Tactile , kbrda:NotatedMovement . + +kbrda:TactileNotatedMusic a :ContentType ; + skos:closeMatch saogf:Musikalier ; + skos:broadMatch ctf:Tactile , kbrda:NotatedMusic . + +kbrda:TactileText a :ContentType ; + skos:broadMatch ctf:Tactile , kbrda:Text . + +kbrda:TactileThreeDimensionalForm a :ContentType ; + skos:broadMatch ctf:Tactile , kbrda:ThreeDimensionalForm . From 3a9ac94d40f815a22630b64f23890140fd00eca0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Tue, 22 Apr 2025 14:17:48 +0200 Subject: [PATCH 52/69] Add note about possibly superfluous mappings --- source/vocab/newtypes/rdacontentpatterns.ttl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/vocab/newtypes/rdacontentpatterns.ttl b/source/vocab/newtypes/rdacontentpatterns.ttl index 0e78a0f0..d2225586 100644 --- a/source/vocab/newtypes/rdacontentpatterns.ttl +++ b/source/vocab/newtypes/rdacontentpatterns.ttl @@ -15,6 +15,8 @@ prefix kbrda: # TODO: Define restriction classes as ptg:abstract true? +# TODO: Remove? These are superfluous if :contentType relation to a :ContentType is entailed by :genreForm with such as a :broaderTransitive. + :TextContent a owl:Restriction ; owl:onProperty :contentType ; owl:hasValue kbrda:Text . From f63b47825c6a294427a6ca81b48957a4ad5527b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Tue, 29 Apr 2025 10:57:28 +0200 Subject: [PATCH 53/69] Add more genre/form mappings (to marcgt and repr) --- source/genreforms/contentgenres.ttl | 6 ++++++ source/genreforms/genreforms.ttl | 20 ++++++++++++++++++-- source/genreforms/rdacategories.ttl | 5 ++++- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/source/genreforms/contentgenres.ttl b/source/genreforms/contentgenres.ttl index 873c1526..bee043aa 100644 --- a/source/genreforms/contentgenres.ttl +++ b/source/genreforms/contentgenres.ttl @@ -8,6 +8,7 @@ prefix div: prefix saogf: prefix kbrda: +prefix marcgt: prefix g: prefix gf: @@ -134,6 +135,10 @@ g:Encyclopedia a :Genre ; :singularLabel "Encyklopedia"@sv , "Encyclopedia"@en . +g:FindingAid a :GenreForm ; + :prefLabel "finding aid"@en ; + skos:closeMatch marcgt:fin . + g:Juridiskt%20material a :Genre ; skos:exactMatch saogf:Juridiskt%20material . @@ -172,6 +177,7 @@ g:SerialPublication a :Genre ; g:Journal a :Genre ; skos:broader g:Periodical ; + skos:closeMatch marcgt:jou ; :singularLabel "Vetenskaplig tidskrift"@sv , "Journal"@en . diff --git a/source/genreforms/genreforms.ttl b/source/genreforms/genreforms.ttl index be85d30d..2f6ff88c 100644 --- a/source/genreforms/genreforms.ttl +++ b/source/genreforms/genreforms.ttl @@ -8,6 +8,7 @@ prefix saogf: prefix tgm: prefix barngf: prefix kbrda: +prefix marcgt: prefix div: prefix ctf: @@ -21,6 +22,7 @@ prefix g: # - is an abstract workform shared by concrete GenreForm:s. gf:Book a :GenreForm ; + skos:closeMatch marcgt:boo ; #skos:broader g:LinguisticWork ; :inCollection div:workform . @@ -93,6 +95,8 @@ gf:Poster a :GenreForm ; gf:Issue a :GenreForm ; skos:broader gf:TextPiece ; + skos:exactMatch ; + skos:closeMatch marcgt:iss ; :singularLabel "Tidskriftsnummer"@sv , "Periodical Issue"@en . @@ -116,6 +120,7 @@ gf:Issue a :GenreForm ; gf:Film a :GenreForm ; skos:broader ctf:MovingImage ; + skos:closeMatch marcgt:art ; skos:exactMatch saogf:Filmer ; :singularLabel "Film"@sv , "Film"@en . @@ -265,8 +270,13 @@ gf:Note a :GenreForm ; skos:broader gf:TextPiece ; skos:exactMatch saogf:Anteckningar . -gf:Screenplay a :GenreForm ; +gf:Script a :GenreForm ; skos:broader kbrda:Text ; + :prefLabel "script"@en ; + skos:closeMatch marcgt:scr . + +gf:Screenplay a :GenreForm ; + skos:broader gf:Script ; skos:exactMatch saogf:Filmmanus ; :singularLabel "Filmmanus"@sv , "Screenplay"@en . @@ -485,6 +495,7 @@ gf:DocumentaryComic a :GenreForm ; gf:Map a :GenreForm ; skos:broader kbrda:CartographicImage ; + skos:closeMatch marcgt:map ; skos:exactMatch marc:MapATwoDimensionalMap, tgm:Kartor ; :singularLabel "Single map"@en , "Enskild karta"@sv . @@ -515,7 +526,11 @@ gf:EarthMoonGlobe a :GenreForm ; skos:closeMatch marc:EarthMoonGlobe . gf:Model a :GenreForm ; - skos:broader kbrda:CartographicThreeDimensionalForm ; + skos:broader ctf:Object ; + skos:broadMatch marcgt:mod . + +gf:MapModel a :GenreForm ; + skos:broader gf:Model , kbrda:CartographicThreeDimensionalForm ; skos:closeMatch marc:Model . gf:Section a :GenreForm ; @@ -536,6 +551,7 @@ gf:MapDiagram a :GenreForm ; gf:RemoteSensingImage a :GenreForm ; skos:broader gf:Map ; + skos:closeMatch marcgt:rem ; skos:closeMatch marc:RemoteSensingImage . #--- diff --git a/source/genreforms/rdacategories.ttl b/source/genreforms/rdacategories.ttl index ff417713..86714619 100644 --- a/source/genreforms/rdacategories.ttl +++ b/source/genreforms/rdacategories.ttl @@ -4,6 +4,8 @@ prefix : prefix kbrda: prefix saogf: +prefix marcgt: + prefix ctf: prefix g: @@ -49,7 +51,8 @@ kbrda:PerformedMusic a :ContentType ; skos:broadMatch ctf:Audio, g:Music . kbrda:Sounds a :ContentType ; - skos:broadMatch ctf:Audio . + skos:broadMatch ctf:Audio ; + skos:closeMatch marcgt:nos . kbrda:SpokenWord a :ContentType ; skos:broadMatch ctf:Audio , From df47e0510c2e581d32106505798ea6ad5092e49d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Mon, 5 May 2025 16:00:50 +0200 Subject: [PATCH 54/69] Move genreforms to categories and use ktg base URI --- .../contentforms.ttl | 27 ++-- .../contentgenres.ttl | 27 ++-- .../{genreforms => categories}/genreforms.ttl | 119 +++++++++--------- .../materialformat.ttl | 2 +- .../rdacategories.ttl | 59 +++++---- 5 files changed, 116 insertions(+), 118 deletions(-) rename source/{genreforms => categories}/contentforms.ttl (62%) rename source/{genreforms => categories}/contentgenres.ttl (93%) rename source/{genreforms => categories}/genreforms.ttl (89%) rename source/{genreforms => categories}/materialformat.ttl (98%) rename source/{genreforms => categories}/rdacategories.ttl (52%) diff --git a/source/genreforms/contentforms.ttl b/source/categories/contentforms.ttl similarity index 62% rename from source/genreforms/contentforms.ttl rename to source/categories/contentforms.ttl index 8461d0ee..db41189b 100644 --- a/source/genreforms/contentforms.ttl +++ b/source/categories/contentforms.ttl @@ -5,38 +5,37 @@ prefix skos: prefix saogf: prefix kbrda: prefix div: -prefix ctf: +prefix ktg: -# Base Forms -# Applies to an *Expression* +# Base Category or ContentType applying to an *Expression*. # TODO: -# - Replace ContentForm with ContentType and merge into ? +# - Replace Category with ContentType and merge into ? # - Some RDA terms have broader Genre terms! # - Some are "SensoryForm" super-ContentType:s... # - Is there a sometimes necessary distinction between "contains" and "is"? If so, we reasonably should say that using a concrete GenreForm... -ctf:Visual a :ContentForm ; +ktg:Visual a :Category ; :inCollection div:sensoryform . -ctf:Audio a :ContentForm ; +ktg:Audio a :Category ; :inCollection div:sensoryform . -ctf:Tactile a :ContentForm ; +ktg:Tactile a :Category ; :inCollection div:sensoryform ; skos:closeMatch saogf:Taktila%20verk ; skos:prefLabel "Taktil"@sv . -ctf:MovingImage a :ContentForm ; - skos:broader ctf:Visual . +ktg:MovingImage a :Category ; + skos:broader ktg:Visual . -ctf:Dataset a :ContentForm . +ktg:Dataset a :Category . -ctf:Object a :ContentForm . +ktg:Object a :Category . -ctf:StillImage a :ContentForm ; - skos:broader ctf:Visual ; +ktg:StillImage a :Category ; + skos:broader ktg:Visual ; skos:closeMatch saogf:Bilder . -ctf:Movement a :ContentForm ; +ktg:Movement a :Category ; skos:prefLabel "Rörelser"@sv . diff --git a/source/genreforms/contentgenres.ttl b/source/categories/contentgenres.ttl similarity index 93% rename from source/genreforms/contentgenres.ttl rename to source/categories/contentgenres.ttl index bee043aa..3ce6bdf6 100644 --- a/source/genreforms/contentgenres.ttl +++ b/source/categories/contentgenres.ttl @@ -10,22 +10,21 @@ prefix saogf: prefix kbrda: prefix marcgt: -prefix g: -prefix gf: -prefix ctf: +prefix g: +prefix gf: +prefix ktg: # It is a Genre if: -# - it is independent of any broader ContentForm (it is "topical", "thematic", "style/method", and/or "purpose"). +# - it is independent of any expression category (it is "topical", "thematic", "style/method", and/or "purpose"). -# TODO: The plan to add these facts to SAOGF and *remove* g: ... +# TODO: The plan is to add matching SAOGF terms for *all* in this file; and possibly remove these indirect terms ... +# To find missing: +# - select ?gf { ?x ?rel ?gf filter( strstarts(str(?gf), str(saogf:)) || strstarts(str(?gf), str(tgm:)) ) } # TODO: There are some "too concrete" GenreForm candidates left: -# - construct { ?x skos:broader ?y } { ?x skos:broader|skos:broadMatch ?y . filter(strstarts(str(?y), str(gf:))) } - -# TODO: Do we want to *suggest* a :ContentForm (see commented kbgf)? (Using skos:relatedMatch?) +# - construct { ?x skos:broader ?y } { ?x skos:broader|skos:broadMatch ?y . filter exists { ?x a :Genre . ?y a :GenreForm } } -# To find missing: -# - select ?gf { ?x ?rel ?gf filter( strstarts(str(?gf), str(saogf:)) || strstarts(str(?gf), str(tgm:)) ) } +# TODO: For some, do we want to *suggest* an expression category (see commented kbgf)? (Using skos:relatedMatch?) g:Fiction a :Genre ; skos:narrowMatch marc:Fiction ; # 84678 # (SSB) @@ -104,7 +103,7 @@ g:MonographicSeries a :Genre ; g:CollectedWork a :Genre ; skos:broader g:CollectingResource ; - # TODO: CollectedPart vs. CollectingWork! Cf. bibo:CollectedDocument, bibo:MultiVolumeBook, ctf:MultipartBook + # TODO: CollectedPart vs. CollectingWork! Cf. bibo:CollectedDocument, bibo:MultiVolumeBook, ktg:MultipartBook skos:exactMatch saogf:Samlingsverk ; :singularLabel "Samlingsverk"@sv , "Collected Work"@en . @@ -151,7 +150,7 @@ g:TeachingMaterial a :Genre ; :altLabel "Läromedel"@sv . g:HandSignedCommunication a :Genre ; - #skos:broadMatch ctf:Visual, kbgf:Text ; + #skos:broadMatch ktg:Visual, kbgf:Text ; skos:exactMatch saogf:TAKK ; :singularLabel "TAKK"@sv , "Hand-signed Communication"@en . @@ -232,7 +231,7 @@ g:Statistics a :Genre ; g:Tables a :Genre ; skos:broader g:ReferenceWork ; skos:exactMatch saogf:Tabeller ; - skos:related ctf:Dataset ; + skos:related ktg:Dataset ; :singularLabel "Tabell"@sv , "Tables"@en . @@ -259,7 +258,7 @@ g:Timetable a :Genre ; # skos:exactMatch saogf:Juridiskt\%20material . #g:Leporello a :Genre ; -# skos:broader ctf:NonBookTextWithImages ; +# skos:broader ktg:NonBookTextWithImages ; # skos:exactMatch saogf:Leporello . g:Patent a :Genre ; diff --git a/source/genreforms/genreforms.ttl b/source/categories/genreforms.ttl similarity index 89% rename from source/genreforms/genreforms.ttl rename to source/categories/genreforms.ttl index 2f6ff88c..84100994 100644 --- a/source/genreforms/genreforms.ttl +++ b/source/categories/genreforms.ttl @@ -11,9 +11,9 @@ prefix kbrda: prefix marcgt: prefix div: -prefix ctf: -prefix gf: -prefix g: +prefix ktg: +prefix gf: +prefix g: # It is a GenreForm if it: # - applies to an *Expression* (per ContentType/ContentForm); and @@ -36,7 +36,7 @@ gf:WrittenBook a :GenreForm ; gf:Audiobook a :GenreForm ; :inCollection div:contentform ; - skos:broader ctf:Audio , + skos:broader ktg:Audio , gf:Book ; skos:exactMatch saogf:Ljudb%C3%B6cker ; :singularLabel "Ljudbok"@sv , @@ -48,9 +48,9 @@ gf:TextPiece a :GenreForm ; # gf:Document ?? skos:prefLabel "Text piece"@en , "Kortare text"@sv . # "Textdel"@sv, "Textenhet"@sv . -gf:WorkWithImages a :GenreForm ; # ctf:IllustratedWork +gf:WorkWithImages a :GenreForm ; # ktg:IllustratedWork :inCollection div:contentform ; - skos:broader ctf:StillImage ; + skos:broader ktg:StillImage ; skos:closeMatch saogf:Bildverk . # saogf:Illustrerade%20verk gf:TextWithImages a :GenreForm ; @@ -78,7 +78,7 @@ gf:Database a :GenreForm ; #gf:TactileBook a :GenreForm ; # :inCollection div:contentform ; # skos:broader gf:Book , -# ctf:Tactile ; +# ktg:Tactile ; # skos:editorialNote "TODO: differentiate between \"filtbok\" och \"punktskriftsbok\"?"@en ; # skos:broadMatch kbrda:TactileText ; # skos:narrowMatch saogf:Punktskriftsb%C3%B6cker ; @@ -88,7 +88,7 @@ gf:Database a :GenreForm ; #-- gf:Poster a :GenreForm ; - skos:broader ctf:StillImage ; + skos:broader ktg:StillImage ; skos:exactMatch saogf:Affischer ; :singularLabel "Affisch"@sv, "Poster"@en ; :pluralLabel "Affischer"@sv . @@ -119,7 +119,7 @@ gf:Issue a :GenreForm ; # "Newspaper Issue"@en . gf:Film a :GenreForm ; - skos:broader ctf:MovingImage ; + skos:broader ktg:MovingImage ; skos:closeMatch marcgt:art ; skos:exactMatch saogf:Filmer ; :singularLabel "Film"@sv , @@ -136,11 +136,11 @@ gf:AudioProgram a :GenreForm ; "Audio Program"@en . g:Radio a :GenreForm ; - skos:broader ctf:Audio ; + skos:broader ktg:Audio ; skos:prefLabel "Radio"@sv, "Radio"@en . g:TV a :GenreForm ; - skos:broader ctf:MovingImage ; + skos:broader ktg:MovingImage ; skos:prefLabel "TV"@sv, "TV"@en . gf:PictureBook a :GenreForm ; @@ -192,19 +192,19 @@ gf:ComputerGame a :GenreForm ; "Computer Game"@en . gf:DesignDrawing a :GenreForm ; - skos:broader ctf:StillImage ; + skos:broader ktg:StillImage ; skos:exactMatch tgm:Ritningar ; # sao:Ritningar rdfs:label "Ritning"@sv , "Design drawing"@en . gf:Diagram a :GenreForm ; - skos:broader ctf:StillImage ; + skos:broader ktg:StillImage ; skos:exactMatch saogf:Diagram ; rdfs:label "Diagram"@sv , "Diagram"@en . gf:Drawing a :GenreForm ; - skos:broader ctf:StillImage, g:Manuscript ; + skos:broader ktg:StillImage, g:Manuscript ; skos:exactMatch tgm:Teckningar ; :singularLabel "Teckning"@sv , "Drawing"@en . @@ -225,7 +225,7 @@ gf:Handwriting a :GenreForm ; :pluralLabel "Handskrifter"@sv . gf:Illustration a :GenreForm ; - skos:broader ctf:StillImage ; + skos:broader ktg:StillImage ; skos:exactMatch saogf:Illustrationer ; rdfs:label "Illustration"@sv , "Illustration"@en . @@ -248,7 +248,7 @@ gf:GraphicNovel a :GenreForm ; "Graphic Novel"@en . gf:InteractiveObject a :GenreForm ; - skos:broader ctf:Object ; + skos:broader ktg:Object ; rdfs:label "Interaktivt objekt"@sv , "InteractiveObject"@en . @@ -301,7 +301,7 @@ gf:MusicRecording a :GenreForm ; "Music Recording"@en . gf:SoundEffectBook a :GenreForm ; - skos:broader gf:MechanicalBook, ctf:Audio ; + skos:broader gf:MechanicalBook, ktg:Audio ; skos:exactMatch saogf:B\%C3\%B6cker\%20med\%20ljudeffekter ; :singularLabel "Bok med ljudeffekt"@sv , "Sound-effect Book"@en . @@ -319,14 +319,14 @@ gf:Podcast a :GenreForm ; "Podcast"@en . gf:Photograph a :GenreForm ; - skos:broader ctf:StillImage ; + skos:broader ktg:StillImage ; skos:exactMatch saogf:Fotografier, tgm:Fotografier ; :singularLabel "Fotografi"@sv , "Photograph"@en ; :pluralLabel "Fotografier"@sv . gf:Painting a :GenreForm ; - skos:broader ctf:StillImage ; + skos:broader ktg:StillImage ; skos:exactMatch ; rdfs:label "Målning"@sv , "Painting"@en . @@ -352,7 +352,7 @@ gf:PictureDictionary a :GenreForm ; "Picture Dictionary"@en . gf:Postcard a :GenreForm ; - skos:broader ctf:StillImage ; + skos:broader ktg:StillImage ; skos:exactMatch saogf:Vykort ; rdfs:label "Vykort"@sv , "Postcard"@en . @@ -386,7 +386,7 @@ gf:RecordOrDeed a :GenreForm ; "Record (Document)"@en . gf:Sculpture a :GenreForm ; - skos:broader ctf:Object ; + skos:broader ktg:Object ; rdfs:label "Skulptur"@sv , "Sculpture"@en . @@ -405,7 +405,7 @@ gf:SpokenPaper a :GenreForm ; "Spoken Paper"@en . gf:TVProgram a :GenreForm ; - skos:broader ctf:MovingImage, g:TV ; + skos:broader ktg:MovingImage, g:TV ; skos:exactMatch saogf:Tv-program ; rdfs:label "Tv-program"@sv , "TV-Program"@en . @@ -429,8 +429,8 @@ gf:Trailer a :GenreForm ; "Trailer"@en . gf:Website a :GenreForm ; - skos:broader ctf:OnlineResource , - ctf:Integrating ; + skos:broader ktg:OnlineResource , + ktg:Integrating ; skos:exactMatch saogf:Webbplatser ; rdfs:label "Webbplats"@sv , "Website"@en . @@ -445,7 +445,7 @@ g:Blog a :GenreForm ; gf:Yearbook a :GenreForm ; skos:exactMatch saogf:%C3%85rsb%C3%B6cker ; - skos:broader ctf:SerialPublication , + skos:broader ktg:SerialPublication , gf:Book . gf:PhraseBook a :GenreForm ; @@ -453,7 +453,7 @@ gf:PhraseBook a :GenreForm ; skos:exactMatch saogf:Parl%C3%B6rer . gf:Luck%C3%B6ppningskalendrar a :GenreForm ; - skos:broader ctf:Object ; + skos:broader ktg:Object ; skos:exactMatch saogf:Luck%C3%B6ppningskalendrar ; :singularLabel "Lucköppningskalender"@sv . @@ -526,7 +526,7 @@ gf:EarthMoonGlobe a :GenreForm ; skos:closeMatch marc:EarthMoonGlobe . gf:Model a :GenreForm ; - skos:broader ctf:Object ; + skos:broader ktg:Object ; skos:broadMatch marcgt:mod . gf:MapModel a :GenreForm ; @@ -571,39 +571,40 @@ gf:Textleaf a :GenreForm ; # gf:SmallText # TODO: CarrierGenreForm? # Instans-former (från användning ) # :Instance -# marc:Picture -# marc:Postcard -# marc:Poster -# marc:SingleMap -# tgm:Gravyrer -# tgm:Litografier -# tgm:M%C3%A5lningar -# tgm:Miniatyrer%20%28m%C3%A5lningar%29 -# tgm:Tr%C3%A4gravyrer +# marc:Picture +# marc:Postcard +# marc:Poster +# marc:SingleMap +# tgm:Gravyrer +# tgm:Litografier +# tgm:M%C3%A5lningar +# tgm:Miniatyrer%20%28m%C3%A5lningar%29 +# tgm:Tr%C3%A4gravyrer # :StillImageInstance -# tgm:Affischer -# tgm:Flyers%20%28efem%C3%A4rt%20tryck%29 < :Print -# marc:ActivityCard -# marc:Picture -# marc:Postcard -# marc:Poster -# marc:Drawing -# marc:FlashCard -# marc:Painting -# marc:Photograph -# -# marc:Photonegative -# marc:Photoprint < :Print -# marc:PhotomechanicalPrint -# tgm:Fotomekaniska%20reproduktioner -# tgm:Fotografier%20p%C3%A5%20albuminpapper -# tgm:Glasnegativ +# tgm:Affischer +# tgm:Flyers%20%28efem%C3%A4rt%20tryck%29 < :Print +# marc:ActivityCard +# marc:Picture +# marc:Postcard +# marc:Poster +# marc:Drawing +# marc:FlashCard +# marc:Painting +# marc:Photograph +# # .. keep as instance categories? +# marc:Photonegative +# marc:Photoprint < :Print +# marc:PhotomechanicalPrint +# tgm:Fotomekaniska%20reproduktioner +# tgm:Fotografier%20p%C3%A5%20albuminpapper +# tgm:Glasnegativ # :Print -# marc:Print -# marc:PhotomechanicalPrint -# marc:Photoprint -# tgm:Ljustryck -# tgm:Plantryck -# tgm:Tryck +# # .. keep as instance categories? +# marc:Print +# marc:PhotomechanicalPrint +# marc:Photoprint +# tgm:Ljustryck +# tgm:Plantryck +# tgm:Tryck diff --git a/source/genreforms/materialformat.ttl b/source/categories/materialformat.ttl similarity index 98% rename from source/genreforms/materialformat.ttl rename to source/categories/materialformat.ttl index f7662415..7b5d1094 100644 --- a/source/genreforms/materialformat.ttl +++ b/source/categories/materialformat.ttl @@ -8,7 +8,7 @@ prefix kbv: prefix : prefix marc: -prefix kbfmt: +prefix kbfmt: prefix carrier: kbfmt:BristolBoard a :BaseMaterial ; diff --git a/source/genreforms/rdacategories.ttl b/source/categories/rdacategories.ttl similarity index 52% rename from source/genreforms/rdacategories.ttl rename to source/categories/rdacategories.ttl index 86714619..f2c6851e 100644 --- a/source/genreforms/rdacategories.ttl +++ b/source/categories/rdacategories.ttl @@ -6,85 +6,84 @@ prefix kbrda: prefix saogf: prefix marcgt: -prefix ctf: -prefix g: +prefix ktg: kbrda:CartographicDataset a :ContentType ; - skos:broadMatch ctf:Dataset , g:Cartography . + skos:broadMatch ktg:Dataset , ktg:Cartography . kbrda:CartographicImage a :ContentType ; - skos:broadMatch kbrda:StillImage , g:Cartography . + skos:broadMatch kbrda:StillImage , ktg:Cartography . kbrda:CartographicMovingImage a :ContentType ; - skos:broadMatch g:Cartography , ctf:MovingImage . + skos:broadMatch ktg:Cartography , ktg:MovingImage . kbrda:CartographicTactileImage a :ContentType ; - skos:broadMatch ctf:Tactile , g:Cartography , kbrda:StillImage . + skos:broadMatch ktg:Tactile , ktg:Cartography , kbrda:StillImage . kbrda:CartographicTactileThreeDimensionalForm a :ContentType ; - skos:broadMatch kbrda:CartographicThreeDimensionalForm , ctf:Tactile . + skos:broadMatch kbrda:CartographicThreeDimensionalForm , ktg:Tactile . kbrda:CartographicThreeDimensionalForm a :ContentType ; - owl:sameAs ctf:CartographicObject ; - skos:broadMatch g:Cartography, kbrda:ThreeDimensionalForm ; # ctf:Object + owl:sameAs ktg:CartographicObject ; + skos:broadMatch ktg:Cartography, kbrda:ThreeDimensionalForm ; # ktg:Object skos:altLabel "Kartografiskt objekt"@sv , "Cartographic Object"@en . kbrda:ComputerDataset a :ContentType ; - skos:broadMatch g:Multimedia, ctf:Dataset . + skos:broadMatch ktg:Multimedia, ktg:Dataset . kbrda:ComputerProgram a :ContentType ; - skos:broadMatch g:Software . + skos:broadMatch ktg:Software . kbrda:NotatedMovement a :ContentType ; - skos:closeMatch ctf:NotatedMovement ; - skos:broadMatch ctf:Movement . + skos:closeMatch ktg:NotatedMovement ; + skos:broadMatch ktg:Movement . kbrda:NotatedMusic a :ContentType ; - skos:broadMatch g:Music ; - skos:closeMatch ctf:NotatedMusic . + skos:broadMatch ktg:Music ; + skos:closeMatch ktg:NotatedMusic . kbrda:PerformedMovement a :ContentType ; - skos:broadMatch ctf:Movement . + skos:broadMatch ktg:Movement . kbrda:PerformedMusic a :ContentType ; - skos:broadMatch ctf:Audio, g:Music . + skos:broadMatch ktg:Audio, ktg:Music . kbrda:Sounds a :ContentType ; - skos:broadMatch ctf:Audio ; + skos:broadMatch ktg:Audio ; skos:closeMatch marcgt:nos . kbrda:SpokenWord a :ContentType ; - skos:broadMatch ctf:Audio , - g:LinguisticWork . + skos:broadMatch ktg:Audio , + ktg:LinguisticWork . kbrda:StillImage a :ContentType ; - skos:closeMatch ctf:StillImage . + skos:closeMatch ktg:StillImage . kbrda:Text a :ContentType ; - skos:broadMatch g:LinguisticWork . + skos:broadMatch ktg:LinguisticWork . kbrda:ThreeDimensionalForm a :ContentType ; - skos:closeMatch ctf:Object . + skos:closeMatch ktg:Object . kbrda:ThreeDimensionalMovingImage a :ContentType ; - skos:broadMatch ctf:MovingImage . + skos:broadMatch ktg:MovingImage . kbrda:TwoDimensionalMovingImage a :ContentType ; - skos:broadMatch ctf:MovingImage . + skos:broadMatch ktg:MovingImage . kbrda:TactileImage a :ContentType ; - skos:broadMatch ctf:Tactile , kbrda:StillImage . + skos:broadMatch ktg:Tactile , kbrda:StillImage . kbrda:TactileNotatedMovement a :ContentType ; - skos:broadMatch ctf:Tactile , kbrda:NotatedMovement . + skos:broadMatch ktg:Tactile , kbrda:NotatedMovement . kbrda:TactileNotatedMusic a :ContentType ; skos:closeMatch saogf:Musikalier ; - skos:broadMatch ctf:Tactile , kbrda:NotatedMusic . + skos:broadMatch ktg:Tactile , kbrda:NotatedMusic . kbrda:TactileText a :ContentType ; - skos:broadMatch ctf:Tactile , kbrda:Text . + skos:broadMatch ktg:Tactile , kbrda:Text . kbrda:TactileThreeDimensionalForm a :ContentType ; - skos:broadMatch ctf:Tactile , kbrda:ThreeDimensionalForm . + skos:broadMatch ktg:Tactile , kbrda:ThreeDimensionalForm . From 27827332e7004c5cb8318d0b2db6d850f9be1131 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Mon, 5 May 2025 16:02:20 +0200 Subject: [PATCH 55/69] Move complex classes aside in favour of categories --- .../newtypes => examples/typenormalization}/contentclasses.ttl | 0 .../typenormalization}/rdacontentpatterns.ttl | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {source/vocab/newtypes => examples/typenormalization}/contentclasses.ttl (100%) rename {source/vocab/newtypes => examples/typenormalization}/rdacontentpatterns.ttl (100%) diff --git a/source/vocab/newtypes/contentclasses.ttl b/examples/typenormalization/contentclasses.ttl similarity index 100% rename from source/vocab/newtypes/contentclasses.ttl rename to examples/typenormalization/contentclasses.ttl diff --git a/source/vocab/newtypes/rdacontentpatterns.ttl b/examples/typenormalization/rdacontentpatterns.ttl similarity index 100% rename from source/vocab/newtypes/rdacontentpatterns.ttl rename to examples/typenormalization/rdacontentpatterns.ttl From 0dd8aa4c02e0b98fa7fb298369c76941eee5eb4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Mon, 5 May 2025 17:00:23 +0200 Subject: [PATCH 56/69] Add Category class and singularLabel --- source/vocab/base.ttl | 13 ++++++++++++- source/vocab/concepts.ttl | 2 +- source/vocab/things.ttl | 4 +++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/source/vocab/base.ttl b/source/vocab/base.ttl index 1cc02b3c..010a4967 100644 --- a/source/vocab/base.ttl +++ b/source/vocab/base.ttl @@ -156,13 +156,18 @@ rdf:type a owl:ObjectProperty; ## -# Categorization Of Terms +# Categorization (looser typing) of Resources, including Terms :category a owl:ObjectProperty; rdfs:label "category"@en, "kategori"@sv; sdo:domainIncludes :ChangeNote ; + sdo:rangeIncludes :Category ; owl:equivalentProperty sdo:category . +:Category a owl:Class ; + #rdfs:subClassOf :Concept ; + rdfs:label "Category"@en, "Kategori"@sv . + ## # These terms may also be "bibliographic", but the platform cannot work without # them. If the "bibliographic" notions are 1:1 with the technical, the term is @@ -239,6 +244,12 @@ rdf:type a owl:ObjectProperty; :category :heuristicIdentifier ; owl:equivalentProperty rdfs:label, sdo:name . +:singularLabel a owl:DatatypeProperty; + rdfs:label "singular label"@en, "benämning i singular"@sv; + rdfs:domain :Resource ; + #:category :heuristicIdentifier ; + rdfs:subPropertyOf :label . + :pluralLabel a owl:DatatypeProperty; rdfs:label "plural label"@en, "benämning i plural"@sv; rdfs:domain :Resource ; diff --git a/source/vocab/concepts.ttl b/source/vocab/concepts.ttl index fd6c6e4c..c0647923 100644 --- a/source/vocab/concepts.ttl +++ b/source/vocab/concepts.ttl @@ -428,7 +428,7 @@ :GenreForm a owl:Class; rdfs:label "Genre/form"@sv; - rdfs:subClassOf :Concept; + rdfs:subClassOf :Concept, :Category ; owl:equivalentClass bf2:GenreForm, madsrdf:GenreForm . :GenreFormScheme a owl:Class; diff --git a/source/vocab/things.ttl b/source/vocab/things.ttl index 1c9ded71..ef6e99dc 100644 --- a/source/vocab/things.ttl +++ b/source/vocab/things.ttl @@ -145,15 +145,17 @@ :ContentType a owl:Class; rdfs:label "Innehållstyp"@sv; + rdfs:subClassOf :Category ; owl:equivalentClass bf2:Content . :MediaType a owl:Class; rdfs:label "Medietyp"@sv; + rdfs:subClassOf :Category ; owl:equivalentClass bf2:Media, dc:MediaType . :CarrierType a owl:Class; rdfs:label "Bärartyp"@sv; - rdfs:subClassOf :MediaType ; + rdfs:subClassOf :MediaType, :Category ; owl:equivalentClass bf2:Carrier . :IssuanceType owl:equivalentClass bf2:Issuance; From e07df21928cb6db9ead4a52b93cb99b801b3cb99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Thu, 8 May 2025 18:48:55 +0200 Subject: [PATCH 57/69] Add KBV patterns and instance categories --- .../typenormalization}/carrierclasses.ttl | 0 source/categories/carrierforms.ttl | 192 ++++++++++++++++++ source/categories/materialformat.ttl | 5 +- source/vocab/intersectionpatterns.ttl | 117 +++++++++++ source/vocab/things.ttl | 7 +- 5 files changed, 318 insertions(+), 3 deletions(-) rename {source/vocab/newtypes => examples/typenormalization}/carrierclasses.ttl (100%) create mode 100644 source/categories/carrierforms.ttl create mode 100644 source/vocab/intersectionpatterns.ttl diff --git a/source/vocab/newtypes/carrierclasses.ttl b/examples/typenormalization/carrierclasses.ttl similarity index 100% rename from source/vocab/newtypes/carrierclasses.ttl rename to examples/typenormalization/carrierclasses.ttl diff --git a/source/categories/carrierforms.ttl b/source/categories/carrierforms.ttl new file mode 100644 index 00000000..910072ab --- /dev/null +++ b/source/categories/carrierforms.ttl @@ -0,0 +1,192 @@ +prefix rdfs: +prefix owl: +prefix ptg: +prefix skos: + +prefix : + +prefix marc: +prefix kbrda: +prefix saogf: + +prefix ktg: + + +ktg:PhysicalForm a :Category ; + ptg:abstract true . + + +# TODO: Printed vs. Handmade as mixins for precoordinated (7x7)? +ktg:Print a :Category; + skos:broader :Unmediated . + +# Untenable(?): Handwritten / Typewritten / Photocopied => Purpose (Genre) OR Manufacture/Production +ktg:Handwritten a :Category; skos:broader :Unmediated . +ktg:Typewrittten a :Category; skos:broader :Unmediated . + +ktg:Manuscript a :Category ; # NOTE: the type changed to Work in BF; this is about the carrier/production form. + skos:broader ktg:Handwritten . + +# mer extraordinärt? Sitter på exemplar? +#ktg:Photocopied a :Category; skos:broader kbrda:Unmediated ; skos:related marc:RegularPrintReproduction . + +# fmt:LargeText a :Format ? + +#ktg:MassProducedVolume a :Category ; +# rdfs:subClassOf ktg:MassProduced, kbrda:Volume . +# +#ktg:RareVolume a :Category ; +# rdfs:subClassOf ktg:Rare, kbrda:Volume . + + +ktg:PrintedVolume a :Category ; + skos:broadMatch ktg:Print, kbrda:Volume ; + rdfs:label "Tryckt volym"@sv , "Printed Volume"@en . + +#ktg:HardcoverVolume a :Category; +# skos:broader ktg:PrintedVolume . +# +#ktg:PaperbackVolume a :Category; +# skos:broader ktg:PrintedVolume . + + +ktg:PrintedSheet a :Category ; + skos:broader kbrda:Print, kbrda:Sheet . + +ktg:HandmadeSheet a :Category ; + skos:broader kbrda:Unmediated, kbrda:Sheet . + + +ktg:PhysicalObject a :Category ; # :UnmediatedObject ? + skos:exactMatch kbrda:Object ; + skos:broader kbrda:Unmediated . + + +# TODO: Lift these from marc to KBV? +# If so we need a clear delineation between "braille notation" and "to be experienced with touch". +#ktg:TactileForm a :Category ; +# skos:broader kbrda:Unmediated ; +# rdfs:subClassOf [ +# owl:onProperty :format ; +# owl:someValuesFrom :TactileMaterial ] . + +ktg:BrailleForm a :Category ; + skos:exactMatch marc:Braille, marc:TextMaterialType-c ; + skos:broader ktg:TactileForm, ktg:Print . + +ktg:BrailleVolume a :Category ; + skos:broader ktg:BrailleForm, kbrda:Volume ; + skos:exactMatch saogf:Punktskriftsb%C3%B6cker . +# :prefLabel "Punktskriftsvolym"@sv, "Braille Volume"@en . + + +# "Mediated" + +# TODO: other StorageMedium? Magnetic / Optical / Mechanical ? +ktg:StorageMedium a :Category ; + ptg:abstract true ; + skos:broader ktg:PhysicalForm ; + rdfs:label "Lagringsmedium"@sv , "StorageMedium"@en . + + +ktg:TapeCartridge a :Category ; + skos:broader ktg:StorageMedium ; + ptg:abstract true ; + skos:exactMatch marc:TapeCartridge . + +ktg:TapeCassette a :Category ; + skos:broader ktg:StorageMedium ; + ptg:abstract true ; + skos:exactMatch marc:TapeCassette . + +ktg:TapeReel a :Category ; + ptg:abstract true ; + skos:broader ktg:StorageMedium ; + skos:exactMatch marc:TapeReel . + +ktg:MagneticDisk a :Category ; + skos:exactMatch marc:MagneticDisk ; + skos:broader ktg:StorageMedium . + +ktg:MagnetoOpticalDisc a :Category ; + skos:exactMatch marc:MagnetoOpticalDisc ; + skos:broader ktg:StorageMedium . + +ktg:OpticalReel a :Category ; + ptg:abstract true ; + skos:broader ktg:StorageMedium . + +ktg:OpticalDisc a :Category ; + skos:exactMatch marc:OpticalDisc ; + skos:broader ktg:StorageMedium . # ktg:ElectronicStorageMedium ? + +ktg:CDBook a :Category ; + skos:broadMatch ktg:ComputerDisc, kbrda:AudioDisc ; + :singularLabel "CD-bok"@sv . + + +# Multimedia AudioBook + WrittenBook Bundle ? + +#:Disc +#:CD (:Material) +#:DVD (:Material) + +# Combinations: +#CDMap +#ESerial +#Music (Genre) +#MusicCD + + +ktg:AbstractElectronic a :Category ; + ptg:abstract true ; + rdfs:comment "A digital or electronically mediated resource."@en . + +ktg:DigitalForm a :Category ; + skos:broader ktg:AbstractElectronic ; + rdfs:label "Digital resurs"@sv , "Digital Resource"@en ; + rdfs:comment 'Kallas ibland "E-resurs"'@sv . + +ktg:EBook a :Category ; + skos:broadMer ktg:DigitalForm ; + :singularLabel "E-bok"@sv . + + +ktg:ElectronicStorageMedium a :Category ; + ptg:abstract true ; + skos:closeMatch kbrda:Computer ; + skos:exactMatch marc:DirectElectronic ; + skos:broader ktg:StorageMedium , + ktg:AbstractElectronic ; # Kallas ibland "Elektronisk bärare". + rdfs:label "Elektroniskt lagringsmedium"@sv , "StorageMedium"@en . + +ktg:StandaloneDevice a :Category ; + skos:exactMatch marc:StandaloneDevice ; + skos:broader ktg:ElectronicStorageMedium, ktg:PhysicalObject . + + +# TODO: Is the media type aspect superfluous if content is on the work? +# Or is the *unit for device capable of sound* encoded here (as "mode" of provisioning, not the "purpose" thereof)? +# See also accesibility concerns. + +ktg:SoundStorageMedium a :Category ; + owl:sameAs kbrda:SoundRecording ; + ptg:abstract true ; + skos:exactMatch kbrda:Audio ; + skos:broader ktg:StorageMedium ; + rdfs:label "Audio"@sv, "Audio"@en . + +# Zero uses in Libris... +ktg:AudioWireRecording a :Category ; + skos:exactMatch marc:WireRecording . + +ktg:VideoStorageMedium a :Category ; + owl:sameAs :VideoRecording ; + ptg:abstract true ; + skos:exactMatch kbrda:Video, marc:Videorecording ; + skos:broader ktg:StorageMedium ; + rdfs:label "Lagringsmedium för video"@sv, "Video Storage Medium"@en . + +ktg:Microfilm a :Category ; + skos:exactMatch marc:Microfilm ; + skos:broader kbrda:Microform . diff --git a/source/categories/materialformat.ttl b/source/categories/materialformat.ttl index 7b5d1094..22394df2 100644 --- a/source/categories/materialformat.ttl +++ b/source/categories/materialformat.ttl @@ -8,9 +8,10 @@ prefix kbv: prefix : prefix marc: -prefix kbfmt: +prefix kbfmt: prefix carrier: +# TODO: Map to <../materials.ttl> (in turn mapped to ). kbfmt:BristolBoard a :BaseMaterial ; skos:exactMatch marc:BristolBoard . kbfmt:Canvas a :BaseMaterial ; @@ -83,7 +84,7 @@ marc:FlexibleBasePhotographicNegative a :MapFormat . marc:NonFlexibleBasePhotographicNegative a :MapFormat . marc:NonFlexibleBasePhotographicPositive a :MapFormat . -# TODO: consolidate with smdbterms.ttl ! +# TODO: consolidate with <../../examples/typenormalization/smdbterms.ttl>. kbfmt:Beta12InVideocassette a :VideoFormat ; skos:exactMatch marc:Beta12InVideocassette . # TODO: smdb diff --git a/source/vocab/intersectionpatterns.ttl b/source/vocab/intersectionpatterns.ttl new file mode 100644 index 00000000..10bda665 --- /dev/null +++ b/source/vocab/intersectionpatterns.ttl @@ -0,0 +1,117 @@ +prefix rdfs: +prefix owl: +prefix skos: +prefix dc: +prefix sdo: +prefix ptg: + +prefix : +prefix marc: + +prefix kbrda: +prefix ktg: +prefix g: + + +prefix : + +## +# Abstract classes entailed by categories (possibly in turn entailed). +# Used for export-to-bf+rda (or revert-to-marc). + +## Work subclasses + +:Audio :abstract true ; + owl:intersectionOf (:Monograph [ owl:onProperty :category ; owl:hasValue ktg:Audio]) . + +:Cartography :abstract true ; + owl:intersectionOf (:Monograph [ owl:onProperty :category ; owl:hasValue g:Cartography]) . + +:Dataset :abstract true ; + owl:intersectionOf (:Monograph [ owl:onProperty :category ; owl:hasValue ktg:Dataset]) . + +:Movement :abstract true ; + owl:intersectionOf (:Monograph [ owl:onProperty :category ; owl:hasValue ktg:Movement]) . + +:MovingImage :abstract true ; owl:intersectionOf (:Monograph [ owl:onProperty :category ; owl:hasValue ktg:MovingImage]) . + +:Multimedia :abstract true ; owl:intersectionOf (:Monograph [ owl:onProperty :category ; owl:hasValue g:Multimedia]) . + +:NotatedMovement :abstract true ; owl:intersectionOf (:Monograph [ owl:onProperty :category ; owl:hasValue kbrda:NotatedMovement]) . + +:NotatedMusic :abstract true ; owl:intersectionOf (:Monograph [ owl:onProperty :category ; owl:hasValue kbrda:NotatedMusic]) . + +:Tactile :abstract true ; owl:intersectionOf (:Monograph [ owl:onProperty :category ; owl:hasValue ktg:Tactile]) . + +:Text :abstract true ; owl:intersectionOf (:Monograph [ owl:onProperty :category ; owl:hasValue kbrda:Text]) . + +## Instance subclasses + +# Coordinating categories defined in: <../categories/carrierforms.ttl> + +:Print owl:intersectionOf (:PhysicalResource [ owl:onProperty :category ; owl:hasValue ktg:Print]) . + +:Electronic owl:intersectionOf (:PhysicalResource [ owl:onProperty :category ; owl:hasValue ktg:AbstractElectronic ]) . + +:Manuscript owl:intersectionOf (:PhysicalResource [ owl:onProperty :category ; owl:hasValue ktg:Manuscript ]) . + +# TODO: +#:Archival owl:intersectionOf (:PhysicalResource [ ... ]) . +#:Tactile owl:intersectionOf (:PhysicalResource [ ... ]) . + +# Complex Instance Classes + +:PhysicalResource a owl:Class ; + rdfs:subClassOf :Instance , dc:PhysicalResource ; + rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty :category ; + owl:minQualifiedCardinality 1 ; + owl:onClass [ owl:onProperty :broaderTransitive ; + owl:hasValue ktg:PhysicalForm ] ] ; + rdfs:label "Fysisk resurs"@sv , "Physical resource"@en . + +:DigitalResource a owl:Class ; + rdfs:subClassOf :Instance ; + rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty :category ; + owl:minQualifiedCardinality 1 ; + owl:onClass [ owl:onProperty :broaderTransitive ; + owl:hasValue ktg:DigitalForm ] ] ; + rdfs:label "Digital resurs"@sv , "Digital Resource"@en . + + +# TODO: +# Upgrade some marc: properties to KBV going forward? +#:videoCharacteristic +# rdfs:subPropertyOf :format ; +# rdfs:domain :VideoStorageMedium ; +# sdo:rangeIncludes :VideoFormat . +# - Or... +# Replace subclasses below with complex patterns? +# These richer types belong the discarded direct rich-type-design... + +:TactileMaterial rdfs:subClassOf :Material ; + skos:broadMatch marc:TacMaterialType . + +:ImageMaterial rdfs:subClassOf :Material ; + skos:broadMatch marc:NonProjectedType . + +:MapMaterial rdfs:subClassOf :Material ; + skos:broadMatch marc:MapMediumType . + +:VideoFormat rdfs:subClassOf :Material ; + skos:broadMatch marc:VideoFormatType . + +# TODO: ensure all of these (LHS) can be mapped to one specific type. +# Purpose here is just to define a MARC "rebus" based in on instanceOf (RHS): + +# :StillImageInstance :instanceOf :StillImage . +#:StillImageInstance +# ptg:abstract true ; +# owl:equivalentClass [ owl:onProperty :instanceOf ; owl:allValuesFrom :StillImage ] ; +# rdfs:subClassOf [ owl:onProperty :baseMaterial ; owl:someValuesFrom :ImageMaterial ] . + +# :MovingImageInstance :instanceOf :MovingImage . +# :ProjectedImageInstance :instanceOf :ProjectedImage . +# :NotatedMusicInstance :instanceOf :NotatedMusic . +# :KitInstance :instanceOf :Kit . diff --git a/source/vocab/things.ttl b/source/vocab/things.ttl index ef6e99dc..6f4166dd 100644 --- a/source/vocab/things.ttl +++ b/source/vocab/things.ttl @@ -41,6 +41,8 @@ ##: skos:hasTopConcept :Print . +# NOTE: Some classes marked as :abstract may be entailed by a rule in . + ## # Creative Works @@ -81,6 +83,7 @@ :Instance a owl:Class ; :category marc:bib ; + ptg:abstract true ; rdfs:label "Instance"@en, "Instans"@sv; rdfs:subClassOf :Creation, :Embodiment ; owl:equivalentClass bf2:Instance ; @@ -519,7 +522,7 @@ owl:equivalentClass bf2:Archival . :Electronic a owl:Class; - #ptg:abstract true ; + ptg:abstract true ; rdfs:label "Elektronisk"@sv; skos:definition "Resurs som är avsedd för manipulering av en dator, åtkomst direkt eller på distans."@sv; rdfs:subClassOf :Instance; @@ -535,12 +538,14 @@ owl:equivalentClass bf2:Manuscript, bibo:Manuscript . :Print a owl:Class; + :abstract true ; rdfs:label "Tryck"@sv; skos:definition "Resurs som är mångfaldigad genom tryck."@sv; rdfs:subClassOf :Instance; owl:equivalentClass bf2:Print . :Tactile a owl:Class; + :abstract true ; #:category :SensoryForm ; rdfs:label "Taktil resurs"@sv; skos:altLabel "Taktilt verk"@sv; From 1595f3191b20fc4fca8f8f425f6e9341dffafded Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Thu, 8 May 2025 18:50:53 +0200 Subject: [PATCH 58/69] Handle datasets with more than one source file --- lxltools/datacompiler.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lxltools/datacompiler.py b/lxltools/datacompiler.py index 22dbb3b8..06cabc6f 100644 --- a/lxltools/datacompiler.py +++ b/lxltools/datacompiler.py @@ -525,6 +525,8 @@ def _construct(compiler, sources, query=None): graph += Graph().parse(str(sourcepath), format=fmt) if not query: + graph = Graph() + graph += dataset return graph with compiler.path(query).open() as fp: From 5671a60ef63388df5e5eea95eb2cda2d8e61d183 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Mon, 12 May 2025 11:02:39 +0200 Subject: [PATCH 59/69] Remake handling of KTG and RDA term definitions - Add KTG dataset. - Add mappings from RDA terms to new KTG cagegories. - Control RDA definitions, including labels, locally (we might keep commented build step for verification). --- source/datasets/idkbse.ttl | 63 +++- source/rda-terms.ttl | 2 + source/rda/content.ttl | 170 +++++++++ source/rda/labels.ttl | 227 ++++++++++++ source/rda/mediacarriers.ttl | 696 +++++++++++++++++++++++++++++++++++ 5 files changed, 1138 insertions(+), 20 deletions(-) create mode 100644 source/rda/content.ttl create mode 100644 source/rda/labels.ttl create mode 100644 source/rda/mediacarriers.ttl diff --git a/source/datasets/idkbse.ttl b/source/datasets/idkbse.ttl index 28c2b1d1..aa9a5a60 100644 --- a/source/datasets/idkbse.ttl +++ b/source/datasets/idkbse.ttl @@ -11,32 +11,45 @@ base :uriSpace "/marc/" ; :created "2014-01-23T10:34:17.981Z"^^xsd:dateTime . +# TODO: Replaced with manually controlled option below. +# But keep some of this for mapping/label verification/comparison during maintenance? +# a :Dataset ; +# :isPartOf ; +# #; NOTE: see also examples/mappings/rda-bf2-types.ttl for possibiliy of +# # extending our type system (instead). +# :sourceData [ :uri "build/rdaterms.json.lines" ; +# :sourceData [ a :QueryConstruct ; +# :dataQuery [ :uri "source/construct-rda-terms.rq" ] ; +# :sourceData [ :uri 'source/rda-terms.ttl' ; +# :representationOf ] , +# , +# , +# +# , +# , +# +# , +# , +# +# # , +# , +# [ :uri 'source/categories/rdacategories.ttl' ] ; +# # NOTE: this is serialized using system context! +# ] ] ; +# :uriSpace "/term/rda/" ; +# :created "2018-05-16T06:18:01.337Z"^^xsd:dateTime . a :Dataset ; :isPartOf ; - #; NOTE: see also examples/mappings/rda-bf2-types.ttl for possibiliy of - # extending our type system (instead). :sourceData [ :uri "build/rdaterms.json.lines" ; - :sourceData [ a :QueryConstruct ; - :dataQuery [ :uri "source/construct-rda-terms.rq" ] ; - :sourceData [ :uri 'source/rda-terms.ttl' ; - :representationOf ] , - , - , - - , - , - - , - , - - # , - ; - # NOTE: this is serialized using system context! - ] ] ; + :sourceData [ :uri "source/rda/content.ttl" ] , + [ :uri "source/rda/mediacarriers.ttl" ] , + [ :uri "source/categories/rdacategories.ttl" ] , + [ :uri "source/rda/labels.ttl" ] ] ; + #[ :uri "source/rda/materials.ttl" ] ] ; :uriSpace "/term/rda/" ; :created "2018-05-16T06:18:01.337Z"^^xsd:dateTime . - +# TODO: merge in 'source/categories/materialformat.ttl' (do we need to keep some coordinating categories?) a :Dataset ; :isPartOf ; :sourceData [ :uri "build/materials.json.lines" ; :sourceData [ a :QueryConstruct ; @@ -137,6 +150,16 @@ base :uriSpace "/term/enum/" ; :created "2018-05-29T12:36:01.337Z"^^xsd:dateTime . + a :Dataset ; + :isPartOf ; + :sourceData [ :uri 'build/ktg.json.lines' ; + :sourceData [ :uri 'source/categories/contentforms.ttl' ] , + [ :uri 'source/categories/genreforms.ttl' ] , + [ :uri 'source/categories/contentgenres.ttl' ] ] ; + :uriSpace "/term/" ; + #:uriSpace "/term/ktg/" ; + :created "2025-05-05T09:57:56Z"^^xsd:dateTime . + #NOTE: More suitable name might be needed if usage is broader than digital representations a :Dataset ; :isPartOf ; diff --git a/source/rda-terms.ttl b/source/rda-terms.ttl index 82902f19..93bd79aa 100644 --- a/source/rda-terms.ttl +++ b/source/rda-terms.ttl @@ -5,6 +5,8 @@ @base . +# FIXME: OBSOLETE file; remove when source/rda/*.ttl replacement is approved (pending change as of 250512)! + # TODO: Check these rdacarrier mappings: # Deprecated: skos:exactMatch rdacarrier:1001 ; # "Audio carriers" # skos:closeMatch rdamedia:1001 # skos:exactMatch rdacarrier:1002 ; # "audio cartridge" diff --git a/source/rda/content.ttl b/source/rda/content.ttl new file mode 100644 index 00000000..1864527a --- /dev/null +++ b/source/rda/content.ttl @@ -0,0 +1,170 @@ +prefix bf: +prefix marc: +prefix owl: +prefix skos: + +prefix kbrda: +base + +## Content types ## + +kbrda:CartographicDataset a bf:Content ; + owl:sameAs , + ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "crd" . + +kbrda:CartographicImage a bf:Content ; + owl:sameAs , + ; + skos:exactMatch , # Used in LC codeMaps.xml + ; + skos:inScheme ; + skos:notation "cri" . + +kbrda:CartographicMovingImage a bf:Content ; + owl:sameAs , + ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "crm" . + +kbrda:CartographicTactileImage a bf:Content ; + owl:sameAs , + ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "crt" . + +kbrda:CartographicTactileThreeDimensionalForm a bf:Content ; + owl:sameAs , + ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "crn" . + +kbrda:CartographicThreeDimensionalForm a bf:Content ; + owl:sameAs , + ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "crf" . + +kbrda:ComputerDataset a bf:Content ; + owl:sameAs , + ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "cod" . + +kbrda:ComputerProgram a bf:Content ; + owl:sameAs , + ; + skos:exactMatch , # Used in LC codeMaps.xml + , + marc:ComputerProgram ; + skos:inScheme ; + skos:notation "cop" . + +kbrda:NotatedMovement a bf:Content ; + owl:sameAs , + ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "ntv" . + +kbrda:NotatedMusic a bf:Content ; + owl:sameAs , + ; + skos:exactMatch , # Used in LC codeMaps.xml + ; + skos:inScheme ; + skos:notation "ntm" . + +kbrda:StillImage a bf:Content ; + owl:sameAs , + ; + skos:exactMatch , # Used in LC codeMaps.xml + ; + skos:inScheme ; + skos:notation "sti" . + +kbrda:TactileImage a bf:Content ; + owl:sameAs , + ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "tci" . + +kbrda:TactileNotatedMovement a bf:Content ; + owl:sameAs , + ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "tcn" . + +kbrda:TactileNotatedMusic a bf:Content ; + owl:sameAs , + ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "tcm" . + +kbrda:TactileText a bf:Content ; + owl:sameAs , + ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "tct" . + +kbrda:TactileThreeDimensionalForm a bf:Content ; + owl:sameAs , + ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "tcf" . + +kbrda:Text a bf:Content ; + owl:sameAs , + ; + skos:exactMatch , # Used in LC codeMaps.xml + ; + skos:inScheme ; + skos:notation "txt" . + +kbrda:ThreeDimensionalForm a bf:Content ; + owl:sameAs , + ; + skos:exactMatch , # Used in LC codeMaps.xml + ; + skos:inScheme ; + skos:notation "tdf" . + +kbrda:ThreeDimensionalMovingImage a bf:Content ; + owl:sameAs , + ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "tdm" . + +kbrda:TwoDimensionalMovingImage a bf:Content ; + owl:sameAs , + ; + skos:exactMatch , # Used in LC codeMaps.xml + ; + skos:inScheme ; + skos:notation "tdi" . diff --git a/source/rda/labels.ttl b/source/rda/labels.ttl new file mode 100644 index 00000000..b4d28300 --- /dev/null +++ b/source/rda/labels.ttl @@ -0,0 +1,227 @@ +# NOTE: This just an extraction (using SPARQL, I presume) from our definitions... +prefix : +prefix kbrda: + +kbrda:ApertureCard :prefLabel "maskhålkort"@sv , + "aperture card"@en . + +kbrda:Audio :prefLabel "audio"@sv , + "audio"@en . + +kbrda:AudioCartridge :prefLabel "ljudmagasin"@sv , + "audio cartridge"@en . + +kbrda:AudioCylinder :prefLabel "ljudcylinder"@sv , + "audio cylinder"@en . + +kbrda:AudioDisc :prefLabel "ljudskiva"@sv , + "audio disc"@en . + +kbrda:AudioRoll :prefLabel "ljudrulle"@sv , + "audio roll"@en . + +kbrda:Audiocassette :prefLabel "ljudkassett"@sv , + "audiocassette"@en . + +kbrda:AudiotapeReel :prefLabel "ljudspole"@sv , + "audiotape reel"@en . + +kbrda:Card :prefLabel "bildkort"@sv , + "card"@en . + +kbrda:CartographicDataset :prefLabel "kartografiskt dataset"@sv , + "cartographic dataset"@en . + +kbrda:CartographicImage :prefLabel "kartografisk bild"@sv , + "cartographic image"@en . + +kbrda:CartographicMovingImage :prefLabel "kartografisk rörlig bild"@sv , + "cartographic moving image"@en . + +kbrda:CartographicTactileImage :prefLabel "kartografisk taktil bild"@sv , + "cartographic tactile image"@en . + +kbrda:CartographicTactileThreeDimensionalForm :prefLabel "kartografisk taktil tredimensionell form"@sv , + "cartographic tactile three-dimensional form"@en . + +kbrda:CartographicThreeDimensionalForm :prefLabel "kartografisk tredimensionell form"@sv , + "cartographic three-dimensional form"@en . + +kbrda:Computer :prefLabel "dator"@sv , + "computer"@en . + +kbrda:ComputerCard :prefLabel "datorkort"@sv , + "computer card"@en . + +kbrda:ComputerChipCartridge :prefLabel "computer chip cartridge"@en . + +kbrda:ComputerDataset :prefLabel "computer dataset"@en . + +kbrda:ComputerDisc :prefLabel "datorskiva"@sv , + "computer disc"@en . + +kbrda:ComputerDiscCartridge :prefLabel "datorskivmagasin"@sv , + "computer disc cartridge"@en . + +kbrda:ComputerProgram :prefLabel "datorprogram"@sv , + "computer program"@en . + +kbrda:ComputerTapeCartridge :prefLabel "datorbandmagasin"@sv , + "computer tape cartridge"@en . + +kbrda:ComputerTapeCassette :prefLabel "datorkassett"@sv , + "computer tape cassette"@en . + +kbrda:ComputerTapeReel :prefLabel "datorbandspole"@sv , + "computer tape reel"@en . + +kbrda:FilmCartridge :prefLabel "filmmagasin"@sv , + "film cartridge"@en . + +kbrda:FilmCassette :prefLabel "filmkassett"@sv , + "film cassette"@en . + +kbrda:FilmReel :prefLabel "filmspole"@sv , + "film reel"@en . + +kbrda:FilmRoll :prefLabel "filmrulle"@sv , + "film roll"@en . + +kbrda:Filmslip :prefLabel "filmremsa"@sv , + "filmslip"@en . + +kbrda:Filmstrip :prefLabel "bildband"@sv , + "filmstrip"@en . + +kbrda:FilmstripCartridge :prefLabel "bildbandsmagasin"@sv , + "filmstrip cartridge"@en . + +kbrda:Flipchart :prefLabel "blädderblock"@sv , + "flipchart"@en . + +kbrda:Microfiche :prefLabel "mikrofiche"@sv , + "microfiche"@en . + +kbrda:MicroficheCassette :prefLabel "mikrofichekassett"@sv , + "microfiche cassette"@en . + +kbrda:MicrofilmCartridge :prefLabel "mikrofilmsmagasin"@sv , + "microfilm cartridge"@en . + +kbrda:MicrofilmCassette :prefLabel "mikrofilmskassett"@sv , + "microfilm cassette"@en . + +kbrda:MicrofilmReel :prefLabel "mikrofilmsspole"@sv , + "microfilm reel"@en . + +kbrda:MicrofilmRoll :prefLabel "mikrofilmsrulle"@sv , + "microfilm roll"@en . + +kbrda:MicrofilmSlip :prefLabel "mikrofilmsremsa"@sv , + "microfilm slip"@en . + +kbrda:Microform :prefLabel "mikroform"@sv , + "microform"@en . + +kbrda:Microopaque :prefLabel "mikrokort"@sv , + "microopaque"@en . + +kbrda:MicroscopeSlide :prefLabel "mikroskoperingspreparat"@sv , + "microscope slide"@en . + +kbrda:Microscopic :prefLabel "mikroskopisk"@sv , + "microscopic"@en . + +kbrda:NotatedMovement :prefLabel "notated movement"@en . + +kbrda:NotatedMusic :prefLabel "notated music"@en . + +kbrda:Object :prefLabel "föremål"@sv , + "object"@en . + +kbrda:OnlineResource :prefLabel "onlineresurs"@sv , + "online resource"@en . + +kbrda:OverheadTransparency :prefLabel "OH-bild"@sv , + "overhead transparency"@en . + +kbrda:PerformedMusic :prefLabel "framförd musik"@sv , + "performed music"@en . + +kbrda:Projected :prefLabel "projicerad"@sv , + "projected"@en . + +kbrda:Roll :prefLabel "rulle"@sv , + "roll"@en . + +kbrda:Sheet :prefLabel "ark"@sv , + "sheet"@en . + +kbrda:Slide :prefLabel "diabild"@sv , + "slide"@en . + +kbrda:SoundTrackReel :prefLabel "sound-track reel"@en . + +kbrda:Sounds :prefLabel "ljud (utom tal och musik)"@sv , + "sounds"@en . + +kbrda:SpokenWord :prefLabel "tal"@sv , + "spoken word"@en . + +kbrda:StereographCard :prefLabel "stereografiskt kort"@sv , + "stereograph card"@en . + +kbrda:StereographDisc :prefLabel "stereografisk skiva"@sv , + "stereograph disc"@en . + +kbrda:Stereographic :prefLabel "stereografisk"@sv , + "stereographic"@en . + +kbrda:StillImage :prefLabel "stillbild"@sv , + "still image"@en . + +kbrda:TactileImage :prefLabel "taktil bild"@sv , + "tactile image"@en . + +kbrda:TactileNotatedMovement :prefLabel "tactile notated movement"@en . + +kbrda:TactileNotatedMusic :prefLabel "tactile notated music"@en . + +kbrda:TactileText :prefLabel "taktil text"@sv , + "tactile text"@en . + +kbrda:TactileThreeDimensionalForm :prefLabel "taktil tredimensionell form"@sv , + "tactile three-dimensional form"@en . + +kbrda:Text :prefLabel "text"@sv , + "text"@en . + +kbrda:ThreeDimensionalForm :prefLabel "tredimensionell form"@sv , + "three-dimensional form"@en . + +kbrda:ThreeDimensionalMovingImage :prefLabel "tredimensionell rörlig bild"@sv , + "three-dimensional moving image"@en . + +kbrda:TwoDimensionalMovingImage :prefLabel "tvådimensionell rörlig bild"@sv , + "two-dimensional moving image"@en . + +kbrda:Unmediated :prefLabel "omedierad"@sv , + "unmediated"@en . + +kbrda:Video :prefLabel "video"@sv , + "video"@en . + +kbrda:VideoCartridge :prefLabel "videomagasin"@sv , + "video cartridge"@en . + +kbrda:Videocassette :prefLabel "videokassett"@sv , + "videocassette"@en . + +kbrda:Videodisc :prefLabel "videoskiva"@sv , + "videodisc"@en . + +kbrda:VideotapeReel :prefLabel "videospole"@sv , + "videotape reel"@en . + +kbrda:Volume :prefLabel "volym"@sv , + "volume"@en . diff --git a/source/rda/mediacarriers.ttl b/source/rda/mediacarriers.ttl new file mode 100644 index 00000000..7a0d59eb --- /dev/null +++ b/source/rda/mediacarriers.ttl @@ -0,0 +1,696 @@ +prefix bf: +prefix rdfs: +prefix owl: +prefix skos: + +prefix marc: +prefix ktg: +prefix kbrda: + +## Media types ## + +kbrda:Audio a bf:Media ; + owl:sameAs kbrda:media\/audio , + kbrda:media\/s ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "s" . + +kbrda:Computer a bf:Media ; + owl:sameAs kbrda:media\/c , + kbrda:media\/computer ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "c" . + +kbrda:Microform a bf:Media ; + owl:sameAs kbrda:media\/h , + kbrda:media\/microform ; + skos:broader ktg:StorageMedium ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "h" ; + #ptg:abstract true ; + rdfs:label "Mikroform"@sv , + "Microform"@en . + +kbrda:Microscopic a bf:Media ; + owl:sameAs kbrda:media\/p , + kbrda:media\/microscopic ; + skos:broader ktg:StorageMedium ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "h" ; + #ptg:abstract true ; + rdfs:label "Mikroskopisk"@sv , + "Microscopic"@en . + +kbrda:Projected a bf:Media ; + owl:sameAs kbrda:media\/g , + kbrda:media\/projected ; + skos:broader ktg:StorageMedium ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "g" ; + #ptg:abstract true ; + rdfs:label "Projicerad"@sv , + "Projected"@en . + +kbrda:Stereographic a bf:Media ; + owl:sameAs kbrda:media\/e , + kbrda:media\/stereographic ; + skos:broader marc:Stereographic , + ktg:StorageMedium ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "e" ; + #ptg:abstract true ; + rdfs:label "Stereografisk"@sv , + "Stereographic"@en . + +kbrda:Unmediated a bf:Media ; + owl:sameAs kbrda:media\/n , + kbrda:media\/unmediated ; + skos:broader ktg:PhysicalForm ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "n" ; + rdfs:label "Omedierad resurs"@sv , + "Unmediated"@en . + +kbrda:Video a bf:Media ; + owl:sameAs kbrda:media\/v , + kbrda:media\/video ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "v" . + +## Carrier types + +kbrda:ApertureCard a bf:Carrier ; + owl:sameAs kbrda:carrier\/aperture%20card , + kbrda:carrier\/ha ; + skos:broader kbrda:Microform ; + skos:exactMatch , + , + marc:ApertureCard ; + skos:inScheme ; + skos:notation "ha" ; + rdfs:label "Maskhålkort"@sv , + "Aperture card"@en . + +kbrda:AudioCartridge a bf:Carrier ; + owl:sameAs kbrda:carrier\/audio%20cartridge , + kbrda:carrier\/sg ; + skos:broader kbrda:Audio , + ktg:SoundStorageMedium ; + skos:exactMatch , + , + marc:SoundCartridge ; + skos:inScheme ; + skos:notation "sg" ; + rdfs:label "Ljudmagasin"@sv , + "Audio cartridge"@en . + +kbrda:AudioCylinder a bf:Carrier ; + owl:sameAs kbrda:carrier\/audio%20cylinder , + kbrda:carrier\/se ; + skos:broader kbrda:Audio , + ktg:SoundStorageMedium ; + skos:exactMatch , + , + marc:Cylinder ; + skos:inScheme ; + skos:notation "se" ; + rdfs:label "Ljudcylinder"@sv , + "Audio cylinder"@en . + +kbrda:AudioDisc a bf:Carrier ; + owl:sameAs kbrda:carrier\/audio%20disc , + kbrda:carrier\/sd ; + skos:broader kbrda:Audio , + ktg:SoundStorageMedium ; + skos:exactMatch , + , + marc:SoundDisc ; + skos:inScheme ; + skos:notation "sd" ; + rdfs:label "Ljudskiva"@sv , + "Audio Disc"@en . + +kbrda:AudioRoll a bf:Carrier ; + owl:sameAs kbrda:carrier\/audio%20roll , + kbrda:carrier\/sq ; + skos:broader kbrda:Audio , + ktg:SoundStorageMedium ; + skos:exactMatch , + , + marc:Roll ; + skos:inScheme ; + skos:notation "sq" ; + rdfs:label "Ljudrulle"@sv , + "Audio roll"@en . + +kbrda:Audiocassette a bf:Carrier ; + owl:sameAs kbrda:carrier\/audiocassette , + kbrda:carrier\/ss ; + skos:broader kbrda:Audio , + ktg:SoundStorageMedium , + ktg:TapeCassette ; + skos:exactMatch , + , + marc:SoundCassette ; + skos:inScheme ; + skos:notation "ss" ; + rdfs:label "Ljudkassett"@sv , + "Audio Cassette"@en . + +kbrda:AudiotapeReel a bf:Carrier ; + owl:sameAs kbrda:carrier\/audiotape%20reel , + kbrda:carrier\/st ; + skos:broader kbrda:Audio , + ktg:SoundStorageMedium , + ktg:TapeReel , + marc:SoundTapeReel ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "st" ; + rdfs:label "Ljudspole"@sv , + "Audiotape reel"@en . + +kbrda:Card a bf:Carrier ; + owl:sameAs kbrda:carrier\/card , + kbrda:carrier\/no ; + skos:broader kbrda:Unmediated ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "no" ; + rdfs:label "Bildkort"@sv , + "Card"@en . + +kbrda:ComputerCard a bf:Carrier ; + owl:sameAs kbrda:carrier\/ck , + kbrda:carrier\/computer%20card ; + skos:broader kbrda:Computer , + ktg:ElectronicStorageMedium ; + skos:exactMatch , + , + marc:ComputerCard ; + skos:inScheme ; + skos:notation "ck" ; + rdfs:label "Datorkort"@sv , + "Computer card"@en . + +kbrda:ComputerChipCartridge a bf:Carrier ; + owl:sameAs kbrda:carrier\/cb , + kbrda:carrier\/computer%20chip%20cartridge ; + skos:broader kbrda:Computer , + ktg:ElectronicStorageMedium ; + skos:exactMatch , + , + marc:ChipCartridge ; + skos:inScheme ; + skos:notation "cb" ; + rdfs:label "Computer chip cartridge"@en . + +kbrda:ComputerDisc a bf:Carrier ; + owl:sameAs kbrda:carrier\/cd , + kbrda:carrier\/computer%20disc ; + skos:broadMatch marc:MagneticDisk ; + skos:broader kbrda:Computer , + ktg:ElectronicStorageMedium ; + skos:exactMatch , + , + marc:ComputerDisc ; + skos:inScheme ; + skos:notation "cd" ; + rdfs:label "Datorskiva"@sv , + "Computer Disc"@en . + +kbrda:ComputerDiscCartridge a bf:Carrier ; + owl:sameAs kbrda:carrier\/ce , + kbrda:carrier\/computer%20disc%20cartridge ; + skos:broader kbrda:Computer , + ktg:ElectronicStorageMedium ; + skos:exactMatch , + , + marc:ComputerDiscCartridge ; + skos:inScheme ; + skos:narrowMatch marc:ComputerOpticalDiscCartridge ; + skos:notation "ce" ; + rdfs:label "Datorskivmagasin"@sv , + "Computer disc cartridge"@en . + +kbrda:ComputerTapeCartridge a bf:Carrier ; + owl:sameAs kbrda:carrier\/ca , + kbrda:carrier\/computer%20tape%20cartridge ; + skos:broadMatch marc:TapeCartridge ; + skos:broader kbrda:Computer , + ktg:ElectronicStorageMedium , + ktg:TapeCartridge ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "ca" ; + rdfs:label "Datorbandmagasin"@sv , + "Computer tape cartridge"@en . + +kbrda:ComputerTapeCassette a bf:Carrier ; + owl:sameAs kbrda:carrier\/cf , + kbrda:carrier\/computer%20tape%20cassette ; + skos:broadMatch marc:TapeCassette ; + skos:broader kbrda:Computer , + ktg:ElectronicStorageMedium , + ktg:TapeCassette ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "cf" ; + rdfs:label "Datorkassett"@sv , + "Computer tape cassette"@en . + +kbrda:ComputerTapeReel a bf:Carrier ; + owl:sameAs kbrda:carrier\/ch , + kbrda:carrier\/computer%20tape%20reel ; + skos:broadMatch marc:TapeReel ; + skos:broader kbrda:Computer , + ktg:ElectronicStorageMedium , + ktg:TapeReel ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "ch" ; + rdfs:label "Datorbandspole"@sv , + "Computer tape reel"@en . + +kbrda:FilmCartridge a bf:Carrier ; + owl:sameAs kbrda:carrier\/film%20cartridge , + kbrda:carrier\/mc ; + skos:broader kbrda:Projected ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "mc" ; + rdfs:label "Filmmagasin"@sv , + "Film cartridge"@en . + +kbrda:FilmCassette a bf:Carrier ; + owl:sameAs kbrda:carrier\/film%20cassette , + kbrda:carrier\/mf ; + skos:broader kbrda:Projected ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "mf" ; + rdfs:label "Filmkassett"@sv , + "Film cassette"@en . + +kbrda:FilmReel a bf:Carrier ; + owl:sameAs kbrda:carrier\/film%20reel , + kbrda:carrier\/mr ; + skos:broader kbrda:Projected ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "mr" ; + rdfs:label "Filmspole"@sv , + "Film reel"@en . + +kbrda:FilmRoll a bf:Carrier ; + owl:sameAs kbrda:carrier\/film%20roll , + kbrda:carrier\/mo ; + skos:broader kbrda:Projected ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "mo" ; + rdfs:label "Filmrulle"@sv , + "Film roll"@en . + +kbrda:Filmslip a bf:Carrier ; + owl:sameAs kbrda:carrier\/filmslip , + kbrda:carrier\/gd ; + skos:broader kbrda:Projected ; + skos:exactMatch , + , + marc:Filmslip ; + skos:inScheme ; + skos:notation "gd" ; + rdfs:label "Filmremsa"@sv , + "Filmslip"@en . + +kbrda:Filmstrip a bf:Carrier ; + owl:sameAs kbrda:carrier\/filmstrip , + kbrda:carrier\/gf ; + skos:broader kbrda:Projected ; + skos:exactMatch , + , + marc:Filmstrip , + marc:FilmstripRoll ; + skos:inScheme ; + skos:notation "gf" ; + rdfs:label "Bildband"@sv , + "Filmstrip"@en . + +kbrda:FilmstripCartridge a bf:Carrier ; + owl:sameAs kbrda:carrier\/filmstrip%20cartridge , + kbrda:carrier\/gc ; + skos:broader kbrda:Projected ; + skos:exactMatch , + , + marc:FilmstripCartridge ; + skos:inScheme ; + skos:notation "gc" ; + rdfs:label "Bildbandsmagasin"@sv , + "Filmstrip cartridge"@en . + +kbrda:Flipchart a bf:Carrier ; + owl:sameAs kbrda:carrier\/flipchart , + kbrda:carrier\/nn ; + skos:broader kbrda:Unmediated ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "nn" ; + rdfs:label "Blädderblock"@sv , + "Flipchart"@en . + +kbrda:Microfiche a bf:Carrier ; + owl:sameAs kbrda:carrier\/he , + kbrda:carrier\/microfiche ; + skos:broader kbrda:Microform , + marc:Microfiche ; + skos:exactMatch , + , + marc:Microfiche ; + skos:inScheme ; + skos:notation "he" ; + rdfs:label "Mikrofiche"@sv , + "Microfiche"@en . + +kbrda:MicroficheCassette a bf:Carrier ; + owl:sameAs kbrda:carrier\/hf , + kbrda:carrier\/microfiche%20cassette ; + skos:broader kbrda:Microform ; + skos:exactMatch , + , + marc:MicroficheCassette ; + skos:inScheme ; + skos:notation "hf" ; + rdfs:label "Mikrofichekassett"@sv , + "Microfiche cassette"@en . + +kbrda:MicrofilmCartridge a bf:Carrier ; + owl:sameAs kbrda:carrier\/hb , + kbrda:carrier\/microfilm%20cartridge ; + skos:broader kbrda:Microform , + ktg:Microfilm ; + skos:exactMatch , + , + marc:MicrofilmCartridge ; + skos:inScheme ; + skos:notation "hb" ; + rdfs:label "Mikrofilmsmagasin"@sv , + "Microfilm cartridge"@en . + +kbrda:MicrofilmCassette a bf:Carrier ; + owl:sameAs kbrda:carrier\/hc , + kbrda:carrier\/microfilm%20cassette ; + skos:broader kbrda:Microform , + ktg:Microfilm ; + skos:exactMatch , + , + marc:MicrofilmCassette ; + skos:inScheme ; + skos:notation "hc" ; + rdfs:label "Mikrofilmskassett"@sv , + "Microfilm cassette"@en . + +kbrda:MicrofilmReel a bf:Carrier ; + owl:sameAs kbrda:carrier\/hd , + kbrda:carrier\/microfilm%20reel ; + skos:broader kbrda:Microform , + ktg:Microfilm ; + skos:exactMatch , + , + marc:MicrofilmReel ; + skos:inScheme ; + skos:notation "hd" ; + rdfs:label "Mikrofilmsspole"@sv , + "Microfilm reel"@en . + +kbrda:MicrofilmRoll a bf:Carrier ; + owl:sameAs kbrda:carrier\/hj , + kbrda:carrier\/microfilm%20roll ; + skos:broader kbrda:Microform , + ktg:Microfilm , + ktg:VideoStorageMedium ; + skos:exactMatch , + , + marc:MicrofilmRoll ; + skos:inScheme ; + skos:notation "hj" ; + rdfs:label "Mikrofilmsrulle"@sv , + "Microfilm roll"@en . + +kbrda:MicrofilmSlip a bf:Carrier ; + owl:sameAs kbrda:carrier\/hh , + kbrda:carrier\/microfilm%20slip ; + skos:broader kbrda:Microform ; + skos:exactMatch , + , + marc:MicrofilmSlip ; + skos:inScheme ; + skos:notation "hh" ; + rdfs:label "Mikrofilmsremsa"@sv , + "Microfilm slip"@en . + +kbrda:Microopaque a bf:Carrier ; + owl:sameAs kbrda:carrier\/hg , + kbrda:carrier\/microopaque ; + skos:broader kbrda:Microform , + marc:Microopaque ; + skos:exactMatch , + , + marc:Microopaque ; + skos:inScheme ; + skos:notation "hg" ; + rdfs:label "Mikrokort"@sv , + "Microopaque"@en . + +kbrda:MicroscopeSlide a bf:Carrier ; + owl:sameAs kbrda:carrier\/microscope%20slide , + kbrda:carrier\/pp ; + skos:broader kbrda:Microscopic ; + skos:exactMatch , + , + marc:MicroscopeSlide ; + skos:inScheme ; + skos:notation "pp" ; + rdfs:label "Mikroskoperingspreparat"@sv , + "Microscope slide"@en . + +kbrda:Object a bf:Carrier ; + owl:sameAs kbrda:carrier\/nr , + kbrda:carrier\/object ; + skos:broader kbrda:Unmediated ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "nr" . + +kbrda:OnlineResource a bf:Carrier ; + owl:sameAs kbrda:carrier\/cr , + kbrda:carrier\/online%20resource ; + skos:broader kbrda:Computer ; + skos:closeMatch marc:Online , + ktg:DigitalForm , + marc:Remote ; + skos:exactMatch , + , + marc:OnlineResource , + marc:Online ; + skos:inScheme ; + skos:notation "cr" . + +kbrda:OverheadTransparency a bf:Carrier ; + owl:sameAs kbrda:carrier\/gt , + kbrda:carrier\/overhead%20transparency ; + skos:broader kbrda:Projected ; + skos:exactMatch , + , + marc:Transparency ; + skos:inScheme ; + skos:notation "gt" ; + rdfs:label "OH-bild"@sv , + "Overhead transparency"@en . + +kbrda:PerformedMusic a bf:Content ; + owl:sameAs kbrda:content\/performed%20music , + kbrda:content\/prm ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "prm" . + +kbrda:Roll a bf:Carrier ; + owl:sameAs kbrda:carrier\/na , + kbrda:carrier\/roll ; + skos:broader kbrda:Unmediated ; + skos:exactMatch , + , + marc:Roll ; + skos:inScheme ; + skos:notation "na" ; + rdfs:label "Rulle"@sv , + "Roll"@en . + +kbrda:Sheet a bf:Carrier ; + owl:sameAs kbrda:carrier\/nb , + kbrda:carrier\/sheet ; + skos:broader kbrda:Unmediated ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "nb" ; + rdfs:label "Ark"@sv , + "Sheet"@en . + +kbrda:Slide a bf:Carrier ; + owl:sameAs kbrda:carrier\/gs , + kbrda:carrier\/slide ; + skos:broader kbrda:Projected ; + skos:exactMatch , + , + marc:Slide ; + skos:inScheme ; + skos:notation "gs" ; + rdfs:label "Diabild"@sv , + "Slide"@en . + +kbrda:SoundTrackReel a bf:Carrier ; + owl:sameAs kbrda:carrier\/si , + kbrda:carrier\/sound%20track%20reel ; + skos:broader kbrda:Audio , + ktg:SoundStorageMedium ; + skos:exactMatch , + , + marc:SoundTrackFilm ; + skos:inScheme ; + skos:notation "si" ; + rdfs:label "Sound-track reel"@en . + +kbrda:Sounds a bf:Content ; + owl:sameAs kbrda:content\/snd , + kbrda:content\/sounds ; + skos:exactMatch , + , + marc:Sound ; + skos:inScheme ; + skos:notation "snd" . + +kbrda:SpokenWord a bf:Content ; + owl:sameAs kbrda:content\/spoken%20word , + kbrda:content\/spw ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "spw" . + +kbrda:StereographCard a bf:Carrier ; + owl:sameAs kbrda:carrier\/eh , + kbrda:carrier\/stereograph%20card ; + skos:broader kbrda:Stereographic ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "eh" ; + rdfs:label "Stereografiskt kort"@sv , + "Stereograph card"@en . + +kbrda:StereographDisc a bf:Carrier ; + owl:sameAs kbrda:carrier\/es , + kbrda:carrier\/stereograph%20disc ; + skos:broader kbrda:Stereographic ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "es" ; + rdfs:label "Stereografisk skiva"@sv , + "Stereograph disc"@en . + +kbrda:VideoCartridge a bf:Carrier ; + owl:sameAs kbrda:carrier\/vc , + kbrda:carrier\/video%20cartridge ; + skos:broader kbrda:Video , + ktg:VideoStorageMedium ; + skos:exactMatch , + , + marc:Videocartridge ; + skos:inScheme ; + skos:notation "vc" ; + rdfs:label "Videomagasin"@sv , + "Video cartridge"@en . + +kbrda:Videocassette a bf:Carrier ; + owl:sameAs kbrda:carrier\/vf , + kbrda:carrier\/videocassette ; + skos:broader kbrda:Video , + ktg:VideoStorageMedium , + ktg:TapeCassette ; + skos:exactMatch , + , + marc:Videocassette ; + skos:inScheme ; + skos:notation "vf" ; + rdfs:label "Videokassett"@sv , + "Videocassette"@en . + +kbrda:Videodisc a bf:Carrier ; + owl:sameAs kbrda:carrier\/vd , + kbrda:carrier\/videodisc ; + skos:broader kbrda:Video , + ktg:VideoStorageMedium ; + skos:exactMatch , + , + marc:Videodisc ; + skos:inScheme ; + skos:notation "vd" ; + rdfs:label "Videoskiva"@sv , + "Video Disc"@en . + +kbrda:VideotapeReel a bf:Carrier ; + owl:sameAs kbrda:carrier\/videotape%20reel , + kbrda:carrier\/vr ; + skos:broader kbrda:Video , + ktg:VideoStorageMedium , + ktg:TapeReel ; + skos:closeMatch marc:Videotape ; + skos:exactMatch , + , + marc:Videoreel ; + skos:inScheme ; + skos:notation "vr" ; + rdfs:label "Videospole"@sv , + "Videotape reel"@en . + +kbrda:Volume a bf:Carrier ; + owl:sameAs kbrda:carrier\/nc , + kbrda:carrier\/volume ; + skos:broader kbrda:Unmediated ; + skos:exactMatch , + ; + skos:inScheme ; + skos:notation "nc" ; + rdfs:label "Volym"@sv , + "Volume"@en . From c46086c66fb020333f3b265128358872a2215a7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Mon, 12 May 2025 11:19:36 +0200 Subject: [PATCH 60/69] Use `skos:prefLabel` --- source/categories/contentgenres.ttl | 6 +++--- source/categories/genreforms.ttl | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/source/categories/contentgenres.ttl b/source/categories/contentgenres.ttl index 3ce6bdf6..ffbd4167 100644 --- a/source/categories/contentgenres.ttl +++ b/source/categories/contentgenres.ttl @@ -33,7 +33,7 @@ g:Fiction a :Genre ; g:LinguisticWork a :Genre ; :altLabel "Literature"@en , "Litteratur"@sv ; - :prefLabel "Linguistic work"@en , + skos:prefLabel "Linguistic work"@en , "Språkligt verk"@sv . g:Literature a :Genre ; @@ -51,7 +51,7 @@ g:Music a :Genre . g:Manuscript a :Genre . g:Software a :Genre ; - :prefLabel "Mjukvara"@sv , + skos:prefLabel "Mjukvara"@sv , "Software"@en . g:Multimedia a :Genre ; @@ -135,7 +135,7 @@ g:Encyclopedia a :Genre ; "Encyclopedia"@en . g:FindingAid a :GenreForm ; - :prefLabel "finding aid"@en ; + skos:prefLabel "finding aid"@en ; skos:closeMatch marcgt:fin . g:Juridiskt%20material a :Genre ; diff --git a/source/categories/genreforms.ttl b/source/categories/genreforms.ttl index 84100994..4eadae34 100644 --- a/source/categories/genreforms.ttl +++ b/source/categories/genreforms.ttl @@ -272,7 +272,7 @@ gf:Note a :GenreForm ; gf:Script a :GenreForm ; skos:broader kbrda:Text ; - :prefLabel "script"@en ; + skos:prefLabel "script"@en ; skos:closeMatch marcgt:scr . gf:Screenplay a :GenreForm ; From 1e5d9591532354ba7f7cef966263085b25e8a116 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Mon, 12 May 2025 11:21:51 +0200 Subject: [PATCH 61/69] Define singularLabelByLang and pluralLabelByLang --- sys/context/shared.jsonld | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/context/shared.jsonld b/sys/context/shared.jsonld index fd80062f..4c871dd7 100644 --- a/sys/context/shared.jsonld +++ b/sys/context/shared.jsonld @@ -52,7 +52,8 @@ "commentByLang": {"@id": "comment", "@container": "@language"}, "prefLabelByLang": {"@id": "prefLabel", "@container": "@language"}, "altLabelByLang": {"@id": "altLabel", "@container": "@language"}, - "hiddenLabelByLang": {"@id": "hiddenLabel", "@container": "@language"}, + "singularLabelByLang": {"@id": "singularLabel", "@container": "@language"}, + "pluralLabelByLang": {"@id": "pluralLabel", "@container": "@language"}, "noteByLang": {"@id": "note", "@container": "@language"}, "definitionByLang": {"@id": "definition", "@container": "@language"}, "scopeNoteByLang": {"@id": "scopeNote", "@container": "@language"}, From baba40b3a6720b2f61ff9f4a152ddb40cf6a6677 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Mon, 12 May 2025 11:36:33 +0200 Subject: [PATCH 62/69] Use `skos:altLabel` --- source/categories/contentgenres.ttl | 4 ++-- source/categories/genreforms.ttl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source/categories/contentgenres.ttl b/source/categories/contentgenres.ttl index ffbd4167..96679f07 100644 --- a/source/categories/contentgenres.ttl +++ b/source/categories/contentgenres.ttl @@ -31,7 +31,7 @@ g:Fiction a :Genre ; skos:narrowMatch marc:FictionNotFurtherSpecified . # 573355 # (SSB) g:LinguisticWork a :Genre ; - :altLabel "Literature"@en , + skos:altLabel "Literature"@en , "Litteratur"@sv ; skos:prefLabel "Linguistic work"@en , "Språkligt verk"@sv . @@ -147,7 +147,7 @@ g:TeachingMaterial a :Genre ; saogf:Instruktions-\%20och\%20undervisningsmaterial ; :singularLabel "Instruktions- och undervisningsmaterial"@sv , "Teaching Material"@en ; - :altLabel "Läromedel"@sv . + skos:altLabel "Läromedel"@sv . g:HandSignedCommunication a :Genre ; #skos:broadMatch ktg:Visual, kbgf:Text ; diff --git a/source/categories/genreforms.ttl b/source/categories/genreforms.ttl index 4eadae34..bdaab3ce 100644 --- a/source/categories/genreforms.ttl +++ b/source/categories/genreforms.ttl @@ -32,7 +32,7 @@ gf:WrittenBook a :GenreForm ; skos:narrowMatch barngf:Kapitelb%C3%B6cker ; :singularLabel "Written book"@en , "Skriven bok"@sv ; - :altLabel "Bok"@sv, "Book"@en . + skos:altLabel "Bok"@sv, "Book"@en . gf:Audiobook a :GenreForm ; :inCollection div:contentform ; From bd04e6022e993392728116b50a81dc6b72c391f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Mon, 12 May 2025 11:41:22 +0200 Subject: [PATCH 63/69] Use `skos:prefLabel` for RDA labels too --- source/rda/labels.ttl | 156 +++++++++++++++++++++--------------------- 1 file changed, 78 insertions(+), 78 deletions(-) diff --git a/source/rda/labels.ttl b/source/rda/labels.ttl index b4d28300..08c86c69 100644 --- a/source/rda/labels.ttl +++ b/source/rda/labels.ttl @@ -1,227 +1,227 @@ # NOTE: This just an extraction (using SPARQL, I presume) from our definitions... -prefix : +prefix skos: prefix kbrda: -kbrda:ApertureCard :prefLabel "maskhålkort"@sv , +kbrda:ApertureCard skos:prefLabel "maskhålkort"@sv , "aperture card"@en . -kbrda:Audio :prefLabel "audio"@sv , +kbrda:Audio skos:prefLabel "audio"@sv , "audio"@en . -kbrda:AudioCartridge :prefLabel "ljudmagasin"@sv , +kbrda:AudioCartridge skos:prefLabel "ljudmagasin"@sv , "audio cartridge"@en . -kbrda:AudioCylinder :prefLabel "ljudcylinder"@sv , +kbrda:AudioCylinder skos:prefLabel "ljudcylinder"@sv , "audio cylinder"@en . -kbrda:AudioDisc :prefLabel "ljudskiva"@sv , +kbrda:AudioDisc skos:prefLabel "ljudskiva"@sv , "audio disc"@en . -kbrda:AudioRoll :prefLabel "ljudrulle"@sv , +kbrda:AudioRoll skos:prefLabel "ljudrulle"@sv , "audio roll"@en . -kbrda:Audiocassette :prefLabel "ljudkassett"@sv , +kbrda:Audiocassette skos:prefLabel "ljudkassett"@sv , "audiocassette"@en . -kbrda:AudiotapeReel :prefLabel "ljudspole"@sv , +kbrda:AudiotapeReel skos:prefLabel "ljudspole"@sv , "audiotape reel"@en . -kbrda:Card :prefLabel "bildkort"@sv , +kbrda:Card skos:prefLabel "bildkort"@sv , "card"@en . -kbrda:CartographicDataset :prefLabel "kartografiskt dataset"@sv , +kbrda:CartographicDataset skos:prefLabel "kartografiskt dataset"@sv , "cartographic dataset"@en . -kbrda:CartographicImage :prefLabel "kartografisk bild"@sv , +kbrda:CartographicImage skos:prefLabel "kartografisk bild"@sv , "cartographic image"@en . -kbrda:CartographicMovingImage :prefLabel "kartografisk rörlig bild"@sv , +kbrda:CartographicMovingImage skos:prefLabel "kartografisk rörlig bild"@sv , "cartographic moving image"@en . -kbrda:CartographicTactileImage :prefLabel "kartografisk taktil bild"@sv , +kbrda:CartographicTactileImage skos:prefLabel "kartografisk taktil bild"@sv , "cartographic tactile image"@en . -kbrda:CartographicTactileThreeDimensionalForm :prefLabel "kartografisk taktil tredimensionell form"@sv , +kbrda:CartographicTactileThreeDimensionalForm skos:prefLabel "kartografisk taktil tredimensionell form"@sv , "cartographic tactile three-dimensional form"@en . -kbrda:CartographicThreeDimensionalForm :prefLabel "kartografisk tredimensionell form"@sv , +kbrda:CartographicThreeDimensionalForm skos:prefLabel "kartografisk tredimensionell form"@sv , "cartographic three-dimensional form"@en . -kbrda:Computer :prefLabel "dator"@sv , +kbrda:Computer skos:prefLabel "dator"@sv , "computer"@en . -kbrda:ComputerCard :prefLabel "datorkort"@sv , +kbrda:ComputerCard skos:prefLabel "datorkort"@sv , "computer card"@en . -kbrda:ComputerChipCartridge :prefLabel "computer chip cartridge"@en . +kbrda:ComputerChipCartridge skos:prefLabel "computer chip cartridge"@en . -kbrda:ComputerDataset :prefLabel "computer dataset"@en . +kbrda:ComputerDataset skos:prefLabel "computer dataset"@en . -kbrda:ComputerDisc :prefLabel "datorskiva"@sv , +kbrda:ComputerDisc skos:prefLabel "datorskiva"@sv , "computer disc"@en . -kbrda:ComputerDiscCartridge :prefLabel "datorskivmagasin"@sv , +kbrda:ComputerDiscCartridge skos:prefLabel "datorskivmagasin"@sv , "computer disc cartridge"@en . -kbrda:ComputerProgram :prefLabel "datorprogram"@sv , +kbrda:ComputerProgram skos:prefLabel "datorprogram"@sv , "computer program"@en . -kbrda:ComputerTapeCartridge :prefLabel "datorbandmagasin"@sv , +kbrda:ComputerTapeCartridge skos:prefLabel "datorbandmagasin"@sv , "computer tape cartridge"@en . -kbrda:ComputerTapeCassette :prefLabel "datorkassett"@sv , +kbrda:ComputerTapeCassette skos:prefLabel "datorkassett"@sv , "computer tape cassette"@en . -kbrda:ComputerTapeReel :prefLabel "datorbandspole"@sv , +kbrda:ComputerTapeReel skos:prefLabel "datorbandspole"@sv , "computer tape reel"@en . -kbrda:FilmCartridge :prefLabel "filmmagasin"@sv , +kbrda:FilmCartridge skos:prefLabel "filmmagasin"@sv , "film cartridge"@en . -kbrda:FilmCassette :prefLabel "filmkassett"@sv , +kbrda:FilmCassette skos:prefLabel "filmkassett"@sv , "film cassette"@en . -kbrda:FilmReel :prefLabel "filmspole"@sv , +kbrda:FilmReel skos:prefLabel "filmspole"@sv , "film reel"@en . -kbrda:FilmRoll :prefLabel "filmrulle"@sv , +kbrda:FilmRoll skos:prefLabel "filmrulle"@sv , "film roll"@en . -kbrda:Filmslip :prefLabel "filmremsa"@sv , +kbrda:Filmslip skos:prefLabel "filmremsa"@sv , "filmslip"@en . -kbrda:Filmstrip :prefLabel "bildband"@sv , +kbrda:Filmstrip skos:prefLabel "bildband"@sv , "filmstrip"@en . -kbrda:FilmstripCartridge :prefLabel "bildbandsmagasin"@sv , +kbrda:FilmstripCartridge skos:prefLabel "bildbandsmagasin"@sv , "filmstrip cartridge"@en . -kbrda:Flipchart :prefLabel "blädderblock"@sv , +kbrda:Flipchart skos:prefLabel "blädderblock"@sv , "flipchart"@en . -kbrda:Microfiche :prefLabel "mikrofiche"@sv , +kbrda:Microfiche skos:prefLabel "mikrofiche"@sv , "microfiche"@en . -kbrda:MicroficheCassette :prefLabel "mikrofichekassett"@sv , +kbrda:MicroficheCassette skos:prefLabel "mikrofichekassett"@sv , "microfiche cassette"@en . -kbrda:MicrofilmCartridge :prefLabel "mikrofilmsmagasin"@sv , +kbrda:MicrofilmCartridge skos:prefLabel "mikrofilmsmagasin"@sv , "microfilm cartridge"@en . -kbrda:MicrofilmCassette :prefLabel "mikrofilmskassett"@sv , +kbrda:MicrofilmCassette skos:prefLabel "mikrofilmskassett"@sv , "microfilm cassette"@en . -kbrda:MicrofilmReel :prefLabel "mikrofilmsspole"@sv , +kbrda:MicrofilmReel skos:prefLabel "mikrofilmsspole"@sv , "microfilm reel"@en . -kbrda:MicrofilmRoll :prefLabel "mikrofilmsrulle"@sv , +kbrda:MicrofilmRoll skos:prefLabel "mikrofilmsrulle"@sv , "microfilm roll"@en . -kbrda:MicrofilmSlip :prefLabel "mikrofilmsremsa"@sv , +kbrda:MicrofilmSlip skos:prefLabel "mikrofilmsremsa"@sv , "microfilm slip"@en . -kbrda:Microform :prefLabel "mikroform"@sv , +kbrda:Microform skos:prefLabel "mikroform"@sv , "microform"@en . -kbrda:Microopaque :prefLabel "mikrokort"@sv , +kbrda:Microopaque skos:prefLabel "mikrokort"@sv , "microopaque"@en . -kbrda:MicroscopeSlide :prefLabel "mikroskoperingspreparat"@sv , +kbrda:MicroscopeSlide skos:prefLabel "mikroskoperingspreparat"@sv , "microscope slide"@en . -kbrda:Microscopic :prefLabel "mikroskopisk"@sv , +kbrda:Microscopic skos:prefLabel "mikroskopisk"@sv , "microscopic"@en . -kbrda:NotatedMovement :prefLabel "notated movement"@en . +kbrda:NotatedMovement skos:prefLabel "notated movement"@en . -kbrda:NotatedMusic :prefLabel "notated music"@en . +kbrda:NotatedMusic skos:prefLabel "notated music"@en . -kbrda:Object :prefLabel "föremål"@sv , +kbrda:Object skos:prefLabel "föremål"@sv , "object"@en . -kbrda:OnlineResource :prefLabel "onlineresurs"@sv , +kbrda:OnlineResource skos:prefLabel "onlineresurs"@sv , "online resource"@en . -kbrda:OverheadTransparency :prefLabel "OH-bild"@sv , +kbrda:OverheadTransparency skos:prefLabel "OH-bild"@sv , "overhead transparency"@en . -kbrda:PerformedMusic :prefLabel "framförd musik"@sv , +kbrda:PerformedMusic skos:prefLabel "framförd musik"@sv , "performed music"@en . -kbrda:Projected :prefLabel "projicerad"@sv , +kbrda:Projected skos:prefLabel "projicerad"@sv , "projected"@en . -kbrda:Roll :prefLabel "rulle"@sv , +kbrda:Roll skos:prefLabel "rulle"@sv , "roll"@en . -kbrda:Sheet :prefLabel "ark"@sv , +kbrda:Sheet skos:prefLabel "ark"@sv , "sheet"@en . -kbrda:Slide :prefLabel "diabild"@sv , +kbrda:Slide skos:prefLabel "diabild"@sv , "slide"@en . -kbrda:SoundTrackReel :prefLabel "sound-track reel"@en . +kbrda:SoundTrackReel skos:prefLabel "sound-track reel"@en . -kbrda:Sounds :prefLabel "ljud (utom tal och musik)"@sv , +kbrda:Sounds skos:prefLabel "ljud (utom tal och musik)"@sv , "sounds"@en . -kbrda:SpokenWord :prefLabel "tal"@sv , +kbrda:SpokenWord skos:prefLabel "tal"@sv , "spoken word"@en . -kbrda:StereographCard :prefLabel "stereografiskt kort"@sv , +kbrda:StereographCard skos:prefLabel "stereografiskt kort"@sv , "stereograph card"@en . -kbrda:StereographDisc :prefLabel "stereografisk skiva"@sv , +kbrda:StereographDisc skos:prefLabel "stereografisk skiva"@sv , "stereograph disc"@en . -kbrda:Stereographic :prefLabel "stereografisk"@sv , +kbrda:Stereographic skos:prefLabel "stereografisk"@sv , "stereographic"@en . -kbrda:StillImage :prefLabel "stillbild"@sv , +kbrda:StillImage skos:prefLabel "stillbild"@sv , "still image"@en . -kbrda:TactileImage :prefLabel "taktil bild"@sv , +kbrda:TactileImage skos:prefLabel "taktil bild"@sv , "tactile image"@en . -kbrda:TactileNotatedMovement :prefLabel "tactile notated movement"@en . +kbrda:TactileNotatedMovement skos:prefLabel "tactile notated movement"@en . -kbrda:TactileNotatedMusic :prefLabel "tactile notated music"@en . +kbrda:TactileNotatedMusic skos:prefLabel "tactile notated music"@en . -kbrda:TactileText :prefLabel "taktil text"@sv , +kbrda:TactileText skos:prefLabel "taktil text"@sv , "tactile text"@en . -kbrda:TactileThreeDimensionalForm :prefLabel "taktil tredimensionell form"@sv , +kbrda:TactileThreeDimensionalForm skos:prefLabel "taktil tredimensionell form"@sv , "tactile three-dimensional form"@en . -kbrda:Text :prefLabel "text"@sv , +kbrda:Text skos:prefLabel "text"@sv , "text"@en . -kbrda:ThreeDimensionalForm :prefLabel "tredimensionell form"@sv , +kbrda:ThreeDimensionalForm skos:prefLabel "tredimensionell form"@sv , "three-dimensional form"@en . -kbrda:ThreeDimensionalMovingImage :prefLabel "tredimensionell rörlig bild"@sv , +kbrda:ThreeDimensionalMovingImage skos:prefLabel "tredimensionell rörlig bild"@sv , "three-dimensional moving image"@en . -kbrda:TwoDimensionalMovingImage :prefLabel "tvådimensionell rörlig bild"@sv , +kbrda:TwoDimensionalMovingImage skos:prefLabel "tvådimensionell rörlig bild"@sv , "two-dimensional moving image"@en . -kbrda:Unmediated :prefLabel "omedierad"@sv , +kbrda:Unmediated skos:prefLabel "omedierad"@sv , "unmediated"@en . -kbrda:Video :prefLabel "video"@sv , +kbrda:Video skos:prefLabel "video"@sv , "video"@en . -kbrda:VideoCartridge :prefLabel "videomagasin"@sv , +kbrda:VideoCartridge skos:prefLabel "videomagasin"@sv , "video cartridge"@en . -kbrda:Videocassette :prefLabel "videokassett"@sv , +kbrda:Videocassette skos:prefLabel "videokassett"@sv , "videocassette"@en . -kbrda:Videodisc :prefLabel "videoskiva"@sv , +kbrda:Videodisc skos:prefLabel "videoskiva"@sv , "videodisc"@en . -kbrda:VideotapeReel :prefLabel "videospole"@sv , +kbrda:VideotapeReel skos:prefLabel "videospole"@sv , "videotape reel"@en . -kbrda:Volume :prefLabel "volym"@sv , +kbrda:Volume skos:prefLabel "volym"@sv , "volume"@en . From 861c4abac0505866c0a7af52ba894a7b358da211 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Mon, 12 May 2025 18:00:13 +0200 Subject: [PATCH 64/69] Add carrierforms categories to ktg dataset --- source/datasets/idkbse.ttl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/datasets/idkbse.ttl b/source/datasets/idkbse.ttl index aa9a5a60..ee201662 100644 --- a/source/datasets/idkbse.ttl +++ b/source/datasets/idkbse.ttl @@ -155,7 +155,8 @@ base :sourceData [ :uri 'build/ktg.json.lines' ; :sourceData [ :uri 'source/categories/contentforms.ttl' ] , [ :uri 'source/categories/genreforms.ttl' ] , - [ :uri 'source/categories/contentgenres.ttl' ] ] ; + [ :uri 'source/categories/contentgenres.ttl' ] , + [ :uri 'source/categories/carrierforms.ttl' ] ] ; :uriSpace "/term/" ; #:uriSpace "/term/ktg/" ; :created "2025-05-05T09:57:56Z"^^xsd:dateTime . From 4b1d9eaa75da3dc8f270ad03d26f532adbc1859d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Mon, 12 May 2025 19:25:49 +0200 Subject: [PATCH 65/69] Add ktg: to marc: mappings (from marcmatches.ttl) --- source/categories/contentgenres.ttl | 15 +++++++++++++++ source/categories/genreforms.ttl | 23 ++++++++++++++++++++++- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/source/categories/contentgenres.ttl b/source/categories/contentgenres.ttl index 96679f07..71612171 100644 --- a/source/categories/contentgenres.ttl +++ b/source/categories/contentgenres.ttl @@ -159,6 +159,7 @@ g:Novel a :Genre ; skos:broader g:Literature ; skos:broadMatch gf:Book ; skos:exactMatch saogf:Romaner ; + skos:closeMatch marc:Novel ; :singularLabel "Roman"@sv , "Novel"@en . @@ -369,3 +370,17 @@ g:Standard a :Genre ; skos:exactMatch saogf:Standarder ; :singularLabel "Standard"@sv , "Standard"@en . + +# from +g:ConferenceMaterial skos:closeMatch marc:ConferencePublication . +g:Statistics skos:closeMatch marc:Statistics . +g:Encyclopedia skos:closeMatch marc:Encyclopedia . +g:Catalogue skos:closeMatch marc:Catalog . +g:Calendar skos:closeMatch marc:Calendar . +g:Patent skos:closeMatch marc:PatentDocument . +g:ShortStory skos:closeMatch marc:ShortStory . +g:Review skos:closeMatch marc:Review . +g:Standard skos:closeMatch marc:StandardsSpecification . +g:Interview skos:closeMatch marc:Interview . +g:Newspaper skos:closeMatch marc:Newspaper . +g:Periodical skos:closeMatch marc:Periodical . diff --git a/source/categories/genreforms.ttl b/source/categories/genreforms.ttl index bdaab3ce..fda2a731 100644 --- a/source/categories/genreforms.ttl +++ b/source/categories/genreforms.ttl @@ -429,12 +429,17 @@ gf:Trailer a :GenreForm ; "Trailer"@en . gf:Website a :GenreForm ; - skos:broader ktg:OnlineResource , + skos:broader kbrda:OnlineResource , ktg:Integrating ; skos:exactMatch saogf:Webbplatser ; rdfs:label "Webbplats"@sv , "Website"@en . +gf:LooseLeaf a :GenreForm ; + skos:broader ktg:Integrating ; + rdfs:label "Lösblad"@sv , + "Loose-leaf"@en . + g:Blog a :GenreForm ; skos:broader gf:Website , gf:TextPiece ; @@ -564,6 +569,22 @@ gf:Textleaf a :GenreForm ; # gf:SmallText # TODO: CarrierGenreForm? skos:broader gf:TextPiece ; rdfs:label "Textblad"@sv , "Text leaf"@en . +# from +gf:Lexicon skos:closeMatch marc:Dictionary . +gf:Database skos:closeMatch marc:UpdatingDatabase . +gf:Website skos:closeMatch marc:UpdatingWebSite . +gf:Film skos:closeMatch marc:MotionPicture . +gf:Postcard skos:closeMatch marc:PictureCardPostCard . +gf:ComputerGame skos:closeMatch marc:ComputerTypeOfFileType-g . +gf:Painting skos:closeMatch marc:Painting . +gf:Drawing skos:closeMatch marc:Drawing . +gf:Map skos:closeMatch marc:Map . +gf:Globe skos:closeMatch marc:Globe . +gf:Atlas skos:closeMatch marc:Atlas . +gf:Diagram skos:closeMatch marc:NonProjMaterialType-n . +gf:Photograph skos:closeMatch marc:Photograph . +gf:Yearbook skos:closeMatch marc:Yearbook . + #gf:OnlineResource a :CarrierForm . # TODO: move to carrierform... ## TODO: Move these instance MARC-types and -genreForms to work (and drop on marcframe revert?) From fea1649f347573edce68b5bc6ef631bafb57e1bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Tue, 13 May 2025 13:40:49 +0200 Subject: [PATCH 66/69] Add more marc category mappings --- source/categories/contentforms.ttl | 3 ++- source/categories/contentgenres.ttl | 1 + source/rda/mediacarriers.ttl | 3 +-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/source/categories/contentforms.ttl b/source/categories/contentforms.ttl index db41189b..6003aa0a 100644 --- a/source/categories/contentforms.ttl +++ b/source/categories/contentforms.ttl @@ -2,6 +2,7 @@ prefix : prefix rdfs: prefix skos: +prefix marc: prefix saogf: prefix kbrda: prefix div: @@ -35,7 +36,7 @@ ktg:Object a :Category . ktg:StillImage a :Category ; skos:broader ktg:Visual ; - skos:closeMatch saogf:Bilder . + skos:closeMatch saogf:Bilder, marc:Picture . ktg:Movement a :Category ; skos:prefLabel "Rörelser"@sv . diff --git a/source/categories/contentgenres.ttl b/source/categories/contentgenres.ttl index 71612171..032ab088 100644 --- a/source/categories/contentgenres.ttl +++ b/source/categories/contentgenres.ttl @@ -145,6 +145,7 @@ g:TeachingMaterial a :Genre ; rdfs:seeAlso ; skos:exactMatch saogf:L\%C3\%A4romedel , saogf:Instruktions-\%20och\%20undervisningsmaterial ; + skos:closeMatch marc:ProgrammedText ; :singularLabel "Instruktions- och undervisningsmaterial"@sv , "Teaching Material"@en ; skos:altLabel "Läromedel"@sv . diff --git a/source/rda/mediacarriers.ttl b/source/rda/mediacarriers.ttl index 7a0d59eb..204bdf6c 100644 --- a/source/rda/mediacarriers.ttl +++ b/source/rda/mediacarriers.ttl @@ -152,8 +152,7 @@ kbrda:AudioRoll a bf:Carrier ; skos:broader kbrda:Audio , ktg:SoundStorageMedium ; skos:exactMatch , - , - marc:Roll ; + ; skos:inScheme ; skos:notation "sq" ; rdfs:label "Ljudrulle"@sv , From 7cb858f93768456bfb2ebaf3637d2404c5b2ba49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Wed, 14 May 2025 09:02:54 +0200 Subject: [PATCH 67/69] Update category mappings --- source/categories/carrierforms.ttl | 3 ++- source/categories/genreforms.ttl | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/source/categories/carrierforms.ttl b/source/categories/carrierforms.ttl index 910072ab..acfebc53 100644 --- a/source/categories/carrierforms.ttl +++ b/source/categories/carrierforms.ttl @@ -18,6 +18,7 @@ ktg:PhysicalForm a :Category ; # TODO: Printed vs. Handmade as mixins for precoordinated (7x7)? ktg:Print a :Category; + skos:exactMatch marc:Print ; skos:broader :Unmediated . # Untenable(?): Handwritten / Typewritten / Photocopied => Purpose (Genre) OR Manufacture/Production @@ -51,7 +52,7 @@ ktg:PrintedVolume a :Category ; ktg:PrintedSheet a :Category ; - skos:broader kbrda:Print, kbrda:Sheet . + skos:broader ktg:Print, kbrda:Sheet . ktg:HandmadeSheet a :Category ; skos:broader kbrda:Unmediated, kbrda:Sheet . diff --git a/source/categories/genreforms.ttl b/source/categories/genreforms.ttl index fda2a731..a9cfe0d2 100644 --- a/source/categories/genreforms.ttl +++ b/source/categories/genreforms.ttl @@ -501,7 +501,7 @@ gf:DocumentaryComic a :GenreForm ; gf:Map a :GenreForm ; skos:broader kbrda:CartographicImage ; skos:closeMatch marcgt:map ; - skos:exactMatch marc:MapATwoDimensionalMap, tgm:Kartor ; + skos:exactMatch tgm:Kartor ; :singularLabel "Single map"@en , "Enskild karta"@sv . @@ -548,7 +548,7 @@ gf:ProfileMap a :GenreForm ; gf:MapATwoDimensionalMap a :GenreForm ; skos:broader gf:Map ; - skos:closeMatch marc:MapATwoDimensionalMap . + skos:exactMatch marc:MapATwoDimensionalMap . gf:MapDiagram a :GenreForm ; skos:broader gf:Map, gf:Diagram ; From 7d46b4077320b09dc454e93d4c6c19be95ea05e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Thu, 15 May 2025 16:07:19 +0200 Subject: [PATCH 68/69] Improve mappings for type normalization --- source/categories/contentforms.ttl | 3 ++- source/categories/contentgenres.ttl | 11 +++++++++-- source/rda/mediacarriers.ttl | 2 +- source/vocab/intersectionpatterns.ttl | 4 +++- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/source/categories/contentforms.ttl b/source/categories/contentforms.ttl index 6003aa0a..4a1e525a 100644 --- a/source/categories/contentforms.ttl +++ b/source/categories/contentforms.ttl @@ -4,6 +4,7 @@ prefix skos: prefix marc: prefix saogf: +prefix tgm: prefix kbrda: prefix div: prefix ktg: @@ -36,7 +37,7 @@ ktg:Object a :Category . ktg:StillImage a :Category ; skos:broader ktg:Visual ; - skos:closeMatch saogf:Bilder, marc:Picture . + skos:closeMatch saogf:Bilder, tgm:Bilder, marc:Picture . ktg:Movement a :Category ; skos:prefLabel "Rörelser"@sv . diff --git a/source/categories/contentgenres.ttl b/source/categories/contentgenres.ttl index 032ab088..dfc4686e 100644 --- a/source/categories/contentgenres.ttl +++ b/source/categories/contentgenres.ttl @@ -27,8 +27,8 @@ prefix ktg: # TODO: For some, do we want to *suggest* an expression category (see commented kbgf)? (Using skos:relatedMatch?) g:Fiction a :Genre ; - skos:narrowMatch marc:Fiction ; # 84678 # (SSB) - skos:narrowMatch marc:FictionNotFurtherSpecified . # 573355 # (SSB) + skos:broader g:Literature ; + skos:narrowMatch marc:Fiction . # 84678 # (SSB) # NOTE: only Audio(?) g:LinguisticWork a :Genre ; skos:altLabel "Literature"@en , @@ -42,6 +42,13 @@ g:Literature a :Genre ; :singularLabel "Litteratur"@sv , "Literature"@en . +#saogf:Litteraturtidskrifter skos:broader g:Literature . + +g:LiteraryFiction a :Genre ; + skos:broader g:Literature , g:Fiction ; + skos:exactMatch saogf:Sk%C3%B6nlitteratur ; + skos:closeMatch marc:FictionNotFurtherSpecified . # 573355 # (SSB) + g:Cartography a :Genre ; skos:closeMatch saogf:Kartor ; :singularLabel "Kartografiskt material"@sv . diff --git a/source/rda/mediacarriers.ttl b/source/rda/mediacarriers.ttl index 204bdf6c..21a2c5a3 100644 --- a/source/rda/mediacarriers.ttl +++ b/source/rda/mediacarriers.ttl @@ -662,7 +662,7 @@ kbrda:Videodisc a bf:Carrier ; ktg:VideoStorageMedium ; skos:exactMatch , , - marc:Videodisc ; + marc:Videodisc , marc:VideoMaterialType-d ; skos:inScheme ; skos:notation "vd" ; rdfs:label "Videoskiva"@sv , diff --git a/source/vocab/intersectionpatterns.ttl b/source/vocab/intersectionpatterns.ttl index 10bda665..08a94cdb 100644 --- a/source/vocab/intersectionpatterns.ttl +++ b/source/vocab/intersectionpatterns.ttl @@ -55,7 +55,9 @@ prefix : :Manuscript owl:intersectionOf (:PhysicalResource [ owl:onProperty :category ; owl:hasValue ktg:Manuscript ]) . -# TODO: +:Microform owl:intersectionOf (:PhysicalResource [ owl:onProperty :category ; owl:hasValue kbrda:Microform ]) . + +# TODO: missing 2: #:Archival owl:intersectionOf (:PhysicalResource [ ... ]) . #:Tactile owl:intersectionOf (:PhysicalResource [ ... ]) . From 011d24b91c4b95c04e16bfe18f39d3016590a2df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Lindstr=C3=B6m?= Date: Thu, 15 May 2025 17:14:10 +0200 Subject: [PATCH 69/69] Add more `marc:` category mappings --- source/categories/carrierforms.ttl | 1 + source/categories/contentgenres.ttl | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/source/categories/carrierforms.ttl b/source/categories/carrierforms.ttl index acfebc53..383a6273 100644 --- a/source/categories/carrierforms.ttl +++ b/source/categories/carrierforms.ttl @@ -141,6 +141,7 @@ ktg:CDBook a :Category ; ktg:AbstractElectronic a :Category ; ptg:abstract true ; + skos:closeMatch marc:Electronic ; rdfs:comment "A digital or electronically mediated resource."@en . ktg:DigitalForm a :Category ; diff --git a/source/categories/contentgenres.ttl b/source/categories/contentgenres.ttl index dfc4686e..524862a8 100644 --- a/source/categories/contentgenres.ttl +++ b/source/categories/contentgenres.ttl @@ -28,7 +28,7 @@ prefix ktg: g:Fiction a :Genre ; skos:broader g:Literature ; - skos:narrowMatch marc:Fiction . # 84678 # (SSB) # NOTE: only Audio(?) + skos:closeMatch marc:Fiction . # 84678 # (SSB) # NOTE: only Audio(?) g:LinguisticWork a :Genre ; skos:altLabel "Literature"@en ,