hassamalhajaji / pldb

PLDB: a Programming Language Database. A public domain knowledge graph focused on programming languages distributed as a CSV file.

Home Page:https://pldb.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

title PLDB: a Programming Language Database

html
 <a href="https://github.com/breck7/pldb/actions/workflows/didTheTestsPass.yml"><img src="https://github.com/breck7/pldb/actions/workflows/didTheTestsPass.yml/badge.svg"/></a>

* PLDB is a public domain database and website containing over 135,000 facts about over 4,000 programming languages.

* This repo contains the entire database, code, and website for https://pldb.com.

## To analyze the data

* The PLDB database is freely available:

- As CSV: https://pldb.com/pldb.csv
- As JSON: https://pldb.com/pldb.json
- The JSON file is also available via npm:

javascriptCode
 // npm install pldb
 console.log(require("pldb").javascript.appeared)

* Documentation for the CSV is available here: https://pldb.com/docs/csv.html.

## To add a new language

* Easy method: https://build.pldb.com/create

* Advanced method: Create a new file in `database/things` with a unique URL friendly filename ending in `.pldb` and send a pull request.

## To update a language

* Easy method: https://build.pldb.com/

* Advanced method: Edit the corresponding `database/things/*.pldb` file and send a pull request.

## To add a new column

* Advanced method: Edit or create a new file in `database/grammar` and add at least 1 example to an entity in `database/things` and send a pull request.

## To build the full site locally

code
 git clone https://github.com/breck7/pldb
 cd pldb
 npm install .
 npm i -g cloc
 npm run tsc
 npm run build
 # Run tests (optional)
 npm run test
 # Open the static site in your browser (without full text search)
 open site/index.html
 # Start the dev server to also have full text search running:
 npm run local
 # After you make changes and before you commit make sure to run:
 npm run format

## To build the full site in docker

code
# -- Run PLDB in docker
 docker run -it -d -v /c/AndelaWork/pldb:/app -p 4444:4444 --name pldbnode node:16 bash
# -- into docker interactive session run the follow:
 git clone https://github.com/breck7/pldb
 cd pldb
 npm install .
 npm run tsc
 npm i -g cloc
 npm run build
 # (Optional run TESTS):
  npm run test
 # (Following updates):
npm run format
 npm run local
 # navigate site in -->
 http://localhost:4444/index.html

## To explore this repo

* The most important folder is `database/things/`, which contains a file for each entity. The folder `database/grammar/` contains the grammar files (schema) for the database.

* The website content is in the `site` folder.

* The `code` folder contains importer scripts and other code for the database and site.

* You can see the `cloc` language stats on this repo at https://pldb.com/pages/about.html.

## To cite PLDB

* PLDB content is published to the public domain and you can use it freely. If needed, here are 3 options for citing PLDB:

code
 https://pldb.com

code
 PLDB contributors. (2022) - "PLDB: a Programming Language Database". Retrieved from: 'https://pldb.com' [Online Resource]

code
 @article{pldb,
  author = {PLDB contributors},
  title = {PLDB: a Programming Language Database},
  journal = {PLDB},
  year = {2022},
  note = {https://pldb.com}
 }

* All sources for PLDB can be found here: https://pldb.com/pages/acknowledgements.html

About

PLDB: a Programming Language Database. A public domain knowledge graph focused on programming languages distributed as a CSV file.

https://pldb.com


Languages

Language:JavaScript 63.5%Language:TypeScript 32.8%Language:CSS 1.6%Language:Python 1.2%Language:Shell 1.0%