From df3909c111cdf59a195bd1703bf925434be517f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kalle=20W=C3=A5hlin?= Date: Mon, 22 Dec 2025 09:33:09 +0100 Subject: [PATCH 01/18] Merge various Item properties --- source/vocab/display.jsonld | 44 +++++++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/source/vocab/display.jsonld b/source/vocab/display.jsonld index c8ca1a26..e2facd7c 100644 --- a/source/vocab/display.jsonld +++ b/source/vocab/display.jsonld @@ -6,6 +6,7 @@ "@base": "https://id.kb.se/vocab/display", "@vocab": "https://id.kb.se/vocab/", "marc": "https://id.kb.se/marc/", + "librissearch": "https://id.kb.se/ns/librissearch/", "lensGroups": {"@id": "@graph", "@container": "@index"}, "lenses": {"@reverse": "fresnel:group", "@container": "@index"}, "showProperties": {"@id": "fresnel:showProperties", "@container": "@list", "@type": "@vocab"}, @@ -785,7 +786,6 @@ "summary", "immediateAcquisition", "availability", - "shelfLabel", { "inverseOf": "itemUsed" }, { "inverseOf": "hasComponent" } ] @@ -1503,9 +1503,45 @@ "subject", "summary", "hasComponent", - "availability", - "physicalLocation", - "shelfLabel" + { + "fresnel:mergeProperties": [ + "cataloguersNote", + "custodialHistory", + { + "@type": "fresnel:fslselector", + "@value": "hasNote/*/label" + }, + { + "@type": "fresnel:fslselector", + "@value": "marc:hasCopyAndVersionIdentificationNote/*/marc:itemCondition" + }, + { + "@type": "fresnel:fslselector", + "@value": "marc:hasBindingInformation/*/label" + }, + { + "@type": "fresnel:fslselector", + "@value": "marc:hasTextualHoldingsBasicBibliographicUnit/*/marc:cataloguersNote" + } + ], + "fresnel:use": "librissearch:itemNote" + }, + { + "fresnel:mergeProperties": [ + "shelfLabel", + "physicalLocation", + "shelfControlNumber", + { + "@type": "fresnel:fslselector", + "@value": "shelfMark/*/label" + }, + { + "@type": "fresnel:fslselector", + "@value": "availability/*/label" + } + ], + "fresnel:use": "librissearch:shelf" + } ] }, "Person": { From 04e35e539e95992892e39ee57bd8d17dc383585a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kalle=20W=C3=A5hlin?= Date: Mon, 22 Dec 2025 14:35:52 +0100 Subject: [PATCH 02/18] Define merged properties --- source/vocab/display.jsonld | 4 ++ source/vocab/libris-search-experimental.ttl | 62 ++++++++++++++------- 2 files changed, 46 insertions(+), 20 deletions(-) diff --git a/source/vocab/display.jsonld b/source/vocab/display.jsonld index e2facd7c..6edff451 100644 --- a/source/vocab/display.jsonld +++ b/source/vocab/display.jsonld @@ -1522,6 +1522,10 @@ { "@type": "fresnel:fslselector", "@value": "marc:hasTextualHoldingsBasicBibliographicUnit/*/marc:cataloguersNote" + }, + { + "@type": "fresnel:fslselector", + "@value": "marc:hasTextualHoldingsBasicBibliographicUnit/*/marc:publicNote" } ], "fresnel:use": "librissearch:itemNote" diff --git a/source/vocab/libris-search-experimental.ttl b/source/vocab/libris-search-experimental.ttl index 4df79349..2c3aae87 100644 --- a/source/vocab/libris-search-experimental.ttl +++ b/source/vocab/libris-search-experimental.ttl @@ -7,6 +7,7 @@ @prefix rdf: . @prefix xsd: . @prefix ls: . +@prefix marc: . ### Extended definitions for Libris Search ### :identifier # See ./details.ttl for full definition of :identifier @@ -88,6 +89,14 @@ :hasTitle rdfs:subPropertyOf ls:title . # See ./details.ttl for full definition of :hasTitle +:shelfControlNumber rdfs:subPropertyOf ls:shelf . # See ./items.ttl for full definition of :shelfControlNumber +:shelfLabel rdfs:subPropertyOf ls:shelf . # See ./items.ttl for full definition of :shelfLabel +:physicalLocation rdfs:subPropertyOf ls:shelf . # See ./items.ttl for full definition of :physicalLocation + +:cataloguersNote rdfs:subPropertyOf ls:itemNote . # See ./details.ttl for full definition of :cataloguersNote +:custodialHistory rdfs:subPropertyOf ls:itemNote . # See ./items.ttl for full definition of :custodialHistory + + ### New definitions for Libris Search ### ls:QueryCode a rdfs:Datatype ; @@ -98,6 +107,10 @@ ls:composite a skos:Collection ; :category :pending ; :code "composite" . +ls:merged a skos:Collection ; + rdfs:label "merged"@en, "sammanslagen"@sv ; + :code "merged" . + ls:itemHeldBy a owl:ObjectProperty ; rdfs:label "Bibliotek"@sv, "Library"@en ; skos:notation "bath.possessingInstitution"^^ls:QueryCode ; @@ -185,14 +198,34 @@ ls:title a owl:ObjectProperty ; ( :relationship :entity :hasTitle ) . ls:itemShelf a owl:DatatypeProperty ; - :category ls:composite, :pending ; # TODO: ls:merged? - rdfs:label "hyllsignum"@sv, "item shelf"@en ; - skos:notation "WHYL"^^ls:QueryCode ; - owl:propertyChainAxiom ( :hasItem :availability :label ), - ( :hasItem :shelfMark :label ), - ( :hasItem :shelfControlNumber ), - ( :hasItem :shelfLabel ), - ( :hasItem :physicalLocation ) . + :category :shorthand, :pending ; + skos:notation "WHYL"^^ls:QueryCode ; + rdfs:label "hyllsignum"@sv, "item shelf"@en ; + rdfs:domain :Instance ; + owl:propertyChainAxiom ( :hasItem ls:shelf ) . + +ls:shelf a owl:DatatypeProperty ; + :category ls:merged, :pending ; + rdfs:label "hylla"@sv, "shelf"@en ; + rdfs:domain :Item ; + owl:propertyChainAxiom ( :availability :label ), ( :shelfMark :label ) . + +ls:hasItemNote a owl:DatatypeProperty ; + :category :shorthand, :pending ; + skos:notation "BANM"^^ls:QueryCode ; + rdfs:label "har beståndsanmärkning"@sv, "has item note"@en ; + rdfs:domain :Instance ; + owl:propertyChainAxiom ( :hasItem ls:itemNote ) . + +ls:itemNote a owl:DatatypeProperty ; + :category ls:merged, :pending ; + rdfs:label "beståndsanmärkning"@sv, "item note"@en ; + rdfs:domain :Item ; + owl:propertyChainAxiom ( :hasNote :label ), + ( marc:hasCopyAndVersionIdentificationNote marc:itemCondition ), + ( marc:hasBindingInformation :label ), + ( marc:hasTextualHoldingsBasicBibliographicUnit marc:cataloguersNote ), + ( marc:hasTextualHoldingsBasicBibliographicUnit marc:publicNote ) . ls:itemCreated a owl:DatatypeProperty ; :category :shorthand, :pending ; @@ -245,15 +278,4 @@ ls:itemCreated a owl:DatatypeProperty ; # rdfs:label "LC-klassifikationskod"@sv, "LCC classification code"@en ; # owl:propertyChainAxiom ( # [ rdfs:subPropertyOf :classification ; rdfs:range :ClassificationLcc ] -# :code ) . -# -#ls:itemNote a owl:DatatypeProperty ; -# :category ls:merged ; -# rdfs:label "anmärkning i bestånd"@sv, "item note"@en ; -# skos:notation "BANM"^^ls:QueryCode ; -# owl:propertyChainAxiom ( :hasItem :hasNote :label ), -# ( :hasItem :cataloguersNote ), -# ( :hasItem :custodialHistory ), -# ( :hasItem marc:hasCopyAndVersionIdentificationNote marc:itemCondition ), -# ( :hasItem marc:hasBindingInformation :label ), -# ( :hasItem marc:hasTextualHoldingsBasicBibliographicUni marc:cataloguersNote ) . +# :code ) . \ No newline at end of file From 8f99ce4d727b76f1b6a8f2d5fd2cb14ea1cbaf32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kalle=20W=C3=A5hlin?= Date: Mon, 22 Dec 2025 17:45:36 +0100 Subject: [PATCH 03/18] Add search-token lenses for some common entity types --- source/vocab/display.jsonld | 39 ++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/source/vocab/display.jsonld b/source/vocab/display.jsonld index 6edff451..db4f0bd3 100644 --- a/source/vocab/display.jsonld +++ b/source/vocab/display.jsonld @@ -1485,6 +1485,43 @@ "name", "qualifier" ] + }, + "Title": { + "@type": "fresnel:Lens", + "classLensDomain": "Title", + "fresnel:extends": {"@id": "Title-chips"}, + "showProperties": [ "fresnel:super" ] + }, + "KeyTitle": { + "@type": "fresnel:Lens", + "classLensDomain": "KeyTitle", + "fresnel:extends": {"@id": "KeyTitle-chips"}, + "showProperties": [ "fresnel:super" ] + }, + "TitlePart": { + "@type": "fresnel:Lens", + "classLensDomain": "TitlePart", + "fresnel:extends": {"@id": "TitlePart-chips"}, + "showProperties": [ "fresnel:super" ] + }, + "ProvisionActivity": { + "@type": "fresnel:Lens", + "classLensDomain": "ProvisionActivity", + "fresnel:extends": {"@id": "ProvisionActivity-chips"}, + "showProperties": [ "fresnel:super" ] + }, + "Language": { + "@type": "fresnel:Lens", + "classLensDomain": "Language", + "fresnel:extends": {"@id": "Language-chips"}, + "showProperties": [ "fresnel:super" ] + }, + "Concept": { + "@type": "fresnel:Lens", + "classLensDomain": "Concept", + "showProperties": [ + {"alternateProperties": ["prefLabel", "singularLabel", "label", "termComponentList", "code"]} + ] } } }, @@ -2131,4 +2168,4 @@ } } } -} +} \ No newline at end of file From 6e707bb9debbf59ee9117d6d341b7de1c0123fc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kalle=20W=C3=A5hlin?= Date: Tue, 23 Dec 2025 06:44:40 +0100 Subject: [PATCH 04/18] Remove meta from Record search-chips and add instead meta.created to Item search-chips --- source/vocab/display.jsonld | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/source/vocab/display.jsonld b/source/vocab/display.jsonld index db4f0bd3..fabe5ca9 100644 --- a/source/vocab/display.jsonld +++ b/source/vocab/display.jsonld @@ -1531,7 +1531,7 @@ "lenses": { "Record": { "fresnel:extends": {"@id": "Record-chips"}, - "showProperties": [ "fresnel:super", "bibliography", "created" ] + "showProperties": [ "fresnel:super", "bibliography" ] }, "Item": { "fresnel:extends": {"@id": "Item-chips"}, @@ -1582,6 +1582,10 @@ } ], "fresnel:use": "librissearch:shelf" + }, + { + "@type": "fresnel:fslselector", + "@value": "meta/*/created" } ] }, From 89520afd441d29a739e5be71fdc3909d4c2675ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kalle=20W=C3=A5hlin?= Date: Fri, 23 Jan 2026 16:50:24 +0100 Subject: [PATCH 05/18] Merge publication year + startYear into ls:year --- source/vocab/display.jsonld | 14 ++++++ source/vocab/libris-search-experimental.ttl | 51 ++++++++++++--------- sys/context/kbv.jsonld | 1 + 3 files changed, 44 insertions(+), 22 deletions(-) diff --git a/source/vocab/display.jsonld b/source/vocab/display.jsonld index fabe5ca9..9a25acbc 100644 --- a/source/vocab/display.jsonld +++ b/source/vocab/display.jsonld @@ -1632,6 +1632,20 @@ "classLensDomain": "ToCEntry", "fresnel:extends": {"@id": "ToCEntry-chips"}, "showProperties": [ "fresnel:super", "responsibilityStatement" ] + }, + "Publication": { + "classLensDomain": "Publication", + "fresnel:extends": {"@id": "Publication-chips"}, + "showProperties": [ + "fresnel:super", + { + "fresnel:mergeProperties": [ + "year", + "startYear" + ], + "fresnel:use": "librissearch:year" + } + ] } } }, diff --git a/source/vocab/libris-search-experimental.ttl b/source/vocab/libris-search-experimental.ttl index 2c3aae87..5292649f 100644 --- a/source/vocab/libris-search-experimental.ttl +++ b/source/vocab/libris-search-experimental.ttl @@ -30,11 +30,6 @@ skos:notation "FÖRL"^^ls:QueryCode ; skos:notation "FORL"^^ls:QueryCode . -:yearPublished rdfs:label "utgivningsår"@sv, "year of publication"@en ; # See ./details.ttl for full definition of :yearPublished - rdfs:domain :Instance ; - skos:notation "dc.date"^^ls:QueryCode ; - skos:notation "ÅR"^^ls:QueryCode . - :contributor # See ./relations.ttl for full definition of :contributor skos:notation "FÖRF"^^ls:QueryCode ; skos:notation "FORF"^^ls:QueryCode . @@ -66,7 +61,6 @@ :agent ) . - :subject # See ./relations.ttl for full definition of :subject skos:notation "dc.subject"^^ls:QueryCode ; skos:notation "bath.topicalSubject"^^ls:QueryCode ; @@ -89,14 +83,6 @@ :hasTitle rdfs:subPropertyOf ls:title . # See ./details.ttl for full definition of :hasTitle -:shelfControlNumber rdfs:subPropertyOf ls:shelf . # See ./items.ttl for full definition of :shelfControlNumber -:shelfLabel rdfs:subPropertyOf ls:shelf . # See ./items.ttl for full definition of :shelfLabel -:physicalLocation rdfs:subPropertyOf ls:shelf . # See ./items.ttl for full definition of :physicalLocation - -:cataloguersNote rdfs:subPropertyOf ls:itemNote . # See ./details.ttl for full definition of :cataloguersNote -:custodialHistory rdfs:subPropertyOf ls:itemNote . # See ./items.ttl for full definition of :custodialHistory - - ### New definitions for Libris Search ### ls:QueryCode a rdfs:Datatype ; @@ -107,9 +93,12 @@ ls:composite a skos:Collection ; :category :pending ; :code "composite" . +# TODO? Could be ls:MergedProperty rdfs:subClassOf owl:ObjectProperty ls:merged a skos:Collection ; - rdfs:label "merged"@en, "sammanslagen"@sv ; - :code "merged" . + rdfs:label "merged"@en, "sammanslagen"@sv . + +# TODO: add e.g. label, domain, comment +ls:merges a owl:ObjectProperty . ls:itemHeldBy a owl:ObjectProperty ; rdfs:label "Bibliotek"@sv, "Library"@en ; @@ -208,7 +197,11 @@ ls:shelf a owl:DatatypeProperty ; :category ls:merged, :pending ; rdfs:label "hylla"@sv, "shelf"@en ; rdfs:domain :Item ; - owl:propertyChainAxiom ( :availability :label ), ( :shelfMark :label ) . + ls:merges :shelfControlNumber, + :shelfLabel, + :physicalLocation, + [ owl:propertyChainAxiom ( :availability :label ) ], + [ owl:propertyChainAxiom ( :shelfMark :label ) ] . ls:hasItemNote a owl:DatatypeProperty ; :category :shorthand, :pending ; @@ -221,11 +214,14 @@ ls:itemNote a owl:DatatypeProperty ; :category ls:merged, :pending ; rdfs:label "beståndsanmärkning"@sv, "item note"@en ; rdfs:domain :Item ; - owl:propertyChainAxiom ( :hasNote :label ), - ( marc:hasCopyAndVersionIdentificationNote marc:itemCondition ), - ( marc:hasBindingInformation :label ), - ( marc:hasTextualHoldingsBasicBibliographicUnit marc:cataloguersNote ), - ( marc:hasTextualHoldingsBasicBibliographicUnit marc:publicNote ) . + ls:merges :cataloguersNote, + :custodialHistory, + [ owl:propertyChainAxiom ( :hasNote :label ) ], + [ owl:propertyChainAxiom ( marc:hasCopyAndVersionIdentificationNote marc:itemCondition ) ], + [ owl:propertyChainAxiom ( marc:hasBindingInformation :label ) ], + [ owl:propertyChainAxiom ( marc:hasTextualHoldingsBasicBibliographicUnit marc:cataloguersNote ) ], + [ owl:propertyChainAxiom ( marc:hasTextualHoldingsBasicBibliographicUnit marc:publicNote ) ], + [ owl:propertyChainAxiom ( :availability :label ) ] . ls:itemCreated a owl:DatatypeProperty ; :category :shorthand, :pending ; @@ -234,6 +230,17 @@ ls:itemCreated a owl:DatatypeProperty ; rdfs:range xsd:dateTime ; owl:propertyChainAxiom ( :hasItem :meta :created ) . +ls:year a owl:DatatypeProperty ; + :category ls:merged ; + ls:merges :year, :startYear . + +ls:yearPublished a owl:DatatypeProperty ; + :category :shorthand ; + rdfs:label "utgivningsår"@sv, "year of publication"@en ; + rdfs:domain :Instance ; + skos:notation "ÅR"^^ls:QueryCode, "dc.date"^^ls:QueryCode ; + owl:propertyChainAxiom ( :publication ls:year ) . + # TODO #ls:classificationCode a owl:DatatypeProperty ; # :category :shorthand ; diff --git a/sys/context/kbv.jsonld b/sys/context/kbv.jsonld index 3071a882..9c0f9b10 100644 --- a/sys/context/kbv.jsonld +++ b/sys/context/kbv.jsonld @@ -237,6 +237,7 @@ "bibdb:libraryType": { "@container": "@set"}, "librissearch": "https://id.kb.se/ns/librissearch/", + "librissearch:merges": { "@container": "@set"}, "marc": "https://id.kb.se/marc/", From a41d00002e14950f1877adb755c1e11349cafcc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kalle=20W=C3=A5hlin?= Date: Fri, 13 Feb 2026 16:18:34 +0100 Subject: [PATCH 06/18] Update display.jsonld - Include summary in itemNote - Remove Record search-card and get Instance bibliography with fslselector instead - Use blank fresnel:subLens for title parts in Title search token --- source/vocab/display.jsonld | 41 ++++++++++++++------- source/vocab/libris-search-experimental.ttl | 4 +- 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/source/vocab/display.jsonld b/source/vocab/display.jsonld index 9a25acbc..b286938e 100644 --- a/source/vocab/display.jsonld +++ b/source/vocab/display.jsonld @@ -1489,8 +1489,25 @@ "Title": { "@type": "fresnel:Lens", "classLensDomain": "Title", - "fresnel:extends": {"@id": "Title-chips"}, - "showProperties": [ "fresnel:super" ] + "showProperties": [ + "mainTitle", + "title", + "subtitle", + "titleRemainder", + "partNumber", + "partName", + "hasPart", + { + "fresnel:property": "hasPart", + "fresnel:subLens": { + "showProperties": [ + "partNumber", + "partName" + ] + } + }, + "marc:parallelTitle" + ] }, "KeyTitle": { "@type": "fresnel:Lens", @@ -1498,12 +1515,6 @@ "fresnel:extends": {"@id": "KeyTitle-chips"}, "showProperties": [ "fresnel:super" ] }, - "TitlePart": { - "@type": "fresnel:Lens", - "classLensDomain": "TitlePart", - "fresnel:extends": {"@id": "TitlePart-chips"}, - "showProperties": [ "fresnel:super" ] - }, "ProvisionActivity": { "@type": "fresnel:Lens", "classLensDomain": "ProvisionActivity", @@ -1529,10 +1540,6 @@ "@id": "search-chips", "@type": "fresnel:Group", "lenses": { - "Record": { - "fresnel:extends": {"@id": "Record-chips"}, - "showProperties": [ "fresnel:super", "bibliography" ] - }, "Item": { "fresnel:extends": {"@id": "Item-chips"}, "showProperties": [ @@ -1544,6 +1551,10 @@ "fresnel:mergeProperties": [ "cataloguersNote", "custodialHistory", + { + "@type": "fresnel:fslselector", + "@value": "summary/*/label" + }, { "@type": "fresnel:fslselector", "@value": "hasNote/*/label" @@ -1672,7 +1683,11 @@ "summary", "tableOfContents", "videoCharacteristic", - "image" + "image", + { + "@type": "fresnel:fslselector", + "@value": "meta/*/bibliography" + } ] }, "Item": { diff --git a/source/vocab/libris-search-experimental.ttl b/source/vocab/libris-search-experimental.ttl index 5292649f..ee85f112 100644 --- a/source/vocab/libris-search-experimental.ttl +++ b/source/vocab/libris-search-experimental.ttl @@ -216,12 +216,12 @@ ls:itemNote a owl:DatatypeProperty ; rdfs:domain :Item ; ls:merges :cataloguersNote, :custodialHistory, + [ owl:propertyChainAxiom ( :summary :label ) ], [ owl:propertyChainAxiom ( :hasNote :label ) ], [ owl:propertyChainAxiom ( marc:hasCopyAndVersionIdentificationNote marc:itemCondition ) ], [ owl:propertyChainAxiom ( marc:hasBindingInformation :label ) ], [ owl:propertyChainAxiom ( marc:hasTextualHoldingsBasicBibliographicUnit marc:cataloguersNote ) ], - [ owl:propertyChainAxiom ( marc:hasTextualHoldingsBasicBibliographicUnit marc:publicNote ) ], - [ owl:propertyChainAxiom ( :availability :label ) ] . + [ owl:propertyChainAxiom ( marc:hasTextualHoldingsBasicBibliographicUnit marc:publicNote ) ] . ls:itemCreated a owl:DatatypeProperty ; :category :shorthand, :pending ; From a6d331adfb9c4d61053091a79a949ff72f2ad2ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kalle=20W=C3=A5hlin?= Date: Fri, 13 Feb 2026 16:22:54 +0100 Subject: [PATCH 07/18] Fix a typo --- source/vocab/display.jsonld | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/vocab/display.jsonld b/source/vocab/display.jsonld index b286938e..1da1c460 100644 --- a/source/vocab/display.jsonld +++ b/source/vocab/display.jsonld @@ -1669,7 +1669,7 @@ "showProperties": [ "fresnel:super", "appliedMaterial", - "basematerial", + "baseMaterial", "bookFormat", "colorContent", "hasNote", From a84ee5465b55ddb79956048fd0bfcb950b1de150 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kalle=20W=C3=A5hlin?= Date: Mon, 16 Feb 2026 08:32:17 +0100 Subject: [PATCH 08/18] Skip search token for KeyTitle --- source/vocab/display.jsonld | 6 ------ 1 file changed, 6 deletions(-) diff --git a/source/vocab/display.jsonld b/source/vocab/display.jsonld index 1da1c460..6f854caa 100644 --- a/source/vocab/display.jsonld +++ b/source/vocab/display.jsonld @@ -1509,12 +1509,6 @@ "marc:parallelTitle" ] }, - "KeyTitle": { - "@type": "fresnel:Lens", - "classLensDomain": "KeyTitle", - "fresnel:extends": {"@id": "KeyTitle-chips"}, - "showProperties": [ "fresnel:super" ] - }, "ProvisionActivity": { "@type": "fresnel:Lens", "classLensDomain": "ProvisionActivity", From 54cec7c53b45f5d5169135ecdf241a98c1a2ebfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kalle=20W=C3=A5hlin?= Date: Wed, 25 Feb 2026 16:52:04 +0100 Subject: [PATCH 09/18] Add more search tokens --- source/vocab/display.jsonld | 94 ++++++++++++++++++++++++++++--------- 1 file changed, 71 insertions(+), 23 deletions(-) diff --git a/source/vocab/display.jsonld b/source/vocab/display.jsonld index 6f854caa..6c77cd6e 100644 --- a/source/vocab/display.jsonld +++ b/source/vocab/display.jsonld @@ -1447,6 +1447,26 @@ "@id": "search-tokens", "@type": "fresnel:Group", "lenses": { + "Agent": { + "@type": "fresnel:Lens", + "classLensDomain": "Agent", + "showProperties": ["name"] + }, + "Bibliography": { + "@type": "fresnel:Lens", + "classLensDomain": "Bibliography", + "fresnel:extends": {"@id": "Bibliography-chips"}, + "showProperties": [ + "fresnel:super" + ] + }, + "Concept": { + "@type": "fresnel:Lens", + "classLensDomain": "Concept", + "showProperties": [ + {"alternateProperties": ["prefLabel", "singularLabel", "label", "termComponentList", "code"]} + ] + }, "Creation": { "@type": "fresnel:Lens", "classLensDomain": "Creation", @@ -1469,6 +1489,20 @@ } ] }, + "Language": { + "@type": "fresnel:Lens", + "classLensDomain": "Language", + "fresnel:extends": {"@id": "Language-chips"}, + "showProperties": [ "fresnel:super" ] + }, + "Library": { + "@type": "fresnel:Lens", + "classLensDomain": "Library", + "fresnel:extends": {"@id": "Library-chips"}, + "showProperties": [ + "fresnel:super" + ] + }, "Person": { "@type": "fresnel:Lens", "classLensDomain": "Person", @@ -1478,12 +1512,45 @@ "name" ] }, - "Library": { + "ProvisionActivity": { "@type": "fresnel:Lens", - "classLensDomain": "Library", + "classLensDomain": "ProvisionActivity", + "fresnel:extends": {"@id": "ProvisionActivity-chips"}, + "showProperties": [ "fresnel:super" ] + }, + "SeriesMembership": { + "@type": "fresnel:Lens", + "classLensDomain": "SeriesMembership", "showProperties": [ - "name", - "qualifier" + { + "@type": "fresnel:fslselector", + "@value": "inSeries/*/identifiedBy/ISSN/value" + }, + { + "alternateProperties": [ + "seriesStatement", + { + "@type": "fresnel:fslselector", + "@value": "inSeries/*/instanceOf/*/hasTitle/*/mainTitle" + } + ] + }, + "seriesEnumeration" + ] + }, + "TableOfContents": { + "classLensDomain": "TableOfContents", + "showProperties": [ + "label", + { + "fresnel:property": "hasPart", + "fresnel:subLens": { + "showProperties": [ + "label", + "responsibilityStatement" + ] + } + } ] }, "Title": { @@ -1508,25 +1575,6 @@ }, "marc:parallelTitle" ] - }, - "ProvisionActivity": { - "@type": "fresnel:Lens", - "classLensDomain": "ProvisionActivity", - "fresnel:extends": {"@id": "ProvisionActivity-chips"}, - "showProperties": [ "fresnel:super" ] - }, - "Language": { - "@type": "fresnel:Lens", - "classLensDomain": "Language", - "fresnel:extends": {"@id": "Language-chips"}, - "showProperties": [ "fresnel:super" ] - }, - "Concept": { - "@type": "fresnel:Lens", - "classLensDomain": "Concept", - "showProperties": [ - {"alternateProperties": ["prefLabel", "singularLabel", "label", "termComponentList", "code"]} - ] } } }, From 20a2889b4a9489b6272b92607aaf51aba5c0e6e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kalle=20W=C3=A5hlin?= Date: Wed, 25 Feb 2026 17:02:58 +0100 Subject: [PATCH 10/18] Add ls:itemSubject --- source/vocab/libris-search-experimental.ttl | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/source/vocab/libris-search-experimental.ttl b/source/vocab/libris-search-experimental.ttl index ee85f112..1e1cfc92 100644 --- a/source/vocab/libris-search-experimental.ttl +++ b/source/vocab/libris-search-experimental.ttl @@ -230,6 +230,13 @@ ls:itemCreated a owl:DatatypeProperty ; rdfs:range xsd:dateTime ; owl:propertyChainAxiom ( :hasItem :meta :created ) . +ls:itemSubject a owl:DatatypeProperty ; + :category :shorthand, :pending ; + rdfs:label "lokalt ämnesord"@sv, "item subject"@en ; + rdfs:domain :Instance ; + skos:notation "LOKÄMNE"^^ls:QueryCode ; + owl:propertyChainAxiom ( :hasItem :subject ) . + ls:year a owl:DatatypeProperty ; :category ls:merged ; ls:merges :year, :startYear . From c853760035f1d52197ac390e303c47e98bb57e8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kalle=20W=C3=A5hlin?= Date: Tue, 3 Mar 2026 08:34:43 +0100 Subject: [PATCH 11/18] Change ls:hasItemNote label and code --- source/vocab/libris-search-experimental.ttl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/vocab/libris-search-experimental.ttl b/source/vocab/libris-search-experimental.ttl index 1e1cfc92..b03dbf2a 100644 --- a/source/vocab/libris-search-experimental.ttl +++ b/source/vocab/libris-search-experimental.ttl @@ -205,8 +205,8 @@ ls:shelf a owl:DatatypeProperty ; ls:hasItemNote a owl:DatatypeProperty ; :category :shorthand, :pending ; - skos:notation "BANM"^^ls:QueryCode ; - rdfs:label "har beståndsanmärkning"@sv, "has item note"@en ; + skos:notation "LANM"^^ls:QueryCode ; + rdfs:label "lokal anmärkning"@sv, "local note"@en ; rdfs:domain :Instance ; owl:propertyChainAxiom ( :hasItem ls:itemNote ) . From 48e0bee7463cbf5d7a798fb1d7b063768a5642c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kalle=20W=C3=A5hlin?= Date: Tue, 3 Mar 2026 08:39:14 +0100 Subject: [PATCH 12/18] Add search-token for bibdb:Organization --- source/vocab/display.jsonld | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/vocab/display.jsonld b/source/vocab/display.jsonld index 6c77cd6e..51950972 100644 --- a/source/vocab/display.jsonld +++ b/source/vocab/display.jsonld @@ -1452,6 +1452,11 @@ "classLensDomain": "Agent", "showProperties": ["name"] }, + "bibdb:Organization": { + "@type": "fresnel:Lens", + "classLensDomain": "bibdb:Organization", + "showProperties": [ "name", "code" ] + }, "Bibliography": { "@type": "fresnel:Lens", "classLensDomain": "Bibliography", From ff141ecce7c73be3b099a93156a21b7c33d71863 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kalle=20W=C3=A5hlin?= Date: Tue, 3 Mar 2026 08:48:00 +0100 Subject: [PATCH 13/18] Do not inherit in search tokens --- source/vocab/display.jsonld | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/source/vocab/display.jsonld b/source/vocab/display.jsonld index 51950972..02f26532 100644 --- a/source/vocab/display.jsonld +++ b/source/vocab/display.jsonld @@ -1460,10 +1460,7 @@ "Bibliography": { "@type": "fresnel:Lens", "classLensDomain": "Bibliography", - "fresnel:extends": {"@id": "Bibliography-chips"}, - "showProperties": [ - "fresnel:super" - ] + "showProperties": [ "name", "qualifier", "sigel" ] }, "Concept": { "@type": "fresnel:Lens", @@ -1497,16 +1494,14 @@ "Language": { "@type": "fresnel:Lens", "classLensDomain": "Language", - "fresnel:extends": {"@id": "Language-chips"}, - "showProperties": [ "fresnel:super" ] + "showProperties": [ + { "alternateProperties": ["prefLabel", "label", "code"] } + ] }, "Library": { "@type": "fresnel:Lens", "classLensDomain": "Library", - "fresnel:extends": {"@id": "Library-chips"}, - "showProperties": [ - "fresnel:super" - ] + "showProperties": [ "name", "qualifier", "sigel" ] }, "Person": { "@type": "fresnel:Lens", @@ -1520,8 +1515,7 @@ "ProvisionActivity": { "@type": "fresnel:Lens", "classLensDomain": "ProvisionActivity", - "fresnel:extends": {"@id": "ProvisionActivity-chips"}, - "showProperties": [ "fresnel:super" ] + "showProperties": [ "country", "place", "agent", "hasPart", "year", "startYear", "endYear", "date", "marc:publicationStatus" ] }, "SeriesMembership": { "@type": "fresnel:Lens", From ba25f31b69eb411c9a91b89310b4cabe2c45e718 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kalle=20W=C3=A5hlin?= Date: Tue, 3 Mar 2026 09:13:49 +0100 Subject: [PATCH 14/18] Add missing categories --- source/vocab/libris-search-experimental.ttl | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/source/vocab/libris-search-experimental.ttl b/source/vocab/libris-search-experimental.ttl index a66114ab..88e792ec 100644 --- a/source/vocab/libris-search-experimental.ttl +++ b/source/vocab/libris-search-experimental.ttl @@ -204,8 +204,7 @@ ls:title a owl:ObjectProperty ; ( :relationship :entity :hasTitle ) . ls:itemShelf a owl:DatatypeProperty ; -<<<<<<< HEAD - :category :shorthand, :pending ; + :category :searchfilter, :shorthand, :pending ; skos:notation "WHYL"^^ls:QueryCode ; rdfs:label "hyllsignum"@sv, "item shelf"@en ; rdfs:domain :Instance ; @@ -222,7 +221,7 @@ ls:shelf a owl:DatatypeProperty ; [ owl:propertyChainAxiom ( :shelfMark :label ) ] . ls:hasItemNote a owl:DatatypeProperty ; - :category :shorthand, :pending ; + :category :searchfilter, :shorthand, :pending ; skos:notation "LANM"^^ls:QueryCode ; rdfs:label "lokal anmärkning"@sv, "local note"@en ; rdfs:domain :Instance ; @@ -257,11 +256,11 @@ ls:itemSubject a owl:DatatypeProperty ; owl:propertyChainAxiom ( :hasItem :subject ) . ls:year a owl:DatatypeProperty ; - :category ls:merged ; + :category ls:merged, :pending ; ls:merges :year, :startYear . ls:yearPublished a owl:DatatypeProperty ; - :category :shorthand ; + :category :searchfilter, :shorthand, :pending ; rdfs:label "utgivningsår"@sv, "year of publication"@en ; rdfs:domain :Instance ; skos:notation "ÅR"^^ls:QueryCode, "dc.date"^^ls:QueryCode ; From ceaa53e00501b49644c3ff25803597fca48c4e3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kalle=20W=C3=A5hlin?= Date: Wed, 4 Mar 2026 09:41:34 +0100 Subject: [PATCH 15/18] Remove made up code for hasItemNote --- source/vocab/libris-search-experimental.ttl | 1 - 1 file changed, 1 deletion(-) diff --git a/source/vocab/libris-search-experimental.ttl b/source/vocab/libris-search-experimental.ttl index 88e792ec..dc45570e 100644 --- a/source/vocab/libris-search-experimental.ttl +++ b/source/vocab/libris-search-experimental.ttl @@ -222,7 +222,6 @@ ls:shelf a owl:DatatypeProperty ; ls:hasItemNote a owl:DatatypeProperty ; :category :searchfilter, :shorthand, :pending ; - skos:notation "LANM"^^ls:QueryCode ; rdfs:label "lokal anmärkning"@sv, "local note"@en ; rdfs:domain :Instance ; owl:propertyChainAxiom ( :hasItem ls:itemNote ) . From 4c002d718fc91598d067a22ebc268548a8f7caf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kalle=20W=C3=A5hlin?= Date: Wed, 4 Mar 2026 09:44:07 +0100 Subject: [PATCH 16/18] Update search-token lenses, add new lens group top-search-tokens --- source/vocab/display.jsonld | 147 ++++++++++++++++++++++++++---------- 1 file changed, 107 insertions(+), 40 deletions(-) diff --git a/source/vocab/display.jsonld b/source/vocab/display.jsonld index 9b65a890..14f4c620 100644 --- a/source/vocab/display.jsonld +++ b/source/vocab/display.jsonld @@ -1457,11 +1457,6 @@ "@id": "search-tokens", "@type": "fresnel:Group", "lenses": { - "Agent": { - "@type": "fresnel:Lens", - "classLensDomain": "Agent", - "showProperties": ["name"] - }, "bibdb:Organization": { "@type": "fresnel:Lens", "classLensDomain": "bibdb:Organization", @@ -1479,33 +1474,35 @@ {"alternateProperties": ["prefLabel", "singularLabel", "label", "termComponentList", "code"]} ] }, - "Creation": { + "Instance": { "@type": "fresnel:Lens", - "classLensDomain": "Creation", + "classLensDomain": "Instance", "showProperties": [ + "hasTitle", { - "alternateProperties": [ - { - "@type": "fresnel:fslselector", - "@value": "hasTitle/KeyTitle/mainTitle" - }, - { - "@type": "fresnel:fslselector", - "@value": "hasTitle/Title/mainTitle" - }, - { - "@type": "fresnel:fslselector", - "@value": "hasTitle/*/mainTitle" - } - ] + "@type": "fresnel:fslselector", + "@value": "identifiedBy/*/value" + }, + { + "@type": "fresnel:fslselector", + "@value": "describedBy/*/controlNumber" } ] }, + "Work": { + "@type": "fresnel:Lens", + "classLensDomain": "Work", + "showProperties": [ + "hasTitle" + ] + }, "Language": { "@type": "fresnel:Lens", "classLensDomain": "Language", "showProperties": [ - { "alternateProperties": ["prefLabel", "label", "code"] } + "prefLabel", + "label", + "code" ] }, "Library": { @@ -1513,37 +1510,49 @@ "classLensDomain": "Library", "showProperties": [ "name", "qualifier", "sigel" ] }, + "Family": { + "@type": "fresnel:Lens", + "classLensDomain": "Family", + "showProperties": [ "name", "marc:titlesAndOtherWordsAssociatedWithAName", "lifeSpan", "place" ] + }, + "Jurisdiction": { + "@type": "fresnel:Lens", + "classLensDomain": "Jurisdiction", + "showProperties": [ "name", "isPartOf", "marc:subordinateUnit" ] + }, + "Meeting": { + "@type": "fresnel:Lens", + "classLensDomain": "Meeting", + "showProperties": [ "name", "marc:numeration", "date", "place" ] + }, + "Organization": { + "@type": "fresnel:Lens", + "classLensDomain": "Organization", + "showProperties": [ "name", "isPartOf", "marc:subordinateUnit" ] + }, "Person": { "@type": "fresnel:Lens", "classLensDomain": "Person", "showProperties": [ "givenName", "familyName", - "name" + "name", + "marc:numeration", + "lifeSpan", + "marc:titlesAndOtherWordsAssociatedWithAName", + "fullerFormOfName" ] }, - "ProvisionActivity": { - "@type": "fresnel:Lens", - "classLensDomain": "ProvisionActivity", - "showProperties": [ "country", "place", "agent", "hasPart", "year", "startYear", "endYear", "date", "marc:publicationStatus" ] - }, "SeriesMembership": { "@type": "fresnel:Lens", "classLensDomain": "SeriesMembership", "showProperties": [ - { + "inSeries", + { "@type": "fresnel:fslselector", - "@value": "inSeries/*/identifiedBy/ISSN/value" - }, - { - "alternateProperties": [ - "seriesStatement", - { - "@type": "fresnel:fslselector", - "@value": "inSeries/*/instanceOf/*/hasTitle/*/mainTitle" - } - ] + "@value": "inSeries/*/instanceOf/*/hasTitle" }, + "seriesStatement", "seriesEnumeration" ] }, @@ -1556,7 +1565,8 @@ "fresnel:subLens": { "showProperties": [ "label", - "responsibilityStatement" + "responsibilityStatement", + "comment" ] } } @@ -1567,6 +1577,7 @@ "classLensDomain": "Title", "showProperties": [ "mainTitle", + "qualifier", "title", "subtitle", "titleRemainder", @@ -1784,6 +1795,62 @@ } } }, + "top-search-tokens": { + "@id": "top-search-tokens", + "@type": "fresnel:Group", + "lenses": { + "Agent": { + "@type": "fresnel:Lens", + "classLensDomain": "Agent", + "showProperties": [ + { + "alternateProperties": [ + "name", + "label" + ] + } + ] + }, + "Person": { + "@type": "fresnel:Lens", + "classLensDomain": "Person", + "showProperties": [ + "givenName", + "familyName", + "name" + ] + }, + "Creation": { + "@type": "fresnel:Lens", + "classLensDomain": "Creation", + "showProperties": [ + { + "alternateProperties": [ + { + "@type": "fresnel:fslselector", + "@value": "hasTitle/KeyTitle/mainTitle" + }, + { + "@type": "fresnel:fslselector", + "@value": "hasTitle/Title/mainTitle" + }, + { + "@type": "fresnel:fslselector", + "@value": "hasTitle/*/mainTitle" + } + ] + } + ] + }, + "Language": { + "@type": "fresnel:Lens", + "classLensDomain": "Language", + "showProperties": [ + { "alternateProperties": ["prefLabel", "label", "code"] } + ] + } + } + }, "formatters": { "termComponentList-format": { "TODO": "fix vue-client and remove me", From fe1df1a2575ca46c39d60d8b535e21e4fdb4b644 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kalle=20W=C3=A5hlin?= Date: Wed, 4 Mar 2026 12:59:58 +0100 Subject: [PATCH 17/18] Adjust place in showProperties --- source/vocab/display.jsonld | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/source/vocab/display.jsonld b/source/vocab/display.jsonld index 14f4c620..56dc6e0a 100644 --- a/source/vocab/display.jsonld +++ b/source/vocab/display.jsonld @@ -1513,7 +1513,7 @@ "Family": { "@type": "fresnel:Lens", "classLensDomain": "Family", - "showProperties": [ "name", "marc:titlesAndOtherWordsAssociatedWithAName", "lifeSpan", "place" ] + "showProperties": [ "name", "marc:titlesAndOtherWordsAssociatedWithAName", "lifeSpan" ] }, "Jurisdiction": { "@type": "fresnel:Lens", @@ -1523,7 +1523,15 @@ "Meeting": { "@type": "fresnel:Lens", "classLensDomain": "Meeting", - "showProperties": [ "name", "marc:numeration", "date", "place" ] + "showProperties": [ + "name", + "marc:numeration", + "date", + { + "@type": "fresnel:fslselector", + "@value": "place/*/label" + } + ] }, "Organization": { "@type": "fresnel:Lens", From 4ba458e64a25391748723ae3f468f93077687511 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kalle=20W=C3=A5hlin?= Date: Thu, 5 Mar 2026 14:28:38 +0100 Subject: [PATCH 18/18] Add search token for generic Agent class --- source/vocab/display.jsonld | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/vocab/display.jsonld b/source/vocab/display.jsonld index 56dc6e0a..e58076cf 100644 --- a/source/vocab/display.jsonld +++ b/source/vocab/display.jsonld @@ -1510,6 +1510,11 @@ "classLensDomain": "Library", "showProperties": [ "name", "qualifier", "sigel" ] }, + "Agent": { + "@type": "fresnel:Lens", + "classLensDomain": "Agent", + "showProperties": [ "label", "name" ] + }, "Family": { "@type": "fresnel:Lens", "classLensDomain": "Family",