Sure, this is the full mutation, but we reproduced this with just the bnode 
update. 
 

mutation updateExpressionById(
   $uri: ID!,
   $primaryId:String!,
   $versionTag:String!,
   $catalogedOn: String!,
   $createdOn: String!,
   $name: String!,
   $internalName: String!,
   $state: ID!,
   $contentModel: ID!,
   $clientTag: String!,
   $tagType: ID!) {
   outcome: updateExpression (input:{
       uri:$uri                    
       internalName: $internalName
       primaryId: $primaryId
       versionTag: $versionTag
       name:{
           string:$name
           lang:"en-US"
       }
       state: {
           uri: $state
       }
       contentModel: {
           uri: $contentModel
       }
       versionCode: {
           code:$clientTag
           tagType: {uri: $tagType}
       }
       catalogedOn: $catalogedOn
       createdOn: $createdOn
   }),
   report{
       addedCount
       diff
       conforms
       results{
           message
           severity
           constraintComponentName
           pathLabel
           focusNode{
               uri
           }
           sourceShape {
               uri
           }
       }
   }
   commit(strict: true)
}

But it's really an UPDATE mutation where you have a URI, a property, and a 
BNode object. If you call it twice with 2 different values for the BNode, 
the first call creates the graphlet

URI <prop> _BNode(val1)
 
the second call updates the property

URI <prop> _BNode(val2)

but does not delete _BNode(val1) from the graph in the process

On Tuesday, October 14, 2025 at 7:15:02 PM UTC-5 Holger Knublauch wrote:

> Hi Michael,
>
> can you share the UPDATE that you are running here? It’s difficult to 
> analyze with the currently provided details.
>
> Regards,
> Holger
>
>
> On Oct 15, 2025, at 07:10, Michael Panzer <[email protected]> wrote:
>
> When updating a blank node through a GraphQL mutation, the following 
> happens: 
>
> <image.png>
> It seems that the blank node get deleted, the updated blank node gets 
> committed, but then also the old blank node either survives or gets 
> rewritten into the triple store as an orphan.
>
> Is that something that might be a bug in the GraphQL engine in TopBraid or 
> do we need to add some garbage collection cleanup to manually delete these 
> every time a blank node value gets updated?
>
> -- 
> The topics of this mailing list include TopBraid EDG and related 
> technologies such as SHACL.
> To post to this group, send email to [email protected]
> --- 
> You received this message because you are subscribed to the Google Groups 
> "TopBraid Suite Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion visit 
> https://groups.google.com/d/msgid/topbraid-users/ae40a76b-90f3-469b-906a-3548fd5558a5n%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/topbraid-users/ae40a76b-90f3-469b-906a-3548fd5558a5n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> <image.png>
>
>
>

-- 
The topics of this mailing list include TopBraid EDG and related technologies 
such as SHACL.
To post to this group, send email to [email protected]
--- 
You received this message because you are subscribed to the Google Groups 
"TopBraid Suite Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/topbraid-users/fc384333-4856-4eea-902a-63ce4ac227ben%40googlegroups.com.

Reply via email to