Documentation

WordFamilyService

Service for word family queries, details, and status updates.

Tags
since
3.0.0

Table of Contents

Properties

$repository  : MySqlTermRepository

Methods

__construct()  : mixed
Constructor.
bulkUpdateTermStatus()  : int
Apply status to multiple terms (for bulk family updates).
findPotentialLemmaGroups()  : array<int, array{base: string, variants: string[]}>
Find terms that might benefit from lemmatization.
getSuggestedFamilyUpdate()  : array{suggestion: string, affected_count: int, term_ids: int[]}
Suggest status update for related forms when one form's status changes.
getWordFamilies()  : array<string, array{lemma: string, count: int, terms: string[]}>
Get words grouped by their lemma.
getWordFamily()  : array<string|int, Term>
Get the word family (all words sharing a lemma).
getWordFamilyByLemma()  : array<string|int, mixed>|null
Get word family by lemma directly (without requiring a term ID).
getWordFamilyDetails()  : array{lemma: string, lemmaLc: string, langId: int, terms: array, stats: array}|null
Get detailed word family information for a term.
getWordFamilyList()  : array{families: array, pagination: array}
Get paginated list of word families for a language.
updateWordFamilyStatus()  : int
Update status for all words in a word family.
buildSingleTermFamily()  : array{lemma: string, lemmaLc: string, langId: int, terms: array, stats: array}|null
Build a "family" response for a term without a lemma.
getWordOccurrenceCount()  : int
Get occurrence count for a word across all texts.

Properties

Methods

bulkUpdateTermStatus()

Apply status to multiple terms (for bulk family updates).

public bulkUpdateTermStatus(array<string|int, int> $termIds, int $status) : int
Parameters
$termIds : array<string|int, int>

Term IDs to update

$status : int

New status

Return values
int

Number of terms updated

findPotentialLemmaGroups()

Find terms that might benefit from lemmatization.

public findPotentialLemmaGroups(int $languageId[, int $limit = 20 ]) : array<int, array{base: string, variants: string[]}>

Identifies terms with similar text that could share a lemma.

Parameters
$languageId : int

Language ID

$limit : int = 20

Maximum suggestions

Return values
array<int, array{base: string, variants: string[]}>

getSuggestedFamilyUpdate()

Suggest status update for related forms when one form's status changes.

public getSuggestedFamilyUpdate(int $termId, int $newStatus) : array{suggestion: string, affected_count: int, term_ids: int[]}

Based on the "suggested" inheritance mode from the proposal.

Parameters
$termId : int

Term that was updated

$newStatus : int

The new status that was set

Return values
array{suggestion: string, affected_count: int, term_ids: int[]}

getWordFamilies()

Get words grouped by their lemma.

public getWordFamilies(int $languageId[, int $limit = 50 ]) : array<string, array{lemma: string, count: int, terms: string[]}>
Parameters
$languageId : int

Language ID

$limit : int = 50

Maximum number of lemma groups to return

Return values
array<string, array{lemma: string, count: int, terms: string[]}>

getWordFamily()

Get the word family (all words sharing a lemma).

public getWordFamily(int $languageId, string $lemmaLc) : array<string|int, Term>
Parameters
$languageId : int

Language ID

$lemmaLc : string

Lowercase lemma

Return values
array<string|int, Term>

Array of terms in the word family

getWordFamilyByLemma()

Get word family by lemma directly (without requiring a term ID).

public getWordFamilyByLemma(int $languageId, string $lemmaLc) : array<string|int, mixed>|null
Parameters
$languageId : int

Language ID

$lemmaLc : string

Lowercase lemma

Return values
array<string|int, mixed>|null

getWordFamilyDetails()

Get detailed word family information for a term.

public getWordFamilyDetails(int $termId) : array{lemma: string, lemmaLc: string, langId: int, terms: array, stats: array}|null

Returns all words sharing the same lemma with full details for display.

Parameters
$termId : int

Term ID to get family for

Return values
array{lemma: string, lemmaLc: string, langId: int, terms: array, stats: array}|null

getWordFamilyList()

Get paginated list of word families for a language.

public getWordFamilyList(int $languageId[, int $page = 1 ][, int $perPage = 50 ][, string $sortBy = 'lemma' ][, string $sortDir = 'asc' ]) : array{families: array, pagination: array}
Parameters
$languageId : int

Language ID

$page : int = 1

Page number (1-based)

$perPage : int = 50

Items per page

$sortBy : string = 'lemma'

Sort field: 'lemma', 'count', 'status'

$sortDir : string = 'asc'

Sort direction: 'asc', 'desc'

Return values
array{families: array, pagination: array}

updateWordFamilyStatus()

Update status for all words in a word family.

public updateWordFamilyStatus(int $languageId, string $lemmaLc, int $status) : int
Parameters
$languageId : int

Language ID

$lemmaLc : string

Lowercase lemma

$status : int

New status (1-5, 98, 99)

Return values
int

Number of words updated

buildSingleTermFamily()

Build a "family" response for a term without a lemma.

private buildSingleTermFamily(int $termId) : array{lemma: string, lemmaLc: string, langId: int, terms: array, stats: array}|null
Parameters
$termId : int

Term ID

Return values
array{lemma: string, lemmaLc: string, langId: int, terms: array, stats: array}|null

getWordOccurrenceCount()

Get occurrence count for a word across all texts.

private getWordOccurrenceCount(int $wordId) : int
Parameters
$wordId : int

Word ID

Return values
int

        
On this page

Search results