- Problem Statement
- Idea / Solution
- Limitations
- Future Scope
- Prerequisites
- Technology Stack
- Authors
- Resources
OpenEdu.ch is an open education resources (OER) platform. Its mission is to enable the sharing of OER resources and fostering collaboration between educators, OER creators and students.
- The content of the website is easy to navigate and the search functionality is intuitive and provides sufficient and organized information to the users of the portal with suggestions of other related entries.
- Wikimedia Community and Educators can easily upload new content, the uploading process is faciliated with automatic tools and the uploading forms are comfortable to understand and navigate.
- The Scientific Board can approve or modify the newly uploaded content quicker based on the automatic testing functions.The new relevant content is also proposed automatically based on the parametrization given by the Moderators.
- Users can contact the other users for open collaboration.
- Unrefined filters for content navigation.
- Lack of ontology structuring the resources.
- Only manual actions are needed for content upload and moderation.
- Very long and complicated upload fom
- No multilingual support and the resources are described and created in multiple languages.
- Difficulty finding relevant resources on the website and in the web. Unintuitive navigation on the website.
- Upload of new resources is manual and complicated.
- Fully manual moderation of the newly proposed content which hinders addition of bigger number of resources.
- Impeded cooperation between educators due to lack of available contact information.
A complete revision of the knowledge management platform as well as the uploading and moderation processes of the OpenEdu.ch platform. In a nutshell, our product includes:
- Knowledge management system based on a new ontology that is thorough, flexible and scalable
- User-friendly navigation of the ontology based on filters
- Powerful multi-language search engine based on semantic similarity
- Streamlined uploading processes for new educational materials from the OpenEdu community
- Refined moderation system to prevent content duplications and copyright violations.
Our value proposition is AI Engine encompassing the following:
-
Versatile Ontology for Knowledge Management allowing easier browsing, searching and fostering collaboration between educators
-
Mulitlingual Ontology Support for enabling navigating materials created and described in foreign languages
-
Moderation Board Workflow designed for more efficient approval process of the new content
-
Uploading Process simplified and facilitated by organized forms and automatic functionalities
-
AI-based features facilitating the analysis of the new content and its moderation, as well as linking related materials
- Moderation, Upload, Search, Recommendation,..
-
Semantic Search for enriched results of the content querying
-
Figma Prototype with UI/UX Design
-
Extending the available content by suggesting new relevant content with web scrapers.
The generic schema of folders created for documentation is as following:
- src: Implementation and parametrization of the module.
- docs: Descritpive documentation of the solution and presentation [to add].
These folders are then sub-divided into different AI Engine modules, which include (depending on the presence of the relevant files):
- Data Architecture: it includes backend and frontend deliverables
- Data: it includes current database content, used datasets and data scraping
- Ontology: includes new ontology design implemented in Protégé, patterns for future expansion of the ontology and multilingual support
- NLP: AI-based features for semantic search, recommendations.
Moreover, please note:
The detailed tree for the repo, can be found here
- Data Architecture solution: The solution does not cover a database schema, webservices setup and scalability solutions. This part has been moved out of the scope of the project due to the time constraint within the 6 week program.
-
Data Architecture and Backend Development: Due to internal project scoping and main requirements of the stakeholders, the current architectural proposition consists of the UML diagram of a relation DB mapped to the newly proposed ontology and the result of the comparative research. The further development suggested by us, considers shifting the infrastructure to the cloud environment including a composition of microservices containing postgreSQL database and elasticsearch (a distributed search and analytics engine).
-
Ontology extensions: Recommender-based ontology design for discovery of new topics, implementing conceptualization of how to expand the ontology by including learning paths, ratings etc, and adding user-reviewing functionalities to the platform.
-
NLP: Introducing the algorithmic user-based recommendation for more targeted suggestions.
Requirements of the installed packages and versions are described in the domain-specific folders.
- Azure | Azure Content Moderator Cognitive Services
- SparkNLP | spaCy
- Figma - Prototyping tool
- Ontology Editor: Protégé 5.5.0
- Django plugin Django-parler
- Note: This repo uses Python 3.8 and various NLP-related libraries that can be installed here
- Python 3.8
- OWL 2 Web Ontology Language
- RDF (Resource Description Framework)
- Marco Pistis @slashlan
- Yasmine Mohamed, @YasmineM311
- Chueh Yang, @cyyang50
- Anna Wojcieszek @annopol
- Sonia Vigolo, @s-vigolo
- Gilda Fernandez-Concha, @gildafc
- Ibtihel Ouni, @Ibtihel-ouni
```bash
$ tree
.
|-- LICENSE
|-- README.md
|-- docs
| |-- Further Technologies
| |-- UniFire on Fire OpenEduE.pdf
| |-- Visual_OpenEdu_E.png
| `-- Work Documentation
| |-- Architecture
| | |-- Discover Django!.pdf
| | |-- Figma.pdf
| | `-- UI_UX Plan.pdf
| |-- Data
| | `-- Databases_-_SQL_or_NoSQL.pdf
| |-- NLP Pipeline
| | `-- Moderation
| | `-- Wiki Duplicates info.pdf
| `-- Ontology
| |-- OER_suggestions - Arkusz1.pdf
| `-- Ontology articles and references.pdf
|-- src
| |-- Architecture
| | |-- Backend
| | | `-- ontology_mapping_to_RDB_database_schema_UML_diagram.png
| | `-- UI Design
| | |-- README.md
| | `-- images
| | |-- ...
| | |-- 1_Main Page.png
| | `-- test.MD
| |-- Data
| | |-- Database
| | | `-- openedu_db_dump.txt
| | |-- Datasets
| | | |-- Wikimedia & Education Database - Database.csv
| | | `-- openedu_metadata_schema.xlsx
| | |-- Scraped Data
| | | |-- ResearchGate
| | | `-- Wiki Projects
| | `-- Scraped Metadata
| |-- Installation
| | |-- linux
| | `-- windows
| |-- NLP
| | |-- Content Analysis
| | | |-- Analysis Apps
| | | |-- Language_detection.ipynb
| | | `-- Topics Modeling
| | | |-- OpenEdu
| | | | |-- Experiments Tracking
| | | | `-- OpenEdu_pycaret.ipynb
| | | |-- Wikimedia
| | | | `-- Wikimedia_pycaret.ipynb
| | | `-- Wikipedia
| | | `-- Wikipedia_pycaret.ipynb
| | |-- Content Moderation
| | | |-- Duplicates Discovery
| | | |-- Euphemism Detection and Identification
| | | `-- content_moderator.py
| | |-- Content Recommendation
| | | |-- Existing OpenEdu Contents
| | | | `-- Similarity Search
| | | | `-- openedu_recommender_by_similarity.ipynb
| | | `-- External Contents
| | |-- Content Search
| | | `-- Demo App
| | |-- Content Translation
| | |-- Content Upload
| | | |-- AI-Autofill
| | | | |-- AI assistant.ipynb
| | | | |-- Data
| |-- Ontology
| | |-- Access
| | | |-- Exploring the ontology using OWLready2.ipynb
| | |-- Design
| | | |-- Multilingual Support
| | | |-- Patterns
| | | | |-- Conceptual Map of Ontology Patterns.jpg
| | | |-- VOWL viuslization.png
| | | |-- final ontology design.excalidraw
| | | |-- final ontology designX3.png
| | | |-- openedu_metadata_schema.xlsx
| | | |-- taxonomy.png
| | | |-- test_resource4.png
| | | `-- unifire-openedu.owl
| | |-- Multilingual Support
| | | `-- files
| | | |-- forms
| | | `-- settings.py
| `-- UniFire AI Engine.PNG
`-- test
|-- Ontology
| |-- Access
| `-- Evaluation
120 directories, 396 files
```