diff --git a/source/bibdb/terms.ttl b/source/bibdb/terms.ttl index 1f11225c5..feee31604 100644 --- a/source/bibdb/terms.ttl +++ b/source/bibdb/terms.ttl @@ -2,8 +2,105 @@ prefix owl: prefix rdfs: prefix skos: prefix kbv: +prefix idkbse_bibdb: prefix : :Registrant a skos:Concept ; skos:prefLabel "Registrant"@en, "Registrerande"@sv ; - rdfs:comment "Bibliotek i Librissamarbetet som skapar och underhåller metadata i den gemensamma datamängden."@sv . \ No newline at end of file + rdfs:comment "Bibliotek i Librissamarbetet som skapar och underhåller metadata i den gemensamma datamängden."@sv . + + +# https://git.kb.se/libris/bibdb/-/blob/develop/libdb/models.py#L262 +:natbib a idkbse_bibdb:LibraryType ; + skos:notation "natbib" ; + rdfs:label "Nationalbibliotek"@sv . + +:folkbib a idkbse_bibdb:LibraryType ; + skos:notation "folkbib" ; + rdfs:label "Folkbibliotek"@sv . + +:folkskolbib a idkbse_bibdb:LibraryType ; + skos:notation "folkskolbib" ; + rdfs:label "Folk- och skolbibliotek"@sv . + +:specbib a idkbse_bibdb:LibraryType ; + skos:notation "specbib" ; + rdfs:label "Specialbibliotek"@sv . + +:sjukbib a idkbse_bibdb:LibraryType ; + skos:notation "sjukbib" ; + rdfs:label "Sjukhusbibliotek"@sv . + +:myndbib a idkbse_bibdb:LibraryType ; + skos:notation "myndbib" ; + rdfs:label "Myndighetsbibliotek"@sv . + +:busbib a idkbse_bibdb:LibraryType ; + skos:notation "busbib" ; + rdfs:label "Företagsbibliotek"@sv . + +:musbib a idkbse_bibdb:LibraryType ; + skos:notation "musbib" ; + rdfs:label "Arkiv och museibibliotek"@sv . + +:muskom a idkbse_bibdb:LibraryType ; + skos:notation "muskom" ; + rdfs:label "Kommunalt museibibliotek"@sv . + +:muslan a idkbse_bibdb:LibraryType ; + skos:notation "muslan" ; + rdfs:label "Länsmuseibibliotek"@sv . + +:musstat a idkbse_bibdb:LibraryType ; + skos:notation "musstat" ; + rdfs:label "Statligt museibibliotek"@sv . + +:skolbib a idkbse_bibdb:LibraryType ; + skos:notation "skolbib" ; + rdfs:label "Skolbibliotek"@sv . + +:friskol a idkbse_bibdb:LibraryType ; + skos:notation "friskol" ; + rdfs:label "Friskolebibliotek"@sv . + +:gymbib a idkbse_bibdb:LibraryType ; + skos:notation "gymbib" ; + rdfs:label "Gymnasiebibliotek"@sv . + +:frisgym a idkbse_bibdb:LibraryType ; + skos:notation "frisgym" ; + rdfs:label "Friskolegymnasiebibliotek"@sv . + +:statskol a idkbse_bibdb:LibraryType ; + skos:notation "statskol" ; + rdfs:label "Statligt skolbibliotek"@sv . + +:vuxbib a idkbse_bibdb:LibraryType ; + skos:notation "vuxbib" ; + rdfs:label "Bibliotek på komvux/lärcentra"@sv . + +:univbib a idkbse_bibdb:LibraryType ; + skos:notation "univbib" ; + rdfs:label "Universitets- och högskolebibliotek"@sv . + +:folkhogbib a idkbse_bibdb:LibraryType ; + skos:notation "folkhogbib" ; + rdfs:label "Folkhögskolebibliotek"@sv . + +:ovrbib a idkbse_bibdb:LibraryType ; + skos:notation "ovrbib" ; + rdfs:label "Övriga bibliotek"@sv . + +# "typ av folkbibliotek" +# https://git.kb.se/libris/bibdb/-/blob/develop/libdb/models.py#L287 +:kommunbib a idkbse_bibdb:LibraryType ; + skos:notation "kommunbib" ; + rdfs:label "Kommunbibliotek"@sv . + +:lanecentral a idkbse_bibdb:LibraryType ; + skos:notation "lanecentral" ; + rdfs:label "Lånecentral"@sv . + +:lansbib a idkbse_bibdb:LibraryType ; + skos:notation "lansbib" ; + rdfs:label "Länsbibliotek"@sv . \ No newline at end of file diff --git a/source/construct-libraries.rq b/source/construct-libraries.rq index 39e9a43cf..9312107b4 100644 --- a/source/construct-libraries.rq +++ b/source/construct-libraries.rq @@ -2,22 +2,72 @@ prefix owl: prefix skos: prefix sdo: prefix bibdb: +prefix idkbse_bibdb: +prefix rdfs: prefix : base construct { ?library a ?libtype ; - :meta _:meta ; + :meta ?meta ; owl:sameAs ?bdb_id, ?sameas ; :sigel ?sigel ; :name ?name ; :url ?url ; :qualifier ?dept ; - :category ?registranturl . + idkbse_bibdb:libraryType ?libraryTypeUri ; + idkbse_bibdb:libraryType ?librarySubTypeUri ; + idkbse_bibdb:openingHours ?openHours ; + idkbse_bibdb:address ?address ; + idkbse_bibdb:ils ?ils ; + idkbse_bibdb:eodUri ?eodUri ; + idkbse_bibdb:linkResolver ?linkResolver ; + idkbse_bibdb:lopac ?lopac ; + :isPartOf ?org ; + :category ?registranturl ; + # TODO these should maybe be in :place + # TODO or group them similar to sdo:GeoCoordinates + idkbse_bibdb:latitude ?latitude ; + idkbse_bibdb:longitude ?longitude . #:place ?place . - _:meta :created ?created ; :modified ?modified . + ?address a ?addressType ; + idkbse_bibdb:extendedAddress ?extendedAddress ; + idkbse_bibdb:streetAddress ?streetAddress ; + idkbse_bibdb:postalCode ?postalCode ; + idkbse_bibdb:addressLocality ?addressLocality ; + idkbse_bibdb:email ?email ; + idkbse_bibdb:telephone ?telephone . + + ?ils a idkbse_bibdb:ILS ; + :url ?ils_url ; + idkbse_bibdb:bibIdSearchUri ?bibIdUri ; + idkbse_bibdb:isbnSearchUri ?isbnUri ; + idkbse_bibdb:issnSearchUri ?issnUri ; + idkbse_bibdb:itemStatusUri ?itemStatusUri . + + ?linkResolver a idkbse_bibdb:LinkResolver ; + rdfs:label ?linkResolverName ; + :uri ?linkResolverUrl . + + ?lopac a idkbse_bibdb:LOPAC ; + idkbse_bibdb:bibIdSearchUri ?lopac_bibIdUri_sv ; + idkbse_bibdb:bibIdSearchUri ?lopac_bibIdUri_en ; + idkbse_bibdb:isbnSearchUri ?lopac_isbnUri_sv ; + idkbse_bibdb:isbnSearchUri ?lopac_isbnUri_en ; + idkbse_bibdb:issnSearchUri ?lopac_issnUri_sv ; + idkbse_bibdb:issnSearchUri ?lopac_issnUri_en ; + idkbse_bibdb:myLoansUri ?myLoans_sv ; + idkbse_bibdb:myLoansUri ?myLoans_en ; + idkbse_bibdb:patronRegistrationUri ?patronRegistration_sv ; + idkbse_bibdb:patronRegistrationUri ?patronRegistration_en ; + idkbse_bibdb:displayMode ?displayMode. + #:url ?ils_url ; + + ?org a idkbse_bibdb:Organization ; + :name ?orgName ; + skos:notation ?orgCode . # TODO: Model a proper place/adress relation. # ?place a :Place ; @@ -30,6 +80,7 @@ construct { # ?country a :Country ; # :code ?country_code . + ?meta :created ?created ; :modified ?modified . } where { ?bdb_id @@ -42,6 +93,16 @@ construct { bind (iri('https://id.kb.se/term/bibdb/Registrant') as ?registranturl) } + optional { + ?bdb_id bibdb:library_type ?libraryType . + bind (iri(concat('https://id.kb.se/term/bibdb/', ?libraryType)) as ?libraryTypeUri) + } + + optional { + ?bdb_id bibdb:library_subtype ?librarySubType . + bind (iri(concat('https://id.kb.se/term/bibdb/', ?librarySubType)) as ?librarySubTypeUri) + } + optional { ?bdb_id bibdb:dept ?dept } @@ -65,6 +126,210 @@ construct { } bind(if(?type = sdo:Library, :Library, :Bibliography) as ?libtype) + optional { + ?bdb_id bibdb:ils ?ils . + + optional { + ?ils bibdb:catalogue_url ?ils_url . + FILTER(?ils_url != "" && ?ils_url != "http://") + } + + optional { + ?ils bibdb:opacsyntax_bibid ?bibIdUri . + FILTER(?bibIdUri != "") + } + optional { + ?ils bibdb:opacsyntax_isbn ?isbnUri . + FILTER(?isbnUri != "") + } + optional { + ?ils bibdb:opacsyntax_issn ?issnUri . + FILTER(?issnUri != "") + } + + optional { + ?ils bibdb:item_status_url ?itemStatusUri . + ?ils bibdb:item_status_level ?itemStatusLevel . + ?ils bibdb:item_status_webbsok ?itemStatusInSearch . + FILTER(?itemStatusUri != "" && ?itemStatusLevel && ?itemStatusInSearch) + } + + FILTER(bound(?ils_url) + || bound(?bibIdUri) + || bound(?isbnUri) + || bound(?issnUri) + || bound(?itemStatusUri) + ) + } + + optional { + ?bdb_id sdo:openingHoursSpecification ?openHours . + } + + optional { + ?bdb_id sdo:latitude ?latitude . + ?bdb_id sdo:longitude ?longitude . + FILTER(?latitude != 0 && ?longitude != 0) + } + + optional { + ?bdb_id sdo:address ?address . + + optional { + ?address bibdb:address_type ?contactType . + FILTER(?contactType != "") + } + + optional { + ?address bibdb:attention_dept ?extendedAddress . + FILTER(?extendedAddress != "") + } + + optional { + ?address sdo:streetAddress ?streetAddress . + FILTER(?streetAddress != "") + } + + optional { + ?address sdo:postalCode ?postalCode . + FILTER(?postalCode != "") + } + + optional { + ?address sdo:addressLocality ?addressLocality . + FILTER(?addressLocality != "") + } + + optional { + ?address sdo:email ?email . + FILTER(?email != "") + } + + optional { + ?address sdo:telephone ?telephone . + FILTER(?telephone != "") + } + + bind( + if(?contactType = "ill", idkbse_bibdb:ILLAddress, + if(?contactType = "del", idkbse_bibdb:DeliveryAddress, + if(?contactType = "vis", idkbse_bibdb:VisitingAddress, + if(?contactType = "inv", idkbse_bibdb:InvoicingAddress, + if(?contactType = "stat", idkbse_bibdb:StatisticalContactAddress, + idkbse_bibdb:PostalAddress ))))) + AS ?addressType + ) + + FILTER(bound(?extendedAddress) + || bound(?streetAddress) + || bound(?postalCode) + || bound(?addressLocality) + || bound(?email) + || bound(?telephone) + ) + } + + optional { + ?bdb_id bibdb:lopac ?lopac . + ?lopac bibdb:active ?active . + + optional { + ?lopac bibdb:syntax_bibid_swe ?bibIdUri_swe . + FILTER(?bibIdUri_swe != "") + BIND( STRLANG(str(?bibIdUri_swe), "sv") AS ?lopac_bibIdUri_sv ) . + } + optional { + ?lopac bibdb:syntax_bibid_eng ?bibIdUri_eng . + FILTER(?bibIdUri_eng != "") + BIND( STRLANG(str(?bibIdUri_eng), "en") AS ?lopac_bibIdUri_en ) . + } + + optional { + ?lopac bibdb:syntax_isbn_swe ?isbnUri_swe . + FILTER(?isbnUri_swe != "") + BIND( STRLANG(str(?isbnUri_swe), "sv") AS ?lopac_isbnUri_sv ) . + } + optional { + ?lopac bibdb:syntax_isbn_eng ?isbnUri_eng . + FILTER(?isbnUri_eng != "") + BIND( STRLANG(str(?isbnUri_eng), "en") AS ?lopac_isbnUri_en ) . + } + + optional { + ?lopac bibdb:syntax_issn_swe ?issnUri_swe . + FILTER(?issnUri_swe != "") + BIND( STRLANG(str(?issnUri_swe), "sv") AS ?lopac_issnUri_sv ) . + } + optional { + ?lopac bibdb:syntax_issn_eng ?issnUri_eng . + FILTER(?issnUri_eng != "") + BIND( STRLANG(str(?issnUri_eng), "en") AS ?lopac_issnUri_en ) . + } + + optional { + ?lopac bibdb:my_loans_swe ?myLoans_swe . + FILTER(?myLoans_swe != "") + BIND( STRLANG(str(?myLoans_swe), "sv") AS ?myLoans_sv ) . + } + optional { + ?lopac bibdb:my_loans_swe ?myLoans_eng . + FILTER(?myLoans_eng != "") + BIND( STRLANG(str(?myLoans_eng), "en") AS ?myLoans_en ) . + } + + optional { + ?lopac bibdb:librarycard_swe ?libraryCard_swe . + FILTER(?libraryCard_swe != "") + BIND( STRLANG(str(?libraryCard_swe), "sv") AS ?patronRegistration_sv ) . + } + optional { + ?lopac bibdb:librarycard_eng ?libraryCard_eng . + FILTER(?libraryCard_eng != "") + BIND( STRLANG(str(?libraryCard_eng), "en") AS ?patronRegistration_en ) . + } + + optional { + ?lopac bibdb:lightbox ?lightBoxBool . + bind(if(?lightBoxBool, idkbse_bibdb:Lightbox, idkbse_bibdb:Blank) as ?displayMode) + } + + filter(?active) + } + + optional { + ?bdb_id bibdb:eod_url ?eodUri . + ?bdb_id bibdb:eod ?eod . + FILTER(?eodUri != "" && ?eod) + } + + optional { + ?bdb_id bibdb:linkresolver_url ?linkResolverUrl . + FILTER(?linkResolverUrl != "") + } + optional { + ?bdb_id bibdb:linkresolver_name ?linkResolverName . + FILTER(?linkResolverName != "") + } + bind( + if(bound(?linkResolverUrl), + bnode(concat(str(?linkResolverUrl), str(?sigelslug))), + ?undefined + ) as ?linkResolver + ) + + optional { + ?bdb_id bibdb:organisation ?org_id . + ?org_id bibdb:code ?orgCode . + + optional { + ?org_id sdo:name ?orgName . + FILTER(?orgName != ""@en) + } + + bind(encode_for_uri(replace(str(?orgCode), "\\s+", "")) as ?orgSlug) + bind(iri(concat(str(coalesce(?uribase, )), ?orgSlug)) as ?org) + } + # optional { # ?bdb_id bibdb:country_code ?country_code . # FILTER(?country_code != "") @@ -89,4 +354,6 @@ construct { # bind(if(bound(?region) || bound(?lat), bnode(), ?NO_place) as ?place) # bind(if(bound(?place) && bound(?country_code), bnode(), ?NO_country) as ?country) + + bind(bnode(?sigelslug) as ?meta) } diff --git a/source/vocab/base.ttl b/source/vocab/base.ttl index e4a012e43..060b92097 100644 --- a/source/vocab/base.ttl +++ b/source/vocab/base.ttl @@ -23,7 +23,6 @@ @prefix : . @prefix bulk: . - : a owl:Ontology; owl:sameAs ; dc:title "KB Base Vocabulary"@en; diff --git a/source/vocab/display.jsonld b/source/vocab/display.jsonld index c534a9f0f..10179982f 100644 --- a/source/vocab/display.jsonld +++ b/source/vocab/display.jsonld @@ -599,6 +599,18 @@ "@type": "fresnel:Lens", "classLensDomain": "bulk:Execution", "showProperties": [ "bulk:status" ] + }, + "bibdb:LibraryOrganization": { + "@id": "bibdb:LibraryOrganization-chips", + "@type": "fresnel:Lens", + "classLensDomain": "bibdb:LibraryOrganization", + "showProperties": [ "name", "code" ] + }, + "bibdb:PostalAddress": { + "@id": "bibdb:PostalAddress-chips", + "@type": "fresnel:Lens", + "classLensDomain": "bibdb:PostalAddress", + "showProperties": [ "bibdb:extendedAddress", "bibdb:streetAddress", "bibdb:postalCode", "bibdb:addressLocality" ] } } }, @@ -817,7 +829,7 @@ "@type": "fresnel:Lens", "classLensDomain": "Library", "fresnel:extends": {"@id": "Library-chips"}, - "showProperties": [ "fresnel:super" ] + "showProperties": [ "fresnel:super", "isPartOf", "bibdb:libraryType", "url" ] }, "Bibliography": { "@id": "Bibliography-cards", @@ -1161,6 +1173,13 @@ "bulk:Job": { "fresnel:extends": {"@id": "Resource-cards"}, "showProperties": [ "fresnel:super", "bulk:status", "comment" ] + }, + "bibdb:PostalAddress": { + "@id": "bibdb:PostalAddress-cards", + "@type": "fresnel:Lens", + "classLensDomain": "bibdb:PostalAddress", + "fresnel:extends": {"@id": "bibdb:PostalAddress-chips"}, + "showProperties": [ "fresnel:super", "bibdb:email", "bibdb:telephone" ] } } }, @@ -1348,7 +1367,13 @@ }, "Library": { "fresnel:extends": {"@id": "Library-cards"}, - "showProperties": [ "fresnel:super" ] + "showProperties": [ + "fresnel:super", + "bibdb:openingHours", + "bibdb:address", + "bibdb:latitude", + "bibdb:longitude" + ] }, "MediaType": { "fresnel:extends": {"@id": "MediaType-cards"}, @@ -1457,7 +1482,6 @@ "fresnel:extends": {"@id": "ImageObject-chips"}, "showProperties": [ "fresnel:super", "thumbnail" ] } - } }, "search-cards": { diff --git a/source/vocab/platform.ttl b/source/vocab/platform.ttl index 013456c34..d4f9aa8ea 100644 --- a/source/vocab/platform.ttl +++ b/source/vocab/platform.ttl @@ -31,6 +31,7 @@ @prefix : . @prefix marc: . @prefix bulk: . +@prefix bibdb: . #:platform a :Category ; rdfs:comment " ... "@en . @@ -936,3 +937,209 @@ bulk:numFailed a :DatatypeProperty ; rdfs:label "Number of failed records"@en, "Antal misslyckade poster"@sv ; rdfs:domain bulk:Execution ; rdfs:range xsd:nonNegativeInteger . + +# BIBDB +bibdb:Organization a owl:Class ; + :category :platform ; + rdfs:label "Library organization"@en, "Bibliotekshuvudorganisation"@sv . + +# TODO "Library category"s instead ? +bibdb:LibraryType a owl:Class ; + :category :platform ; + rdfs:label "Library type"@en, "Bibliotekstyp"@sv . + +bibdb:libraryType a owl:ObjectProperty ; + :category :platform ; + rdfs:domain :Library ; + rdfs:range bibdb:LibraryType ; + rdfs:label "library type"@en, "bibliotekstyp"@sv . + +bibdb:linkresolver a owl:ObjectProperty ; + :category :platform ; + rdfs:domain :Library ; + rdfs:range bibdb:LinkResolver ; + rdfs:label "link resolver"@en, "länkserver"@sv . + +bibdb:LinkResolver a owl:Class ; + :category :platform ; + rdfs:seeAlso , + ; + rdfs:label "Link resolver"@en, "Länkserver"@sv . + +#sdo:openingHoursSpecification requires structured data. +#bibdb is just a string +bibdb:openingHours a owl:DatatypeProperty; + :category :platform ; + rdfs:range xsd:string ; + rdfs:label "Opening hours"@en, "Öppettider"@sv . + +bibdb:ILS a owl:Class ; + :category :platform ; + rdfs:label "ILS"@en, "ILS"@sv . + +bibdb:ils a owl:ObjectProperty ; + :category :platform ; + rdfs:domain :Library ; + rdfs:range bibdb:ILS ; + rdfs:label "ILS"@en, "ILS"@sv . + +bibdb:templateUri a owl:DatatypeProperty; + :category :platform ; + rdfs:range xsd:string . + +bibdb:bibIdSearchUri a owl:DatatypeProperty; + :category :platform ; + sdo:domainIncludes bibdb:ILS, bibdb:LOPAC ; + rdfs:subPropertyOf bibdb:templateUri ; + rdfs:label "URI for searching resource by BibId"@en, "URI för att söka upp resurs via BibId"@sv . + +bibdb:isbnSearchUri a owl:DatatypeProperty; + :category :platform ; + sdo:domainIncludes bibdb:ILS, bibdb:LOPAC ; + rdfs:subPropertyOf bibdb:templateUri ; + rdfs:label "URI for searching resource by ISBN"@en, "URI för att söka upp resurs via ISBN"@sv . + +bibdb:issnSearchUri a owl:DatatypeProperty; + :category :platform ; + sdo:domainIncludes bibdb:ILS, bibdb:LOPAC ; + rdfs:subPropertyOf bibdb:templateUri ; + rdfs:label "URI for searching resource by ISSN"@en, "URI för att söka upp resurs via ISSN"@sv . + +bibdb:itemStatusUri a owl:DatatypeProperty; + :category :platform ; + rdfs:domain bibdb:ILS ; + rdfs:subPropertyOf bibdb:templateUri ; + rdfs:label "URI for item status"@en, "URI till lånestatus"@sv . + +bibdb:eodUri a owl:DatatypeProperty; + :category :platform ; + rdfs:domain :Library; + rdfs:subPropertyOf bibdb:templateUri ; + rdfs:label "URI for ordering EOD"@en, "URI för att beställa EOD"@sv . + +# TODO just use straight schema.org for address stuff? +bibdb:PostalAddress a owl:Class ; + :category :platform ; + owl:equivalentClass sdo:PostalAddress ; + rdfs:label "Address"@en, "Adress"@sv . + +bibdb:ILLAddress a owl:Class ; + :category :platform ; + rdfs:subClassOf bibdb:PostalAddress ; + rdfs:label "Interlibrary loan (ILL) address"@en, "Fjärrlåneadress"@sv . + +bibdb:DeliveryAddress a owl:Class ; + :category :platform ; + rdfs:subClassOf bibdb:PostalAddress ; + rdfs:label "Delivery Address"@en, "Leveransadress"@sv . + +bibdb:VisitingAddress a owl:Class ; + :category :platform ; + rdfs:subClassOf bibdb:PostalAddress ; + rdfs:label "Visiting Address"@en, "Besöksadress"@sv . + +bibdb:InvoicingAddress a owl:Class ; + :category :platform ; + rdfs:subClassOf bibdb:PostalAddress ; + rdfs:label "Invoicing Address"@en, "Faktureringsadress"@sv . + +bibdb:StatisticalContactAddress a owl:Class ; + :category :platform ; + rdfs:subClassOf bibdb:PostalAddress ; + rdfs:label "Statistical Contact Address"@en, "Statistik-kontaktadress"@sv . + +bibdb:address a owl:ObjectProperty ; + :category :platform ; + rdfs:domain :Library ; + rdfs:range bibdb:PostalAddress ; + rdfs:label "address"@en, "adress"@sv . + +# Used for attention +bibdb:extendedAddress a owl:DatatypeProperty; + :category :platform ; + rdfs:domain bibdb:PostalAddress ; + owl:equivalentProperty sdo:extendedAddress ; + rdfs:comment "Till exempel att. eller C/O."@sv; + rdfs:label "Address extension"@en, "Ytterligare addressinformation"@sv . + +bibdb:streetAddress a owl:DatatypeProperty; + :category :platform ; + rdfs:domain bibdb:PostalAddress ; + owl:equivalentProperty sdo:streetAddress ; + rdfs:label "Street address"@en, "Gatuadress"@sv . + +bibdb:postalCode a owl:DatatypeProperty; + :category :platform ; + rdfs:domain bibdb:PostalAddress ; + owl:equivalentProperty sdo:postalCode ; + rdfs:label "Postal code"@en, "Postnummer"@sv . + +bibdb:addressLocality a owl:DatatypeProperty; + :category :platform ; + rdfs:domain bibdb:PostalAddress ; + owl:equivalentProperty sdo:addressLocality ; + rdfs:label "Address locality code"@en, "Ort"@sv . + +bibdb:email a owl:DatatypeProperty; + :category :platform ; + rdfs:domain bibdb:PostalAddress ; + owl:equivalentProperty sdo:email ; + rdfs:label "Email"@en, "E-post"@sv . + +bibdb:telephone a owl:DatatypeProperty; + :category :platform ; + rdfs:domain bibdb:PostalAddress ; + owl:equivalentProperty sdo:telephone ; + rdfs:label "Telephone"@en, "Telefon"@sv . + +bibdb:latitude a owl:DatatypeProperty; + :category :platform ; + rdfs:domain :Library ; + owl:equivalentProperty sdo:latitude ; + rdfs:label "latitude"@en, "latitud"@sv . + +bibdb:longitude a owl:DatatypeProperty; + :category :platform ; + rdfs:domain :Library ; + owl:equivalentProperty sdo:longitude ; + rdfs:label "longitude"@en, "longitud"@sv . + +bibdb:LOPAC a owl:Class ; + :category :platform ; + rdfs:label "LOPAC settings"@en, "LOPAC-inställningar"@sv . + +bibdb:lopac a owl:ObjectProperty ; + :category :platform ; + rdfs:domain :Library ; + rdfs:range bibdb:LOPAC ; + rdfs:label "LOPAC settings"@en, "LOPAC-inställningar"@sv . + +bibdb:myLoansUri a owl:DatatypeProperty; + :category :platform ; + rdfs:domain bibdb:LOPAC; + rdfs:subPropertyOf bibdb:templateUri ; + rdfs:label "URI for My loans"@en, "URI för Mina lån"@sv . + +bibdb:patronRegistrationUri a owl:DatatypeProperty; + :category :platform ; + rdfs:domain bibdb:LOPAC; + rdfs:subPropertyOf bibdb:templateUri ; + rdfs:label "URI for patron registration"@en, "URL för Ansök om lånekort"@sv . + +bibdb:displayMode a owl:ObjectProperty ; + :category :platform ; + rdfs:label "display mode"@en, "visningsläge"@sv ; + rdfs:domain bibdb:LOPAC; + rdfs:range bulk:StatusType . + +bibdb:DisplayMode a owl:Class ; + :category :platform ; + skos:prefLabel "Display mode"@en, "Visningsläge"@sv . + +bibdb:Blank a bibdb:DisplayMode ; + :category :platform ; + skos:prefLabel "New window"@en, "Nytt fönster"@sv . + +bibdb:Lightbox a bibdb:DisplayMode ; + :category :platform ; + skos:prefLabel "Lightbox"@en, "Lightbox"@sv . diff --git a/source/vocab/relations.ttl b/source/vocab/relations.ttl index 341afd826..eb2a331b8 100644 --- a/source/vocab/relations.ttl +++ b/source/vocab/relations.ttl @@ -22,6 +22,7 @@ @prefix : . @prefix marc: . +@prefix bibdb: . :license a owl:ObjectProperty; rdfs:label "licens"@sv, "license"@en ; @@ -63,8 +64,8 @@ :isPartOf a owl:ObjectProperty; #TODO: After remodelling Meeting, domainIncludes and rangeIncludes will also apply to Meeting - sdo:domainIncludes :Endeavour, :Organization, :Jurisdiction, :Place; - sdo:rangeIncludes :Endeavour, :Organization, :Jurisdiction, :Place; + sdo:domainIncludes :Endeavour, :Organization, :Jurisdiction, :Place, :Library; + sdo:rangeIncludes :Endeavour, :Organization, :Jurisdiction, :Place, bibdb:Organization; rdfs:label "är del av"@sv; rdfs:subPropertyOf :relatedTo; owl:inverseOf :hasPart; diff --git a/sys/context/base.jsonld b/sys/context/base.jsonld index e42637237..ee36148d0 100644 --- a/sys/context/base.jsonld +++ b/sys/context/base.jsonld @@ -7,6 +7,7 @@ "hydra": "http://www.w3.org/ns/hydra/core#", "@vocab": "https://id.kb.se/vocab/", "marc": "https://id.kb.se/marc/", + "bibdb": "https://id.kb.se/ns/bibdb/", "@import": "./shared.jsonld", diff --git a/sys/context/kbv.jsonld b/sys/context/kbv.jsonld index 65aeaf8a9..64ef534f7 100644 --- a/sys/context/kbv.jsonld +++ b/sys/context/kbv.jsonld @@ -225,6 +225,12 @@ "bulk:matchingMode": {"@type": "@vocab", "@container": "@set"}, "bulk:removeSubdivision": {"@container": "@set"}, + "bibdb": "https://id.kb.se/ns/bibdb/", + "bibdb:ils": { "@container": "@set"}, + "bibdb:address": { "@container": "@set"}, + "bibdb:telephone": { "@container": "@set"}, + "bibdb:libraryType": { "@container": "@set"}, + "marc": "https://id.kb.se/marc/", "marc:data": {"@container": "@list"}, diff --git a/sys/context/shared.jsonld b/sys/context/shared.jsonld index fd80062fc..15818e186 100644 --- a/sys/context/shared.jsonld +++ b/sys/context/shared.jsonld @@ -86,6 +86,9 @@ "langCodeFull": {"@id": "code", "@type": "ISO639-3"}, "langCodeLibrisLocal": {"@id": "code", "@type": "LibrisLocalLanguageCode"}, - "librisQueryCode": {"@id": "code", "@type": "LibrisQueryCode"} + "librisQueryCode": {"@id": "code", "@type": "LibrisQueryCode"}, + + "bibdb:bibIdSearchUriByLang": {"@id": "bibdb:bibIdSearchUri", "@container": "@language"}, + "bibdb:displayMode": {"@type": "@vocab"} } }