Download presentation
Presentation is loading. Please wait.
Published byOswin Dennis Modified over 8 years ago
1
A Hybrid Declarative/Procedural Metadata Mapping Language Based on Python Greg Janée & James Frew University of California at Santa Barbara
2
2Janée/Frew ECDL 2005 2005-09-19 ADL o Federated digital library system general framework for distributing queries specific support for geospatial queries, data query mediator Z39.50 gateway RDBMS Z39.50 server ADL metadata store XML metadata
3
3Janée/Frew ECDL 2005 2005-09-19 ADL metadata views o Bucket mappings of native metadata to high-level search indices comparable to Dublin Core but strongly typed o Browse image thumbnails, abstracts, etc. o Access describes how item can be accessed 4 different types of access points 2 hierarchy mechanisms: decomposition, alternatives
4
4Janée/Frew ECDL 2005 2005-09-19 Problem statement o Metadata mapping largely declarative in nature –“A B” need recourse to arbitrary computation –e.g., conversion of geographic coordinates –deal with pervasive quality problems but problems are often consistent for given collection or provider o Goal simple, concise way of specifying mappings that is executable
5
5Janée/Frew ECDL 2005 2005-09-19 Related work o Crosswalks simplistic (“A is equivalent to B”) no formal way to describe more complex mappings not executable o Many ad hoc solutions Perl, XSLT o XSLT difficult to program low-level, verbose computationally hamstrung
6
6Janée/Frew ECDL 2005 2005-09-19 Language for metadata mapping o Mapping is an executable Python script from ADL_mapper import * input()... statements... output() o ~25 language statements procedure calls but are declarative in nature o Query language form tuples from Xpath expressions o Inheritance mechanism
7
7Janée/Frew ECDL 2005 2005-09-19 Two examples map("adl:titles", "/itemRecord/general/title") def convertPresentKeyword (v): if v[1].lower() == "present" return (v[0], "9999") else: return v map("adl:dates", ["/itemRecord/temporalCoverages/timeInfo/timeAD" "begin@date", "end@date"], prefilters=convertPresentKeyword)
8
8Janée/Frew ECDL 2005 2005-09-19 Partial equivalent in XSLT <xsl:when test="translate(end/@date, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')='present'"> 9999
9
9Janée/Frew ECDL 2005 2005-09-19 Maya case study o Maya: thematic collection of GIS and other materials with FGDC metadata o Mapping problems: poor titles, e.g., “mex250kr” missing originator misused FGDC field o Solution generic FGDC mapping –23 statements Maya mapping derived from FGDC –3 statements
10
10Janée/Frew ECDL 2005 2005-09-19 Actual Maya mapping from ADL_mapper import * input() import FGDC_mapping def constructNewTitle (v): form = get("/metadata/idinfo/citation/citeinfo/geoform")... return... appendPostfilter("adl:titles", constructNewTitle) unmap("adl:formats", id=2) mapConstant("adl:originators", "Anabel Ford, ISBER/MesoAmerican Research Center") output()
11
11Janée/Frew ECDL 2005 2005-09-19 contextual intrinsic Future work o Mapping access-related metadata is problematic poorly supported by metadata standards only partially intrinsic to the item o Need to add library context as an input http://host.com/path/P32499.jpg http://host.com/path/P32499.thumb.jpg http://host.com/path/P32499.sid
12
12Janée/Frew ECDL 2005 2005-09-19 Summary o Problem create executable specifications largely, but not entirely declarative need ability to do arbitrary computation o Solution work within a high-level, procedural language procedure calls act like declarations resulting hybrid declarative/procedural language o http://www.alexandria.ucsb.edu/mm/
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.