PHPackages                             olcaytaner/parsetree - 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/parsetree

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

olcaytaner/parsetree
====================

Parse tree processing library

1.0.8(1mo ago)0223GPL-3.0-or-laterPHP

Since May 12Pushed 1mo agoCompare

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

READMEChangelog (9)Dependencies (4)Versions (10)Used By (3)

Constituency TreeBanks
======================

[](#constituency-treebanks)

When one talks about the “success” of a Natural Language Processing solution, they often refer to its ability to analyse the semantic and syntactic structure of a given sentence. Such a solution is expected to be able to understand both the linear and hierarchical order of the words in a sentence, unveil embedded structures, illustrate syntactical relationships and have a firm grasp of the argument structure. In order to meet the expectations, cutting edge Natural Language Processing systems like parsers, POS taggers or machine translation systems make use of syntactically or semantically annotated treebanks. Such treebanks offer a deep look through the surface and into the logical form of sentences.

Annotated treebanks can be categorised as constituency treebanks and dependency treebanks. Constituency treebanks offers clarity through resolving structural ambiguities, and successfully illustrates the syntagmatic relations like adjunct, complement, predicate, internal argument, external argument and such.

The very first comprehensive annotated treebank, the Penn Treebank, was created for the English language and offers 40,000 annotated sentences. Following the Penn Treebank, numerous treebanks annotated for constituency structures were developed in different languages including French, German, Finnish, Hungarian, Chinese and Arabic.

TreeBank DataSets
=================

[](#treebank-datasets)

[Penn-Treebank 15 Words](http://104.247.163.162/nlptoolkit/english-treebank1.html)

[Penn-Treebank 20 Words](http://104.247.163.162/nlptoolkit/english-treebank2.html)

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

[](#video-lectures)

[![](https://github.com/StarlangSoftware/ParseTree/raw/master/video1.jpg)](https://youtu.be/fY8tn8ny0m4)[![](https://github.com/StarlangSoftware/ParseTree/raw/master/video2.jpg)](https://youtu.be/aNGrV3DkzAg)[![](https://github.com/StarlangSoftware/ParseTree/raw/master/video3.jpg)](https://youtu.be/78KXo9tHcqQ)

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

[](#for-developers)

You can also see [Cython](https://github.com/starlangsoftware/ParseTree-Cy), [Java](https://github.com/starlangsoftware/ParseTree), [C](https://github.com/starlangsoftware/ParseTree-C), [C++](https://github.com/starlangsoftware/ParseTree-CPP), [Swift](https://github.com/starlangsoftware/ParseTree-Swift), [Js](https://github.com/starlangsoftware/ParseTree-Js), [Python](https://github.com/starlangsoftware/ParseTree-Py), or [C#](https://github.com/starlangsoftware/ParseTree-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

40

—

FairBetter than 88% of packages

Maintenance92

Actively maintained with recent releases

Popularity9

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 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 ~41 days

Recently: every ~0 days

Total

9

Last Release

38d 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 (5 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

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

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

PHPackages © 2026

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