From 4fb0be2a573e50a6f4b8a6723839e791f3ba6aea Mon Sep 17 00:00:00 2001 From: lvaudor Date: Fri, 20 Oct 2023 12:19:36 +0200 Subject: [PATCH 1/2] implicit prefixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update R/spq_perform.R Co-authored-by: Maëlle Salmon Update R/spq_perform.R Co-authored-by: Maëlle Salmon Update R/spq_perform.R Co-authored-by: Maëlle Salmon Update R/spq_perform.R Co-authored-by: Maëlle Salmon Update R/spq_perform.R Co-authored-by: Maëlle Salmon Update R/spq_perform.R Co-authored-by: Maëlle Salmon Update tests/testthat/test-spq_perform.R Co-authored-by: Maëlle Salmon Update tests/testthat/test-spq_perform.R Co-authored-by: Maëlle Salmon Update tests/testthat/test-spq_perform.R Co-authored-by: Maëlle Salmon Update tests/testthat/test-spq_perform.R Co-authored-by: Maëlle Salmon update tests uncomment test --- R/spq_perform.R | 11 +- data-raw/usual_prefixes.csv | 14 +- data/usual_prefixes.rda | Bin 869 -> 867 bytes tests/testthat/_snaps/build_parts.md | 2 + tests/testthat/_snaps/send_sparql.md | 10 + tests/testthat/_snaps/sparql-protection.md | 5 +- tests/testthat/_snaps/spq_add.md | 4 +- tests/testthat/_snaps/spq_assemble.md | 9 +- tests/testthat/_snaps/spq_control_request.md | 25 +- tests/testthat/_snaps/spq_filter.md | 4 + tests/testthat/_snaps/spq_init.md | 7 +- tests/testthat/_snaps/spq_label.md | 19 + tests/testthat/_snaps/spq_language.md | 3 +- tests/testthat/_snaps/spq_mutate.md | 7 +- tests/testthat/_snaps/spq_offset.md | 3 + tests/testthat/_snaps/spq_select.md | 10 +- tests/testthat/_snaps/spq_summarise.md | 20 +- tests/testthat/_snaps/spq_tally.md | 8 + tests/testthat/_snaps/treat-argument.md | 8 +- tests/testthat/_snaps/utils-str.md | 5 +- .../auteurs/data.bnf.fr/sparql-754d02-POST.R | 299 +++++----- .../data.bnf.fr/sparql-629846-POST.R | 475 ++++++++------- .../bowie/dbpedia.org/sparql-f06a60-POST.R | 6 +- .../query.wikidata.org/sparql-da96e9-POST.R | 111 ---- .../query.wikidata.org/sparql-dfaf1d-POST.R | 108 ++++ ...rql-c96866-POST.R => sparql-87c230-POST.R} | 12 +- .../sparql-899626-POST.R | 2 +- .../sparql-4c12e7-POST.R | 2 +- .../query.wikidata.org/sparql-5bb7a1-POST.R | 543 ++++++++++++++++++ tests/testthat/test-send_sparql.R | 1 - tests/testthat/test-spq_perform.R | 12 + 31 files changed, 1182 insertions(+), 563 deletions(-) delete mode 100644 tests/testthat/fixtures/coords/query.wikidata.org/sparql-da96e9-POST.R create mode 100644 tests/testthat/fixtures/coords/query.wikidata.org/sparql-dfaf1d-POST.R rename tests/testthat/fixtures/labels/query.wikidata.org/{sparql-c96866-POST.R => sparql-87c230-POST.R} (92%) create mode 100644 tests/testthat/fixtures/wikidata_prefixes/query.wikidata.org/sparql-5bb7a1-POST.R diff --git a/R/spq_perform.R b/R/spq_perform.R index c22c61fb..fd5529c0 100644 --- a/R/spq_perform.R +++ b/R/spq_perform.R @@ -79,8 +79,17 @@ spq_perform = function(.query, ) if (replace_prefixes) { + endpoint_url = .query[["endpoint_info"]][["endpoint_url"]] + endpoint_is_usual <- (endpoint_url %in% usual_endpoints$url) + if (endpoint_is_usual) { + endpoint_name = usual_endpoints[["name"]][usual_endpoints[["url"]] == endpoint_url] + prefixes = usual_prefixes[["name"]][usual_prefixes[["type"]] == endpoint_name] + } else { + prefixes = NULL + } + prefixes = c(prefixes, .query[["prefixes_used"]]) results = purrr::reduce( - .query[["prefixes_used"]], + prefixes, \(results, x) replace_prefix(x, results, .query = .query), .init = results ) diff --git a/data-raw/usual_prefixes.csv b/data-raw/usual_prefixes.csv index b365b68f..8241a941 100644 --- a/data-raw/usual_prefixes.csv +++ b/data-raw/usual_prefixes.csv @@ -1,11 +1,11 @@ type,name,url -Wikidata,wd,http://www.wikidata.org/entity/ -Wikidata,wdt,http://www.wikidata.org/prop/direct/ -Wikidata,ps,http://www.wikidata.org/prop/statement/ -Wikidata,psv,http://www.wikidata.org/prop/statement/value/ -Wikidata,pq,http://www.wikidata.org/prop/qualifier/ -Wikidata,p,http://www.wikidata.org/prop/ -Wikidata,wikibase,http://wikiba.se/ontology# +wikidata,wd,http://www.wikidata.org/entity/ +wikidata,wdt,http://www.wikidata.org/prop/direct/ +wikidata,ps,http://www.wikidata.org/prop/statement/ +wikidata,psv,http://www.wikidata.org/prop/statement/value/ +wikidata,pq,http://www.wikidata.org/prop/qualifier/ +wikidata,p,http://www.wikidata.org/prop/ +wikidata,wikibase,http://wikiba.se/ontology# dbpedia,dbo,http://dbpedia.org/ontology/ generic,foaf,http://xmlns.com/foaf/0.1/ generic,rdfs,http://www.w3.org/2000/01/rdf-schema# diff --git a/data/usual_prefixes.rda b/data/usual_prefixes.rda index b2ab789fe6d5688acebdbe5684a0addbed696319..ca26d91bd820446bbdbd106fbfc411ea0a1daf7f 100644 GIT binary patch delta 853 zcmV-b1FHPx2IB?}LRx4!F+o`-Q&}#~!M~9X9e+MsJ8tW1Haejx1q9kO)YCzxnKWd{ zwF5u_pvVCAG-h9C_XjSLZx0V0HG6Ct5BJwfUK00000(?HM$Ore%ZwP^sl zfPadQ&G$Zk^cBqqf92camVAzKhZ889ORQ%I$H+`8D z#6+Befe`~nEV5j7py`S{lLoF~k+oHg2*Zs6!C2KO^o7hIOf?u73Pi*tkW~erlP!Xz z%xtZ}wkF#(Ad^TG(h!bp=&pI$lPA%2bB|v5$CyhbB=>6HrB;3eT!MvX}`4Xh`CSh3HRyK*r~AVozS1@X4KF05Dy9@644!wgUI*av7gQ+Y3rJ23syg$qNNmPjW37 z0SVkJD#oCSD?phIBp`6>f>F#go_`1^r-rlQC#SQVGkwX%Q7~n6N%@4qm#}g$wA3IDOGY zCl@3rziVsxi9lxZSmt zq#6in@8Lm6Ty0S%lz`YFb3Q~YaSajtKGkHDPyI7)WB9+@VCO+7#WGynhq0BB@rX^;UTLKQusPt`JL1Jh9T8&T?QO$Vq3fY3A#P|>6H zLz*;bX@mnz38sKD8W?~yVl*&DKm?K#B-04Q4O2&?01X)ing)P014fM=lHj^&wP^u{ zfqx~Ar9~hIWC;sfKi86A-_~z@Q8NUSAs?+gQ@oQAM-XngBk4o>!CQI#|z^46FsSzi>PSLf8u#P3F%Vl9J6UpsM~elwp*)H zV`Z)zVr{Zqz)4n+gwT*SG%DdF_5^@tNq>_91aa`V5qO~Fg6i^|&Kk-gV0Y~mD`52; zfSQwzE6xE$v)XkuI^wWh4i0_MdZ02O{ltR0IOTvqA{8gga)Ias*!P1)86p9gz}|`E znqmQ83q>rh3Qr9SEZMH7iJ&elLxHi6goPPrB!DC^L&rm&KM9@^01;?~23>Ge%72}b zuJ1_+nI^HxKpiaeZzkgxRAPpV@`;tIWn<$D*!5EIn#`kC98i!_IPJSxQN3&xnV(Gx z9g=Y;4||P^W}?vcq&|;c#MXFc*CD^a|?S( zD$N{`n5~GEiD&ERBwPg|R0B&!?Cq5ll;DF*U|geTy)>1oiw&#ntdinq3x75z;(K29 zE6)Q^}I19DSAAj5g5Q_4SVsGtRCT&^Lz_ihYG%M3%Y!p594hH!9T zoWaW|+k=TJD4ppA0$WLx1?6yB-3G2<^1?3Z5=_A;kl&qIUfp|G%(F9PG(TjliFGvV zx}9udNG~0qe#wZ1CbaTNKtK!xE}(^V#0q&U(L~l3^J-YKW>p1GFKG3UwF_M{8*mgz hp+O4D9W09Wt-+6HAdbLDXOI7jxgwk>NK@%(*MPE4bGrZl diff --git a/tests/testthat/_snaps/build_parts.md b/tests/testthat/_snaps/build_parts.md index 609efa38..6091b90b 100644 --- a/tests/testthat/_snaps/build_parts.md +++ b/tests/testthat/_snaps/build_parts.md @@ -5,6 +5,8 @@ spq_mutate(coords = wdt::P625(city), .within_distance = list(center = c(long = 4.84, lat = 45.76), radius = 5)) Output + PREFIX wd: + PREFIX wdt: PREFIX rdfs: SELECT ?city (COALESCE(?city_labell,'') AS ?city_label) ?coords WHERE { diff --git a/tests/testthat/_snaps/send_sparql.md b/tests/testthat/_snaps/send_sparql.md index 68a42b5c..591866a1 100644 --- a/tests/testthat/_snaps/send_sparql.md +++ b/tests/testthat/_snaps/send_sparql.md @@ -14,22 +14,32 @@ The `user_agent` argument of `spq_perform()` is deprecated as of glitter 0.3.0. i Please use the `user_agent` argument of `spq_request_control()` instead. i Parameters controlling how the request is made have to be passed to `spq_init()`'s `request_control` argument. + i The deprecated feature was likely used in the glitter package. + Please report the issue at . Warning: The `max_tries` argument of `spq_perform()` is deprecated as of glitter 0.3.0. i Please use the `max_tries` argument of `spq_request_control()` instead. i Parameters controlling how the request is made have to be passed to `spq_init()`'s `request_control` argument. + i The deprecated feature was likely used in the glitter package. + Please report the issue at . Warning: The `max_seconds` argument of `spq_perform()` is deprecated as of glitter 0.3.0. i Please use the `max_seconds` argument of `spq_request_control()` instead. i Parameters controlling how the request is made have to be passed to `spq_init()`'s `request_control` argument. + i The deprecated feature was likely used in the glitter package. + Please report the issue at . Warning: The `timeout` argument of `spq_perform()` is deprecated as of glitter 0.3.0. i Please use the `timeout` argument of `spq_request_control()` instead. i Parameters controlling how the request is made have to be passed to `spq_init()`'s `request_control` argument. + i The deprecated feature was likely used in the glitter package. + Please report the issue at . Warning: The `request_type` argument of `spq_perform()` is deprecated as of glitter 0.3.0. i Please use the `request_type` argument of `spq_request_control()` instead. i Parameters controlling how the request is made have to be passed to `spq_init()`'s `request_control` argument. + i The deprecated feature was likely used in the glitter package. + Please report the issue at . Code req$method Output diff --git a/tests/testthat/_snaps/sparql-protection.md b/tests/testthat/_snaps/sparql-protection.md index 19c24910..64af1368 100644 --- a/tests/testthat/_snaps/sparql-protection.md +++ b/tests/testthat/_snaps/sparql-protection.md @@ -9,7 +9,6 @@ Code spq(1) - Condition - Error in `c_character()`: - ! Character input expected + Error + Character input expected diff --git a/tests/testthat/_snaps/spq_add.md b/tests/testthat/_snaps/spq_add.md index 31684c8b..0eda6a3a 100644 --- a/tests/testthat/_snaps/spq_add.md +++ b/tests/testthat/_snaps/spq_add.md @@ -3,7 +3,7 @@ Code spq_init() %>% spq_add(spq("?software p:P348/pq:P577 ?date")) Output - + PREFIX p: SELECT ?date ?software WHERE { @@ -17,7 +17,7 @@ Code spq_init() %>% spq_add(spq("?software pq:P577 ?date.")) Output - + PREFIX pq: SELECT ?date ?software WHERE { diff --git a/tests/testthat/_snaps/spq_assemble.md b/tests/testthat/_snaps/spq_assemble.md index e0d3bfed..d4642e83 100644 --- a/tests/testthat/_snaps/spq_assemble.md +++ b/tests/testthat/_snaps/spq_assemble.md @@ -6,6 +6,8 @@ spq_summarise(subject_label_concat = str_c(subject_label, sep = "; ")) %>% spq_head(10) Output + PREFIX wd: + PREFIX wdt: PREFIX rdfs: SELECT ?film (GROUP_CONCAT(?subject_label;SEPARATOR="; ") AS ?subject_label_concat) WHERE { @@ -30,6 +32,8 @@ 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) Output + PREFIX wd: + PREFIX wdt: PREFIX rdfs: SELECT ?item (COALESCE(?item_labell,'') AS ?item_label) WHERE { @@ -50,9 +54,8 @@ Code spq_init() %>% spq_filter(lang(itemTitleLOOKTYPO) == "en") %>% spq_assemble() - Condition - Error in `spq_assemble()`: - ! Can't filter on undefined variables: ?itemTitleLOOKTYPO + Error + Can't filter on undefined variables: ?itemTitleLOOKTYPO i You haven't mentioned them in any triple, VALUES, mutate. # spq_assemble() called from printing isn't strict diff --git a/tests/testthat/_snaps/spq_control_request.md b/tests/testthat/_snaps/spq_control_request.md index 9f3b5dfa..bc6d6e7a 100644 --- a/tests/testthat/_snaps/spq_control_request.md +++ b/tests/testthat/_snaps/spq_control_request.md @@ -2,42 +2,37 @@ Code spq_control_request(timeout = "ahahah") - Condition - Error in `spq_control_request()`: - ! Must provide an integer as `timeout`. + Error + Must provide an integer as `timeout`. i You provided a "character". --- Code spq_control_request(max_tries = "ahahah") - Condition - Error in `spq_control_request()`: - ! Must provide an integer as `max_tries`. + Error + Must provide an integer as `max_tries`. i You provided a "character". --- Code spq_control_request(max_seconds = "ahahah") - Condition - Error in `spq_control_request()`: - ! Must provide an integer as `max_seconds`. + Error + Must provide an integer as `max_seconds`. i You provided a "character". --- Code spq_control_request(request_type = "ahahah") - Condition - Error in `spq_control_request()`: - ! `request_type` must be one of "url" or "body-form", not "ahahah". + Error + `request_type` must be one of "url" or "body-form", not "ahahah". --- Code spq_control_request(user_agent = 42) - Condition - Error in `spq_control_request()`: - ! Must provide a character as `user_agent`. + Error + Must provide a character as `user_agent`. diff --git a/tests/testthat/_snaps/spq_filter.md b/tests/testthat/_snaps/spq_filter.md index 245f47f6..2b668897 100644 --- a/tests/testthat/_snaps/spq_filter.md +++ b/tests/testthat/_snaps/spq_filter.md @@ -6,6 +6,8 @@ "CONTAINS(LCASE(?itemTitle),'wikidata')")) %>% spq_filter(spq( "LANG(?itemTitle)='en'")) Output + PREFIX wd: + PREFIX wdt: PREFIX rdfs: SELECT ?item ?itemTitle WHERE { @@ -24,6 +26,8 @@ "?item rdfs:label ?itemTitle") %>% spq_filter(str_detect(str_to_lower( itemTitle), "wikidata")) %>% spq_filter(lang(itemTitle) == "en") Output + PREFIX wd: + PREFIX wdt: PREFIX rdfs: SELECT ?item ?itemTitle WHERE { diff --git a/tests/testthat/_snaps/spq_init.md b/tests/testthat/_snaps/spq_init.md index c1621c6f..f8d03d0b 100644 --- a/tests/testthat/_snaps/spq_init.md +++ b/tests/testthat/_snaps/spq_init.md @@ -5,6 +5,8 @@ narrative_location = wdt::P840(film)) %>% spq_label(film, narrative_location) %>% spq_count(narrative_location_label, sort = TRUE, name = "n_films") Output + PREFIX wd: + PREFIX wdt: PREFIX rdfs: SELECT ?narrative_location_label (COUNT(*) AS ?n_films) WHERE { @@ -31,7 +33,6 @@ Code spq_init(request_control = list(max_tries = 1L)) - Condition - Error in `spq_init()`: - ! `request_control` must be created by `spq_control_request()`. + Error + `request_control` must be created by `spq_control_request()`. diff --git a/tests/testthat/_snaps/spq_label.md b/tests/testthat/_snaps/spq_label.md index 520076c1..57576720 100644 --- a/tests/testthat/_snaps/spq_label.md +++ b/tests/testthat/_snaps/spq_label.md @@ -6,6 +6,11 @@ spq_add("?node ps:P39 wd:Q30185") %>% spq_add("?node pq:P642 ?place") %>% spq_label(mayor, place, .languages = "en$") Output + PREFIX wd: + PREFIX wdt: + PREFIX ps: + PREFIX pq: + PREFIX p: PREFIX rdfs: SELECT ?mayor (COALESCE(?mayor_labell,'') AS ?mayor_label) ?node ?place (COALESCE(?place_labell,'') AS ?place_label) ?species WHERE { @@ -37,6 +42,11 @@ spq_add("?node ps:P39 wd:Q30185") %>% spq_add("?node pq:P642 ?place") %>% spq_label(mayor, place, .languages = c("fr", "en")) Output + PREFIX wd: + PREFIX wdt: + PREFIX ps: + PREFIX pq: + PREFIX p: PREFIX rdfs: SELECT ?mayor (COALESCE(?mayor_labell,'') AS ?mayor_label) (lang(?mayor_labell) AS ?mayor_label_lang) ?node ?place (COALESCE(?place_labell,'') AS ?place_label) (lang(?place_labell) AS ?place_label_lang) ?species WHERE { @@ -92,6 +102,11 @@ spq_add("?node ps:P39 wd:Q30185") %>% spq_add("?node pq:P642 ?place") %>% spq_label(mayor, place, .languages = "en$", .overwrite = TRUE) Output + PREFIX wd: + PREFIX wdt: + PREFIX ps: + PREFIX pq: + PREFIX p: PREFIX rdfs: SELECT ?node ?species (COALESCE(?mayor_labell,'') AS ?mayor) (COALESCE(?place_labell,'') AS ?place) WHERE { @@ -146,6 +161,8 @@ spq_add("?film wdt:P577 ?date") %>% spq_label(film, loc, subject) %>% spq_head(10) Output + PREFIX wd: + PREFIX wdt: PREFIX rdfs: SELECT ?coords ?date ?film (COALESCE(?film_labell,'') AS ?film_label) ?image ?loc (COALESCE(?loc_labell,'') AS ?loc_label) ?subject (COALESCE(?subject_labell,'') AS ?subject_label) WHERE { @@ -188,6 +205,8 @@ spq_add("?film wdt:P577 ?date") %>% spq_label(film, loc, subject, .required = TRUE) %>% spq_head(10) Output + PREFIX wd: + PREFIX wdt: PREFIX rdfs: SELECT ?coords ?date ?film (COALESCE(?film_labell,'') AS ?film_label) ?image ?loc (COALESCE(?loc_labell,'') AS ?loc_label) ?subject (COALESCE(?subject_labell,'') AS ?subject_label) WHERE { diff --git a/tests/testthat/_snaps/spq_language.md b/tests/testthat/_snaps/spq_language.md index f8a87ca0..658b1228 100644 --- a/tests/testthat/_snaps/spq_language.md +++ b/tests/testthat/_snaps/spq_language.md @@ -2,8 +2,7 @@ Code spq_init() %>% spq_language("en") - Condition - Warning: + Warning `spq_language()` was deprecated in glitter 0.2.0. i Please use `spq_label()` instead. i See the `.languages` argument diff --git a/tests/testthat/_snaps/spq_mutate.md b/tests/testthat/_snaps/spq_mutate.md index 96b870c4..b9cf16b1 100644 --- a/tests/testthat/_snaps/spq_mutate.md +++ b/tests/testthat/_snaps/spq_mutate.md @@ -4,7 +4,8 @@ spq_init() %>% spq_mutate(statement = wdt::P1843(wd::Q331676)) %>% spq_mutate( lang = lang(statement)) Output - + PREFIX wd: + PREFIX wdt: SELECT ?statement (lang(?statement) AS ?lang) WHERE { @@ -20,6 +21,8 @@ spq_add("?film wdt:P577 ?date") %>% spq_mutate(date = year(date)) %>% spq_head(10) Output + PREFIX wd: + PREFIX wdt: PREFIX rdfs: SELECT ?film (COALESCE(?film_labell,'') AS ?film_label) (YEAR(?date0) AS ?date) WHERE { @@ -43,6 +46,8 @@ spq_add("?film wdt:P577 ?date") %>% spq_mutate(date = year(date)) %>% spq_mutate(date = date - 2000) Output + PREFIX wd: + PREFIX wdt: PREFIX rdfs: SELECT ?film (COALESCE(?film_labell,'') AS ?film_label) (?date0-2000 AS ?date) WHERE { diff --git a/tests/testthat/_snaps/spq_offset.md b/tests/testthat/_snaps/spq_offset.md index 1036fc44..6a1365bf 100644 --- a/tests/testthat/_snaps/spq_offset.md +++ b/tests/testthat/_snaps/spq_offset.md @@ -6,6 +6,9 @@ "?item wikibase:sitelinks ?linkcount") %>% spq_arrange(desc(linkcount)) %>% spq_head(42) %>% spq_offset(11) Output + PREFIX wd: + PREFIX wdt: + PREFIX wikibase: PREFIX rdfs: SELECT ?item (COALESCE(?item_labell,'') AS ?item_label) ?linkcount WHERE { diff --git a/tests/testthat/_snaps/spq_select.md b/tests/testthat/_snaps/spq_select.md index 2c7a9aee..fb863f4c 100644 --- a/tests/testthat/_snaps/spq_select.md +++ b/tests/testthat/_snaps/spq_select.md @@ -158,9 +158,8 @@ spq_init() %>% spq_add("?station wdt:P16 wd:Q1552") %>% spq_add( "?station wdt:P31 wd:Q928830") %>% spq_add("?station wdt:P625 ?coords") %>% spq_select(station_label, blop) - Condition - Error in `check_variables_present()`: - ! Can't use `spq_select()` on absent variables: ?station_label, ?blop. + Error + Can't use `spq_select()` on absent variables: ?station_label, ?blop. i Did you forget a call to `spq_add()`, `spq_mutate()` or `spq_label()`? --- @@ -169,8 +168,7 @@ spq_init() %>% spq_add("?station wdt:P16 wd:Q1552") %>% spq_add( "?station wdt:P31 wd:Q928830") %>% spq_add("?station wdt:P625 ?coords") %>% spq_label(station) %>% spq_select(station_label, blop) - Condition - Error in `check_variables_present()`: - ! Can't use `spq_select()` on absent variables: ?blop. + Error + Can't use `spq_select()` on absent variables: ?blop. i Did you forget a call to `spq_add()`, `spq_mutate()` or `spq_label()`? diff --git a/tests/testthat/_snaps/spq_summarise.md b/tests/testthat/_snaps/spq_summarise.md index e277ebff..2dccb37b 100644 --- a/tests/testthat/_snaps/spq_summarise.md +++ b/tests/testthat/_snaps/spq_summarise.md @@ -6,6 +6,8 @@ spq_label(area) %>% spq_add("?area wdt:P527 ?item") %>% spq_group_by(area, area_label) %>% spq_summarise(total_folkm = sum(folkm_ngd)) Output + PREFIX wd: + PREFIX wdt: PREFIX rdfs: SELECT ?area ?area_label (SUM(?folkm_ngd) AS ?total_folkm) WHERE { @@ -31,6 +33,8 @@ spq_init() %>% spq_add("?film wdt:P31 wd:Q11424") %>% spq_add( "?film wdt:P840 ?loc") %>% spq_label(film, loc) %>% spq_summarise(n_films = n()) Output + PREFIX wd: + PREFIX wdt: PREFIX rdfs: SELECT (COUNT(*) AS ?n_films) WHERE { @@ -58,6 +62,8 @@ "?film wdt:P840 ?loc") %>% spq_label(film, loc) %>% spq_group_by(loc) %>% spq_summarise(n_films = n()) Output + PREFIX wd: + PREFIX wdt: PREFIX rdfs: SELECT ?loc (COUNT(*) AS ?n_films) WHERE { @@ -87,7 +93,8 @@ year) %>% spq_summarise(n_films = n(), one_film = sample(film)) %>% spq_head( 10) Output - + PREFIX wd: + PREFIX wdt: SELECT ?year (COUNT(*) AS ?n_films) (SAMPLE(?film) AS ?one_film) WHERE { @@ -106,7 +113,8 @@ spq_init() %>% spq_add("?film wdt:P31 wd:Q11424") %>% spq_add( "?film wdt:P840 ?loc") %>% spq_summarise(n_films = n()) Output - + PREFIX wd: + PREFIX wdt: SELECT (COUNT(*) AS ?n_films) WHERE { @@ -124,6 +132,8 @@ spq_label(area) %>% spq_add("?area wdt:P527 ?item") %>% spq_group_by(area, area_label) %>% spq_summarise(folkm_ngd = sum(folkm_ngd)) Output + PREFIX wd: + PREFIX wdt: PREFIX rdfs: SELECT ?area ?area_label (SUM(?folkm_ngd0) AS ?folkm_ngd) WHERE { @@ -151,7 +161,8 @@ year = year(date)) %>% spq_mutate(year = min(year)) %>% spq_group_by(loc, year) %>% spq_summarize(n_films = n()) Output - + PREFIX wd: + PREFIX wdt: SELECT ?loc ?year (COUNT(*) AS ?n_films) WHERE { @@ -172,7 +183,8 @@ "?film wdt:P577 ?date") %>% spq_mutate(year = year(date)) %>% spq_group_by( filmLabel, loc) %>% spq_summarise(year = min(year)) Output - + PREFIX wd: + PREFIX wdt: SELECT (MIN(?year0) AS ?year) WHERE { diff --git a/tests/testthat/_snaps/spq_tally.md b/tests/testthat/_snaps/spq_tally.md index d864f734..8cbe5ca7 100644 --- a/tests/testthat/_snaps/spq_tally.md +++ b/tests/testthat/_snaps/spq_tally.md @@ -5,6 +5,8 @@ narrative_location = wdt::P840(film)) %>% spq_label(narrative_location) %>% spq_tally() Output + PREFIX wd: + PREFIX wdt: PREFIX rdfs: SELECT (COUNT(*) AS ?n) WHERE { @@ -27,6 +29,8 @@ narrative_location = wdt::P840(film)) %>% spq_label(narrative_location) %>% spq_group_by(narrative_location_label) %>% spq_tally(sort = TRUE, name = "n_films") Output + PREFIX wd: + PREFIX wdt: PREFIX rdfs: SELECT ?narrative_location_label (COUNT(*) AS ?n_films) WHERE { @@ -51,6 +55,8 @@ narrative_location = wdt::P840(film)) %>% spq_label(narrative_location) %>% spq_count() Output + PREFIX wd: + PREFIX wdt: PREFIX rdfs: SELECT (COUNT(*) AS ?n) WHERE { @@ -73,6 +79,8 @@ narrative_location = wdt::P840(film)) %>% spq_label(narrative_location) %>% spq_count(narrative_location_label, sort = TRUE, name = "n_films") Output + PREFIX wd: + PREFIX wdt: PREFIX rdfs: SELECT ?narrative_location_label (COUNT(*) AS ?n_films) WHERE { diff --git a/tests/testthat/_snaps/treat-argument.md b/tests/testthat/_snaps/treat-argument.md index 1099a6df..29fdc74f 100644 --- a/tests/testthat/_snaps/treat-argument.md +++ b/tests/testthat/_snaps/treat-argument.md @@ -2,9 +2,8 @@ Code spq_treat_argument("something(bla)") - Condition - Error in `spq_translate_dsl()`: - ! x Can't find SPARQL equivalent for something(). + Error + x Can't find SPARQL equivalent for something(). i If you think there should be one, open an issue in https://github.com/lvaudor/glitter. # COUNT() @@ -14,7 +13,8 @@ narrative_location = wdt::P840(film)) %>% spq_mutate(count = n()) %>% spq_select(-film, -narrative_location) Output - + PREFIX wd: + PREFIX wdt: SELECT (COUNT(*) AS ?count) WHERE { diff --git a/tests/testthat/_snaps/utils-str.md b/tests/testthat/_snaps/utils-str.md index 4c677865..4495e57e 100644 --- a/tests/testthat/_snaps/utils-str.md +++ b/tests/testthat/_snaps/utils-str.md @@ -2,7 +2,6 @@ Code check_prefix("blop", usual_prefixes) - Condition - Error in `check_prefix()`: - ! Can't find prefix(es) blop. Please use spq_prefix(). + Error + Can't find prefix(es) blop. Please use spq_prefix(). diff --git a/tests/testthat/fixtures/auteurs/data.bnf.fr/sparql-754d02-POST.R b/tests/testthat/fixtures/auteurs/data.bnf.fr/sparql-754d02-POST.R index 694fb7fc..c3dec38a 100644 --- a/tests/testthat/fixtures/auteurs/data.bnf.fr/sparql-754d02-POST.R +++ b/tests/testthat/fixtures/auteurs/data.bnf.fr/sparql-754d02-POST.R @@ -1,5 +1,5 @@ structure(list(method = "POST", url = "https://data.bnf.fr/sparql?query=PREFIX%20foaf%3A%20%3Chttp%3A%2F%2Fxmlns.com%2Ffoaf%2F0.1%2F%3E%0APREFIX%20bio%3A%20%3Chttp%3A%2F%2Fvocab.org%2Fbio%2F0.1%2F%3E%0ASELECT%20%3Fauteur%20%3Fdate1%20%3Fdate2%20%3Fjour%20%3Fnom%0AWHERE%20%7B%0A%0A%3Fauteur%20foaf%3Abirthday%20%3Fjour.%0A%3Fauteur%20bio%3Abirth%20%3Fdate1.%0A%3Fauteur%20bio%3Adeath%20%3Fdate2.%0AOPTIONAL%20%7B%3Fauteur%20foaf%3Aname%20%3Fnom.%7D%0A%0A%7D%0AORDER%20BY%20%3Fjour%0ALIMIT%2010", - status_code = 200L, headers = structure(list(Date = "Thu, 21 Sep 2023 14:53:35 GMT", + status_code = 200L, headers = structure(list(Date = "Fri, 20 Oct 2023 14:56:31 GMT", Server = "Virtuoso/07.20.3229 (Linux) x86_64-generic_glibc25-linux-gnu", `Accept-Ranges` = "bytes", `Content-Type` = "application/sparql-results+json", `Content-Encoding` = "gzip", `Access-Control-Allow-Origin` = "*", @@ -59,29 +59,29 @@ structure(list(method = "POST", url = "https://data.bnf.fr/sparql?query=PREFIX%2 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x62, 0x6e, 0x66, 0x2e, 0x66, 0x72, 0x2f, 0x61, 0x72, 0x6b, 0x3a, 0x2f, 0x31, 0x32, 0x31, 0x34, - 0x38, 0x2f, 0x63, 0x62, 0x31, 0x37, 0x30, 0x35, 0x39, 0x30, - 0x34, 0x32, 0x38, 0x23, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, + 0x38, 0x2f, 0x63, 0x62, 0x31, 0x37, 0x30, 0x36, 0x34, 0x34, + 0x36, 0x35, 0x31, 0x23, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x31, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x38, 0x39, 0x35, 0x22, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x39, 0x30, 0x31, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x32, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x39, 0x36, 0x31, 0x2d, - 0x30, 0x33, 0x2d, 0x32, 0x31, 0x22, 0x20, 0x7d, 0x09, 0x2c, - 0x20, 0x22, 0x6a, 0x6f, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, - 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, - 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, - 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, - 0x2e, 0x2e, 0x2d, 0x2e, 0x2e, 0x22, 0x20, 0x7d, 0x09, 0x2c, - 0x20, 0x22, 0x6e, 0x6f, 0x6d, 0x22, 0x3a, 0x20, 0x7b, 0x20, - 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, - 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x44, - 0x61, 0x6e, 0x6e, 0x79, 0x20, 0x46, 0x72, 0x75, 0x73, 0x68, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x39, 0x2e, 0x2e, 0x22, + 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6a, 0x6f, 0x75, 0x72, + 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, + 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x2e, 0x2d, 0x2e, 0x2e, 0x22, + 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6e, 0x6f, 0x6d, 0x22, + 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x52, 0x65, 0x6e, 0x5c, 0x75, 0x30, 0x30, + 0x45, 0x39, 0x20, 0x53, 0x6f, 0x72, 0x6e, 0x61, 0x69, 0x73, 0x22, 0x20, 0x7d, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x20, 0x22, 0x61, 0x75, 0x74, 0x65, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, @@ -90,18 +90,18 @@ structure(list(method = "POST", url = "https://data.bnf.fr/sparql?query=PREFIX%2 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x62, 0x6e, 0x66, 0x2e, 0x66, 0x72, 0x2f, 0x61, 0x72, 0x6b, 0x3a, 0x2f, 0x31, 0x32, 0x31, 0x34, 0x38, 0x2f, 0x63, - 0x62, 0x31, 0x32, 0x32, 0x34, 0x34, 0x31, 0x30, 0x36, 0x78, + 0x62, 0x31, 0x37, 0x37, 0x33, 0x36, 0x33, 0x33, 0x36, 0x37, 0x23, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x31, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, - 0x20, 0x22, 0x31, 0x35, 0x36, 0x30, 0x22, 0x20, 0x7d, 0x09, + 0x20, 0x22, 0x31, 0x39, 0x2e, 0x2e, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x32, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, - 0x20, 0x22, 0x31, 0x36, 0x32, 0x38, 0x22, 0x20, 0x7d, 0x09, + 0x20, 0x22, 0x31, 0x39, 0x2e, 0x2e, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6a, 0x6f, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, @@ -111,64 +111,9 @@ structure(list(method = "POST", url = "https://data.bnf.fr/sparql?query=PREFIX%2 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, - 0x46, 0x65, 0x64, 0x65, 0x72, 0x69, 0x63, 0x6f, 0x20, 0x44, - 0x65, 0x6c, 0x6c, 0x61, 0x20, 0x43, 0x61, 0x73, 0x61, 0x22, - 0x20, 0x7d, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, - 0x20, 0x22, 0x61, 0x75, 0x74, 0x65, 0x75, 0x72, 0x22, 0x3a, - 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x20, 0x22, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x68, 0x74, - 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, - 0x62, 0x6e, 0x66, 0x2e, 0x66, 0x72, 0x2f, 0x61, 0x72, 0x6b, - 0x3a, 0x2f, 0x31, 0x32, 0x31, 0x34, 0x38, 0x2f, 0x63, 0x62, - 0x31, 0x33, 0x37, 0x35, 0x36, 0x36, 0x33, 0x37, 0x38, 0x23, - 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x7d, 0x09, 0x2c, - 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x31, 0x22, 0x3a, 0x20, - 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, - 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, - 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, - 0x22, 0x31, 0x34, 0x35, 0x30, 0x22, 0x20, 0x7d, 0x09, 0x2c, - 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x32, 0x22, 0x3a, 0x20, - 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, - 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, - 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, - 0x22, 0x31, 0x34, 0x39, 0x34, 0x2d, 0x30, 0x32, 0x2d, 0x30, - 0x34, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6a, 0x6f, - 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, - 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x2e, 0x2d, 0x2e, - 0x2e, 0x22, 0x20, 0x7d, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x7b, 0x20, 0x22, 0x61, 0x75, 0x74, 0x65, 0x75, 0x72, - 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x20, - 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, - 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x61, 0x74, - 0x61, 0x2e, 0x62, 0x6e, 0x66, 0x2e, 0x66, 0x72, 0x2f, 0x61, - 0x72, 0x6b, 0x3a, 0x2f, 0x31, 0x32, 0x31, 0x34, 0x38, 0x2f, - 0x63, 0x62, 0x31, 0x37, 0x30, 0x37, 0x30, 0x31, 0x35, 0x34, - 0x73, 0x23, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x7d, - 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x31, 0x22, - 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, - 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x3a, 0x20, 0x22, 0x31, 0x38, 0x39, 0x36, 0x22, 0x20, 0x7d, - 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x32, 0x22, - 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, - 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x3a, 0x20, 0x22, 0x31, 0x39, 0x2e, 0x2e, 0x22, 0x20, 0x7d, - 0x09, 0x2c, 0x20, 0x22, 0x6a, 0x6f, 0x75, 0x72, 0x22, 0x3a, - 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, - 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, - 0x20, 0x22, 0x2e, 0x2e, 0x2d, 0x2e, 0x2e, 0x22, 0x20, 0x7d, - 0x09, 0x2c, 0x20, 0x22, 0x6e, 0x6f, 0x6d, 0x22, 0x3a, 0x20, - 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, - 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, - 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, - 0x22, 0x47, 0x65, 0x6f, 0x72, 0x67, 0x65, 0x73, 0x20, 0x56, - 0x65, 0x72, 0x67, 0x65, 0x72, 0x22, 0x20, 0x7d, 0x7d, 0x2c, + 0x43, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x20, 0x50, + 0x61, 0x72, 0x73, 0x6f, 0x6e, 0x73, 0x20, 0x41, 0x6e, 0x64, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x22, 0x20, 0x7d, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x20, 0x22, 0x61, 0x75, 0x74, 0x65, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x75, 0x72, @@ -176,19 +121,19 @@ structure(list(method = "POST", url = "https://data.bnf.fr/sparql?query=PREFIX%2 0x22, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x62, 0x6e, 0x66, 0x2e, 0x66, 0x72, 0x2f, 0x61, 0x72, 0x6b, 0x3a, 0x2f, 0x31, 0x32, - 0x31, 0x34, 0x38, 0x2f, 0x63, 0x62, 0x31, 0x37, 0x30, 0x37, - 0x31, 0x37, 0x34, 0x31, 0x62, 0x23, 0x61, 0x62, 0x6f, 0x75, + 0x31, 0x34, 0x38, 0x2f, 0x63, 0x62, 0x31, 0x37, 0x37, 0x34, + 0x31, 0x37, 0x35, 0x35, 0x6d, 0x23, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x31, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x39, 0x30, - 0x35, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x38, 0x36, + 0x37, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x32, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x39, 0x32, - 0x38, 0x2d, 0x30, 0x34, 0x2d, 0x32, 0x35, 0x22, 0x20, 0x7d, + 0x37, 0x2d, 0x30, 0x39, 0x2d, 0x30, 0x35, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6a, 0x6f, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, @@ -198,8 +143,38 @@ structure(list(method = "POST", url = "https://data.bnf.fr/sparql?query=PREFIX%2 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, - 0x22, 0x48, 0x65, 0x6e, 0x72, 0x69, 0x65, 0x74, 0x74, 0x65, - 0x20, 0x47, 0x61, 0x72, 0x64, 0x65, 0x6c, 0x6c, 0x65, 0x22, + 0x22, 0x43, 0x68, 0x61, 0x72, 0x6c, 0x65, 0x73, 0x20, 0x53, + 0x2e, 0x20, 0x48, 0x69, 0x6c, 0x6c, 0x22, 0x20, 0x7d, 0x7d, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x20, 0x22, 0x61, + 0x75, 0x74, 0x65, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, + 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x75, + 0x72, 0x69, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, + 0x2f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x62, 0x6e, 0x66, + 0x2e, 0x66, 0x72, 0x2f, 0x61, 0x72, 0x6b, 0x3a, 0x2f, 0x31, + 0x32, 0x31, 0x34, 0x38, 0x2f, 0x63, 0x62, 0x31, 0x37, 0x37, + 0x34, 0x32, 0x32, 0x33, 0x36, 0x36, 0x23, 0x61, 0x62, 0x6f, + 0x75, 0x74, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, + 0x61, 0x74, 0x65, 0x31, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, + 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x38, + 0x39, 0x37, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, + 0x61, 0x74, 0x65, 0x32, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, + 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x39, + 0x2e, 0x2e, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6a, + 0x6f, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, + 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x2e, 0x2d, + 0x2e, 0x2e, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6e, + 0x6f, 0x6d, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, + 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x4d, 0x61, 0x72, 0x63, + 0x65, 0x6c, 0x20, 0x44, 0x75, 0x70, 0x72, 0x61, 0x7a, 0x22, 0x20, 0x7d, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x20, 0x22, 0x61, 0x75, 0x74, 0x65, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, @@ -208,18 +183,18 @@ structure(list(method = "POST", url = "https://data.bnf.fr/sparql?query=PREFIX%2 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x62, 0x6e, 0x66, 0x2e, 0x66, 0x72, 0x2f, 0x61, 0x72, 0x6b, 0x3a, 0x2f, 0x31, 0x32, 0x31, 0x34, 0x38, 0x2f, 0x63, 0x62, - 0x31, 0x37, 0x30, 0x37, 0x35, 0x30, 0x32, 0x32, 0x33, 0x23, + 0x31, 0x37, 0x37, 0x35, 0x34, 0x35, 0x35, 0x30, 0x38, 0x23, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x31, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, - 0x22, 0x31, 0x39, 0x30, 0x30, 0x22, 0x20, 0x7d, 0x09, 0x2c, + 0x22, 0x31, 0x38, 0x37, 0x30, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x32, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, - 0x22, 0x31, 0x39, 0x2e, 0x2e, 0x22, 0x20, 0x7d, 0x09, 0x2c, + 0x22, 0x31, 0x39, 0x35, 0x38, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6a, 0x6f, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, @@ -228,59 +203,28 @@ structure(list(method = "POST", url = "https://data.bnf.fr/sparql?query=PREFIX%2 0x20, 0x22, 0x6e, 0x6f, 0x6d, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x47, - 0x6c, 0x61, 0x64, 0x79, 0x73, 0x20, 0x4a, 0x6f, 0x65, 0x6c, - 0x22, 0x20, 0x7d, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x7b, 0x20, 0x22, 0x61, 0x75, 0x74, 0x65, 0x75, 0x72, 0x22, - 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x20, 0x22, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x68, - 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x61, 0x74, 0x61, - 0x2e, 0x62, 0x6e, 0x66, 0x2e, 0x66, 0x72, 0x2f, 0x61, 0x72, - 0x6b, 0x3a, 0x2f, 0x31, 0x32, 0x31, 0x34, 0x38, 0x2f, 0x63, - 0x62, 0x31, 0x37, 0x30, 0x37, 0x35, 0x31, 0x35, 0x39, 0x71, - 0x23, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x7d, 0x09, - 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x31, 0x22, 0x3a, - 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, - 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, - 0x20, 0x22, 0x31, 0x38, 0x35, 0x37, 0x22, 0x20, 0x7d, 0x09, - 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x32, 0x22, 0x3a, - 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, - 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, - 0x20, 0x22, 0x31, 0x39, 0x33, 0x33, 0x2d, 0x31, 0x32, 0x2d, - 0x32, 0x31, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6a, - 0x6f, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, - 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x2e, 0x2d, - 0x2e, 0x2e, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6e, - 0x6f, 0x6d, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x53, + 0x61, 0x6d, 0x75, 0x65, 0x6c, 0x20, 0x52, 0x6f, 0x62, 0x69, + 0x6e, 0x73, 0x6f, 0x6e, 0x22, 0x20, 0x7d, 0x7d, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x7b, 0x20, 0x22, 0x61, 0x75, 0x74, + 0x65, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, + 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x62, 0x6e, 0x66, 0x2e, 0x66, + 0x72, 0x2f, 0x61, 0x72, 0x6b, 0x3a, 0x2f, 0x31, 0x32, 0x31, + 0x34, 0x38, 0x2f, 0x63, 0x62, 0x31, 0x37, 0x37, 0x34, 0x33, + 0x32, 0x39, 0x32, 0x78, 0x23, 0x61, 0x62, 0x6f, 0x75, 0x74, + 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, + 0x65, 0x31, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x45, 0x75, 0x67, 0x65, - 0x6e, 0x65, 0x20, 0x43, 0x6f, 0x72, 0x72, 0x69, 0x22, 0x20, - 0x7d, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x20, - 0x22, 0x61, 0x75, 0x74, 0x65, 0x75, 0x72, 0x22, 0x3a, 0x20, - 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, - 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, - 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x62, - 0x6e, 0x66, 0x2e, 0x66, 0x72, 0x2f, 0x61, 0x72, 0x6b, 0x3a, - 0x2f, 0x31, 0x32, 0x31, 0x34, 0x38, 0x2f, 0x63, 0x62, 0x31, - 0x37, 0x30, 0x37, 0x37, 0x31, 0x39, 0x31, 0x70, 0x23, 0x61, - 0x62, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, - 0x22, 0x64, 0x61, 0x74, 0x65, 0x31, 0x22, 0x3a, 0x20, 0x7b, - 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, - 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, - 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, - 0x31, 0x38, 0x38, 0x32, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, - 0x22, 0x64, 0x61, 0x74, 0x65, 0x32, 0x22, 0x3a, 0x20, 0x7b, - 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, - 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, - 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, - 0x31, 0x39, 0x33, 0x34, 0x2d, 0x30, 0x35, 0x2d, 0x31, 0x34, + 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x38, 0x2e, 0x2e, + 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, + 0x65, 0x32, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, + 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x39, 0x2e, 0x2e, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6a, 0x6f, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, @@ -290,8 +234,39 @@ structure(list(method = "POST", url = "https://data.bnf.fr/sparql?query=PREFIX%2 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x3a, 0x20, 0x22, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6e, - 0x20, 0x43, 0x6c, 0x61, 0x70, 0x68, 0x61, 0x6d, 0x22, 0x20, + 0x22, 0x3a, 0x20, 0x22, 0x47, 0x61, 0x62, 0x72, 0x69, 0x65, + 0x6c, 0x20, 0x4d, 0x61, 0x72, 0x63, 0x22, 0x20, 0x7d, 0x7d, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x20, 0x22, 0x61, + 0x75, 0x74, 0x65, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, + 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x75, + 0x72, 0x69, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, + 0x2f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x62, 0x6e, 0x66, + 0x2e, 0x66, 0x72, 0x2f, 0x61, 0x72, 0x6b, 0x3a, 0x2f, 0x31, + 0x32, 0x31, 0x34, 0x38, 0x2f, 0x63, 0x62, 0x31, 0x37, 0x37, + 0x35, 0x34, 0x30, 0x35, 0x35, 0x6d, 0x23, 0x61, 0x62, 0x6f, + 0x75, 0x74, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, + 0x61, 0x74, 0x65, 0x31, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, + 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x38, + 0x38, 0x31, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, + 0x61, 0x74, 0x65, 0x32, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, + 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x39, + 0x34, 0x39, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6a, + 0x6f, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, + 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x2e, 0x2d, + 0x2e, 0x2e, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6e, + 0x6f, 0x6d, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, + 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x48, 0x65, 0x6e, 0x72, + 0x79, 0x20, 0x4a, 0x75, 0x6e, 0x69, 0x75, 0x73, 0x20, 0x53, + 0x63, 0x68, 0x69, 0x72, 0x65, 0x73, 0x6f, 0x6e, 0x22, 0x20, 0x7d, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x20, 0x22, 0x61, 0x75, 0x74, 0x65, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, @@ -300,18 +275,18 @@ structure(list(method = "POST", url = "https://data.bnf.fr/sparql?query=PREFIX%2 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x62, 0x6e, 0x66, 0x2e, 0x66, 0x72, 0x2f, 0x61, 0x72, 0x6b, 0x3a, 0x2f, 0x31, 0x32, 0x31, 0x34, 0x38, 0x2f, 0x63, 0x62, 0x31, - 0x37, 0x30, 0x37, 0x38, 0x36, 0x31, 0x37, 0x77, 0x23, 0x61, + 0x37, 0x37, 0x35, 0x34, 0x30, 0x38, 0x36, 0x77, 0x23, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x31, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, - 0x31, 0x38, 0x38, 0x31, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, + 0x31, 0x39, 0x30, 0x30, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x32, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, - 0x31, 0x39, 0x33, 0x37, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, + 0x31, 0x39, 0x2e, 0x2e, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6a, 0x6f, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, @@ -320,7 +295,37 @@ structure(list(method = "POST", url = "https://data.bnf.fr/sparql?query=PREFIX%2 0x22, 0x6e, 0x6f, 0x6d, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x50, 0x61, - 0x72, 0x6d, 0x65, 0x6c, 0x79, 0x20, 0x48, 0x65, 0x72, 0x72, - 0x69, 0x63, 0x6b, 0x22, 0x20, 0x7d, 0x7d, 0x20, 0x5d, 0x20, - 0x7d, 0x20, 0x7d))), class = "httr2_response") + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x48, 0x75, + 0x67, 0x6f, 0x20, 0x43, 0x68, 0x61, 0x72, 0x6c, 0x65, 0x73, + 0x20, 0x4d, 0x6f, 0x79, 0x22, 0x20, 0x7d, 0x7d, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x7b, 0x20, 0x22, 0x61, 0x75, 0x74, + 0x65, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, + 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x62, 0x6e, 0x66, 0x2e, 0x66, + 0x72, 0x2f, 0x61, 0x72, 0x6b, 0x3a, 0x2f, 0x31, 0x32, 0x31, + 0x34, 0x38, 0x2f, 0x63, 0x62, 0x31, 0x37, 0x39, 0x31, 0x36, + 0x37, 0x34, 0x37, 0x78, 0x23, 0x61, 0x62, 0x6f, 0x75, 0x74, + 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, + 0x65, 0x31, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, + 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x38, 0x37, 0x34, + 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, + 0x65, 0x32, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, + 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x39, 0x2e, 0x2e, + 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6a, 0x6f, 0x75, + 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, + 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x2e, 0x2d, 0x2e, 0x2e, + 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6e, 0x6f, 0x6d, + 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, + 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x46, 0x6c, 0x6f, 0x72, 0x65, 0x6e, + 0x74, 0x20, 0x52, 0x65, 0x62, 0x6f, 0x75, 0x6c, 0x22, 0x20, + 0x7d, 0x7d, 0x20, 0x5d, 0x20, 0x7d, 0x20, 0x7d))), class = "httr2_response") diff --git a/tests/testthat/fixtures/auteurset/data.bnf.fr/sparql-629846-POST.R b/tests/testthat/fixtures/auteurset/data.bnf.fr/sparql-629846-POST.R index b04e4f9b..8074f2f5 100644 --- a/tests/testthat/fixtures/auteurset/data.bnf.fr/sparql-629846-POST.R +++ b/tests/testthat/fixtures/auteurset/data.bnf.fr/sparql-629846-POST.R @@ -1,5 +1,5 @@ structure(list(method = "POST", url = "https://data.bnf.fr/sparql?query=PREFIX%20foaf%3A%20%3Chttp%3A%2F%2Fxmlns.com%2Ffoaf%2F0.1%2F%3E%0APREFIX%20bio%3A%20%3Chttp%3A%2F%2Fvocab.org%2Fbio%2F0.1%2F%3E%0ASELECT%20%3Fanniv%20%3Fauteur%20%3Fdate1%20%3Fdate2%20%3Fjour%20%3Fnom%0AWHERE%20%7B%0A%0A%3Fauteur%20%3Fanniv%20%3Fjour.%0A%3Fauteur%20bio%3Abirth%20%3Fdate1.%0A%3Fauteur%20bio%3Adeath%20%3Fdate2.%0AOPTIONAL%20%7B%3Fauteur%20foaf%3Aname%20%3Fnom.%7D%0AVALUES%20%3Fanniv%20%7Bfoaf%3Abirthday%7D%0A%0A%7D%0AORDER%20BY%20%3Fjour%0ALIMIT%2010", - status_code = 200L, headers = structure(list(Date = "Thu, 21 Sep 2023 14:53:43 GMT", + status_code = 200L, headers = structure(list(Date = "Fri, 20 Oct 2023 14:57:08 GMT", Server = "Virtuoso/07.20.3229 (Linux) x86_64-generic_glibc25-linux-gnu", `Accept-Ranges` = "bytes", `Content-Type` = "application/sparql-results+json", `Content-Encoding` = "gzip", `Access-Control-Allow-Origin` = "*", @@ -75,18 +75,18 @@ structure(list(method = "POST", url = "https://data.bnf.fr/sparql?query=PREFIX%2 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x62, 0x6e, 0x66, 0x2e, 0x66, 0x72, 0x2f, 0x61, 0x72, 0x6b, 0x3a, 0x2f, 0x31, 0x32, 0x31, - 0x34, 0x38, 0x2f, 0x63, 0x62, 0x31, 0x37, 0x31, 0x30, 0x38, - 0x32, 0x32, 0x33, 0x66, 0x23, 0x61, 0x62, 0x6f, 0x75, 0x74, + 0x34, 0x38, 0x2f, 0x63, 0x62, 0x31, 0x32, 0x35, 0x30, 0x37, + 0x37, 0x32, 0x39, 0x6e, 0x23, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x31, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x38, 0x2e, 0x2e, + 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x37, 0x30, 0x36, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x32, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x39, 0x2e, 0x2e, + 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x37, 0x36, 0x2e, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6a, 0x6f, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, @@ -96,75 +96,74 @@ structure(list(method = "POST", url = "https://data.bnf.fr/sparql?query=PREFIX%2 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x3a, 0x20, 0x22, 0x41, 0x6d, 0x5c, 0x75, 0x30, 0x30, - 0x45, 0x39, 0x64, 0x5c, 0x75, 0x30, 0x30, 0x45, 0x39, 0x65, - 0x20, 0x43, 0x68, 0x69, 0x76, 0x6f, 0x74, 0x22, 0x20, 0x7d, - 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x20, 0x22, - 0x61, 0x6e, 0x6e, 0x69, 0x76, 0x22, 0x3a, 0x20, 0x7b, 0x20, - 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x75, - 0x72, 0x69, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, - 0x2f, 0x2f, 0x78, 0x6d, 0x6c, 0x6e, 0x73, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x66, 0x6f, 0x61, 0x66, 0x2f, 0x30, 0x2e, 0x31, - 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x22, - 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x61, 0x75, 0x74, 0x65, - 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, - 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, - 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x62, 0x6e, 0x66, 0x2e, 0x66, 0x72, - 0x2f, 0x61, 0x72, 0x6b, 0x3a, 0x2f, 0x31, 0x32, 0x31, 0x34, - 0x38, 0x2f, 0x63, 0x62, 0x31, 0x37, 0x31, 0x31, 0x32, 0x38, - 0x31, 0x36, 0x6b, 0x23, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, - 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, - 0x31, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, - 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x38, 0x38, 0x33, 0x22, - 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, - 0x32, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, - 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x39, 0x34, 0x35, 0x22, - 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6a, 0x6f, 0x75, 0x72, - 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, - 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x2e, 0x2d, 0x2e, 0x2e, 0x22, - 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6e, 0x6f, 0x6d, 0x22, - 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, - 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x3a, 0x20, 0x22, 0x48, 0x72, 0x69, 0x73, 0x74, 0x6f, 0x20, - 0x4b, 0x61, 0x6c, 0x66, 0x6f, 0x76, 0x22, 0x20, 0x7d, 0x7d, - 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x20, 0x22, 0x61, - 0x6e, 0x6e, 0x69, 0x76, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, - 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x75, 0x72, - 0x69, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, - 0x2f, 0x78, 0x6d, 0x6c, 0x6e, 0x73, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x66, 0x6f, 0x61, 0x66, 0x2f, 0x30, 0x2e, 0x31, 0x2f, - 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x22, 0x20, - 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x61, 0x75, 0x74, 0x65, 0x75, - 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, + 0x22, 0x3a, 0x20, 0x22, 0x44, 0x69, 0x65, 0x67, 0x6f, 0x20, + 0x43, 0x61, 0x6d, 0x70, 0x6f, 0x72, 0x72, 0x65, 0x64, 0x6f, + 0x6e, 0x64, 0x6f, 0x22, 0x20, 0x7d, 0x7d, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x7b, 0x20, 0x22, 0x61, 0x6e, 0x6e, 0x69, + 0x76, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, - 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x61, - 0x74, 0x61, 0x2e, 0x62, 0x6e, 0x66, 0x2e, 0x66, 0x72, 0x2f, - 0x61, 0x72, 0x6b, 0x3a, 0x2f, 0x31, 0x32, 0x31, 0x34, 0x38, - 0x2f, 0x63, 0x62, 0x31, 0x37, 0x31, 0x31, 0x34, 0x37, 0x37, - 0x31, 0x78, 0x23, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, 0x20, - 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x31, - 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, - 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x3a, 0x20, 0x22, 0x31, 0x38, 0x35, 0x32, 0x22, 0x20, - 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x32, + 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x78, 0x6d, + 0x6c, 0x6e, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6f, + 0x61, 0x66, 0x2f, 0x30, 0x2e, 0x31, 0x2f, 0x62, 0x69, 0x72, + 0x74, 0x68, 0x64, 0x61, 0x79, 0x22, 0x20, 0x7d, 0x09, 0x2c, + 0x20, 0x22, 0x61, 0x75, 0x74, 0x65, 0x75, 0x72, 0x22, 0x3a, + 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x20, 0x22, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x68, 0x74, + 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x62, 0x6e, 0x66, 0x2e, 0x66, 0x72, 0x2f, 0x61, 0x72, 0x6b, + 0x3a, 0x2f, 0x31, 0x32, 0x31, 0x34, 0x38, 0x2f, 0x63, 0x62, + 0x31, 0x33, 0x37, 0x34, 0x37, 0x32, 0x39, 0x39, 0x72, 0x23, + 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x7d, 0x09, 0x2c, + 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x31, 0x22, 0x3a, 0x20, + 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, + 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x31, 0x37, 0x36, 0x37, 0x22, 0x20, 0x7d, 0x09, 0x2c, + 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x32, 0x22, 0x3a, 0x20, + 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, + 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x31, 0x38, 0x32, 0x32, 0x22, 0x20, 0x7d, 0x09, 0x2c, + 0x20, 0x22, 0x6a, 0x6f, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, + 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x2e, 0x2e, 0x2d, 0x2e, 0x2e, 0x22, 0x20, 0x7d, 0x09, 0x2c, + 0x20, 0x22, 0x6e, 0x6f, 0x6d, 0x22, 0x3a, 0x20, 0x7b, 0x20, + 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, + 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x44, + 0x65, 0x6e, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x56, 0x65, 0x73, + 0x65, 0x79, 0x22, 0x20, 0x7d, 0x7d, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x7b, 0x20, 0x22, 0x61, 0x6e, 0x6e, 0x69, 0x76, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, - 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x3a, 0x20, 0x22, 0x31, 0x39, 0x32, 0x39, 0x2d, 0x30, - 0x36, 0x2d, 0x31, 0x31, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, + 0x22, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x20, + 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x78, 0x6d, 0x6c, + 0x6e, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6f, 0x61, + 0x66, 0x2f, 0x30, 0x2e, 0x31, 0x2f, 0x62, 0x69, 0x72, 0x74, + 0x68, 0x64, 0x61, 0x79, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, + 0x22, 0x61, 0x75, 0x74, 0x65, 0x75, 0x72, 0x22, 0x3a, 0x20, + 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, + 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x62, + 0x6e, 0x66, 0x2e, 0x66, 0x72, 0x2f, 0x61, 0x72, 0x6b, 0x3a, + 0x2f, 0x31, 0x32, 0x31, 0x34, 0x38, 0x2f, 0x63, 0x62, 0x31, + 0x36, 0x37, 0x32, 0x38, 0x30, 0x32, 0x35, 0x77, 0x23, 0x61, + 0x62, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, + 0x22, 0x64, 0x61, 0x74, 0x65, 0x31, 0x22, 0x3a, 0x20, 0x7b, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, + 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x31, 0x39, 0x30, 0x38, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, + 0x22, 0x64, 0x61, 0x74, 0x65, 0x32, 0x22, 0x3a, 0x20, 0x7b, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, + 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x31, 0x39, 0x37, 0x39, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6a, 0x6f, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, @@ -174,8 +173,8 @@ structure(list(method = "POST", url = "https://data.bnf.fr/sparql?query=PREFIX%2 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x52, 0x6f, - 0x62, 0x65, 0x72, 0x74, 0x20, 0x44, 0x65, 0x6e, 0x6d, 0x61, - 0x6e, 0x22, 0x20, 0x7d, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x62, 0x65, 0x72, 0x74, 0x20, 0x52, 0x65, 0x6e, 0x61, 0x72, + 0x64, 0x22, 0x20, 0x7d, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x20, 0x22, 0x61, 0x6e, 0x6e, 0x69, 0x76, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x20, 0x22, @@ -191,18 +190,18 @@ structure(list(method = "POST", url = "https://data.bnf.fr/sparql?query=PREFIX%2 0x3a, 0x2f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x62, 0x6e, 0x66, 0x2e, 0x66, 0x72, 0x2f, 0x61, 0x72, 0x6b, 0x3a, 0x2f, 0x31, 0x32, 0x31, 0x34, 0x38, 0x2f, 0x63, 0x62, 0x31, 0x37, - 0x31, 0x30, 0x32, 0x33, 0x33, 0x33, 0x6b, 0x23, 0x61, 0x62, + 0x31, 0x35, 0x39, 0x33, 0x39, 0x34, 0x68, 0x23, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x31, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, - 0x38, 0x36, 0x30, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, + 0x38, 0x36, 0x38, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x32, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, - 0x39, 0x32, 0x39, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, + 0x39, 0x34, 0x34, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6a, 0x6f, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, @@ -211,86 +210,9 @@ structure(list(method = "POST", url = "https://data.bnf.fr/sparql?query=PREFIX%2 0x6e, 0x6f, 0x6d, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x4b, 0x61, 0x72, - 0x6c, 0x20, 0x48, 0x6f, 0x70, 0x70, 0x65, 0x22, 0x20, 0x7d, - 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x20, 0x22, - 0x61, 0x6e, 0x6e, 0x69, 0x76, 0x22, 0x3a, 0x20, 0x7b, 0x20, - 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x75, - 0x72, 0x69, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, - 0x2f, 0x2f, 0x78, 0x6d, 0x6c, 0x6e, 0x73, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x66, 0x6f, 0x61, 0x66, 0x2f, 0x30, 0x2e, 0x31, - 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x22, - 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x61, 0x75, 0x74, 0x65, - 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, - 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, - 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x62, 0x6e, 0x66, 0x2e, 0x66, 0x72, - 0x2f, 0x61, 0x72, 0x6b, 0x3a, 0x2f, 0x31, 0x32, 0x31, 0x34, - 0x38, 0x2f, 0x63, 0x62, 0x31, 0x37, 0x31, 0x30, 0x33, 0x34, - 0x34, 0x37, 0x73, 0x23, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, - 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, - 0x31, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, - 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x38, 0x38, 0x34, 0x22, - 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, - 0x32, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, - 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, - 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x39, 0x35, 0x32, 0x2d, - 0x30, 0x38, 0x2d, 0x30, 0x32, 0x22, 0x20, 0x7d, 0x09, 0x2c, - 0x20, 0x22, 0x6a, 0x6f, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, - 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, - 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, - 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, - 0x2e, 0x2e, 0x2d, 0x2e, 0x2e, 0x22, 0x20, 0x7d, 0x09, 0x2c, - 0x20, 0x22, 0x6e, 0x6f, 0x6d, 0x22, 0x3a, 0x20, 0x7b, 0x20, - 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, - 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x48, - 0x65, 0x6c, 0x65, 0x6e, 0x20, 0x4d, 0x61, 0x72, 0x67, 0x61, - 0x72, 0x65, 0x74, 0x68, 0x20, 0x4b, 0x65, 0x6c, 0x6c, 0x79, - 0x22, 0x20, 0x7d, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x7b, 0x20, 0x22, 0x61, 0x6e, 0x6e, 0x69, 0x76, 0x22, 0x3a, - 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x20, 0x22, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x68, 0x74, - 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x78, 0x6d, 0x6c, 0x6e, 0x73, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6f, 0x61, 0x66, 0x2f, - 0x30, 0x2e, 0x31, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, - 0x61, 0x79, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x61, - 0x75, 0x74, 0x65, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, - 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x75, - 0x72, 0x69, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, - 0x2f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x62, 0x6e, 0x66, - 0x2e, 0x66, 0x72, 0x2f, 0x61, 0x72, 0x6b, 0x3a, 0x2f, 0x31, - 0x32, 0x31, 0x34, 0x38, 0x2f, 0x63, 0x62, 0x31, 0x37, 0x37, - 0x39, 0x33, 0x33, 0x35, 0x30, 0x39, 0x23, 0x61, 0x62, 0x6f, - 0x75, 0x74, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, - 0x61, 0x74, 0x65, 0x31, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, - 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, - 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x38, - 0x37, 0x34, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, - 0x61, 0x74, 0x65, 0x32, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, - 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, - 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x39, - 0x34, 0x38, 0x2d, 0x30, 0x33, 0x2d, 0x31, 0x38, 0x22, 0x20, - 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6a, 0x6f, 0x75, 0x72, 0x22, - 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, - 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x3a, 0x20, 0x22, 0x2e, 0x2e, 0x2d, 0x2e, 0x2e, 0x22, 0x20, - 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6e, 0x6f, 0x6d, 0x22, 0x3a, - 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, - 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, - 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, - 0x20, 0x22, 0x41, 0x2e, 0x20, 0x43, 0x2e, 0x20, 0x43, 0x2e, - 0x20, 0x48, 0x6f, 0x6c, 0x74, 0x7a, 0x22, 0x20, 0x7d, 0x7d, + 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x42, 0x61, 0x72, + 0x74, 0x6f, 0x6c, 0x6f, 0x6d, 0x65, 0x75, 0x20, 0x46, 0x65, + 0x72, 0x72, 0x65, 0x69, 0x72, 0x61, 0x22, 0x20, 0x7d, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x20, 0x22, 0x61, 0x6e, 0x6e, 0x69, 0x76, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x75, 0x72, @@ -306,105 +228,180 @@ structure(list(method = "POST", url = "https://data.bnf.fr/sparql?query=PREFIX%2 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x62, 0x6e, 0x66, 0x2e, 0x66, 0x72, 0x2f, 0x61, 0x72, 0x6b, 0x3a, 0x2f, 0x31, 0x32, 0x31, 0x34, 0x38, - 0x2f, 0x63, 0x62, 0x31, 0x37, 0x37, 0x39, 0x34, 0x33, 0x34, - 0x34, 0x6d, 0x23, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, 0x20, + 0x2f, 0x63, 0x62, 0x31, 0x37, 0x31, 0x36, 0x38, 0x37, 0x38, + 0x30, 0x77, 0x23, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x31, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x3a, 0x20, 0x22, 0x31, 0x38, 0x38, 0x36, 0x22, 0x20, + 0x22, 0x3a, 0x20, 0x22, 0x31, 0x38, 0x38, 0x33, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x32, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x3a, 0x20, 0x22, 0x31, 0x39, 0x32, 0x37, 0x2d, 0x31, - 0x30, 0x2d, 0x30, 0x33, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, - 0x22, 0x6a, 0x6f, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, - 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, - 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, - 0x2e, 0x2d, 0x2e, 0x2e, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, - 0x22, 0x6e, 0x6f, 0x6d, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, - 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, - 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x46, 0x72, - 0x61, 0x6e, 0x63, 0x69, 0x73, 0x63, 0x6f, 0x20, 0x52, 0x6f, - 0x71, 0x75, 0x65, 0x20, 0x53, 0x65, 0x72, 0x72, 0x61, 0x6e, - 0x6f, 0x22, 0x20, 0x7d, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x7b, 0x20, 0x22, 0x61, 0x6e, 0x6e, 0x69, 0x76, 0x22, + 0x22, 0x3a, 0x20, 0x22, 0x31, 0x39, 0x2e, 0x2e, 0x22, 0x20, + 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6a, 0x6f, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, - 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x20, 0x22, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x68, - 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x78, 0x6d, 0x6c, 0x6e, - 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6f, 0x61, 0x66, - 0x2f, 0x30, 0x2e, 0x31, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, - 0x64, 0x61, 0x79, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, - 0x61, 0x75, 0x74, 0x65, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, + 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x2e, 0x2e, 0x2d, 0x2e, 0x2e, 0x22, 0x20, + 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6e, 0x6f, 0x6d, 0x22, 0x3a, + 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, + 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x45, 0x6d, 0x69, 0x6c, 0x65, 0x20, 0x4f, 0x74, + 0x74, 0x6f, 0x22, 0x20, 0x7d, 0x7d, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x7b, 0x20, 0x22, 0x61, 0x6e, 0x6e, 0x69, 0x76, + 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x20, + 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x78, 0x6d, 0x6c, + 0x6e, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6f, 0x61, + 0x66, 0x2f, 0x30, 0x2e, 0x31, 0x2f, 0x62, 0x69, 0x72, 0x74, + 0x68, 0x64, 0x61, 0x79, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, + 0x22, 0x61, 0x75, 0x74, 0x65, 0x75, 0x72, 0x22, 0x3a, 0x20, + 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, + 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x62, + 0x6e, 0x66, 0x2e, 0x66, 0x72, 0x2f, 0x61, 0x72, 0x6b, 0x3a, + 0x2f, 0x31, 0x32, 0x31, 0x34, 0x38, 0x2f, 0x63, 0x62, 0x31, + 0x37, 0x37, 0x33, 0x32, 0x33, 0x36, 0x37, 0x6a, 0x23, 0x61, + 0x62, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, + 0x22, 0x64, 0x61, 0x74, 0x65, 0x31, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, - 0x75, 0x72, 0x69, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, - 0x3a, 0x2f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x62, 0x6e, - 0x66, 0x2e, 0x66, 0x72, 0x2f, 0x61, 0x72, 0x6b, 0x3a, 0x2f, - 0x31, 0x32, 0x31, 0x34, 0x38, 0x2f, 0x63, 0x62, 0x31, 0x37, - 0x38, 0x31, 0x33, 0x35, 0x33, 0x35, 0x67, 0x23, 0x61, 0x62, - 0x6f, 0x75, 0x74, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, - 0x64, 0x61, 0x74, 0x65, 0x31, 0x22, 0x3a, 0x20, 0x7b, 0x20, - 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, - 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, - 0x39, 0x31, 0x30, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, - 0x64, 0x61, 0x74, 0x65, 0x32, 0x22, 0x3a, 0x20, 0x7b, 0x20, + 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, + 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x31, 0x39, 0x30, 0x2e, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, + 0x22, 0x64, 0x61, 0x74, 0x65, 0x32, 0x22, 0x3a, 0x20, 0x7b, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, + 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x31, 0x39, 0x36, 0x39, 0x2d, 0x31, 0x32, 0x22, 0x20, 0x7d, + 0x09, 0x2c, 0x20, 0x22, 0x6a, 0x6f, 0x75, 0x72, 0x22, 0x3a, + 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, + 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x2e, 0x2e, 0x2d, 0x2e, 0x2e, 0x22, 0x20, 0x7d, + 0x09, 0x2c, 0x20, 0x22, 0x6e, 0x6f, 0x6d, 0x22, 0x3a, 0x20, + 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, + 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x48, 0x65, 0x6e, 0x72, 0x69, 0x20, 0x54, 0x72, 0x61, + 0x70, 0x6f, 0x6e, 0x22, 0x20, 0x7d, 0x7d, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x7b, 0x20, 0x22, 0x61, 0x6e, 0x6e, 0x69, + 0x76, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, + 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x78, 0x6d, + 0x6c, 0x6e, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6f, + 0x61, 0x66, 0x2f, 0x30, 0x2e, 0x31, 0x2f, 0x62, 0x69, 0x72, + 0x74, 0x68, 0x64, 0x61, 0x79, 0x22, 0x20, 0x7d, 0x09, 0x2c, + 0x20, 0x22, 0x61, 0x75, 0x74, 0x65, 0x75, 0x72, 0x22, 0x3a, + 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x20, 0x22, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x68, 0x74, + 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x62, 0x6e, 0x66, 0x2e, 0x66, 0x72, 0x2f, 0x61, 0x72, 0x6b, + 0x3a, 0x2f, 0x31, 0x32, 0x31, 0x34, 0x38, 0x2f, 0x63, 0x62, + 0x31, 0x37, 0x37, 0x33, 0x36, 0x33, 0x32, 0x37, 0x38, 0x23, + 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x7d, 0x09, 0x2c, + 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x31, 0x22, 0x3a, 0x20, + 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, + 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x31, 0x39, 0x2e, 0x2e, 0x22, 0x20, 0x7d, 0x09, 0x2c, + 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x32, 0x22, 0x3a, 0x20, + 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, + 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x31, 0x39, 0x2e, 0x2e, 0x22, 0x20, 0x7d, 0x09, 0x2c, + 0x20, 0x22, 0x6a, 0x6f, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, + 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x2e, 0x2e, 0x2d, 0x2e, 0x2e, 0x22, 0x20, 0x7d, 0x09, 0x2c, + 0x20, 0x22, 0x6e, 0x6f, 0x6d, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, - 0x39, 0x39, 0x31, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, - 0x6a, 0x6f, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, - 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, - 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x2e, - 0x2d, 0x2e, 0x2e, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, - 0x6e, 0x6f, 0x6d, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, - 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, - 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x48, 0x69, 0x6c, - 0x64, 0x61, 0x20, 0x53, 0x68, 0x61, 0x72, 0x70, 0x22, 0x20, - 0x7d, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x20, - 0x22, 0x61, 0x6e, 0x6e, 0x69, 0x76, 0x22, 0x3a, 0x20, 0x7b, - 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, - 0x75, 0x72, 0x69, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, - 0x3a, 0x2f, 0x2f, 0x78, 0x6d, 0x6c, 0x6e, 0x73, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x66, 0x6f, 0x61, 0x66, 0x2f, 0x30, 0x2e, - 0x31, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, - 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x61, 0x75, 0x74, - 0x65, 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x4d, + 0x61, 0x74, 0x69, 0x6c, 0x64, 0x61, 0x20, 0x41, 0x6e, 0x64, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x22, 0x20, 0x7d, 0x7d, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x20, 0x22, 0x61, 0x6e, + 0x6e, 0x69, 0x76, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, - 0x64, 0x61, 0x74, 0x61, 0x2e, 0x62, 0x6e, 0x66, 0x2e, 0x66, - 0x72, 0x2f, 0x61, 0x72, 0x6b, 0x3a, 0x2f, 0x31, 0x32, 0x31, - 0x34, 0x38, 0x2f, 0x63, 0x62, 0x31, 0x37, 0x38, 0x31, 0x36, - 0x33, 0x34, 0x33, 0x38, 0x23, 0x61, 0x62, 0x6f, 0x75, 0x74, - 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, - 0x65, 0x31, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, - 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, - 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x38, 0x39, 0x34, - 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, - 0x65, 0x32, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, + 0x78, 0x6d, 0x6c, 0x6e, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x66, 0x6f, 0x61, 0x66, 0x2f, 0x30, 0x2e, 0x31, 0x2f, 0x62, + 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x22, 0x20, 0x7d, + 0x09, 0x2c, 0x20, 0x22, 0x61, 0x75, 0x74, 0x65, 0x75, 0x72, + 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x20, + 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x62, 0x6e, 0x66, 0x2e, 0x66, 0x72, 0x2f, 0x61, + 0x72, 0x6b, 0x3a, 0x2f, 0x31, 0x32, 0x31, 0x34, 0x38, 0x2f, + 0x63, 0x62, 0x31, 0x37, 0x37, 0x34, 0x32, 0x32, 0x34, 0x35, + 0x35, 0x23, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x7d, + 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x31, 0x22, + 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x31, 0x39, 0x30, 0x31, 0x22, 0x20, 0x7d, + 0x09, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x32, 0x22, + 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x31, 0x39, 0x2e, 0x2e, 0x22, 0x20, 0x7d, + 0x09, 0x2c, 0x20, 0x22, 0x6a, 0x6f, 0x75, 0x72, 0x22, 0x3a, + 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, + 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x2e, 0x2e, 0x2d, 0x2e, 0x2e, 0x22, 0x20, 0x7d, + 0x09, 0x2c, 0x20, 0x22, 0x6e, 0x6f, 0x6d, 0x22, 0x3a, 0x20, + 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, + 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x47, 0x61, 0x73, 0x74, 0x6f, 0x6e, 0x20, 0x46, 0x69, + 0x63, 0x68, 0x75, 0x22, 0x20, 0x7d, 0x7d, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x7b, 0x20, 0x22, 0x61, 0x6e, 0x6e, 0x69, + 0x76, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, + 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x78, 0x6d, + 0x6c, 0x6e, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6f, + 0x61, 0x66, 0x2f, 0x30, 0x2e, 0x31, 0x2f, 0x62, 0x69, 0x72, + 0x74, 0x68, 0x64, 0x61, 0x79, 0x22, 0x20, 0x7d, 0x09, 0x2c, + 0x20, 0x22, 0x61, 0x75, 0x74, 0x65, 0x75, 0x72, 0x22, 0x3a, + 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x20, 0x22, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x68, 0x74, + 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x62, 0x6e, 0x66, 0x2e, 0x66, 0x72, 0x2f, 0x61, 0x72, 0x6b, + 0x3a, 0x2f, 0x31, 0x32, 0x31, 0x34, 0x38, 0x2f, 0x63, 0x62, + 0x31, 0x37, 0x37, 0x34, 0x38, 0x37, 0x37, 0x39, 0x39, 0x23, + 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, 0x20, 0x7d, 0x09, 0x2c, + 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x31, 0x22, 0x3a, 0x20, + 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, + 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x31, 0x38, 0x38, 0x38, 0x22, 0x20, 0x7d, 0x09, 0x2c, + 0x20, 0x22, 0x64, 0x61, 0x74, 0x65, 0x32, 0x22, 0x3a, 0x20, + 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, + 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x31, 0x39, 0x34, 0x35, 0x2d, 0x31, 0x32, 0x2d, 0x31, + 0x32, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6a, 0x6f, + 0x75, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x39, 0x38, 0x31, - 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6a, 0x6f, 0x75, - 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, + 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x2e, 0x2d, 0x2e, + 0x2e, 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6e, 0x6f, + 0x6d, 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x2e, 0x2d, 0x2e, 0x2e, - 0x22, 0x20, 0x7d, 0x09, 0x2c, 0x20, 0x22, 0x6e, 0x6f, 0x6d, - 0x22, 0x3a, 0x20, 0x7b, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, - 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, - 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x3a, 0x20, 0x22, 0x44, 0x6f, 0x72, 0x6f, 0x74, 0x68, - 0x79, 0x20, 0x43, 0x61, 0x6d, 0x70, 0x62, 0x65, 0x6c, 0x6c, - 0x22, 0x20, 0x7d, 0x7d, 0x20, 0x5d, 0x20, 0x7d, 0x20, 0x7d - ))), class = "httr2_response") + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x46, 0x72, 0x65, 0x64, 0x65, + 0x72, 0x69, 0x63, 0x6b, 0x20, 0x53, 0x79, 0x64, 0x6e, 0x65, + 0x79, 0x20, 0x46, 0x6f, 0x78, 0x22, 0x20, 0x7d, 0x7d, 0x20, + 0x5d, 0x20, 0x7d, 0x20, 0x7d))), class = "httr2_response") diff --git a/tests/testthat/fixtures/bowie/dbpedia.org/sparql-f06a60-POST.R b/tests/testthat/fixtures/bowie/dbpedia.org/sparql-f06a60-POST.R index 349e817b..a79972a8 100644 --- a/tests/testthat/fixtures/bowie/dbpedia.org/sparql-f06a60-POST.R +++ b/tests/testthat/fixtures/bowie/dbpedia.org/sparql-f06a60-POST.R @@ -1,9 +1,9 @@ structure(list(method = "POST", url = "https://dbpedia.org/sparql?query=PREFIX%20dbo%3A%20%3Chttp%3A%2F%2Fdbpedia.org%2Fontology%3E%0APREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0ASELECT%20%3Fo%20%3Fp%20%3Fperson%0AWHERE%20%7B%0A%0A%3Fperson%20rdfs%3Alabel%20%27David%20Bowie%27%40en.%0A%3Fperson%20%3Fp%20%3Fo.%0A%0A%7D%0A%0ALIMIT%20300", - status_code = 200L, headers = structure(list(date = "Thu, 21 Sep 2023 14:53:34 GMT", + status_code = 200L, headers = structure(list(date = "Fri, 20 Oct 2023 14:56:29 GMT", `content-type` = "application/sparql-results+json", `content-length` = "103605", server = "Virtuoso/08.03.3329 (Linux) x86_64-generic-linux-glibc25 VDB", - `content-disposition` = "filename=sparql_2023-09-21_14-53-36Z.json", - expires = "Thu, 28 Sep 2023 14:53:34 GMT", `cache-control` = "max-age=604800", + `content-disposition` = "filename=sparql_2023-10-20_14-26-03Z.json", + expires = "Fri, 27 Oct 2023 14:56:29 GMT", `cache-control` = "max-age=604800", `access-control-allow-credentials` = "true", `access-control-allow-methods` = "GET, POST, OPTIONS", `access-control-allow-headers` = "Depth,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Accept-Encoding", `accept-ranges` = "bytes"), class = "httr2_headers"), diff --git a/tests/testthat/fixtures/coords/query.wikidata.org/sparql-da96e9-POST.R b/tests/testthat/fixtures/coords/query.wikidata.org/sparql-da96e9-POST.R deleted file mode 100644 index c8fc6e3b..00000000 --- a/tests/testthat/fixtures/coords/query.wikidata.org/sparql-da96e9-POST.R +++ /dev/null @@ -1,111 +0,0 @@ -structure(list(method = "POST", url = "https://query.wikidata.org/sparql?query=PREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0ASELECT%20%3Fcity%20%28COALESCE%28%3Fcity_labell%2C%27%27%29%20AS%20%3Fcity_label%29%20%3Fcoords%0AWHERE%20%7B%0A%0A%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2A%20wd%3AQ486972.%0AOPTIONAL%20%7B%0A%09%3Fcity%20rdfs%3Alabel%20%3Fcity_labell.%0A%09FILTER%28lang%28%3Fcity_labell%29%20IN%20%28%27en%27%29%29%0A%7D%0A%0ASERVICE%20wikibase%3Aaround%20%7B%0A%3Fcity%20wdt%3AP625%20%3Fcoords.%0Abd%3AserviceParam%20wikibase%3Acenter%20%27Point%284.84%2045.76%29%27%5E%5Egeo%3AwktLiteral.%0Abd%3AserviceParam%20wikibase%3Aradius%20%275%27.%0A%7D%0A%0A%7D%0A%0ALIMIT%202", - status_code = 200L, headers = structure(list(server = "nginx/1.18.0", - date = "Thu, 21 Sep 2023 15:00:32 GMT", `content-type` = "application/sparql-results+json;charset=utf-8", - `x-first-solution-millis` = "3", `x-served-by` = "wdqs1012", - `access-control-allow-origin` = "*", `cache-control` = "public, max-age=300", - `content-encoding` = "gzip", vary = "Accept, Accept-Encoding", - age = "5", `x-cache` = "cp6010 miss, cp6016 pass", `x-cache-status` = "pass", - `server-timing` = "cache;desc=\"pass\", host;desc=\"cp6016\"", - `strict-transport-security` = "max-age=106384710; includeSubDomains; preload", - `report-to` = "{ \"group\": \"wm_nel\", \"max_age\": 604800, \"endpoints\": [{ \"url\": \"https://intake-logging.wikimedia.org/v1/events?stream=w3c.reportingapi.network_error&schema_uri=/w3c/reportingapi/network_error/1.0.0\" }] }", - nel = "{ \"report_to\": \"wm_nel\", \"max_age\": 604800, \"failure_fraction\": 0.05, \"success_fraction\": 0.0}", - `x-client-ip` = "2001:861:39c3:66a0:2bf:8e75:112c:d103", - `accept-ranges` = "bytes"), class = "httr2_headers"), - body = as.raw(c(0x7b, 0x0a, 0x20, 0x20, 0x22, 0x68, 0x65, - 0x61, 0x64, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x22, 0x76, 0x61, 0x72, 0x73, 0x22, 0x20, 0x3a, - 0x20, 0x5b, 0x20, 0x22, 0x63, 0x69, 0x74, 0x79, 0x22, 0x2c, - 0x20, 0x22, 0x63, 0x69, 0x74, 0x79, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x63, 0x6f, 0x6f, 0x72, - 0x64, 0x73, 0x22, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x7d, 0x2c, - 0x0a, 0x20, 0x20, 0x22, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x73, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x22, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, - 0x22, 0x20, 0x3a, 0x20, 0x5b, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x22, 0x63, 0x69, 0x74, 0x79, 0x22, - 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, - 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, - 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, - 0x69, 0x6b, 0x69, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6f, 0x72, - 0x67, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, 0x51, - 0x33, 0x33, 0x36, 0x30, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x22, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x20, - 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x22, 0x64, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, - 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, - 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x67, 0x69, 0x73, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x6f, - 0x6e, 0x74, 0x2f, 0x67, 0x65, 0x6f, 0x73, 0x70, 0x61, 0x72, - 0x71, 0x6c, 0x23, 0x77, 0x6b, 0x74, 0x4c, 0x69, 0x74, 0x65, - 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, - 0x20, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, - 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, - 0x3a, 0x20, 0x22, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x34, - 0x2e, 0x38, 0x34, 0x30, 0x34, 0x30, 0x38, 0x33, 0x33, 0x33, - 0x20, 0x34, 0x35, 0x2e, 0x37, 0x33, 0x30, 0x38, 0x36, 0x39, - 0x34, 0x34, 0x34, 0x29, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x22, 0x63, 0x69, 0x74, 0x79, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, 0x6d, 0x6c, - 0x3a, 0x6c, 0x61, 0x6e, 0x67, 0x22, 0x20, 0x3a, 0x20, 0x22, - 0x65, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, - 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, - 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, - 0x20, 0x22, 0x37, 0x74, 0x68, 0x20, 0x61, 0x72, 0x72, 0x6f, - 0x6e, 0x64, 0x69, 0x73, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x6f, 0x66, 0x20, 0x4c, 0x79, 0x6f, 0x6e, 0x22, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x7d, 0x2c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x22, 0x63, 0x69, 0x74, 0x79, 0x22, 0x20, - 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, - 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, - 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x69, - 0x6b, 0x69, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6f, 0x72, 0x67, - 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, 0x51, 0x33, - 0x33, 0x36, 0x30, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x22, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x20, 0x3a, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x22, 0x64, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, 0x65, - 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, - 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x67, 0x69, 0x73, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x6f, 0x6e, - 0x74, 0x2f, 0x67, 0x65, 0x6f, 0x73, 0x70, 0x61, 0x72, 0x71, - 0x6c, 0x23, 0x77, 0x6b, 0x74, 0x4c, 0x69, 0x74, 0x65, 0x72, - 0x61, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, - 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, - 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, - 0x20, 0x22, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x34, 0x2e, - 0x38, 0x34, 0x30, 0x34, 0x30, 0x38, 0x33, 0x33, 0x33, 0x20, - 0x34, 0x35, 0x2e, 0x37, 0x33, 0x30, 0x38, 0x36, 0x39, 0x34, - 0x34, 0x34, 0x29, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x22, 0x63, 0x69, 0x74, 0x79, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, 0x6d, 0x6c, 0x3a, - 0x6c, 0x61, 0x6e, 0x67, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x65, - 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, - 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, - 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, - 0x22, 0x37, 0x74, 0x68, 0x20, 0x61, 0x72, 0x72, 0x6f, 0x6e, - 0x64, 0x69, 0x73, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x6f, 0x66, 0x20, 0x4c, 0x79, 0x6f, 0x6e, 0x22, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x7d, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d - ))), class = "httr2_response") diff --git a/tests/testthat/fixtures/coords/query.wikidata.org/sparql-dfaf1d-POST.R b/tests/testthat/fixtures/coords/query.wikidata.org/sparql-dfaf1d-POST.R new file mode 100644 index 00000000..f609c851 --- /dev/null +++ b/tests/testthat/fixtures/coords/query.wikidata.org/sparql-dfaf1d-POST.R @@ -0,0 +1,108 @@ +structure(list(method = "POST", url = "https://query.wikidata.org/sparql?query=PREFIX%20wd%3A%20%3Chttp%3A%2F%2Fwww.wikidata.org%2Fentity%2F%3E%0APREFIX%20wdt%3A%20%3Chttp%3A%2F%2Fwww.wikidata.org%2Fprop%2Fdirect%2F%3E%0APREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0ASELECT%20%3Fcity%20%28COALESCE%28%3Fcity_labell%2C%27%27%29%20AS%20%3Fcity_label%29%20%3Fcoords%0AWHERE%20%7B%0A%0A%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2A%20wd%3AQ486972.%0AOPTIONAL%20%7B%0A%09%3Fcity%20rdfs%3Alabel%20%3Fcity_labell.%0A%09FILTER%28lang%28%3Fcity_labell%29%20IN%20%28%27en%27%29%29%0A%7D%0A%0ASERVICE%20wikibase%3Aaround%20%7B%0A%3Fcity%20wdt%3AP625%20%3Fcoords.%0Abd%3AserviceParam%20wikibase%3Acenter%20%27Point%284.84%2045.76%29%27%5E%5Egeo%3AwktLiteral.%0Abd%3AserviceParam%20wikibase%3Aradius%20%275%27.%0A%7D%0A%0A%7D%0A%0ALIMIT%202", + status_code = 200L, headers = structure(list(server = "nginx/1.18.0", + date = "Fri, 20 Oct 2023 14:56:30 GMT", `content-type` = "application/sparql-results+json;charset=utf-8", + `x-first-solution-millis` = "6", `x-served-by` = "wdqs1006", + `access-control-allow-origin` = "*", `cache-control` = "public, max-age=300", + `content-encoding` = "gzip", vary = "Accept, Accept-Encoding", + age = "7", `x-cache` = "cp6009 miss, cp6013 pass", `x-cache-status` = "pass", + `server-timing` = "cache;desc=\"pass\", host;desc=\"cp6013\"", + `strict-transport-security` = "max-age=106384710; includeSubDomains; preload", + `report-to` = "{ \"group\": \"wm_nel\", \"max_age\": 604800, \"endpoints\": [{ \"url\": \"https://intake-logging.wikimedia.org/v1/events?stream=w3c.reportingapi.network_error&schema_uri=/w3c/reportingapi/network_error/1.0.0\" }] }", + nel = "{ \"report_to\": \"wm_nel\", \"max_age\": 604800, \"failure_fraction\": 0.05, \"success_fraction\": 0.0}", + `x-client-ip` = "2a01:e0a:279:2b60:6497:4b04:42fc:5a81", + `accept-ranges` = "bytes", `content-length` = "317"), class = "httr2_headers"), + body = as.raw(c(0x7b, 0x0a, 0x20, 0x20, 0x22, 0x68, 0x65, + 0x61, 0x64, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x76, 0x61, 0x72, 0x73, 0x22, 0x20, 0x3a, + 0x20, 0x5b, 0x20, 0x22, 0x63, 0x69, 0x74, 0x79, 0x22, 0x2c, + 0x20, 0x22, 0x63, 0x69, 0x74, 0x79, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x63, 0x6f, 0x6f, 0x72, + 0x64, 0x73, 0x22, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x7d, 0x2c, + 0x0a, 0x20, 0x20, 0x22, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x73, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, + 0x22, 0x20, 0x3a, 0x20, 0x5b, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x63, 0x69, 0x74, 0x79, 0x22, + 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, + 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, + 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, + 0x69, 0x6b, 0x69, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6f, 0x72, + 0x67, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, 0x51, + 0x33, 0x38, 0x37, 0x34, 0x36, 0x30, 0x22, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x73, + 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x64, 0x61, 0x74, 0x61, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, + 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x67, 0x69, 0x73, 0x2e, 0x6e, 0x65, 0x74, + 0x2f, 0x6f, 0x6e, 0x74, 0x2f, 0x67, 0x65, 0x6f, 0x73, 0x70, + 0x61, 0x72, 0x71, 0x6c, 0x23, 0x77, 0x6b, 0x74, 0x4c, 0x69, + 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, + 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x20, 0x3a, 0x20, 0x22, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x28, 0x34, 0x2e, 0x38, 0x30, 0x32, 0x35, 0x20, 0x34, 0x35, + 0x2e, 0x37, 0x33, 0x33, 0x36, 0x31, 0x31, 0x31, 0x31, 0x31, + 0x29, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x63, + 0x69, 0x74, 0x79, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, + 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x78, 0x6d, 0x6c, 0x3a, 0x6c, 0x61, + 0x6e, 0x67, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x65, 0x6e, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, + 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x53, + 0x61, 0x69, 0x6e, 0x74, 0x65, 0x2d, 0x46, 0x6f, 0x79, 0x2d, + 0x6c, 0xc3, 0xa8, 0x73, 0x2d, 0x4c, 0x79, 0x6f, 0x6e, 0x22, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x63, 0x69, 0x74, 0x79, 0x22, + 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, + 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, + 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, + 0x69, 0x6b, 0x69, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6f, 0x72, + 0x67, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, 0x51, + 0x37, 0x32, 0x38, 0x31, 0x32, 0x33, 0x22, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x73, + 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x64, 0x61, 0x74, 0x61, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, + 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x67, 0x69, 0x73, 0x2e, 0x6e, 0x65, 0x74, + 0x2f, 0x6f, 0x6e, 0x74, 0x2f, 0x67, 0x65, 0x6f, 0x73, 0x70, + 0x61, 0x72, 0x71, 0x6c, 0x23, 0x77, 0x6b, 0x74, 0x4c, 0x69, + 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, + 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x20, 0x3a, 0x20, 0x22, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x28, 0x34, 0x2e, 0x38, 0x35, 0x37, 0x32, 0x32, 0x32, 0x32, + 0x32, 0x20, 0x34, 0x35, 0x2e, 0x37, 0x36, 0x31, 0x31, 0x31, + 0x31, 0x31, 0x31, 0x29, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x63, 0x69, 0x74, 0x79, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, 0x6d, 0x6c, + 0x3a, 0x6c, 0x61, 0x6e, 0x67, 0x22, 0x20, 0x3a, 0x20, 0x22, + 0x65, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, + 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, + 0x20, 0x22, 0x4c, 0x61, 0x20, 0x50, 0x61, 0x72, 0x74, 0x2d, + 0x44, 0x69, 0x65, 0x75, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, + 0x5d, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d))), class = "httr2_response") diff --git a/tests/testthat/fixtures/labels/query.wikidata.org/sparql-c96866-POST.R b/tests/testthat/fixtures/labels/query.wikidata.org/sparql-87c230-POST.R similarity index 92% rename from tests/testthat/fixtures/labels/query.wikidata.org/sparql-c96866-POST.R rename to tests/testthat/fixtures/labels/query.wikidata.org/sparql-87c230-POST.R index 57ea78e3..f73ca0f9 100644 --- a/tests/testthat/fixtures/labels/query.wikidata.org/sparql-c96866-POST.R +++ b/tests/testthat/fixtures/labels/query.wikidata.org/sparql-87c230-POST.R @@ -1,15 +1,15 @@ -structure(list(method = "POST", url = "https://query.wikidata.org/sparql?query=PREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0ASELECT%20%3Fmayor%20%28COALESCE%28%3Fmayor_labell%2C%27%27%29%20AS%20%3Fmayor_label%29%20%28lang%28%3Fmayor_labell%29%20AS%20%3Fmayor_label_lang%29%20%3Fnode%20%3Fplace%20%28COALESCE%28%3Fplace_labell%2C%27%27%29%20AS%20%3Fplace_label%29%20%28lang%28%3Fplace_labell%29%20AS%20%3Fplace_label_lang%29%20%3Fspecies%0AWHERE%20%7B%0A%0A%3Fmayor%20wdt%3AP31%20%3Fspecies.%0A%3Fmayor%20p%3AP39%20%3Fnode.%0A%3Fnode%20ps%3AP39%20wd%3AQ30185.%0A%3Fnode%20pq%3AP642%20%3Fplace.%0AOPTIONAL%20%7B%0A%09%3Fmayor%20rdfs%3Alabel%20%3Fmayor_labell.%0A%09FILTER%28langMatches%28lang%28%3Fmayor_labell%29%2C%20%27fr%27%29%20%7C%7C%20langMatches%28lang%28%3Fmayor_labell%29%2C%20%27en%27%29%29%0A%7D%0A%0AOPTIONAL%20%7B%0A%09%3Fplace%20rdfs%3Alabel%20%3Fplace_labell.%0A%09FILTER%28langMatches%28lang%28%3Fplace_labell%29%2C%20%27fr%27%29%20%7C%7C%20langMatches%28lang%28%3Fplace_labell%29%2C%20%27en%27%29%29%0A%7D%0A%0AVALUES%20%3Fspecies%20%7Bwd%3AQ144%20wd%3AQ146%20wd%3AQ780%7D%0A%0A%7D%0A%0A", +structure(list(method = "POST", url = "https://query.wikidata.org/sparql?query=PREFIX%20wd%3A%20%3Chttp%3A%2F%2Fwww.wikidata.org%2Fentity%2F%3E%0APREFIX%20wdt%3A%20%3Chttp%3A%2F%2Fwww.wikidata.org%2Fprop%2Fdirect%2F%3E%0APREFIX%20ps%3A%20%3Chttp%3A%2F%2Fwww.wikidata.org%2Fprop%2Fstatement%2F%3E%0APREFIX%20pq%3A%20%3Chttp%3A%2F%2Fwww.wikidata.org%2Fprop%2Fqualifier%2F%3E%0APREFIX%20p%3A%20%3Chttp%3A%2F%2Fwww.wikidata.org%2Fprop%2F%3E%0APREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0ASELECT%20%3Fmayor%20%28COALESCE%28%3Fmayor_labell%2C%27%27%29%20AS%20%3Fmayor_label%29%20%28lang%28%3Fmayor_labell%29%20AS%20%3Fmayor_label_lang%29%20%3Fnode%20%3Fplace%20%28COALESCE%28%3Fplace_labell%2C%27%27%29%20AS%20%3Fplace_label%29%20%28lang%28%3Fplace_labell%29%20AS%20%3Fplace_label_lang%29%20%3Fspecies%0AWHERE%20%7B%0A%0A%3Fmayor%20wdt%3AP31%20%3Fspecies.%0A%3Fmayor%20p%3AP39%20%3Fnode.%0A%3Fnode%20ps%3AP39%20wd%3AQ30185.%0A%3Fnode%20pq%3AP642%20%3Fplace.%0AOPTIONAL%20%7B%0A%09%3Fmayor%20rdfs%3Alabel%20%3Fmayor_labell.%0A%09FILTER%28langMatches%28lang%28%3Fmayor_labell%29%2C%20%27fr%27%29%20%7C%7C%20langMatches%28lang%28%3Fmayor_labell%29%2C%20%27en%27%29%29%0A%7D%0A%0AOPTIONAL%20%7B%0A%09%3Fplace%20rdfs%3Alabel%20%3Fplace_labell.%0A%09FILTER%28langMatches%28lang%28%3Fplace_labell%29%2C%20%27fr%27%29%20%7C%7C%20langMatches%28lang%28%3Fplace_labell%29%2C%20%27en%27%29%29%0A%7D%0A%0AVALUES%20%3Fspecies%20%7Bwd%3AQ144%20wd%3AQ146%20wd%3AQ780%7D%0A%0A%7D%0A%0A", status_code = 200L, headers = structure(list(server = "nginx/1.18.0", - date = "Thu, 21 Sep 2023 14:53:41 GMT", `content-type` = "application/sparql-results+json;charset=utf-8", - `x-first-solution-millis` = "12", `x-served-by` = "wdqs1007", + date = "Fri, 20 Oct 2023 14:57:05 GMT", `content-type` = "application/sparql-results+json;charset=utf-8", + `x-first-solution-millis` = "11", `x-served-by` = "wdqs1007", `access-control-allow-origin` = "*", `cache-control` = "public, max-age=300", `content-encoding` = "gzip", vary = "Accept, Accept-Encoding", - age = "1", `x-cache` = "cp6009 miss, cp6016 pass", `x-cache-status` = "pass", - `server-timing` = "cache;desc=\"pass\", host;desc=\"cp6016\"", + age = "0", `x-cache` = "cp6012 miss, cp6013 pass", `x-cache-status` = "pass", + `server-timing` = "cache;desc=\"pass\", host;desc=\"cp6013\"", `strict-transport-security` = "max-age=106384710; includeSubDomains; preload", `report-to` = "{ \"group\": \"wm_nel\", \"max_age\": 604800, \"endpoints\": [{ \"url\": \"https://intake-logging.wikimedia.org/v1/events?stream=w3c.reportingapi.network_error&schema_uri=/w3c/reportingapi/network_error/1.0.0\" }] }", nel = "{ \"report_to\": \"wm_nel\", \"max_age\": 604800, \"failure_fraction\": 0.05, \"success_fraction\": 0.0}", - `x-client-ip` = "2001:861:39c3:66a0:2bf:8e75:112c:d103", + `x-client-ip` = "2a01:e0a:279:2b60:6497:4b04:42fc:5a81", `accept-ranges` = "bytes"), class = "httr2_headers"), body = as.raw(c(0x7b, 0x0a, 0x20, 0x20, 0x22, 0x68, 0x65, 0x61, 0x64, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, diff --git a/tests/testthat/fixtures/symogih/bhp-publi.ish-lyon.cnrs.fr-8888/sparql-899626-POST.R b/tests/testthat/fixtures/symogih/bhp-publi.ish-lyon.cnrs.fr-8888/sparql-899626-POST.R index 8a44b05e..0083af3d 100644 --- a/tests/testthat/fixtures/symogih/bhp-publi.ish-lyon.cnrs.fr-8888/sparql-899626-POST.R +++ b/tests/testthat/fixtures/symogih/bhp-publi.ish-lyon.cnrs.fr-8888/sparql-899626-POST.R @@ -1,6 +1,6 @@ structure(list(method = "POST", url = "http://bhp-publi.ish-lyon.cnrs.fr:8888/sparql?query=PREFIX%20sym%3A%20%3Chttp%3A%2F%2Fsymogih.org%2Fontology%2F%3E%0APREFIX%20syr%3A%20%3Chttp%3A%2F%2Fsymogih.org%2Fresource%2F%3E%0APREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0ASELECT%20%3FKUTy%20%3FKUTyLabel%20%3Fi%20%3Fr%20%3FstDate%20%3FstLabel%0AWHERE%20%7B%0A%0A%3Fr%20sym%3AassociatesObject%20syr%3AAbOb213.%0A%3Fr%20sym%3AisComponentOf%20%3Fi.%0A%3Fi%20sym%3AknowledgeUnitStandardLabel%20%3FstLabel.%0A%3Fi%20sym%3AknowledgeUnitStandardDate%20%3FstDate.%0A%3Fi%20sym%3AhasKnowledgeUnitType%20%3FKUTy.%0A%3FKUTy%20rdfs%3Alabel%20%3FKUTyLabel.%0A%0A%7D%0A%0ALIMIT%2010", status_code = 200L, headers = structure(list(Server = "Virtuoso/07.20.3217 (Linux) x86_64-unknown-linux-gnu", - Connection = "close", Date = "Thu, 21 Sep 2023 14:53:37 GMT", + Connection = "close", Date = "Fri, 20 Oct 2023 14:56:41 GMT", `Accept-Ranges` = "bytes", `Content-Type` = "application/sparql-results+json", `Transfer-Encoding` = "chunked", `Content-Encoding` = "gzip"), class = "httr2_headers"), body = as.raw(c(0x0a, 0x7b, 0x20, 0x22, 0x68, 0x65, 0x61, diff --git a/tests/testthat/fixtures/versions/sparql.archives-ouvertes.fr/sparql-4c12e7-POST.R b/tests/testthat/fixtures/versions/sparql.archives-ouvertes.fr/sparql-4c12e7-POST.R index 30d3fca2..f175ed8f 100644 --- a/tests/testthat/fixtures/versions/sparql.archives-ouvertes.fr/sparql-4c12e7-POST.R +++ b/tests/testthat/fixtures/versions/sparql.archives-ouvertes.fr/sparql-4c12e7-POST.R @@ -1,6 +1,6 @@ structure(list(method = "POST", url = "http://sparql.archives-ouvertes.fr/sparql?query=PREFIX%20dcterms%3A%20%3Chttp%3A%2F%2Fpurl.org%2Fdc%2Fterms%2F%3E%0APREFIX%20haldoc%3A%20%3Chttps%3A%2F%2Fdata.archives-ouvertes.fr%2Fdocument%2F%3E%0ASELECT%20%3Fobject%20%3Fp%20%3Fversion%0AWHERE%20%7B%0A%0Ahaldoc%3Ainria-00362381%20dcterms%3AhasVersion%20%3Fversion.%0A%3Fversion%20%3Fp%20%3Fobject.%0A%0A%7D%0A%0ALIMIT%205", status_code = 200L, headers = structure(list(server = "Virtuoso/07.20.3229 (Linux) x86_64-pc-linux-gnu", - date = "Thu, 28 Sep 2023 08:58:05 GMT", `accept-ranges` = "bytes", + date = "Fri, 20 Oct 2023 14:56:41 GMT", `accept-ranges` = "bytes", `content-type` = "application/sparql-results+json", `transfer-encoding` = "chunked", `content-encoding` = "gzip"), class = "httr2_headers"), body = as.raw(c(0x0a, 0x7b, 0x20, 0x22, 0x68, 0x65, 0x61, diff --git a/tests/testthat/fixtures/wikidata_prefixes/query.wikidata.org/sparql-5bb7a1-POST.R b/tests/testthat/fixtures/wikidata_prefixes/query.wikidata.org/sparql-5bb7a1-POST.R new file mode 100644 index 00000000..169d5815 --- /dev/null +++ b/tests/testthat/fixtures/wikidata_prefixes/query.wikidata.org/sparql-5bb7a1-POST.R @@ -0,0 +1,543 @@ +structure(list(method = "POST", url = "https://query.wikidata.org/sparql?query=PREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0ASELECT%20%3Fo%20%28COALESCE%28%3Fo_labell%2C%27%27%29%20AS%20%3Fo_label%29%20%3Fp%20%28COALESCE%28%3Fp_labell%2C%27%27%29%20AS%20%3Fp_label%29%20%3Friver%0AWHERE%20%7B%0A%0A%3Friver%20%3Fp%20%3Fo.%0AOPTIONAL%20%7B%0A%09%3Fp%20rdfs%3Alabel%20%3Fp_labell.%0A%09FILTER%28lang%28%3Fp_labell%29%20IN%20%28%27en%27%29%29%0A%7D%0A%0AOPTIONAL%20%7B%0A%09%3Fo%20rdfs%3Alabel%20%3Fo_labell.%0A%09FILTER%28lang%28%3Fo_labell%29%20IN%20%28%27en%27%29%29%0A%7D%0A%0AVALUES%20%3Friver%20%7Bwd%3AQ602%7D%0A%0A%7D%0A%0ALIMIT%2010", + status_code = 200L, headers = structure(list(server = "nginx/1.18.0", + date = "Fri, 20 Oct 2023 14:57:07 GMT", `content-type` = "application/sparql-results+json;charset=utf-8", + `x-first-solution-millis` = "6", `x-served-by` = "wdqs1012", + `access-control-allow-origin` = "*", `cache-control` = "public, max-age=300", + `content-encoding` = "gzip", vary = "Accept, Accept-Encoding", + age = "1", `x-cache` = "cp6010 miss, cp6013 pass", `x-cache-status` = "pass", + `server-timing` = "cache;desc=\"pass\", host;desc=\"cp6013\"", + `strict-transport-security` = "max-age=106384710; includeSubDomains; preload", + `report-to` = "{ \"group\": \"wm_nel\", \"max_age\": 604800, \"endpoints\": [{ \"url\": \"https://intake-logging.wikimedia.org/v1/events?stream=w3c.reportingapi.network_error&schema_uri=/w3c/reportingapi/network_error/1.0.0\" }] }", + nel = "{ \"report_to\": \"wm_nel\", \"max_age\": 604800, \"failure_fraction\": 0.05, \"success_fraction\": 0.0}", + `x-client-ip` = "2a01:e0a:279:2b60:6497:4b04:42fc:5a81", + `accept-ranges` = "bytes"), class = "httr2_headers"), + body = as.raw(c(0x7b, 0x0a, 0x20, 0x20, 0x22, 0x68, 0x65, + 0x61, 0x64, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x76, 0x61, 0x72, 0x73, 0x22, 0x20, 0x3a, + 0x20, 0x5b, 0x20, 0x22, 0x6f, 0x22, 0x2c, 0x20, 0x22, 0x6f, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x2c, 0x20, 0x22, + 0x70, 0x22, 0x2c, 0x20, 0x22, 0x70, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x72, 0x69, 0x76, 0x65, + 0x72, 0x22, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, + 0x20, 0x20, 0x22, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, + 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x22, + 0x20, 0x3a, 0x20, 0x5b, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x72, 0x69, 0x76, 0x65, 0x72, 0x22, + 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, + 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, + 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, + 0x69, 0x6b, 0x69, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6f, 0x72, + 0x67, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, 0x51, + 0x36, 0x30, 0x32, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x70, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, + 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, + 0x77, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x2f, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x2f, 0x50, 0x39, 0x37, + 0x34, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6f, + 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x20, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, + 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, + 0x77, 0x69, 0x6b, 0x69, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6f, + 0x72, 0x67, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, + 0x51, 0x31, 0x33, 0x37, 0x39, 0x36, 0x37, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6f, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, 0x6d, 0x6c, + 0x3a, 0x6c, 0x61, 0x6e, 0x67, 0x22, 0x20, 0x3a, 0x20, 0x22, + 0x65, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, + 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, + 0x20, 0x22, 0x50, 0x72, 0x69, 0x6e, 0x74, 0x7a, 0x65, 0x22, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x70, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x6c, 0x69, + 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x7d, 0x2c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x72, 0x69, 0x76, 0x65, 0x72, 0x22, 0x20, + 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, + 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, + 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x69, + 0x6b, 0x69, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6f, 0x72, 0x67, + 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, 0x51, 0x36, + 0x30, 0x32, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x70, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x20, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, + 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, + 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x2f, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x2f, 0x50, 0x39, 0x37, 0x34, + 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6f, 0x22, + 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, + 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, + 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, + 0x69, 0x6b, 0x69, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6f, 0x72, + 0x67, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, 0x51, + 0x31, 0x37, 0x38, 0x30, 0x36, 0x32, 0x22, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6f, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, 0x6d, 0x6c, 0x3a, + 0x6c, 0x61, 0x6e, 0x67, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x65, + 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, + 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, + 0x22, 0x45, 0x79, 0x72, 0x69, 0x65, 0x75, 0x78, 0x22, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x70, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, + 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x2c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x72, 0x69, 0x76, 0x65, 0x72, 0x22, 0x20, 0x3a, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, + 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, + 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x69, 0x6b, + 0x69, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6f, 0x72, 0x67, 0x2f, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, 0x51, 0x36, 0x30, + 0x32, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x70, + 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x20, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, + 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, + 0x77, 0x69, 0x6b, 0x69, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6f, + 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x2f, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x2f, 0x50, 0x39, 0x37, 0x34, 0x22, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6f, 0x22, 0x20, + 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, + 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, + 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x69, + 0x6b, 0x69, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6f, 0x72, 0x67, + 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, 0x51, 0x31, + 0x38, 0x37, 0x38, 0x33, 0x34, 0x22, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6f, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, 0x6d, 0x6c, 0x3a, 0x6c, + 0x61, 0x6e, 0x67, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x65, 0x6e, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, + 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, + 0x53, 0x61, 0xc3, 0xb4, 0x6e, 0x65, 0x22, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x70, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x20, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, + 0x61, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x20, 0x3a, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x72, 0x69, 0x76, 0x65, 0x72, 0x22, 0x20, 0x3a, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x75, + 0x72, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, + 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x2f, 0x51, 0x36, 0x30, 0x32, 0x22, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x70, 0x22, 0x20, + 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, + 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, + 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x69, + 0x6b, 0x69, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6f, 0x72, 0x67, + 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x2f, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x2f, 0x50, 0x39, 0x37, 0x34, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6f, 0x22, 0x20, 0x3a, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, + 0x75, 0x72, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, + 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x69, 0x6b, 0x69, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, 0x51, 0x32, 0x30, 0x31, + 0x33, 0x34, 0x31, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6f, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, + 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x78, 0x6d, 0x6c, 0x3a, 0x6c, 0x61, 0x6e, + 0x67, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x65, 0x6e, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x6c, + 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x49, 0x73, + 0xc3, 0xa8, 0x72, 0x65, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x70, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, + 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, + 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, + 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x72, 0x69, + 0x76, 0x65, 0x72, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, + 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, + 0x77, 0x77, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x2f, 0x51, 0x36, 0x30, 0x32, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x70, 0x22, 0x20, 0x3a, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, + 0x75, 0x72, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, + 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x69, 0x6b, 0x69, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, + 0x72, 0x6f, 0x70, 0x2f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x2f, 0x50, 0x39, 0x37, 0x34, 0x22, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6f, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x75, 0x72, + 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, + 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, + 0x77, 0x77, 0x77, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x2f, 0x51, 0x34, 0x30, 0x35, 0x38, 0x33, + 0x36, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6f, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x3a, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x78, 0x6d, 0x6c, 0x3a, 0x6c, 0x61, 0x6e, 0x67, 0x22, + 0x20, 0x3a, 0x20, 0x22, 0x65, 0x6e, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, + 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x41, 0x69, 0x6e, 0x22, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x70, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x6c, 0x69, + 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x7d, 0x2c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x72, 0x69, 0x76, 0x65, 0x72, 0x22, 0x20, + 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, + 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, + 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x69, + 0x6b, 0x69, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6f, 0x72, 0x67, + 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, 0x51, 0x36, + 0x30, 0x32, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x70, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x20, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, + 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, + 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x2f, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x2f, 0x50, 0x39, 0x37, 0x34, + 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6f, 0x22, + 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, + 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, + 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, + 0x69, 0x6b, 0x69, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6f, 0x72, + 0x67, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, 0x51, + 0x34, 0x39, 0x30, 0x36, 0x31, 0x37, 0x22, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6f, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, 0x6d, 0x6c, 0x3a, + 0x6c, 0x61, 0x6e, 0x67, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x65, + 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, + 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, + 0x22, 0x54, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x70, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, + 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x20, 0x3a, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x2c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x72, 0x69, 0x76, 0x65, 0x72, 0x22, 0x20, 0x3a, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, + 0x75, 0x72, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, + 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x69, 0x6b, 0x69, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, 0x51, 0x36, 0x30, 0x32, + 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x70, 0x22, + 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, + 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, + 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, + 0x69, 0x6b, 0x69, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6f, 0x72, + 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x2f, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x2f, 0x50, 0x39, 0x37, 0x34, 0x22, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6f, 0x22, 0x20, 0x3a, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, + 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, + 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x69, 0x6b, + 0x69, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6f, 0x72, 0x67, 0x2f, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, 0x51, 0x34, 0x39, + 0x37, 0x33, 0x32, 0x37, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6f, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, + 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x78, 0x6d, 0x6c, 0x3a, 0x6c, 0x61, + 0x6e, 0x67, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x65, 0x6e, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, + 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x47, + 0x61, 0x72, 0x64, 0x6f, 0x6e, 0x22, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x70, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x20, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, + 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, + 0x3a, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x72, + 0x69, 0x76, 0x65, 0x72, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x75, 0x72, + 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, + 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, + 0x77, 0x77, 0x77, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x2f, 0x51, 0x36, 0x30, 0x32, 0x22, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x70, 0x22, 0x20, 0x3a, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, + 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, + 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x69, 0x6b, + 0x69, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6f, 0x72, 0x67, 0x2f, + 0x70, 0x72, 0x6f, 0x70, 0x2f, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x2f, 0x50, 0x39, 0x37, 0x34, 0x22, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6f, 0x22, 0x20, 0x3a, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x75, + 0x72, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, + 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x2f, 0x51, 0x35, 0x30, 0x32, 0x34, + 0x35, 0x33, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6f, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x3a, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x78, 0x6d, 0x6c, 0x3a, 0x6c, 0x61, 0x6e, 0x67, + 0x22, 0x20, 0x3a, 0x20, 0x22, 0x65, 0x6e, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x6c, 0x69, + 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x53, 0x61, 0x6c, + 0x61, 0x6e, 0x66, 0x65, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x70, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, + 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, + 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, + 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x72, 0x69, + 0x76, 0x65, 0x72, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, + 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, + 0x77, 0x77, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x2f, 0x51, 0x36, 0x30, 0x32, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x70, 0x22, 0x20, 0x3a, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, + 0x75, 0x72, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, + 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x69, 0x6b, 0x69, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, + 0x72, 0x6f, 0x70, 0x2f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x2f, 0x50, 0x39, 0x37, 0x34, 0x22, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6f, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x75, 0x72, + 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, + 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, + 0x77, 0x77, 0x77, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x2f, 0x51, 0x36, 0x31, 0x31, 0x33, 0x35, + 0x30, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6f, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x3a, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x78, 0x6d, 0x6c, 0x3a, 0x6c, 0x61, 0x6e, 0x67, 0x22, + 0x20, 0x3a, 0x20, 0x22, 0x65, 0x6e, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, + 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x70, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x3a, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, + 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x22, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x72, 0x69, 0x76, 0x65, 0x72, + 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x20, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, + 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, + 0x77, 0x69, 0x6b, 0x69, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6f, + 0x72, 0x67, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, + 0x51, 0x36, 0x30, 0x32, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x70, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, + 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, + 0x77, 0x77, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x70, + 0x2f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x2f, 0x50, 0x39, + 0x37, 0x34, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6f, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x20, 0x3a, 0x20, 0x22, 0x75, 0x72, 0x69, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, + 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, + 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x6f, 0x72, 0x67, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x2f, 0x51, 0x36, 0x33, 0x33, 0x38, 0x31, 0x39, 0x22, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6f, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, 0x6d, + 0x6c, 0x3a, 0x6c, 0x61, 0x6e, 0x67, 0x22, 0x20, 0x3a, 0x20, + 0x22, 0x65, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x20, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, + 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, + 0x3a, 0x20, 0x22, 0x41, 0x72, 0x76, 0x65, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x70, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x22, 0x20, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x20, 0x3a, 0x20, 0x22, 0x6c, 0x69, 0x74, 0x65, + 0x72, 0x61, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x20, 0x3a, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d))), class = "httr2_response") diff --git a/tests/testthat/test-send_sparql.R b/tests/testthat/test-send_sparql.R index 0bfb639a..4e27bf17 100644 --- a/tests/testthat/test-send_sparql.R +++ b/tests/testthat/test-send_sparql.R @@ -118,5 +118,4 @@ test_that("deprecation", { req$method }) }) - }) diff --git a/tests/testthat/test-spq_perform.R b/tests/testthat/test-spq_perform.R index 0390e579..85afa765 100644 --- a/tests/testthat/test-spq_perform.R +++ b/tests/testthat/test-spq_perform.R @@ -14,4 +14,16 @@ test_that("spq_perform() works, replace_prefixes", { spq_perform(replace_prefixes = TRUE) }) expect_true(all(grepl("syr\\:", tib[["KUTy"]]))) + + httptest2::with_mock_dir(file.path("fixtures", "wikidata_prefixes"), { + tib = spq_init() %>% + spq_set(river = "wd:Q602") %>% + spq_add("?river ?p ?o") %>% + spq_label(p,o) %>% + spq_head(n = 10) %>% + spq_perform(replace_prefixes = TRUE) + }) + expect_true(all(grepl("wd\\:", tib[["o"]]))) + expect_true(all(grepl("wdt\\:", tib[["p"]]))) }) + From a19924ca18b65dfc5f70a9fa4e7d161fde3d2c76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABlle=20Salmon?= Date: Thu, 21 Dec 2023 14:37:35 +0100 Subject: [PATCH 2/2] tests: update snapshots and error code --- R/sparql-protection.R | 9 ++++--- R/spq_assemble.R | 10 +++++--- R/spq_select.R | 8 +++---- R/treat-argument.R | 5 ++-- R/utils-str.R | 2 +- tests/testthat/_snaps/sparql-protection.md | 5 ++-- tests/testthat/_snaps/spq_assemble.md | 5 ++-- tests/testthat/_snaps/spq_control_request.md | 25 ++++++++++++-------- tests/testthat/_snaps/spq_init.md | 5 ++-- tests/testthat/_snaps/spq_language.md | 3 ++- tests/testthat/_snaps/spq_select.md | 14 ++++++----- tests/testthat/_snaps/treat-argument.md | 3 ++- tests/testthat/_snaps/utils-str.md | 5 ++-- 13 files changed, 60 insertions(+), 39 deletions(-) diff --git a/R/sparql-protection.R b/R/sparql-protection.R index 92d02f7e..bf6c9a19 100644 --- a/R/sparql-protection.R +++ b/R/sparql-protection.R @@ -7,7 +7,7 @@ #' expression. #' @export spq <- function(...) { - x <- c_character(...) + x <- c_character(..., call = rlang::caller_env()) structure(x, class = c("spq", "character")) } @@ -30,14 +30,17 @@ format.spq <- function(x, ...) { #' @export is.spq <- function(x) inherits(x, "spq") -c_character <- function(...) { +c_character <- function(..., call) { x <- c(...) if (length(x) == 0) { return(character()) } if (!is.character(x)) { - rlang::abort("Character input expected") + cli::cli_abort( + "Character input expected", + call = call + ) } x diff --git a/R/spq_assemble.R b/R/spq_assemble.R index 0b363d84..d013d3f6 100644 --- a/R/spq_assemble.R +++ b/R/spq_assemble.R @@ -18,7 +18,11 @@ spq_assemble = function(.query, strict = TRUE) { # prefixes ----- prefixes_known = .query[["prefixes_provided"]] %>% dplyr::bind_rows(usual_prefixes) - check_prefixes(.query[["prefixes_used"]], prefixes_known = prefixes_known) + check_prefixes( + .query[["prefixes_used"]], + prefixes_known = prefixes_known, + call = rlang::caller_env() + ) part_prefixes <- if (nrow(.query[["prefixes_provided"]]) > 0) { glue::glue( @@ -249,6 +253,6 @@ add_label = function(vector, label, label_name, old_select) { } -check_prefixes <- function(prefixes, prefixes_known) { - purrr::walk(prefixes, check_prefix, prefixes_known = prefixes_known) +check_prefixes <- function(prefixes, prefixes_known, call) { + purrr::walk(prefixes, check_prefix, prefixes_known = prefixes_known, call = call) } diff --git a/R/spq_select.R b/R/spq_select.R index 9bfa23ff..59c228e4 100644 --- a/R/spq_select.R +++ b/R/spq_select.R @@ -47,7 +47,7 @@ spq_select = function(.query = NULL, ..., .spq_duplicate = NULL) { if (length(plus_variables) > 0) { - check_variables_present(.query, plus_variables) + check_variables_present(.query, plus_variables, call = rlang::caller_env()) if (is.data.frame(.query[["structure"]])) { .query[["structure"]][["selected"]] = FALSE @@ -65,7 +65,7 @@ spq_select = function(.query = NULL, ..., .spq_duplicate = NULL) { str_remove("\\-") if (length(minus_variables) > 0) { - check_variables_present(.query, minus_variables) + check_variables_present(.query, minus_variables, call = rlang::caller_env()) .query = purrr::reduce( minus_variables, @@ -77,7 +77,7 @@ spq_select = function(.query = NULL, ..., .spq_duplicate = NULL) { return(.query) } -check_variables_present <- function(query, variables) { +check_variables_present <- function(query, variables, call) { if (nzchar(Sys.getenv("GLITTER.TESTING.SELECT"))) { return() @@ -89,6 +89,6 @@ check_variables_present <- function(query, variables) { cli::cli_abort(c( "Can't use {.fun spq_select} on absent variables: {toString(absent_variables)}.", i = "Did you forget a call to {.fun spq_add}, {.fun spq_mutate} or {.fun spq_label}?" - )) + ), call = call) } } diff --git a/R/treat-argument.R b/R/treat-argument.R index f5134e3f..d56281a9 100644 --- a/R/treat-argument.R +++ b/R/treat-argument.R @@ -58,7 +58,7 @@ spq_translate_dsl <- function(code) { # Abort if not sparqlish not_sparqlish = xml2::xml_find_all(code_data, ".//SYMBOL_FUNCTION_CALL[@sparqlish='false']") if (length(not_sparqlish) > 0) { - rlang::abort( + cli::cli_abort( c( x = sprintf( "Can't find SPARQL equivalent for %s().", @@ -67,7 +67,8 @@ spq_translate_dsl <- function(code) { ) ), i = "If you think there should be one, open an issue in https://github.com/lvaudor/glitter." - ) + ), + call = NULL ) } diff --git a/R/utils-str.R b/R/utils-str.R index 53b532b2..bb3e2d05 100644 --- a/R/utils-str.R +++ b/R/utils-str.R @@ -46,7 +46,7 @@ is_value = function(string){ #' @examples #' check_prefix(prefixes_used=c("wd","wdt"), prefixes_known = usual_prefixes) # TRUE #' check_prefix("blop:blabla", prefixes_known=usual_prefixes) #returns error message -check_prefix = function(prefixes_used, prefixes_known) { +check_prefix = function(prefixes_used, prefixes_known, call = NULL) { unknown_prefixes <- prefixes_used[!(prefixes_used %in% prefixes_known$name)] if (length(unknown_prefixes) == 0) { return(TRUE) diff --git a/tests/testthat/_snaps/sparql-protection.md b/tests/testthat/_snaps/sparql-protection.md index 64af1368..23292df3 100644 --- a/tests/testthat/_snaps/sparql-protection.md +++ b/tests/testthat/_snaps/sparql-protection.md @@ -9,6 +9,7 @@ Code spq(1) - Error - Character input expected + Condition + Error: + ! Character input expected diff --git a/tests/testthat/_snaps/spq_assemble.md b/tests/testthat/_snaps/spq_assemble.md index d4642e83..a7a736e4 100644 --- a/tests/testthat/_snaps/spq_assemble.md +++ b/tests/testthat/_snaps/spq_assemble.md @@ -54,8 +54,9 @@ Code spq_init() %>% spq_filter(lang(itemTitleLOOKTYPO) == "en") %>% spq_assemble() - Error - Can't filter on undefined variables: ?itemTitleLOOKTYPO + Condition + Error in `spq_assemble()`: + ! Can't filter on undefined variables: ?itemTitleLOOKTYPO i You haven't mentioned them in any triple, VALUES, mutate. # spq_assemble() called from printing isn't strict diff --git a/tests/testthat/_snaps/spq_control_request.md b/tests/testthat/_snaps/spq_control_request.md index bc6d6e7a..9f3b5dfa 100644 --- a/tests/testthat/_snaps/spq_control_request.md +++ b/tests/testthat/_snaps/spq_control_request.md @@ -2,37 +2,42 @@ Code spq_control_request(timeout = "ahahah") - Error - Must provide an integer as `timeout`. + Condition + Error in `spq_control_request()`: + ! Must provide an integer as `timeout`. i You provided a "character". --- Code spq_control_request(max_tries = "ahahah") - Error - Must provide an integer as `max_tries`. + Condition + Error in `spq_control_request()`: + ! Must provide an integer as `max_tries`. i You provided a "character". --- Code spq_control_request(max_seconds = "ahahah") - Error - Must provide an integer as `max_seconds`. + Condition + Error in `spq_control_request()`: + ! Must provide an integer as `max_seconds`. i You provided a "character". --- Code spq_control_request(request_type = "ahahah") - Error - `request_type` must be one of "url" or "body-form", not "ahahah". + Condition + Error in `spq_control_request()`: + ! `request_type` must be one of "url" or "body-form", not "ahahah". --- Code spq_control_request(user_agent = 42) - Error - Must provide a character as `user_agent`. + Condition + Error in `spq_control_request()`: + ! Must provide a character as `user_agent`. diff --git a/tests/testthat/_snaps/spq_init.md b/tests/testthat/_snaps/spq_init.md index f8d03d0b..9a93da04 100644 --- a/tests/testthat/_snaps/spq_init.md +++ b/tests/testthat/_snaps/spq_init.md @@ -33,6 +33,7 @@ Code spq_init(request_control = list(max_tries = 1L)) - Error - `request_control` must be created by `spq_control_request()`. + Condition + Error in `spq_init()`: + ! `request_control` must be created by `spq_control_request()`. diff --git a/tests/testthat/_snaps/spq_language.md b/tests/testthat/_snaps/spq_language.md index 658b1228..f8a87ca0 100644 --- a/tests/testthat/_snaps/spq_language.md +++ b/tests/testthat/_snaps/spq_language.md @@ -2,7 +2,8 @@ Code spq_init() %>% spq_language("en") - Warning + Condition + Warning: `spq_language()` was deprecated in glitter 0.2.0. i Please use `spq_label()` instead. i See the `.languages` argument diff --git a/tests/testthat/_snaps/spq_select.md b/tests/testthat/_snaps/spq_select.md index fb863f4c..163e0e04 100644 --- a/tests/testthat/_snaps/spq_select.md +++ b/tests/testthat/_snaps/spq_select.md @@ -117,8 +117,8 @@ i In index: 1. i With name: birthyear. - Caused by error in `spq_translate_dsl()`: - ! x Can't find SPARQL equivalent for collapse(). + Caused by error: + x Can't find SPARQL equivalent for collapse(). i If you think there should be one, open an issue in https://github.com/lvaudor/glitter. # spq_select can use DISTINCT and REDUCED @@ -158,8 +158,9 @@ spq_init() %>% spq_add("?station wdt:P16 wd:Q1552") %>% spq_add( "?station wdt:P31 wd:Q928830") %>% spq_add("?station wdt:P625 ?coords") %>% spq_select(station_label, blop) - Error - Can't use `spq_select()` on absent variables: ?station_label, ?blop. + Condition + Error: + ! Can't use `spq_select()` on absent variables: ?station_label, ?blop. i Did you forget a call to `spq_add()`, `spq_mutate()` or `spq_label()`? --- @@ -168,7 +169,8 @@ spq_init() %>% spq_add("?station wdt:P16 wd:Q1552") %>% spq_add( "?station wdt:P31 wd:Q928830") %>% spq_add("?station wdt:P625 ?coords") %>% spq_label(station) %>% spq_select(station_label, blop) - Error - Can't use `spq_select()` on absent variables: ?blop. + Condition + Error: + ! Can't use `spq_select()` on absent variables: ?blop. i Did you forget a call to `spq_add()`, `spq_mutate()` or `spq_label()`? diff --git a/tests/testthat/_snaps/treat-argument.md b/tests/testthat/_snaps/treat-argument.md index 29fdc74f..7ebc1f0e 100644 --- a/tests/testthat/_snaps/treat-argument.md +++ b/tests/testthat/_snaps/treat-argument.md @@ -2,7 +2,8 @@ Code spq_treat_argument("something(bla)") - Error + Condition + Error: x Can't find SPARQL equivalent for something(). i If you think there should be one, open an issue in https://github.com/lvaudor/glitter. diff --git a/tests/testthat/_snaps/utils-str.md b/tests/testthat/_snaps/utils-str.md index 4495e57e..4c677865 100644 --- a/tests/testthat/_snaps/utils-str.md +++ b/tests/testthat/_snaps/utils-str.md @@ -2,6 +2,7 @@ Code check_prefix("blop", usual_prefixes) - Error - Can't find prefix(es) blop. Please use spq_prefix(). + Condition + Error in `check_prefix()`: + ! Can't find prefix(es) blop. Please use spq_prefix().