SlideShare a Scribd company logo
Processing Linked Data
with
Catmandu
Patrick Hochstenbach | UGent
http://librecat.org
Processing Linked Data with Catmandu | http://librecat.org
LUND
GHENT
BIELEFELD
Processing Linked Data with Catmandu | http://librecat.org
RATIONALE
Processing Linked Data with Catmandu | http://librecat.org
KAHN-WILENSKI WEB
HANDLE
SERVICE
PROVIDER
REPOSITORY
REPOSITORY
I search a paper 	
about...
Processing Linked Data with Catmandu | http://librecat.org
Hypothesis 1: one network with a common schema
Hypothesis 2: object-oriented design
Hypothesis 3: the resource is the message
Processing Linked Data with Catmandu | http://librecat.org
Hypothesis 1: one network with a common schema
GOOGLE EUROPEANA
OPENAIRE CRIS
Videos
Images
Books
Data sets
Processing Linked Data with Catmandu | http://librecat.org
Hypothesis 2: object-oriented design
Drive
Race
Park
Economy Compact
Minivan
Convertible
Wheel
Half car
Bicycle
Zeppelin
Processing Linked Data with Catmandu | http://librecat.org
Hypothesis 3: the resource researcher is the message
DNS
GOOGLE
REPOSITORY
CLOUD
Dr. Müller
Processing Linked Data with Catmandu | http://librecat.org
LIBRECAT/CATMANDU
Processing Linked Data with Catmandu | http://librecat.org
CATMANDU
PubMed
MARC
MODS
EXCEL
DSPACE
Fedora
SRU
OAI-PMH
DBI
ISI Twitter
DBI
Atom
EXCEL
RDF
JSON
XML
Solr
ElasticSearch
MongoDB
Fedora
Aleph
Fix
Processing Linked Data with Catmandu | http://librecat.org
FUNCTIONAL DESIGN
JSON
}
each
slice
take
group
select
map
reduce
add_field
join_field
lookup
remove_field
marc_mab
count
Processing Linked Data with Catmandu | http://librecat.org
LIBRECAT
Institutional Repositories
Search Engines
Image Databases
Archival Systems
Data cleaning workbench
Citation Style Processor
Processing Linked Data with Catmandu | http://librecat.org
CATMANDU
catmandu convert MARC to JSON < records.mrc
catmandu convert OAI --url http://server/OAI to JSON
catmandu convert SRU --url http://server/SRU --query dna to JSON
catmandu convert DBI --query ‘SELECT * FROM table’ to JSON
catmandu convert MARC to JSON < records.mrc
catmandu convert OAI --url http://server/OAI to XML
catmandu convert SRU --url http://server/SRU --query dna to YAML
catmandu convert ArXiv --query ‘all:electron’ to CSV
CONVERT
Processing Linked Data with Catmandu | http://librecat.org
CATMANDU
catmandu convert X to Y --fix ‘marc_map(“245”,”title”)’
catmandu convert X to Y --fix ‘prepend(“title”,”abcd-”)’
catmandu convert X toY --fix fixes.txt
fixes.txt:
remove_field(“_id”);
marc_map(“001”, “merge.id”);
prepend(“merge.id”, “author:”);
add_field(“merge.source”,”author”);
copy_field(“merge.id”,”_id”);
FIX
set_field add_field move_field copy_field remove_field
upcase downcase capitalize trim substring prepend append
lookup lookup_in_store
count
cmd
split_field join_field retain_field replace_all collapse expand clone
if_all_match if_any_match if_exists
Processing Linked Data with Catmandu | http://librecat.org
CATMANDU
catmandu import JSON to MongoDB --opt ... --opt ...
catmandu import MARC to ElasticSearch
catmandu import DC to FedoraCommons
catmandu import CSV to DBI
catmandu export MongoDB to JSON
catmandu export Solr to YAML
catmandu export DBI to CSV
catmandu export FedoraCommons to Template --template test.tt
test.tt: (TemplateToolKit)
[%- FOREACH f IN record %]
[% _id %] [% f.shift %][% f.shift %][% f.shift %][% f.join(“:”) %]
[%- END %]
IMPORT / EXPORT
Processing Linked Data with Catmandu | http://librecat.org
CATMANDU
https://metacpan.org/pod/Catmandu
https://github.com/LibreCat/Catmandu
http://librecat.org/tutorial/
http://librecat.org/catmandu/2013/06/21/catmandu-cheat-sheet.html
Processing Linked Data with Catmandu | http://librecat.org
LIBRECAT http://biblio.ugent.be
Processing Linked Data with Catmandu | http://librecat.org
LIBRECAT http://pub.uni-bielefeld.de/en
Processing Linked Data with Catmandu | http://librecat.org
LIBRECAT http://adore.ugent.be
Processing Linked Data with Catmandu | http://librecat.org
LIBRECAT http://libnew.ugent.be
Processing Linked Data with Catmandu | http://librecat.org
Architecture
FEDORA
MEDIAMOSA
VLE BIBLIO SCANNING
RECEIVE
ALEPH ABS
CLOUD
DEDUP/MERGE/AUGMENT
BLACKLIGHT
Processing Linked Data with Catmandu | http://librecat.org
LINKED DATA
Processing Linked Data with Catmandu | http://librecat.org
PRODUCTION
CATALOG
MARC
245 $$a ... $$b
260 $$a ...
700 $$a ...
JSON/YAML
LINKED DATA
Processing Linked Data with Catmandu | http://librecat.org
STAGE 1: CATALOG to MARC
CATALOG
MARC
245 $$a ... $$b
260 $$a ...
700 $$a ...
$ catmandu export ALEPH to MARC
Processing Linked Data with Catmandu | http://librecat.org
STAGE 2: MARC to JSON
MARC
245 $$a ... $$b
260 $$a ...
700 $$a ...
JSON/YAML
Processing Linked Data with Catmandu | http://librecat.org
MARC
245 $$a ... $$b
260 $$a ...
700 $$a ...
JSON/YAML
STAGE 2: MARC to JSON
Tolstoj, Lev Nikolaevič,
Author
War and peace /
Title
1952.
Publication Year
Napoleonic Wars,
Subject
Processing Linked Data with Catmandu | http://librecat.org
STAGE 2: MARC to JSON
MARC
245 $$a ... $$b
260 $$a ...
700 $$a ...
JSON/YAML
Tolstoj, Lev Nikolaevič,
War and peace /
1952.
Napoleonic Wars,
Author
Title
Year
Subject
Tolstoj, Lev Nikolaevič
War and peace
1952
Napoleonic Wars
Author
Title
Year
Subject
FIX
Processing Linked Data with Catmandu | http://librecat.org
STAGE 3a: JSON to RDF
JSON/YAML
LINKED DATA
Tolstoj, Lev Nikolaevič
War and peace
1952
Napoleonic Wars
Author
Title
Year
Subject
?
Tolstoj, Lev Nikolaevič
War and peace
1952
Napoleonic Wars
dc:creator
dc:title
dc:date
dc:subject
FIX
Processing Linked Data with Catmandu | http://librecat.org
JSON/YAML
LINKED DATA
STAGE 3a: JSON to RDF
<http://example.org/000000008>
	 <http://purl.org/dc/elements/1.1/creator> “Tolstoj, Lev Nikolaevič”;
	 <http://purl.org/dc/elements/1.1/title> “War and peace” ;
