public static ReservedKeysVerificationStrategy create(final Configuration configuration) {
        final Object listOrSet = configuration.getProperty(KEYS);
        final Set<String> keys;
        if (null == listOrSet)
            keys = new LinkedHashSet<>(DEFAULT_RESERVED_KEYS);
        else
            keys = listOrSet instanceof Set ? (Set) listOrSet : new LinkedHashSet<>((List) listOrSet);

        return build()
                .reservedKeys(keys)
                .throwException(configuration.getBoolean(THROW_EXCEPTION, false))
                .logWarning(configuration.getBoolean(LOG_WARNING, false)).create();
    }
This verification strategy detects property keys that should not be used by the traversal. A term may be reserved
by a particular graph implementation or as a convention given best practices.

@author Stephen Mallette (http://stephen.genoprime.com)
 * @example <pre>
 * __.addV("person").property("id", 123)           // throws an IllegalStateException
 * __.addE("knows").property("label", "green")     // throws an IllegalStateException
 * </pre>
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReservedKeysVerificationStrategy.java