Как я могу получить все объекты, используемые в запросе SPARQL-DL? - PullRequest
2 голосов
/ 04 марта 2020

В настоящее время я работаю над проектом, в котором мне нужно графически представить запрос SPARQL-DL. Для этого мне нужно получить все объекты, используемые в запросе (в конце концов, все объекты, используемые в запросе, и результаты запроса). Я борюсь с получением всех сущностей запроса. Есть ли простой способ получить все атомы запроса?

Я использую библиотеку OWL-API 4.2.8 с последней SPARQL-DL-API . Я использую файл Example_Basic.java, чтобы попробовать мой метод.

Вот запрос, который я использовал в качестве примера (он дает мне все вина, которые находятся в Новой Зеландии):

PREFIX wine: <http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#>
SELECT ?wine 
WHERE { 
    PropertyValue(?wine, wine:locatedIn, wine:NewZealandRegion)    
}

метод, который я использую:

extractAllQueryEntities(QueryResult result) {
        List<QueryAtomGroup> queryAtomGroups = result.getQuery().getAtomGroups();
        for (QueryAtomGroup queryAtomGroup : queryAtomGroups) {
            List<QueryAtom> atoms = queryAtomGroup.getAtoms();
            System.out.println("Size of the atoms: " + atoms.size());

            Iterator<QueryAtom> queryAtom = atoms.iterator();
            while (queryAtom.hasNext()) {
                QueryAtom element = queryAtom.next();
                System.out.println("atom: " + element);
                List<QueryArgument> arguments = element.getArguments();

                for (QueryArgument argument : arguments) {
                    System.out.println("type: " + argument.getType() + " : value: " + argument.getValueAsString());
                }
            }
        }
    }

и вот результат, который я получаю из моего метода:

    Results:
    .
    .
    .
    some wines
    .
    . 
    .
    Size of the atoms: 1
    atom: PropertyValue(?de.derivo.sparqldlapi.Var@37b009, http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#locatedIn, http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#NewZealandRegion)
        type: VAR : value: wine
        type: URI : value: http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#locatedIn
        type: URI : value: http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#NewZealandRegion
...