
A Solid-powered decentralised social network for academics: An evaluation of key considerations for developing practical Solid-powered applications Akashdeep Singh Lamba, B.Tech. A Dissertation Presented to the University of Dublin, Trinity College in partial fulfilment of the requirements for the degree of Master of Science in Computer Science (Intelligent Systems) Supervisor: Prof. Declan O'Sullivan Co-Supervisor: Dr. Jeremy Debattista August 2019 Declaration I, the undersigned, declare that this work has not previously been submitted as an exercise for a degree at this, or any other University, and that unless otherwise stated, is my own work. Akashdeep Singh Lamba August 12, 2019 Permission to Lend and/or Copy I, the undersigned, agree that Trinity College Library may lend or copy this thesis upon request. Akashdeep Singh Lamba August 12, 2019 This work is dedicated to Professor Seamus Lawless Acknowledgments I'd like to take this opportunity to acknowledge Prof. Declan O'Sullivan and Dr. Jeremy Debattista for continued support and guidance throughout the process. Prof. Siobh´anClarke for valuable insights on Software Engineering and pointing me to ICSE which ultimately led me to some critical resources for my literature review. I also appreciate the efforts of the entire staff of Trinity for making sure the students have a pleasant learning experience. I'd also like to extend my sincere appreciation to the entire Solid Community, especially Ruben Verborgh, Sir Tim Berners-Lee, Mitzi L´aszl´o,James Martin, Mark Hughes and all other individuals who took the time to answer my questions on various platforms, and for keeping Solid going. Finally, I'd like to express my gratitude towards my family and friends for their constant encouragement and for helping me edit. I wouldn't have been able to complete this journey if it weren't for all the motivation from everyone. Akashdeep Singh Lamba University of Dublin, Trinity College August 2019 iv A Solid-powered decentralised social network for academics: An evaluation of key considerations for developing practical Solid-powered applications Akashdeep Singh Lamba, Master of Science in Computer Science University of Dublin, Trinity College, 2019 Supervisor: Prof. Declan O'Sullivan Co-Supervisor: Dr. Jeremy Debattista Contemporary Social Networking applications are centralised, provide limited access control capabilities which are driven by dense privacy policies subject to change due to business considerations. Additionally, data ownership is impossible, interoperability between applications is in-feasible, and privacy of user data is not guaranteed. Decentralisation is a potential solution to some of these problems, and Solid is a project that intends to make a fully decentralised read/write Semantic Web a reality. Solid is a set of standards and tools whose core tenets are decentralisation, complete and customisable access control, full data ownership, and reusable code. With this study, we aimed to learn about Solid and to evaluate the developer ex- perience. The objective was to produce a proof-of-concept Solid application, arrive at a set of guidelines for Solid development, and recommend improvements to Solid. A critical analysis of the developer experience revealed that Solid, though promising and important, is not yet ready for general uptake as the specification is not frozen. Solid development requires considerable prior knowledge of Linked Data and additional con- cepts such as Web Access Control, and the existing learning resources are inadequate. Thus, the developer experience is not mature enough to be scalable. Contents Acknowledgments iv Abstract v I Thesis x List of Tables xi List of Figures xii List of Abbreviations xiv Chapter 1 Introduction 1 1.1 Background . 2 1.2 Motivation . 2 1.3 Goals and Contributions . 3 1.4 Research Question . 4 1.5 Non-goals . 5 1.6 Research Areas . 5 1.7 Organisation of this document . 7 Chapter 2 Related Work 9 2.1 Literature review strategy . 9 2.2 State of privacy in centralised social networks . 11 2.3 Bootstrapping a developer in a new technology . 17 2.3.1 On-boarding and Developer Experience . 17 vi 2.3.2 Documentation and Learning resources . 20 2.4 Decentralisation efforts . 23 2.5 State of the art of Solid . 30 2.5.1 Linked Data . 30 2.5.2 Building blocks of Solid . 31 2.5.3 Solid applications . 35 2.6 Summary and Next Chapter . 36 Chapter 3 Research Methods 37 3.1 Participant profile . 38 3.2 Study design . 38 3.3 Summary and Next Chapter . 39 Chapter 4 Application Design and Implementation 40 4.1 Development Environment . 40 4.2 Use-case Analysis . 41 4.3 Functional Requirements . 41 4.4 Design Decisions . 43 4.5 System design . 48 4.6 Data models . 49 4.7 Technical Implementation Details . 50 4.8 Summary and Next Chapter . 51 Chapter 5 Evaluation 53 5.1 Development Experience Evaluation . 53 5.1.1 DX1: Quality of learning resources . 53 5.1.2 DX2: Activity in the community . 55 5.1.3 DX3: Quality and quantity of tooling . 57 5.1.4 DX4: Stability of the platform . 60 5.1.5 DX5: Technical capabilities and features of the project . 60 5.2 Application Evaluation . 62 5.2.1 Performance . 62 5.2.2 Privacy by design . 62 5.2.3 DOSN classification . 64 vii 5.3 Summary and Next Chapter . 64 Chapter 6 Discussion and Conclusions 65 6.1 Threats to Validity . 67 Chapter 7 Future work 68 Bibliography 71 Appendix A Development Journal 95 A.1 Background . 95 A.1.1 20-12-2018 . 95 A.2 First Contact . 96 A.2.1 20-12-2018 . 96 A.3 Initial hurdles . 97 A.3.1 23-12-2018 . 97 A.3.2 27-12-2018 . 98 A.3.3 18-01-2018 . 98 A.4 Read data from and Write data to Pod . 99 A.4.1 2-02-2019 . 99 A.4.2 2-05-2019 . 99 A.4.3 11-05-2019 . 99 A.4.4 12-05-2019 . 101 A.4.5 12-05-2019 . 101 A.4.6 13-05-2019 . 101 A.4.7 16-05-2019 . 102 A.4.8 17-05-2019 . 102 A.4.9 17-05-2019 . 104 A.5 Migration of Pods . 104 A.5.1 21-05-2019 . 104 A.6 Implementation: A very long post . 105 A.6.1 25-05-2019 . 105 A.6.2 30-05-2019 . 106 A.6.3 1-06-2019 . 106 viii A.6.4 3-06-2019 . 106 A.6.5 5-06-2019 . 107 A.6.6 7-06-2019 . 107 A.6.7 7-06-2019 . 107 A.6.8 8-06-2019 . 108 A.6.9 16-06-2019 . 109 A.6.10 17-06-2019 . 109 A.6.11 17-06-2019 . 110 A.6.12 22-06-2019 . 110 A.6.13 25-06-2019 . 111 A.6.14 8-07-2019 . 112 A.6.15 10-07-2019 . 113 A.6.16 10-07-2019 . 113 A.6.17 12-07-2019 . 114 A.7 Final session: almost finishing touches . 115 A.7.1 14-07-2019 . 115 A.7.2 17-07-2019 . 115 A.7.3 18-07-2019 . 115 Appendix B Application Screenshots 117 II Getting Started with Solid 125 ix Part I Thesis x List of Tables 2.1 Literature review search terms . 11 2.2 Framework for Developer Experience (DX) [1] . 17 2.3 Developer joining model [2] . 18 2.4 Comparison of decentralised online social networks . 26 4.1 Functionality implementation mapping with Solid features . 52 5.1 Evaluation of Solid tutorials . 54 5.2 Gitter messages on Solid and Deno rooms, as on 06-08-2019 . 57 xi List of Figures 1.1 Research Areas . 6 2.1 A typical social network [3] . 15 2.2 A classification of common DOSN privacy models [4] . 24 2.3 The federation of DOSNs [5] . 28 2.4a Example RDF encoded as Turtle . 31 2.4b Graphical representation of example RDF . 31 4.1 Follow request life-cycle . 46 4.2 High-level overview of Feed aggregation . ..
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages161 Page
-
File Size-