{
  "manifestVersion": 1,
  "dataset": {
    "id": "openalex-ro",
    "name": "OpenAlex Romania: scholarly works and institutions",
    "description": "The Romanian slice of OpenAlex, the free open catalogue of the global research system (built by OurResearch, successor to Microsoft Academic Graph). Institutions located in Romania, and every scholarly work OpenAlex indexes with at least one Romanian-affiliated authorship — article, book chapter, preprint, dataset. Authorships are kept relational rather than nested: work_authorships is one row per (work, author, Romanian institution), so a reader can ask \"who are Romania's most-cited researchers\" or \"which field is Romania publishing most in\" directly in SQL. REFERENCED LIVE, NOT COPIED: all three tables are published as views over OpenAlex's own Parquet snapshot on the AWS Open Data bucket s3://openalex, so no row is stored in this directory's lake and every query reads OpenAlex directly — a citation count OpenAlex has since revised, or a correction to a title or a retraction flag, shows up in the next query with no re-ingest here. That also means there is no history beyond the one query each view was published with, no row counts or column statistics of our own, and a query needs network access to s3://openalex (public, no credentials). The bucket has no partition on country, so filtering works/work_authorships to Romania costs a genuine column scan of the works archive — this connector publishes the complete archive's view by default (since=all), which costs nothing to publish under federation; a query against the resulting view pays whatever scan the query itself needs.",
    "descriptions": {
      "ro": "Felia românească din OpenAlex, catalogul deschis și gratuit al sistemului global de cercetare (construit de OurResearch, succesorul Microsoft Academic Graph). Instituții cu sediul în România și fiecare lucrare științifică indexată de OpenAlex care are cel puțin un autor cu afiliere românească — articol, capitol de carte, preprint, set de date. Autorii sunt păstrați relațional, nu imbricat: work_authorships conține câte un rând pentru fiecare combinație (lucrare, autor, instituție românească), astfel încât un utilizator poate întreba direct în SQL „cine sunt cei mai citați cercetători din România” sau „în ce domeniu publică România cel mai mult”. REFERENȚIATE ÎN TIMP REAL, NU COPIATE: toate cele trei tabele sunt publicate ca vederi (views) peste instantaneul Parquet propriu al OpenAlex, de pe bucketul AWS Open Data s3://openalex, astfel încât niciun rând nu este stocat în lacul de date al acestui director, iar fiecare interogare citește direct de la OpenAlex — un număr de citări revizuit de OpenAlex, o corectare a titlului sau un semnal de retragere apar la următoarea interogare, fără nicio reîncărcare aici. Asta înseamnă și că nu există istoric dincolo de interogarea cu care a fost publicată fiecare vedere, nicio statistică proprie de numărare a rândurilor sau a coloanelor, iar o interogare are nevoie de acces la rețea către s3://openalex (public, fără acreditări). Bucketul nu are nicio partiționare după țară, așa că filtrarea works/work_authorships pentru România presupune o parcurgere reală a coloanelor din arhiva de lucrări — acest conector publică implicit vederea întregii arhive (since=all), ceea ce nu costă nimic la publicare în regim referențiat; costul parcurgerii revine interogării care o cere.",
      "en": "The Romanian slice of OpenAlex, the free open catalogue of the global research system (built by OurResearch, successor to Microsoft Academic Graph). Institutions located in Romania, and every scholarly work OpenAlex indexes with at least one Romanian-affiliated authorship — article, book chapter, preprint, dataset. Authorships are kept relational rather than nested: work_authorships is one row per (work, author, Romanian institution), so a reader can ask \"who are Romania's most-cited researchers\" or \"which field is Romania publishing most in\" directly in SQL. REFERENCED LIVE, NOT COPIED: all three tables are published as views over OpenAlex's own Parquet snapshot on the AWS Open Data bucket s3://openalex, so no row is stored in this directory's lake and every query reads OpenAlex directly — a citation count OpenAlex has since revised, or a correction to a title or a retraction flag, shows up in the next query with no re-ingest here. That also means there is no history beyond the one query each view was published with, no row counts or column statistics of our own, and a query needs network access to s3://openalex (public, no credentials). The bucket has no partition on country, so filtering works/work_authorships to Romania costs a genuine column scan of the works archive — this connector publishes the complete archive's view by default (since=all), which costs nothing to publish under federation; a query against the resulting view pays whatever scan the query itself needs."
    },
    "names": {
      "ro": "OpenAlex România: lucrări științifice și instituții",
      "en": "OpenAlex Romania: scholarly works and institutions"
    },
    "sourceUrl": "https://openalex.org",
    "license": {
      "id": "CC0-1.0",
      "name": "Creative Commons Zero v1.0 Universal (public domain dedication)",
      "url": "https://github.com/ourresearch/openalex-docs/blob/main/license.md",
      "attribution": "Data source: OpenAlex (https://openalex.org).",
      "notes": "OpenAlex's own licence page states plainly: \"OpenAlex data is made available under the CC0 license. That means it's in the public domain, and free to use in any way you like,\" adding that attribution \"is appreciated where it's convenient, but it's not at all necessary.\" Verified directly against github.com/ourresearch/openalex-docs/blob/main/license.md on 2026-09-02. The one carve-out OpenAlex documents is its legacy \"MAG Format\" export, released under ODC-BY because it inherits Microsoft Academic Graph's own licence — this connector does not use that export, only the current Parquet snapshot, so ODC-BY does not apply here. IMPORTANT CAVEATS FOR A REUSER, none of which change the licence but all of which change how far to trust a value. (1) OpenAlex itself aggregates many upstream sources (Crossref, PubMed, ORCID, ROR, institutional repositories, publisher metadata) and inherits their coverage gaps and occasional errors — a missing DOI or an unresolved affiliation is usually an upstream gap, not evidence the work does not exist. (2) Affiliation-to-institution matching is automated: a work with institutions_distinct_count = 0 has an author who wrote something OpenAlex could not resolve to a canonical institution, and is correctly excluded here rather than guessed at. (3) cited_by_count, fwci and works_count grow over time as OpenAlex indexes new citing works — and because works/institutions are published as VIEWS over OpenAlex's live bucket (not copied), a later query naturally sees the larger, current number with no re-ingest of ours involved: two queries run minutes apart can legitimately disagree, and the later one is the more current value, not a data-quality problem. (4) What is published here is a filtered, reshaped VIEW over OpenAlex's own data — the Romanian slice, presented as relational tables — not a stored copy and not a verbatim republication of the OpenAlex snapshot; the SELECT that shapes it is published in full as each table's view definition."
    },
    "cadence": "weekly",
    "tags": [
      "research",
      "science",
      "scholarly",
      "academia",
      "openalex",
      "publications",
      "romania"
    ],
    "sources": [
      {
        "key": "institutions",
        "kind": "parquet",
        "description": "OpenAlex institutions, the whole table: 127,784 rows, ~95 MB, as of the 2026-06-26 manifest. Hive-partitioned by updated_date, but small enough to read in full.",
        "access": "public",
        "location": "s3://openalex/data/parquet/institutions/**/*.parquet",
        "extensions": [
          "httpfs"
        ],
        "secrets": [
          {
            "name": "openalex_pds",
            "type": "s3",
            "scope": [
              "s3://openalex"
            ],
            "env": [],
            "literals": [
              {
                "key": "PROVIDER",
                "value": "config"
              },
              {
                "key": "REGION",
                "value": "us-east-1"
              }
            ]
          }
        ],
        "attach": [],
        "requiresEnv": [],
        "relation": "read_parquet('s3://openalex/data/parquet/institutions/**/*.parquet', hive_partitioning = true, union_by_name = true)"
      },
      {
        "key": "works",
        "kind": "parquet",
        "description": "OpenAlex works, the whole table: 510,372,821 rows, ~725 GiB, as of the 2026-06-26 manifest. Hive-partitioned by updated_date — the date a work record was last written, not its publication date.",
        "access": "public",
        "location": "s3://openalex/data/parquet/works/**/*.parquet",
        "extensions": [
          "httpfs"
        ],
        "secrets": [
          {
            "name": "openalex_pds",
            "type": "s3",
            "scope": [
              "s3://openalex"
            ],
            "env": [],
            "literals": [
              {
                "key": "PROVIDER",
                "value": "config"
              },
              {
                "key": "REGION",
                "value": "us-east-1"
              }
            ]
          }
        ],
        "attach": [],
        "requiresEnv": [],
        "relation": "read_parquet('s3://openalex/data/parquet/works/**/*.parquet', hive_partitioning = true, union_by_name = true)"
      }
    ]
  },
  "ingest": {
    "id": "01M5GSRHR2T9X2A4ZJ159GK0HA",
    "startedAt": "2026-10-22T03:16:34.178Z",
    "snapshotDate": "2026-10-22",
    "catalogSnapshotId": 7,
    "params": {
      "since": "all"
    }
  },
  "baseUrl": "https://data-directory.fsn1.your-objectstorage.com/public/openalex-ro",
  "catalog": {
    "url": "https://data-directory.fsn1.your-objectstorage.com/catalog/openalex-ro/v/01M5GSRHR2T9X2A4ZJ159GK0HA/catalog.ducklake",
    "latestUrl": "https://data-directory.fsn1.your-objectstorage.com/catalog/openalex-ro/catalog.ducklake",
    "sha256": "2be60cef23367c91bde376fcfe10b13efcdd7411d35a10866bedddf89179591d",
    "duckdbVersion": "v1.5.5",
    "attachExample": "ATTACH 'ducklake:https://data-directory.fsn1.your-objectstorage.com/catalog/openalex-ro/catalog.ducklake' AS lake (READ_ONLY);"
  },
  "queryHints": {
    "examples": [
      {
        "title": "Romanian scholarly output by year",
        "sql": "SELECT publication_year, count(*) AS works\nFROM works\nWHERE publication_year BETWEEN 2015 AND 2025\nGROUP BY publication_year\nORDER BY publication_year;",
        "description": "publication_year leads works.sortBy, which describes the reading order the view was designed around — this table is federated (materialize: \"view\"), so nothing is physically sorted by us and the order buys no pruning of ours; whatever pruning happens is whatever OpenAlex's own Parquet writer left behind."
      },
      {
        "title": "Romania's most-cited researchers",
        "sql": "SELECT wa.author_name, wa.author_orcid, count(*) AS papers, sum(w.cited_by_count) AS citations\nFROM work_authorships wa\nJOIN works w USING (work_id)\nGROUP BY wa.author_id, wa.author_name, wa.author_orcid\nORDER BY citations DESC\nLIMIT 20;",
        "description": "work_authorships.sortBy leads with author_id for exactly a query shaped like this, but the table is federated (materialize: \"view\") — the order is advisory, describing the reading order a query should use, not a physical sort this platform performed. cited_by_count is read live from OpenAlex at query time, so it reflects whatever OpenAlex currently counts, not the value at any past ingest."
      },
      {
        "title": "Which Romanian institutions publish the most, and in which fields",
        "sql": "SELECT i.display_name, w.primary_field_name, count(*) AS works\nFROM work_authorships wa\nJOIN institutions i USING (institution_id)\nJOIN works w USING (work_id)\nGROUP BY i.display_name, w.primary_field_name\nORDER BY works DESC\nLIMIT 20;"
      },
      {
        "title": "Open-access share of Romanian output over time",
        "sql": "SELECT publication_year,\n       round(100.0 * count(*) FILTER (WHERE is_oa) / count(*), 1) AS oa_pct\nFROM works\nWHERE publication_year IS NOT NULL\nGROUP BY publication_year\nORDER BY publication_year;"
      }
    ]
  },
  "tables": [
    {
      "name": "institutions",
      "description": "One row per OpenAlex institution located in Romania — 319 of them as measured on 2026-09-02: universities, research institutes, hospitals, companies and museums that have published research OpenAlex indexes. The dimension works.ro_authors_count and work_authorships.institution_id join to. FEDERATED (materialize: \"view\" in index.ts): this table is a live view over OpenAlex's own institutions Parquet, not a copy — a rename or reclassification OpenAlex makes shows up in the next query with no re-ingest here.",
      "descriptions": {
        "ro": "Câte un rând pentru fiecare instituție OpenAlex cu sediul în România — 319 la număr, măsurat pe 2026-09-02: universități, institute de cercetare, spitale, companii și muzee care au publicat cercetare indexată de OpenAlex. Este dimensiunea la care fac legătura work_authorships.institution_id și, indirect, works.ro_authors_count. REFERENȚIAT ÎN TIMP REAL (materialize: \"view\" în index.ts): acest tabel este o vedere vie peste tabelul de instituții al OpenAlex, nu o copie — o redenumire sau o reclasificare făcută de OpenAlex apare la următoarea interogare, fără nicio reîncărcare aici.",
        "en": "One row per OpenAlex institution located in Romania — 319 of them as measured on 2026-09-02: universities, research institutes, hospitals, companies and museums that have published research OpenAlex indexes. The dimension works.ro_authors_count and work_authorships.institution_id join to. FEDERATED (materialize: \"view\" in index.ts): this table is a live view over OpenAlex's own institutions Parquet, not a copy — a rename or reclassification OpenAlex makes shows up in the next query with no re-ingest here."
      },
      "rowCount": 0,
      "totalBytes": 0,
      "sortBy": [
        "name_lc"
      ],
      "searchColumns": [
        "display_name"
      ],
      "primaryKey": [
        "institution_id"
      ],
      "writeMode": "upsert",
      "storage": "view",
      "source": "institutions",
      "view": {
        "sql": "SELECT\n  id                                    AS institution_id,\n  ror,\n  display_name,\n  lower(strip_accents(display_name))    AS name_lc,\n  \"type\"                                AS institution_type,\n  country_code,\n  homepage_url,\n  works_count,\n  cited_by_count,\n  geo.city                              AS city,\n  geo.region                            AS region,\n  geo.latitude                          AS latitude,\n  geo.longitude                         AS longitude,\n  DATE '2026-10-22'                     AS first_seen_date,\n  DATE '2026-10-22'                     AS last_seen_date,\n  TIMESTAMPTZ '2026-10-22T03:16:34.178Z'                            AS ingested_at\nFROM read_parquet('s3://openalex/data/parquet/institutions/**/*.parquet', hive_partitioning = true, union_by_name = true)\nWHERE country_code = 'RO'",
        "createSql": "CREATE OR REPLACE VIEW \"institutions\" AS SELECT\n  id                                    AS institution_id,\n  ror,\n  display_name,\n  lower(strip_accents(display_name))    AS name_lc,\n  \"type\"                                AS institution_type,\n  country_code,\n  homepage_url,\n  works_count,\n  cited_by_count,\n  geo.city                              AS city,\n  geo.region                            AS region,\n  geo.latitude                          AS latitude,\n  geo.longitude                         AS longitude,\n  DATE '2026-10-22'                     AS first_seen_date,\n  DATE '2026-10-22'                     AS last_seen_date,\n  TIMESTAMPTZ '2026-10-22T03:16:34.178Z'                            AS ingested_at\nFROM read_parquet('s3://openalex/data/parquet/institutions/**/*.parquet', hive_partitioning = true, union_by_name = true)\nWHERE country_code = 'RO'"
      },
      "columns": [
        {
          "name": "institution_id",
          "type": "VARCHAR",
          "nullable": false,
          "description": "OpenAlex institution id, e.g. \"https://openalex.org/I138164181\". Used exactly as OpenAlex publishes it (a resolvable URL) so it matches work_authorships.institution_id with no transformation.",
          "descriptions": {
            "ro": "Identificatorul instituției în OpenAlex, de exemplu \"https://openalex.org/I138164181\". Folosit exact așa cum îl publică OpenAlex (un URL accesibil), astfel încât se potrivește fără nicio transformare cu work_authorships.institution_id.",
            "en": "OpenAlex institution id, e.g. \"https://openalex.org/I138164181\". Used exactly as OpenAlex publishes it (a resolvable URL) so it matches work_authorships.institution_id with no transformation."
          }
        },
        {
          "name": "ror",
          "type": "VARCHAR",
          "nullable": true,
          "description": "Research Organization Registry identifier, OpenAlex’s preferred cross-database key for institutions. NULL for the handful of institutions with no ROR match.",
          "descriptions": {
            "ro": "Identificatorul Research Organization Registry, cheia preferată de OpenAlex pentru corelarea instituțiilor între baze de date diferite. NULL pentru puținele instituții fără corespondent ROR.",
            "en": "Research Organization Registry identifier, OpenAlex’s preferred cross-database key for institutions. NULL for the handful of institutions with no ROR match."
          }
        },
        {
          "name": "display_name",
          "type": "VARCHAR",
          "nullable": false,
          "description": "Institution name as OpenAlex publishes it.",
          "descriptions": {
            "ro": "Numele instituției, așa cum îl publică OpenAlex.",
            "en": "Institution name as OpenAlex publishes it."
          }
        },
        {
          "name": "name_lc",
          "type": "VARCHAR",
          "nullable": false,
          "description": "display_name lower-cased and accent-folded, for case- and accent-insensitive search. Searching this column instead of lower(display_name) is what lets a prefix match use parquet statistics.",
          "descriptions": {
            "ro": "display_name scris cu litere mici și fără diacritice, pentru căutare insensibilă la majuscule și diacritice. Căutarea pe această coloană, în loc de lower(display_name), este ceea ce permite unei căutări de tip prefix să folosească statisticile din parquet.",
            "en": "display_name lower-cased and accent-folded, for case- and accent-insensitive search. Searching this column instead of lower(display_name) is what lets a prefix match use parquet statistics."
          }
        },
        {
          "name": "institution_type",
          "type": "VARCHAR",
          "nullable": true,
          "description": "OpenAlex’s classification of the institution: education, healthcare, company, nonprofit, government, facility, archive, other.",
          "descriptions": {
            "ro": "Clasificarea OpenAlex a instituției: educație, sănătate, companie, organizație nonprofit, guvern, unitate/facilitate, arhivă sau altele.",
            "en": "OpenAlex’s classification of the institution: education, healthcare, company, nonprofit, government, facility, archive, other."
          }
        },
        {
          "name": "country_code",
          "type": "VARCHAR",
          "nullable": false,
          "description": "ISO 3166-1 alpha-2 country code. Always \"RO\" in this dataset — kept as a column rather than assumed, so a query written against this table still works if it is ever widened.",
          "descriptions": {
            "ro": "Codul de țară ISO 3166-1 alpha-2. Este mereu „RO” în acest set de date — păstrat ca o coloană explicită, nu presupus, astfel încât o interogare scrisă pe acest tabel continuă să funcționeze dacă setul de date se extinde vreodată la alte țări.",
            "en": "ISO 3166-1 alpha-2 country code. Always \"RO\" in this dataset — kept as a column rather than assumed, so a query written against this table still works if it is ever widened."
          }
        },
        {
          "name": "homepage_url",
          "type": "VARCHAR",
          "nullable": true,
          "description": "The institution’s own homepage, where OpenAlex has one.",
          "descriptions": {
            "ro": "Pagina oficială a instituției, acolo unde OpenAlex are una.",
            "en": "The institution’s own homepage, where OpenAlex has one."
          }
        },
        {
          "name": "works_count",
          "type": "INTEGER",
          "nullable": true,
          "description": "How many works OpenAlex attributes to this institution GLOBALLY — not limited to the works this dataset ships. A rough size signal, not a count you can join and re-derive.",
          "descriptions": {
            "ro": "Câte lucrări atribuie OpenAlex acestei instituții la nivel GLOBAL — nu doar cele incluse în acest set de date. Este un indiciu aproximativ de mărime, nu o valoare pe care o puteți recalcula prin join.",
            "en": "How many works OpenAlex attributes to this institution GLOBALLY — not limited to the works this dataset ships. A rough size signal, not a count you can join and re-derive."
          }
        },
        {
          "name": "cited_by_count",
          "type": "INTEGER",
          "nullable": true,
          "description": "Total citations across every work OpenAlex attributes to this institution, globally.",
          "descriptions": {
            "ro": "Numărul total de citări, la nivel global, pentru toate lucrările pe care OpenAlex le atribuie acestei instituții.",
            "en": "Total citations across every work OpenAlex attributes to this institution, globally."
          }
        },
        {
          "name": "city",
          "type": "VARCHAR",
          "nullable": true,
          "description": "City OpenAlex geocoded the institution to.",
          "descriptions": {
            "ro": "Orașul la care OpenAlex a geolocalizat instituția.",
            "en": "City OpenAlex geocoded the institution to."
          }
        },
        {
          "name": "region",
          "type": "VARCHAR",
          "nullable": true,
          "description": "Romanian county (județ) or region OpenAlex geocoded the institution to.",
          "descriptions": {
            "ro": "Județul sau regiunea la care OpenAlex a geolocalizat instituția.",
            "en": "Romanian county (județ) or region OpenAlex geocoded the institution to."
          }
        },
        {
          "name": "latitude",
          "type": "DOUBLE",
          "nullable": true,
          "description": "Institution latitude, decimal degrees.",
          "descriptions": {
            "ro": "Latitudinea instituției, în grade zecimale.",
            "en": "Institution latitude, decimal degrees."
          },
          "unit": "degrees"
        },
        {
          "name": "longitude",
          "type": "DOUBLE",
          "nullable": true,
          "description": "Institution longitude, decimal degrees.",
          "descriptions": {
            "ro": "Longitudinea instituției, în grade zecimale.",
            "en": "Institution longitude, decimal degrees."
          },
          "unit": "degrees"
        },
        {
          "name": "first_seen_date",
          "type": "DATE",
          "nullable": false,
          "description": "The day (UTC) the published view definition was built. This table is federated (materialize: \"view\" in index.ts), so it is NOT a seen-window any more: a view has no memory of previous runs, so first_seen_date and last_seen_date carry the same constant on every row. While this table was copied into the lake these two columns really did widen across runs — kept, with this description, rather than dropped, so a query written against the copied table still resolves.",
          "descriptions": {
            "ro": "Ziua (UTC) la care a fost construită vederea publicată. Acest tabel este referențiat (materialize: \"view\" în index.ts), deci NU mai este o fereastră de observare: o vedere nu ține minte rulările anterioare, așa că first_seen_date și last_seen_date poartă aceeași constantă pe fiecare rând. Cât timp acest tabel era copiat în lac, aceste două coloane chiar se extindeau de la o rulare la alta; sunt păstrate, cu această descriere, în loc să fie eliminate, astfel încât o interogare scrisă pentru tabelul copiat să funcționeze în continuare.",
            "en": "The day (UTC) the published view definition was built. This table is federated (materialize: \"view\" in index.ts), so it is NOT a seen-window any more: a view has no memory of previous runs, so first_seen_date and last_seen_date carry the same constant on every row. While this table was copied into the lake these two columns really did widen across runs — kept, with this description, rather than dropped, so a query written against the copied table still resolves."
          }
        },
        {
          "name": "last_seen_date",
          "type": "DATE",
          "nullable": false,
          "description": "The same constant as first_seen_date (UTC), for the same reason: this table is federated and a view cannot remember a previous run. An institution OpenAlex stops listing is simply absent from the view — it is not retained under a stale last-seen value the way the copied, upserted version of this table retained it.",
          "descriptions": {
            "ro": "Aceeași constantă ca first_seen_date (UTC), din același motiv: acest tabel este referențiat, iar o vedere nu poate ține minte o rulare anterioară. O instituție pe care OpenAlex nu o mai listează dispare pur și simplu din vedere — nu este păstrată cu o valoare veche, așa cum se întâmpla cu versiunea copiată și actualizată a acestui tabel.",
            "en": "The same constant as first_seen_date (UTC), for the same reason: this table is federated and a view cannot remember a previous run. An institution OpenAlex stops listing is simply absent from the view — it is not retained under a stale last-seen value the way the copied, upserted version of this table retained it."
          }
        },
        {
          "name": "ingested_at",
          "type": "TIMESTAMP",
          "nullable": false,
          "description": "When the run that PUBLISHED THIS VIEW started (UTC). This table is federated — no row was ever copied — so this is one constant for every row, and it dates the view definition rather than the data: the rows themselves are read from OpenAlex live, at the moment you query them.",
          "descriptions": {
            "ro": "Momentul (UTC) la care a început rularea care a PUBLICAT ACEASTĂ VEDERE. Acest tabel este referențiat — niciun rând nu a fost copiat vreodată — deci este o constantă pentru fiecare rând și marchează momentul publicării vederii, nu al datelor: rândurile în sine sunt citite de la OpenAlex în timp real, chiar în momentul interogării.",
            "en": "When the run that PUBLISHED THIS VIEW started (UTC). This table is federated — no row was ever copied — so this is one constant for every row, and it dates the view definition rather than the data: the rows themselves are read from OpenAlex live, at the moment you query them."
          }
        }
      ],
      "files": []
    },
    {
      "name": "works",
      "description": "One row per scholarly work — article, book chapter, dataset, preprint — with at least one Romanian-affiliated authorship, read live from the OpenAlex works snapshot. Bibliographic facts only: no nested authorship detail (see work_authorships for that) and no full abstract. ro_authors_count says how many of the authorships were Romanian-affiliated; authors_count is the work’s total author count including foreign co-authors. FEDERATED (materialize: \"view\" in index.ts): this table is a view over OpenAlex’s Parquet, filtered to whichever since/until window the last publish used (see updated_date and the connector’s since/until params) — cited_by_count, fwci and every other value are read fresh at query time, not frozen at some past ingest.",
      "descriptions": {
        "ro": "Câte un rând pentru fiecare lucrare științifică — articol, capitol de carte, preprint, set de date — cu cel puțin un autor afiliat unei instituții românești, citit în timp real din instantaneul OpenAlex. Doar fapte bibliografice: fără detaliul imbricat al autorilor (vezi work_authorships pentru asta) și fără rezumatul complet. ro_authors_count arată câți dintre autori au afiliere românească; authors_count este numărul total de autori, incluzând coautorii din afara țării. REFERENȚIAT ÎN TIMP REAL (materialize: \"view\" în index.ts): acest tabel este o vedere peste Parquet-ul OpenAlex, filtrată după fereastra since/until folosită la ultima publicare (vezi updated_date și parametrii since/until ai conectorului) — cited_by_count, fwci și orice altă valoare sunt citite proaspăt la momentul interogării, nu înghețate la o încărcare din trecut.",
        "en": "One row per scholarly work — article, book chapter, dataset, preprint — with at least one Romanian-affiliated authorship, read live from the OpenAlex works snapshot. Bibliographic facts only: no nested authorship detail (see work_authorships for that) and no full abstract. ro_authors_count says how many of the authorships were Romanian-affiliated; authors_count is the work’s total author count including foreign co-authors. FEDERATED (materialize: \"view\" in index.ts): this table is a view over OpenAlex’s Parquet, filtered to whichever since/until window the last publish used (see updated_date and the connector’s since/until params) — cited_by_count, fwci and every other value are read fresh at query time, not frozen at some past ingest."
      },
      "rowCount": 0,
      "totalBytes": 0,
      "sortBy": [
        "publication_year",
        "work_id"
      ],
      "searchColumns": [],
      "primaryKey": [
        "work_id"
      ],
      "writeMode": "upsert",
      "storage": "view",
      "source": "works",
      "view": {
        "sql": "SELECT\n  id                                                       AS work_id,\n  title,\n  doi,\n  ids['pmid']                                              AS pmid,\n  publication_date,\n  publication_year,\n  \"type\"                                                   AS work_type,\n  language,\n  authors_count,\n  len(list_filter(authorships, a -> list_contains(a.countries, 'RO'))) AS ro_authors_count,\n  countries_distinct_count,\n  institutions_distinct_count,\n  open_access.is_oa                                        AS is_oa,\n  open_access.oa_status                                    AS oa_status,\n  primary_topic.id                                         AS primary_topic_id,\n  primary_topic.display_name                               AS primary_topic_name,\n  primary_topic.subfield.display_name                      AS primary_subfield_name,\n  primary_topic.field.display_name                         AS primary_field_name,\n  primary_topic.domain.display_name                        AS primary_domain_name,\n  cited_by_count,\n  fwci,\n  referenced_works_count,\n  is_retracted,\n  updated_date,\n  DATE '2026-10-22'                                        AS first_seen_date,\n  DATE '2026-10-22'                                        AS last_seen_date,\n  TIMESTAMPTZ '2026-10-22T03:16:34.178Z'                                                AS ingested_at\nFROM read_parquet('s3://openalex/data/parquet/works/**/*.parquet', hive_partitioning = true, union_by_name = true)\nWHERE EXISTS (SELECT 1 FROM unnest(authorships) AS a(auth) WHERE list_contains(auth.countries, 'RO'))",
        "createSql": "CREATE OR REPLACE VIEW \"works\" AS SELECT\n  id                                                       AS work_id,\n  title,\n  doi,\n  ids['pmid']                                              AS pmid,\n  publication_date,\n  publication_year,\n  \"type\"                                                   AS work_type,\n  language,\n  authors_count,\n  len(list_filter(authorships, a -> list_contains(a.countries, 'RO'))) AS ro_authors_count,\n  countries_distinct_count,\n  institutions_distinct_count,\n  open_access.is_oa                                        AS is_oa,\n  open_access.oa_status                                    AS oa_status,\n  primary_topic.id                                         AS primary_topic_id,\n  primary_topic.display_name                               AS primary_topic_name,\n  primary_topic.subfield.display_name                      AS primary_subfield_name,\n  primary_topic.field.display_name                         AS primary_field_name,\n  primary_topic.domain.display_name                        AS primary_domain_name,\n  cited_by_count,\n  fwci,\n  referenced_works_count,\n  is_retracted,\n  updated_date,\n  DATE '2026-10-22'                                        AS first_seen_date,\n  DATE '2026-10-22'                                        AS last_seen_date,\n  TIMESTAMPTZ '2026-10-22T03:16:34.178Z'                                                AS ingested_at\nFROM read_parquet('s3://openalex/data/parquet/works/**/*.parquet', hive_partitioning = true, union_by_name = true)\nWHERE EXISTS (SELECT 1 FROM unnest(authorships) AS a(auth) WHERE list_contains(auth.countries, 'RO'))"
      },
      "columns": [
        {
          "name": "work_id",
          "type": "VARCHAR",
          "nullable": false,
          "description": "OpenAlex work id, e.g. \"https://openalex.org/W2129290015\". Joins to work_authorships.work_id.",
          "descriptions": {
            "ro": "Identificatorul lucrării în OpenAlex, de exemplu \"https://openalex.org/W2129290015\". Face legătura cu work_authorships.work_id.",
            "en": "OpenAlex work id, e.g. \"https://openalex.org/W2129290015\". Joins to work_authorships.work_id."
          }
        },
        {
          "name": "title",
          "type": "TEXT",
          "nullable": true,
          "description": "Work title, as OpenAlex has it. NULL for the small number of records OpenAlex has not yet titled.",
          "descriptions": {
            "ro": "Titlul lucrării, așa cum îl are OpenAlex. NULL pentru numărul mic de înregistrări pe care OpenAlex nu le-a titrat încă.",
            "en": "Work title, as OpenAlex has it. NULL for the small number of records OpenAlex has not yet titled."
          }
        },
        {
          "name": "doi",
          "type": "VARCHAR",
          "nullable": true,
          "description": "Digital Object Identifier, as a resolvable https://doi.org/ URL.",
          "descriptions": {
            "ro": "Identificatorul DOI, ca URL accesibil de forma https://doi.org/...",
            "en": "Digital Object Identifier, as a resolvable https://doi.org/ URL."
          }
        },
        {
          "name": "pmid",
          "type": "VARCHAR",
          "nullable": true,
          "description": "PubMed identifier, for works indexed in PubMed. NULL otherwise.",
          "descriptions": {
            "ro": "Identificatorul PubMed, pentru lucrările indexate în PubMed. NULL în rest.",
            "en": "PubMed identifier, for works indexed in PubMed. NULL otherwise."
          }
        },
        {
          "name": "publication_date",
          "type": "DATE",
          "nullable": true,
          "description": "The work’s publication date, as OpenAlex resolved it. OpenAlex’s own docs format this one as a bare ISO 8601 date with no time-of-day or zone at all — contrast updated_date below, which OpenAlex explicitly documents as UTC. So this is not a UTC day: it is the calendar day of publication, exactly as the publisher or indexer stated it, unconverted.",
          "descriptions": {
            "ro": "Data publicării lucrării, așa cum a rezolvat-o OpenAlex. Documentația OpenAlex formatează această valoare ca o simplă dată ISO 8601, fără oră și fără fus — spre deosebire de updated_date mai jos, pe care OpenAlex îl documentează explicit ca UTC. Deci nu este o zi UTC: este ziua calendaristică a publicării, exact așa cum a raportat-o editorul sau indexatorul, neconvertită.",
            "en": "The work’s publication date, as OpenAlex resolved it. OpenAlex’s own docs format this one as a bare ISO 8601 date with no time-of-day or zone at all — contrast updated_date below, which OpenAlex explicitly documents as UTC. So this is not a UTC day: it is the calendar day of publication, exactly as the publisher or indexer stated it, unconverted."
          }
        },
        {
          "name": "publication_year",
          "type": "INTEGER",
          "nullable": true,
          "description": "Calendar year of publication_date, kept as its own column because \"papers per year\" is the single most common aggregation over this table.",
          "descriptions": {
            "ro": "Anul calendaristic al publication_date, păstrat ca o coloană separată pentru că „numărul de lucrări pe an” este cea mai frecventă agregare pe acest tabel.",
            "en": "Calendar year of publication_date, kept as its own column because \"papers per year\" is the single most common aggregation over this table."
          }
        },
        {
          "name": "work_type",
          "type": "VARCHAR",
          "nullable": true,
          "description": "OpenAlex’s work-type classification: article, book-chapter, preprint, dataset, dissertation, review, and about a dozen more.",
          "descriptions": {
            "ro": "Clasificarea OpenAlex a tipului de lucrare: articol, capitol de carte, preprint, set de date, teză, recenzie și încă vreo zece variante.",
            "en": "OpenAlex’s work-type classification: article, book-chapter, preprint, dataset, dissertation, review, and about a dozen more."
          }
        },
        {
          "name": "language",
          "type": "VARCHAR",
          "nullable": true,
          "description": "BCP-47 language code OpenAlex detected for the work.",
          "descriptions": {
            "ro": "Codul de limbă BCP-47 detectat de OpenAlex pentru lucrare.",
            "en": "BCP-47 language code OpenAlex detected for the work."
          }
        },
        {
          "name": "authors_count",
          "type": "INTEGER",
          "nullable": true,
          "description": "Total number of authorships on this work, Romanian and foreign combined.",
          "descriptions": {
            "ro": "Numărul total de autori ai lucrării, români și străini la un loc.",
            "en": "Total number of authorships on this work, Romanian and foreign combined."
          }
        },
        {
          "name": "ro_authors_count",
          "type": "INTEGER",
          "nullable": false,
          "description": "How many of this work’s authorships carry a Romanian institutional affiliation — computed by this connector, not published by OpenAlex directly, because it is exactly the count that motivated including the work in this dataset in the first place. Declared INTEGER, but computed with DuckDB’s len(), which returns BIGINT — this table is federated (materialize: \"view\" in index.ts) and a view is not CAST to its declared type the way a lake copy is, so a reader who runs DESCRIBE against the published view sees this column as BIGINT (checked directly, not assumed — see test/ingest.integration.test.ts). Harmless for ordinary comparisons and arithmetic, but a real divergence from the declared schema worth knowing about before relying on the exact type.",
          "descriptions": {
            "ro": "Câți dintre autorii acestei lucrări au o afiliere instituțională românească — calculat de acest conector, nu publicat direct de OpenAlex, pentru că exact acest număr este motivul pentru care lucrarea a fost inclusă în acest set de date. Declarat INTEGER, dar calculat cu funcția len() din DuckDB, care întoarce BIGINT — acest tabel este referențiat (materialize: \"view\" în index.ts), iar o vedere nu este convertită (CAST) la tipul declarat așa cum se întâmplă la o copie în lac, așa că o interogare DESCRIBE asupra vederii publicate arată această coloană drept BIGINT (verificat direct, nu presupus — vezi test/ingest.integration.test.ts). Inofensiv pentru comparații și operații aritmetice obișnuite, dar o diferență reală față de schema declarată, de știut înainte de a te baza pe tipul exact.",
            "en": "How many of this work’s authorships carry a Romanian institutional affiliation — computed by this connector, not published by OpenAlex directly, because it is exactly the count that motivated including the work in this dataset in the first place. Declared INTEGER, but computed with DuckDB’s len(), which returns BIGINT — this table is federated (materialize: \"view\" in index.ts) and a view is not CAST to its declared type the way a lake copy is, so a reader who runs DESCRIBE against the published view sees this column as BIGINT (checked directly, not assumed — see test/ingest.integration.test.ts). Harmless for ordinary comparisons and arithmetic, but a real divergence from the declared schema worth knowing about before relying on the exact type."
          }
        },
        {
          "name": "countries_distinct_count",
          "type": "INTEGER",
          "nullable": true,
          "description": "Number of distinct countries among this work’s resolved institutional affiliations, as OpenAlex computes it. 0 for a work with no resolved institution at all.",
          "descriptions": {
            "ro": "Numărul de țări distincte printre afilierile instituționale rezolvate ale acestei lucrări, calculat de OpenAlex. 0 pentru o lucrare fără nicio instituție rezolvată.",
            "en": "Number of distinct countries among this work’s resolved institutional affiliations, as OpenAlex computes it. 0 for a work with no resolved institution at all."
          }
        },
        {
          "name": "institutions_distinct_count",
          "type": "INTEGER",
          "nullable": true,
          "description": "Number of distinct institutions among this work’s resolved affiliations, as OpenAlex computes it.",
          "descriptions": {
            "ro": "Numărul de instituții distincte printre afilierile rezolvate ale acestei lucrări, calculat de OpenAlex.",
            "en": "Number of distinct institutions among this work’s resolved affiliations, as OpenAlex computes it."
          }
        },
        {
          "name": "is_oa",
          "type": "BOOLEAN",
          "nullable": true,
          "description": "Whether OpenAlex found an open-access copy of this work.",
          "descriptions": {
            "ro": "Dacă OpenAlex a găsit o copie cu acces deschis a acestei lucrări.",
            "en": "Whether OpenAlex found an open-access copy of this work."
          }
        },
        {
          "name": "oa_status",
          "type": "VARCHAR",
          "nullable": true,
          "description": "The open-access route OpenAlex found, when is_oa is true: gold, green, hybrid, bronze, diamond. \"closed\" when none was found.",
          "descriptions": {
            "ro": "Modalitatea de acces deschis găsită de OpenAlex, când is_oa este adevărat: gold, green, hybrid, bronze, diamond. „closed” când nu s-a găsit niciuna.",
            "en": "The open-access route OpenAlex found, when is_oa is true: gold, green, hybrid, bronze, diamond. \"closed\" when none was found."
          }
        },
        {
          "name": "primary_topic_id",
          "type": "VARCHAR",
          "nullable": true,
          "description": "OpenAlex id of the work’s primary topic.",
          "descriptions": {
            "ro": "Identificatorul OpenAlex al temei principale a lucrării.",
            "en": "OpenAlex id of the work’s primary topic."
          }
        },
        {
          "name": "primary_topic_name",
          "type": "VARCHAR",
          "nullable": true,
          "description": "Name of the work’s primary topic, OpenAlex’s most granular subject classification.",
          "descriptions": {
            "ro": "Numele temei principale a lucrării, cea mai fină clasificare de subiect a OpenAlex.",
            "en": "Name of the work’s primary topic, OpenAlex’s most granular subject classification."
          }
        },
        {
          "name": "primary_subfield_name",
          "type": "VARCHAR",
          "nullable": true,
          "description": "Name of the subfield the primary topic belongs to.",
          "descriptions": {
            "ro": "Numele subdomeniului căruia îi aparține tema principală.",
            "en": "Name of the subfield the primary topic belongs to."
          }
        },
        {
          "name": "primary_field_name",
          "type": "VARCHAR",
          "nullable": true,
          "description": "Name of the field the primary topic belongs to.",
          "descriptions": {
            "ro": "Numele domeniului căruia îi aparține tema principală.",
            "en": "Name of the field the primary topic belongs to."
          }
        },
        {
          "name": "primary_domain_name",
          "type": "VARCHAR",
          "nullable": true,
          "description": "Name of the broadest domain the primary topic belongs to.",
          "descriptions": {
            "ro": "Numele celui mai larg domeniu (domain) căruia îi aparține tema principală.",
            "en": "Name of the broadest domain the primary topic belongs to."
          }
        },
        {
          "name": "cited_by_count",
          "type": "INTEGER",
          "nullable": true,
          "description": "How many later works cite this one, as OpenAlex currently counts it. Grows over time; not a fixed fact about the work.",
          "descriptions": {
            "ro": "Câte lucrări ulterioare citează aceasta, așa cum numără OpenAlex în prezent. Crește în timp; nu este un fapt fix despre lucrare.",
            "en": "How many later works cite this one, as OpenAlex currently counts it. Grows over time; not a fixed fact about the work."
          }
        },
        {
          "name": "fwci",
          "type": "DOUBLE",
          "nullable": true,
          "description": "Field-Weighted Citation Impact: citations relative to the average for works of the same type, field and publication year. 1.0 is exactly average. NULL when OpenAlex has not computed it (typically works with too few citing years so far).",
          "descriptions": {
            "ro": "Field-Weighted Citation Impact: citările raportate la media lucrărilor de același tip, domeniu și an de publicare. 1,0 înseamnă exact media. NULL când OpenAlex nu l-a calculat încă (de obicei lucrări prea recente pentru a avea destui ani de citare).",
            "en": "Field-Weighted Citation Impact: citations relative to the average for works of the same type, field and publication year. 1.0 is exactly average. NULL when OpenAlex has not computed it (typically works with too few citing years so far)."
          }
        },
        {
          "name": "referenced_works_count",
          "type": "INTEGER",
          "nullable": true,
          "description": "How many works this one cites, per OpenAlex’s reference list extraction.",
          "descriptions": {
            "ro": "Câte lucrări citează aceasta, conform extragerii listei de referințe făcute de OpenAlex.",
            "en": "How many works this one cites, per OpenAlex’s reference list extraction."
          }
        },
        {
          "name": "is_retracted",
          "type": "BOOLEAN",
          "nullable": false,
          "description": "Whether this work has been retracted, per OpenAlex’s retraction tracking (via Retraction Watch and Crossref).",
          "descriptions": {
            "ro": "Dacă lucrarea a fost retrasă, conform urmăririi retragerilor de către OpenAlex (prin Retraction Watch și Crossref).",
            "en": "Whether this work has been retracted, per OpenAlex’s retraction tracking (via Retraction Watch and Crossref)."
          }
        },
        {
          "name": "updated_date",
          "type": "DATE",
          "nullable": false,
          "description": "The day (UTC) OpenAlex itself last wrote this work’s record — not a publication date. OpenAlex’s own docs state this one explicitly: \"the last time anything in this Work object changed, expressed as an ISO 8601 date string (in UTC).\" This is the column a narrowed ingest filters on (see the connector’s since/until params); for a federated view (materialize: \"view\" in index.ts) that filter is baked into the published view as a fixed WHERE clause, not re-evaluated per run.",
          "descriptions": {
            "ro": "Ziua (UTC) în care OpenAlex a scris ultima dată înregistrarea acestei lucrări — nu o dată de publicare. Documentația OpenAlex spune explicit: „the last time anything in this Work object changed, expressed as an ISO 8601 date string (in UTC)”. Este coloana pe care o filtrează o încărcare restrânsă (vezi parametrii since/until ai conectorului); pentru o vedere referențiată (materialize: \"view\" în index.ts) acest filtru este fixat în vederea publicată, nu reevaluat la fiecare rulare.",
            "en": "The day (UTC) OpenAlex itself last wrote this work’s record — not a publication date. OpenAlex’s own docs state this one explicitly: \"the last time anything in this Work object changed, expressed as an ISO 8601 date string (in UTC).\" This is the column a narrowed ingest filters on (see the connector’s since/until params); for a federated view (materialize: \"view\" in index.ts) that filter is baked into the published view as a fixed WHERE clause, not re-evaluated per run."
          }
        },
        {
          "name": "first_seen_date",
          "type": "DATE",
          "nullable": false,
          "description": "The day (UTC) the published view definition was built. This table is federated, so it is NOT a seen-window: a view has no memory of previous runs, so first_seen_date and last_seen_date carry the same constant on every row. While this table was copied into the lake these two columns really did widen across runs; they are kept, with this description, rather than dropped, so a query written against the copied table still resolves.",
          "descriptions": {
            "ro": "Ziua (UTC) la care a fost construită vederea publicată. Acest tabel este referențiat, deci NU mai este o fereastră de observare: o vedere nu ține minte rulările anterioare, așa că first_seen_date și last_seen_date poartă aceeași constantă pe fiecare rând. Cât timp acest tabel era copiat în lac, aceste două coloane chiar se extindeau de la o rulare la alta; sunt păstrate, cu această descriere, astfel încât o interogare scrisă pentru tabelul copiat să funcționeze în continuare.",
            "en": "The day (UTC) the published view definition was built. This table is federated, so it is NOT a seen-window: a view has no memory of previous runs, so first_seen_date and last_seen_date carry the same constant on every row. While this table was copied into the lake these two columns really did widen across runs; they are kept, with this description, rather than dropped, so a query written against the copied table still resolves."
          }
        },
        {
          "name": "last_seen_date",
          "type": "DATE",
          "nullable": false,
          "description": "The same constant as first_seen_date (UTC), for the same reason: this table is federated and a view cannot remember a previous run. A work that vanishes from a later since/until window is simply absent from the next published view — it is not retained under a stale last-seen value the way the copied, upserted version of this table retained it.",
          "descriptions": {
            "ro": "Aceeași constantă ca first_seen_date (UTC), din același motiv: acest tabel este referențiat, iar o vedere nu poate ține minte o rulare anterioară. O lucrare care dispare dintr-o fereastră since/until ulterioară dispare pur și simplu din vederea următoare — nu este păstrată cu o valoare veche, așa cum se întâmpla cu versiunea copiată și actualizată a acestui tabel.",
            "en": "The same constant as first_seen_date (UTC), for the same reason: this table is federated and a view cannot remember a previous run. A work that vanishes from a later since/until window is simply absent from the next published view — it is not retained under a stale last-seen value the way the copied, upserted version of this table retained it."
          }
        },
        {
          "name": "ingested_at",
          "type": "TIMESTAMP",
          "nullable": false,
          "description": "When the run that PUBLISHED THIS VIEW started (UTC). This table is federated — no row was ever copied — so this is one constant for every row, and it dates the view definition rather than the data: cited_by_count, fwci and every other value are read from OpenAlex live, at the moment you query them, not as of this timestamp.",
          "descriptions": {
            "ro": "Momentul (UTC) la care a început rularea care a PUBLICAT ACEASTĂ VEDERE. Acest tabel este referențiat — niciun rând nu a fost copiat vreodată — deci este o constantă pentru fiecare rând și marchează momentul publicării vederii, nu al datelor: cited_by_count, fwci și orice altă valoare sunt citite de la OpenAlex în timp real, chiar la momentul interogării, nu la acest moment.",
            "en": "When the run that PUBLISHED THIS VIEW started (UTC). This table is federated — no row was ever copied — so this is one constant for every row, and it dates the view definition rather than the data: cited_by_count, fwci and every other value are read from OpenAlex live, at the moment you query them, not as of this timestamp."
          }
        }
      ],
      "files": []
    },
    {
      "name": "work_authorships",
      "description": "One row per (work, author, Romanian institution) — the flattened form of the authorships[].institutions[] structure OpenAlex nests inside every work, kept to the Romanian side of each authorship. This is where an author’s name, ORCID and Romanian institution live; join to works on work_id for the bibliographic facts, and to institutions on institution_id for the institution’s own details. FEDERATED (materialize: \"view\" in index.ts): flattened by the published view definition itself, over the same since/until window as works — nothing here is stored or accumulated across runs.",
      "descriptions": {
        "ro": "Câte un rând pentru fiecare combinație (lucrare, autor, instituție românească) — forma aplatizată a structurii imbricate authorships[].institutions[] pe care OpenAlex o atașează fiecărei lucrări, păstrată doar pentru partea românească a fiecărei afilieri. Aici se găsesc numele autorului, ORCID-ul și instituția românească; faceți join cu works după work_id pentru faptele bibliografice și cu institutions după institution_id pentru detaliile instituției. REFERENȚIAT ÎN TIMP REAL (materialize: \"view\" în index.ts): aplatizat chiar de vederea publicată, peste aceeași fereastră since/until ca works — nimic nu este stocat sau acumulat de la o rulare la alta.",
        "en": "One row per (work, author, Romanian institution) — the flattened form of the authorships[].institutions[] structure OpenAlex nests inside every work, kept to the Romanian side of each authorship. This is where an author’s name, ORCID and Romanian institution live; join to works on work_id for the bibliographic facts, and to institutions on institution_id for the institution’s own details. FEDERATED (materialize: \"view\" in index.ts): flattened by the published view definition itself, over the same since/until window as works — nothing here is stored or accumulated across runs."
      },
      "rowCount": 0,
      "totalBytes": 0,
      "sortBy": [
        "author_id",
        "work_id"
      ],
      "searchColumns": [],
      "primaryKey": [
        "work_id",
        "authorship_seq"
      ],
      "writeMode": "upsert",
      "storage": "view",
      "source": "works",
      "view": {
        "sql": "SELECT\n  work_id,\n  row_number() OVER (\n    PARTITION BY work_id\n    ORDER BY author_position, author_id, institution_id, author_name\n  )                        AS authorship_seq,\n  author_id,\n  author_name,\n  author_orcid,\n  author_position,\n  is_corresponding,\n  institution_id,\n  institution_name,\n  institution_ror,\n  raw_affiliation_string,\n  updated_date,\n  DATE '2026-10-22'        AS first_seen_date,\n  DATE '2026-10-22'        AS last_seen_date,\n  TIMESTAMPTZ '2026-10-22T03:16:34.178Z'                AS ingested_at\nFROM (\n  SELECT\n    id                                AS work_id,\n    auth.author.id                    AS author_id,\n    auth.author.display_name          AS author_name,\n    auth.author.orcid                 AS author_orcid,\n    auth.author_position              AS author_position,\n    auth.is_corresponding             AS is_corresponding,\n    inst.id                           AS institution_id,\n    inst.display_name                 AS institution_name,\n    inst.ror                          AS institution_ror,\n    auth.raw_affiliation_strings[1]   AS raw_affiliation_string,\n    updated_date\n  FROM read_parquet('s3://openalex/data/parquet/works/**/*.parquet', hive_partitioning = true, union_by_name = true),\n    unnest(authorships) AS a(auth),\n    unnest(auth.institutions) AS i(inst)\nWHERE inst.country_code = 'RO'\n) flattened",
        "createSql": "CREATE OR REPLACE VIEW \"work_authorships\" AS SELECT\n  work_id,\n  row_number() OVER (\n    PARTITION BY work_id\n    ORDER BY author_position, author_id, institution_id, author_name\n  )                        AS authorship_seq,\n  author_id,\n  author_name,\n  author_orcid,\n  author_position,\n  is_corresponding,\n  institution_id,\n  institution_name,\n  institution_ror,\n  raw_affiliation_string,\n  updated_date,\n  DATE '2026-10-22'        AS first_seen_date,\n  DATE '2026-10-22'        AS last_seen_date,\n  TIMESTAMPTZ '2026-10-22T03:16:34.178Z'                AS ingested_at\nFROM (\n  SELECT\n    id                                AS work_id,\n    auth.author.id                    AS author_id,\n    auth.author.display_name          AS author_name,\n    auth.author.orcid                 AS author_orcid,\n    auth.author_position              AS author_position,\n    auth.is_corresponding             AS is_corresponding,\n    inst.id                           AS institution_id,\n    inst.display_name                 AS institution_name,\n    inst.ror                          AS institution_ror,\n    auth.raw_affiliation_strings[1]   AS raw_affiliation_string,\n    updated_date\n  FROM read_parquet('s3://openalex/data/parquet/works/**/*.parquet', hive_partitioning = true, union_by_name = true),\n    unnest(authorships) AS a(auth),\n    unnest(auth.institutions) AS i(inst)\nWHERE inst.country_code = 'RO'\n) flattened"
      },
      "columns": [
        {
          "name": "work_id",
          "type": "VARCHAR",
          "nullable": false,
          "description": "The work this authorship belongs to; joins to works.work_id.",
          "descriptions": {
            "ro": "Lucrarea căreia îi aparține această afiliere; face legătura cu works.work_id.",
            "en": "The work this authorship belongs to; joins to works.work_id."
          }
        },
        {
          "name": "authorship_seq",
          "type": "INTEGER",
          "nullable": false,
          "description": "A tiebreaker ordinal, 1-based within each work, assigned in a stable read order — NOT an OpenAlex field. It exists because author_id can be NULL (see below) and because OpenAlex’s own authorship list occasionally repeats the same author for the same institution verbatim; both make (work_id, author_id, institution_id) alone unreliable as a key. Not meaningful on its own — use it only to make a row addressable.",
          "descriptions": {
            "ro": "Un ordinal de departajare, numerotat de la 1 pentru fiecare lucrare, atribuit într-o ordine de citire stabilă — NU este un câmp publicat de OpenAlex. Există pentru că author_id poate fi NULL (vezi mai jos) și pentru că lista de autori publicată de OpenAlex repetă uneori același autor pentru aceeași instituție, identic; ambele fac ca (work_id, author_id, institution_id) să nu fie, de unul singur, o cheie sigură. Nu are semnificație proprie — folosiți-l doar pentru a putea adresa un rând anume.",
            "en": "A tiebreaker ordinal, 1-based within each work, assigned in a stable read order — NOT an OpenAlex field. It exists because author_id can be NULL (see below) and because OpenAlex’s own authorship list occasionally repeats the same author for the same institution verbatim; both make (work_id, author_id, institution_id) alone unreliable as a key. Not meaningful on its own — use it only to make a row addressable."
          }
        },
        {
          "name": "author_id",
          "type": "VARCHAR",
          "nullable": true,
          "description": "OpenAlex author id. Stable across a person’s works, so GROUP BY author_id is how you count one researcher’s output in this dataset. NULL for an author OpenAlex has not yet disambiguated to a canonical id — seen on recently-added works — in which case author_name is the only identifying information available.",
          "descriptions": {
            "ro": "Identificatorul autorului în OpenAlex. Stabil pe parcursul lucrărilor unei persoane, astfel încât GROUP BY author_id este modul de a număra producția unui cercetător în acest set de date. NULL pentru un autor pe care OpenAlex nu l-a rezolvat încă la un identificator canonic — întâlnit la lucrările adăugate recent — caz în care author_name este singura informație de identificare disponibilă.",
            "en": "OpenAlex author id. Stable across a person’s works, so GROUP BY author_id is how you count one researcher’s output in this dataset. NULL for an author OpenAlex has not yet disambiguated to a canonical id — seen on recently-added works — in which case author_name is the only identifying information available."
          }
        },
        {
          "name": "author_name",
          "type": "VARCHAR",
          "nullable": true,
          "description": "Author display name, as OpenAlex resolved it for this authorship.",
          "descriptions": {
            "ro": "Numele afișat al autorului, așa cum l-a rezolvat OpenAlex pentru această afiliere.",
            "en": "Author display name, as OpenAlex resolved it for this authorship."
          }
        },
        {
          "name": "author_orcid",
          "type": "VARCHAR",
          "nullable": true,
          "description": "The author’s ORCID, where OpenAlex has matched one.",
          "descriptions": {
            "ro": "ORCID-ul autorului, acolo unde OpenAlex a găsit o corespondență.",
            "en": "The author’s ORCID, where OpenAlex has matched one."
          }
        },
        {
          "name": "author_position",
          "type": "VARCHAR",
          "nullable": true,
          "description": "\"first\", \"middle\" or \"last\" — the author’s position in the work’s byline, as OpenAlex reports it.",
          "descriptions": {
            "ro": "„first”, „middle” sau „last” — poziția autorului în lista de autori a lucrării, așa cum o raportează OpenAlex.",
            "en": "\"first\", \"middle\" or \"last\" — the author’s position in the work’s byline, as OpenAlex reports it."
          }
        },
        {
          "name": "is_corresponding",
          "type": "BOOLEAN",
          "nullable": true,
          "description": "Whether OpenAlex marked this author as the corresponding author for the work.",
          "descriptions": {
            "ro": "Dacă OpenAlex a marcat acest autor drept autor corespondent al lucrării.",
            "en": "Whether OpenAlex marked this author as the corresponding author for the work."
          }
        },
        {
          "name": "institution_id",
          "type": "VARCHAR",
          "nullable": false,
          "description": "The Romanian institution this authorship is affiliated with; joins to institutions.institution_id.",
          "descriptions": {
            "ro": "Instituția românească de care este afiliată această înregistrare de autor; face legătura cu institutions.institution_id.",
            "en": "The Romanian institution this authorship is affiliated with; joins to institutions.institution_id."
          }
        },
        {
          "name": "institution_name",
          "type": "VARCHAR",
          "nullable": true,
          "description": "Institution name at the time OpenAlex resolved this affiliation — may differ slightly in wording from institutions.display_name if the institution has since been renamed.",
          "descriptions": {
            "ro": "Numele instituției la momentul la care OpenAlex a rezolvat această afiliere — poate diferi ușor, ca formulare, de institutions.display_name dacă instituția a fost redenumită între timp.",
            "en": "Institution name at the time OpenAlex resolved this affiliation — may differ slightly in wording from institutions.display_name if the institution has since been renamed."
          }
        },
        {
          "name": "institution_ror",
          "type": "VARCHAR",
          "nullable": true,
          "description": "ROR identifier of the institution.",
          "descriptions": {
            "ro": "Identificatorul ROR al instituției.",
            "en": "ROR identifier of the institution."
          }
        },
        {
          "name": "raw_affiliation_string",
          "type": "TEXT",
          "nullable": true,
          "description": "The first raw affiliation string OpenAlex parsed for this authorship, exactly as it appeared on the paper — before any institution matching. Useful for spotting a mismatch; an authorship can carry several raw strings (co-affiliations, department plus university) and this keeps only the first.",
          "descriptions": {
            "ro": "Primul șir brut de afiliere pe care l-a extras OpenAlex pentru această înregistrare de autor, exact așa cum apărea pe lucrare — înainte de orice potrivire cu o instituție. Util pentru a depista o potrivire greșită; o afiliere poate avea mai multe șiruri brute (co-afilieri, departament plus universitate), iar aici se păstrează doar primul.",
            "en": "The first raw affiliation string OpenAlex parsed for this authorship, exactly as it appeared on the paper — before any institution matching. Useful for spotting a mismatch; an authorship can carry several raw strings (co-affiliations, department plus university) and this keeps only the first."
          }
        },
        {
          "name": "updated_date",
          "type": "DATE",
          "nullable": false,
          "description": "The day (UTC) OpenAlex last wrote the parent work’s record — the same value as works.updated_date (also UTC; see that column, and OpenAlex’s own docs, for the exact wording) for this authorship’s work_id. For a federated view (materialize: \"view\" in index.ts), the since/until window this filters on is baked into the published view, not re-evaluated per run.",
          "descriptions": {
            "ro": "Ziua (UTC) în care OpenAlex a scris ultima dată înregistrarea lucrării-părinte — aceeași valoare ca works.updated_date (tot UTC; vezi acea coloană, și documentația OpenAlex, pentru formularea exactă) pentru work_id-ul acestei afilieri. Pentru o vedere referențiată (materialize: \"view\" în index.ts), fereastra since/until pe care o filtrează este fixată în vederea publicată, nu reevaluată la fiecare rulare.",
            "en": "The day (UTC) OpenAlex last wrote the parent work’s record — the same value as works.updated_date (also UTC; see that column, and OpenAlex’s own docs, for the exact wording) for this authorship’s work_id. For a federated view (materialize: \"view\" in index.ts), the since/until window this filters on is baked into the published view, not re-evaluated per run."
          }
        },
        {
          "name": "first_seen_date",
          "type": "DATE",
          "nullable": false,
          "description": "The day (UTC) the published view definition was built. This table is federated, so it is NOT a seen-window: a view has no memory of previous runs, so first_seen_date and last_seen_date carry the same constant on every row. While this table was copied into the lake these two columns really did widen across runs; they are kept, with this description, rather than dropped, so a query written against the copied table still resolves.",
          "descriptions": {
            "ro": "Ziua (UTC) la care a fost construită vederea publicată. Acest tabel este referențiat, deci NU mai este o fereastră de observare: o vedere nu ține minte rulările anterioare, așa că first_seen_date și last_seen_date poartă aceeași constantă pe fiecare rând. Cât timp acest tabel era copiat în lac, aceste două coloane chiar se extindeau de la o rulare la alta; sunt păstrate, cu această descriere, astfel încât o interogare scrisă pentru tabelul copiat să funcționeze în continuare.",
            "en": "The day (UTC) the published view definition was built. This table is federated, so it is NOT a seen-window: a view has no memory of previous runs, so first_seen_date and last_seen_date carry the same constant on every row. While this table was copied into the lake these two columns really did widen across runs; they are kept, with this description, rather than dropped, so a query written against the copied table still resolves."
          }
        },
        {
          "name": "last_seen_date",
          "type": "DATE",
          "nullable": false,
          "description": "The same constant as first_seen_date (UTC), for the same reason: this table is federated and a view cannot remember a previous run. A row that vanishes from a later since/until window is simply absent from the next published view — it is not retained under a stale last-seen value the way the copied, upserted version of this table retained it.",
          "descriptions": {
            "ro": "Aceeași constantă ca first_seen_date (UTC), din același motiv: acest tabel este referențiat, iar o vedere nu poate ține minte o rulare anterioară. Un rând care dispare dintr-o fereastră since/until ulterioară dispare pur și simplu din vederea următoare — nu este păstrat cu o valoare veche, așa cum se întâmpla cu versiunea copiată și actualizată a acestui tabel.",
            "en": "The same constant as first_seen_date (UTC), for the same reason: this table is federated and a view cannot remember a previous run. A row that vanishes from a later since/until window is simply absent from the next published view — it is not retained under a stale last-seen value the way the copied, upserted version of this table retained it."
          }
        },
        {
          "name": "ingested_at",
          "type": "TIMESTAMP",
          "nullable": false,
          "description": "When the run that PUBLISHED THIS VIEW started (UTC). This table is federated — no row was ever copied — so this is one constant for every row, and it dates the view definition rather than the data: the rows themselves are read from OpenAlex live, at the moment you query them.",
          "descriptions": {
            "ro": "Momentul (UTC) la care a început rularea care a PUBLICAT ACEASTĂ VEDERE. Acest tabel este referențiat — niciun rând nu a fost copiat vreodată — deci este o constantă pentru fiecare rând și marchează momentul publicării vederii, nu al datelor: rândurile în sine sunt citite de la OpenAlex în timp real, chiar în momentul interogării.",
            "en": "When the run that PUBLISHED THIS VIEW started (UTC). This table is federated — no row was ever copied — so this is one constant for every row, and it dates the view definition rather than the data: the rows themselves are read from OpenAlex live, at the moment you query them."
          }
        }
      ],
      "files": []
    }
  ],
  "generatedAt": "2026-10-22T03:16:38.923Z"
}
