Giter Club home page Giter Club logo

rest-ocd-services's People

Contributors

beka-beka avatar beka-zhvania avatar cagatayogut avatar ckrae avatar cralem7 avatar jojoroeder avatar marleneid avatar maxkissgen avatar minemeraj avatar mohsenshahriari avatar pedela avatar tbiele avatar timobellartz avatar

Stargazers

 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rest-ocd-services's Issues

Fix Logging

Currently, Logging of the Service Class does not seem to write to any files, this should be fixed. Furthermore the requesthandler should not just log to console but also to files

Implement LFR/Signed LFR Benchmarks completely in webOCD

Currently, the LFR benchmarks executables can fail to be run on linux systems that do not have some matching parts of the system they were built with. Therefore, implementing them in webOCD is needed to not require some users to build them themselves.

  • LFR (based on lfr benchmark for weighted and directed graphs)
  • Signed LFR (based on lfr benchmark for directed graphs)

Fix Swagger Integration

Las2Peer provides swagger integration for services and methods are already (partially) annotated in the Service Class. This needs to be brought up to speed.
A working swagger ui would also be benefitial

Do not display number of communities while still running

When an algorithm is running the number of communities is displayed on the page of the cover which is really odd. The number of communities is set to the number of nodes in the graph. This makes the impression that the algorithm has finished and it puts all nodes in their own community. It might be better to show something like "in progress" or "running " instead of a number because technically no communities have been found yet.

Import of Labeled Membership matrix not working

Currently the Service doesn't seem to accept labeled membership matrix files (also those created with its own format) as a cover import.

The first problem is that it expects dots instead of commas for double values, while the other is yet unknown

Ensure OCDA compatible graphs are exhaustive

With the addition of enforcing OCDA execution only on compatible graphs through #74 , a lot of OCDA become unusable for many graphs they were used for before (e.g. ones from LFR). It might be the case that for some of the algorithms, not all compatible graphs are set in the compatibleGraphTypes method of the algorithm. It can be a good idea to check this.

Fix Triplestore Input Tests Failing

Currently, the tests for the Import from LMS triplestore are failing. This is likely to some recently made changes to the data that are not accounted for in WebOCD yet. The tests need to be adjusted

Dead link to integration tutorial

Currently, the link to the integration tutorial of WebOCD on the front page of the site does not work. This needs to be corrected

Ensure Algorithms execute only on compatible graphs

With some ocd algorithms not being compatible for some graph types, we should disallow using them on incompatible ones per default.

Note: Execution on incompatible types could still be allowed but only if the user explicitly chooses to do so (e.g. tick a box in the web client).

DOCA - No linux version

DOCA Detecting Overlapping Communities Algorithm uses an executable. There is no corresponding Linux version.

Standardize output logs of algorithms

Currently most algorithms print no output, some give basic info e.g. community count while some (e.g. Evolutionary Algorithm Based on Similarity) give too much info. It might be a good idea to standardize what the algorithm prints after execution. For example, the count of communities found.

Migration to la4j-0.5.0

Hi all,

I've bumped at this repository and found here really good examples of la4j API usage. Thanks for using it!

The library is almost ready for new release: 0.5.0. New version will include sparse iterators as well as efficient sparse operations (which is very useful for your case). I'm planing to release the 0.5.0 version in 3 weeks. If you want I can try to submit you a couple of pull-requests within the examples of new API so you can migrate the rest of the code by you own.

Anyway, I still planing to support the backward capability, so you can just update the library dependency and keep using the same API. This approach will work fine for the complex operations like matrix multiplications: you will get a huge performace gain here. But you still should rewrite your custom code (based on primitive matrix operations) with iteratos in order to increse the peformace there.

Please, let me know if you need any help with migrating the source code to new library version once it released.

Rework Cooperation Simulation Component

The cooperation simulation component of WebOCD has been left unattended for long and sometimes uses own solutions instead of those provided by WebOCD itself, e.g. the ThreadHandler. We need to assess whether everything still works as intended in the Component and adjust it so that it works as the other components.

Adding images for wiki.

nodecontent1
nodecontent2
xml1
xml2

It's not an issue, it's just containing the images which will used in wiki page. As there is no way to upload images in the wiki, the image link of this issue would be used in the wiki.

Rework REST Method annotations

Some REST methods are still a bit sparingly annotated. Some may even be wrongly annotated. This needs to be brought up to speed

Offer more detailed logging

