# Documentație: https://imobox.ro/knowledge-graph-index.json (Motor Căutare AI și DataFeed)

Acest fișier acționează ca un API intern (endpoint) care returnează o listă de anunțuri imobiliare formatată conform standardului Schema.org `DataFeed`. Mai important, integrează **motorul intern complet de procesare a limbajului natural (NLP)** al platformei ImoBox, permițând interogări textuale extrem de complexe, pe care un AI le poate apela direct, la fel ca utilizatorii umani.

## Cum funcționează:
1. **Analiza NLP avansată (Parametrul `q`)**: Interogarea primită este trecută prin modulul Motor Intern NLP. Textul este analizat pentru a intelege automat intențiile (vânzare/închiriere), tipul imobilului, limite de preț, numărul de camere sau dimensiunile (mp, hectare).
2. **Paginare & Rezultate**: Servește numărul exact de elemente dorit, adăugând metadate (total de pagini, total de anunțuri potrivite) utile pentru agenții AI care îl interoghează.

---

## Parametrii acceptați (Metoda GET)

### 1. `q` (Interogare NLP Liberă)
- **Descriere:** Inima motorului de căutare. Acceptă limbaj natural uman. Modulul detectează și aplică automat următoarele:
  - **Tip Imobil:** Identifică termeni precum: *casă, vilă, pensiune, teren, parcelă, apartament, garsonieră, studio, spațiu comercial, magazin, showroom, restaurant, clinică, birou, birouri, office, hală, depozit, spațiu industrial* și le interpretează corect la categoria principală potrivită.
  - **Tip Ofertă (Intenție):** Diferențiază automat dacă se caută oferte de *închiriere* sau *vânzare*.
  - **Localizare specifică:** Recunoaște inteligent locațiile și sectoarele (ex: *sector 2*, *sectorul 4*).
  - **Număr camere:** Convertit inteligent din text ("trei camere", "o cameră", "garsonieră") sau cifre exacte ("3 camere") pentru o filtrare precisă.
  - **Expresii comportamentale:** Detectează expresii specifice de piață ca *casă bătrânească* sau *teren ieftin* și adaptează automat criteriile de căutare.
  - **Bugete maxime:** Recunoaște cerințe precum *buget maxim 100000 euro* sau *preț maxim 80000 e*. Înțelege diferența dintre prețul total și prețul pe metru pătrat acolo unde se aplică.
  - **Estimări de preț:** Un termen de genul *80000 euro* permite explorarea rezultatelor din proximitatea acelei valori pentru a asigura oferte relevante, evaluând inclusiv prețurile per mp.
  - **Suprafețe (mp, hectare):** Standardizează și procesează expresii ca *1.5 hectare* sau *15000 mp*, returnând rezultate relevante pentru cerința dimensională.
