-
Notifications
You must be signed in to change notification settings - Fork 147
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Inserts in n3patch may contain Blanknodes : Forbidden by CSS from N3PATCH spec #659
Comments
The ability to be able to patch a graph with blank nodes by putting variables in for blank nodes and including a Is the issue here
or
Please give the (relevant pits of) initial graph in this case. |
If (2) then we could in the short term we should in short term only use SPARQL patch for the case with a where clause, and in the medium term add the where functionality to N3 patch If (1) then I am surprised, as in practice there tends to be a way of doing this. |
@timbl thanks for your comments I suppose my issue was badly written.
The issue is that CSS following the N3PATCH spec
|
So is the issue that we just need to get N3Patch to allow blank nodes in inserted statements? And continue to allow variables in deleted statements and inserted statements with a where. |
Yes. |
Of the 3 options, I would vote for:
If mashlib is adding in the forbidden BlankNodes then that is where the bug is. Rdflib could throw an error when mashlib does this. But mashlib should still stop doing it. :) I changed it in one place, you can see in how simple the change is. Should not be a lot of effort to do the same thing in the remaining places? |
This comment has been minimized.
This comment has been minimized.
In SolidOS/Rdflib the actual workflow is the following :
|
@timbl @michielbdejong @angelo-v
The solidcommunity.net migration tests from NSS to CSS an issue with N3PATCH returning error 422 appeared
N3PATCH spec do not allow BlankNodes to the contrary of SPARQL and RdfLiB allows BlankNodes when anonymize is not possible
RdfLib update manager can create PATCH with SPARQL or N3PATCH depending on Accept-Patch header
and seems to priorise N3PATCH
For both PATCH the algorithm takes
[delete, inserts]
array statements?conditions
and then replaces related Blanknodes by ?conditions in inserts/deletesThis do not cover the cases where no Where clause is possible.
This is an example of just inserts in a turtle list :
Here there is no way to create a bnodes_context for a
Where clause
.There seems to be different solutions :
solid:inserts
is created with BlankNodesref 1. is not really Solid compliant because SPARQL is not a Solid spec but will work in NSS and CSS. This could be a mi-term solution
The advantage is that it makes turtle more friendly human readable. Lists are easier to read.
ref 2. imply to modify any mashlib apps to not use BlankNodes with lists when PATCH is involved at a latter stage
ref 3. Do not imply any app modification and could be easier to follow in future spec evolution
solutions 1. and 3. are at RdfLib level
solution 2. is at any apps level using RdfLib update manager
The text was updated successfully, but these errors were encountered: