Я пытаюсь использовать Jena или какую-то другую библиотеку Java для решения некоторых задач кодирования (в данном случае переписывание с помощью обхода после заказа). Я не прошу методологию для перевода SPARQL в SQL-запрос. У меня уже есть это.
В настоящее время я пытаюсь перевести данный запрос SPARQL в другой запрос SQL.
До сих пор я использовал анализатор Jena , который, учитывая запрос SPARQL, возвращает представление дерева ARQ, которое можно просмотреть в пост-порядке. Это именно то, что я хочу сделать.
Единственная проблема в том, что Ходок просто ходит по дереву. То, что я хотел бы сделать, это что-то вроде этого (предположим, я иду через МИНУС):
String visit(OpMinus minus){
String l_res = minus.getLeft().visit();
String r_res = minus.getRight().visit();
/*
... do some stuff with the result ...
*/
String res = l_res + "MINUS (" + r_res + ")";
return res;
}
Посетитель Йены, однако, возвращается пустым, делая это невозможным. Есть ли другой способ сделать это вместо копирования кода Уокера и Посетителя, чтобы заставить его работать так, как я хочу? Спасибо.
Я не ищу прямой переводчик SPARQL-SQL, потому что мне нужно работать с элементами дерева.