{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,9,25]],"date-time":"2023-09-25T02:33:36Z","timestamp":1695609216486},"reference-count":30,"publisher":"Cambridge University Press (CUP)","license":[{"start":{"date-parts":[[2017,12,12]],"date-time":"2017-12-12T00:00:00Z","timestamp":1513036800000},"content-version":"unspecified","delay-in-days":345,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[2017]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>One key aspect of data-centric applications is the manipulation of data stored in persistent repositories, which is moving fast from querying a centralized relational database to the ad-hoc combination of constellations of data sources. The extension of general purpose languages with query operations is increasingly popular, as a tool to improve reasoning and optimizing capabilities of interpreters and compilers. However, not much is being done to integrate and orchestrate different and separate sources of data. We present a data manipulation language that abstracts the nature and location of data-sources. We define its semantics and a type directed query localization mechanism to be used in development tools for heterogeneous environments to efficiently compile them into native queries. We introduce a localization procedure based on rewriting of query expressions that is confluent, terminating and provides the maximum mapping between site capabilities and the structure of the query. We provide formal type safety results that support the sound distribution of query fragments over remote sites. Our approach is also suitable for an interactive query construction environment by rich user interfaces that provide immediate feedback on data manipulation operations. This approach is currently the base for the data layer of a development platform for mobile and web applications.<\/jats:p>","DOI":"10.1017\/s095679681700017x","type":"journal-article","created":{"date-parts":[[2017,12,12]],"date-time":"2017-12-12T10:02:26Z","timestamp":1513072946000},"source":"Crossref","is-referenced-by-count":4,"title":["Capability-based localization of distributed and heterogeneous queries"],"prefix":"10.1017","volume":"27","author":[{"given":"JO\u00c3O COSTA","family":"SECO","sequence":"first","affiliation":[]},{"given":"PAULO","family":"FERREIRA","sequence":"additional","affiliation":[]},{"given":"HUGO","family":"LOUREN\u00c7O","sequence":"additional","affiliation":[]}],"member":"56","published-online":{"date-parts":[[2017,12,12]]},"reference":[{"key":"S095679681700017X_ref30","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796899003585"},{"key":"S095679681700017X_ref29","doi-asserted-by":"publisher","DOI":"10.1016\/S0743-1066(99)00026-6"},{"key":"S095679681700017X_ref27","volume-title":"Database Systems Concepts","author":"Silberschatz","year":"2006"},{"key":"S095679681700017X_ref26","doi-asserted-by":"crossref","unstructured":"Serrano M. , Gallesio E. & Loitsch F. (2006) Hop: A language for programming the web 2.0. In Companion to the 21th Annual Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 975\u2013985.","DOI":"10.1145\/1176617.1176756"},{"key":"S095679681700017X_ref25","doi-asserted-by":"crossref","unstructured":"Seco J. C. , Ferreira P. & Louren\u00e7o H. (2017) Capability-based Localization of Distributed and Heterogeneous Queries \u2013 Extended version with proofs. Technical Report, NOVA University of Lisbon. Available at: http:\/\/ctp.di.fct.unl.pt\/~jcs\/papers\/jfp-big-data-tech-report.pdf","DOI":"10.1017\/S095679681700017X"},{"key":"S095679681700017X_ref24","doi-asserted-by":"crossref","unstructured":"Seco J. C. , Louren\u00e7o H. , & Ferreira P. (2015) A common data manipulation language for nested data in heterogeneous environments. In Proceedings of the 15th Symposium on Database Programming Languages (DBPL '15), pp. 11\u201320.","DOI":"10.1145\/2815072.2815074"},{"key":"S095679681700017X_ref23","unstructured":"Robie J. et al. (2014) XQuery 3.0: An XML query language. Available at: www.w3.org\/TR\/xquery-30\/"},{"key":"S095679681700017X_ref22","doi-asserted-by":"publisher","DOI":"10.1145\/1291201.1291209"},{"key":"S095679681700017X_ref21","doi-asserted-by":"publisher","DOI":"10.1023\/A:1008646830769"},{"key":"S095679681700017X_ref28","unstructured":"Taylor R. (2010) Query Optimization for Distributed Database Systems. Master Thesis, University of Oxford, University of Oxford."},{"key":"S095679681700017X_ref18","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-78663-4_9"},{"key":"S095679681700017X_ref16","unstructured":"Halevy A. , Rajaraman A. & Ordille J. (2006) Data integration: The teenage years. In Proceedings of the 32nd International Conference on Very Large Data Bases (VLDB '06). VLDB Endowment, pp. 9\u201316."},{"key":"S095679681700017X_ref15","unstructured":"Grade N. , Ferr\u00e3o L. , & Seco J. C. (2013) Optimizing data queries over heterogeneous sources. In Proceedings of the 5th Simp\u00f3sio de Inform\u00e1tica, INForum."},{"key":"S095679681700017X_ref9","unstructured":"Clark J. & DeRose S. J. (1999) Path Language (XPath) Version 1.0. Available at: www.w3.org\/TR\/xpath\/"},{"key":"S095679681700017X_ref7","doi-asserted-by":"publisher","DOI":"10.1145\/2588555.2612186"},{"key":"S095679681700017X_ref6","doi-asserted-by":"publisher","DOI":"10.1145\/2500365.2500586"},{"key":"S095679681700017X_ref5","doi-asserted-by":"publisher","DOI":"10.1016\/S0890-5401(01)93121-9"},{"key":"S095679681700017X_ref4","first-page":"431","volume-title":"IFIP State of the Art Reports (Formal Description of Programming Concepts)","author":"Cardelli","year":"1989"},{"key":"S095679681700017X_ref2","doi-asserted-by":"publisher","DOI":"10.1145\/181550.181564"},{"key":"S095679681700017X_ref1","doi-asserted-by":"publisher","DOI":"10.1145\/944705.944711"},{"key":"S095679681700017X_ref19","doi-asserted-by":"publisher","DOI":"10.2307\/1968867"},{"key":"S095679681700017X_ref20","unstructured":"OutSystems. (2016) Using aggregates \u2013 Fetch and display data from the database. Technical documentation. Available at: www.outsystems.com\/search\/Fetch+and+Display+Data+from+the+Database"},{"key":"S095679681700017X_ref17","doi-asserted-by":"crossref","unstructured":"Lindley S. & Cheney J. (2012) Row-based effect types for database integration. In Proceedings of the 8th ACM SIGPLAN Workshop on Types in Language Design and Implementation (TLDI '12). New York, NY, USA: ACM, pp. 91\u2013102.","DOI":"10.1145\/2103786.2103798"},{"key":"S095679681700017X_ref14","unstructured":"Fu Y. , Ong K. W. , & Papakonstantinou Y. (2013) Declarative ajax web applications through SQL++ on a unified application state. In Proceedings of the International Symposium on Database Programming Languages."},{"key":"S095679681700017X_ref13","doi-asserted-by":"publisher","DOI":"10.1145\/382780.382785"},{"key":"S095679681700017X_ref8","doi-asserted-by":"publisher","DOI":"10.1145\/2676726.2677004"},{"key":"S095679681700017X_ref3","doi-asserted-by":"publisher","DOI":"10.1016\/0304-3975(95)00024-Q"},{"key":"S095679681700017X_ref12","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-74792-5_12"},{"key":"S095679681700017X_ref11","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-03793-1_3"},{"key":"S095679681700017X_ref10","doi-asserted-by":"publisher","DOI":"10.1145\/67544.66952"}],"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S095679681700017X","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,8,10]],"date-time":"2022-08-10T07:17:25Z","timestamp":1660115845000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S095679681700017X\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017]]},"references-count":30,"alternative-id":["S095679681700017X"],"URL":"https:\/\/doi.org\/10.1017\/s095679681700017x","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[2017]]},"article-number":"e26"}}