text2sparql을 할 때, fine-tuning을 하지 않고 성능을 높일 수 있는 방법으로 one-shot 기법을 적용한 SPARQLGEN을 제안하는 논문이다. 이때 one-shot에는 다음 3가지의 정보가 포함된다.
여기서 필자의 포커스는 어떻게 RDF subgraph 효율적으로, 정확한 값을 뽑아낼 수 있는지 이다.
SPARQLGEN은 크게 3가지의 단계로 구성된다.
1번 단계에서는 subgraph에 해당하는 정보와 sample qa 세트를 가져오는 과정이 필요하다. 이때의 subgraph는 다시 세 단계를 통해서 가져온다.
SELECT *
쿼리로 변환하여 해당 쿼리의 모든 변수에 대한 가능한 결과값을 얻는다.SELECT *
에서 얻은 결과값을 사용하여 추출된 triple 내의 변수를 실제값을 대체한다.이 단계를 거치면 해당 질문에 필요한 정보만 포함된 sub graph를 구성할 수 있다.
여기서 말하는 주어진 질문에 대한 정답 SPARQL 쿼리는 어떻게 가져오는 걸까? sampling을 한다고 이해했는데, 단순 sampling이 아니라 질문에 맞는 쿼리를 sampling? 어떻게..? 이해를 못했다
prompt를 구성하는 방식이나 structure는 참고할 수 있을 듯