com.bigdata.rdf.changesets.ChangeAction Maven / Gradle / Ivy
package com.bigdata.rdf.changesets;
import com.bigdata.rdf.model.StatementEnum;
/**
* Attempting to add or remove statements can have a number of different
* effects. This enum captures the different actions that can take place as
* a result of trying to add or remove a statement from the database.
*/
public enum ChangeAction {
/**
* The focus statement was not in the database before and will be
* in the database after the commit. This can be the result of either
* explicit addStatement() operations on the SAIL connection, or from
* new inferences being generated via truth maintenance when the
* database has inference enabled. If the focus statement has a
* statement type of explicit then it was added via an addStatement()
* operation. If the focus statement has a statement type of inferred
* then it was added via truth maintenance.
*/
INSERTED,
/**
* The focus statement was in the database before and will not
* be in the database after the commit. When the database has inference
* and truth maintenance enabled, the statement that is the focus of
* this change record was either an explicit statement that was the
* subject of a removeStatements() operation on the connection, or it
* was an inferred statement that was removed as a result of truth
* maintenance. Either way, the statement is no longer provable as an
* inference using other statements still in the database after the
* commit. If it were still provable, the explicit statement would have
* had its type changed to inferred, and the inferred statement would
* have remained untouched by truth maintenance. If an inferred
* statement was the subject of a removeStatement() operation on the
* connection it would have resulted in a no-op, since inferences can
* only be removed via truth maintenance.
*/
REMOVED,
/**
* This change action can only occur when inference and truth
* maintenance are enabled on the database. Sometimes an attempt at
* statement addition or removal via an addStatement() or
* removeStatements() operation on the connection will result in a type
* change rather than an actual assertion or deletion. When in
* inference mode, statements can have one of three statement types:
* explicit, inferred, or axiom (see {@link StatementEnum}). There are
* several reasons why a statement will change type rather than be
* asserted or deleted:
*
*
* - A statement is asserted, but already exists in the database as
* an inference or an axiom. The existing statement will have its type
* changed from inference or axiom to explicit.
* - An explicit statement is retracted, but is still provable by
* other means. It will have its type changed from explicit to
* inference.
* - An explicit statement is retracted, but is one of the axioms
* needed for inference. It will have its type changed from explicit to
* axiom.
*
*/
UPDATED,
// /**
// * This change action can occur for one of two reasons:
// *
// *
// * - A statement is asserted, but already exists in the database as
// * an explicit statement.
// * - An inferred statement or an axiom is retracted. Only explicit
// * statements can be retracted via removeStatements() operations.
// *
// */
// NO_OP
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy