Skip to content

Commit

Permalink
week 4 information added
Browse files Browse the repository at this point in the history
  • Loading branch information
tekrajchhetri committed Apr 19, 2024
1 parent cf9667e commit 3978d89
Show file tree
Hide file tree
Showing 16 changed files with 113 additions and 2 deletions.
Binary file modified .DS_Store
Binary file not shown.
Binary file modified assets/.DS_Store
Binary file not shown.
Binary file modified content/.DS_Store
Binary file not shown.
Binary file modified content/docs/.DS_Store
Binary file not shown.
Binary file added content/docs/papers/.DS_Store
Binary file not shown.
10 changes: 10 additions & 0 deletions content/docs/papers/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
title: Papers
weight: 2
sidebar:
open: true
---

{{< cards >}}
{{< card url="brainypedia" title="Papers">}}
{{< /cards >}}
54 changes: 54 additions & 0 deletions content/docs/papers/papers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
title: Papers
weight: 2
---

The configuration of your site can be found in `config/_default/`.

<!--more-->

## Full Documentation

See https://docs.hugoblox.com/getting-started/customize/

## Navigation

### Menu

See https://docs.hugoblox.com/getting-started/customize/#menu-items

## Left Sidebar

Links are automatically generated from the structure of your content directory. Simply add a folder to nest a page.

### Extra Links

Additional links can be added under the `sidebar` section of your `config/_default/menus.yaml`:

```yaml
menu:
sidebar:
- name: "Need help?"
params:
type: separator
weight: 1
- name: "A page"
pageRef: "/page-filename-here"
weight: 2
- name: "An external link ↗"
url: "https://hugoblox.com"
weight: 3
```
## Right Sidebar
A table of contents is automatically generated from the headings your Markdown file.
It can optionally be disabled by setting `toc: false` in the front matter of a page:

```yaml
---
title: My Page
toc: false
---
```
Binary file modified content/docs/progress/.DS_Store
Binary file not shown.
37 changes: 36 additions & 1 deletion content/docs/progress/week-4.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,40 @@ title: Week 4
linkTitle: Week 4
weight: 4
---
## Overview

View the full docs at https://docs.hugoblox.com/getting-started/customize/
Week 4 started after a long holiday—a weekend followed by Patriots Day! This week, the plan is to work on the BrainyPedia implementation. Alongside the implementation, the plan is to work on the architecture, as the plan is to move away from the centralized architecture (see Figure 1) because of its limitations. The centralized controlling authority has been viewed as a key limitation of the centralized architecture/system, thus giving rise to decentralization (or decentralized systems).


<img src="centralized.png" alt="Centralized System" style="width:400px;"/>
Figure 1: Centralized architecture

{{% callout note %}}
A decentralized system is one in which there is no single point of control or authority. Bitcoin is a good example of such a system.
{{% /callout %}}

Therefore, decentralized systems are more preferred, and interest in them is growing. However, that being said, they have limitations and may not always be suitable. One of the prime limitations is scalability, which has been highlighted by numerous studies, such as the one by Yang et al. [1]. Moreover, the nature of the tasks BrainyPedia will perform makes use of the current blockchain-based decentralized approach unsuitable. So, the question is, _can we design the BrainyPedia in a decentralized (Figure 2) manner such that there is no single controlling authority?_

<img src="brainypedia-decentralized.png" alt="Decentralized System" style="width:400px;"/>
Figure 2: Decentralized BrainyPedia

In a nutshell, my major objectives for this week are to seek an answer to my question, as mentioned earlier, regarding the decentralization of BrainyPedia and start the implementation of BrainyPedia.

## What have I done?
While BrainyPedia's architecture has not yet been finalized, a complete implementation would not be possible. Therefore, to bootstrap the development later, I decided to implement the generic application skeleton based on FastAPI that can be used in this project and by others. The logging features have been implemented, and I need to resolve a few review comments before merging it into the main branch. The code is available in Sensein GitHub at [https://github.com/sensein/fastapi-skeleton](https://github.com/sensein/fastapi-skeleton).

