First steps towards publishing library data on the semantic web. Implementing:
CoolUri
RDFDC
SKOS
RDF database and SPARQL interface
Content negotiation
First steps towards publishing library data on the semantic web
1. First steps towards publishingFirst steps towards publishing
library data on thelibrary data on the ssemanticemantic wwebeb
ADLUG Users Group MeetingADLUG Users Group Meeting
Venice, 29-31 October, 2008Venice, 29-31 October, 2008
ÁdámÁdám HorváthHorváth
NSZLNSZL
2. 2 First steps towards publishing library data on the
What is semantic webWhat is semantic web
Statements that can be connected byStatements that can be connected by
machinesmachines
The machines can make logical operationsThe machines can make logical operations
on the statementon the statementss
The statements always have three partsThe statements always have three parts
– Subject, predicate, objectSubject, predicate, object
The subjects are identified by URIsThe subjects are identified by URIs
– Rdf:about=„http://example1.com/VanGogh”Rdf:about=„http://example1.com/VanGogh”
3. 3 First steps towards publishing library data on the
What is semantic webWhat is semantic web
Examples of statementsExamples of statements
– Van Gogh is an impressionist painterVan Gogh is an impressionist painter
• This statement was published byThis statement was published by WikipediaWikipedia
– The Sunflower was created by Van GoghThe Sunflower was created by Van Gogh
• This statement was published byThis statement was published by a museuma museum
4. 4 First steps towards publishing library data on the
What is semantic webWhat is semantic web
Why semantic web is good for us?Why semantic web is good for us?
– A user searches for impressionist paintingsA user searches for impressionist paintings
– The userThe user will find Sunflower although thewill find Sunflower although the
museum has never stated that Van Gogh is anmuseum has never stated that Van Gogh is an
impressionist painterimpressionist painter
5. 5 First steps towards publishing library data on the
What is semantic webWhat is semantic web
Formulating the statementsFormulating the statements
– Resource Description Framework (RDF)Resource Description Framework (RDF)
defines how to make a statementdefines how to make a statement
– Statements are also called RDF statementsStatements are also called RDF statements
– RDF is still a high level definitionRDF is still a high level definition
– The RDF statements can appear as XMLThe RDF statements can appear as XML
statement, as triples, …statement, as triples, …
7. 7 First steps towards publishing library data on the
RDF XMLRDF XML
8. 8 First steps towards publishing library data on the
What is semantic webWhat is semantic web
Storing the statementsStoring the statements
– In RDF databases (e.g. Jena)In RDF databases (e.g. Jena)
Querying the databaseQuerying the database
– LanguageLanguage
• SPARQL (W3C standard)SPARQL (W3C standard)
Publishing the statementsPublishing the statements
– Endpoint: understands SPARQL andEndpoint: understands SPARQL and
translatetranslatess it to the internal search language ofit to the internal search language of
the RDF database (e.g. Joseki)the RDF database (e.g. Joseki)
9. 9 First steps towards publishing library data on the
What is semantic webWhat is semantic web
Surfing the semantic webSurfing the semantic web
– MachinesMachines
– Humans by the means of RDFHumans by the means of RDF bbrowsersrowsers
10. 10 First steps towards publishing library data on the
NSZL would like to be part of theNSZL would like to be part of the
semantic websemantic web
Follow the rules of Linked Data, as definedFollow the rules of Linked Data, as defined
by Tim Berners-Lee inby Tim Berners-Lee in
Linked Data - Design Issues, 2006Linked Data - Design Issues, 2006
Implement access to RDF data throughImplement access to RDF data through
HTTP content negotiationHTTP content negotiation
11. 11 First steps towards publishing library data on the
Linked Data - four rulesLinked Data - four rules
Use URIs as names for thingsUse URIs as names for things
– Info:uri:painter:VanGoghInfo:uri:painter:VanGogh
Use HTTP URIs so that people can look upUse HTTP URIs so that people can look up
those namesthose names
– http://example1.com/VanGoghhttp://example1.com/VanGogh
When someone looks up a name, provideWhen someone looks up a name, provide
useful informationuseful information
Include links to other URIs so that they canInclude links to other URIs so that they can
discover more thingsdiscover more things
12. 12 First steps towards publishing library data on the
HTTP URIsHTTP URIs
Every bibliographic and authority record inEvery bibliographic and authority record in
LibriVision will get assigned a HTTP URI, aLibriVision will get assigned a HTTP URI, a
CoolUriCoolUri
– http://nektar.oszk.hu/bib/XYZhttp://nektar.oszk.hu/bib/XYZ
– http://nektar.oszk.hu/auth/ABChttp://nektar.oszk.hu/auth/ABC
Every bibliographic record in our CMSEvery bibliographic record in our CMS
(called OSZKDK) has already have a(called OSZKDK) has already have a
CoolUriCoolUri
– http://oszkdk.oszk.hu/DRJ/404http://oszkdk.oszk.hu/DRJ/404
13. 13 First steps towards publishing library data on the
Useful informationUseful information
Example record in the OPAC of OSZKDKExample record in the OPAC of OSZKDK
14.
15.
16. 16 First steps towards publishing library data on the
Useful informationUseful information
Content negotiationContent negotiation::
http://oszkdk.oszk.hu/DRJ/404http://oszkdk.oszk.hu/DRJ/404
GET /DRJ/404GET /DRJ/404
Host: oszkdk.oszk.huHost: oszkdk.oszk.hu
Accept: text/htmlAccept: text/html
17. 17 First steps towards publishing library data on the
Publishing the MARC record on thePublishing the MARC record on the
semantic websemantic web
The MARC record has to be translated intoThe MARC record has to be translated into
semantic web statementssemantic web statements
Namely into RDF Dublin Core (RDFDC)Namely into RDF Dublin Core (RDFDC)
statementsstatements
– RDFDC is defined by DCMIRDFDC is defined by DCMI
RDFDC has toRDFDC has to bebe stored in a RDF databasestored in a RDF database
(e.g. Jena/Joseki)(e.g. Jena/Joseki)
Content negotiation has to be set upContent negotiation has to be set up
18. 18 First steps towards publishing library data on the
Publishing the MARC record on thePublishing the MARC record on the
semantic websemantic web
Content negotiation:Content negotiation:
http://oszkdk.oszk.hu/DRJ/404http://oszkdk.oszk.hu/DRJ/404
GET /DRJ/404GET /DRJ/404
Host: oszkdk.oszk.huHost: oszkdk.oszk.hu
Accept: application/rdf+xmlAccept: application/rdf+xml
19. 19 First steps towards publishing library data on the
ExampleExampless in an RDF browserin an RDF browser
20.
21.
22. 22 First steps towards publishing library data on the
Links to other URIsLinks to other URIs
23.
24. 24 First steps towards publishing library data on the
Authority recordsAuthority records
RDF formatRDF format
– Simple Knowledge Organization SystemSimple Knowledge Organization System
(SKOS)(SKOS)
NSZL has already converted the followingsNSZL has already converted the followings
into this formatinto this format
– Name authorityName authority
– Geographical names thesaurusGeographical names thesaurus
– Subject term thesaurusSubject term thesaurus
25. 25 First steps towards publishing library data on the
SKOS exampleSKOS example
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:skos="http://www.w3.org/2004/02/skos/core#"xmlns:skos="http://www.w3.org/2004/02/skos/core#"
<skos:Concept rdf:about="http://dev.oszkdk.oszk.hu/auth/1705"><skos:Concept rdf:about="http://dev.oszkdk.oszk.hu/auth/1705">
<skos:inScheme<skos:inScheme
rdf:resource="http://www.oszk.hu/authority/person"></skos:inScherdf:resource="http://www.oszk.hu/authority/person"></skos:inSche
me>me>
<skos:prefLabel>Jókai Mór</skos:prefLabel><skos:prefLabel>Jókai Mór</skos:prefLabel>
<skos:altLabel>Jókai Maurus</skos:altLabel><skos:altLabel>Jókai Maurus</skos:altLabel>
<skos:altLabel>Jokajus, Moras</skos:altLabel><skos:altLabel>Jokajus, Moras</skos:altLabel>
<skos:altLabel>Sajó</skos:altLabel><skos:altLabel>Sajó</skos:altLabel>
</skos:Concept></skos:Concept>
</rdf:RDF></rdf:RDF>
26. 26 First steps towards publishing library data on the
Building blocksBuilding blocks
CoolUriCoolUri
RDFDCRDFDC
SKOSSKOS
RDF database and SPARQL interfaceRDF database and SPARQL interface
Content negotiationContent negotiation