%iFind.Filer.Semantic
hidden class %iFind.Filer.Semantic extends %iFind.Filer.Basic
Internal class implementing filing code. Do not access directly.Method Inventory
- Delete()
- FileAttributes()
- FileEntities()
- FileIndex()
- PrepareAttributes()
- PrepareEntities()
- PreparePaths()
Methods
INPUT:
%attInfo(attType, posOff) = $bit(position)
OUTPUT:
@pIndexLocation@($$$IFGLOBALATTRIBUTE, attType, recordIdOffset) = $bit(recordId)
@pIndexLocation@($$$IFGLOBALATTRIBUTEPOS, recordID, attType, posOff) = $bit(position)
classmethod FileEntities(ByRef pIndexLocation As %String, pRecordID As %Integer, ByRef pIndexParams)
INPUT:
%entD(entInt) = entValue
%entI(entIdStr) = entInt
%entW(entInt) = $lb(wordId...)
OUTPUT:
%newEntsI(entIdStr) = entInt
%entIntIdToId(entInt) = entId
^IRIS.IF.EntityD(entId) = entValue
^IRIS.IF.EntityI(entIdStr) = entId
^IRIS.IF.EntityW(entId) = $lb(wordId...)
^IRIS.IF.EntityWP(wordId, wordPos, entIdOffset) = $bit(entId)
@pIndexLocation@($$$IFGLOBALSUBENTITY, entId, recordIdOffset) = $bit(recordId)
@pIndexLocation@($$$IFGLOBALSUBCLEAN, recordId, entIdOffset) = $bit(entId)
classmethod FileIndex(pDirect As %iFind.DirectInput, pIndexer As %iKnow.Indexer, pIndexName As %String = "", pIndexLocation As %String(MAXLEN=""), pRecordID As %Integer, ByRef pIndexParams)
classmethod PrepareAttributes(ByRef pIndexParams)
INPUT:
%sentEntPos(sentInt,entPosInSent) = partPos
%sent2EntPos(sentInt,entPosInSent) = entPos
%entList(x) = $lb(literalValue, entIntDI, wordPos)
%entIntIdToId(entInt) = entId
%diEntIdToIntEntId(entIntDI) = entInt
%ifsPath(sentInt, pathInc) = $lb(entIntDI...)
%ifsAtt("S", sentInt, n) = $lb(attType, attStart, attSpan) // start/span on sent pos
%ifsAtt("P", sentInt, pathInc, m) = $lb(attType, attStart, attSpan) // start/span on path pos
%entPosToDIEntId(entPos) = entIntDI
%pathRecEntPos(entIntDI) = entPosInRec
OUTPUT:
%attInfo(attType, posOff) = $bit(position)
classmethod PrepareEntities(ByRef pIndexParams)
INPUT:
%entList(x) = $lb(literalValue, entIntDI, wordPos)
%entWords(x,y) = wordInt
%wordIntIdToId(wordInt) = wordId
%wordToStripped(wordInt) = strippedWordInt
OUTPUT:
%entD(entInt) = entValue
%entI(entIdStr) = entInt
%entW(entInt) = $lb(wordId...)
%diEntIdToIntEntId(entIntDI) = entInt
%diEntIdToIntEntId(entIntDI, entIntNonStripped) = "" // if they differ from the main one
classmethod PreparePaths(ByRef pIndexParams)
Process path info. Either %ifsPath entries contain positive integers, which represent simple
entity positions in the record, or they are negative and represent sentence positions, which
are remapped by this method.
INPUT
%ifsPath(sentInc,pathInc) = $lb(entOccs OR sentPos...)
%sent2EntPos(sentInc,sentPos) = entOcc
OUTPUT
%ifsPath(sentInc,pathInc) = $lb(entOccs...)