Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lvaudor/glitter
an R package which writes SPARQL queries
https://github.com/lvaudor/glitter
rstat sparql
Last synced: 8 days ago
JSON representation
an R package which writes SPARQL queries
- Host: GitHub
- URL: https://github.com/lvaudor/glitter
- Owner: lvaudor
- Created: 2021-05-12T08:48:40.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-07-10T07:18:30.000Z (5 months ago)
- Last Synced: 2024-08-13T07:15:42.378Z (4 months ago)
- Topics: rstat, sparql
- Language: Rez
- Homepage: https://lvaudor.github.io/glitter
- Size: 15.1 MB
- Stars: 43
- Watchers: 1
- Forks: 4
- Open Issues: 53
-
Metadata Files:
- Readme: README.Rmd
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- jimsghstars - lvaudor/glitter - an R package which writes SPARQL queries (Rez)
README
---
output: github_document
---# glitter
> DSL for SPARQL in R. :sparkles: `glitter` produces ~~sparkle~~ SPARQL! :sparkles:
```{r setup, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```[![R-CMD-check](https://github.com/lvaudor/glitter/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/lvaudor/glitter/actions/workflows/R-CMD-check.yaml)
[![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://lifecycle.r-lib.org/articles/stages.html#experimental)
[![Codecov test coverage](https://codecov.io/gh/lvaudor/glitter/branch/master/graph/badge.svg)](https://app.codecov.io/gh/lvaudor/glitter?branch=master)This package aims at writing and sending SPARQL queries without advanced knowledge of the SPARQL language syntax.
It makes the exploration and use of Linked Open Data (Wikidata in particular) easier for those who do not know SPARQL well.With glitter, compared to writing SPARQL queries by hand, your code should be easier to write, and easier to read by your peers who do not know SPARQL.
The glitter package supports a "domain-specific language" (DSL) with function names (and syntax) closer to the tidyverse and base R than to SPARQL.For instance, to find a corpus of 5 articles with a title in English and "wikidata" in that title, instead of writing SPARQL by hand you can run:
```{r}
library("glitter")
query <- spq_init() %>%
spq_add("?item wdt:P31 wd:Q13442814") %>%
spq_label(item) %>%
spq_filter(str_detect(str_to_lower(item_label), 'wikidata')) %>%
spq_head(n = 5)query
```Note how we were able to use `str_detect()` and `str_to_lower()` (as in the stringr package) instead of SPARQL's functions `REGEX` and `LCASE`.
To perform the query,
```{r}
spq_perform(query)
```To get a random subset of movies with the date they were released, you could use
```{r}
spq_init() %>%
spq_add("?film wdt:P31 wd:Q11424") %>%
spq_label(film) %>%
spq_add("?film wdt:P577 ?date") %>%
spq_mutate(date = year(date)) %>%
spq_head(10) %>%
spq_perform()
```Note that we were able to "overwrite" the date variable, which is straightforward in dplyr, but not so much in SPARQL.
## Installation
Install this packages through R-universe:
```r
install.packages("glitter", repos = "https://lvaudor.r-universe.dev")
```Or through GitHub:
```r
install.packages("remotes") #if remotes is not already installed
remotes::install_github("lvaudor/glitter")
```## Documentation
You can access the documentation regarding package `glitter` [on its pkgdown website](http://perso.ens-lyon.fr/lise.vaudor/Rpackages/glitter/).