Code Monkey home page Code Monkey logo

elisio's People

Contributors

blagae avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

elisio's Issues

Improve test coverage for hendecasyllabus parser

Make sure unit tests cover every possible successful outcome in all subtypes of the hendecasyllabus parser, and a representative sample of failing scenarios. We also need to test the HendecaCreator.

Parse the senarius

The senarius is an iambic verse form mostly used in dramatic poetry, and is known for its high flexibility, which presumably makes it hard to put into an algorithm.

The Elisio engine should be able to handle the senarius in a correct and testable way.

Communicate from front-end to back-end with GraphQL

Replace the current front-end API calls with GraphQL calls in order to reduce the number of round-trips that are necessary to populate the fields for individual verses and (in the future) the query tool.

Build the query tool

Design and write a tool that can be used to run specific analyses on subsets of the verse corpus.
Users must be able to:

  • define which analysis they want from a predefined list (which may contain user-defined content) e.g. the use of faciebat in hexameter clausulae.
  • specify a specific subset to run the analysis on, which may be a composite of several items e.g. all works of Vergilius + the Metamorphoses.

This task comprises at the very least:

  • a front-end GUI design & implementation for the query assembler
  • the back-end script that can execute the analysis and return results
  • a rate limiter that puts reasonable constraints on the amount of CPU time a user can hog.

Nice-to-haves are:

  • an option to schedule analysis
  • an option to abort an analysis
  • an option to reuse past analyses as much as possible
  • an option to simulate analysis, in order to estimate cost

Improve test coverage for hexameter parser

Make sure unit tests cover every possible successful branching statement in the Hexameter parser step. We also need a representative sample of failing scenarios where there is not enough information or conflicting situations e.g. a verse starting with HEAVY-LIGHT-HEAVY syllables.

For successful tests, the current situation is only problematic for BalancedHexameter. For failing tests, coverage can be improved on all subtypes.

This improvement may reveal dead branches (impossible scenarios) in BalancedHexameter. These should be weeded out.

Analyze unreachable code in BalancedHexameter

Coverage analysis has shown that there are a few code paths in BalancedHexameter which will never be executed, because their preconditions are already caught by other code. Determine whether to remove these.

Analyze effort to implement Greek verse

Try to work with the current setup to create a basic parallel implementation that can scan some sample Greek verses. The outcome should be a set of pointers and suggestions for refactorings that can make implementing a full Greek hexameter scanner easier.

The effort on this ticket is allowed to contain "bad" code because it does not have to be usable as-is, but of course it is better if it's easily mergeable.

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.