The second is decentralization. For this first, I looked into existing works, particularly, the [Linked Data Fragments](https://linkeddatafragments.org/software/), which allows web-scale querying of Linked Data. The other thing I have done is test the [distributed hash table](https://en.wikipedia.org/wiki/Distributed_hash_table), a distributed system that provides a lookup service and is used in decentralized systems for node discovery. In particular, I have [Kademlia]((https://kademlia.readthedocs.io/en/latest/index.html)) [2] setting up 2 AWS instances and my own Mac. Other than that, I have also tested an approach based on a message-passing mechanism using [RabbitMQ](https://www.rabbitmq.com/) and graph databases [GraphDB](https://www.ontotext.com/products/graphdb/?ref=menu) and [Blazegraph](https://blazegraph.com/).


## What is the result?

While the Linked Data Fragments is interesting, the question of whether it can be used or not, I have come to the following conclusions based on my analysis so far:

- If we use the centralized architecture, I see the possibility for Linked Data Fragments and its benefits. This will also allow us to utilize heterogeneous graph storage.
- Technically, Linked Data Fragments should be possible to implement even in decentralized systems. However, I do not see the (increased) benefits, at least from my preliminary analysis for BrainyPedia, but rather the increased complexity.

Regarding the question of decentralizing BrainyPedia, I see the possibility and the architecture will soon follow.

### References
[1] Yang, D., Long, C., Xu, H. and Peng, S., 2020, March. A review on scalability of blockchain. In Proceedings of the 2020 the 2nd International Conference on Blockchain Technology (pp. 1-6).<br/>
[2] Maymounkov, P. and Mazieres, D., 2002, March. Kademlia: A peer-to-peer information system based on the xor metric. In International Workshop on Peer-to-Peer Systems (pp. 53-65). Berlin, Heidelberg: Springer Berlin Heidelberg.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added content/docs/progress/week-4/centralized.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified content/docs/projects/.DS_Store
Binary file not shown.
14 changes: 13 additions & 1 deletion hugo_stats.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,12 @@
"article",
"aside",
"body",
"br",
"button",
"circle",
"code",
"div",
"em",
"footer",
"g",
"h1",
Expand Down Expand Up @@ -66,6 +68,7 @@
"dark:bg-black/80",
"dark:bg-hb-dark",
"dark:bg-primary-300",
"dark:bg-primary-900",
"dark:block",
"dark:border-neutral-600",
"dark:group-hover:text-primary-400",
Expand All @@ -81,6 +84,7 @@
"dark:text-gray-300",
"dark:text-gray-400",
"dark:text-neutral",
"dark:text-neutral-300",
"dark:text-neutral-400",
"dark:text-primary-900",
"dark:text-slate-200",
Expand Down Expand Up @@ -232,6 +236,7 @@
"pl-2",
"pl-4",
"powered-by",
"pr-3",
"pr-4",
"pr-[calc(env(safe-area-inset-right)-1.5rem)]",
"print:hidden",
Expand All @@ -247,6 +252,7 @@
"px-4",
"px-6",
"py-2.5",
"py-3",
"py-32",
"relative",
"rounded-md",
Expand Down Expand Up @@ -277,6 +283,7 @@
"text-lg",
"text-neutral-500",
"text-neutral-700",
"text-primary-400",
"text-primary-800",
"text-right",
"text-slate-700",
Expand Down Expand Up @@ -309,15 +316,20 @@
"nav-menu",
"nav-toggle",
"navigation",
"overview",
"page-bg",
"references",
"right-sidebar",
"search",
"search_toggle",
"section-hero",
"show-button",
"site-header",
"sun",
"top"
"top",
"what-have-i-done",
"what-is-the-result",
"while-the-linked-data-fragments-is-interesting-the-question-of-whether-it-can-be-used-or-not-i-have-come-to-the-following-conclusions-based-on-my-analysis-so-far"
]
}
}
Binary file added images/brainypedia-decentralized.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/centralized.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified static/.DS_Store
Binary file not shown.

0 comments on commit 3978d89

Please sign in to comment.