Class NCModelFileAdapter
- java.lang.Object
-
- org.apache.nlpcraft.model.NCModelAdapter
-
- org.apache.nlpcraft.model.NCModelFileAdapter
-
- All Implemented Interfaces:
NCLifecycle
,NCMetadata
,NCModel
,NCModelView
public abstract class NCModelFileAdapter extends NCModelAdapter
Adapter for data models that can load model configuration from external JSON/YAML file.One of the use cases this adapter supports is ability to load model configuration from the external JSON/YAML file and then update it in the code. For example, a model can load its configuration from JSON file and then add intents or synonyms loaded from a database to a certain model element. To support this usage all getters return internal mutable sets or maps, i.e. you can modify them in your sub-class constructors and those modifications will alter the model's configuration. The following getters return mutable collections that can be modified by the caller:
getSuspiciousWords()
getAdditionalStopWords()
getIntents()
getElements()
getEnabledBuiltInTokens()
getExcludedStopWords()
getParsers()
getMacros()
getMetadata()
Read full documentation in Data Model section and review examples.
- See Also:
NCModelAdapter
-
-
Field Summary
-
Fields inherited from interface org.apache.nlpcraft.model.NCModelView
DFLT_CONV_DEPTH, DFLT_CONV_TIMEOUT_MS, DFLT_ENABLED_BUILTIN_TOKENS, DFLT_IS_DUP_SYNONYMS_ALLOWED, DFLT_IS_NO_NOUNS_ALLOWED, DFLT_IS_NO_USER_TOKENS_ALLOWED, DFLT_IS_NON_ENGLISH_ALLOWED, DFLT_IS_NOT_LATIN_CHARSET_ALLOWED, DFLT_IS_PERMUTATE_SYNONYMS, DFLT_IS_SWEAR_WORDS_ALLOWED, DFLT_JIGGLE_FACTOR, DFLT_MAX_ELEMENT_SYNONYMS, DFLT_MAX_FREE_WORDS, DFLT_MAX_SUSPICIOUS_WORDS, DFLT_MAX_SYNONYMS_THRESHOLD_ERROR, DFLT_MAX_TOKENS, DFLT_MAX_TOTAL_SYNONYMS, DFLT_MAX_UNKNOWN_WORDS, DFLT_MAX_WORDS, DFLT_METADATA, DFLT_MIN_NON_STOPWORDS, DFLT_MIN_TOKENS, DFLT_MIN_WORDS
-
-
Constructor Summary
Constructors Constructor Description NCModelFileAdapter(String filePath)
Creates new model loading its configuration from given file path.NCModelFileAdapter(URI uri)
Creates new model loading its configuration from given URI.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Set<String>
getAdditionalStopWords()
Gets an optional list of stopwords to add to the built-in ones.String
getDescription()
Gets optional short model description.Set<NCElement>
getElements()
Gets a set of model elements or named entities.Set<String>
getEnabledBuiltInTokens()
Gets a set of IDs for built-in named entities (tokens) that should be enabled and detected for this model.Set<String>
getExcludedStopWords()
Gets an optional list of stopwords to exclude from the built-in list of stopwords.String
getId()
Gets unique, immutable ID of this model.Set<String>
getIntents()
Gets list of intents declared in JSON/YML model definition, if any.int
getJiggleFactor()
Measure of how much sparsity is allowed when user input words are reordered in attempt to match the multi-word synonyms.Map<String,String>
getMacros()
Gets an optional map of macros to be used in this model.int
getMaxFreeWords()
Gets maximum number of free words until automatic rejection.int
getMaxSuspiciousWords()
Gets maximum number of suspicious words until automatic rejection.int
getMaxTokens()
Gets maximum number of all tokens (system and user defined) above which user input will be automatically rejected as too long.int
getMaxTotalSynonyms()
Total number of synonyms allowed per model.int
getMaxUnknownWords()
Gets maximum number of unknown words until automatic rejection.int
getMaxWords()
Gets maximum word count (including stopwords) above which user input will be automatically rejected as too long.Map<String,Object>
getMetadata()
Gets optional user defined model metadata that can be set by the developer and accessed later.int
getMinNonStopwords()
Gets minimum word count (excluding stopwords) below which user input will be automatically rejected as ambiguous sentence.int
getMinTokens()
Gets minimum number of all tokens (system and user defined) below which user input will be automatically rejected as too short.int
getMinWords()
Gets minimum word count (including stopwords) below which user input will be automatically rejected as too short.String
getName()
Gets descriptive name of this model.String
getOrigin()
Gets this file model adapter origin (file path or URI).List<NCCustomParser>
getParsers()
Gets optional user-defined model element parsers for custom NER implementations.Set<String>
getSuspiciousWords()
Gets an optional list of suspicious words.String
getVersion()
Gets the version of this model using semantic versioning.boolean
isDupSynonymsAllowed()
Whether or not duplicate synonyms are allowed.boolean
isNonEnglishAllowed()
Whether or not to allow non-English language in user input.boolean
isNoNounsAllowed()
Whether or not to allow user input without a single noun.boolean
isNotLatinCharsetAllowed()
Whether or not to allow non-Latin charset in user input.boolean
isNoUserTokensAllowed()
Whether or not to allow the user input with no user token detected.boolean
isPermutateSynonyms()
Whether or not to permutate multi-word synonyms.boolean
isSwearWordsAllowed()
Whether or not to allow known English swear words in user input.-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.nlpcraft.model.NCLifecycle
onDiscard, onInit
-
Methods inherited from interface org.apache.nlpcraft.model.NCMetadata
meta, meta, metaOpt, metax
-
Methods inherited from interface org.apache.nlpcraft.model.NCModel
onContext, onError, onMatchedIntent, onParsedVariant, onRejection, onResult
-
Methods inherited from interface org.apache.nlpcraft.model.NCModelView
getConversationDepth, getConversationTimeout, getMaxElementSynonyms, isMaxSynonymsThresholdError
-
-
-
-
Constructor Detail
-
NCModelFileAdapter
public NCModelFileAdapter(String filePath)
Creates new model loading its configuration from given file path. Only.js
,.json
,.yml
and.yaml
files are supported. File path can be classpath relative or absolute.- Parameters:
filePath
- Classpath relative or absolute file path to load model configuration from.- Throws:
org.apache.nlpcraft.common.NCException
- Thrown in case of any errors loading model configuration.
-
NCModelFileAdapter
public NCModelFileAdapter(URI uri)
Creates new model loading its configuration from given URI. Only.js
,.json
,.yml
and.yaml
resources are supported.- Parameters:
uri
- URI to load model configuration from.- Throws:
org.apache.nlpcraft.common.NCException
- Thrown in case of any errors loading model configuration.
-
-
Method Detail
-
getOrigin
public String getOrigin()
Gets this file model adapter origin (file path or URI).- Returns:
- This file model adapter origin (file path or URI).
-
getIntents
public Set<String> getIntents()
Gets list of intents declared in JSON/YML model definition, if any.- Returns:
- List of intents declared in JSON/YML model definition, potentially empty.
-
getId
public String getId()
Description copied from interface:NCModelView
Gets unique, immutable ID of this model.Note that model IDs are immutable while name and version can be changed freely. Changing model ID is equal to creating a completely new model. Model IDs (unlike name and version) are not exposed to the end user and only serve a technical purpose. ID's max length is 32 characters.
JSON
If using JSON/YAML model presentation this is set byid
property:{ "id": "my.model.id" }
- Specified by:
getId
in interfaceNCModelView
- Overrides:
getId
in classNCModelAdapter
- Returns:
- Unique, immutable ID of this model.
-
getName
public String getName()
Description copied from interface:NCModelView
Gets descriptive name of this model. Name's max length is 64 characters.JSON
If using JSON/YAML model presentation this is set byname
property:{ "name": "My Model" }
- Specified by:
getName
in interfaceNCModelView
- Overrides:
getName
in classNCModelAdapter
- Returns:
- Descriptive name for this model.
-
getVersion
public String getVersion()
Description copied from interface:NCModelView
Gets the version of this model using semantic versioning. Version's max length is 16 characters.JSON
If using JSON/YAML model presentation this is set byversion
property:{ "version": "1.0.0" }
- Specified by:
getVersion
in interfaceNCModelView
- Overrides:
getVersion
in classNCModelAdapter
- Returns:
- A version compatible with (www.semver.org) specification.
-
getDescription
public String getDescription()
Description copied from interface:NCModelView
Gets optional short model description. This can be displayed by the management tools.JSON
If using JSON/YAML model presentation this is set bydescription
property:{ "description": "Model description..." }
- Returns:
- Optional short model description.
-
getMaxUnknownWords
public int getMaxUnknownWords()
Description copied from interface:NCModelView
Gets maximum number of unknown words until automatic rejection. An unknown word is a word that is not part of Princeton WordNet database. If you expect a very formalized and well defined input without uncommon slang and abbreviations you can set this to a small number like one or two. However, in most cases we recommend to leave it as default or set it to a larger number like five or more.Default
If not provided by the model the default valueNCModelView.DFLT_MAX_UNKNOWN_WORDS
will be used.JSON
If using JSON/YAML model presentation this is set bymaxUnknownWords
property:{ "maxUnknownWords": 2 }
- Returns:
- Maximum number of unknown words until automatic rejection.
-
getMaxFreeWords
public int getMaxFreeWords()
Description copied from interface:NCModelView
Gets maximum number of free words until automatic rejection. A free word is a known word that is not part of any recognized token. In other words, a word that is present in the user input but won't be used to understand its meaning. Setting it to a non-zero risks the misunderstanding of the user input, while setting it to zero often makes understanding logic too rigid. In most cases we recommend setting to between one and three. If you expect the user input to contain many noisy idioms, slang or colloquials - you can set it to a larger number.Default
If not provided by the model the default valueNCModelView.DFLT_MAX_FREE_WORDS
will be used.JSON
If using JSON/YAML model presentation this is set bymaxFreeWords
property:{ "maxFreeWords": 2 }
- Returns:
- Maximum number of free words until automatic rejection.
-
getMaxSuspiciousWords
public int getMaxSuspiciousWords()
Description copied from interface:NCModelView
Gets maximum number of suspicious words until automatic rejection. A suspicious word is a word that is defined by the model that should not appear in a valid user input under no circumstances. A typical example of suspicious words would be words "sex" or "porn" when processing queries about children books. In most cases this should be set to zero (default) to automatically reject any such suspicious words in the user input.Default
If not provided by the model the default valueNCModelView.DFLT_MAX_SUSPICIOUS_WORDS
will be used.JSON
If using JSON/YAML model presentation this is set bymaxSuspiciousWords
property:{ "maxSuspiciousWords": 2 }
- Returns:
- Maximum number of suspicious words until automatic rejection.
-
getMinWords
public int getMinWords()
Description copied from interface:NCModelView
Gets minimum word count (including stopwords) below which user input will be automatically rejected as too short. In almost all cases this value should be greater than or equal to one.Default
If not provided by the model the default valueNCModelView.DFLT_MIN_WORDS
will be used.JSON
If using JSON/YAML model presentation this is set byminWords
property:{ "minWords": 2 }
- Returns:
- Minimum word count (including stopwords) below which user input will be automatically rejected as too short.
-
getMaxWords
public int getMaxWords()
Description copied from interface:NCModelView
Gets maximum word count (including stopwords) above which user input will be automatically rejected as too long. In almost all cases this value should be greater than or equal to one.Default
If not provided by the model the default valueNCModelView.DFLT_MAX_WORDS
will be used.JSON
If using JSON/YAML model presentation this is set bymaxWords
property:{ "maxWords": 50 }
- Returns:
- Maximum word count (including stopwords) above which user input will be automatically rejected as too long.
-
getMinTokens
public int getMinTokens()
Description copied from interface:NCModelView
Gets minimum number of all tokens (system and user defined) below which user input will be automatically rejected as too short. In almost all cases this value should be greater than or equal to one.Default
If not provided by the model the default valueNCModelView.DFLT_MIN_TOKENS
will be used.JSON
If using JSON/YAML model presentation this is set byminTokens
property:{ "minTokens": 1 }
- Returns:
- Minimum number of all tokens.
-
getMaxTokens
public int getMaxTokens()
Description copied from interface:NCModelView
Gets maximum number of all tokens (system and user defined) above which user input will be automatically rejected as too long. Note that sentences with large number of token can result in significant processing delay and substantial memory consumption.Default
If not provided by the model the default valueNCModelView.DFLT_MAX_TOKENS
will be used.JSON
If using JSON/YAML model presentation this is set bymaxTokens
property:{ "maxTokens": 100 }
- Returns:
- Maximum number of all tokens.
-
getMinNonStopwords
public int getMinNonStopwords()
Description copied from interface:NCModelView
Gets minimum word count (excluding stopwords) below which user input will be automatically rejected as ambiguous sentence.Default
If not provided by the model the default valueNCModelView.DFLT_MIN_NON_STOPWORDS
will be used.JSON
If using JSON/YAML model presentation this is set byminNonStopwords
property:{ "minNonStopwords": 2 }
- Returns:
- Minimum word count (excluding stopwords) below which user input will be automatically rejected as too short.
-
isNonEnglishAllowed
public boolean isNonEnglishAllowed()
Description copied from interface:NCModelView
Whether or not to allow non-English language in user input. Currently, only English language is supported. However, model can choose whether or not to automatically reject user input that is detected to be a non-English. Note that current algorithm only works reliably on longer user input (10+ words). On short sentences it will often produce an incorrect result.Default
If not provided by the model the default valueNCModelView.DFLT_IS_NON_ENGLISH_ALLOWED
will be used.JSON
If using JSON/YAML model presentation this is set bynonEnglishAllowed
property:{ "nonEnglishAllowed": false }
- Returns:
- Whether or not to allow non-English language in user input.
-
isNotLatinCharsetAllowed
public boolean isNotLatinCharsetAllowed()
Description copied from interface:NCModelView
Whether or not to allow non-Latin charset in user input. Currently, only Latin charset is supported. However, model can choose whether or not to automatically reject user input with characters outside of Latin charset. Iffalse
such user input will be automatically rejected.Default
If not provided by the model the default valueNCModelView.DFLT_IS_NOT_LATIN_CHARSET_ALLOWED
will be used.JSON
If using JSON/YAML model presentation this is set bynonLatinCharsetAllowed
property:{ "nonLatinCharsetAllowed": false }
- Returns:
- Whether or not to allow non-Latin charset in user input.
-
isSwearWordsAllowed
public boolean isSwearWordsAllowed()
Description copied from interface:NCModelView
Whether or not to allow known English swear words in user input. Iffalse
- user input with detected known English swear words will be automatically rejected.Default
If not provided by the model the default valueNCModelView.DFLT_IS_SWEAR_WORDS_ALLOWED
will be used.JSON
If using JSON/YAML model presentation this is set byswearWordsAllowed
property:{ "swearWordsAllowed": false }
- Returns:
- Whether or not to allow known swear words in user input.
-
isNoNounsAllowed
public boolean isNoNounsAllowed()
Description copied from interface:NCModelView
Whether or not to allow user input without a single noun. Iffalse
such user input will be automatically rejected. Typically for strict command or query-oriented models this should be set tofalse
as any command or query should have at least one noun subject. However, for conversational models this can be set tofalse
to allow for a smalltalk and one-liners.Default
If not provided by the model the default valueNCModelView.DFLT_IS_NO_NOUNS_ALLOWED
will be used.JSON
If using JSON/YAML model presentation this is set bynoNounsAllowed
property:{ "noNounsAllowed": false }
- Returns:
- Whether or not to allow user input without a single noun.
-
isPermutateSynonyms
public boolean isPermutateSynonyms()
Description copied from interface:NCModelView
Whether or not to permutate multi-word synonyms. Automatic multi-word synonyms permutations greatly increase the total number of synonyms in the system and allows for better multi-word synonym detection. For example, if permutation is allowed the synonym "a b c" will be automatically converted into a sequence of synonyms of "a b c", "b a c", "a c b".Default
If not provided by the model the default valueNCModelView.DFLT_IS_PERMUTATE_SYNONYMS
will be used.JSON
If using JSON/YAML model presentation this is set bypermutateSynonyms
property:{ "permutateSynonyms": true }
- Returns:
- Whether or not to permutate multi-word synonyms.
-
isDupSynonymsAllowed
public boolean isDupSynonymsAllowed()
Description copied from interface:NCModelView
Whether or not duplicate synonyms are allowed. Iftrue
- the model will pick the random model element when multiple elements found due to duplicate synonyms. Iffalse
- model will print error message and will not deploy.Default
If not provided by the model the default valueNCModelView.DFLT_IS_DUP_SYNONYMS_ALLOWED
will be used.JSON
If using JSON/YAML model presentation this is set bydupSynonymsAllowed
property:{ "dupSynonymsAllowed": true }
- Returns:
- Whether or not to allow duplicate synonyms.
-
getMaxTotalSynonyms
public int getMaxTotalSynonyms()
Description copied from interface:NCModelView
Total number of synonyms allowed per model. Model won't deploy if total number of synonyms exceeds this number.Default
If not provided by the model the default valueNCModelView.DFLT_MAX_TOTAL_SYNONYMS
will be used.JSON
If using JSON/YAML model presentation this is set bymaxTotalSynonyms
property:{ "maxTotalSynonyms": true }
- Returns:
- Total number of synonyms allowed per model.
- See Also:
NCModelView.getMaxElementSynonyms()
-
isNoUserTokensAllowed
public boolean isNoUserTokensAllowed()
Description copied from interface:NCModelView
Whether or not to allow the user input with no user token detected. Iffalse
such user input will be automatically rejected. Note that this property only applies to user-defined token (i.e. model element). Even if there are no user defined tokens, the user input may still contain system token likenlpcraft:city
ornlpcraft:date
. In many cases models should be build to allow user input without user tokens. However, set it tofalse
if presence of at least one user token is mandatory.Default
If not provided by the model the default valueNCModelView.DFLT_IS_NO_USER_TOKENS_ALLOWED
will be used.JSON
If using JSON/YAML model presentation this is set bynoUserTokensAllowed
property:{ "noUserTokensAllowed": false }
- Returns:
- Whether or not to allow the user input with no user token detected.
-
getJiggleFactor
public int getJiggleFactor()
Description copied from interface:NCModelView
Measure of how much sparsity is allowed when user input words are reordered in attempt to match the multi-word synonyms. Zero means no reordering is allowed. One means that a word in a synonym can move only one position left or right, and so on. Empirically the value of2
proved to be a good default value in most cases. Note that larger values mean that synonym words can be almost in any random place in the user input which makes synonym matching practically meaningless. Maximum value is4
.Default
If not provided by the model the default valueNCModelView.DFLT_JIGGLE_FACTOR
will be used.JSON
If using JSON/YAML model presentation this is set byjiggleFactor
property:{ "jiggleFactor": 2 }
- Returns:
- Word jiggle factor (sparsity measure).
-
getMetadata
public Map<String,Object> getMetadata()
Description copied from interface:NCModelView
Gets optional user defined model metadata that can be set by the developer and accessed later. By default returns an empty map. Note that this metadata is different from the one returned byNCMetadata.getMetadata()
method.JSON
If using JSON/YAML model presentation this is set bymetadata
property:{ "metadata": { "str": "val1", "num": 100, "bool": false } }
- Returns:
- Optional user defined model metadata. TODO: cannot be null
- See Also:
NCMetadata.meta(String)
,NCMetadata.metaOpt(String)
,NCMetadata.meta(String, Object)
-
getAdditionalStopWords
public Set<String> getAdditionalStopWords()
Description copied from interface:NCModelView
Gets an optional list of stopwords to add to the built-in ones.Stopword is an individual word (i.e. sequence of characters excluding whitespaces) that contribute no semantic meaning to the sentence. For example, 'the', 'wow', or 'hm' provide no semantic meaning to the sentence and can be safely excluded from semantic analysis.
NLPCraft comes with a carefully selected list of English stopwords which should be sufficient for a majority of use cases. However, you can add additional stopwords to this list. The typical use for user-defined stopwords are jargon parasite words that are specific to the model's domain.
JSON
If using JSON/YAML model presentation this is set byadditionalStopwords
property:{ "additionalStopwords": [ "stopword1", "stopword2" ] }
- Returns:
- Potentially empty list of additional stopwords.
-
getExcludedStopWords
public Set<String> getExcludedStopWords()
Description copied from interface:NCModelView
Gets an optional list of stopwords to exclude from the built-in list of stopwords.Just like you can add additional stopwords via
NCModelView.getAdditionalStopWords()
you can exclude certain words from the list of stopwords. This can be useful in rare cases when default built-in stopword has specific meaning of your model. In order to process them you need to exclude them from the list of stopwords.JSON
If using JSON/YAML model presentation this is set byexcludedStopwords
property:{ "excludedStopwords": [ "excludedStopword1", "excludedStopword2" ] }
- Returns:
- Potentially empty list of excluded stopwords.
-
getSuspiciousWords
public Set<String> getSuspiciousWords()
Description copied from interface:NCModelView
Gets an optional list of suspicious words. A suspicious word is a word that generally should not appear in user sentence when used with this model. For example, if a particular model is for children oriented book search, the words "sex" and "porn" should probably NOT appear in the user input and can be automatically rejected when added here and model's metadataMAX_SUSPICIOUS_WORDS
property set to zero.Note that by setting model's metadata
MAX_SUSPICIOUS_WORDS
property to non-zero value you can adjust the sensitivity of suspicious words auto-rejection logic.JSON
If using JSON/YAML model presentation this is set bysuspiciousWords
property:{ "suspiciousWords": [ "sex", "porn" ] }
- Returns:
- Potentially empty list of suspicious words in their lemma form.
-
getMacros
public Map<String,String> getMacros()
Description copied from interface:NCModelView
Gets an optional map of macros to be used in this model. Macros and option groups are instrumental in defining model's elements. SeeNCElement
for documentation on macros.JSON
If using JSON/YAML model presentation this is set bymacros
property:{ "macros": [ { "name": "<OF>", "macro": "{of|for|per}" }, { "name": "<CUR>", "macro": "{current|present|moment|now}" } ] }
- Returns:
- Potentially empty map of macros.
-
getElements
public Set<NCElement> getElements()
Description copied from interface:NCModelView
Gets a set of model elements or named entities. Model can have zero or more user defined elements.An element is the main building block of the semantic model. Data model element defines a named entity that will be automatically recognized in the user input. See also
NCModelView.getParsers()
method on how to provide programmatic named entity recognizer (NER) implementations.Note that unless model elements are loaded dynamically it is highly recommended to declare model elements in the external JSON/YAML model configuration (under
elements
property):{ "elements": [ { "id": "wt:hist", "synonyms": [ "{<WEATHER>|*} <HISTORY>", "<HISTORY> {<OF>|*} <WEATHER>" ], "description": "Past weather conditions." } ] }
- Returns:
- Set of model elements, potentially empty.
- See Also:
NCModelView.getParsers()
-
getEnabledBuiltInTokens
public Set<String> getEnabledBuiltInTokens()
Description copied from interface:NCModelView
Gets a set of IDs for built-in named entities (tokens) that should be enabled and detected for this model. Unless model requests (i.e. enables) the built-in tokens in this method the NLP subsystem will not attempt to detect them. Explicit enablement of the token significantly improves the overall performance by avoiding unnecessary token detection. Note that you don't have to specify your own user elements here as they are always enabled.Default
The following built-in tokens are enabled by default implementation of this method:nlpcraft:date
nlpcraft:continent
nlpcraft:subcontinent
nlpcraft:country
nlpcraft:metro
nlpcraft:region
nlpcraft:city
nlpcraft:num
nlpcraft:coordinate
nlpcraft:relation
nlpcraft:sort
nlpcraft:limit
NCToken
for the list of all supported built-in tokens.JSON
If using JSON/YAML model presentation this is set byenabledBuiltInTokens
property:{ "enabledBuiltInTokens": [ "google:person", "google:location", "stanford:money" ] }
- Returns:
- Set of built-in tokens, potentially empty, that should be enabled and detected for this model.
-
getParsers
public List<NCCustomParser> getParsers()
Description copied from interface:NCModelView
Gets optional user-defined model element parsers for custom NER implementations. Note that order of the parsers is important as they will be invoked in the same order they are returned.By default the semantic data model detects its elements by their synonyms, regexp or DSL expressions. However, in some cases these methods are not expressive enough. In such cases, a user-defined parser can be defined for the model that would allow the user to define its own NER logic to detect the model elements in the user input programmatically. Note that there can be only one custom parser per model and it can detect any number of model elements (named entities).
JSON
If using JSON/YAML model presentation this is set byparser
property which is an array with every element being a fully qualified class name implementingNCCustomParser
interface:{ "parsers": [ "my.package.Parser1", "my.package.Parser2" ] }
- Returns:
- Custom user parsers for model elements or
null
if not used (default). TODO: cannot be null!
-
-