Home > Class Reference > ENSLIB namespace > %iKnow.Configuration


persistent class %iKnow.Configuration extends %Library.Persistent

SQL Table Name: %iKnow.Configuration

This class groups the configuration parameters to drive the iKnow Smart Indexing algorithm as executed by the iKnow engine (external libraries). Configurations are referred to by name and can be used across domains within the same namespace.

When creating a configuration, you can pass initial values for the following properties to its %New() method:

  1. Name (required)
  2. DetectLanguage
  3. Languages
  4. UserDictionary
  5. Summarize
Check the respective property descriptions for more details.

Property Inventory (Including Private)

Method Inventory (Including Private)

Properties (Including Private)

property DetectLanguage as %Boolean;
Whether or not to use Automatic Language Identification
Property methods: DetectLanguageDisplayToLogical(), DetectLanguageGet(), DetectLanguageIsValid(), DetectLanguageLogicalToDisplay(), DetectLanguageNormalize(), DetectLanguageSet()
property Languages as %List;
The list of languages the engine should take into account when processing the text.
Property methods: LanguagesGet(), LanguagesIsValid(), LanguagesLogicalToOdbc(), LanguagesOdbcToLogical(), LanguagesSet()
property Name as %String [ ReadOnly ];
The name of this configuration, which should be unique within the namespace (case-insensitive)
Property methods: NameDisplayToLogical(), NameGet(), NameIndexCheck(), NameIndexCheckUnique(), NameIndexDelete(), NameIndexExists(), NameIndexOpen(), NameIndexSQLCheckUnique(), NameIndexSQLExists(), NameIndexSQLFindPKeyByConstraint(), NameIndexSQLFindRowIDByConstraint(), NameIsValid(), NameLogicalToDisplay(), NameLogicalToOdbc(), NameNormalize()
deprecated property Summarize as %Integer [ InitialExpression = 1 ];
This setting is deprecated. Summaries are now generated at query time.
Property methods: SummarizeDisplayToLogical(), SummarizeGet(), SummarizeIsValid(), SummarizeLogicalToDisplay(), SummarizeNormalize(), SummarizeSet()
property UserDictionary as %String (MAXLEN = 1000);
The name to the User Dictionary to use for rewriting and standardizing input as it is read by the engine. See also %iKnow.UserDictionary. Alternatively, the path to a file-based User Dictionary can be supplied.
Property methods: UserDictionaryDisplayToLogical(), UserDictionaryGet(), UserDictionaryIsValid(), UserDictionaryLogicalToDisplay(), UserDictionaryLogicalToOdbc(), UserDictionaryNormalize(), UserDictionarySet()

Methods (Including Private)

method %ConstructClone(deep As %Boolean = 0, ByRef cloned As %String, location As %String) as %RegisteredObject
Inherited description: Clone the current object to a new object. If deep is 1 then this does a deep copy which will also copy any subobjects and if deep is 0 then it will create another reference to any subobjects and increment the reference count appropriately. It returns the new cloned object.

Note that even if deep=0 when you clone a parent object in a parent child relationship or a one object of a one to many relationship then it will construct clones of all the child/many objects. This is because a child/many object can only point at a single parent and so if we did not create a clone of these then you would have a relationship with zero items in it. If you really just want to clone the object without these child/many objects then pass deep=-1 to this method.

After the clone is constructed it will call %OnConstructClone(object,deep,.cloned) on the clone if it is defined so that you can perform any additional steps e.g. taking out a lock. This works just the same way as %OnNew() does.

The object is the oref of the original object that was cloned. The cloned array is just used internally when doing a deep clone to prevent recursive loops, do not pass anything in at all for this parameter on the initial call. If you write a %OnConstructClone and from here you wish to call %ConstructClone on another object pass in the cloned array, e.g. 'Do oref.%ConstructClone(1,.cloned)' so that it can prevent recursive loops.

The location is used internally to pass the new location for stream objects.

classmethod %DeleteExtent(concurrency As %Library.Integer = -1, ByRef deletecount As %Library.String, ByRef instancecount As %Library.String, pInitializeExtent As %Library.Integer = 1, Output errorLog As %Library.Status) as %Status
Inherited description: Delete all instances of this class from its extent. On exit instancecount contains the original number of instances while deletecount contains the number of instances actually deleted.

Internally, %DeleteExtent() iterates over the set of instances in the collection and invokes the %Delete() method. Refer to About Concurrency for more details on the optional concurrency argument. The option pInitializeExtent argument allows the user to override the default behavior of calling %KillExtent() when all instances are successfully deleted. %KillExtent() is called by default when the extent is empty so that empty globals can be killed. If %KillExtent() is not called then some empty globals can remain as well as the ID counter if it exists. The default value for pInitializeExtent is 1. Unless the caller specifies a false value for pInitializeExtent the globals used by the extent will be killed. In some cases, the globals used by the extent are not used exclusively by the extent. In those cases it is possible that some globals will still be defined even when pInitializeExtent is true.

Returns a %Status value indicating success or failure.

private classmethod %KillExtentData() as %Status
Inherited description: %KillExtentData() - kills extent data in storage. This method is implemented by the storage class.
private method %OnBeforeSave(insert As %Boolean) as %Status
Inherited description: This callback method is invoked by the %Save() method to provide notification that the object is being saved. It is called before any data is written to disk.

insert will be set to 1 if this object is being saved for the first time.

If this method returns an error then the call to %Save() will fail.

private classmethod %OnDelete(oid As %ObjectIdentity) as %Status
Inherited description: This callback method is invoked by the %Delete() method to provide notification that the object specified by oid is being deleted.

If this method returns an error then the object will not be deleted.

private method %OnNew(pName As %String, pDetectLanguage As %Integer = 0, pLanguages As %List = $lb("en"), pUserDictionary As %String = "", pSummarize As %Integer = 1, pMaxConceptLength As %Integer = 0) as %Status
Creates a Configuration object with the specified parameters.

Note: Use of the pMaxConceptLength parameter is deprecated as from 2013.2

deprecated classmethod Create(name As %String, DetectLanguage As %Integer = 0, languages As %List = $lb("en"), userDictionary As %String = "", summarize As %Integer = 1, maxConceptLength As %Integer = 0, Output sc As %Status = $$$OK) as %iKnow.Configuration
Create a new Configuration object using the specified parameters

Deprecated: Please use %New() and %Save()

deprecated classmethod Delete(configName As %String) as %Status