Qi4j

Integrate Parallax (was; Longwell)

Details

  • Type: New Feature New Feature
  • Status: Open Open
  • Priority: Major Major
  • Resolution: Unresolved
  • Affects Version/s: None
  • Fix Version/s: 2.3 - Lift Off
  • Component/s: Indexing
  • Labels:
    None

Description

Integrate SIMILE Longwell. Basically, the Longwell servlet should be deployable in the Jetty service and should be hooked up to the RDF repository used by the indexing. This will allow browsing of the index through a web browser.

Activity

Hide
Niclas Hedhman added a comment -

Edward Yakop commented on QI-121:
---------------------------------

IMHO, it would be difficult to integrate longwell with these requirement without forking longwell code.

Primary reasons:
o LongwellServlet code relies on WEB-INF folder to exists.
o It's hard to override longwell servlet code because:
o All field members are private
o Initialization is done inside GenericServlet#init( ServletConfig ), instead of GenericServlet#init()
o Other classes depends on LongwellServlet.

Other concerns:
o Longwell periodically checks configuration directories for changes in configuration files.
Longwell creates its own classloader to serve this purposes. Look at ConfigurationListener, LongwellClassLoaderWatcher, LongwellClassLoader.
Note:
Configuration files includes velocity templates, velocity macros, xslts, configuration rdf data, configuration java classes and its dependency jars.

Need feedback on how to proceed.

Show
Niclas Hedhman added a comment - Edward Yakop commented on QI-121: --------------------------------- IMHO, it would be difficult to integrate longwell with these requirement without forking longwell code. Primary reasons: o LongwellServlet code relies on WEB-INF folder to exists. o It's hard to override longwell servlet code because: o All field members are private o Initialization is done inside GenericServlet#init( ServletConfig ), instead of GenericServlet#init() o Other classes depends on LongwellServlet. Other concerns: o Longwell periodically checks configuration directories for changes in configuration files. Longwell creates its own classloader to serve this purposes. Look at ConfigurationListener, LongwellClassLoaderWatcher, LongwellClassLoader. Note: Configuration files includes velocity templates, velocity macros, xslts, configuration rdf data, configuration java classes and its dependency jars. Need feedback on how to proceed.
Hide
Niclas Hedhman added a comment -

Rickard Öberg commented on QI-121:
----------------------------------

Alright, then I suggest that you go to the SIMILE mailing list, say what you want to do and the issues you found, and see what they have to say. Getting Longwell integrated is too important to not do.

Show
Niclas Hedhman added a comment - Rickard Öberg commented on QI-121: ---------------------------------- Alright, then I suggest that you go to the SIMILE mailing list, say what you want to do and the issues you found, and see what they have to say. Getting Longwell integrated is too important to not do.
Hide
Niclas Hedhman added a comment -

Rickard Öberg commented on QI-121:
----------------------------------

It might be better to integrate Davids new creation, Parallax:
http://mqlx.com/~david/parallax/

Code is here:
http://code.google.com/p/freebase-parallax/

Check out the screencast for demo! I want that for objects...

According to David(email):
"
A few other people are also interested in porting Parallax over on Sesame. They include Mark Diggory from MIT Libraries / DSpace, with whom you might want to join forces. I personally would also like the UI ideas in Parallax to proliferate, for selfish reasons, and wouldn't mind being involved peripherally if you decide to do the porting.

The Parallax code base right now is open sourced as you might already know
http://code.google.com/p/freebase-parallax/
It is a relatively thin layer of Javascript that queries freebase.com over JSONP. Much of Parallax is quite specific to Freebase. The way it goes about suggesting facets and connections, the way it lists properties for you to pick, the way it presents individual entries, etc. are all Freebase specific.

However, the pivoting functionality is actually very simple both conceptually and architecturally. Check out the code and look in src/scripts/data/collection.js and collection-definition.js. That's the gut of it. There are a few more modes of pivoting that I'll be adding, but what's there now should already be useful.

If you decide to port, then I'd suggest having the work done in a google code hosted project. Actually, the "freebase-parallax" project I mentioned has an "app" sub-project in it; so potentially you can add a "sesame-impl" sub-project to the same project.

Note that Parallax's performance depends largely on Sesame's performance (for queries with groupings and counts) as well as on the data's quality.

Show
Niclas Hedhman added a comment - Rickard Öberg commented on QI-121: ---------------------------------- It might be better to integrate Davids new creation, Parallax: http://mqlx.com/~david/parallax/ Code is here: http://code.google.com/p/freebase-parallax/ Check out the screencast for demo! I want that for objects... According to David(email): " A few other people are also interested in porting Parallax over on Sesame. They include Mark Diggory from MIT Libraries / DSpace, with whom you might want to join forces. I personally would also like the UI ideas in Parallax to proliferate, for selfish reasons, and wouldn't mind being involved peripherally if you decide to do the porting. The Parallax code base right now is open sourced as you might already know http://code.google.com/p/freebase-parallax/ It is a relatively thin layer of Javascript that queries freebase.com over JSONP. Much of Parallax is quite specific to Freebase. The way it goes about suggesting facets and connections, the way it lists properties for you to pick, the way it presents individual entries, etc. are all Freebase specific. However, the pivoting functionality is actually very simple both conceptually and architecturally. Check out the code and look in src/scripts/data/collection.js and collection-definition.js. That's the gut of it. There are a few more modes of pivoting that I'll be adding, but what's there now should already be useful. If you decide to port, then I'd suggest having the work done in a google code hosted project. Actually, the "freebase-parallax" project I mentioned has an "app" sub-project in it; so potentially you can add a "sesame-impl" sub-project to the same project. Note that Parallax's performance depends largely on Sesame's performance (for queries with groupings and counts) as well as on the data's quality.
Hide
Paul Merlin added a comment -

An evolution of parallax, named sparallax can be plugged to a SPARQL endpoint.

http://sparallax.deri.ie/

I don't know if this can work with the qi4j SPARQL endpoint but I tougth it might be of interest.

Show
Paul Merlin added a comment - An evolution of parallax, named sparallax can be plugged to a SPARQL endpoint. http://sparallax.deri.ie/ I don't know if this can work with the qi4j SPARQL endpoint but I tougth it might be of interest.

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated: