Return to search

An evaluation of the expressive power and performance of JSON-to-JSON transformation languages / En utvärdering av JSON-till-JSON transformationsspråk avseende uttryckskraft och prestanda

JSON-to-JSON transformation languages enable the transformation of a JSON document into another JSON document. As JSON is gradually becoming the most used interchange format on the Internet there is a need for transformation languages that can transform the data stored in JSON in order for the data to be used with other systems. The transformation can transform the document structurally, for example by altering the hierarchical structure of the document. The transformation can also transform the document textually, for example by renaming fields or altering values. None of the existing JSON-to-JSON transformation languages have become a standard (Jellife, 2017). This work evaluates the expressive power of the JSON-to-JSON transformation language Jolt. Jolt have recently been adopted by Apache and support have been introduced in some of their products. If a transformation language have expressive power that are at least equal to Nested Relational Algebra this implies that a transformation language can perform many advanced transformations. In this work  a formal model of Jolt is defined, referred to as Jolt0, in order to compare its expressive powers to Nested Relational Algebra. For that purpose, the operations of another formal model called MQuery which have been proven to have equivalent expressive power to Nested Relational Algebra are translated into Jolt0. It is shown that Jolt does not have expressive powers equivalent to Nested Relational Algebra. We further compared the performance of four JSON-to-JSON transformation languages (Jolt, Handlebars, Liquid, and XSLT 3.0) by constructing tests where the different transformation languages executed equivalent transformations. The transformations were evaluated by measuring runtime and memory usage. The study shows that XSLT 3.0 performed worst in all run time and memory usage tests. When transforming large input data XSLT 3.0 performed significantly worse than the other languages. / JSON-till-JSON transformationsspråk möjliggör transformationer från ett JSON-dokument till ett annat JSON-dokument. Eftersom JSON gradvis håller på att bli det mest använda data-utväxlingsformatet på internet så finns det ett behov av transformationsspråk som kan transformera data som är lagrad i JSON formatet för att kunna användas med andra system. Transformationen kan transformera dokumentet strukturellt, till exempel genom att förändra den hierarkiska strukturen på dokumentet. Transformationen kan även transformera dokumentet textuellt, till exempel genom att döpa om fält eller ändra värden. Ingen av de existerande JSON-till-JSON transformationsspråken har blivit en standard (Jellife, 2017). Det här arbetet undersöker uttryckskraften av Jolt vilket är ett JSON-till-JSON transformationsspråk. Jolt har nyligen fått stöd av Apache i några av deras produkter. Om ett transformationsspråk har en uttryckskraft som är ekvivalent med nästlad relationell algebra innebär det att språket kan utföra många avancerade transformationer. I det här arbetet definieras en formell modell av Jolt, kallad Jolt0, för att kunna jämföra dess uttryckskraft med nästlad relationell algebra. Till det syftet så översätts operationerna från en annan formell modell med namnet MQuery som har bevisats ha ekvivalent uttrykskraft med nästlad relationell algebra till Jolt0. Arbetet drar slutsatsen att Jolt inte har uttryckskraft som är ekvivalent med nästlad relationell algebra. Arbetet undersöker också prestandan för de fyra JSON-till-JSON transformationsspråken (Jolt, Handlebars, Liquid och XSLT 3.0) genom att konstruera tester där de olika transformationsspråken exekverar ekvivalenta transformationer. Transformationerna utvärderas baserat på körstids- och minnesanvändningsprestandan. Studien visar att XSLT 3.0 presterar sämst i alla körstids- och minnesanvändningstester. När transformationerna använder sig av stor input data så presterar XSLT 3.0 signifikant sämre än de andra språken.

Identiferoai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-233191
Date January 2018
CreatorsAl-Tai, Elias
PublisherKTH, Skolan för elektroteknik och datavetenskap (EECS)
Source SetsDiVA Archive at Upsalla University
LanguageEnglish
Detected LanguageSwedish
TypeStudent thesis, info:eu-repo/semantics/bachelorThesis, text
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess
RelationTRITA-EECS-EX ; 2018:521

Page generated in 0.0144 seconds