Git Product home page Git Product logo

tournesol-meta's Introduction

This repository aims to record and label different non-code issues and their status. See the wiki page Contribute to Tournesol for details.

tournesol-meta's People

Contributors

lenhoanglnh avatar sergeivolodin avatar

Stargazers

Thomas L avatar Mathieu Ledru avatar  avatar Ben avatar

Watchers

Michaël Witrant avatar James Cloos avatar Adrien Matissart avatar BEY Quentin avatar  avatar

tournesol-meta's Issues

Re-enable Machine Learning on new repository

This ticket would benefit greatly from having data in one's local database #42

  • Create a new django application "ml" (name could be changed) that contains the Machine Learning code that can be run with the managment command ml_train.
  • Ensure the code can runs and produces expected results

Tournesol Peertube plugin

PeerTube (source) is an open-source alternative to Youtube. Videos are hosted on a decentralized server network and bandwidth is shared between users.

An ethical recommendation system like Tournesol could be an interesting feature for Peertube users, who are usually concerned about Youtube supremacy.

Peertube works with plugins that can be installed by instance administrators. So creating a Tournesol plugin for Peertube is probably the way to do.

Note that it's probably a little more work than #48, because it requires to evaluate non-Youtube videos. In particular, evaluating videos that belongs to a federated network and not a central website is probably not that simple, but SepiaSearch, the new Peertube's global search engine, could be used here.

If the Tournesol organization appreciate this suggestion, it makes sense for the organization to host a Peertube instance dedicated to the Tournesol project, in order to work on this plugin and let users test it and send feedback. To kill two birds with one stone, maybe @lenhoanglnh could also use this instance to share its science videos on a more ethical platform.

Utip

For crowdfunding.

Creates boilerplate frontend repository

Code of the current frontend should be added to tournesol-frontend repository. Additionally implement possibility to serve and develop on the app locally

Refactor backend database schema

Instead of having multiple columns per feature, we want to have separated table with columns (scores x feature_name x weight)

Rate page design

We need to make it easier for users to choose the videos they are rating.
image
image

I need to optimize it :)

Serve wiki in ansible

  • Authentication for the wiki should use the same user base as for the backend
  • Should reuse the same database as on the previous wiki

Write conditions for data reuse

  • This can be a good starting point (but we should probably adapt it): https://en.wikipedia.org/wiki/Wikipedia:Copyrights
  • I think that it would be good to have a pledge for use for good.
  • We must list any data reusing entities somewhere on the website. This adds credibility to Tournesol and helps red-flag misuses.
  • Finally, we should discuss the incentives caused by an (influential) data reuse: if an algorithm A reuses the Tournesol database in a very influential and non-strategyproof manner, then Tournesol contributors may care about the impact of algorithm A, and may be incentivized to participate strategically, thereby endangering the trustworthiness of the database. We should encourage the use of the Licchavi framework (link to the paper pending...) or of the Tournesol scores only.

Distributions of Youtube video metadata

Figure out whether we can:

  • distribute scripts using youtube-dl on Github
  • distribute files/db dumps containing youtube video metadata on Github
  • distribute video's metadata on tournesol.app

Implement authentication between the frontend and the backend

Once the backend exposes API enpoints for authentication. Implement such authentication on the frontend. This is best done by reusing the previous implementation, unless there are good reasons to change it.

This ticket should also include:

  • Documenting how to run both the frontend and backend locally for development
  • A configuration file to enable local development, staging, and live versions

Ulule

For crowdfunding.

Paper on ArXiV

We need to upload a paper on ArXiV describing Tournesol overall, so that we can be more easily cited by academic papers (like my upcoming papers 😜).

I'll work on a first draft to upload quickly soon.

(the advantage of ArXiV is that we can be easily cited, while regularly updating the paper)

Setup Circle CI on tournesol-backend

On tournesol-backend:

  • Set-up account on CircleCI
  • Set-up pipeline for tests & code syntax on commits to master branch and PRs
  • Adds flakify/pylint
  • Adds a simple test test that ensures that the server runs properly (requirements + python manage.py runserver does not crash)

(can be discussed)

Develop a strategy in case if server is insufficient (OOM/CPU load)

  1. Set a timeout on apache, in case if exceeded, show a message like "tournesol is experiencing difficulties, please stand by and try again later etc"
    • Write the message and the layout @tournesol-app/designers
  2. Create monitoring for OOM in case if Munin is not working (or report right after OOM ends)
    image

On the figure, Munin is not running because OOM, therefore, there are reports on Telegram
3. Buy a new server and migrate to it (database, website, ...). Freeze the DB for some time (showing "technical difficulties"), copy and run on the new instance. Set up a tunnel for apache traffic to go there before DNS changes

Add Tournesol to alternatives Youtube clients

There are several open-source Youtube clients:

These are front-end alternatives that allow users to watch Youtube videos without sending too much information to Google with interesting features like the ability to follow channels without a Google account.

Since these client have a full control on the UI, they have full control on how to recommend videos to users. Therefore it makes sense here to use an alternative to the Youtube recommendation system, such as Tournesol.

Their users are probably concerned about Youtube supremacy so it could be an efficient way to offer Tournesol to people that want it, and to promote the project. Their developers may accept to add such a feature in their code base if it's well integrated on the UI.

So I wonder if the Tournesol organization and community would want to give some resources and time to contribute to these projects this way.

Edit: having a good recommendation API that allows developers to easily retrieve recommendations and use them in their project (that can be an alternative Youtube client or something else) is probably a good approach.

API endpoints for contributor's comparisons

Create endpoints for a contributor to create, update, delete, fetch, and list his/her own comparisons.

Updates must be possible with partial data for example a contributor submitted comparisons on multiple criteria, but is now sending to the server that he/she updates a single criteria.

The implementation must be careful about handling comparisons between videos X & Y, and comparisons between videos Y & X.

This is best done by keeping the API as similar as possible to the previous implementation, unless there are good reasons to change it.

Details:
The endpoint should be /comparison/

  • GET request with parameters video_1 and video_2 returns the single desired comparison or an error if this comparison does not exist. It should return the comparison with opposite ratings if our db contains the comparison between video_2 and video_1 instead (If this is not clear talk to @lfaucon about it)
  • GET request with parameters video (optional) offset and limit return the list of comparisons where the requested video is either video_1 or video_2 or just the list of all comparisons if video is not specified
  • POST request with parameters video_1, video_2 and any ratings between 0 and 100 for the rating criterias should create the comparison
  • PUT with same parameters should update the comparison

Fix e-mail getting rejected

image

  • Add e-mail alert to Munin (see the devops repo)
  • Decrease number of messages (do not send at each form save)
  • Read on how to not get rejected in general

API endpoint for video recommendations

Endpoint /videos, GET request returns sorted list of videos using parameters:

  • limit: default 10
  • offset: default 0
  • date_lte, date_gte
  • language
  • <CRITERIA_NAME_WEIGHT> value between 0 and 100 (default: 50) the weight of this criteria in the ranking

The video must be sorted based of the sum of scores per criteria multiplied by their weights <CRITERIA_NAME_WEIGHT>

The returned video must contain most of the data about the video (most fields available on the Video and VideoCriteriaScores model)

Optional:
Add search parameter for a text search using title / metadata of the videos. Discuss with @lfaucon and @lenhoanglnh if you want to implement this feature

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.