Use find_statements instead of SPARQL for a query
authorDiane Trout <diane@ghic.org>
Thu, 2 Jun 2016 00:05:52 +0000 (17:05 -0700)
committerDiane Trout <diane@ghic.org>
Fri, 24 Jun 2016 22:55:58 +0000 (15:55 -0700)
The SPARQL query ended up with an unbound variable which
generated a warning, I redid the query with just a model.find_statements
which doesn't generate a warning

(My test output was getting cluttered with too many logger warnings)

htsworkflow/submission/submission.py

index 50e822877bee7dcdeccc89226ffc7707a7a902c3..500f4e7424b6a51c5f10f0af15b64dedfd607bce 100644 (file)
@@ -433,10 +433,12 @@ def list_submissions(model):
       select distinct ?submission
       where { ?submission subns:has_submission ?library_dir }
     """
-    query = RDF.SPARQLQuery(query_body)
-    rdfstream = query.execute(model)
-    for row in rdfstream:
-        s = strip_namespace(submissionLog, row['submission'])
+    q = RDF.Statement(None, submissionOntology['has_submission'], None)
+    submissions = set()
+    for statement in model.find_statements(q):
+        s = strip_namespace(submissionLog, statement.subject)
         if s[-1] in ['#', '/', '?']:
             s = s[:-1]
-        yield s
+        submissions.add(s)
+
+    return list(submissions)