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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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 .