Форматер запросов SPARQL

Вопрос или проблема

Иногда код SPARQL появляется в URL, как длинные строки запросов, и тогда это по сути очень длинная однострочная команда, часто закодированная для URL. Или SPARQL содержит множество UNION, которые имеют переносы строк, расположенные в неправильных местах.

Я ищу форматировщик запросов SPARQL.

В идеале, это должен быть расширение VSCode. Однако в настоящее время (декабрь 2020 года) такого расширения в маркетплейсе VSCode не существует.

Я также готов работать с инструментом командной строки (для Linux) или с онлайн-инструментом, где пользователи могут вставить неправильно отформатированный запрос и получить отформатированный запрос.

Отвечая на свой собственный вопрос:

Wikidata имеет форматировщик в Wikidata Query service.
Я могу скопировать текст своего неправильно отформатированного запроса, вставить его в окно Wikidata, и запрос будет отформатирован.

вставьте здесь описание изображения

Однако “символ / значок алмаза” активируется и работает только если запрос синтаксически корректен и если в нем нет неопределенных префиксов.

Это не обязательно должен быть запрос, который служба Wikidata фактически понимает. (Мне не нужно выполнять его с помощью сервиса запросов Wikidata).

форматирование командной строки с помощью wdq

Тот же сервис форматирования Wikidata можно вызвать с помощью инструмента командной строки wdq, который доступен из репозиториев debian/ubuntu (apt info wdq).

С опцией --no-execute этот компактный запрос будет отформатирован и красиво напечатан:

# ввод / shell команда
wdq -tplanet '?planet wdt:P31 wd:Q44559; wdt:P397 ?sun' --no-execute

Вывод

# флаг --no-execute: 
# вывод / отформатированный запрос, с префиксами
PREFIX bd: <http://www.bigdata.com/rdf#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX schema: <http://schema.org/>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wikibase: <http://wikiba.se/ontology#>
SELECT * WHERE {
    ?planet wdt:P31 wd:Q44559 .
    ?planet wdt:P397 ?sun .
    SERVICE wikibase:label {
        bd:serviceParam wikibase:language "en" .
        ?planet rdfs:label ?planetLabel .
        ?planet schema:description ?planetDescription .
    }
}

Недавний онлайн-инструмент — это форматированный SPARQL 1.1, который довольно прост в использовании.

https://sparql-formatter.dbcls.jp/

Ответ или решение

Форматирование запросов SPARQL: Полное руководство

Запросы SPARQL часто встречаются в виде длинных строк, особенно в URL, где они могут быть закодированы и нечитабельны. Такая ситуация затрудняет работу с кодом, особенно когда запросы содержат множество операторов UNION или неуместные переносы строк. В этой статье мы рассмотрим доступные инструменты для форматирования запросов SPARQL, которые помогут вам улучшить читаемость и структуру вашего кода.

1. Использование сервиса форматирования запросов Викиданных

Викиданные предлагают встроенный инструмент форматирования в Викиданном сервисе запросов. Вы можете просто скопировать свой неструктурированный текст запроса, вставить его в окно сервиса, и если запрос синтаксически корректен, он будет автоматически отформатирован.

Важно отметить, что для успешного форматирования запрос должен не только быть валидным, но и не должен содержать неопределённых префиксов. Это позволяет не только структурыировать запрос, но и предлагает возможность визуального представления данных. Вы не обязаны выполнять запрос через Викиданный сервис — достаточно синтаксической корректности.

Пример:

Когда вы вводите запрос, подобный следующему:

?planet wdt:P31 wd:Q44559; wdt:P397 ?sun

Сервис преобразует его в следующий формат:

PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>

SELECT * WHERE {
    ?planet wdt:P31 wd:Q44559 .
    ?planet wdt:P397 ?sun .
}

2. Командная строка с использованием wdq

Для пользователей Linux доступен инструмент командной строки wdq, который можно найти в репозиториях для Debian/Ubuntu. С помощью флага --no-execute вы можете форматировать ваши запросы прямо через командную строку.

Пример использования:
wdq -tplanet '?planet wdt:P31 wd:Q44559; wdt:P397 ?sun' --no-execute

Выходная строка будет выглядеть так:

PREFIX bd: <http://www.bigdata.com/rdf#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX schema: <http://schema.org/>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>

SELECT * WHERE {
    ?planet wdt:P31 wd:Q44559 .
    ?planet wdt:P397 ?sun .
}

3. Онлайн-инструменты для форматирования

Недавно был создан онлайн-инструмент для форматирования SPARQL, который также заслуживает внимания. Он позволяет пользователям вставить неструктурированный запрос и получить его в форматированном виде. Это просто и удобно, особенно если у вас нет возможности установить сторонние инструменты.

Заключение

Форматирование запросов SPARQL — важный шаг для повышения читаемости и структурированности вашего кода. Инструменты, такие как сервис форматирования Викиданных, командный инструмент wdq и онлайн-форматтер, предлагают эффективные решения для этой задачи. Используя эти инструменты, вы сможете значительно упростить вашу работу с SPARQL и позволить своим запросам быть более понятными и структурированными.

Эти подходы не только экономят время, но и позволяют улучшить качество работы с данными, будучи полезными как новичкам, так и опытным разработчикам.

Оцените материал
Добавить комментарий

Капча загружается...