PHPackages                             olcaytaner/dictionary - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. olcaytaner/dictionary

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

olcaytaner/dictionary
=====================

Dictionary processing library

1.0.1(7mo ago)03612GPL-3.0-or-laterPHP

Since Mar 14Pushed 2mo agoCompare

[ Source](https://github.com/StarlangSoftware/Dictionary-Php)[ Packagist](https://packagist.org/packages/olcaytaner/dictionary)[ RSS](/packages/olcaytaner-dictionary/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (3)Versions (3)Used By (12)

Turkish Dictionary
==================

[](#turkish-dictionary)

This resource is a dictionary of Modern Turkish, comprised of the definitions of over 50.000 individual entries. Each entry is matched with its corresponding synset (set of synonymous words and expressions) in the Turkish WordNet, KeNet.

The bare-forms in the lexicon consists of nouns, adjectives, verbs, adverbs, shortcuts, etc. Each bare-form appears the same in the lexicon except verbs. Since the bare-forms of the verbs in Turkish do not have the infinitive affix ‘mAk’, our lexicon includes all verbs without the infinitive affix. The bare-forms with diacritics are included in two forms, with and without diacritics. For example, noun ‘rüzgar’ appear both as ‘rüzgar’ and ‘rüzgâr’.

Special markers are included as bare-forms such as doc, s, etc.

Some compound words are included in their affixed form. For instance, ‘acemlalesi’ appears as it is, but not as ‘acemlale’.

Foreign words, especially proper noun foreign words, are included, so that the system can easily recognize them as proper nouns. For instance, the words ‘abbott’, ‘abbigail’ are example foreign proper nouns. Including foreign proper nouns, there are 19,000 proper nouns in our lexicon.

From derivational suffixes, we only include words which has taken -lI, -sIz, -CI, -lIk, and -CIlIk derivational affixes. For example, the bare-forms ‘abacı’, ‘abdallık’, ‘abdestli’ and ‘abdestlilik’, are included, since they have taken one or more derivational affixes listed above.

Each bare-form has a set of attributes. For instance, ‘abacı’ is a noun, therefore, it includes CL\_ISIM attribute. Similarly, ‘abdestli’ is an adjective, which includes IS\_ADJ attribute. If the bare-form has homonyms with different part of speech tags, all corresponding attributes are included.

NamePurposeCL ISIM, CL FIIL, IS\_OAPart of speech tag(s)IS\_DUPPart of a duplicate formIS\_KISAbbreviation, which does not obey vowel harmony while taking suffixes.IS\_UU, IS\_UUUDoes not obey vowel harmony while taking suffixes.IS\_BILESA portmanteau word in affixed form, such as ‘adamotu’IS\_B\_SIA portmanteau word ending with ‘sı’, such as ‘acemlalesi’IS\_CAAlready in a plural form, therefore can not take plural suffixes such as ‘ler’ or ‘lar’.IS\_STThe second consonant undergoes a resyllabification.IS\_UD, IS\_UDD, F\_UDIncludes vowel epenthesis.IS\_KGEnds with a ‘k’, and when it is followed by a vowel-initial suffix, the final ‘k’ is replaced with a ‘g’.IS\_SD, IS\_SDD, F\_SDFinal consonant gets devoiced during vowel-initial suffixation.F GUD, F\_GUDOThe verb bare-form includes vowel reduction.F1P1, F1P1-NO-REFA verb, and depending on this attribute, the verb can (or can not) take causative suffix, factitive suffix, passive suffix etc.Simple Web Interface
====================

[](#simple-web-interface)

[Turkish Dictionary Search Link 1](http://104.247.163.162/nlptoolkit/turkish-dictionary.html) [Turkish Dictionary Search Link 2](https://starlangsoftware.github.io/nlptoolkit-web-simple/turkish-dictionary.html)

[Turkish MorphoLex Search Link 1](http://104.247.163.162/nlptoolkit/turkish-morphological-lexicon.html) [Turkish MorphoLex Search Link 2](https://starlangsoftware.github.io/nlptoolkit-web-simple/turkish-morphological-lexicon.html)

Video Lectures
==============

[](#video-lectures)

[![](https://github.com/StarlangSoftware/Dictionary/raw/master/video1.jpg)](https://youtu.be/10iAqbfsA2A)[![](https://github.com/StarlangSoftware/Dictionary/raw/master/video2.jpg)](https://youtu.be/C-_TZDkFwzQ)

For Developers
==============

[](#for-developers)

You can also see [Python](https://github.com/starlangsoftware/Dictionary-Py), [Cython](https://github.com/starlangsoftware/Dictionary-Cy), [C++](https://github.com/starlangsoftware/Dictionary-CPP), [Swift](https://github.com/starlangsoftware/Dictionary-Swift), [C](https://github.com/starlangsoftware/Dictionary-C), [Js](https://github.com/starlangsoftware/Dictionary-Js), [Java](https://github.com/starlangsoftware/Dictionary), or [C#](https://github.com/starlangsoftware/Dictionary-CS) repository.

For Contibutors
===============

[](#for-contibutors)

### composer.json file

[](#composerjson-file)

1. autoload is important when this package will be imported.

```
  "autoload": {
    "psr-4": {
      "olcaytaner\\WordNet\\": "src/"
    }
  },

```

2. Dependencies should be maximum (not only direct but also indirect references should also be given), everything directly in the code should be given here.

```
  "require-dev": {
    "phpunit/phpunit": "11.4.0",
    "olcaytaner/dictionary": "1.0.0",
    "olcaytaner/xmlparser": "1.0.1",
    "olcaytaner/morphologicalanalysis": "1.0.0"
  }

```

### Data files

[](#data-files)

1. Add data files to the project folder. Subprojects should include all data files of the parent projects.

### Php files

[](#php-files)

1. Do not forget to comment each function.

```
    /**
     * Returns true if specified semantic relation type presents in the relations list.
     *
     * @param SemanticRelationType $relationType element whose presence in the list is to be tested
     * @return bool true if specified semantic relation type presents in the relations list
     */
    public function containsRelationType(SemanticRelationType $relationType): bool{
        foreach ($this->relations as $relation){
            if ($relation instanceof SematicRelation && $relation->getRelationType() == $relationType){
                return true;
            }
        }
        return false;
    }

```

2. Function names should follow caml case.

```
    public function getRelation(int $index): Relation{

```

3. Write getter and setter methods.

```
    public function getOrigin(): ?string
    public function setName(string $name): void

```

4. Use standard javascript test style by extending the TestCase class. Use setup when necessary.

```
class WordNetTest extends TestCase
{
    private WordNet $turkish;

    protected function setUp(): void
    {
        ini_set('memory_limit', '450M');
        $this->turkish = new WordNet();
    }

    public function testSize()
    {
        $this->assertEquals(78327, $this->turkish->size());
    }

```

5. Enumerated types should be declared with enum.

```
enum CategoryType
{
    case MATHEMATICS;
    case SPORT;
    case MUSIC;
    case SLANG;
    case BOTANIC;

```

6. If there are multiple constructors for a class, define them as constructor1, constructor2, ..., then from the original constructor call these methods.

```
    public function constructor1(string $path, string $fileName): void
    public function constructor2(string $path, string $extension, int $index): void
    public function __construct(string $path, string $extension, ?int $index = null)

```

7. Use \_\_toString method if necessary to create strings from objects.

```
    public function __toString(): string

```

8. Use xmlparser package for parsing xml files.

```
  $doc = new XmlDocument("../test.xml");
  $doc->parse();
  $root = $doc->getFirstChild();
  $firstChild = $root->getFirstChild();

```

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance78

Regular maintenance activity

Popularity10

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity39

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~219 days

Total

2

Last Release

211d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/8903e2f2ee6f2b7849f720cf76786a074796f23ac27e12bde3036de5ca12de3f?d=identicon)[olcaytaner](/maintainers/olcaytaner)

---

Top Contributors

[![olcaytaner](https://avatars.githubusercontent.com/u/39756553?v=4)](https://github.com/olcaytaner "olcaytaner (2 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/olcaytaner-dictionary/health.svg)

```
[![Health](https://phpackages.com/badges/olcaytaner-dictionary/health.svg)](https://phpackages.com/packages/olcaytaner-dictionary)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
