Git Product home page Git Product logo

ieml-dictionary's Introduction

ieml-dictionary

Overview

This is the repository for the IEML (information economy metalanguage) library.

This repository is composed of:

  • the dictionary definition : all the files that defines the basic semantic units of the IEML language. These files are located in the definition/dictionary folder.
  • the python library : the python ieml module that contains the algorithm to parse and use the IEML language. It is located in the ieml folder.
  • the dictionary visualisation: the dictionary can be easily visualised by browsing the docs folder. The current dictionary state can be accessed at the url https://iemldev.github.io/ieml-dictionary/.

The dictionary definition

All the dictionary files in the definition/dictionary folder are written in yaml and must conform to a syntax. The syntax is described in the file at definition/dictionary/dictionary_paradigm_schema.yaml and is expressed in the kwalify schema syntax.

Each file from the dictionary folder defines a root paradigm. A dictionary file is composed of multiple entries types :

  • RootParadigm : the main opposition system, it implicitly defines a set of semes.
  • Semes : the different positions in this RootParadigm system.
  • Paradigms : additional semantic opposition systems between these semes.

Each of these entries are composed of the following fields:

  • ieml : the IEML script of this entry
  • translations : a french and an english translation

From these information, the function of the library are able to compute the structure of the dictionary.

Editing the dictionary

Installation

To edit the dictionary, you must have the following program installed :

  • python : sudo apt install python
  • make : sudo apt install make
  • git : sudo apt install make

First clone this repository and create a virtual env, this has to be done only the first time :

git clone https://github.com/IEMLdev/ieml-dictionary
cd ieml-dictionary
sudo pip install virtualenv # install virtualenv command
virtualenv -ppython3.6 venv # create a virtualenv, that install python3.6 in the folder venv
source venv/bin/activate # use that newly installed python
pip install -r requirements.txt # install the project dependencies

Then to check if everything went well, run

make validate

Making changes

You can use this repository to edit the dictionary. Then you have to edit the files in the definition/dictionary folder by using a text editor. To visualise the dictionary with your change, run:

make site-debug

This Makefile target will create a folder named docs-debug in the root folder with a dictionary website. To navigate this website, go the following address in your browser (http://localhost:8000/)[http://localhost:8000/].

Publishing the changes

To normalize the dictionary files, run

make normalize

This Makefile target normalize the spaces and the orders of the fields to prevent future issues with git.

You can check the validity of the dictionary files by typing in the root folder:

make validate

This Makefile target check the syntax correctness, the dictionary structure correctness and the file normalisation correctness for git.

To publish the files to github :

git add definition/dictionary
git commit -m "Your modification description message"
git push

The files have to be validated before being pushed.

Adding a root paradigm

To add a new root paradigm, you have to create a new file in the dictionary/definition folder.

By convention, the file name must be of the format {paradigm layer}_{paradigm name in english}.yaml

Then, add the following text:

RootParadigm:
    ieml: "..."
    translations:
        fr: >
            ...
        en: >
            ...
    inhibitions: []

Fill the ieml, fr and en field, with the IEML of the desired root paradigm, and its french and english translation. Writing all the IEML of the semes by hand can be tedious, so there is a program to do it : save and close the file and run the following command to automatically generate the semes of this paradigm :

make expand_semes

After that, you can fill the fr and en field of the semes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.