Class Reference
IRIS for UNIX 2019.2
InterSystems: The power behind what matters   
Documentation  Search
  [ENSLIB] >  [%iKnow] >  [Queries] >  [EntityAPI]
Private  Storage   

class %iKnow.Queries.EntityAPI extends %iKnow.Queries.AbstractAPI

Main Query class for retrieving Entities.

Inventory

Parameters Properties Methods Queries Indices ForeignKeys Triggers
14 51


Summary

Methods
%AddToSaveSet %ClassIsLatestVersion %ClassName %ConstructClone
%DispatchClassMethod %DispatchGetModified %DispatchGetProperty %DispatchMethod
%DispatchSetModified %DispatchSetMultidimProperty %DispatchSetProperty %Extends
%GetParameter %IsA %IsModified %New
%NormalizeObject %ObjectModified %OriginalNamespace %PackageName
%RemoveFromSaveSet %SerializeObject %SetModified %ValidateObject
GetByFilter GetBySource GetByStem GetByStemArray
GetCountByDomain GetCountBySource GetFrequency GetId
GetLiteral GetNewBySource GetOccurrenceAttributes GetOccurrenceCountByDomain
GetOccurrenceCountBySource GetOccurrencesById GetRelated GetRelatedById
GetRelatedCount GetRelatedCountById GetSimilar GetSimilarCounts
GetSpread GetStem GetStemFrequency GetStemId
GetStemRepresentationForm GetStemSpread GetStemValue GetTop
GetTopBM25 GetTopTFIDF GetValue IsAttributed


Parameters

• parameter GetByFilterRT = "entUniId:%Integer,entity:%String,frequency:%Integer,spread:%Integer";

Returned column summary for GetByFilter.

• parameter GetBySourceRT = "entUniId:%Integer,entity:%String,frequency:%Integer,spread:%Integer";

Returned column summary for GetBySource.

• parameter GetByStemRT = "EntUniId:%Integer,EntityValue:%String";
• parameter GetNewBySourceRT = "entUniId:%Integer,entity:%String,freqInNew:%Integer,freqInOld:%Integer,relFreqInNew:%Numeric,relFreqInOld:%Numeric";

Returned column summary for GetNewBySource.

• parameter GetOccurrenceAttributesRT = "attTypeId:%Integer,attType:%String,level:%Integer,wordPositions:%String,properties:%String";
• parameter GetOccurrencesByIdRT = "EntOccId:%Integer,EntUniId:%Integer,Type:%Integer,SentenceId:%Integer,SourceId:%Integer,IsAttributed:%Integer";
• parameter GetRelatedByIdRT = "entUniId:%Integer,entity:%String,frequency:%Integer,spread:%Integer";

Returned column summary for GetRelatedById.

• parameter GetRelatedRT = "entUniId:%Integer,entity:%String,frequency:%Integer,spread:%Integer";

Returned column summary for GetRelated.

• parameter GetSimilarCountsRT = "distinctEntities:%Integer,totalFrequency:%Integer,totalSpread:%Integer";

Returned column summary for GetSimilarCounts.

• parameter GetSimilarRT = "entUniId:%Integer,entity:%String,frequency:%Integer,spread:%Integer";

Returned column summary for GetSimilar.

• parameter GetTopBM25RT = "entUniId:%Integer,entityValue:%String,bm25:%Numeric";
• parameter GetTopRT = "entUniId:%Integer,entity:%String,frequency:%Integer,spread:%Integer";

Returned column summary for GetTop.

• parameter GetTopTFIDFRT = "entUniId:%Integer,entityValue:%String,TFIDF:%Numeric";

Methods

• classmethod GetByFilter(ByRef result, domainid As %Integer, filter As %iKnow.Filters.Filter = "", filtermode As %Integer = $$$FILTERONLY, enttype As %Integer = $$$ENTTYPECONCEPT, blackListIds As %List = "", pUseStems As %Boolean = 0) as %Status

Returns all entities appearing in any source satisfying the supplied filter objects criteria, with their frequencies and spread recalculated to comply with the filter depending on the value of filtermode, but the result is NOT re-sorted, regardless of the value for filtermode (use GetTop if you want sorted results).

Depending on the value of enttype parameter, this method will only return concepts ($$$ENTTYPECONCEPT, default), relations ($$$ENTTYPERELATION) or both ($$$ENTTYPEANY).

Through the blackListIds parameter, a user can supply one or more lists of (to the user) insignificant terms that should be excluded from the result.

• classmethod GetBySource(ByRef result, domainid As %Integer, sourceidlist As %List, page As %Integer = 1, pagesize As %Integer = 10, enttype As %Integer = $$$ENTTYPEANY, blackListIds As %List = "", pUseStems As %Boolean = 0) as %Status

Returns the unique entities appearing in the sources specified.

To get the unique entities of a virtual source, only a single virtual source can be supplied using its negative ID value.

• classmethod GetByStem(ByRef pResult, pDomainId As %Integer, pStemUniId As %Integer, vSrcId As %Integer = 0, pLanguage As %String = "") as %Status
Retrieves all entities corresponding to a certain stem identified by pStemUniId.
• classmethod GetByStemArray(ByRef pResult, pDomainId As %Integer, pStemUniId As %Integer, vSrcId As %Integer = 0, pLanguageId As %Integer = 0) as %Status
Retrieves all entities corresponding to a certain stem identified by pStemUniId in an array: pResult(tEntUniId)="".
• classmethod GetCountByDomain(domainid As %Integer, filter As %iKnow.Filters.Filter = "", Output sc As %Status = $$$OK, blackListIds As %List = "", includeZeroFrequency As %Boolean = 0, pUseStems As %Boolean = 0) as %Integer

Returns the total number of distinct entities for this domain, optionally filtered to a set of sources satisfying the %iKnow.Filters.Filter object supplied through filter. Depending on the value of includeZeroFrequency, entities not appearing in any source (but registered in the domain for other purposes) are included or excluded from the result.

Through the blackListIds parameter, a user can supply one or more lists of (to the user) insignificant terms that should be excluded from the result.

• classmethod GetCountBySource(domainid As %Integer, sourceidlist As %List, setop As %Integer = $$$UNION, Output sc As %Status = $$$OK, blackListIds As %List = "", enttype As %Integer = $$$ENTTYPEANY, pUseStems As %Boolean = 0) as %Integer

Returns the total number of distinct entities for a given list of sources. The count returned either represents the entities appearing in either (with setop $$$UNION) or all (with setop $$$INTERSECT) of the supplied sources. Using enttype, the returned count is filtered to just entities ($$$ENTTYPECONCEPT), relations ($$$ENTTYPERELATION). The default is unfiltered ($$$ENTTYPEANY).

To get the unique entities of a virtual source, only a single virtual source can be supplied using its negative ID value (otherwise, -1 is returned).

Through the blackListIds parameter, a user can supply one or more lists of (to the user) insignificant terms that should be excluded from the result.

• classmethod GetFrequency(domainId As %Integer, entUniId As %Integer, enttype As %Integer = $$$ENTTYPEANY, vSrcId As %Integer = 0, filter As %iKnow.Filters.Filter = "", Output sc As %Status = $$$OK) as %Integer

Returns the frequency of the entity corresponding to the supplied entUniId, occurring in a concept role (if enttype = $$$ENTTYPECONCEPT), a relationship role (if enttype = $$$ENTTYPERELATION) or both (enttype = $$$ENTTYPEANY).

When specifying a Virtual Source ID, the frequency within the virtual source will be returned.

• classmethod GetId(domainid As %Integer, entityvalue As %String, vSrcId As %Integer = 0) as %Integer

Returns the entity ID corresponding to the specified entity value, if any.

When specifying a Virtual Source ID, it will treat the entity as a virtual one, in the context of that vSrcId.

• classmethod GetLiteral(pDomainId As %Integer, pPartId As %Integer, vSrcId As %Integer = 0) as %String

Returns the literal value for a particular Part ID, as it occurred in the original text.

• classmethod GetNewBySource(ByRef result, domainid As %Integer, sourceidlist As %List, page As %Integer = 1, pagesize As %Integer = 10, filter As %iKnow.Filters.Filter = "", entType As %Integer = $$$ENTTYPECONCEPT, algorithm As %String = $$$NEWENTSIMPLE, algorithmParams As %List = "", blackListIds As %List = "", pUseStems As %Boolean = 0) as %Status

Retrieves the significant entities in a list of sources supplied through sourceidlist, as compared to the other sources in the domain (optionally filtered through a %iKnow.Filters.Filter object specified through filter).

The following algorithm values are currently available:

  • $$$NEWENTSIMPLE - takes no parameters

To get the significant entities of a virtual source compared to the non-virtual ones in the domain, only a single virtual source can be supplied using its negative ID value.

Through the enttype parameter, the method can be instructed to return either concepts ($$$ENTTYPECONCEPT) or relations ($$$ENTTYPERELATION).

Through the blackListIds parameter, a user can supply one or more lists of (to the user) insignificant terms that should be excluded from the result.

• classmethod GetOccurrenceAttributes(ByRef pResult, pDomainId As %Integer, pPartId As %Integer, vSrcId As %Integer = 0) as %Status

Returns all attributes for a given part. Any named attribute properties are also included through sub-nodes (not available through SQL or SOAP):

pResult(rowNumber, propertyName) = propertyValue

The returned wordPositions only extend to the last attributed word position (there might be more words within the entity).

• classmethod GetOccurrenceCountByDomain(pDomainId As %Integer, pFilter As %iKnow.Filters.Filter = "", pEntType As %Integer = $$$ENTTYPEANY, Output pSC As %Status = $$$OK) as %Integer

Returns the total number of entity occurrences in a domain.

• classmethod GetOccurrenceCountBySource(domainid As %Integer, sourceidlist As %List, Output sc As %Status = $$$OK, enttype As %Integer = $$$ENTTYPEANY) as %Integer

Returns the total number of entity occurrences for the given list of sources. Use negative source IDs to refer to virtual sources.

• classmethod GetOccurrencesById(ByRef pResult, pDomainId As %Integer, pEntUniIds As %List, pPage As %Integer = 1, pPageSize As %Integer = 10, pFilter As %iKnow.Filters.Filter = "", pAttributeId As %Integer = $$$IKATTNEGATION, vSrcId As %Integer = 0, pIncludeActualForms As %Boolean = 0) as %Status

Returns all occurrences for any of the given unique entities in pEntUniIds, including whether the attribute pAttributeId is applicable to this occurrence.

If this domain is configured for stemming using $$$IKPSTEMMING, any actual entities corresponding to pEntUniIds elements will be returned.

• classmethod GetRelated(ByRef result, domainid As %Integer, entitylist As %List, page As %Integer = 1, pagesize As %Integer = 10, filter As %iKnow.Filters.Filter = "", filtermode As %Integer = $$$FILTERONLY, positionstomatch As %Integer = $$$USEPOSMS, aggregationtype As %Integer = $$$AGGSUM, setop As %Integer = $$$UNION, sorttype As %Integer = $$$SORTBYDOMAINDEFAULT, blackListIds As %List = "") as %Status

This method will return all entities occurring in a direct relationship with at least on (if setop = $$$UNION) or all (if setop = $$$INTERSECT) of the entities in the supplied entitylist, anywhere within the supplied domain.

The scope of this query can be limited through supplying a %iKnow.Filters.Filter object for the filter parameter to restrict the result to those CRCs occurring in any source satisfying the filter criteria. When using a filter, the filtermode parameter will control whether or not the frequency and spread of returned records should be recalculated and whether results should be resorted along these recalculated numbers.

Through the positionstomatch parameter, the user can specify whether the entities returned should be occurring on the Master side ($$$USEPOSM), the Slave side ($$$USEPOSS) or either ($$$USEPOSMS, default) side of the relationship.

The aggregationtype parameter lets you choose how to aggregate the frequency and spread of results related to multiple entries in the input entitylist.

Through the blackListIds parameter, a user can supply one or more lists of (to the user) insignificant terms that should be excluded from the result.

Note: this method only returns entities that appear in direct relationships with the seed entity. For the broader context of entities, including indirect relationships (still within a single path), please refer to %iKnow.Semantics.ProximityAPI

• classmethod GetRelatedById(ByRef result, domainid As %Integer, entityidlist As %List, page As %Integer = 1, pagesize As %Integer = 10, filter As %iKnow.Filters.Filter = "", filtermode As %Integer = $$$FILTERONLY, positionstomatch As %Integer = $$$USEPOSMS, aggregationtype As %Integer = $$$AGGSUM, setop As %Integer = $$$UNION, sorttype As %Integer = $$$SORTBYDOMAINDEFAULT, blackListIds As %List = "") as %Status

Returns the entities directly related to a supplied list of entity IDs.

See GetRelated for a description of the parameters.

• classmethod GetRelatedCount(domainid As %Integer, entitylist As %List, filter As %iKnow.Filters.Filter = "", positionstomatch As %Integer = $$$USEPOSMS, setop As %Integer = $$$UNION, Output sc As %Status = $$$OK, pIncludeActualForms As %Boolean = 0) as %Integer

Returns the number of related entities for a given list of entities.

See GetRelated for a description of the parameters.

• classmethod GetRelatedCountById(domainid As %Integer, entityidlist As %List, filter As %iKnow.Filters.Filter = "", positionstomatch As %Integer = $$$USEPOSMS, setop As %Integer = $$$UNION, Output sc As %Status = $$$OK, pIncludeActualForms As %Boolean = 0) as %Integer

Returns the number of related entities for a given list of entity ids.

See GetRelated for a description of the parameters.

• classmethod GetSimilar(ByRef result, domainid As %Integer, part As %String, page As %Integer = 1, pagesize As %Integer = 10, filter As %iKnow.Filters.Filter = "", filtermode As %Integer = $$$FILTERONLY, mode As %Integer = $$$USEDOMAINDEFAULT, blackListIds As %List = "", pEntRole As %Integer = $$$ENTTYPEANY, pUseStems As %Boolean = 0) as %Status

This method will return all entities in the specified domain that are "similar" to the supplied part string. Similarity is defined using the mode parameter. The default setting ($$$USEPARTS), will retrieve all clusters containing at least one word starting with the supplied string, whereas $$$USENGRAMS will search for any character sequence within the whole entity. With mode = $$$USEWORDS, the behavior is the same as $$$USEPARTS but the supplied part needs to occur as a whole word in the retrieved clusters.

The scope of this query can be limited through supplying a %iKnow.Filters.Filter object for the filter parameter to restrict the result to those CRCs occurring in any source satisfying the filter criteria. When using a filter, the filtermode parameter will control whether or not the frequency and spread of returned records should be recalculated and whether results should be resorted along these recalculated numbers.

Through the blackListIds parameter, a user can supply one or more lists of (to the user) insignificant terms that should be excluded from the result.

• classmethod GetSimilarCounts(domainid As %Integer, part As %String, filter As %iKnow.Filters.Filter = "", mode As %Integer = $$$USEDOMAINDEFAULT, blackListIds As %List = "", Output sc As %Status = $$$OK, entType As %Integer = $$$ENTTYPEANY, pUseStems As %Boolean = 0) as %List

This method returns aggregated details on the entities similar to a supplied text fragment part. The returned list contains the total number of distinct entities similar to part appearing in sources satisfying the supplied filter (if defined), their total aggregated frequency (with respect to filter, if defined) and the total number of sources containing at least one of these "similar" entities (again, respecting filter, if defined).

See also GetSimilar for a description of the other parameters.

Setting the entType parameter to $$$ENTTYPECONCEPT or $$$ENTTYPERELATION will restrict the result to only include entity occurrences of the specified type in the returned number of distinct entities and aggregated frequency. If an entity occurs as both a concept and a relationship (typically in <1% of cases), it contributes to the aggregated spread regardless of entType.

• classmethod GetSpread(domainId As %Integer, entUniId As %Integer, enttype As %Integer = $$$ENTTYPEANY, filter As %iKnow.Filters.Filter = "", Output sc As %Status = $$$OK) as %Integer

Returns the spread of the entity corresponding to the supplied entUniId, occurring in a concept role (if enttype = $$$ENTTYPECONCEPT), a relationship role (if enttype = $$$ENTTYPERELATION) or both (enttype = $$$ENTTYPEANY).

• classmethod GetStem(pDomainId As %Integer = "", pString As %String, pLanguage As %String = "", Output pSC As %Status = $$$OK) as %String
Returns the stemmed form of the supplied string pString. If pDomainId is non-null, any domain-level configuration settings will be used for the stemming operation.
• classmethod GetStemFrequency(pDomainId As %Integer, pStemUniId As %Integer, pEntType As %Integer = $$$ENTTYPEANY, vSrcId As %Integer = 0, pFilter As %iKnow.Filters.Filter = "", Output pSC As %Status = $$$OK) as %Integer

Returns the frequency of the stem corresponding to the supplied pStemUniId, occurring in a concept role (if pEntType = $$$ENTTYPECONCEPT), a relationship role (if pEntType = $$$ENTTYPERELATION) or both (pEntType = $$$ENTTYPEANY).

When specifying a Virtual Source ID, the frequency within the virtual source will be returned.

• classmethod GetStemId(pDomainId As %Integer, pStemValue As %String, vSrcId As %Integer = 0) as %Integer

Returns the stem ID corresponding to the specified stem value, if any.

When specifying a Virtual Source ID, it will treat the stem as a virtual one, in the context of that vSrcId.

• classmethod GetStemRepresentationForm(pDomainId As %Integer, pStemUniId As %Integer, pLanguage As %String = "en", vSrcId As %Integer = 0, Output pSC As %Status = $$$OK) as %String
Returns the representation form for the given stem and language
• classmethod GetStemSpread(pDomainId As %Integer, pStemUniId As %Integer, pEntType As %Integer = $$$ENTTYPEANY, pFilter As %iKnow.Filters.Filter = "", Output pSC As %Status = $$$OK) as %Integer

Returns the spread of the stem corresponding to the supplied pStemUniId, occurring in a concept role (if pEntType = $$$ENTTYPECONCEPT), a relationship role (if pEntType = $$$ENTTYPERELATION) or both (pEntType = $$$ENTTYPEANY).

• classmethod GetStemValue(pDomainId As %Integer, pStemUniId As %Integer, vSrcId As %Integer = 0, Output pSC As %Status) as %String
Returns the string value of the stem identified by pStemUniId
• classmethod GetTop(ByRef result, domainid As %Integer, page As %Integer = 1, pagesize As %Integer = 10, filter As %iKnow.Filters.Filter = "", filtermode As %Integer = $$$FILTERONLY, sorttype As %Integer = $$$SORTBYDOMAINDEFAULT, enttype As %Integer = $$$ENTTYPECONCEPT, vSrcId As %Integer = 0, blackListIds As %List = "", pUseStems As %Boolean = 0) as %Status

This method returns the most frequently occurring entities in the specified domain.

The scope of this query can be limited through supplying a %iKnow.Filters.Filter object for the filter parameter to restrict the result to those CRCs occurring in any source satisfying the filter criteria. When using a filter, the filtermode parameter will control whether or not the frequency and spread of returned records should be recalculated and whether results should be resorted along these recalculated numbers.

Through the enttype parameter, the method can be instructed to return either concepts ($$$ENTTYPECONCEPT) or relations ($$$ENTTYPERELATION). When looking for top concepts, those shorter than 3 characters are skipped.

Returned values are either sorted by descending frequency (with sorttype $$$SORTBYFREQUENCY), spread (with sorttype $$$SORTBYSPREAD) or the domain default (with sorttype $$$SORTBYDOMAINDEFAULT).

If a Virtual Source ID is provided, only the entities in that virtual source will be considered, filters are ignored and the sort type will always be $$$SORTBYFREQUENCY.

Through the blackListIds parameter, a user can supply one or more lists of (to the user) insignificant terms that should be excluded from the result.

• classmethod GetTopBM25(ByRef pResult, pDomainId As %Integer, pPage As %Integer = 1, pPageSize As %Integer = 10, pFilter As %iKnow.Filters.Filter = "", pEntType As %Integer = $$$ENTTYPECONCEPT, pUseStems As %Boolean = 0) as %Status
Returns the top entities for a given domain (optionally filtered through pFilter) calculated using a metric based on the Okapi BM25 standard, which combines an entity's frequency with its Inverse Document Frequency, taking into account document length.
• classmethod GetTopTFIDF(ByRef pResult, pDomainId As %Integer, pPage As %Integer = 1, pPageSize As %Integer = 10, pFilter As %iKnow.Filters.Filter = "", pEntType As %Integer = $$$ENTTYPECONCEPT, pUseStems As %Boolean = 0) as %Status
Returns the top entities for a given domain (optionally filtered through pFilter) by multiplying their Term Frequency with their Inverse Document Frequency: IDF(e) = $zlog( [ SourceCount - spread(e) + 0.5 ] / [ spread(e) + 0.5 ] )
• classmethod GetValue(domainid As %Integer, entityid As %Integer, vSrcId As %Integer = 0, Output pSC As %Status) as %String

Returns the entity string value corresponding to the specified entity ID, if any.

• classmethod IsAttributed(pDomainId As %Integer, pEntOccId As %Integer, pAttTypeId As %Integer, vSrcId As %Integer = 0, Output pSC As %Status = $$$OK) as %Boolean
Checks if a given entity occurrence has the requested attribute pAttTypeId.


Copyright (c) 2019 by InterSystems Corporation. Cambridge, Massachusetts, U.S.A. All rights reserved. Confidential property of InterSystems Corporation.