public void TestSetLimit() { SparqlQuery query = new SparqlQuery(@" SELECT ?s0 ?p0 ?o0 WHERE { ?s0 ?p0 ?o0 . { SELECT DISTINCT ?s0 WHERE { ?s ?p ?o. ?s @type @class . { ?s ?p1 ?o1 . FILTER ISLITERAL(?o1) . FILTER REGEX(STR(?o1), '', 'i') . } UNION { ?s ?p1 ?s1 . ?s1 ?p2 ?o2 . FILTER ISLITERAL(?o2) . FILTER REGEX(STR(?o2), '', 'i') . } } ORDER BY ?o } }"); query.Bind("@type", rdf.type); query.Bind("@class", tmo.Task); MethodInfo method = query.GetType().GetMethod("SetLimit", BindingFlags.NonPublic | BindingFlags.Instance); method.Invoke(query, new object[] { 10 }); ISparqlQueryResult result = Model.ExecuteQuery(query); List <Resource> resources = result.GetResources().ToList(); }
public void TestComplexQuery() { string queryString = "SELECT ?s0 ?p0 ?o0 " + "WHERE " + "{{ " + "?s0 ?p0 ?o0 . " + "{{ " + " SELECT DISTINCT ?s0 " + "WHERE " + "{{ " + " ?s ?p ?o." + "?s <{0}> <{1}> ." + "{{" + " ?s ?p1 ?o1 ." + "FILTER ISLITERAL(?o1) . FILTER REGEX(STR(?o1), \"\", \"i\") ." + "}}" + "UNION" + "{{" + "?s ?p1 ?s1 ." + "?s1 ?p2 ?o2 ." + "FILTER ISLITERAL(?o2) . FILTER REGEX(STR(?o2), \"\", \"i\") ." + "}}" + "}}" + "ORDER BY ?o" + "}}" + "}}"; string q = string.Format(queryString, rdf.type.Uri.OriginalString, tmo.Task.Uri.OriginalString); SparqlQuery query = new SparqlQuery(q); MethodInfo method = query.GetType().GetMethod("SetLimit", BindingFlags.NonPublic | BindingFlags.Instance); method.Invoke(query, new object[] { 10 }); var x = Model.ExecuteQuery(query); var res = x.GetResources().ToList(); }
public void TestIsOrdered() { Assert.Inconclusive("Reevaluate with more recent version of virtuoso client library."); MethodInfo isOrdered; SparqlQuery query = new SparqlQuery(@" SELECT ?s0 ?p0 ?o0 WHERE { ?s0 ?p0 ?o0 . { SELECT DISTINCT ?s0 WHERE { ?s ?p ?o. ?s @type @class . { ?s ?p1 ?o1 . FILTER ISLITERAL(?o1) . FILTER REGEX(STR(?o1), '', 'i') . } UNION { ?s ?p1 ?s1 . ?s1 ?p2 ?o2 . FILTER ISLITERAL(?o2) . FILTER REGEX(STR(?o2), '', 'i') . } } ORDER BY ?o } }"); query.Bind("@type", rdf.type); query.Bind("@class", tmo.Task); isOrdered = query.GetType().GetMethod("IsOrdered", BindingFlags.NonPublic | BindingFlags.Instance); Assert.AreEqual(true, isOrdered.Invoke(query, null)); query = new SparqlQuery(@" SELECT ?s0 ?p0 ?o0 WHERE { ?s0 ?p0 ?o0 . { SELECT DISTINCT ?s0 WHERE { ?s ?p ?o. ?s @type @class . { ?s ?p1 ?o1 . FILTER ISLITERAL(?o1) . FILTER REGEX(STR(?o1), '', 'i') . } UNION { ?s ?p1 ?s1 . ?s1 ?p2 ?o2 . FILTER ISLITERAL(?o2) . FILTER REGEX(STR(?o2), '', 'i') . } } } }"); query.Bind("@type", rdf.type); query.Bind("@class", tmo.Task); isOrdered = query.GetType().GetMethod("IsOrdered", BindingFlags.NonPublic | BindingFlags.Instance); Assert.AreEqual(false, isOrdered.Invoke(query, null)); query = new SparqlQuery(@" SELECT DISTINCT ?s0 FROM <http://semiodesk.com/id/8083cf10-5f90-40d4-b30a-c18fea31177b/> WHERE { ?s0 ?p0 ?o0 . ?s0 a nfo:Visual . ?s0 nexif:dateTime ?o1 . } ORDER BY ASC(?o1) LIMIT 50"); isOrdered = query.GetType().GetMethod("IsOrdered", BindingFlags.NonPublic | BindingFlags.Instance); Assert.AreEqual(true, isOrdered.Invoke(query, null)); }