Giter VIP home page Giter VIP logo

clld's Introduction

clld

The clld toolkit - a web framework for the publication of Cross-Linguistic Linked Data.

Documentation for the code base and its use is available at https://clld.readthedocs.io/en/latest/. The source for this documentation is in the docs directory.

Build Status PyPI Documentation Status

How to cite

To cite the clld software, please cite the presentation introducing it

Forkel, R., & Bank, S. (2014, October 7). The clld toolkit. Language Comparison with Linguistic Databases: RefLex and Typological Databases, Nijmegen. Zenodo. https://doi.org/10.5281/zenodo.10846846

Usage

Once the initial steps (installation, bootstrapping a new project) have been done helped by the online documentation, the biggest resource to guide further development of a clld app is the wealth of existing apps. (Note: GitHub's "Used by" links - created from the dependency graph data - are really helpful here!) The following pointers are meant as a starting point to solve specific problems by perusing the code of other apps.

See

clld's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

clld's Issues

upgrade to bootstrap 2.3

While we'd rather upgrade to bootstrap 3, upgrading from 2.2 to 2.3 does still make sense if only for jquery 1.9 compatibility.

refactor URL layout of apps

URLs should look as follows:

/languages
/languages/{id}

i.e. the URL for a single resource should be the URL of the resource class plus the resource id as additional path component.

Prevent reflexive owl:sameAs RDF triples

Clld generates redundant statements of the form $glottocode owl:sameAs $glottocode . in the RDF for resources identified by a glottocode, e.g. languoids in glottolog.

Can this be prevented by special casing?

make clld package independent of the CLLD project

The clld package should be independent of the CLLD project's publishing infrastructure. So

  • adapt default app footer,
  • remove fabfile from app scaffold,
  • remove legal.mako,
  • remove default values for dataset objects.

A scaffold for a clld app to be part of CLLD should be provided in a separate package.

merge includeme and register_app functions

The two functions to make common clld functionality available for clld apps should be merged. The pkg argument to register_app is not necessary because the calling package can be accessed via the Configurator's package (and package_name) attribute(s).

API

A (configurable) API should be implemented, exposing domain-specific operations, like

  • updating language data (ISO code, ...)
  • re-coding values

in a way that makes it easy to put a JavaScript UI on top.

Authentication should be really simple, i.e. just put URL path behind HTTP(S?) Basic Auth.

unify API of dsv library

The API for reading any kind of delimiter-separated values should be unified, preferably following the API of the standard lib csv.reader.

Order CSV columns according to model fields

Right now, CSV views of data tables put the columns in alphabetic order.

How about producing them in the order of the model fields? E.g. like this:

def csv_head(self):
    mappers = list(object_mapper(self).iterate_to_root())
    exclude = {'active', 'version', 'created', 'updated', 'polymorphic_type'}
    cols = [col.key for om in reversed(mappers) for col in om.local_table.c
        if col.key not in exclude and not exclude.add(col.key)]
    return cols

Figure out best version of html5lib to depend on

We currently pin html5lib at version 0.999, but recent rdflib releases require 0.95. Figure out how to resolve this in a way that allows us to work with most recent versions of major packages.

deployment in production mode

deployment of apps in production mode needs to be supported:

  • log rotation
  • deploy under separate domain served via nginx site

factor out fabric stuff into separate package

All functionality dependent on fabric should be factored out into a new package to

  • make migration to python3 easier,
  • separate deployment/clld project specific stuff from the community package.

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.