GithubHelp home page GithubHelp logo

eddir / ontologyfiller Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 25.41 MB

Веб-сервис для автоматического наполнения онтологий

License: MIT License

Shell 0.02% Python 26.52% Dockerfile 1.05% JavaScript 12.73% HTML 0.56% Vue 58.42% SCSS 0.29% C++ 0.40%

ontologyfiller's Introduction

OntologyFiller

Description

This is a web application that allows users to fill in an ontology with data from an unstructured text. The application is based on the OntologyExtender library.

The application is composed of two main components: the web interface and the filler. Each component was isolated in a Docker container. Communication between the components is done via REST API calls and message queues.

Installation

Requirements

  • Docker
  • Docker Compose

Steps

  1. Clone the repository with git clone https://github.com/eddir/OntologyFiller.git
  2. Run docker-compose up in the root directory of the project
  3. Open http://localhost:8888 in your browser
  4. Enjoy!

Usage

Web Interface

On first access, the web interface will ask the user to log in. The default credentials are admin for the username and admin for the password. You can manage users from the Users page.

The web interface is the main component of the application. It allows users to upload a text file and select an ontology to fill in.

Web Interface

After the user uploads a file, the application will start processing it. The user will receive a notification when the processing is finished. Once the processing is finished, the user can download the filled ontology.

Web Interface

Filler

The filler is the component that does the actual processing of the text file. It is based on the OntologyExtender library. The filler is a command line application written in Python. It can be used as a standalone application or as a Docker container. Once the filler is started, it will wait for a message containing the path to the text file to process. After the processing is finished, the filler will send a message containing the path to the filled ontology.

This component uses NLP techniques to extract information from the text file. The extracted information is then used to fill in the ontology. The filler uses the Yargy parser to extract information from the text file and the OntologyExtender library to fill in the ontology with the extracted information and to generate the filled ontology in OWL format. You can use Protégé or any other ontology editor to view the filled ontology.

Filler requires a predefined rule set to be able to extract information from the given text file. The rule set is defined in a DSL file, which contains a set of rules that describe specific domain concepts. The DSL file is written in the Yargy DSL language. The DSL file must be placed in the ontologyExtender/app /parser.py directory. The filler will automatically load the DSL file when it starts. You can find an example of a DSL file in the ontologyExtender/app/parser.py directory. As an example, the following DSL file describes the concept of a knowledge base of SSTU teachers bios.

Configuration

The application can be configured by editing the .env file. The following options are available:

  • HTTP_PORT - the port on which the web interface will be available
  • HTTPS_PORT - the port on which the web interface will be available
  • SECRET_KEY - the secret key used by the web interface
  • DEBUG - whether the web interface should be in debug mode or not
  • APP_DOMAIN - the domain on which the web interface will be available
  • COMPANY_NAME - the name of the company that owns the web interface
  • PUSHER_APP_ID - the ID of the Pusher application used by the web interface
  • PUSHER_APP_KEY - the key of the Pusher application used by the web interface
  • PUSHER_APP_SECRET - the secret of the Pusher application used by the web interface
  • PUSHER_CLUSTER - the cluster of the Pusher application used by the web interface

Web services

  • User web interface - https://localhost:8888
  • PGAdmin - http://localhost:8008
  • Kafdrop - http://localhost:8888

Built With

  • Docker - Containerization platform
  • Docker Compose - Tool for defining and running multi-container Docker applications
  • Yargy parser - Rule-based information extraction library
  • OntologyExtender - Library for extending ontologies with information extracted from unstructured text
  • Nginx - Web server for proxying requests
  • Kafka - Message broker for communication between components
  • PostgreSQL - Database for storing user data
  • Pusher - Service for sending notifications to the web interface

Citing

Ростков, Э. А. О преимуществах использования Yargy-парсера при наполнении онтологий 
/ Э. А. Ростков, Т. Э. Шульга 
// Проблемы управления в социально-экономических и технических системах: Сборник научных статей Материалы XIX Международной научно-практической конференции, 
Саратов, 13–14 апреля 2023 года. – Саратов (в печати). 

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

This project was developed as part of my bachelor's thesis. Special thanks to my supervisor, Dr. Tatiana Shulga for her guidance and support.

ontologyfiller's People

Contributors

eddir avatar

Watchers

 avatar

ontologyfiller's Issues

Редирект на авторизацию

При входе в панель проверять авторизацию. Если нет доступа, перенаправлять на страницу входа. После успешного входа перенаправлять на главную.

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.