Skip to content

A descriptive phrase becomes an entity #559

Description

@WaylandYang

In the eight-document AI-companies base (ingested 2026-09-06), a name lookup for "OpenAI" returns fourteen entities. Nine are real and distinct, because the article describes that corporate structure: OpenAI, Inc.; OpenAI Global, LLC; OpenAI LP; OpenAI GP LLC; OpenAI Group PBC; OpenAI Foundation; the board; OpenAI o1; OpenAI for Government. Four are not entities at all:

lawsuit against OpenAI               untyped   5 facts
class action lawsuit against OpenAI  untyped   5 facts
two executives in OpenAI             untyped   3 facts
companies using OpenAI               Corporation (inferred)   3 facts

They are descriptions of OpenAI written as noun phrases, and the extractor made each one a node with facts hanging off it. The typing pass is the tell: three of the four could not be placed in any type. Base-wide, 306 of 1,538 entities (20%) are untyped, and a sample of them is the same shape.

The same pass typed the main OpenAI as ResearchProject (inferred), while the article's first sentence calls it an organization; that is the nearest-type-by-embedding inference landing on the wrong schema.org class.

Resolution is not the cause. The funnel (name candidates → profile similarity → grey zone to review) ran and merged 123 entities in this base; these four were never duplicates of anything.

Effect

find_entities lists the phrases next to the real entities, and twelve of thirty-two data questions in the #548 harness ended with the model asking which OpenAI was meant. Facts attached to a phrase ("lawsuit against OpenAI —filed_by→ …") are invisible to a query about OpenAI itself.

What to do

Measure first: re-extract the eight documents with current dev on a scratch base and report the untyped share and the phrase entities among "OpenAI" matches. The base was extracted three days ago; extraction has changed since (#523 and the merge cuts), and the number may already differ.

Then, at extraction: a mention becomes an entity only if it names a thing. Two signals are already computed: a mention that the typing pass cannot place after inference, and a mention that contains another extracted entity's name plus a common-noun head ("lawsuit against X", "executives in X", "companies using X") is a description of X. Such a mention keeps its text as the fact's object_value, or as evidence, and does not become a node. The inferred type of the main entity is a separate defect of the same pass and gets its own fix (the article's own words outrank the embedding neighbour).

Acceptance

On the re-extraction: untyped entities under 5%; no phrase among the "OpenAI" matches; OpenAI typed as an organization. Through the chat harness, "which OpenAI?" turns fall (shared with the find_entities ranking in the graph-query issue; both count).

Related: #558 (the query interface these phrases pollute), #560 (the same measurement run), #519 / #523 (typing).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions