Tag: Linked data

Filmer från Libris inspirationsdagar

Se filmer från Libris inspirationsdagar 10 november  i Stockholm.

http://www.kb.se/aktuellt/utbildningar/2014/LIBRIS-inspirationsdagar/

Här finns filmerna.

 

2 kommentarer 8 december, 2014 Helena Forssblad

Katalogprojektet tar semester

Men innan vi försvinner iväg på ledighet har vi uppdaterat betaversionen av Libris nya katalogiseringsverktyg.

De senaste sprintarna har vi fokuserat på att hela katalogiseringsflödet ska fungera. Än så länge har vi haft fokus på monografier. I vårt arbete har vi jobbat med både skön- och facklitteratur. Flödet är implementerat efter de skisser som finns sedan tidigare, och som vi efter användningstester itererat för att de ska fungera tillfredsställande.

Efter sommarsemestern tar vi oss an seriella publikationer och jobbar på samma sätt igenom hela flödet.

Implementerat i gränssnittet är;

  • Förbättrad autosuggest för språk, länder, personer och ämnesord.
  • Påbörjat arbete med implementering av värden från fasta fält.
  • Förbättrat flöde och mallhantering för katalogisering av monografi.
  • Förenklad träfflista.
  • Förbättrad funktionalitet för att lägga till fält i post.
  • Tillägg av oauktoriserade uppslag.
  • Hantering av laddnings- och systemfelmeddelanden.

Arbetet i backend har framför allt handlat om uppdateringar och optimeringar de senaste sprintarna. Det stora som hänt i backendutvecklingen är att posterna nu är länkade internt.

Förutom att jobba med att utveckla det nya systemet och tjänsten har vi också presenterat projektet på ELAG. I mitten av juni var det dags för den årliga ELAG-konferensen som anordnas av European Library Automation Group. Precis som förra året presenterade vi Libris XL och det nya katalogiseringsverktyget. Och precis som förra året fick projektet en hel del uppmärksamhet och beröm. Rurik Greenall sammanfattade hela konferensen och beskrev katalogprojektet så här;

“Niklas Lindström and Lina Westerling gave a very clear presentation of how libraries should be doing things: copying development at Libris. Arrogant bastards, who take all the good ideas. I can hardly be bothered heaping more praise on them. Take a look for yourself. ;-)”

För er som är intresserade av att titta på Niklas och Linas presentation i sin helhet, kolla här.

Till konferensen hade vi tagit fram dessa populära tatueringar designade av vår kollega Maia Dexander.

Tatuering

Med detta tar vi nu ledigt ett tag från projektet och önskar alla en trevlig sommar!

2 kommentarer 3 juli, 2014 Helena Forssblad

SwePub Analysis - you can SPARQL

Resuming the TechTalk, we cleared last time that the only thing you need to do for using the SwePub data API is to put together a SPARQL query.

Before you hang up right here let me assure you: You can do it.

Can you search in Google? Can you browse in the www? If the answer is yes then you can SPARQL.

Like in any language, in order to formulate a question or a sentence of any kind - it consists of vocabulary and syntax. Same with data query languages. And even if you know SPARQL’s syntax by the heart, for any new data source you don’t know the vocabulary. The first natural reaction for most people based on how languages are taught to adults is to ask “where is the dictionary which defines what classes and properties are available?” If I would give you this dictionary (called ontology in Linked Data) - what would you do with it? Browse through and scratch your head - “well, where do I start?” It gives you just some clue but it misses to present you the actual data model which is about relations between entities in certain context, forming a graph of data. Ontology can only define what relations might exist in a generic way, but does not give any guarantees that they have been actually asserted in instance data. Remind you again - Linked Data is a graph and not a table with strict relational schema. Linked Data graph can exist totally without a schema or strict definition of types. Although an ontology can be sometimes visualized as a graph diagram, it is still a guess or suggestion but not a reflection of a graph of actual facts.

The question of yours as a user is this: “How would I be able to reveal the actual necessary subset of the vocabulary and relations in an unknown graph of data, which is relevant to the very question I want to ask now and here?” Without going through a long lists of definitions in the dictionary - and then trial and error to get them into your query returning the results you want to get? And also - being a novice to SPARQL and not knowing the syntax, to make sure that the explored data items and their attributes are stringed together into a correct query statement (without spending time to work through a book or online resources)?

I have a positive answer for you - use a visual query builder that SwePub Analysis provides.

For the tutorial lets create a query for the example in the previous blog entry: Get publications of a specific author: title, date, publication year  and the link to the local database.

*** Before you get started - in case you would like to follow the tutorial hands-on and do the same steps in the real system: for that go to the E&Q tool and login with an anonymous guest account available from the dropdown list. Or you can register yourself and get your own account. ***

So - are you all set?

Lets imagine you know someone whose publications are in SwePub. Lets say his name is Anders Karlsson. You search his name

Blog_5_1

The result returned to you gives the list of triples containing Anders Karlsson

Blog_5_2

Click on any link in Subject column - on a thing that starts Name__oai_ and enter the Linked Data Brower.

You see the description page of this particular Name instance

Blog_5_3

You see that this instance is of type Name. Click on the (+) mark at the end of it.

It has an attribute called name. That one contains our familiar value "Anders Karlsson". Click on (+) mark at the end of it as well.

Now look at the top part of the page and see what has just happened

Blog_5_3

This is a fragment of the data model. The tool has recorded your navigation history and inferred the data model from the actual facts. You have got to know that there are instances of class Name, and those instances can have a data property name.

If you now press the button Show Result Samples, you get a table ... which contains results of the SPARQL query which ... You have just created.

Blog_5_5

Congratulations.

You probably notice the list does not contain "Anders Karlsson" - or at least these 50 rows you got as samples don't. We used a known thing (sorry to call a person so, but this is how "things" in Linked Data are generically called) to generalize its type and properties.

If you scroll down the result page you see a SPARQL query:

# Generated from Linked Data Browser navigation history
SELECT DISTINCT
?Name
?_name
WHERE
{
?Name a mods_m:Name .
?Name foaf:name ?_name .
}

You created this query - with a little help of a tool.

So what to do next? Use the back button of the browser and get back to the page of this Name where you started.

Lets now refine the query so you get the Name instances of "Anders Karlsson".

On the diagram click on the brown colored "string" rectangle and notice the color becomes green. Green node marks the currently selected thing in the Navigation Map and Linked Data Browser. You are looking at a piece of some ontology: the definition of the foaf:name datatype property which is of string type literal in the context of this Name instance. As you have explored, this data property contains the name of the author and you want to set a filter on it to select only a particular author. Use the buttons above and press the btn_filter ( filter).  Type in the name.

Blog_5_8

Press Set New Filter.

Press again the button Show Results Samples.

Blog_5_9

Your result set contains now names where Anders Karlsson occurs. Look at the new query and pay attention to the filter.

# Generated from Linked Data Browser navigation history

SELECT DISTINCT
?Name
?_name
WHERE
{
?Name a mods_m:Name .
?Name foaf:name ?_name .
FILTER(<bif:contains>(?_name, 'Anders AND Karlsson'))
}

Congratulations again.

You have now designed a parameterized SPARQL query that can be used in a SwePub data API call.

The query is not ready to answer the initial question. You still need to find the title and publication year and how these are linked with the Name. But that is not more difficult that what you have seen now. It is simply clicking around on the linked data and getting your navigation map updated. Until you have found them. At the end you need to do some cosmetics in editing the actual query but you have got a huge jump start.

I hope this blog entry explains the concept and gives a taste for how the tool works. I hope it makes you feel that "indeed - perhaps I could do SPARQL".

This story continues on the tutorial where the example is taken to its completion.

/Jürgen

9 kommentarer 18 juni, 2014 Jürgen Kerstna

Ny katalog, nytt format – pionjärarbetet med Libris XL

Sverige och KB går i täten i arbetet med att utveckla ett formatoberoende system som ska ersätta den nuvarande katalogen. Vi lämnar MARC21 som produktions- och lagringsformat, suddar ut postbegreppet till förmån för relaterade informationselement och införlivar de principer som utgör webbens motor.

Arbetet med Libris XL har pågått i drygt två år och det nya katalogiseringsverktyget kommer att vara färdigt att testas i höst. För att säkerställa att vi driftsätter ett stabilt system kommer vi att arbeta med tester fram till januari 2015. Nuvarande Voyager stängs inte förrän vi är säkra på att Libris XL är stabilt och att alla flöden fungerar. Enligt plan sker övergången i början av nästa år.

Utvecklingsarbetet är i många stycken ett pionjärarbete där Sverige och KB leder utvecklingen. För att kunna tolka informationen och bygga kvalitativa tjänster behöver vi förstå och tolka metadatat. Genom att översätta och konvertera MARC-data till JSON-LD kan vi beskriva och presentera den bibliografiska informationen på ett helt annat sätt än tidigare.

Katalogens nya struktur möjliggör även anpassningar till den nya katalogiseringspraxis, RDA, som på sikt kommer att införas i Sverige. RDA lägger tyngdpunkten på att beskriva dataelement och relationerna dem emellan. RDA är inte knutet till något särskilt beskrivningsformat, utan målet är flexibla data, som kan delas och återanvändas även utanför biblioteksvärlden. Libris XL och RDA banar vägen för ett skifte där det biblioteksspecifika MARC21 lämnas till förmån för en datastruktur som är bättre anpassad till den digitala utvecklingen.

Allt detta leder till framtida möjligheter att enkelt kunna bygga nya tjänster för sökning och interaktion med innehållet. Den nya datastrukturen i Libris XL kommer att minska redundans i systemet. För att gränssnittet ska bli överskådligt och lättarbetat lägger vi ned mycket tid på att normalisera datat i översättningsarbetet från MARC21. När den första versionen av Libris XL driftsätts kommer inte all data att vara mappad, men en tillräcklig mängd för att få katalogiseringsflödet att fungera.

Här på Librisbloggen kan ni kontinuerligt följa arbetet. Eventuella frågor kan lämnas i kommentarsfältet eller via mejl till anna.berggren@kb.se

9 kommentarer 28 maj, 2014 Johan

SwePub Analysis - the data API

In this entry I continue the top down approach of introducing the technology behind the new SwePub Analysis system.
The diagrams in Spotfire aggregating the big amounts of data are very useful and the next natural question is how do we get the particular subset out from the database, which in our case is Virtuoso Linked Data database.
There needs to be some API - and there is.
Although calling the data access interface an API is a bit weird, wouldn’t you agree? I call the topic SwePub API because everyone else does say “API”, but we are really talking about a query mechanism.
API stands for Application Programming Interface. If I try I can tweak it and say that for a query execution we program SwePub database’ engine application to return a specific subset of data in a specified format.
The main question is how do we program it and how do we specify what data elements we want, how we want them to be related and how to be restricted (specify filters).
Taking the API, and particularly REST API definition literally, we would need to map HTTP parameters to search codes which in term would map to data elements in the database. We would never in SwePub project get the API defined because we would stand no chance to anticipate what search codes are going to be of interest for ad-hoc analysis needs by various users (whom we still might not know about).
So instead of even trying, the SwePub data API has 2 parameters:

  1. query
  2. format

Every system integrator thus can create her own SwePub data API by designing the base query covering the need for particular integration and allowing to provide filters within the query.

The API is based on SPARQL W3C standard which is both a query language and a service endpoint protocol.

Is there a better way to explain all this than by using an example? So lets do an example:

Assuming that PRISMA - (the new project funding application system developed by the Swedish Research Council) - needs to interact with SwePub to fetch research publications of a specific researcher to be included in her CV. PRISMA wants to get publication titles, date and the link to the local database by author name match and publication year filter. This example is simplified, but it is still quite close to what it is going to be. Because personal identifiers like ORCID are not yet available for every researchers, it is going to be a try-and-error approach with name mapping.

First PRISMA developers would design a base query:

PREFIX mods_m: <http://swepub.kb.se/mods/model#>
SELECT DISTINCT
?_name
?_titleValue
?_publicationYear
?_identifierValue
WHERE
{
?Mods a mods_m:Mods .
?TitleInfo mods_m:hasTitle ?Title .
?Title mods_m:titleValue ?_titleValue .
?Mods mods_m:hasTitleInfo ?TitleInfo .
?Mods swpa_m:publicationYear ?_publicationYear .
?Mods mods_m:hasName ?Name .
?Name mods_m:type "personal"^^xsd:string .

?Name foaf:name ?_name .

?Mods mods_m:hasIdentifier ?Identifier .
?Identifier mods_m:type "uri"^^xsd:string .
?Identifier mods_m:identifierValue ?_identifierValue .

FILTER(<bif:contains>(?_name, '"Anders" and "Karlsson"'))
FILTER ( ?_publicationYear >=2010 )
}

Since this is a query into a graph of data (Linked Data), it can itself also be visualized as a graph.

Blog_3_1

This picture reveals several things. Firstly, it shows how the data is actually represented in the database. You see the names of elements and attributes as well as relations. Secondly, you see (in blue) what elements are selected out from the graph into the resultset. When this query is executed against the graph of Linked Data, then subgraph that matches this definition is picked out and the selected items are flattened into the table where each row represents one combination of the selected nodes. Giving you “heads up” I will say that in order to design this query or get to see this graph you don’t have to learn SPARQL and you don’t have to study SwePub data model/ontology. We have the tools that make it possible to generate these queries visually, from the scratch by simply clicking around. This will be the subject of the next blog.

Now you have the query, and you see the parameters in the filter clauses, right? If you change those values you would obviously get different results. Why not try
FILTER(<bif:contains>(?_name, '"John*" and "Smith"'))
FILTER ( ?_publicationYear >=2004 )

So lets imagine that PRISMA has now designed its SwePub data API for this specific workflow.In order to execute any instance of the query with actual parameters, you first do URL encoding of the query text. Test it yourself online:
The result is this:

Blog_3_2
What is then left to do is to construct the SPARQL REST url for this specific execution. The SPARQL endpoint authenticated call against the SwePub server in general looks like this:

http://user:pw@virhp07.libris.kb.se/sparql-auth?query=url_encoded_sparql_as_string&format=text%2Fcsv

Of course, you can package the parameters and credentials also in the HTTP POST request body and headers. So as said at the beginning there are only 2 significance parameters in SwePub data API:

  1. query
  2. format

Copy the encoded query into the url above. Run it!   (if the login window pops up then type in user1/guest - it differs between browsers).

So you got the result table as an HTML page? Great!  Change the format mime type according to what you need.

That was it. The whole thing.

If you now want to change the query - replace Karlsson with Svensson - see what happens!
Change the format from text%2Fhtml to text%2Fcsv - see what happens...

All this information is also available in a document.

This is obviously a simple example, although very relevant. But you realize you are empowered to construct and run any questions and include any smallest detail in the data to get out exactly what you want. There isn’t going to be ever any restrictions like “the API did not support this filter, the API did not support this field in the result set...”.
This is Linked Data and graph queries in a nutshell :)

/Jürgen

6 kommentarer 27 maj, 2014 Marja Haapalainen

Uppdaterad information om Libris XL och nya katalogiseringsverktyget

Libris arbetar med att utveckla en ny systemarkitektur, Libris XL, och ett nytt katalogiseringsverktyg. I det nya systemet lämnar vi MARC21 som internt lagringsformat och använder istället JSON-LD (JavaScript Object Notation for Linked Data) som datastruktur för lagrad data.

Vi har haft som målsättning att driftsätta systemet under första kvartalet 2014, men behöver nu justera tidsplanen för projektet och räknar med att Libris XL ska vara i skarp drift under hösten 2014. Redan till sommaren räknar vi dock med att den betaversion som finns tillgänglig i princip ska motsvara de krav vi ställer på en första version av Libris XL och det nya katalogiseringsverktyget.

Viktig information är att alla API:er som används i dagsläget kommer att finnas kvar i befintligt skick även efter det att vi släpper nya Libris XL. I framtiden kommer vi att se över befintliga API:er och metadatauttag och vid behov även byta ut eller förnya dessa. Detsamma gäller import/export av metadata (mer om detta nedan).

Införandet av Libris XL innebär att vi lämnar MARC21 som internt lagringsformat. Vi lägger ner ett stort arbete på att översätta MARC21 till en ny informationsmodell uttryckt i JSON-LD. Genom detta konverteringsarbete kan vi beskriva och presentera den bibliografiska informationen på ett annat sätt än tidigare. Vi jobbar med målsättningen att komma bort från postbegreppet och istället använda en entitets-, eller objektbaserad modell, mer lik den som används i Bibframe. I den interna metadatastrukturen går informationen att gruppera i olika nivåer, och liksom Bibframe använder vi oss av de FRBR-inspirerade indelningarna Verk (ungefär motsvarande Verk och Uttryck) och Instans (ungefär motsvarande Manifestation).

Bearbetningen av data från MARC21 till den nya informationsmodellen görs på hela datamängden i Libris, det vill säga inklusive befintliga poster, inte bara nya. Den nya informationsmodellen är anpassad till en framtida övergång till RDA (Resource Description and Access) vilket betyder att Librisdata vid övergången till ny katalogiseringsstandard kommer att spegla dessa förändringar. Vissa manuella och/eller maskinella insatser kan dock behövas för att anpassa till rena praxisförändringar.

Även om vi övergår till ett nytt lagringsformat kommer posterna precis som tidigare att kunna tas ut i MARC21. Man kommer precis som tidigare också att kunna importera MARC-poster via t.ex. Metaproxy. Förändringarna handlar om hur vi internt behandlar metadatat. Det sätt på vilket vi hanterar import från andra källor (t.ex. Metaproxy och DiVA) respektive export till t.ex. lokala system, kommer inte att påverkas. Nuvarande BibID från Voyager kommer att följa med i den nya strukturen för att garantera konsistens. Interpunktionshanteringen kommer däremot att tas om hand av systemet, vilket innebär att den fortsätttningsvis inte kräver manuell handpåläggning.

För att det ska bli en smidig övergång från Voyager till Libris XL kommer den att göras stegvis, detta för att inte riskera produktionsstopp. Målsättningen är att driftsätta under hösten 2014. Voyager kommer dock inte att stängas ner innan vi är säkra på att Libris XL är stabilt och att alla flöden fungerar.

Release notes 18 december för Libris katalogisering, betaversion

Nytt i redigeringsverktyget:

  • Semifunktionell prototyp av personhantering med tillägg av roller (förändringar av roller påverkar ännu inte den data som sparas).
  • Ny hantering av definitionslistor (för t.ex. språk-, lands- och roll-/funktionskoder), med uppdaterad data.
  • Enhetlig teknik för sökning av auktoriteter och definitioner.
  • Förbättringar av sökning på personer och ämnen (ännu inget stöd för att skapa lokal definition av ett ämne).
  • Minskade marginaler i sidhuvud och marginaler för att ge en mer kompakt arbetsyta.
  • Förbättrat utseende i JSON-LD-vyn.


I LibrisXL har följande implementerats:

  • Fortsatt arbete med att hitta och skapa länkar till extraherade entiteter, nu inklusive Organization och Work
  • ElasticSearch, tokenisering i index och möjlighet att ställa in konfigurering specifikt per indextyp
  • Förberedelse inför möjlighet att göra sökning mot externa kataloger via Z39.50. API som gör sökning mot metaproxy (där en testinstans i ett första steg söker mot LC Library of Congress, ESTER Estland och NLE Spanien) och returnerar metadata i JSON-LD.

Välkommen att testa
Betan är som vanligt tillgänglig på http://kat.libris.kb.se.

Det återstår fortfarande en hel del funktionalitet att arbeta vidare med i katalogiseringsgränssnittet, men vi tar tacksamt emot synpunkter på de funktioner som har tillkommit. Följ gärna de testanvisningar som finns längst upp till vänster på startsidan och hör av er med synpunkter och förbättringsförslag till oss på Tyck till-forumet i gränssnittet.

För att använda Libris katalogisering krävs inloggning. Har man ett konto för att beståndsregistrera i nuvarande tjänst Libris beståndsregistrering, kan man använda dessa uppgifter för att logga in. Det går dessutom att testa betaversionen av katalogiseringen med användarnamn: test och lösenord: test.

Tänk också på att katalogiseringsverktyget inte fungerar tillsammans med vissa webbläsare. Libris katalogisering är utvecklad med HTML5/CSS3 och kräver en webbläsare med bra stöd för dessa standarder samt att JavaScript är aktiverat. Vi rekommenderar därför uppdaterade versioner av Google Chrome eller Mozilla Firefox. Vi jobbar på att få Internet Explorer att fungera, men systemet kommer inte att stödja tidigare versioner än IE 9, (här kan du testa din browser och se hur väl den stöder HTML5).

9 kommentarer 18 december, 2013 Helena Forssblad

Utvecklare till projekt Vidareutveckling av SwePub

jurgenJürgen Kerstna är ny utvecklare i projektet Vidareutveckling av SwePub. Han har tidigare arbetat som lösningsarkitekt och systemutvecklare i den medicintekniska branschen. Uppgifterna har varit olika; plattform- och ramverksdesign, mobila lösningar, datakommunikation, standardisering, dataintegration och analys. Han har sysslat mycket med metadatahantering och använt semantiska teknologier (linked data) i sitt arbete.

3 kommentarer 5 december, 2013 Marja Haapalainen

Ny release av Libris katalogisering (beta)

Projektgruppen har under hösten arbetat vidare med att utveckla flödet för ämnesords- och auktoritetsarbete tillsammans med specialister från KB och Nationalbibliografin. Arbetsflöde och katalogiseringsgränssnitt för ämnesord och auktoriteter har vidareutvecklats.

I katalogiseringsapplikationen har vi jobbat med layouten för att förbättra översikten av posten. Nya skisser har tagits fram, varav en del har implementerats i gränssnittet och andra sparats för framtida utvecklingsprojekt.

Nya testanvisningar och Release Notes finns i anslutning till inloggningssidan.

I detta skede är vi särskilt intresserade av synpunkter på arbetsflödet kring ämnesords- och auktoritetshantering. Andra delar av gränssnittet är än så länge bara delvis färdiga, t.ex. registrering av fullständiga titlar och katalogisering av olika medietyper.

Nu går det även att söka på auktoriteter. Det visas inte så mycket data i gränssnittet ännu (men det går att se en del detaljer i JSON-LD-vyn).

I bakgrunden (backend) har arbetet med att hantera stora datamängder fortsatt. Vi har förbättrat katalogsystemets infrastruktur för inläsning, lagring, bearbetning och indexering av metadata samt arbetat med optimering av API:er och uppslag för relaterat metadata baserat på länkar.

För de som är intresserade av att få en översiktlig presentation av projektet Ny katalog, dvs utvecklingen av Libris XL och nytt katalogiseringsverktyg, kommer vi att presentera projektet på ett webbinarium. Deltagarna får då möjlighet att ställa frågor via chatt direkt till Libris utvecklingsteam. Webbinariet kommer att sändas vid två tillfällen, 17/12-13 samt 9/1-14. Observera att det är samma presentation vid båda tillfällena.

Anmälan till 17 december
Anmälan till 9 januari

Välkomna att testa!
Betan är som vanligt tillgänglig på http://kat.libris.kb.se/.

Det återstår fortfarande en hel del funktionalitet att arbeta vidare med i katalogiseringsgränssnittet, men vi tar tacksamt emot synpunkter på de funktioner som har tillkommit. Följ gärna de testanvisningar som finns längst upp till vänster på startsidan och hör av er med synpunkter och förbättringsförslag till oss på Tyck till-forumet i gränssnittet.

För att använda Libris katalogisering krävs inloggning. Har man ett konto för att beståndsregistrera i nuvarande tjänst Libris beståndsregistrering, kan man använda dessa uppgifter för att logga in. Det går dessutom att testa betaversionen av katalogiseringen med användarnamn: test och lösenord: test.

Tänk också på att katalogiseringsverktyget inte fungerar tillsammans med vissa webbläsare. Libris katalogisering är utvecklad med HTML5/CSS3 och kräver en webbläsare med bra stöd för dessa standarder samt att JavaScript är aktiverat. Vi rekommenderar därför uppdaterade versioner av Google Chrome eller Mozilla Firefox. Vi jobbar på att få Internet Explorer att fungera, men systemet kommer inte att stödja tidigare versioner än IE 9, (här kan du testa din browser och se hur väl den stöder HTML5).

Se även tidigare blogginlägg, Ny betarelease av Libris Katalogisering.

4 kommentarer 18 november, 2013 Helena Forssblad

Ny betarelease av Libris Katalogisering

Vi lanserar nu en ny betaversion av Libris XL och nytt webbaserat katalogiseringsverktyg. Arbetet med att i bakgrunden mappa metadata till ny datastruktur (JSON-LD), skapa relationer till auktoriteter etc. har intensifierats. Under hösten har vi också haft särskild fokus på hantering av ämnesord, både i fråga om relationer/strukturer och i fråga om arbetsflöde i katalogiseringsverktyget.

Se tidigare blogginlägg, Triple bypass.

Under vecka 37 arbetade utvecklare från projektteamet tillsammans med ämnesordsexperter från NB med fokus på ämnesord. Arbetet resulterade i många skisser. En del av skisserna har implementerats i gränssnittet, annat kvarstår fortfarande att göra, och en hel del idéer har sparats för framtida utvecklingsprojekt. I betan går det nu att hitta ämnesord uppdelade per system och källa. Det finns en rudimentär förslagsfunktion för att navigera och välja bland ämnesord. Det är möjligt att lägga till eller ta bort ämnesord, men det går ännu inte att redigera dem. Möjligheten att föreslå nya ämnesord eller använda sig av okontrollerade ämnesord är än så länge inte implementerad. Vi planerar att under den närmaste tiden fortsätta med att vidareutveckla även funktionaliteten för personauktoriteter samt geografiska ämnesord, klassifikation och genre.

aovecka

Många förändringar sker också i “det tysta”, i backend, dvs sådant som inte omedelbart uttrycks lika tydligt i gränssnittet. Det gäller t.ex. arbetet med att mappa till nytt format. Annat som har implementerats i backend av Libris XL sedan förra betareleasen är bland annat:

  • Länkar med relationer till auktoriteter i bibliografiskt data
  • Felhantering och förbättrad prestanda vid inläsning av data
  • Förbättringar av diskstorage
  • Förbättrad extrahering av entiteter/typer till indexering
  • Autocomplete-API för Concept för att få ämnesordsförslag baserat på sökning
  • Lösning för inläsning av data till grafdatabas

För dem som är intresserade av att kika i koden ligger våra repositories öppna i Github, Libris XL, (öppet repository för utveckling av katalogbackend) och Kitin, (öppet repository för utveckling av webbkatalogisering).

Välkommen att testa
Betan är som vanligt tillgänglig på http://kat.libris.kb.se/.

Det återstår fortfarande en hel del funktionalitet att arbeta vidare med i katalogiseringsgränssnittet, men vi tar tacksamt emot synpunkter på de funktioner som har tillkommit. Följ gärna de testanvisningar som finns längst upp till vänster på startsidan och hör av er med synpunkter och förbättringsförslag till oss på Tyck till-forumet i gränssnittet.

För att använda Libris katalogisering krävs inloggning. Har man ett konto för att beståndsregistrera i nuvarande tjänst Libris beståndsregistrering, kan man använda dessa uppgifter för att logga in. Det går dessutom att testa betaversionen av katalogiseringen med användarnamn: test och lösenord: test.

Tänk också på att katalogiseringsverktyget inte fungerar tillsammans med vissa webbläsare. Libris katalogisering är utvecklad med HTML5/CSS3 och kräver en webbläsare med bra stöd för dessa standarder samt att JavaScript är aktiverat. Vi rekommenderar därför uppdaterade versioner av Google Chrome eller Mozilla Firefox. Vi jobbar på att få Internet Explorer att fungera, men systemet kommer inte att stödja tidigare versioner än IE 9, (här kan du testa din browser och se hur väl den stöder HTML5).

8 kommentarer 11 oktober, 2013 Helena Forssblad

Triple bypass

librisxl

Libris XL systemarkitektur

Under det senaste året har Libris arbetat med en ny infrastruktur. Kopplad till denna finns det katalogiseringsverktyg vi nu lanserar den senaste releasen av. Verktyget är avsett att underlätta katalogiseringshantverket och bättre utnyttja de olika hjälpmedel som finns (auktoritetsinformation, kontrollerade termlistor, mallar för olika medietyper med mera).

Den verkliga nyheten är dock inte katalogiseringsverktyget, utan den nya infrastrukturen, Libris XL. Med Libris XL lämnar vi MARC21 som produktions- och lagringsformat, suddar ut postbegreppet till förmån för relaterade informationselement och införlivar de principer som utgör webbens motor. Libris XL är formatoberoende – systemet ska kunna hantera alla format (Dublin Core, EAD, ONIX etc). Med hjälp av JSON-LD skapas det primära interna formatet som är bättre anpassat för moderna system än trotjänaren MARC21. Sedan den senaste releasen i april har mycket tid ägnats åt formatkonvertering. Vi arbetar med en uniform modell i botten, RDF, där vi tydliggör vad informationen syftar till och vad den kan användas för. För att kunna tolka informationen och bygga kvalitativa tjänster behöver vi förstå och tolka metadatat. Genom att översätta och konvertera MARC-data till JSON-LD kan vi beskriva och presentera den bibliografiska informationen på ett helt annat sätt än tidigare. I gränssnittet är informationen grupperad i olika nivåer enligt en FRBR- och BIBFRAME-inspirerad struktur. I betaversionen har vi implementerat ett JSON-LD-läge där det är möjligt att se vad som händer ”under huven”, hur datan är konverterat från MARC-formatet till det nya.

