Skip to contents

Add a triple pattern statement to a query

Usage

spq_add(
  .query = NULL,
  .triple_pattern = NULL,
  .subject = NULL,
  .verb = NULL,
  .object = NULL,
  .prefixes = NULL,
  .required = TRUE,
  .label = NA,
  .within_box = c(NA, NA),
  .within_distance = c(NA, NA),
  .filter = NULL,
  .sibling_triple_pattern = NA
)

Arguments

.query

query

.triple_pattern

the triple pattern statement (replaces arguments subject verb and object)

.subject

an anonymous variable (for instance, and by default, "?subject") or item (for instance "wd:Q456"))

.verb

the property (for instance "wdt:P190")

.object

an anonymous variable (for instance, and by default, "?object") or item (for instance "wd:Q456"))

.prefixes

Custom prefixes

.required

whether the existence of a value for the triple is required or not (defaults to TRUE). If set to FALSE, then other triples in the query are returned even if this particular triple is missing)

.label

[Deprecated] See spq_label().

.within_box

if provided, rectangular bounding box for the triple query. Provided as list(southwest=c(long=...,lat=...),northeast=c(long=...,lat=...))

.within_distance

if provided, circular bounding box for the triple query. Provided as list(center=c(long=...,lat=...), radius=...), with radius in kilometers. The center can also be provided as a variable (for instance, "?location") for the center coordinates to be retrieved directly from the query.

.filter

Filter for the triple. Only use this with .required=FALSE

.sibling_triple_pattern

Triple this triple is to be grouped with, especially (only?) useful if the sibling triple is optional.

Details

The arguments .subject, .verb, .object are most useful for programmatic usage, they are actually used within glitter code itself.

Examples

# find the cities
spq_init() %>%
  spq_add("?city wdt:P31/wdt:P279* wd:Q486972") %>%
  spq_label(city) %>%
  spq_mutate(coords = wdt::P625(city),
          .within_distance=list(center=c(long=4.84,lat=45.76),
                               radius=5)) %>%
  spq_perform()

# find the individuals of the species
spq_init() %>%
  spq_add("?mayor wdt:P31 ?species") %>%
  # dog, cat or chicken
  spq_set(species = c('wd:Q144','wd:Q146', 'wd:Q780')) %>%
  # who occupy the function
  spq_add("?mayor p:P39 ?node") %>%
  # of mayor
  spq_add("?node ps:P39 wd:Q30185") %>%
  # of some places
  spq_add("?node pq:P642 ?place") %>%
  spq_perform()