<http://purl.org/dc/elements/1.1/date> “1952” ;
<http://purl.org/dc/elements/1.1/subject> “Napoleonic Wars” ;
	 a <http://www.europeana.eu/schemas/edm/Book> .
FIX
RDF/Turtle
http://demo.librecat.org/
Processing Linked Data with Catmandu | http://librecat.org
STAGE 3b: RDF to Linked Data
JSON/YAML
LINKED DATA
<http://example.org/000000008>
	 <http://purl.org/dc/elements/1.1/creator> “Tolstoj, Lev Nikolaevič”;
	 <http://purl.org/dc/elements/1.1/title> “War and peace” ;
<http://purl.org/dc/elements/1.1/date> “1952” ;
<http://purl.org/dc/elements/1.1/subject> “Napoleonic Wars” ;
	 a <http://www.europeana.eu/schemas/edm/Book> .
<http://example.org/000000008>
	 <http://purl.org/dc/elements/1.1/creator> <http://viaf.org/viaf/96987389>;
	 <http://purl.org/dc/elements/1.1/title> “War and peace” ;
<http://purl.org/dc/elements/1.1/date> “1952” ;
<http://purl.org/dc/elements/1.1/subject> <http://dbpedia.org/page/Napoleonic_
Wars> ;
	 a <http://www.europeana.eu/schemas/edm/Book> .
FIX
Processing Linked Data with Catmandu | http://librecat.org
THANK YOU
Nicolas Steenlant
Nicolas Franck Snorri Briem
Jörgen Eriksson
Maria Hedberg
Dave Sheroman
Friedrich Summann
Najko Jahn
Vitali Peil
Petra Kohorst
Christian Pietsch
Mathias Lösch
Johan RolschewskiJakob Voß
UGENT
LUND
BIELEFELD
GBV STAATSBIBLIOTHEK ZU BERLIN
Wouter Willaert
INUITS

More Related Content

What's hot (6)

Flagis linked open_data_stijn_goedertier
Flagis linked open_data_stijn_goedertierFlagis linked open_data_stijn_goedertier
Flagis linked open_data_stijn_goedertier
Flagis VZW
 
Inductive Triple Graphs: A purely functional approach to represent RDF
Inductive Triple Graphs: A purely functional approach to represent RDFInductive Triple Graphs: A purely functional approach to represent RDF
Inductive Triple Graphs: A purely functional approach to represent RDF
Jose Emilio Labra Gayo
 
XESLite - Handling Event Logs in ProM
XESLite - Handling Event Logs in ProMXESLite - Handling Event Logs in ProM
XESLite - Handling Event Logs in ProM
Felix Mannhardt
 
Data recovery using pg_filedump
Data recovery using pg_filedumpData recovery using pg_filedump
Data recovery using pg_filedump
Aleksander Alekseev
 
Triplificating and linking XBRL financial data
Triplificating and linking XBRL financial dataTriplificating and linking XBRL financial data
Triplificating and linking XBRL financial data
Roberto García
 
3 Google Operators
3 Google Operators3 Google Operators
3 Google Operators
aptwano
 
Flagis linked open_data_stijn_goedertier
Flagis linked open_data_stijn_goedertierFlagis linked open_data_stijn_goedertier
Flagis linked open_data_stijn_goedertier
Flagis VZW
 
Inductive Triple Graphs: A purely functional approach to represent RDF
Inductive Triple Graphs: A purely functional approach to represent RDFInductive Triple Graphs: A purely functional approach to represent RDF
Inductive Triple Graphs: A purely functional approach to represent RDF
Jose Emilio Labra Gayo
 
XESLite - Handling Event Logs in ProM
XESLite - Handling Event Logs in ProMXESLite - Handling Event Logs in ProM
XESLite - Handling Event Logs in ProM
Felix Mannhardt
 
Triplificating and linking XBRL financial data
Triplificating and linking XBRL financial dataTriplificating and linking XBRL financial data
Triplificating and linking XBRL financial data
Roberto García
 
3 Google Operators
3 Google Operators3 Google Operators
3 Google Operators
aptwano
 

Viewers also liked (20)

20130308 webstrategie
20130308 webstrategie20130308 webstrategie
20130308 webstrategie
Patrick Hochstenbach
 
Cost Seg Presentation For Upload Mar 29 09
Cost Seg Presentation For Upload Mar 29 09Cost Seg Presentation For Upload Mar 29 09
Cost Seg Presentation For Upload Mar 29 09
guestecc153
 
Poradnik Jak promować się w media społecznościowych dla Przedsiębiorców
Poradnik Jak promować się w media społecznościowych dla PrzedsiębiorcówPoradnik Jak promować się w media społecznościowych dla Przedsiębiorców
Poradnik Jak promować się w media społecznościowych dla Przedsiębiorców
Sławomir Stańczuk
 
Transportaion Of Biologics Tlsse
Transportaion Of Biologics TlsseTransportaion Of Biologics Tlsse
Transportaion Of Biologics Tlsse
SamEid
 
