From f7210c30c2fe979eed6033becc14af9af892b431 Mon Sep 17 00:00:00 2001 From: Andreas Textor Date: Wed, 26 Oct 2016 15:51:52 +0200 Subject: [PATCH] Add layer for Semantic Web formats - Syntax highlighting for N3, Turtle and SPARQL formats - Company mode for SPARQL - Execution of SPARQL queries against SPARQL HTTP endpoint --- layers/+lang/semweb/README.org | 28 ++++++++++++++++++++++++ layers/+lang/semweb/img/semweb.png | Bin 0 -> 4248 bytes layers/+lang/semweb/packages.el | 33 +++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+) create mode 100644 layers/+lang/semweb/README.org create mode 100644 layers/+lang/semweb/img/semweb.png create mode 100644 layers/+lang/semweb/packages.el diff --git a/layers/+lang/semweb/README.org b/layers/+lang/semweb/README.org new file mode 100644 index 000000000..8f58fc217 --- /dev/null +++ b/layers/+lang/semweb/README.org @@ -0,0 +1,28 @@ +#+TITLE: Semantic Web layer + +[[file:img/semweb.png]] + +* Table of Contents :TOC_4_gh:noexport: + - [[#description][Description]] + - [[#install][Install]] + - [[#key-bindings][Key bindings]] + +* Description +This layer adds support for RDF files in N3 and [[https://www.w3.org/TR/turtle/][Turtle syntax]] using [[https://bitbucket.org/nxg/ttl-mode][ttl-mode]] +and for [[https://www.w3.org/TR/sparql11-query/][SPARQL]] queries using [[https://github.com/ljos/sparql-mode][sparql-mode]]. + +SPARQL-mode supports the execution of queries. When first called, you will be +prompted for a SPARQL HTTP endpoint in the minibuffer, which defaults to +http://localhost:2020/. Once set, it will be used for all subsequent queries in +that buffer. Results will be displayed in another buffer in CSV format. + +* Install +To use this configuration layer, add it to your =~/.spacemacs=. You will need to +add =semweb= to the existing =dotspacemacs-configuration-layers= list in this +file. + +* Key bindings + +| Key Binding | Description | +|-------------+-----------------------| +| ~SPC m q~ | Execute SPARQL query | diff --git a/layers/+lang/semweb/img/semweb.png b/layers/+lang/semweb/img/semweb.png new file mode 100644 index 0000000000000000000000000000000000000000..a1600bf22fce982a5aa53e6fae1950cf3dc20c22 GIT binary patch literal 4248 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 M4%ShwSG0-x5As+uegFUf literal 0 HcmV?d00001 diff --git a/layers/+lang/semweb/packages.el b/layers/+lang/semweb/packages.el new file mode 100644 index 000000000..e4e3881ab --- /dev/null +++ b/layers/+lang/semweb/packages.el @@ -0,0 +1,33 @@ +;;; packages.el --- semweb layer packages file for Spacemacs. +;; +;; Copyright (c) 2012-2016 Sylvain Benner & Contributors +;; +;; Author: Andreas Textor +;; URL: https://github.com/syl20bnr/spacemacs +;; +;; This file is not part of GNU Emacs. +;; +;;; License: GPLv3 + +(setq semweb-packages + '( + company + ttl-mode + sparql-mode + )) + +(defun semweb/init-ttl-mode () + (use-package ttl-mode + :mode ("\\.\\(ttl\\|n3\\)\\'" . ttl-mode))) + +(defun semweb/post-init-company () + (add-hook 'sparql-mode-hook 'company-mode)) + +(defun semweb/init-sparql-mode () + (use-package sparql-mode + :mode ("\\.\\(sparql\\|rq\\)\\'" . sparql-mode) + :init (spacemacs/set-leader-keys-for-major-mode 'sparql-mode "q" 'sparql-query-region))) + +(defun semweb/pre-init-org () + (spacemacs|use-package-add-hook org + :post-config (add-to-list 'org-babel-load-languages '(sparql . t))))