use of com.inova8.pathql.context.RepositoryContext in project com.inova8.intelligentgraph by peterjohnlawrence.
the class PathPatternQueryExpressionTests method test_33.
/**
* Test 33.
*/
@Test
@Order(33)
void test_33() {
try {
PathElement element = PathParser.parsePathPattern(repositoryContext, "[rdfs:label [ like \"Unit\" ]; a :Unit]/:hasProductBatteryLimit");
// Query.assertEqualsWOSpaces
assertEquals("Join\r\n" + " Extension\r\n" + " Join\r\n" + " Filter\r\n" + " Regex\r\n" + " Variable (name=b1)\r\n" + " ValueConstant (value=\"Unit\")\r\n" + " ValueConstant (value=\"i\")\r\n" + " StatementPattern\r\n" + " Variable (name=bind)\r\n" + " Variable (name=p_bind_b1, value=http://rdfs/label)\r\n" + " Variable (name=b1)\r\n" + " StatementPattern\r\n" + " Variable (name=bind)\r\n" + " Variable (name=p_bind_b2, value=http://www.w3.org/1999/02/22-rdf-syntax-ns#type)\r\n" + " Variable (name=b2, value=http://default/Unit)\r\n" + " ExtensionElem (n0)\r\n" + " Variable (name=bind)\r\n" + " StatementPattern\r\n" + " Variable (name=n0)\r\n" + " Variable (name=p_n0_n1, value=http://default/hasProductBatteryLimit)\r\n" + " Variable (name=n1)\r\n" + "", element.pathPatternQuery().toString());
// Query.assertEqualsWOSpaces ("?n0 <http://www.openrdf.org/contrib/lucenesail#matches> [<http://www.openrdf.org/contrib/lucenesail#query> 'Unit'; <http://www.openrdf.org/contrib/lucenesail#property> ?property_0;<http://www.openrdf.org/contrib/lucenesail#score> ?score_0;<http://www.openrdf.org/contrib/lucenesail#snippet> ?snippet_0].?n0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://default/Unit> .\n"
// + "" , element.getLeftPathElement().toSPARQL());
} catch (Exception e) {
assertEquals("", e.getMessage());
}
}
use of com.inova8.pathql.context.RepositoryContext in project com.inova8.intelligentgraph by peterjohnlawrence.
the class PathParser method parsePathPattern.
// @Deprecated
// public static PathElement parsePathPattern(Thing thing, String pathPattern)
// throws RecognitionException, PathPatternException {
// PathPatternVisitor pathPatternVisitor = new PathPatternVisitor(thing);
// PathElement pathElement = pathPatternParser(pathPattern, pathPatternVisitor);
// return pathElement;
// }
// public static PathElement parsePathPattern(String pathPattern)
// throws RecognitionException, PathPatternException {
// PathPatternVisitor pathPatternVisitor = new PathPatternVisitor();
// PathElement pathElement = pathPatternParser(pathPattern, pathPatternVisitor);
// return pathElement;
// }
/**
* Parses the path pattern.
*
* @param repositoryContext the repository context
* @param pathPattern the path pattern
* @return the path element
* @throws RecognitionException the recognition exception
* @throws PathPatternException the path pattern exception
*/
public static PathElement parsePathPattern(RepositoryContext repositoryContext, String pathPattern) throws RecognitionException, PathPatternException {
PathPatternVisitor pathPatternVisitor = new PathPatternVisitor(repositoryContext);
PathElement pathElement = pathPatternParser(pathPattern, pathPatternVisitor);
return pathElement;
}
use of com.inova8.pathql.context.RepositoryContext in project com.inova8.intelligentgraph by peterjohnlawrence.
the class PathPatternTests method test_22.
/**
* Test 22.
*/
@Test
@Order(22)
void test_22() {
try {
PathElement element = PathParser.parsePathPattern(repositoryContext, "^:hasProductBatteryLimit/*");
assertEquals("^<http://default/hasProductBatteryLimit> / *", element.toString());
} catch (Exception e) {
assertEquals("", e.getMessage());
}
}
use of com.inova8.pathql.context.RepositoryContext in project com.inova8.intelligentgraph by peterjohnlawrence.
the class PathPatternTests method test_11.
/**
* Test 11.
*/
@Test
@Order(11)
void test_11() {
try {
String expression = ":Location@:appearsOn[eq id:Calc2Graph2]#";
CharStream input = CharStreams.fromString(expression);
PathPatternLexer lexer = new PathPatternLexer(input);
PathErrorListener errorListener = new PathErrorListener(expression);
lexer.removeErrorListeners();
lexer.addErrorListener(errorListener);
CommonTokenStream tokens = new CommonTokenStream(lexer);
PathPatternParser parser = new PathPatternParser(tokens);
parser.removeErrorListeners();
parser.addErrorListener(errorListener);
PathPatternContext pathPatternTree = parser.pathPattern();
PathPatternVisitor pathPatternVisitor = new PathPatternVisitor(repositoryContext);
PathElement element = pathPatternVisitor.visit(pathPatternTree);
assertEquals("<http://default/Location>@<http://default/appearsOn>[eq <http://id/Calc2Graph2> ]#", element.toString());
} catch (Exception e) {
assertEquals("<http://default/Location>@<http://default/appearsOn>[eq <http://id/Calc2Graph2> ;]#", "");
}
}
use of com.inova8.pathql.context.RepositoryContext in project com.inova8.intelligentgraph by peterjohnlawrence.
the class QueryStringParserTests method prepareElement.
/**
* Prepare element.
*
* @param input the input
* @return the path element
* @throws RecognitionException the recognition exception
*/
private PathElement prepareElement(CharStream input) throws RecognitionException {
PathPatternLexer lexer = new PathPatternLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
PathPatternParser parser = new PathPatternParser(tokens);
// PathPatternContext pathPatternTree = parser.pathPattern();
QueryStringContext queryStringTree = parser.queryString();
PathPatternVisitor pathPatternVisitor = new PathPatternVisitor(repositoryContext);
PathElement element = pathPatternVisitor.visit(queryStringTree);
return element;
}
Aggregations