When adding an already existing entity to a set without importing it, it is currently possible to add triples that will be inserted into the persistent graph without enforcing the single-value constraint on the functional properties (since the preexisting_graph would be empty). This should be fixed.
Example:
br = graph_set.add_br(..., res=URIRef("<existing_br_uri>"), ...)
br.hasTitle("<title>")
In the example, the existing BibliographicResource could already have a title defined for it inside the persistent graph. Synchronising the above GraphSet would add a second title to the persistent entity (unless the two literals are exactly the same), thus breaking the functional constraint.
When adding an already existing entity to a set without importing it, it is currently possible to add triples that will be inserted into the persistent graph without enforcing the single-value constraint on the functional properties (since the
preexisting_graphwould be empty). This should be fixed.Example:
In the example, the existing
BibliographicResourcecould already have a title defined for it inside the persistent graph. Synchronising the aboveGraphSetwould add a second title to the persistent entity (unless the two literals are exactly the same), thus breaking the functional constraint.