Subclasses of this class declaratively define an iKnow domain and its contents using an
XML representation in the Domain XData block. Compiling this class will
automatically create the iKnow domain and any static elements or settings within, such as
metadata fields, domain parameters and metrics. Using %Build()) users can
then "build" the contents of the domain, loading any sources from the locations referred
to in Domain and populating relevant metadata, matching and metrics.
For a detailed reference of the available elements and attributes of this XData block, consult the class
reference for %iKnow.Model.domain and other classes in the %iKnow.Model
package.
final classmethod %Build(pVerbose As %Boolean = 1, ByRef pParams, pAsync As %Boolean = 0) as %Status [ Language = objectscript ]
Invoking this method will build the domain described in Domain,
which includes loading data and dictionaries, matching dictionaries and building metrics,
depending on the various settings of the <domain> element and its sub-elements.
The pVerbose argument controls whether status output is provided to stdev
(if pAsync=0) or written to a global for GUI pickup (pAsync=1, for
internal use only).
final classmethod %DropData(pDropDictionaries As %Boolean = 1, pDropBlackLists As %Boolean = 0) as %Status [ Language = objectscript ]
Drops all non-static data from the domain defined by this class.
Depending on the values of pDropDictionaries and pDropBlackLists, dictionary
info and blacklists are purged as well.
classmethod %GetDomainId() as %Integer [ Language = objectscript ]
Returns the domain ID corresponding to the domain defined in Domain
classmethod %GetDomainName() as %String [ Language = objectscript ]
Returns the domain name as defined in Domain
classmethod %GetExpressionValue(pName As %String, Output pValue As %String, ByRef pParams) as %Status [ Language = objectscript ]
Evaluates the expression named pName and returns the result by reference.
classmethod %OnAfterBuild(pDomainId As %Integer) as %Status [ Language = objectscript ]
Callback invoked at the end of %Build(). Subclasses can implement this
method to execute custom code at the end of a domain build operation.
classmethod %OnAfterDropData(pDomainId As %Integer, pDropDictionaries As %Boolean = 1, pDropBlackLists As %Boolean = 1) as %Status [ Language = objectscript ]
Callback invoked at the end of %DropData(). Subclasses can implement this
method to execute custom code at the end of a drop data operation.
classmethod %OnBeforeBuild(pDomainId As %Integer) as %Status [ Language = objectscript ]
Callback invoked at the start of %Build(). Subclasses can implement this
method to execute custom code at the start of a domain build operation.
classmethod %OnBeforeDropData(pDomainId As %Integer, pDropDictionaries As %Boolean = 1, pDropBlackLists As %Boolean = 1) as %Status [ Language = objectscript ]
Callback invoked at the start of %DropData(). Subclasses can implement this
method to execute custom code at the start of a drop data operation.
final classmethod %UpdateDictionaries(pDropFirst As %Boolean = 0, pMatch As %Boolean = 1, pVerbose As %Boolean = 1, ByRef pParams, pAsync As %Boolean = 0) as %Status [ Language = objectscript ]
This method will update dictionaries based on the current contents of the <matching>
element in Domain, without making any changes to the current data (in terms
of sources) already stored in the domain. If pMatch is 1, all sources in the domain
will be matched after the dictionaries are updated. If pDropFirst is 1, the
current dictionaries will first be dropped from the domain, otherwise only new dictionary
entries will be added (no updates or deletions of existing entries).
Build parameters passed through pParams will be used to override default
expression values used in the dictionary definitions in the same way as in %Build().
The pVerbose argument controls whether status output is provided to stdev
(if pAsync=0) or written to a global for GUI pickup (pAsync=1, for
internal use only).
final classmethod %UpdateMetrics(pDropFirst As %Boolean = 1, pVerbose As %Boolean = 1) as %Status [ Language = objectscript ]
This method will explicitly rebuild all metrics in the domain described in Domain,
optionally dropping any existing values first if pDropFirst is 1.