En tyst revolution
Att den interna strukturen inte längre begränsas av MARC21 innebär större möjligheter att utnyttja auktoritetsdata, återanvända informationselement och erbjuda användaren ett intuitivt och lättöverskådligt sätt att navigera bland bibliografisk information. Under överskådlig framtid kommer systemet dock att behöva kunna exportera och importera MARC21. På så sätt är Libris XL en tyst revolution. Librisanvändarna kommer inte att behöva ändra sina rutiner för import, fjärrlån etc. Det nya katalogiseringsverktyget är en hjälp för att hantera bibliografisk information, men det kommer också att finnas en vy där man kan se och delvis även redigera datan i MARC-format. Samtidigt kommer systemet att till fullo utnyttja fördelarna med det nya interna formatet.

Genom att lyfta fram användningen av data, och minska gapet mellan katalogisatörer och alla slags användare, kan vi fokusera mer på den faktiska innebörden av de ting som katalogiseringen beskriver. Datastrukturen och verktygen ska stödja entydig länkning – mellan verk, författare, ämnen och till övriga saker som ett verk är knutpunkten för. Effekten av detta slags länkning blir att det går att navigera mellan beskrivningar (på samma sätt som mellan webbsidor) och upptäcka samband som tidigare legat i det fördolda.

För att vi ska kunna skapa och bibehålla sammanhang i den växande framtiden måste vi också aktivt ta till oss – och verka för – en utökad gemensam och praktisk förståelse för denna form av data, genom att vara delaktiga i initiativ som Dublin Core, SKOS och BIBFRAME, samt inte minst den större (och spretigare) världen av data, där FOAF, DBPedia, Schema.org m.m. växer och frodas.

Vi är entusiastiska och stolta över att få utveckla ett system som ligger i framkant och redan har väckt internationellt intresse. Samtidigt är vi medvetna om att Libris endast utgör en del av det bibliografiska ekosystemet, och att användarna måste kunna välja att ta del av utvecklingen i sin egen takt. Vår ambition är att Libris XL inte ska kräva några förändrade rutiner, men däremot erbjuda enorma möjligheter för den användare som så önskar. Vi inbjuder alla att delta i en dialog om vårt arbete.

Presentation på ELAG
För ytterligare teknisk fördjupning, titta gärna på den presentation som Martin Malmsten, Markus Sköld och Niklas Lindström höll på den årliga ELAG-konferensen i Gent i slutet av maj. Glädjande nog fick vi mycket positiv feedback på presentationen av Libris XL bl.a. från Rurik Greenall som i sitt inlägg beskrev det hela så här;

The rest of the conference was ruined by illness, so I stayed in bed and watched Martin, Markus and Niklas from Libris give a masterful presentation of some really cutting-edge work with linked library data in the new Libris system. With this, Libris really are showing the world how things are done.

Conceptually, the system is designed with current principles in mind, componentized and appliance driven, this framework is both flexible and simple. The various architectural choices mirror those made in various other projects within other domains (and indeed our own), and seem to reflect the mood change we have seen in libraries in the last year; increasingly, library technology as developed in libraries is part of the wider IT sector and not part of “library IT”. This can only be a good thing.

While Libris’ core technology stack is largely the same as the one we’re developing at NTNU, Libris uses AngularJS, a Javascript library from Google that provides excellent support for dynamic views in HTML. Why hadn’t I heard of this before? Probably because I have been wrapped up in jQuery for a hundred years. Silly me, that will teach me.

I had the pleasure of being able to send the first real-world interface for cataloguing that has linked data beneath the hood to our cataloguers.

Nice work there!

Välkommen att testa
Libris katalogisering är utvecklad med HTML5/CSS3 och kräver en webbläsare med bra stöd för dessa standarder samt att JavaScript är aktiverat. Vi rekommenderar därför uppdaterade versioner av Google Chrome eller Mozilla Firefox. Vi jobbar på att få Internet Explorer att fungera, men systemet kommer inte att stödja tidigare versioner än IE 9 (här kan du testa din browser och se hur väl den stöder HTML5, http://html5test.com/index.html).

För att använda Libris katalogisering krävs inloggning. Har man ett konto för att beståndsregistrera i nuvarande tjänst Libris beståndsregistrering, kan man använda dessa uppgifter för att logga in. Det går dessutom att testa betaversionen av katalogiseringen med användarnamn: test och lösenord: test.

Välkommen att testa, ge oss förbättringsförslag, kommentera och ställa frågor.

http://kat.libris.kb.se

10 kommentarer 17 juni, 2013 Johan

Föregående sida


Kategorier

Senaste kommentarer

Arkiv

Verktyg

Informationskanaler