-
Notifications
You must be signed in to change notification settings - Fork 11
Open
Labels
Description
Just registering this here as I'm in the middle of something, but I'm finding various errors when trying to use SPARQL update. Here's what I'm working with:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX ibis: <https://vocab.methodandstructure.com/ibis#>
PREFIX ci: <https://vocab.methodandstructure.com/content-inventory#>
PREFIX cgto: <https://vocab.methodandstructure.com/graph-tool#>
PREFIX itcv: <https://vocab.methodandstructure.com/intertwingler#>
WITH <https://placeholder.ibis.makethingsmakesense.com/>
INSERT {
?s skos:inScheme <urn:uuid:cf16f32c-824a-47c2-b176-905c11f8978c> .
# ?s ci:alias ?a .
}
WHERE {
# BIND (?a AS (IRI(REPLACE(str(?s), "^urn:uuid:", "https://placeholder.ibis.makethingsmakesense.com/", "i"))))
# ?s a ?o .
# FILTER (?o IN (skos:Concept, ibis:Issue, ibis:Position, ibis:Argument))
{ ?s a skos:Concept } UNION { ?s a ibis:Issue } UNION { ?s a ibis:Position } UNION { ?s a ibis:Argument }
} ;
WITH <https://placeholder.ibis.makethingsmakesense.com/>
INSERT {
?s dct:creator <urn:uuid:ca637d4b-c11b-4152-be98-bde602e7abd4> .
}
WHERE {
# { ?s a ?o } OPTIONAL { ?s dct:creator ?c }
# FILTER (!BOUND(?c) && ?o IN (skos:Concept, ibis:Issue, ibis:Position, ibis:Argument))
{ ?s a skos:Concept } UNION { ?s a ibis:Issue } UNION { ?s a ibis:Position } UNION { ?s a ibis:Argument }
OPTIONAL { ?s dct:creator ?c }
FILTER (!bound(?c))
} ;
MOVE <https://placeholder.ibis.makethingsmakesense.com/> TO <dns:placeholder.methodandstructure.com>This has been massaged into a non-breaking state but as you can see the commented-out bits are where the problems are:
- the
INoperator doesn't seem to include?oin the algebra and thus evaluates to false (ie nothing selected and therefore nothing inserted) - that
BINDjust straight blows up during parsing with an error saying the operand isnil - I also had accidentally left off the
dct:prefix declaration and it didn't complain about the unbound prefix - I guess the internal state of parsed queries get changed? because I can't seem to execute a parsed query twice without it raising
- I also get a 409 error in
open_url(???) if I try to run the query twice on the repo, even if I reparse it.
Anyway, again, just registering this now but I'll circle back when I have some more time to look into it.