Aus der Tiefe
   


About
Aus der Tiefe, Meldungen des Rechenzentrums in der Cauerstrasse 11

Matthias Bauer und Martin Bayer problems@math.fau.de

Subscribe
Subscribe to a syndicated feed of my weblog, brought to you by the wonders of RSS.

Flavours
There's more than one way to view this weblog; try these flavours on for size.

  • index
  • circa 1993
  • RSS
  • Links

  • Shoestring FoundationMiscellaneous byproducts

  •        
    Thu, 25 Feb 2016

    Thursday, February 25, 2016 14:02:12


            Die Uni hat ein Centrales System zur Verwaltung(?) von Publikationen, genannt CRIS.
            Und hat anscheinend Geld dafuer ausgegeben. Das Ding hat einen Export von Publikationen
            ueber eine RESTful API, hier dokumentiert.
            Ok, was soll das tun?  Eine Publikationsliste zurueckgeben, zur Weiterverarbeitung
    	durch oBdA ein Computerprogramm.
            Sie behaupten, XML zu nehmen. OK, kann man machen, ist seit ca. 2010 nicht mehr so das
            Encoding der Wahl, aber was solls, wir haben ja XSLT und sowas. Bibliographische
            Daten in XML haben schon mehrere Leute gemacht, schaut dann immer aus wie
                    <bibitem>
                            <authors>
                                    <author><firstname>Joe R.</firstname><lastname>Hacker</lastname></author>
                                    <author><firstname>Eva Lu</firstname><lastname>Ator</lastname></author>
                            </authors>
                            <title>First steps with XML</title>
                            <year>1998</year>
    			<publisher>Wiley Coyote & Sons Inc.</publisher>
                    </bibitem>
            you get the drift...
            Die CRISler haben das mit dem XML so richtig gar nicht kapiert. Deren Format sieht so aus
                    <infoObjects size="4">
    		<infoObject type="Publication">
    		<attribute disposition="string" language="0" name="cfTitle"> 
    			<data> Der Titel </data> 
    		</attribute>
    		<attribute disposition="string" language="0" name="srcAuthors"> 
    			<data> Rster E., Weiter Z., Ritter D. </data>
    		 </attribute>
                    <attribute disposition="year" language="0" name="publYear">
    			 <data> 2012</data> 
    		</attribute>
    		<attribute disposition="string" language="0" name="exportAuthors"> 
    			<data> Rster:Erich|Weiter:Zacharias|Ritter:Dieter</data> 
    		</attribute>
    		<attribute disposition="choicegroup" language="0" name="Publication type"> 
    			<data> 3338</data> 
    			<additionalInfo> Article in Edited Volumes</additionalInfo> 
    		</attribute>
                    ...
            Was daran falsch ist, ist so ziemlich alles. 
    	
    • Sie haben kein Schema und kein DTD, es kann niemand wissen, was da rein darf und wie.
    • Ihre Tags haben keine Semantik ("data", "infoObject", "attribute")
    • Wenn <infoObjects> einen Subtree aufmacht, dann muss man XMLparsern nicht erzaehlen, wieviele Elemente da drin sind, das finden die selber raus.
    • Statt Zusatzinfo in Attribute von Tags zu tun, und Daten in die Contents des Tags, machen sie <data> und <additionalInfo> Tags (das Stirnklatschen wird ab hier schmerzhaft).
    • Statt einen Tag <title> zu machen, basteln sie ein <attribute>, der dann ein "name" Attribute hat (ein attribute mit attributes, WTF), dessen Wert dann "cfTitle" ist.
    • Statt einem <author> Tag nehmen sie mehrere "attribute" Tags, die dann entweder _einen_ String mit den gekuerzten Autorennamen haben (was kaputtgeht, sobald ein "William Gates, the third" dabei ist, weil das Komma hier nicht der Trenner ist), oder die vollstaendigen Autorennamen, aber nicht als parse-bare Folge von XML Elementen, sondern in _einem_ String, mit Pipes und Doppelpunkten getrennt. D.h. wer das verarbeiten will, muss String-handling machen, und damit die Namen rausparsen. Das war echt nicht die Idee bei XML!
    • Statt einem type-Attribute fuer eine Veroeffentlichung im umgebenden Tag machen sie einen "attribute" tag mit einem "name" Attribut, dass dann den Wert "Publication type", und dessen Subelelement "additionalInfo" dann den Wert enthaelt.
    Diese Sch*!%se ist mit XSLT o.ae. nur unter solchen Schmerzen verarbeitbar, dass es niemand machen wird.

    [/bauerm] permanent link