Editing graph in Fuseki UI removes the graph
Version
5.6.0
What happened?
After saving an edited graph, the graph appears to save ("Graph updated for dataset "COLT"") , but r-selecting the graph from the list of current graphs fails. Using "List current graphs" no longer shows the graph.
Using the "add data" tab, the graph can be reloaded and viewed in the edit tab again. But, editing and saving repeats the issue.
Change the line:
<http://www.w3.org/2006/vcard/ns#honorific-prefix> "Dr."@en
to:
<http://www.w3.org/2006/vcard/ns#honorific-prefix> "Man"@en
is a simple example that shows the problem.
Tha sample data file, OLT_People_Test.trig:
PREFIX colt: <https://colt.data/>
PREFIX conf: <https://olt.data/configuration/>
PREFIX dc: <http://purl.org/dc/terms/>
PREFIX olt: <https://olt.data/>
PREFIX org: <https://olt.data/organization/>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX ppl: <https://olt.data/people/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX stat: <https://olt.data/status/>
PREFIX tags: <https://olt.data/tags/>
PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>
PREFIX xml: <http://www.w3.org/XML/1998/namespace>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
olt:people_test {
<uuid:8d333fa8-f299-4727-be6f-19cfefbdf521>
rdf:type ppl:Employee;
vcard:fn "CTO Keven L. Ates"@en;
vcard:hasEmail [ rdf:type vcard:Work;
vcard:hasValue "mailto:[email protected]";
tags:onDomainUse <uuid:748fa57b-5dd3-46a8-9d57-8ac51656d6df>
];
vcard:hasEmail [ rdf:type vcard:Work;
vcard:hasValue "mailto:[email protected]";
tags:onDomainUse <uuid:78408f2b-0229-4ae4-aa0e-0dc91ed33bf1>
];
vcard:hasName [ vcard:additional-name "L."@en;
vcard:family-name "Ates"@en;
vcard:given-name "Keven"@en;
vcard:honorific-prefix "Dr."@en
];
vcard:hasRole <uuid:0b30dfd9-b1c0-44ec-a4bf-d1d1a772d35c>;
vcard:hasTitle <uuid:0dfabfc9-c471-440f-849b-0eae321b4019>;
ppl:hasUserSettings [ rdf:type ppl:UserSettings;
ppl:userSettings "{\"favorites\":[\"uuid:b0d18e5e-31e0-4e42-83bd-2c8f5baa627d\",\"uuid:9841ba7a-629f-476f-887f-f10f7529c687\"],\"theme\":\"dark\"}";
olt:settingsApp <uuid:7cef700b-b12d-59f7-b456-f48ea2603227>
] .
}
The log just after the save is shown.
Relevant output and stacktrace
[2025-10-29 15:45:23.905] INFO [qtp388489274-22] [org.apache.jena.atlas.logging.FmtLog.info(FmtLog.java:85)] - [107] PUT http://localhost:3030/COLT/data?graph=https:%2F%2Folt.data%2Fpeople_test
[2025-10-29 15:45:23.905] INFO [qtp388489274-22] [org.apache.jena.atlas.logging.FmtLog.info(FmtLog.java:85)] - [107] => Host: localhost:3030
[2025-10-29 15:45:23.905] INFO [qtp388489274-22] [org.apache.jena.atlas.logging.FmtLog.info(FmtLog.java:85)] - [107] => Connection: keep-alive
[2025-10-29 15:45:23.905] INFO [qtp388489274-22] [org.apache.jena.atlas.logging.FmtLog.info(FmtLog.java:85)] - [107] => Content-Length: 0
[2025-10-29 15:45:23.906] INFO [qtp388489274-22] [org.apache.jena.atlas.logging.FmtLog.info(FmtLog.java:85)] - [107] => sec-ch-ua-platform: "Linux"
[2025-10-29 15:45:23.906] INFO [qtp388489274-22] [org.apache.jena.atlas.logging.FmtLog.info(FmtLog.java:85)] - [107] => User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
[2025-10-29 15:45:23.906] INFO [qtp388489274-22] [org.apache.jena.atlas.logging.FmtLog.info(FmtLog.java:85)] - [107] => Accept: application/json, text/javascript, */*; q=0.01
[2025-10-29 15:45:23.906] INFO [qtp388489274-22] [org.apache.jena.atlas.logging.FmtLog.info(FmtLog.java:85)] - [107] => sec-ch-ua: "Google Chrome";v="141", "Not?A_Brand";v="8", "Chromium";v="141"
[2025-10-29 15:45:23.906] INFO [qtp388489274-22] [org.apache.jena.atlas.logging.FmtLog.info(FmtLog.java:85)] - [107] => Content-Type: text/turtle; charset=UTF-8
[2025-10-29 15:45:23.906] INFO [qtp388489274-22] [org.apache.jena.atlas.logging.FmtLog.info(FmtLog.java:85)] - [107] => sec-ch-ua-mobile: ?0
[2025-10-29 15:45:23.906] INFO [qtp388489274-22] [org.apache.jena.atlas.logging.FmtLog.info(FmtLog.java:85)] - [107] => Origin: http://localhost:3030
[2025-10-29 15:45:23.906] INFO [qtp388489274-22] [org.apache.jena.atlas.logging.FmtLog.info(FmtLog.java:85)] - [107] => Sec-Fetch-Site: same-origin
[2025-10-29 15:45:23.906] INFO [qtp388489274-22] [org.apache.jena.atlas.logging.FmtLog.info(FmtLog.java:85)] - [107] => Sec-Fetch-Mode: cors
[2025-10-29 15:45:23.906] INFO [qtp388489274-22] [org.apache.jena.atlas.logging.FmtLog.info(FmtLog.java:85)] - [107] => Sec-Fetch-Dest: empty
[2025-10-29 15:45:23.906] INFO [qtp388489274-22] [org.apache.jena.atlas.logging.FmtLog.info(FmtLog.java:85)] - [107] => Referer: http://localhost:3030/
[2025-10-29 15:45:23.906] INFO [qtp388489274-22] [org.apache.jena.atlas.logging.FmtLog.info(FmtLog.java:85)] - [107] => Accept-Encoding: gzip, deflate, br, zstd
[2025-10-29 15:45:23.906] INFO [qtp388489274-22] [org.apache.jena.atlas.logging.FmtLog.info(FmtLog.java:85)] - [107] => Accept-Language: en-US,en;q=0.9,ja;q=0.8
[2025-10-29 15:45:23.906] INFO [qtp388489274-22] [org.apache.jena.atlas.logging.FmtLog.info(FmtLog.java:85)] - [107] => Cookie: refresh_token_cookie=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWJqZWN0Ijp7ImlkIjoiY2F0ZXRlc3RAZXhhbXBsZS5jb20iLCJ1c2VySVJJIjoidXVpZDo1YWIxOTQyMi0xNjE1LTQzYzEtOTRlZi05MDZkYTU5ODllZjkiLCJ1c2VyTmV3IjpmYWxzZSwidXNlck5hbWUiOiJjYXRldGVzdEBleGFtcGxlLmNvbSIsIm5hbWUiOnsiY29tcG9zaXRlIjoiQ2F0ZSBVc2VyLCBTci4iLCJwcmVmaXgiOm51bGwsInRpdGxlIjpudWxsLCJmaXJzdCI6IkNhdGUiLCJtaWRkbGUiOm51bGwsImxhc3QiOiJVc2VyIiwic3VmZml4IjoiU3IuIn0sIm9yZyI6bnVsbCwidHlwZSI6bnVsbCwiZW1haWxzIjpbImNhdGV0ZXN0QGV4YW1wbGUuY29tIl0sImdyb3VwcyI6WyJjb2x0X3BwZF9hZG1pbnMiLCJjb2x0X2FkbWlucyJdfSwidHlwZSI6InJlZnJlc2giLCJleHAiOjE3NjE4NDkxOTcsImlhdCI6MTc2MTc2Mjc5NywianRpIjoiZGFlM2NlZTctOGIwNS00OTZkLThkZTEtZWEyOTM2MmQxYzk0In0.wGkwcbi6D8ebUr25qB_iVygo6B1p416jhFcZ-OlBUjE
[2025-10-29 15:45:23.908] INFO [qtp388489274-22] [org.apache.jena.fuseki.system.DataUploader.incomingData(DataUploader.java:94)] - [107] Body: Content-Length=0, Content-Type=text/turtle, Charset=UTF-8 => Turtle : Count=0 Triples=0 Quads=0
[2025-10-29 15:45:23.909] INFO [qtp388489274-22] [org.apache.jena.atlas.logging.FmtLog.info(FmtLog.java:85)] - [107] <= Content-Type: application/json
[2025-10-29 15:45:23.909] INFO [qtp388489274-22] [org.apache.jena.atlas.logging.FmtLog.info(FmtLog.java:85)] - [107] <= Content-Length: 61
[2025-10-29 15:45:23.909] INFO [qtp388489274-22] [org.apache.jena.atlas.logging.FmtLog.info(FmtLog.java:85)] - [107] 200 OK (2 ms)
Are you interested in making a pull request?
Maybe
It is noteworthy that on my application-side, deletes and inserts perform as expected via SPARQL.
What's the configuration of the COLT dataset?
This is odd:
[107] PUT http://localhost:3030/COLT/data?graph=https:%2F%2Folt.data%2Fpeople_test
[107] => Host: localhost:3030
[107] => Connection: keep-alive
[107] => Content-Length: 0
. . .
A PUT of zero bytes empties the graph.
Have you done a complete reload (Control-F5)? I seem to recall that there was a change in this area and maybe the browser cache still has javascript from a previous version.
Ping @AtesComp
A PUT of zero bytes empties the graph and empty graph, for TDB2, don't show up.
So why is it PUTing zero bytes when there is an entire graph of data? I just delete a few triples in a much larger graph in the editor.
So why is it PUTing zero bytes when there is an entire graph of data? I just delete a few triples in a much larger graph in the editor.
Don't know. But it is why the graph disappears.
So the problem looks to be in the UI, not the server. The UI is not sending the updated graph.
I noticed this was an issue in 5.5.0 as well. Looking at the diff for jena-fuseki2/jena-fuseki-ui/src/views/dataset/Edit.vue, I noticed CodeMirror is used and was updated.
There looks to be some issues with the update. Since I've worked with CodeMirror on another project, I'm working on a pull request for the Fuseki UI.