Voorbeeld presentatie

Report
Metadata Interoperability Framework
(MIF)
ELAG 2014
Naeem Muhammad
Sam Alloing
Agenda
•
•
•
•
•
Who are we?
Europeana inside
Mapping and transformation service
Demo
Future
LIBIS
• Service provider for libraries, museums and archives
• Part of university of Leuven (Belgium), but also
external partners
• 19 team members
Europeana Inside
• Goal is to facilitate the content delivery to Europeana
through CMS (=ECK)
– Europeana is a portal for aggregation of cultural heritage objects
• 26 partners (Cultural institutions, software providers (
Adlib, Zetcom,… ))
• 30 months (April 2012 – September 2014)
• Deliver 960000 records to Europeana
• Special topic content re-ingestion
– Europeana enrichments send back to the CMS
Europeana Inside
Europeana Connection Kit (ECK)
ECK local
ECK
Core ECK services
•
•
•
•
•
•
•
•
Metadata Definition
Set Manager
Statistics
PID Generation
Preview
Validation
Data push (Sword)/ data pull (OAI-PMH)
Mapping and transformation
Europeana Connection Kit (ECK)
ECK local
ECK
LibisCoDe – example of ECK local
• Our version of the ECK local
• A plugin for CollectiveAccess
(http://collectiveaccess.org/)
– CollectiveAccess is an open source CMS
– LibisCode is also open source
• Supports a LIDO, MARC and (future?) EAD installation
profile.
LibisCoDe – How to use it
CollectiveAccess or
other CMS
CollectiveAccess
with LIBIScoDe
Your CollectiveAccess
with LIBIScoDe
Convert your
format to
MARC/LIDO
Convert EDM
to your
format
ECK core
ECK core
Europeana
Europeana
Mapping and transformation service
• Transforms one metadata format in another
– You can use a default mapping, this is only the transformation
service
– Or create a mapping file with a custom mapping (mapping and
transformation service)
– Implemented are MARC to EDM, LIDO to EDM
• LIDO = XML format used by museum
• EDM = RDF format from Europeana
• Why we created the service?
– Service-oriented architecture
– Different metadata formats needed to be supported
Input
• MARC XML or LIDO
• Mapping rule file
Output
• Only EDM is supported
– RDF based format from Europeana
– Core classes are supported (ProvidedCHO, Aggregation,
WebResource)
– We will be adding Contextual classes shortly (Place, Agent,
Concept,…)
Mapping rules
• Example MARC
– [command],[marc tag + subfield],[edm field]
– Doesn’t use indicators at this moment, could change
Mapping rules
• Example MARC (2)
– You only need to know the EDM field not the format
• For example edm:rights can be in multiple classes, but you just put
edm:rights, the EDM class is derived
ProvidedCHO
WebResource
Mapping rules
• Example LIDO
– No concise way to select the correct LIDO field, so we use
XPATH-like expression
– [command],[LIDO path],[edm field]
• Attributes are supported
Supported commands (1/2)
Action
COPY
Definition
Example
Copies the value from a source field to a target field. COPY,/lidoRecID,dc:identifier
If different source fields are defined to be copied to
the same target field a new occurrence of the target
field will be created
APPEND Append a source field to a target field. The specified APPEND,/category/term, some text ,dc:title
source field will be appended to the target field. If
or
there is already metadata in a field. The information
will be added to that field and not replaced. At the APPEND,/category/term, ,dc:title
time of append extra information can be added to
the value of the source field. In case no extra
information is needed an empty space can be left.
SPLIT
The source field will be split on the defined character SPLIT,/descriptiveMetadata/eventWrap/eve
and put in the target field. (In the example it will be ntSet/event/eventMaterialsTech/displayMat
split on space)
erialsTech, ,dcterms:medium
Supported commands (2/2)
Action
COMBINE
Definition
Example
Multiple source fields can be combined in one
COMBINE, /category/term;/lidoRecID,
target field. The fields are combined with a space dc:title
LIMIT
Limit the number of characters in a source field
LIMIT,/descriptiveMetadata/objectIdentificat
ionWrap/inscriptionsWrap/inscriptions/inscri
ptionTranscription,9,edm:description
PUT
Add a value to a target field. The value can contain PUT,"Koninklijke Musea voor Kunst en
commas, but no 2 pipes (||), because this is used Geschiedenis, Brussel",edm:dataProvider
as replacement character
REPLACE
Replaces a value in the source field with a replace REPLACE,/administrativeMetadata/rightsWor
string in the target Field.
kWrap/rightsWorkSet/rightsHolder/legalBod
yName/appellationValue,d'Histoire,History,e
In the example d'Histoire will be replaced by
dm:provider
History in the edm:provider element
CONDITION With condition you can combine different actions CONDITION,{
and use a conditional flow.
IF[/descriptiveMetadata/eventWrap/eventSe
IF can be used to define conditional action. With
t/event/eventType/term,EQUALS,Production
nested conditions also ELSE IF can be used.
,DO(COMBINE, /category/term;/lidoRecID,
The CONDITION actions starts and ends with curly
dc:title)]
brackets ‘{ ’. A new line is also mandatory.
}
Web service
• No user interface
• Meant to be integrated in CMS or use a REST client
• dmt.php/DataMapping/<provider>/<batch>/Transform
– POST request
– Provider: This is the name of the organization making the
request.
– Batch: This is the name of the batch submitted for
transformation.
Webservice - Parameters
• records or record
– Zip file with multiple XML files or one XML with multiple records
are supported (the mimetype needs to be correct)
• mappingRulesFile
– Needs to have mimetype text/csv
– Without this parameter you use the Transformation service
• sourceFormat
– Needs to be LIDO or MARC
• targetFormat
– Needs to be EDM
Web service - Response
• Returns a request_id
• Use it to download finished record(s)
• Use status:
– 0: no request exist with this id
– 1: not yet mapped/transformed
– 2: ready to be fetched
Web service – Other (GET) requests
• Status
• Fetch
– Download records
– Parameter is request_id
• List
– List of supported metadata formats
Demo
• Three possibilities
– Rest client tool (e.g. restclient)
– Libiscode with input records generation + mapping
– Libiscode with external records + mapping
Future?
• Add input formats (CSV, Filemaker XML, some custom
XMLs…)
• Update/add output formats (add EDM contextual
classes, add other formats)
• Extend/add/update actions
• Add queuing (near future)
• Add mapping interface (or integrate with MINT?)
Thank you !
Questions ?
LIBIS
[email protected] – www.libis.be
+32 (0) 16 32 22 66
De Croylaan 54 – PB 5592 – B-3001 Heverlee
Information.
Innovation.
Inspiration.

похожие документы