本文整理汇总了C++中ParsedQuery::asString方法的典型用法代码示例。如果您正苦于以下问题:C++ ParsedQuery::asString方法的具体用法?C++ ParsedQuery::asString怎么用?C++ ParsedQuery::asString使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ParsedQuery
的用法示例。
在下文中一共展示了ParsedQuery::asString方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FILTER
TEST(ParserTest, testParse) {
try {
ParsedQuery pq = SparqlParser::parse("SELECT ?x WHERE {?x ?y ?z}");
ASSERT_GT(pq.asString().size(), 0);
ASSERT_EQ(0, pq._prefixes.size());
ASSERT_EQ(1, pq._selectedVariables.size());
ASSERT_EQ(1, pq._whereClauseTriples.size());
pq = SparqlParser::parse(
"PREFIX : <http://rdf.myprefix.com/>\n"
"PREFIX ns: <http://rdf.myprefix.com/ns/>\n"
"PREFIX xxx: <http://rdf.myprefix.com/xxx/>\n"
"SELECT ?x ?z \n "
"WHERE \t {?x :myrel ?y. ?y ns:myrel ?z.?y nsx:rel2 <http://abc.de>}");
ASSERT_EQ(3, pq._prefixes.size());
ASSERT_EQ(2, pq._selectedVariables.size());
ASSERT_EQ(3, pq._whereClauseTriples.size());
ASSERT_EQ("", pq._prefixes[0]._prefix);
ASSERT_EQ("<http://rdf.myprefix.com/>", pq._prefixes[0]._uri);
ASSERT_EQ("ns", pq._prefixes[1]._prefix);
ASSERT_EQ("<http://rdf.myprefix.com/ns/>", pq._prefixes[1]._uri);
ASSERT_EQ("?x", pq._selectedVariables[0]);
ASSERT_EQ("?z", pq._selectedVariables[1]);
ASSERT_EQ("?x", pq._whereClauseTriples[0]._s);
ASSERT_EQ(":myrel", pq._whereClauseTriples[0]._p);
ASSERT_EQ("?y", pq._whereClauseTriples[0]._o);
ASSERT_EQ("?y", pq._whereClauseTriples[1]._s);
ASSERT_EQ("ns:myrel", pq._whereClauseTriples[1]._p);
ASSERT_EQ("?z", pq._whereClauseTriples[1]._o);
ASSERT_EQ("?y", pq._whereClauseTriples[2]._s);
ASSERT_EQ("nsx:rel2", pq._whereClauseTriples[2]._p);
ASSERT_EQ("<http://abc.de>", pq._whereClauseTriples[2]._o);
ASSERT_EQ("", pq._limit);
ASSERT_EQ("", pq._offset);
pq = SparqlParser::parse(
"PREFIX : <http://rdf.myprefix.com/>\n"
"PREFIX ns: <http://rdf.myprefix.com/ns/>\n"
"PREFIX xxx: <http://rdf.myprefix.com/xxx/>\n"
"SELECT ?x ?z \n "
"WHERE \t {\n?x :myrel ?y. ?y ns:myrel ?z.\n?y nsx:rel2 <http://abc.de>\n}");
ASSERT_EQ(3, pq._prefixes.size());
ASSERT_EQ(2, pq._selectedVariables.size());
ASSERT_EQ(3, pq._whereClauseTriples.size());
ASSERT_EQ("", pq._prefixes[0]._prefix);
ASSERT_EQ("<http://rdf.myprefix.com/>", pq._prefixes[0]._uri);
ASSERT_EQ("ns", pq._prefixes[1]._prefix);
ASSERT_EQ("<http://rdf.myprefix.com/ns/>", pq._prefixes[1]._uri);
ASSERT_EQ("?x", pq._selectedVariables[0]);
ASSERT_EQ("?z", pq._selectedVariables[1]);
ASSERT_EQ("?x", pq._whereClauseTriples[0]._s);
ASSERT_EQ(":myrel", pq._whereClauseTriples[0]._p);
ASSERT_EQ("?y", pq._whereClauseTriples[0]._o);
ASSERT_EQ("?y", pq._whereClauseTriples[1]._s);
ASSERT_EQ("ns:myrel", pq._whereClauseTriples[1]._p);
ASSERT_EQ("?z", pq._whereClauseTriples[1]._o);
ASSERT_EQ("?y", pq._whereClauseTriples[2]._s);
ASSERT_EQ("nsx:rel2", pq._whereClauseTriples[2]._p);
ASSERT_EQ("<http://abc.de>", pq._whereClauseTriples[2]._o);
ASSERT_EQ("", pq._limit);
ASSERT_EQ("", pq._offset);
pq = SparqlParser::parse(
"PREFIX ns: <http://ns/>"
"SELECT ?x ?z \n "
"WHERE \t {\n?x <Directed_by> ?y. ?y ns:myrel.extend ?z.\n"
"?y nsx:rel2 \"Hello... World\"}");
ASSERT_EQ(1, pq._prefixes.size());
ASSERT_EQ(2, pq._selectedVariables.size());
ASSERT_EQ(3, pq._whereClauseTriples.size());
pq.expandPrefixes();
ASSERT_EQ("?x", pq._selectedVariables[0]);
ASSERT_EQ("?z", pq._selectedVariables[1]);
ASSERT_EQ("?x", pq._whereClauseTriples[0]._s);
ASSERT_EQ("<Directed_by>", pq._whereClauseTriples[0]._p);
ASSERT_EQ("?y", pq._whereClauseTriples[0]._o);
ASSERT_EQ("?y", pq._whereClauseTriples[1]._s);
ASSERT_EQ("<http://ns/myrel.extend>", pq._whereClauseTriples[1]._p);
ASSERT_EQ("?z", pq._whereClauseTriples[1]._o);
ASSERT_EQ("?y", pq._whereClauseTriples[2]._s);
ASSERT_EQ("nsx:rel2", pq._whereClauseTriples[2]._p);
ASSERT_EQ("\"Hello... World\"", pq._whereClauseTriples[2]._o);
ASSERT_EQ("", pq._limit);
ASSERT_EQ("", pq._offset);
pq = SparqlParser::parse(
"SELECT ?x ?y WHERE {?x is-a Actor . FILTER(?x != ?y)."
"?y is-a Actor . FILTER(?y < ?x)} LIMIT 10");
pq.expandPrefixes();
ASSERT_EQ(2, pq._filters.size());
ASSERT_EQ("?x", pq._filters[0]._lhs);
ASSERT_EQ("?y", pq._filters[0]._rhs);
ASSERT_EQ(SparqlFilter::FilterType::NE, pq._filters[0]._type);
ASSERT_EQ("?y", pq._filters[1]._lhs);
ASSERT_EQ("?x", pq._filters[1]._rhs);
//.........这里部分代码省略.........