  RDF (Resource Description Framework) is a standard language to represent
graph databases. Query languages for RDF databases usually include primitives
to support path queries, linking pairs of vertices of the graph that are
connected by a path of labels belonging to a given language. Languages such as
SPARQL include support for paths defined by regular languages (by means of
Regular Expressions). A context-free path query is a path query whose language
can be defined by a context-free grammar. Context-free path queries can be used
to implement queries such as the "same generation queries", that are not
expressible by Regular Expressions. In this paper, we present a novel algorithm
for context-free path query processing. We prove the correctness of our
approach and show its run-time and memory complexity. We show the viability of
our approach by means of a prototype implemented in Go. We run our prototype
using the same cases of study as proposed in recent works, comparing our
results with another, recently published algorithm. The experiments include
both synthetic and real RDF databases. Our algorithm can be seen as a step
forward, towards the implementation of more expressive query languages.
