We introduce the recursive, rule-based RDF query language
RDFLog. RDFLog extends previous RDF query languages by arbitrary
quantifier alternation: blank nodes may occur in the scope of all, some,
or none of the universal variables of a rule. In addition RDFLog is aware
of important RDF features such as the distinction between blank nodes,
literals and URIs or the RDFS vocabulary. The semantics of RDFLog is
closed (every answer is an RDF graph), but lifts RDF’s restrictions on
literal and blank node occurrences for intermediary data. We show how
to define a sound and complete operational semantics that can be implemented
using existing logic programming techniques. Using RDFLog
we classify previous approaches to RDF querying along their support for
blank node construction and show equivalence between languages with
full quantifier alternation and languages with only ∀∃ rules