rdf4j как преобразовать tuples в json

124
02 сентября 2019, 18:30

Проблема следующая: При парсинге sparql запроса я получаю упрощённое ast и мне нужно его передать в стороннюю библиотеку для дальнейшей обработки, но функционал из коробки(rdf4j) не позволяет передать ast в машиночитаемом формате, только текс, хотелось бы получить в формате json.

        StringBuilder qb = new StringBuilder();
        qb.append("    PREFIX has_vaccine_allergen: <http://purl.obolibrary.org/obo/VO_0000531>\n" +
                "    PREFIX chicken_egg_protein_allergen: <http://purl.obolibrary.org/obo/VO_0000912>   \n" +
                "    SELECT distinct ?vaccine_label ?vaccine \n" +
                "    FROM <http://purl.obolibrary.org/obo/merged/VO>\n" +
                "    WHERE {\n" +
                "        ?vaccine rdfs:label ?vaccine_label .\n" +
                "        ?vaccine rdfs:subClassOf ?vaccine_restriction .\n" +
                "        ?vaccine_restriction owl:onProperty has_vaccine_allergen:; owl:someValuesFrom chicken_egg_protein_allergen: .\n" +
                "\t}");
        SPARQLParser parser = new SPARQLParser();
        ParsedTupleQuery q = (ParsedTupleQuery)parser.parseQuery(qb.toString(), null);
        TupleExpr te = q.getTupleExpr();
        System.out.println(te);

Результат выполнения кода:

SelectQuery
[PrefixDecl (prefix=has_vaccine_allergen), PrefixDecl (prefix=chicken_egg_protein_allergen), SelectQuery]
Distinct
   Projection
      ProjectionElemList
         ProjectionElem "vaccine_label"
         ProjectionElem "vaccine"
      Join
         Join
            Join
               StatementPattern
                  Var (name=vaccine)
                  Var (name=_const_9285ccfc_uri, value=http://www.w3.org/2000/01/rdf-schema#label, anonymous)
                  Var (name=vaccine_label)
               StatementPattern
                  Var (name=vaccine)
                  Var (name=_const_4592be07_uri, value=http://www.w3.org/2000/01/rdf-schema#subClassOf, anonymous)
                  Var (name=vaccine_restriction)
            StatementPattern
               Var (name=vaccine_restriction)
               Var (name=_const_a509c4e0_uri, value=http://www.w3.org/2002/07/owl#onProperty, anonymous)
               Var (name=_const_3319983d_uri, value=http://purl.obolibrary.org/obo/VO_0000531, anonymous)
         StatementPattern
            Var (name=vaccine_restriction)
            Var (name=_const_6539d60c_uri, value=http://www.w3.org/2002/07/owl#someValuesFrom, anonymous)
            Var (name=_const_3319a704_uri, value=http://purl.obolibrary.org/obo/VO_0000912, anonymous)
READ ALSO
Проблема в авторизации яндекс диск с помощью retrofit2

Проблема в авторизации яндекс диск с помощью retrofit2

Изучаю Retrofit2, пытаюсь получить токен Yandex disk, в документации яндекса написано, чтобы получить токен необходимо для начала подтвердить разрешения...

113
Адаптивные ImageView в Android

Адаптивные ImageView в Android

В разметке активити есть область, в которой должны поместиться изображения(от 1 до 10)Соответственно они должны заполнять всю эту область...

114
Размеры элементов для разных экранов

Размеры элементов для разных экранов

Заметил что с размерами экрана на телефонах творится что-то непонятноеРешил проверить - создал 3 блока шириной 1080px, 967px(подобрал для своего...

107
Чем зашифрован этот js?

Чем зашифрован этот js?

Вот такой код попал ко мне в руки, и я не пойму, во-первых, что это, во-вторых, как превратить это в понятный вид:

116