diff --git a/README.md b/README.md
index 7f89c30..c2a3433 100644
--- a/README.md
+++ b/README.md
@@ -37,43 +37,57 @@ in `(brackets)`.
### Needed
```yaml
- (url_path):
- name: (lowercase short name)
- description: >
- (Short description, will be shown under the name)
- contacts:
- - name: (Full Name)
- email: (name@institution.org)
- tags:
- - (Add tags, if possible out of the existing ones)
- type: (Application / Library)
- date_added: (YYYY-MM-DD)
- date_updated: (YYYY-MM-DD)
+url_path:
+ name: (lowercase short name)
+ description: >
+ (Short description, will be shown under the name)
+ categories: ( "Privacy" | "Blockchain" | "Verification" | "Security" |
+ "Learning" | "Other" )
+ applications": ( "Finance" | "Health" | "Gov" | "Infra" | "Info" | "Other" )
+ tags:
+ - (Add tags, if possible out of the existing ones)
+ date_added: (YYYY-MM-DD)
```
### Optional
```yaml
- layman_desc: >
- (A 2-3 sentence description for somebody with general knowledge)
- tech_desc: >
- (A more detailed description in 2-3 sentences for somebody knowledgeable in the subject)
- url: (URL for a home page)
- code:
- type: (Lab Github, Personal Gihub, zip files, ...)
- url: (https://...)
- date_last_commit: (YYYY-MM-DD)
- language: (What the majority of the code is written in
- license: (BSD, GPL 3+, MPL 2+, Apache, ...)
- maturity: (1|2|3)
- information: (zero or more of:)
- - type: (Paper | Video | Article | Blog Post | Demo | Web Page | Documentation)
- title: (Short title)
- url: (https:.. - for papers, don't use arxiv, but the conference link)
- notes: (this is optional)
- - label: (what will be shown in front of the note)
- text: (the text of the note)
- url: (the URL for the tag)
+ layman_desc: >
+ (A 2-3 sentence description for somebody with general knowledge)
+ tech_desc: >
+ (A more detailed description in 2-3 sentences for somebody knowledgeable in the subject)
+ type: ( "Application" | "Library" | "Framework" | "Toolset" | "Simulation" | "Experiments" )
+ notes: (Additional description)
+ url: (URL for a home page)
+ contacts:
+ - name: (Full Name)
+ email: (name@institution.org)
+ code:
+ type: (Lab Github, Personal Gihub, zip files, ...)
+ url: (https://...)
+ date_last_commit: (YYYY-MM-DD)
+ doc: (url to documentation)
+ lines_of_code: (# of codelines)
+ c4dt_contact: (Email of a special contact, defaults to c4dt-dev@listes.epfl.ch)
+ language: (What the majority of the code is written in)
+ license: (BSD, GPL 3+, MPL 2+, Apache, ...)
+ information: (zero or more of:)
+ - type: (Paper | Video | Article | Blog Post | Demo | Web Page | Documentation)
+ title: (Short title)
+ url: (https:.. - for papers, don't use arxiv, but the conference link)
+ notes: (this is optional)
+ - label: (what will be shown in front of the note)
+ text: (the text of the note)
+ url: (the URL for the tag)
+ maturity: (1|2|3)
+ incubator:
+ work: (What C4DT did for the project)
+ products:
+ type: ( Demo | Hands-on | Pilot | App )
+ url: (https://...)
+ title: (Description of this product)
+ code: (https:// of the code)
+ date_updated: (YYYY-MM-DD)
```
## Run the application locally
@@ -135,3 +149,18 @@ Restart Apache:
```
$ sudo /etc/init.d/apache2 restart
```
+
+# Contributing
+
+To contribute to this repository, please install the pre-commit hooks:
+
+```
+pre-commit install
+```
+
+This will run the linter before committing.
+If you already committed, you can run it like this:
+
+```
+pre-commit run --all
+```
diff --git a/data.py b/data.py
index ade8673..9a77625 100644
--- a/data.py
+++ b/data.py
@@ -52,31 +52,6 @@
"Info",
"Other"
])),
- sy.Optional("notes"): sy.Str(),
- sy.Optional("url"): sy.Url(),
- sy.Optional("layman_desc"): sy.Str(),
- sy.Optional("tech_desc"): sy.Str(),
- sy.Optional("code"): sy.Map({
- "type": sy.Str(),
- sy.Optional("url"): sy.Url(),
- sy.Optional("date_last_commit"): sy.Datetime(),
- }),
- sy.Optional("doc"): sy.Url(),
- sy.Optional("lines_of_code"): sy.Str(),
- sy.Optional("contacts"): sy.Seq(
- sy.Map({
- "name": sy.Str(),
- sy.Optional("email"): sy.Email(),
- sy.Optional("url"): sy.Url(),
- }),
- ),
- sy.Optional(
- "c4dt_contact",
- default={"name": "C4DT team", "email": "c4dt-dev@listes.epfl.ch"}
- ): sy.Map({
- "name": sy.Str(),
- "email": sy.Email(),
- }),
"tags": sy.Seq(sy.Enum([
"Access Control", "Anonymity", "Attack",
"Benchmark", "Binary", "Bluetooth", "Byzantine Resilience",
@@ -96,14 +71,42 @@
"TensorFlow", "Tor",
"Zero-Knowledge Proofs"
])),
- sy.Optional("language"): sy.Str(),
+ "date_added": sy.Datetime(),
+
+ sy.Optional("layman_desc"): sy.Str(),
+ sy.Optional("tech_desc"): sy.Str(),
sy.Optional("type"): sy.CommaSeparated(sy.Enum([
"Application",
"Library",
"Framework",
"Toolset",
"Simulation",
- ])),
+ "Experiments",
+ ])),
+ sy.Optional("notes"): sy.Str(),
+ sy.Optional("url"): sy.Url(),
+ sy.Optional("contacts"): sy.Seq(
+ sy.Map({
+ "name": sy.Str(),
+ sy.Optional("email"): sy.Email(),
+ sy.Optional("url"): sy.Url(),
+ }),
+ ),
+ sy.Optional("code"): sy.Map({
+ "type": sy.Str(),
+ sy.Optional("url"): sy.Url(),
+ sy.Optional("date_last_commit"): sy.Datetime(),
+ }),
+ sy.Optional("doc"): sy.Url(),
+ sy.Optional("lines_of_code"): sy.Str(),
+ sy.Optional(
+ "c4dt_contact",
+ default={"name": "C4DT team", "email": "c4dt-dev@listes.epfl.ch"}
+ ): sy.Map({
+ "name": sy.Str(),
+ "email": sy.Email(),
+ }),
+ sy.Optional("language"): sy.Str(),
sy.Optional("license"): sy.CommaSeparated(sy.Enum([
"AGPL-3.0",
"GPL-2.0", "GPL-3.0",
@@ -135,8 +138,6 @@
),
}),
),
- "date_added": sy.Datetime(),
- sy.Optional("date_updated"): sy.Datetime(),
sy.Optional("maturity"): sy.Int(),
sy.Optional("incubator"): sy.Map({
"work": sy.Str(),
@@ -148,8 +149,10 @@
sy.Optional("code"): sy.Str(),
}),
)
- }) | sy.EmptyList(),
- })
+ }),
+ sy.Optional("date_updated"): sy.Datetime()
+ | sy.EmptyList(),
+ }),
)
})
diff --git a/data/DCL/projects.yaml b/data/DCL/projects.yaml
index e4648b3..a73dd1d 100644
--- a/data/DCL/projects.yaml
+++ b/data/DCL/projects.yaml
@@ -619,6 +619,7 @@ projects:
- Learning
applications:
- Info
+ type: Library
description: Regularizer for failing neurons
layman_desc: >
How is a neural network changing its output in presence of failing node? This project provides a regularizer adapting itself to
@@ -659,7 +660,7 @@ projects:
tags:
- Concurrency
- Network
- type: Application
+ type: Simulation
language: C
information:
- type: Paper
diff --git a/data/DCSL/projects.yaml b/data/DCSL/projects.yaml
index cc04af8..9ee3279 100644
--- a/data/DCSL/projects.yaml
+++ b/data/DCSL/projects.yaml
@@ -5,6 +5,7 @@ projects:
- Security
applications:
- Infra
+ type: Library
description: GoLang extension to allow a programmer to execute a goroutine within an enclave
tech_desc: >
Trusted Execution Environments (TEEs), such as Intel SGX enclaves, use hardware to ensure the confidentiality and integrity of
@@ -65,6 +66,7 @@ projects:
- Other
applications:
- Infra
+ type: Experiments
description: Improved scalable and fault-tolerant distributed architecture
tech_desc: >
Cloud platform services must simultaneously be scalable, meet low tail latency service-level objectives, and be resilient to a
@@ -100,6 +102,7 @@ projects:
- Other
applications:
- Infra
+ type: Experiments
description: L4 load balancer for cloud provider
tech_desc: >
Connection Redirect LoAd Balancer is a new scheme for L4 load balancing targeting specifically internal cloud workloads.
diff --git a/data/DLAB/projects.yaml b/data/DLAB/projects.yaml
index fc5155a..94b0bdd 100644
--- a/data/DLAB/projects.yaml
+++ b/data/DLAB/projects.yaml
@@ -6,6 +6,7 @@ projects:
- Privacy
applications:
- Infra
+ type: Experiments
description: Privacy-preserving classification
layman_desc: >
Today, large amounts of valuable data are distributed among millions of user-held devices, such as personal computers, phones, or
@@ -39,6 +40,7 @@ projects:
- Learning
applications:
- Info
+ type: Application
description: Invariant natural language modeling
layman_desc: >
Modern pretrained language models are critical components for natural language processing. Yet, they suffer from spurious
@@ -61,6 +63,7 @@ projects:
- Learning
applications:
- Info
+ type: Experiments
description: Improved entity linking
layman_desc: >
In natural language processing, entity linking, i.e. the task of assigning a unique identity to entities (for example "Paris" in a
@@ -91,6 +94,7 @@ projects:
- Learning
applications:
- Info
+ type: Experiments
description: Corpus of quotations from a decade of news
layman_desc: >
News from half a million of website, over the last 15 years, labelled by writer. Quotebank shows that it can accurately associate any
@@ -124,6 +128,7 @@ projects:
- Learning
applications:
- Info
+ type: Experiments
tags:
- Survey
description: Differentially Private Propensity Scores for Bias Correction
@@ -153,6 +158,7 @@ projects:
- Learning
applications:
- Info
+ type: Experiments
tags:
- Natural Language
description: Autoregressive information extraction system
@@ -178,6 +184,7 @@ projects:
- Learning
applications:
- Info
+ type: Experiments
tags:
- Natural Language
description: Exploiting Asymmetry for Synthetic Training Data Generation
diff --git a/data/template.yaml b/data/template.yaml
index 11603c0..9c95123 100644
--- a/data/template.yaml
+++ b/data/template.yaml
@@ -1,23 +1,22 @@
(path):
name:
+ description: >
categories:
applications:
- description: >
+ tags:
layman_desc: >
tech_desc: >
+ type:
+ url:
contacts:
- name:
email:
- url:
- tags:
- type:
code:
type: Lab Github
url: https://
date_last_commit:
language:
license:
- maturity: (1|2|3)
information:
- type: Paper
title: ""
@@ -26,5 +25,6 @@
- label:
text:
url:
+ maturity: (1|2|3)
date_added:
date_updated: