Difference between revisions of "Graph query language for the archive (internship)"

From Software Heritage Wiki
Jump to: navigation, search
(add link to SANER 2020 preprint)
m (mention remote opportunities)
Line 14: Line 14:
* experience with graph databases (e.g., [https://neo4j.com/ Neo4j])
* experience with graph databases (e.g., [https://neo4j.com/ Neo4j])
|workplace=[https://liris.cnrs.fr/en LIRIS (Univ. Lyon 1, Lyon)] or [https://www.inria.fr/en/centre-inria-de-paris Inria Paris]
|workplace=[https://liris.cnrs.fr/en LIRIS (Univ. Lyon 1, Lyon)] or [https://www.inria.fr/en/centre-inria-de-paris Inria Paris] or contact mentors for remote opportunities

Revision as of 09:42, 14 December 2020

Context: Software Heritage is an ambitious research project whose goal is to collect, preserve in the very long term, and share the whole publicly accessible Free/Open Source Software (FOSS) in source code form.

Description: The Software Heritage archive is structured as a graph (specifically, a Merkle DAG) and is huge: tens of billion nodes, hundreds of billion edges. It has recently been verified that a compressed representation of the graph structure can fit in memory, whereas node/edge properties can be memory-mapped to secondary storage (see: documentation and in particular the SANER 2020 paper referenced there). An ad hoc API is available to traverse the graph, with very limited querying capabilities. The goal of this internship is to experiment with the possibility of querying the archive graph via state-of-the-art graph query languages. The ideal outcome of the internship will be a prototype of query engine that answers queries on top of the compressed graph representation plus associated property maps. The tentative target platform for implementation is Neo4j extended with a compatibility layer for WebGraph ImmutableGraph, but other platforms might be considered during the internship.

Desirable skills to obtain this internship:

  • Java development
  • Query languages for structured, semi-structured, or graph data (e.g., one or more among: SQL, Xquery, GraphQL, SPARQL, GQL, etc.)

Will be considered a plus:

  • experience with graph databases (e.g., Neo4j)

Workplace: LIRIS (Univ. Lyon 1, Lyon) or Inria Paris or contact mentors for remote opportunities

Environment: you will work shoulder to shoulder with all members of the Software Heritage team, and you will have a chance to witness from within the construction of the great library of source code.

Internship mentors:

  • Angela Bonifati <angela.bonifati@univ-lyon1.fr>
  • Stefano Zacchiroli <zack@upsilon.cc>

See also