Job Order Contracting Journeys to China - CJE Newsletter fall 2008
Job Order Contracting Journeys to China - CJE Newsletter fall 2008Job Order Contracting Journeys to China - CJE Newsletter fall 2008
Job Order Contracting Journeys to China - CJE Newsletter fall 2008
Organizational Development & Change Management
 
Final presentation
Final presentationFinal presentation
Final presentation
christinacss13
 
Twice As Much Incentive - Sales and Marketing Mag 2002
Twice As Much Incentive - Sales and Marketing Mag 2002Twice As Much Incentive - Sales and Marketing Mag 2002
Twice As Much Incentive - Sales and Marketing Mag 2002
Organizational Development & Change Management
 
New AgriCenter Program Overview Farm Chemicals Mag
New AgriCenter Program Overview Farm Chemicals MagNew AgriCenter Program Overview Farm Chemicals Mag
New AgriCenter Program Overview Farm Chemicals Mag
Organizational Development & Change Management
 
2ST.net Corporate Overview 2012
2ST.net Corporate Overview 20122ST.net Corporate Overview 2012
2ST.net Corporate Overview 2012
chohl
 
L'email per le organizzazioni politiche
L'email per le organizzazioni politicheL'email per le organizzazioni politiche
L'email per le organizzazioni politiche
Claudio Alberti
 
Presentation Slides for Keynote Address ... SUCCESS AND HAPPINESS
Presentation Slides for Keynote Address ... SUCCESS AND HAPPINESS Presentation Slides for Keynote Address ... SUCCESS AND HAPPINESS
Presentation Slides for Keynote Address ... SUCCESS AND HAPPINESS
Chris Walker
 
Idea Lab Harvard
Idea Lab HarvardIdea Lab Harvard
Idea Lab Harvard
Organizational Development & Change Management
 
Alfresco Share
Alfresco ShareAlfresco Share
Alfresco Share
rwarsito
 
The Firm And Angels And Demons
The Firm And Angels And DemonsThe Firm And Angels And Demons
The Firm And Angels And Demons
christinacss13
 
Adam and Dans Geevor Presentation
Adam and Dans Geevor PresentationAdam and Dans Geevor Presentation
Adam and Dans Geevor Presentation
geevor_museum
 
Incentive Cards Explained - Incentive Mag Dec 1995
Incentive Cards Explained - Incentive Mag Dec 1995Incentive Cards Explained - Incentive Mag Dec 1995
Incentive Cards Explained - Incentive Mag Dec 1995
Organizational Development & Change Management
 
La promozione nei motori di ricerca
La promozione nei motori di ricercaLa promozione nei motori di ricerca
La promozione nei motori di ricerca
Claudio Alberti
 
Presenatation for evaluation ciara harry george megan
Presenatation for evaluation ciara harry george meganPresenatation for evaluation ciara harry george megan
Presenatation for evaluation ciara harry george megan
robbienn45
 
Cost Seg Presentation For Upload Mar 29 09
Cost Seg Presentation For Upload Mar 29 09Cost Seg Presentation For Upload Mar 29 09
Cost Seg Presentation For Upload Mar 29 09
guestecc153
 
Poradnik Jak promować się w media społecznościowych dla Przedsiębiorców
Poradnik Jak promować się w media społecznościowych dla PrzedsiębiorcówPoradnik Jak promować się w media społecznościowych dla Przedsiębiorców
Poradnik Jak promować się w media społecznościowych dla Przedsiębiorców
Sławomir Stańczuk
 
Transportaion Of Biologics Tlsse
Transportaion Of Biologics TlsseTransportaion Of Biologics Tlsse
Transportaion Of Biologics Tlsse
SamEid
 
2ST.net Corporate Overview 2012
2ST.net Corporate Overview 20122ST.net Corporate Overview 2012
2ST.net Corporate Overview 2012
chohl
 
L'email per le organizzazioni politiche
L'email per le organizzazioni politicheL'email per le organizzazioni politiche
L'email per le organizzazioni politiche
Claudio Alberti
 
Presentation Slides for Keynote Address ... SUCCESS AND HAPPINESS
Presentation Slides for Keynote Address ... SUCCESS AND HAPPINESS Presentation Slides for Keynote Address ... SUCCESS AND HAPPINESS
Presentation Slides for Keynote Address ... SUCCESS AND HAPPINESS
Chris Walker
 
Alfresco Share
Alfresco ShareAlfresco Share
Alfresco Share
rwarsito
 
The Firm And Angels And Demons
The Firm And Angels And DemonsThe Firm And Angels And Demons
The Firm And Angels And Demons
christinacss13
 
Adam and Dans Geevor Presentation
Adam and Dans Geevor PresentationAdam and Dans Geevor Presentation
Adam and Dans Geevor Presentation
geevor_museum
 
La promozione nei motori di ricerca
La promozione nei motori di ricercaLa promozione nei motori di ricerca
La promozione nei motori di ricerca
Claudio Alberti
 
Presenatation for evaluation ciara harry george megan
Presenatation for evaluation ciara harry george meganPresenatation for evaluation ciara harry george megan
Presenatation for evaluation ciara harry george megan
robbienn45
 

Similar to Processing Linked Data with Catmandu (20)

Leveraging the Web of Data: Managing, Analysing and Making Use of Linked Open...
Leveraging the Web of Data: Managing, Analysing and Making Use of Linked Open...Leveraging the Web of Data: Managing, Analysing and Making Use of Linked Open...
Leveraging the Web of Data: Managing, Analysing and Making Use of Linked Open...
Thomas Gottron
 
Dataframes in Spark - Data Analysts' perspective
Dataframes in Spark - Data Analysts' perspectiveDataframes in Spark - Data Analysts' perspective
Dataframes in Spark - Data Analysts' perspective
Marcin Szymaniuk
 
Spark3
Spark3Spark3
Spark3
poovarasu maniandan
 
Knowledge graph construction with a façade - The SPARQL Anything Project
Knowledge graph construction with a façade - The SPARQL Anything ProjectKnowledge graph construction with a façade - The SPARQL Anything Project
Knowledge graph construction with a façade - The SPARQL Anything Project
Enrico Daga
 
Linked open data sandwich
Linked open data sandwichLinked open data sandwich
Linked open data sandwich
Thimo Thoeye
 
Querying the Web of Data
Querying the Web of DataQuerying the Web of Data
Querying the Web of Data
Rinke Hoekstra
 
Where is the World is my Open Government Data?
Where is the World is my Open Government Data?Where is the World is my Open Government Data?
Where is the World is my Open Government Data?
Rensselaer Polytechnic Institute
 
ACADGILD:: HADOOP LESSON
ACADGILD:: HADOOP LESSON ACADGILD:: HADOOP LESSON
ACADGILD:: HADOOP LESSON
Padma shree. T
 
Data integration with a façade. The case of knowledge graph construction.
Data integration with a façade. The case of knowledge graph construction.Data integration with a façade. The case of knowledge graph construction.
Data integration with a façade. The case of knowledge graph construction.
Enrico Daga
 
Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...
Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...
Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...
MongoDB
 
A Little SPARQL in your Analytics
A Little SPARQL in your AnalyticsA Little SPARQL in your Analytics
A Little SPARQL in your Analytics
Dr. Neil Brittliff
 
Elasticsearch intro output
Elasticsearch intro outputElasticsearch intro output
Elasticsearch intro output
Tom Chen
 
A Mapping-based Method to Query MongoDB Documents with SPARQL
A Mapping-based Method to Query MongoDB Documents with SPARQLA Mapping-based Method to Query MongoDB Documents with SPARQL
A Mapping-based Method to Query MongoDB Documents with SPARQL
Franck Michel
 
Knot.x 1.X / 2.0 roadmap
Knot.x 1.X / 2.0 roadmapKnot.x 1.X / 2.0 roadmap
Knot.x 1.X / 2.0 roadmap
Tomasz Michalak
 
Alessandro Confetti - Oop vs functional: stop the fight and start building me...
Alessandro Confetti - Oop vs functional: stop the fight and start building me...Alessandro Confetti - Oop vs functional: stop the fight and start building me...
Alessandro Confetti - Oop vs functional: stop the fight and start building me...
Codemotion
 
Alessandro Confetti - Oop vs functional: stop the fight and start building me...
Alessandro Confetti - Oop vs functional: stop the fight and start building me...Alessandro Confetti - Oop vs functional: stop the fight and start building me...
Alessandro Confetti - Oop vs functional: stop the fight and start building me...
Codemotion
 
Oop vs functional stop the fight and start building message driven serverle...
Oop vs functional   stop the fight and start building message driven serverle...Oop vs functional   stop the fight and start building message driven serverle...
Oop vs functional stop the fight and start building message driven serverle...
Alessandro Confetti
 
Culture Geeks Feb talk: Adventures in Linked Data Land
Culture Geeks Feb talk: Adventures in Linked Data LandCulture Geeks Feb talk: Adventures in Linked Data Land
Culture Geeks Feb talk: Adventures in Linked Data Land
val.cartei
 
Controlled Vocabularies and Text Mining - Use Cases at the Goettingen State a...
Controlled Vocabularies and Text Mining - Use Cases at the Goettingen State a...Controlled Vocabularies and Text Mining - Use Cases at the Goettingen State a...
Controlled Vocabularies and Text Mining - Use Cases at the Goettingen State a...
Ralf Stockmann
 
Making Use of the Linked Data Cloud: The Role of Index Structures
Making Use of the Linked Data Cloud: The Role of Index StructuresMaking Use of the Linked Data Cloud: The Role of Index Structures
Making Use of the Linked Data Cloud: The Role of Index Structures
Thomas Gottron
 
Leveraging the Web of Data: Managing, Analysing and Making Use of Linked Open...
Leveraging the Web of Data: Managing, Analysing and Making Use of Linked Open...Leveraging the Web of Data: Managing, Analysing and Making Use of Linked Open...
Leveraging the Web of Data: Managing, Analysing and Making Use of Linked Open...
Thomas Gottron
 
Dataframes in Spark - Data Analysts' perspective
Dataframes in Spark - Data Analysts' perspectiveDataframes in Spark - Data Analysts' perspective
Dataframes in Spark - Data Analysts' perspective
Marcin Szymaniuk
 
Knowledge graph construction with a façade - The SPARQL Anything Project
Knowledge graph construction with a façade - The SPARQL Anything ProjectKnowledge graph construction with a façade - The SPARQL Anything Project
Knowledge graph construction with a façade - The SPARQL Anything Project
Enrico Daga
 
Linked open data sandwich
Linked open data sandwichLinked open data sandwich
Linked open data sandwich
Thimo Thoeye
 
Querying the Web of Data
Querying the Web of DataQuerying the Web of Data
Querying the Web of Data
Rinke Hoekstra
 
ACADGILD:: HADOOP LESSON
ACADGILD:: HADOOP LESSON ACADGILD:: HADOOP LESSON
ACADGILD:: HADOOP LESSON
Padma shree. T
 
Data integration with a façade. The case of knowledge graph construction.
Data integration with a façade. The case of knowledge graph construction.Data integration with a façade. The case of knowledge graph construction.
Data integration with a façade. The case of knowledge graph construction.
Enrico Daga
 
Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...
Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...
Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...
MongoDB
 
A Little SPARQL in your Analytics
A Little SPARQL in your AnalyticsA Little SPARQL in your Analytics
A Little SPARQL in your Analytics
Dr. Neil Brittliff
 
Elasticsearch intro output
Elasticsearch intro outputElasticsearch intro output
Elasticsearch intro output
Tom Chen
 
A Mapping-based Method to Query MongoDB Documents with SPARQL
A Mapping-based Method to Query MongoDB Documents with SPARQLA Mapping-based Method to Query MongoDB Documents with SPARQL
A Mapping-based Method to Query MongoDB Documents with SPARQL
Franck Michel
 
Knot.x 1.X / 2.0 roadmap
Knot.x 1.X / 2.0 roadmapKnot.x 1.X / 2.0 roadmap
Knot.x 1.X / 2.0 roadmap
Tomasz Michalak
 
Alessandro Confetti - Oop vs functional: stop the fight and start building me...
Alessandro Confetti - Oop vs functional: stop the fight and start building me...Alessandro Confetti - Oop vs functional: stop the fight and start building me...
Alessandro Confetti - Oop vs functional: stop the fight and start building me...
Codemotion
 
Alessandro Confetti - Oop vs functional: stop the fight and start building me...
Alessandro Confetti - Oop vs functional: stop the fight and start building me...Alessandro Confetti - Oop vs functional: stop the fight and start building me...
Alessandro Confetti - Oop vs functional: stop the fight and start building me...
Codemotion
 
Oop vs functional stop the fight and start building message driven serverle...
Oop vs functional   stop the fight and start building message driven serverle...Oop vs functional   stop the fight and start building message driven serverle...
Oop vs functional stop the fight and start building message driven serverle...
Alessandro Confetti
 
Culture Geeks Feb talk: Adventures in Linked Data Land
Culture Geeks Feb talk: Adventures in Linked Data LandCulture Geeks Feb talk: Adventures in Linked Data Land
Culture Geeks Feb talk: Adventures in Linked Data Land
val.cartei
 
Controlled Vocabularies and Text Mining - Use Cases at the Goettingen State a...
Controlled Vocabularies and Text Mining - Use Cases at the Goettingen State a...Controlled Vocabularies and Text Mining - Use Cases at the Goettingen State a...
Controlled Vocabularies and Text Mining - Use Cases at the Goettingen State a...
Ralf Stockmann
 
Making Use of the Linked Data Cloud: The Role of Index Structures
Making Use of the Linked Data Cloud: The Role of Index StructuresMaking Use of the Linked Data Cloud: The Role of Index Structures
Making Use of the Linked Data Cloud: The Role of Index Structures
Thomas Gottron
 

More from Patrick Hochstenbach (20)

Elag2015
Elag2015Elag2015
Elag2015
Patrick Hochstenbach
 
The Library in 2050
The Library in 2050The Library in 2050
The Library in 2050
Patrick Hochstenbach
 
MARC Died
MARC DiedMARC Died
MARC Died
Patrick Hochstenbach
 
LibreCat::Catmandu
LibreCat::CatmanduLibreCat::Catmandu
LibreCat::Catmandu
Patrick Hochstenbach
 
Catmandu Librecat
Catmandu LibrecatCatmandu Librecat
Catmandu Librecat
Patrick Hochstenbach
 
Catmandu / LibreCat Project
Catmandu / LibreCat ProjectCatmandu / LibreCat Project
Catmandu / LibreCat Project
Patrick Hochstenbach
 
UGent Datacenter of waarom we 140TB kopen
UGent Datacenter of waarom we 140TB kopenUGent Datacenter of waarom we 140TB kopen
UGent Datacenter of waarom we 140TB kopen
Patrick Hochstenbach
 
देवनागरी Devanāgarī
 देवनागरी Devanāgarī  देवनागरी Devanāgarī
देवनागरी Devanāgarī
Patrick Hochstenbach
 
Informatie Aan Zee - TTT E-Research
Informatie Aan Zee - TTT E-ResearchInformatie Aan Zee - TTT E-Research
Informatie Aan Zee - TTT E-Research
Patrick Hochstenbach
 
Informatie Aan Zee - TTT Digital Architecture
Informatie Aan Zee - TTT Digital ArchitectureInformatie Aan Zee - TTT Digital Architecture
Informatie Aan Zee - TTT Digital Architecture
Patrick Hochstenbach
 
ELAG2011 Bootcamp
ELAG2011 BootcampELAG2011 Bootcamp
ELAG2011 Bootcamp
Patrick Hochstenbach
 
Biblio
BiblioBiblio
Biblio
Patrick Hochstenbach
 
GREP - Ghent University Repository
GREP - Ghent University RepositoryGREP - Ghent University Repository
GREP - Ghent University Repository
Patrick Hochstenbach
 
Open | Linked | Open Linked data
Open | Linked | Open Linked dataOpen | Linked | Open Linked data
Open | Linked | Open Linked data
Patrick Hochstenbach
 
20100831 igelu mobilise_ugent
20100831 igelu mobilise_ugent20100831 igelu mobilise_ugent
20100831 igelu mobilise_ugent
Patrick Hochstenbach
 
20100618 Datasalon5 Vooruit Gent
20100618 Datasalon5 Vooruit Gent20100618 Datasalon5 Vooruit Gent
20100618 Datasalon5 Vooruit Gent
Patrick Hochstenbach
 
20100306 Datasalon 4 : code4lib
20100306 Datasalon 4 : code4lib20100306 Datasalon 4 : code4lib
20100306 Datasalon 4 : code4lib
Patrick Hochstenbach
 
20091120 Vlengel Maastricht
20091120 Vlengel Maastricht20091120 Vlengel Maastricht
20091120 Vlengel Maastricht
Patrick Hochstenbach
 
Data Salon 3 - Ghent
Data Salon 3 - GhentData Salon 3 - Ghent
Data Salon 3 - Ghent
Patrick Hochstenbach
 

Recently uploaded (20)

Strategic Corporate Social Responsibility: Sustainable Value Creation Fourth
Strategic Corporate Social Responsibility: Sustainable Value Creation FourthStrategic Corporate Social Responsibility: Sustainable Value Creation Fourth
Strategic Corporate Social Responsibility: Sustainable Value Creation Fourth
keileyrazawi
 
Purchase Analysis in Odoo 17 - Odoo Slides
Purchase Analysis in Odoo 17 - Odoo SlidesPurchase Analysis in Odoo 17 - Odoo Slides
Purchase Analysis in Odoo 17 - Odoo Slides
Celine George
 
Easier-to-Save.Nest report into workplace saving
Easier-to-Save.Nest report into workplace savingEasier-to-Save.Nest report into workplace saving
Easier-to-Save.Nest report into workplace saving
Henry Tapper
 
