My initial problem though with the marc-in-json approach is the complexity of the JSON, i am looking to find a simpler model in order to also make my queries, in ES for example, simpler to implement.
If anyone has any examples of how make use of this marc - in - json output in order to use ES, it would be much appreciated.
thank you
________________________________
Απο: Ross Singer <[log in to unmask]>
Προς: [log in to unmask]
Στάλθηκε: 3:47 μ.μ. Τρίτη, 24 Σεπτεμβρίου 2013
Θέμα: Re: [CODE4LIB] New perl module MARC::File::MiJ -- marc-in-json for
This serialization would actually be awful for the OP's use case, which (as
I understand it) is to put it in MongoDB and Elasticsearch (which are
exactly the use cases marc-in-json is designed for).
In this array of arrays approach, where the tag name is just another value
(as opposed to a key), you cannot take advantage of JsonPath, thereby
eliminating almost any possible way of querying this data in those
databases.
This format is great for serializing/deserializing in and out of a MARC
record structure (because it's incredibly fast and efficient). Not so much
for actually using in JSON-native environment.
marc-in-json was an intentional compromise so that it got the benefits that
being optimized for json (as opposed to being optimized for MARC) brought.
-Ross.
On Sep 24, 2013 6:57 AM, "Marc Chantreux" <[log in to unmask]> wrote:
> hello,
>
> On Mon, Jul 15, 2013 at 11:00:35AM -0400, Bill Dueber wrote:
> > The marc-in-json<
> http://dilettantes.code4lib.org/blog/2010/09/a-proposal-to-serialize-marc-in-json/
> >
>
> My 2 cents:
>
> * don't specify a MARC-in-Whatever format: define the way you store the
> MARC record in memory then just use dumpers from the YAML, JSON, and
> other serialization systems.
>
> * marc-in-json itself (as described in the document) use dicts at every
> level which leads to 2 issues:
>
> * implementations of transformations and querying are painfull
> * explicit use of useless keys = more useless data (not as crappy as
> XML but still useless.
>
> MARC::MIR http://search.cpan.org/~marcc/marc-mir-0.4/lib/MARC/MIR.pod
> In-memory representation is much simpler to handle, whatever the
> programming langage you use.
>
> As comparaison, the same record in MARC::MIR and MIJ.
> HTH
>
> MIR:
>
> [ "01471cjm a2200349 a 4500"
> , [ [ "001","5674874" ],
> [ "005","20030305110405.0" ],
> [ "007","sdubsmennmplu" ],
> [ "008","930331s1963 nyuppn eng d" ]
> [ "035", [ [ "9","(DLC) 93707283" ] ],
> , [" "," "] ],
> [ "906", [ [ [ "a","7" ] ,
> [ "b","cbc" ],
> [ "c","copycat" ],
> [ "d","4" ],
> [ "e","ncip" ],
> [ "f","19" ],
> [ "g","y-soundrec" ] ],
> [ " "," "]] ]
>
> MIJ:
>
> { "leader":"01471cjm a2200349 a 4500",
> "fields":
> [ { "001":"5674874" },
> { "005":"20030305110405.0" },
> { "007":"sdubsmennmplu" },
> { "008":"930331s1963 nyuppn eng d" },
> { "035": { "subfields": [
> { "9":"(DLC) 93707283" }
> ],
> "ind1":" ",
> "ind2":" " } },
> { "906":
> { "subfields":
> [ { "a":"7" },
> { "b":"cbc" },
> { "c":"copycat" },
> { "d":"4" },
> { "e":"ncip" },
> { "f":"19" },
> { "g":"y-soundrec" }
> ], "ind1":" ", "ind2":" " }}}
>
> --
> Marc Chantreux
> Université de Strasbourg, Direction Informatique
> 14 Rue René Descartes,
> 67084 STRASBOURG CEDEX
> ☎: 03.68.85.57.40
> http://unistra.fr
> "Don't believe everything you read on the Internet"
> -- Abraham Lincoln
>
|