Currently the ocd service itself is only really able to log wrong requests. It would be highly beneficial to relay more information regarding which algorithm is executed and with what parameters, adding to that if it fails and why it fails.
For algorithm classes we can for example currently not use the one of the service classes because using this logger outside the class does not produce any output. Using an own logger here would however produce an own file.
General ideas on how to circumvent this would be to either have one central object/class with a logger that gets information from other objects, or to use an other logging library than las2peers built in one

Java 17 Update

In order to use the newest las2peer version to 1.2.0 we need to match its Java version.

Fix Memory Usage when fetching graphs overview

When a user, for example through the webclients graph table, fetches the overview of all graphs over the ocd/graphs endpoint, an overly large amount of memory seems to be accessed just for getting the necessary superficial information for these graphs.
Especially when a user builds a larger collection of graphs this can lead to longer loading times for the overview and in the worst case overwhelm the service.
Calling this endpoint therefore needs to consume much less graph memory

Create develop branch

I think, we need a develop branch were we merge changes from feature branches. The develop branch can be used for running tests and planning releases.

Persistence of Community Colors

Currently, changes made to a communitys color are not kept in the database, but needed for writing cover XMLs.
The colors therefore need to be persisted

Change to gradle for build

We are currently still building with ant. Transition to the newer build environment of gradle with respect to the las2peer template project would be beneficial

Fix HTTPS communication

Related to #12
Using HTTPS for communication currently stops responding to requests after a while. This needs to be fixed

Own implementation of MEAs-SN

Currently MEAs-SN still is a c program in a folder and therefore isn't directly a part of WebOCD. We need to have a Java implementation within WebOCD

Fix Execution Time Calculation

Currently, algorithms excluded from further analysis with divideIntoConnectedComponents() in the OCDAlgorithmExecutor just have an execution time of 0 since the corresponding variable is only initalized but not filled afterwards. This needs to be fixed.

Add OCD algorithm implementation guide

For someone who hasn't developed anything for WebOCD before, it might be time consuming to figure out how exactly new algorithms can be added. To make the experience more pleasant for the user, it makes sense to have a guide where the process is explained.

Support different functions as algorithm parameters

Until now, the user specified parameters of an algorithm are either int, double, or boolean. Adding support for enums makes it possible to change between different functions (weight-, ranking-, set-difference-functions, etc.) in the RunOCDAlgorithm form.

Load Balance with las2peer characteristics

Currently, WebOCD does not really make use of the node features of las2peer. It would be ideal to have algorithms run on different nodes in order to make requests for the service less taxing

Gradle build on Linux fails sometimes

Gradle build of WebOCD fails on Linux. Building a docker image can also fail on Linux. The reason seems to be due to the path in persistence.xml <jar-file> tag.

Allow for limiting object sizes (e.g. graphs, covers etc)

Add a mechanism to limit object (graphs, covers etc.) sizes of specific users.

Since WebOCD is used for various lectures and seminars, in this context, it makes sense to be able to limit the users on graph element sizes (e.g. nodes/edges). This will prevent students who need WebOCD for some specific tasks from unnecessarily overloading it. These limits can be adjusted according to what the task of the seminar/lecture requires. These limits should be adjustable and specific to users/accounts.

Content Moderation/Deletion

A larger amount of older data seems to have piled up on our running instance. This marks one of the reasons why we need to have a means of deleting unused data. Ways can for example be:
-An administrator endpoint for deleting data of a specific user
-Deletion of content after a set amount of time.

Implement DOCA, the LFR Benchmarks and SPM, or find New Linux Versions

Currently, the DOCA Algorithm still has no linux version and is not even used on windows systems because of that as well. Its junit test still fails. The linux variants executables of the lfr benchmarks and the signed probabilistic mixture algorithm are rather old and therefore do not work on some systems.

Make WebOCD buildable outside eclipse

Currently, WebOCD does not build without precompilation(producing a tmp folder) in eclipse after get_deps. This needs to be fixed so that IntelliJ and command line can be used for builds as well.

Create a WebOCD set-up guide for a thesis process

Students working on a thesis related to WebOCD interact with different components such as the WebOCD service and web client. It can be useful to have a detailed tutorial on how to locally set these components up and deal with the possible problems, in order to aid with the thesis process.

SignedProbabilisticMixtureAlgorithmTest is not working

Testcase: testDetectOverlappingCommunities
Caused an ERROR
Algorithm could not be executed.
java.io.IOException: java.util.InputMismatchException

Testcase: testGetMembershipMatrix
Caused an ERROR
java.util.InputMismatchException

No visualization for a circular graph

On the graph page, the visualization stays blank for the following graph data:

0 1
1 0

Surprisingly, adding a node to it brings it back to life:

0 1
1 0
2 3

image

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.