Pushyabhuti Dynesty Vardhan Vamsha Early Rulers.pptx
Pushyabhuti Dynesty Vardhan Vamsha Early Rulers.pptxPushyabhuti Dynesty Vardhan Vamsha Early Rulers.pptx
Pushyabhuti Dynesty Vardhan Vamsha Early Rulers.pptx
Arya Mahila P. G. College, Banaras Hindu University, Varanasi, India.
 
UNIT 1 Introduction to communication.pptx
UNIT 1 Introduction to communication.pptxUNIT 1 Introduction to communication.pptx
UNIT 1 Introduction to communication.pptx
HARIHARAN A
 
Sums on Break even analysis and BEP.pptx
Sums on Break even analysis and BEP.pptxSums on Break even analysis and BEP.pptx
Sums on Break even analysis and BEP.pptx
Priya Sequeira, Alva's Institute of Engineering & Technology, Moodbidri
 
Information Sources & Resource and Various uses_.pptx
Information Sources & Resource and Various uses_.pptxInformation Sources & Resource and Various uses_.pptx
Information Sources & Resource and Various uses_.pptx
Central University of South Bihar, Gaya, Bihar
 
How to Identify the Margin from the Sales Orders using Odoo 17
How to Identify the Margin from the Sales Orders using Odoo 17How to Identify the Margin from the Sales Orders using Odoo 17
How to Identify the Margin from the Sales Orders using Odoo 17
Celine George
 
Synthesis for VIth SEM 21-2-25.pptx by Mrs. Manjushri P. Dabhade
Synthesis for VIth SEM 21-2-25.pptx by Mrs. Manjushri P. DabhadeSynthesis for VIth SEM 21-2-25.pptx by Mrs. Manjushri P. Dabhade
Synthesis for VIth SEM 21-2-25.pptx by Mrs. Manjushri P. Dabhade
Dabhade madam Dabhade
 
Why Use Python to Automate Your Trading? - Varun Pothula, Quantitative Analys...
Why Use Python to Automate Your Trading? - Varun Pothula, Quantitative Analys...Why Use Python to Automate Your Trading? - Varun Pothula, Quantitative Analys...
Why Use Python to Automate Your Trading? - Varun Pothula, Quantitative Analys...
QuantInsti
 
Using social media to learn from conferences
Using social media to learn from conferencesUsing social media to learn from conferences
Using social media to learn from conferences
Sue Beckingham
 
Introduction to Drug Design.pptx by Mrs. Manjushri P. Dabhade
Introduction to Drug Design.pptx by Mrs. Manjushri P. DabhadeIntroduction to Drug Design.pptx by Mrs. Manjushri P. Dabhade
Introduction to Drug Design.pptx by Mrs. Manjushri P. Dabhade
Dabhade madam Dabhade
 
Action of Muscles ppt by Priscilla Jasper Vedam Vemavarapu @ASRHMC
Action of  Muscles ppt by Priscilla Jasper Vedam Vemavarapu @ASRHMCAction of  Muscles ppt by Priscilla Jasper Vedam Vemavarapu @ASRHMC
Action of Muscles ppt by Priscilla Jasper Vedam Vemavarapu @ASRHMC
jaspervedamvemavarap
 
"The Write Path: Navigating Research Writing, Publication, and Professional G...
"The Write Path: Navigating Research Writing, Publication, and Professional G..."The Write Path: Navigating Research Writing, Publication, and Professional G...
"The Write Path: Navigating Research Writing, Publication, and Professional G...
neelottama
 
Mixed_Sinhala_Dual_Male_Names (1).pdf...
Mixed_Sinhala_Dual_Male_Names (1).pdf...Mixed_Sinhala_Dual_Male_Names (1).pdf...
Mixed_Sinhala_Dual_Male_Names (1).pdf...
keshanf79
 
Cinema Quiz By QURU RLAC DELHI UNIVERSITY.pdf
Cinema Quiz By QURU RLAC DELHI UNIVERSITY.pdfCinema Quiz By QURU RLAC DELHI UNIVERSITY.pdf
Cinema Quiz By QURU RLAC DELHI UNIVERSITY.pdf
QURU, RAM LAL ANAND COLLEGE.
 
10.socialorganisationandsocialsystem .pptx
10.socialorganisationandsocialsystem .pptx10.socialorganisationandsocialsystem .pptx
10.socialorganisationandsocialsystem .pptx
Vivek Bhattji
 
2. ES: Application of Number: Units of measure & conversions
2. ES: Application of Number: Units of measure & conversions2. ES: Application of Number: Units of measure & conversions
2. ES: Application of Number: Units of measure & conversions
leigh441292
 
SUPPOSITORIES
SUPPOSITORIESSUPPOSITORIES
SUPPOSITORIES
Shantanu Ranjan
 
Introduction to Karnaugh Maps (K-Maps) for Simplifying Boolean Expressions
Introduction to Karnaugh Maps (K-Maps) for Simplifying Boolean ExpressionsIntroduction to Karnaugh Maps (K-Maps) for Simplifying Boolean Expressions
Introduction to Karnaugh Maps (K-Maps) for Simplifying Boolean Expressions
GS Virdi
 
Strategic Corporate Social Responsibility: Sustainable Value Creation Fourth
Strategic Corporate Social Responsibility: Sustainable Value Creation FourthStrategic Corporate Social Responsibility: Sustainable Value Creation Fourth
Strategic Corporate Social Responsibility: Sustainable Value Creation Fourth
keileyrazawi
 
Purchase Analysis in Odoo 17 - Odoo Slides
Purchase Analysis in Odoo 17 - Odoo SlidesPurchase Analysis in Odoo 17 - Odoo Slides
Purchase Analysis in Odoo 17 - Odoo Slides
Celine George
 
Easier-to-Save.Nest report into workplace saving
Easier-to-Save.Nest report into workplace savingEasier-to-Save.Nest report into workplace saving
Easier-to-Save.Nest report into workplace saving
Henry Tapper
 
UNIT 1 Introduction to communication.pptx
UNIT 1 Introduction to communication.pptxUNIT 1 Introduction to communication.pptx
UNIT 1 Introduction to communication.pptx
HARIHARAN A
 
How to Identify the Margin from the Sales Orders using Odoo 17
How to Identify the Margin from the Sales Orders using Odoo 17How to Identify the Margin from the Sales Orders using Odoo 17
How to Identify the Margin from the Sales Orders using Odoo 17
Celine George
 