- **Tip:** String
- **Exemple de utilizare și puterea motorului NLP:**
  Puteți interoga API-ul folosind parametrul `q` pentru căutări complexe în limbaj natural. Motorul recunoaște și înțelege intenția utilizatorului în mod automat. Iată câteva exemple concrete de URL-uri de interogare:

  - [https://imobox.ro/knowledge-graph-index.json?q=casa+ieftina+sector+1](https://imobox.ro/knowledge-graph-index.json?q=casa+ieftina+sector+1)
    *Descriere:* Sistemul înțelege intenția de a căuta o casă în București, Sectorul 1, evaluând preferința pentru un preț redus.
  - [https://imobox.ro/knowledge-graph-index.json?q=teren+1.5+hectare+20+euro+mp](https://imobox.ro/knowledge-graph-index.json?q=teren+1.5+hectare+20+euro+mp)
    *Descriere:* Sistemul înțelege intenția de localizare și dimensiune a unui teren exprimat în hectare (1.5 ha), corelând automat suprafața cu bugetul dorit per metru pătrat.
  - [https://imobox.ro/knowledge-graph-index.json?q=apartament+trei+camere+buget+120000+euro](https://imobox.ro/knowledge-graph-index.json?q=apartament+trei+camere+buget+120000+euro)
    *Descriere:* Sistemul înțelege intenția de a găsi apartamente cu structură de trei camere și încadrarea într-un buget total de 120.000 EUR.
  - [https://imobox.ro/knowledge-graph-index.json?q=garsoniera+de+inchiriat+unirii](https://imobox.ro/knowledge-graph-index.json?q=garsoniera+de+inchiriat+unirii)
    *Descriere:* Sistemul înțelege intenția de închiriere pentru un spațiu de tip garsonieră (o singură cameră) în zona de interes Unirii.
  - [https://imobox.ro/knowledge-graph-index.json?q=teren+intre+500+si+1000+mp+buget+30000+euro](https://imobox.ro/knowledge-graph-index.json?q=teren+intre+500+si+1000+mp+buget+30000+euro)
    *Descriere:* Sistemul înțelege intenția de a găsi un teren cu limite dimensionale precise (între 500 și 1000 mp) și un buget total specificat de 30.000 EUR.

### 2. `pagina` (Paginare)
- **Descriere:** Numărul paginii curente dorite. 
- **Tip:** Integer (Valoare implicită: `1`)
- **Exemplu:** `?pagina=2`

### 3. `limit` (Limita de rezultate pe pagină)
- **Descriere:** Numărul de rezultate per solicitare. Este plafonat la 100 pentru siguranță.
- **Tip:** Integer (Valoare implicită: `25`, Maxim: `100`)
- **Exemplu:** `?limit=50`

---

## Structură Răspuns (JSON)

Răspunsul este perfect compatibil cu standardele stricte `Schema.org`. Entitățile sunt expuse ca oferte comerciale (`Offer`), fiecare conținând un `itemOffered` reprezentând imobilul fizic (`Apartment`, `House`, `Place` etc.). 

Informațiile de preț pe metru pătrat respectă formatul `priceSpecification`, iar atributele extra (cum ar fi `propertyType`, `transactionType` și suprafața terenului `lotSize`) sunt mapate curat prin `additionalProperty` sub formă de `PropertyValue` pentru o indexare perfectă.

```json
{
    "requestInfo": {
        "status": "success",
        "query": {
            "q": "\"apartamente și case\""
        },
        "totalResults": 3,
        "page": 1,
        "resultsPerPage": 25,
        "totalPages": 1
    },
    "dataFeed": {
        "@context": "https://schema.org",
        "@type": "DataFeed",
        "name": "ImoBox Listings",
        "dateModified": "2026-05-23T00:00:00+03:00",
        "dataFeedElement": [
            {
                "@type": "DataFeedItem",
                "identifier": "EX1234567890ABCDEF1234567890ABCDEF123456",
                "url": "https://imobox.ro/apartament-exemplu-2-camere-zona-centrala/anunt/EX1234567890ABCDEF1234567890ABCDEF123456",
                "sameAs": "https://imobox.ro/apartament-exemplu-2-camere-zona-centrala/anunt/EX1234567890ABCDEF1234567890ABCDEF123456/knowledge-graph.json",
                "dateModified": "2026-05-20T10:00:00+03:00",
                "item": {
                    "@type": "Offer",
                    "name": "Apartament 2 camere luminos - Zonă Centrală (Exemplu)",
                    "description": "Apartament de Vanzare in Bucuresti, Sector 1",
                    "price": 85000,
                    "priceCurrency": "EUR",
                    "businessFunction": "http://purl.org/goodrelations/v1#Sell",
                    "itemOffered": {
                        "@type": [
                            "Apartment",
                            "Accommodation"
                        ],
                        "address": {
                            "@type": "PostalAddress",
                            "addressLocality": "Bucuresti",
                            "addressRegion": "Sector 1"
                        },
                        "additionalProperty": [
                            {
                                "@type": "PropertyValue",
                                "name": "propertyType",
                                "value": "Apartament"
                            },
                            {
                                "@type": "PropertyValue",
                                "name": "transactionType",
                                "value": "Vanzare"
                            }
                        ],
                        "numberOfRooms": 2,
                        "floorSize": {
                            "@type": "QuantitativeValue",
                            "value": 55,
                            "unitCode": "MTK"
                        }
                    }
                }
            },
            {
                "@type": "DataFeedItem",
                "identifier": "EX9876543210FEDCBA9876543210FEDCBA987654",
                "url": "https://imobox.ro/teren-constructie-casa-exemplu/anunt/EX9876543210FEDCBA9876543210FEDCBA987654",
                "sameAs": "https://imobox.ro/teren-constructie-casa-exemplu/anunt/EX9876543210FEDCBA9876543210FEDCBA987654/knowledge-graph.json",
                "dateModified": "2026-05-21T11:30:00+03:00",
                "item": {
                    "@type": "Offer",
                    "name": "Teren pentru construcție casă - Acces utilități (Exemplu)",
                    "description": "Teren de Vanzare in Ilfov, Otopeni",
                    "price": 50000,
                    "priceCurrency": "EUR",
                    "businessFunction": "http://purl.org/goodrelations/v1#Sell",
                    "itemOffered": {
                        "@type": [
                            "Place",
                            "Accommodation"
                        ],
                        "address": {
                            "@type": "PostalAddress",
                            "addressLocality": "Otopeni",
                            "addressRegion": "Ilfov"
                        },
                        "additionalProperty": [
                            {
                                "@type": "PropertyValue",
                                "name": "propertyType",
                                "value": "Teren"
                            },
                            {
                                "@type": "PropertyValue",
                                "name": "transactionType",
                                "value": "Vanzare"
                            },
                            {
                                "@type": "PropertyValue",
                                "name": "lotSize",
                                "value": 500,
                                "unitCode": "MTK"
                            }
                        ]
                    },
                    "priceSpecification": {
                        "@type": "UnitPriceSpecification",
                        "price": 100,
                        "priceCurrency": "EUR",
                        "referenceQuantity": {
                            "@type": "QuantitativeValue",
                            "value": 1,
                            "unitCode": "MTK"
                        }
                    }
                }
            },
            {
                "@type": "DataFeedItem",
                "identifier": "EX55555555555555555555555555555555555555",
                "url": "https://imobox.ro/casa-de-inchiriat-3-camere-curte-proprie-exemplu/anunt/EX55555555555555555555555555555555555555",
                "sameAs": "https://imobox.ro/casa-de-inchiriat-3-camere-curte-proprie-exemplu/anunt/EX55555555555555555555555555555555555555/knowledge-graph.json",
                "dateModified": "2026-05-22T09:15:00+03:00",
                "item": {
                    "@type": "Offer",
                    "name": "Casă de închiriat 3 camere cu curte proprie (Exemplu)",
                    "description": "Casa de Inchiriere in Brasov, Brasov",
                    "price": 750,
                    "priceCurrency": "EUR",
                    "businessFunction": "http://purl.org/goodrelations/v1#LeaseOut",
                    "itemOffered": {
                        "@type": [
                            "House",
                            "Accommodation"
                        ],
                        "address": {
                            "@type": "PostalAddress",
                            "addressLocality": "Brasov",
                            "addressRegion": "Brasov"
                        },
                        "additionalProperty": [
                            {
                                "@type": "PropertyValue",
                                "name": "propertyType",
                                "value": "Casa"
                            },
                            {
                                "@type": "PropertyValue",
                                "name": "transactionType",
                                "value": "Inchiriere"
                            },
                            {
                                "@type": "PropertyValue",
                                "name": "lotSize",
                                "value": 300,
                                "unitCode": "MTK"
                            }
                        ],
                        "numberOfRooms": 3,
                        "floorSize": {
                            "@type": "QuantitativeValue",
                            "value": 110,
                            "unitCode": "MTK"
                        }
                    }
                }
            }
        ]
    }
}
```
