Derive independent glossary context and protection
This commit is contained in:
@@ -2,13 +2,14 @@ package validators
|
||||
|
||||
import (
|
||||
"gitea.maximumdirect.net/eric/audita/v3/internal/core/chunking"
|
||||
"gitea.maximumdirect.net/eric/audita/v3/internal/core/glossary"
|
||||
"gitea.maximumdirect.net/eric/audita/v3/internal/core/schema"
|
||||
)
|
||||
|
||||
// validationContext supplies adjacent source segments within the current chunk
|
||||
// and glossary definitions mentioned in the candidate or that local context.
|
||||
// These fields travel in each item so batching accounts for their size.
|
||||
func validationContext(segments []schema.Segment, position int, glossary *schema.Glossary, vocabulary ProtectedVocabulary, corrected string) ([]NeighboringSegment, []schema.GlossaryEntry) {
|
||||
func validationContext(segments []schema.Segment, position int, selected []glossary.Entry, vocabulary ProtectedVocabulary, corrected string) ([]NeighboringSegment, []glossary.Entry) {
|
||||
var neighbors []NeighboringSegment
|
||||
source := segments[position].Text
|
||||
if position > 0 {
|
||||
@@ -22,16 +23,16 @@ func validationContext(segments []schema.Segment, position int, glossary *schema
|
||||
for _, neighbor := range neighbors {
|
||||
texts = append(texts, neighbor.Text)
|
||||
}
|
||||
var entries []schema.GlossaryEntry
|
||||
if glossary != nil {
|
||||
mentioned := make(map[int]bool)
|
||||
var entries []glossary.Entry
|
||||
if selected != nil {
|
||||
mentioned := make(map[glossary.Identity]bool)
|
||||
for _, text := range texts {
|
||||
for identity := range vocabulary.occurrencesByIdentity(text) {
|
||||
mentioned[identity] = true
|
||||
}
|
||||
}
|
||||
for i, entry := range glossary.Entries {
|
||||
if mentioned[i] {
|
||||
for _, entry := range selected {
|
||||
if mentioned[glossary.Identity{Collection: entry.Collection, ID: entry.ID}] {
|
||||
entries = append(entries, entry)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user