Synthesis for VIth SEM 21-2-25.pptx by Mrs. Manjushri P. Dabhade
Synthesis for VIth SEM 21-2-25.pptx by Mrs. Manjushri P. DabhadeSynthesis for VIth SEM 21-2-25.pptx by Mrs. Manjushri P. Dabhade
Synthesis for VIth SEM 21-2-25.pptx by Mrs. Manjushri P. Dabhade
Dabhade madam Dabhade
 
Why Use Python to Automate Your Trading? - Varun Pothula, Quantitative Analys...
Why Use Python to Automate Your Trading? - Varun Pothula, Quantitative Analys...Why Use Python to Automate Your Trading? - Varun Pothula, Quantitative Analys...
Why Use Python to Automate Your Trading? - Varun Pothula, Quantitative Analys...
QuantInsti
 
Using social media to learn from conferences
Using social media to learn from conferencesUsing social media to learn from conferences
Using social media to learn from conferences
Sue Beckingham
 
Introduction to Drug Design.pptx by Mrs. Manjushri P. Dabhade
Introduction to Drug Design.pptx by Mrs. Manjushri P. DabhadeIntroduction to Drug Design.pptx by Mrs. Manjushri P. Dabhade
Introduction to Drug Design.pptx by Mrs. Manjushri P. Dabhade
Dabhade madam Dabhade
 
Action of Muscles ppt by Priscilla Jasper Vedam Vemavarapu @ASRHMC
Action of  Muscles ppt by Priscilla Jasper Vedam Vemavarapu @ASRHMCAction of  Muscles ppt by Priscilla Jasper Vedam Vemavarapu @ASRHMC
Action of Muscles ppt by Priscilla Jasper Vedam Vemavarapu @ASRHMC
jaspervedamvemavarap
 
"The Write Path: Navigating Research Writing, Publication, and Professional G...
"The Write Path: Navigating Research Writing, Publication, and Professional G..."The Write Path: Navigating Research Writing, Publication, and Professional G...
"The Write Path: Navigating Research Writing, Publication, and Professional G...
neelottama
 
Mixed_Sinhala_Dual_Male_Names (1).pdf...
Mixed_Sinhala_Dual_Male_Names (1).pdf...Mixed_Sinhala_Dual_Male_Names (1).pdf...
Mixed_Sinhala_Dual_Male_Names (1).pdf...
keshanf79
 
10.socialorganisationandsocialsystem .pptx
10.socialorganisationandsocialsystem .pptx10.socialorganisationandsocialsystem .pptx
10.socialorganisationandsocialsystem .pptx
Vivek Bhattji
 
2. ES: Application of Number: Units of measure & conversions
2. ES: Application of Number: Units of measure & conversions2. ES: Application of Number: Units of measure & conversions
2. ES: Application of Number: Units of measure & conversions
leigh441292
 
Introduction to Karnaugh Maps (K-Maps) for Simplifying Boolean Expressions
Introduction to Karnaugh Maps (K-Maps) for Simplifying Boolean ExpressionsIntroduction to Karnaugh Maps (K-Maps) for Simplifying Boolean Expressions
Introduction to Karnaugh Maps (K-Maps) for Simplifying Boolean Expressions
GS Virdi
 

