         if url.absoluteString.hasSuffix("srx") {
             let srxParser = SPARQLXMLParser()
             return try srxParser.parse(Data(contentsOf: url))
+        } else if url.absoluteString.hasSuffix("srj") {
+            let srjParser = SPARQLJSONParser()
+            return try srjParser.parse(Data(contentsOf: url))
         } else if url.absoluteString.hasSuffix("ttl") || url.absoluteString.hasSuffix("rdf") {
             let syntax = RDFParserCombined.guessSyntax(filename: url.absoluteString)
             let parser = RDFParserCombined()

                mf:entries/rdf:rest*/rdf:first ?test .
            ?test a ?test_type ;
                mf:action ?action ;
                mf:result ?result ;
                dawgt:approval ?approval ;
            .
            ?action qt:query ?query .
        }
        """

    
    public func manifestEvaluationItems<Q: QuadStoreProtocol>(quadstore: Q, manifest: Term, type: Term? = nil) throws -> AnyIterator<SPARQLResultSolution<Term>> {
        if verbose {
            print("Retrieving evaluation tests from manifest file \(manifest)...")
        }
        let sparql = """
        PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
