insertData is to be an acceptable top-level key for staging data into Fluree.
insertData allows insertion of JSON-LD-shaped data. It will never retract-and-replace/upsert values on existing subject-properties described in the payload. It will only insert the resolved expanded triples.
If SHACL rules existed to, for example, restrict a property to single cardinality, and insertData would add a second value to a subject on that property, the transaction should be rejected.
It should be possible to include insertData with deleteData or upsertData in the same payload, but there should be a specified sequential order to the processing of those mutations (e.g. deleteData -> upsertData -> insertData)
insertData does not need (and maybe should not allow) a where key pre-query and populate bindings. Those bindings should not be necessary and are not allowed within the insertData JSON-LD (this will be true for deleteData and upsertData as well)
Description
insertData
is to be an acceptable top-level key for staging data into Fluree.insertData
allows insertion of JSON-LD-shaped data. It will never retract-and-replace/upsert values on existing subject-properties described in the payload. It will only insert the resolved expanded triples.If SHACL rules existed to, for example, restrict a property to single cardinality, and
insertData
would add a second value to a subject on that property, the transaction should be rejected.It should be possible to include
insertData
withdeleteData
orupsertData
in the same payload, but there should be a specified sequential order to the processing of those mutations (e.g.deleteData
->upsertData
->insertData
)insertData
does not need (and maybe should not allow) awhere
key pre-query and populate bindings. Those bindings should not be necessary and are not allowed within theinsertData
JSON-LD (this will be true fordeleteData
andupsertData
as well)Notes
See Dan's notes here: https://gist.github.com/dpetran/be119af28e518fae44a991a6515909ec