8000 GitHub - s4ysolutions/matica-srpska
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

s4ysolutions/matica-srpska

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Matica Serpska

Online and mobile Serbian Language Dictionaries

Motivation

Matica Srpska (Матица Српска) is a comprehensive dictionary of Serbian words explained in Serbian, which is regarded as the most authoritative source of truth for other dictionaries.

This is the reason to have it in addition to dictionaries of other languages.

Status

While the overall functionality is in place, the dictionary contains lot of errors due to OCR and manual transcription. The process of cleaning up the dictionary is ongoing - please don't report about the noticed errors.

The online version of the dictionary is available at Matica Srpska. Mobile and desktop versions are not yet published anywhere, but they are proven to be working and can be built from the source code.

The CLI to parse the dictionary from PDF to JSON, CSV, or TXT is available in the convertor directory.

TODO:

A tool for community to fix the errors in the dictionary.

  • if a first word followed by space, another word and comma then most probably these to words need to be combained at onc (false space) and form a headword
  • Create a database of the raw data read from the PDF: chunks, positions, and the mappings.
  • Create an API to read the data from the database.
  • Create an API to modify the mappings.
  • Create a Web UI to modify the mappings.

Dictionary origin

The dictionary is based on the 2011 edition of the Matica Srpska dictionary, which is in public domain by parsing the PDF created by OSR the paper book.

The conversion script is available in the convertor.py script.

Build

The build process is more or less straightforward according to the Flutter documentation. But some additional steps were needed to be done:

Firebase realtime database (if used) requires the specific setup https://firebase.google.com/docs/flutter/setup?platform=ios MongoDB (if used) requires assets/.env file with the MONGO_CONNECTION_STRING variable.

Building for iOS causes the build error which is fixed by the following solution: https://stackoverflow.com/questions/56500709/how-to-connect-to-a-local-mongodb-instance-from-wasm-module

Features

The UI application is developed in Flutter and Dart, and it is available for Mac, Windows(unchecked), Android, iOS, and Web.

Currently, there are 2 backends supported: Firebase realtime database and experemental MongoDB(is not available for Web).

The architecture follows the Clean Architecture principles:

  • data layer contains the implementations of DictionaryProvider interface, which is used to implement search operations using concrete backend with Future-based API.
  • domain layer contains the MaticaService class, which leverages the DictionaryProvider interface to provide search functionality using the Streams API. The choice of Streams for delivering search results serves as a demonstration of Flutter’s ability to handle reactive programming.
  • presentation layer with Provider and StreamProvider widgets to provide the search functionality to the UI layer.
  • ui layer uses Provider's Consumer widget of the presentation layer to listen for search results stream and breaks the CA a bit by using the MaticaService directly to perform the search operation.

Known issues

  • Error handling is not consistent across the application mainly due to Flutter limitations in handling errors in the non-waited Futures. Sometimes the error just passed to the default error handler, and sometimes they are catched and forced to be routed to that handler.

  • Dictionary errors

    • extra spaces
      • [агенс][аге нс]
    • suspicious titles:
      • Page: 154 1,
      • Page: 171 r
      • Page: 229 д~
      • Page: 499 к (1) с непром. лингв. а. безвучни задњонеuчани ексй.лозивни
      • Page: 660 !
      • Page: 772 "
      • Page: 774 Ј'
      • Page: 796 ' ..
      • Page: 1010 l
      • Page: 1330 Ћ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0