Coder Social home page Coder Social logo

ontohub-frontend's Introduction

Ontohub

Build Status Code Climate Dependency Status

A web-based repository for distributed ontologies, models and specifications.

An ontology is a formal, logic-based description of the concepts and relationships that are of interest to an agent (user or service) or to a community of agents. The conceptual model of an ontology reflects a consensus, and the implementation of an ontology is often used to support a variety of applications such as web services, expert systems, or search engines. Therefore, ontologies are typically developed in teams. Ontohub wants to make this step as convenient as possible. Besides ontologies, Ontohub also supports formal models and specifications, or more generally, logical theories.

Ontohub aims at satisfying a subset of the requirements for an Open Ontology Repository (OOR) and is being developed in close donnection with the Distributed Ontology, Modeling and Specification Language (DOL), which is part of the emerging Ontology, Model and Specification Integration and Interoperability standard (OntoIOp) at OMG. For more information from this perspective, see the Ontohub home page.

This application started at the compact course agile web development given by Carsten Bormann at the University of Bremen in March, 2012. The concept and assignment came from Till Mossakowski, now in Magdeburg and Christoph Lange.

Initial developers are Julian Kornberger and Henning Müller.

Developer- and deployment-centric documentation can be found in the doc/ directory and in our Wiki pages.

Installation

A guide to set up your own instance of ontohub you can find in the deployment guide.

Also a guide for development environment for Mac OS X and Ubuntu in the Wiki.

License

Copyright © 2012 Universität Bremen and Universität Magdeburg, released under the GNU AGPL 3.0 license.

ontohub-frontend's People

Contributors

dependabot[bot] avatar ebolloff avatar eugenk avatar phyrog avatar stickler-ci avatar tillmo avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

ontohub-frontend's Issues

axiom filtering

implement axiom filtering due to several criteria, e.g. sublogic analysis (like Protégé does). The filtering should be useable for splitting the OMS.

display analysis errros for OMS

  • on the index and show pages, OMS and files with an error should be marked with a symbol
  • clicking on the symbol should display the error message
  • there should be an error status page, with mist recent errors first

Use headless Chrome instead/as well as PhantomJS

Chrome/Chromium can now run headless and can be used by testem to run the browser tests. As this is easily configurable and could lead to performance benefits for the tests (no numbers yet, but PhantomJS developers even hinted at creating a new version based on headless Chromium), I don't think there is anything that speaks against it.

I would suggest running both in development mode (ember test --serve) and use PhantomJS OR headless Chromium for CI tests (ember test), as they are run in parallel in development mode, but sequentially in CI mode (so twice the test time).

Use vcr.js instead of Mirage

Mirage seems to be a lot of work to fit to our API, so we should check if using vcr.js (or similar libraries) is easier to use.

With vcr.js we would run the tests locally and record the API answers for each request. During the CI, this data is read and used. This means that we don't have to explicitly model our API on the frontend as well.

Change page title

Currently the page title (the one in the top/tab bar of the browser) does not change when changing routes.

Dependency version policy

Most dependencies are specified with ^, which means "minor version updates permitted".

I think we should use ~ ("path level updates permitted"), or even specify hard versions. The reasoning for is is that if I install dependencies today, they might be different versions than if I installed them yesterday without a change to the package.json.

While there is something similar to a Gemfile.lock, (npm shrinkwrap can generate this), it's not possible to update versions easily. Basically what you have to do to update a version is:

  1. update the package.json
  2. delete the node_modules directory
  3. run npm install
  4. run npm shrinkwrap

If there are packages not specified in the package.json or if there are packages missing that are listed in the package.json, npm shrinkwrap will fail.

The alternative would be to use ~ or specify exact versions in the package.json and use the npm run update script to update to new versions. Also david-dm (the dependency status badge in the README) would show new versions available instead of saying "^1.4.1 matches 1.5, so all dependencies are up to date" without us knowing that we use an outdated version locally.

See this blog post.

Add basic git GUI

Add a basic git GUI that gives the user

  • a directory view
  • a file view (different views for different mime-types: text, image, pdf, video?)
  • a file upload into the current directory
  • a way to mkdir
  • file deletion
    on the default branch ('master').

Extend the git GUI by history

As a follow-up on #57, add a history (git log) page.
It should be configurable by the parameters that the GraphQL schema accepts.

Infinite loop of queries

When I checkout cbcdbab844ed416a4cf9a9c23aba4b864d36f275 in the ontohub-models
and I checkout 231a1a847ef7746dbacaee533b96fab96084dc0f in gitlab_git
and I checkout 8ffc6d17fc3e5d7f364ae200b324b0a7164a72a9 in the backend
and I start the rails server
and I start the frontend server
and I visit the landing page
and I open the developer tools network tab
then I see an endless loop of graphql queries with GetVersion and CurrentUser.

This is because the backend does not respond correctly to the requests:

{"errors":[{"message":"Field 'me' doesn't exist on type 'Query'","locations":[{"line":2,"column":3}],"fields":["query CurrentUser","me"]}]}

The frontend should stop making the requests in such a case.

Consider using prettier

prettier is a tool to format JS code according to some opinionated set of rules. While some of our eslint rules differ with the output of prettier, we could combine eslint with prettier, so we could easily just run eslint --fix to format the code with prettier first and then fix problems with our specific style rules.

There might be problems with conflicting rules when using the above plugin, so we should investigate this first.

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.