direkt zum Inhalt springen

direkt zum Hauptnavigationsmenü

Sie sind hier

TU Berlin

Inhalt des Dokuments

Semantic Web of Things with Blockchain (1-3 students)

There is a great deal of interest in integrating blockchain with IoT data. Moreover, the Semantic Web is getting more tractions in integration IoT data recent years. This leads to several experiments in using Semantic Web and blockchains for sharing IoT data or similar kinds, so called Sematic Web of Things. Interestingly, there is also an effort of the blockchain community in advocating “decentralizing the Web” which is commonly promoting  the use of p2p-based distributed storage associated with blockchains, e.g, File coins[2] with IFPS[3] or Ethereum with Swarm[1].

Your tasks:

  • Set up a private blockchain network using Ethereum or similar. Optionally, a p2p distributed file system using IPFS[3] or Swarm[1] can be added to this network. Students will have access to a lab of 120 Raspberry PI nodes for this setup.
  • Integrate Semantic Web or Linked Data features for IoT data on top this infrastructure (see [4] as an example)
  • Build an application for storing, searching, and selling IoT based on the software components provided by this setup.

equired skills:

  • Basic knowledge on distributed algorithms and distributed systems
  • Understand Blockchain and distributed ledgers
  • Programming experiences in Java/C++/Go/Javascript
  • Teamwork and software project collaboration and management


    References and Links:

    1)    (2017), swarm-gateways.net

    2)    (2017), filecoin.io

    3)    Benet, J.: IPFS: content addressed versioned P2P fs. arXiv:1407.3561 (2014). arxiv.org/abs/1407.3561

    4)    Linked Data Indexing of Distributed Ledgers. papers.www2017.com.au.s3-website-ap-southeast-2.amazonaws.com/companion/p1431.pdf

    5)    Modular peer-to-peer networking stack (used by IPFS and others). github.com/libp2p


    P2P information routing on multiple communication channels (1-2 students)

    Mobile devices are normally equipped with multiple network connections such as Wifi, 3G/4G, Bluetooth or NFC.  Therefore, this creates abundant opportunities for mobile devices to share valuable data with each other in a P2P fashion agnostic to physical connections. The short contact durations, relatively small sharing sizes, and uncertain data availability demand agile, light weight peer based data sharing APIs. This project aims to build a P2P information routing libraries/apps that enable mobile devices to discover which data exist in nearby peers, and retrieve interested data robustly and efficiently. A set of data routing algorithms will be built to make use alternative communication channels in the context of dropping current communication channel or having access to better connections (see [1] and [2] as examples).

    Your Tasks:

    • Build an library on a mobile environment, e.g Android or IOS, to support the described features on at least 3 communication channels.
    • Build a demo application with the above library.

    Required Skills:

    • Basic knowledge on distributed algorithms and distributed systems
    • Programming experiences in Java/C++/Go/Javascript
    • Knowledge & Experience in network communications(Bluetooth, Wifi,…)
    • Understanding P2P


    Related Papers/Links:

    1)    Content-centric Routing in Wi-Fi Direct Multi-group Networks https://arxiv.org/pdf/1412.0880.pdf

    2)    Content centric peer data sharing in pervasive edge computing environments. http://www.ece.stonybrook.edu/~fanye/papers/icdcs17-peer-sharing.pdf






    SPARQL Query Evaluations by means of Monadic Comprehensions and Adjunctions (1-3 students)

    Bulk types such as sets, bags (multisets), and lists are monads, and therefore support a notation for database queries based on comprehensions. This fact is the basis of much work on database query languages. The monadic structure easily explains most of standard relational algebra specifically, selections and projections allowing for an elegant mathematical foundation for those aspects of database query language design. Most, but not all: monads do not immediately offer an explanation of relational join or grouping. However, adjunctions come to the rescue: like any monad, bulk types also arise from certain adjunctions. By paying due attention to such important adjunctions, the rest of standard relational algebra can be elegantly explained.

    Your Tasks:

    SPARQL queries, when evaluated of their algebra operators, can boil down to evaluations of relational algebra operators. Therefore, in this project, we would like you to explore the possibilities of implementation of a SPARQL query engine purely based on operations of monadic comprehensions and Adjunctions [1].

    Required Skills:

    • Database Theory; SPARQL Algebra; Category Theory;
    • Functional Programming Paradigm;
    • Java; Scala;
    • Apache Flink; Apache Spark; Akka Stream;


    [1] Jeremy, G., Fritz, H. R., & Nicolas, W. (2015). Relational Algebra by Way of Adjunctions. Retrieved from www.cs.ox.ac.uk/jeremy.gibbons/publications/reladj-dbpl.pdf


    Zusatzinformationen / Extras


    Schnellnavigation zur Seite über Nummerneingabe