Skip to content
This repository has been archived by the owner on Jun 27, 2023. It is now read-only.

RoadMap

Henry Story edited this page Jun 8, 2014 · 2 revisions

A road map quickly put together.

client side

The current system using rdflib and React have shown their viability, but a number of pieces need to be written to make the whole thing much more stable and scalable. This may require writing some advances libraries. Doing this in Scala-JS would allow one to write these with in a solid manner with all the type safety of scala.

Replace rdflib with banana-rdf

RDFlib is quite old and a bit cranky even if it has a lot of nice features. With Banana RDF pure scala plantain library it should be easy to get a solid RDF library whose code is easy to oversee. In order to avoid rewriting the parsers one could just re-use the existing JS ones.

Scala-JS equivalent of RWWActorSystem

On the server we have the RWWActorSystem that can take commands and send them to the web. Here we need one that can take requests to the server and execute them asynchronously. A lightweight library to do this may be enough since a port of akka, may take a while in coming about. What features would this need? What does RDFLib provide here?

Lazy loading of graphs

In order to be able to work with low memory clients, to speed up large clients and avoid overflooding them, one requires the ability to lazily load graphs. Ideally this would hide the complexity of the request from the client so that the client could be written in a simple graph traversal manner.

One can imagine for this a number of constructs. Call one such a LazyGraph. A LazyGraph can fetch a subset of a graph, allow '/' traversal on that subset and know when it needs to fetch the rest of the information ( when it has reached the limits of its knowledge ). Something like this is available in the Meteor framework. This would allow a to fetch a minimal subset of a graph.

Ideally this would require nothing more of the server than that it support SPARQL.

use Scala-JS wrapper for React for client code

React is very nice, but it requires one to write a lot of JS code which is error prone. Luckily there is some initial development of a Scala-JS wrapper for React in the works. This should make it much nicer to code the UI side of things.

Write basic Apps

The basic JS apps should be

  • File System Viewer
  • Profile Viewer & Editor
  • Group Editor
  • Access Control Editor
  • Blog editor - simplest content editor
  • Notifications - for blog commenting

Server Side

Server side currently works, but a number of serious improvements could be made.

Update to latest banana-rdf

But this latest version, no longer has SPARQL support, so since SPARQL is very useful for the client ( see above ), this may mean moving to either the Jena or the Sesame wrappers. ( should not be that difficult.

LDP Tests

run LDP test suites against rww-play

move to Play 2.3.0

list potential direct improvements here

re-organise code so that it requires less actors

Actors don't take that much memory, but the current setup uses too many of them