There's no need to do a FILTER(?s IN sub query) and as you have found out this is actually illegal SPARQL
You can however put the sub query in directly and get the desired effect. SPARQL evaluation is bottom up so the inner query gets evaluated first Rob ________________________________________ From: Charles Li [[email protected]] Sent: 31 August 2013 09:36 To: [email protected] Subject: How to filter SPARQL query with a list Hi, all Jena/SPARQL experts! I am composing a SPARQL query trying to list all triples whose subjects are in a list of RdfId's, and this list of RdfId's are from another select query: select ?s ?p ?o WHERE { ?s ?p ?o FILTER(?s in ( select distinct ?s WHERE { ?s ?p ?o FILTER(contains(str(?o), "_{000E9C27-150C-480B-9CC7-E23FFC62C90A}")) } ) && !(contains(str(?o), "_{000E9C27-150C-480B-9CC7-E23FFC62C90A}")) ) } order by ?s However, the SPARQL query is not well-format, and it seems that it doesn't allow another "select" in place for the list of values. Can someone help me and advice how I can put in a list of RdfId's from another query (lines 6 - 10)? Thanks a lot! - Charles
