{
"jsonrpc": "2.0",
"id": 2,
"result": {
"tools": [
{
"name": "get_owner_and_pets",
"title": "Owner Information",
"description": "Retrieves all information about an owner and their pets registered with 'heathy pet co.'",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The systems uuid-v4 used to represent the owner as registered in the system"
}
},
"required": ["id"]
}
},
]
}
} (docs)INSERT {
GRAPH <database> {
?ownerBound a ex:owner ;
ex:name ?name ; ex:pet ?petBound .
?petBound a ex:pet ;
ex:name ?petName ; ex:age ?age .
}
} WHERE {
?resource ex:name ?name ;
BIND( UUID() AS ?ownerUuid ) .
?resource ex:pet ?pet .
BIND( UUID() AS ?petUuid ).
?pet ex:name ?petName ;
ex:age ?age ;
BIND( URI(CONCAT(ex:owners, '/', ?ownerUuid)) AS ?ownerBound ) .
BIND( URI(CONCAT(?ownerBound, '/', ?petUuid)) AS ?petBound ) .
}
CONSTRUCT { [] ex:item ?owner . } WHERE {
GRAPH <database> {
?owner a ex:owner .
}
}
CONSTRUCT {
?id a ex:owner ;
?ownerP ?ownerO ;
?ownerO ?petP ?petO ;
} WHERE {
GRAPH <database> {
?id a ex:owner ;
?ownerP ?ownerO ;
OPTIONAL { ?ownerO ?petP ?petO . }
}
}
DELETE {
GRAPH <database> {
?origOwner ex:pet ?orig-pet .
?origPet a ex:pet ;
ex:age ?age ;
ex:name ?name .
}
} INSERT {
GRAPH <database> {
?newOwner ex:pet ?movedIri .
?movedIri a ex:pet ;
ex:age ?age
ex:name ?name
}
} WHERE {
# From received data:
?o ex:new-owner ?newOwner .
BIND( URI( CONCAT(ex:owners, '/', ?id) ) AS ?origOwner ) .
BIND( URI( CONCAT(?origOwner, '/', ?petId) ) AS ?origPet ) .
BIND( URI( CONCAT(?newOwner, '/', ?petId) ) AS ?movedIri ) .
# Go look in the current state of the database for whether the owner and pet exist.
GRAPH <database> {
?origOwner ex:pet ?origPet .
?origPet a ex:pet ;
ex:age ?age ;
ex:name ?name .
?newOwner a ex:owner ;
}
}
© 2025 Jitse De Smet Creative Commons Attribution 4.0, unless otherwise indicated.
Source