Processing Linked Data with Catmandu

  • 1. Processing Linked Data with Catmandu Patrick Hochstenbach | UGent http://librecat.org
  • 2. Processing Linked Data with Catmandu | http://librecat.org LUND GHENT BIELEFELD
  • 3. Processing Linked Data with Catmandu | http://librecat.org RATIONALE
  • 4. Processing Linked Data with Catmandu | http://librecat.org KAHN-WILENSKI WEB HANDLE SERVICE PROVIDER REPOSITORY REPOSITORY I search a paper about...
  • 5. Processing Linked Data with Catmandu | http://librecat.org Hypothesis 1: one network with a common schema Hypothesis 2: object-oriented design Hypothesis 3: the resource is the message
  • 6. Processing Linked Data with Catmandu | http://librecat.org Hypothesis 1: one network with a common schema GOOGLE EUROPEANA OPENAIRE CRIS Videos Images Books Data sets
  • 7. Processing Linked Data with Catmandu | http://librecat.org Hypothesis 2: object-oriented design Drive Race Park Economy Compact Minivan Convertible Wheel Half car Bicycle Zeppelin
  • 8. Processing Linked Data with Catmandu | http://librecat.org Hypothesis 3: the resource researcher is the message DNS GOOGLE REPOSITORY CLOUD Dr. Müller
  • 9. Processing Linked Data with Catmandu | http://librecat.org LIBRECAT/CATMANDU
  • 10. Processing Linked Data with Catmandu | http://librecat.org CATMANDU PubMed MARC MODS EXCEL DSPACE Fedora SRU OAI-PMH DBI ISI Twitter DBI Atom EXCEL RDF JSON XML Solr ElasticSearch MongoDB Fedora Aleph Fix
  • 11. Processing Linked Data with Catmandu | http://librecat.org FUNCTIONAL DESIGN JSON } each slice take group select map reduce add_field join_field lookup remove_field marc_mab count
  • 12. Processing Linked Data with Catmandu | http://librecat.org LIBRECAT Institutional Repositories Search Engines Image Databases Archival Systems Data cleaning workbench Citation Style Processor
  • 13. Processing Linked Data with Catmandu | http://librecat.org CATMANDU catmandu convert MARC to JSON < records.mrc catmandu convert OAI --url http://server/OAI to JSON catmandu convert SRU --url http://server/SRU --query dna to JSON catmandu convert DBI --query ‘SELECT * FROM table’ to JSON catmandu convert MARC to JSON < records.mrc catmandu convert OAI --url http://server/OAI to XML catmandu convert SRU --url http://server/SRU --query dna to YAML catmandu convert ArXiv --query ‘all:electron’ to CSV CONVERT
  • 14. Processing Linked Data with Catmandu | http://librecat.org CATMANDU catmandu convert X to Y --fix ‘marc_map(“245”,”title”)’ catmandu convert X to Y --fix ‘prepend(“title”,”abcd-”)’ catmandu convert X toY --fix fixes.txt fixes.txt: remove_field(“_id”); marc_map(“001”, “merge.id”); prepend(“merge.id”, “author:”); add_field(“merge.source”,”author”); copy_field(“merge.id”,”_id”); FIX set_field add_field move_field copy_field remove_field upcase downcase capitalize trim substring prepend append lookup lookup_in_store count cmd split_field join_field retain_field replace_all collapse expand clone if_all_match if_any_match if_exists
  • 15. Processing Linked Data with Catmandu | http://librecat.org CATMANDU catmandu import JSON to MongoDB --opt ... --opt ... catmandu import MARC to ElasticSearch catmandu import DC to FedoraCommons catmandu import CSV to DBI catmandu export MongoDB to JSON catmandu export Solr to YAML catmandu export DBI to CSV catmandu export FedoraCommons to Template --template test.tt test.tt: (TemplateToolKit) [%- FOREACH f IN record %] [% _id %] [% f.shift %][% f.shift %][% f.shift %][% f.join(“:”) %] [%- END %] IMPORT / EXPORT
  • 16. Processing Linked Data with Catmandu | http://librecat.org CATMANDU https://metacpan.org/pod/Catmandu https://github.com/LibreCat/Catmandu http://librecat.org/tutorial/ http://librecat.org/catmandu/2013/06/21/catmandu-cheat-sheet.html
  • 17. Processing Linked Data with Catmandu | http://librecat.org LIBRECAT http://biblio.ugent.be
  • 18. Processing Linked Data with Catmandu | http://librecat.org LIBRECAT http://pub.uni-bielefeld.de/en
  • 19. Processing Linked Data with Catmandu | http://librecat.org LIBRECAT http://adore.ugent.be
  • 20. Processing Linked Data with Catmandu | http://librecat.org LIBRECAT http://libnew.ugent.be
  • 21. Processing Linked Data with Catmandu | http://librecat.org Architecture FEDORA MEDIAMOSA VLE BIBLIO SCANNING RECEIVE ALEPH ABS CLOUD DEDUP/MERGE/AUGMENT BLACKLIGHT
  • 22. Processing Linked Data with Catmandu | http://librecat.org LINKED DATA
  • 23. Processing Linked Data with Catmandu | http://librecat.org PRODUCTION CATALOG MARC 245 $$a ... $$b 260 $$a ... 700 $$a ... JSON/YAML LINKED DATA
  • 24. Processing Linked Data with Catmandu | http://librecat.org STAGE 1: CATALOG to MARC CATALOG MARC 245 $$a ... $$b 260 $$a ... 700 $$a ... $ catmandu export ALEPH to MARC
  • 25. Processing Linked Data with Catmandu | http://librecat.org STAGE 2: MARC to JSON MARC 245 $$a ... $$b 260 $$a ... 700 $$a ... JSON/YAML
  • 26. Processing Linked Data with Catmandu | http://librecat.org MARC 245 $$a ... $$b 260 $$a ... 700 $$a ... JSON/YAML STAGE 2: MARC to JSON Tolstoj, Lev Nikolaevič, Author War and peace / Title 1952. Publication Year Napoleonic Wars, Subject
  • 27. Processing Linked Data with Catmandu | http://librecat.org STAGE 2: MARC to JSON MARC 245 $$a ... $$b 260 $$a ... 700 $$a ... JSON/YAML Tolstoj, Lev Nikolaevič, War and peace / 1952. Napoleonic Wars, Author Title Year Subject Tolstoj, Lev Nikolaevič War and peace 1952 Napoleonic Wars Author Title Year Subject FIX
  • 28. Processing Linked Data with Catmandu | http://librecat.org STAGE 3a: JSON to RDF JSON/YAML LINKED DATA Tolstoj, Lev Nikolaevič War and peace 1952 Napoleonic Wars Author Title Year Subject ? Tolstoj, Lev Nikolaevič War and peace 1952 Napoleonic Wars dc:creator dc:title dc:date dc:subject FIX
  • 29. Processing Linked Data with Catmandu | http://librecat.org JSON/YAML LINKED DATA STAGE 3a: JSON to RDF <http://example.org/000000008> <http://purl.org/dc/elements/1.1/creator> “Tolstoj, Lev Nikolaevič”; <http://purl.org/dc/elements/1.1/title> “War and peace” ; <http://purl.org/dc/elements/1.1/date> “1952” ; <http://purl.org/dc/elements/1.1/subject> “Napoleonic Wars” ; a <http://www.europeana.eu/schemas/edm/Book> . FIX RDF/Turtle http://demo.librecat.org/
  • 30. Processing Linked Data with Catmandu | http://librecat.org STAGE 3b: RDF to Linked Data JSON/YAML LINKED DATA <http://example.org/000000008> <http://purl.org/dc/elements/1.1/creator> “Tolstoj, Lev Nikolaevič”; <http://purl.org/dc/elements/1.1/title> “War and peace” ; <http://purl.org/dc/elements/1.1/date> “1952” ; <http://purl.org/dc/elements/1.1/subject> “Napoleonic Wars” ; a <http://www.europeana.eu/schemas/edm/Book> . <http://example.org/000000008> <http://purl.org/dc/elements/1.1/creator> <http://viaf.org/viaf/96987389>; <http://purl.org/dc/elements/1.1/title> “War and peace” ; <http://purl.org/dc/elements/1.1/date> “1952” ; <http://purl.org/dc/elements/1.1/subject> <http://dbpedia.org/page/Napoleonic_ Wars> ; a <http://www.europeana.eu/schemas/edm/Book> . FIX
  • 31. Processing Linked Data with Catmandu | http://librecat.org THANK YOU Nicolas Steenlant Nicolas Franck Snorri Briem Jörgen Eriksson Maria Hedberg Dave Sheroman Friedrich Summann Najko Jahn Vitali Peil Petra Kohorst Christian Pietsch Mathias Lösch Johan RolschewskiJakob Voß UGENT LUND BIELEFELD GBV STAATSBIBLIOTHEK ZU BERLIN Wouter Willaert INUITS