NVIDIA/auto-ontology
Auto Ontology is a Python framework for building semantic, graph-based reasoning layers over data. It enables deterministic query generation, better context retrieval, and more explainable AI for LLM and agent workflows.
The score is jscpd's own --health model: markup, data and text left out, tests kept. The numbers below are the trending scan's.
Most complex files
- frontend/components/explorationPage/ExplorationView.tsx421 cx
- frontend/components/termsPage/TermsView.tsx378 cx
- auto_ontology/retrieval/kumo/pql_gen.py331 cx
- frontend/common/SinglePageComposer.tsx292 cx
- auto_ontology/retrieval/text_to_sql/agents/candidates_preparation.py275 cx
- auto_ontology/dal/model_interchange.py268 cx
- auto_ontology/retrieval/interactive/entity_resolution.py248 cx
- auto_ontology/retrieval/text_to_sql/agents/sql_parse_validation.py242 cx
- auto_ontology/dal/tests/test_tags.py228 cx
- auto_ontology/retrieval/text_to_sql/numeric_types.py224 cx
Dead code 1.17% unused · 69 findings
- auto_ontology/dal/candidates.pyunused-file
- auto_ontology/retrieval/text_to_sql/agents/sql_from_tables.pyunused-file
- auto_ontology/retrieval/data_access/candidates.pyunused-file
- frontend/lib/apiContract.tsunused-file
- auto_ontology/semantic/embed.py:embed_all_semantic_nodesunused-export
- auto_ontology/retrieval/text_to_sql/prompts.py:create_entity_extraction_promptunused-export
- frontend/app/api/invitations/openapi.tsunused-file
- frontend/app/api/conversations/[id]/openapi.tsunused-file
- frontend/app/api/chat/watch/openapi.tsunused-file
- frontend/app/api/custom-prompts/[id]/openapi.tsunused-file
The code number leaves out tests, fixtures, docs, examples, data files, styles, translations and vendored code, and 3 generated files: alembic/versions/6347ede6dac1_add_pii_processed_to_catalog_columns.py, frontend/app/settings/rules/RuleAuthor.tsx, frontend/lib/tagAuthors.ts.
Largest clones in the code
- 10 lines in 7 placespython66 tokensalembic/versions/c778a7d94c20_create_the_auto_ontology_schema.py:118–127alembic/versions/c778a7d94c20_create_the_auto_ontology_schema.py:166–175alembic/versions/c778a7d94c20_create_the_auto_ontology_schema.py:233–242alembic/versions/c778a7d94c20_create_the_auto_ontology_schema.py:259–268alembic/versions/c778a7d94c20_create_the_auto_ontology_schema.py:324–333and 2 more
118"analysis", 119sa.Column( 120 "id", 121 sa.Text(), 122 server_default=sa.text("(gen_random_uuid())::text"), 123 nullable=False, 124), 125sa.Column("name", sa.Text(), nullable=False), 126sa.Column("description", sa.Text(), nullable=True), 127sa.Column("imported_id", sa.Text(), nullable=True),166"column_attribute", 167sa.Column( 168 "id", 169 sa.Text(), 170 server_default=sa.text("(gen_random_uuid())::text"), 171 nullable=False, 172), 173sa.Column("name", sa.Text(), nullable=False), 174sa.Column("description", sa.Text(), nullable=True), 175sa.Column("datatype", sa.Text(), nullable=True), - 19 lines in 3 placespython107 tokensauto_ontology/dal/custom_analyses.py:330–348auto_ontology/dal/custom_analyses.py:405–423auto_ontology/dal/custom_analyses.py:590–608
330) 331.select_from( 332 s.custom_analysis__sql.join( 333 s.sql_query__table, 334 s.sql_query__table.c.sql_query_id 335 == s.custom_analysis__sql.c.sql_query_id, 336 ) 337 .join( 338 s.catalog_table, 339 s.catalog_table.c.id == s.sql_query__table.c.table_id,First 10 of 19 lines.
- 11 lines in 4 placespython62 tokensauto_ontology/dal/custom_analyses.py:416–426auto_ontology/dal/custom_analyses.py:601–610auto_ontology/dal/reset.py:316–325auto_ontology/dal/terms.py:438–446
416 .join( 417 s.catalog_schema, 418 s.catalog_schema.c.id == s.catalog_table.c.schema_id, 419 ) 420 .join( 421 s.catalog_database, 422 s.catalog_database.c.id == s.catalog_schema.c.database_id, 423 ) 424) 425.where(601 .join( 602 s.catalog_schema, 603 s.catalog_schema.c.id == s.catalog_table.c.schema_id, 604 ) 605 .join( 606 s.catalog_database, 607 s.catalog_database.c.id == s.catalog_schema.c.database_id, 608 ) 609) 610.where(s.custom_analysis__sql.c.analysis_id == analysis_id)First 10 of 11 lines, the second copy on the right.
7 more
- 11 lines in 3 placespython91 tokens
- 21 lines in 2 placespython166 tokens
- 31 lines in 2 placestsx166 tokens
- 8 lines in 4 placespython54 tokens
- 31 lines in 2 placespython158 tokens
- 10 lines in 3 placespython77 tokens
- 7 lines in 3 placespython74 tokens
Largest clones over all files, tests and data included
- 14107 lines in 2 placesjsondocs and examples37,695 tokens
1{ 2 "openapi": "3.1.0", 3 "info": { 4 "title": "Auto Ontology API", 5 "version": "1.1.0", 6 "description": "Public HTTP surface of Auto Ontology, served by the Next.js route handlers. Generated by `pnpm openapi` — do not edit by hand." 7 }, 8 "security": [ 9 { 10 "ApiToken": []First 10 of 14107 lines.
- 218 lines in 3 placesmarkdowndocs and examples3,562 tokens
1<!-- 2SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. 3All rights reserved. 4SPDX-License-Identifier: Apache-2.0 5--> 6 7# Third-Party Notices 8 9Auto-Ontology — Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. 10First 10 of 218 lines.
- 23 lines in 46 placesjsondocs and examples52 tokensdocs/openapi/auto-ontology-api.json:1195–1217docs/openapi/auto-ontology-api.json:1807–1829docs/openapi/auto-ontology-api.json:2002–2024docs/openapi/auto-ontology-api.json:2095–2117docs/openapi/auto-ontology-api.json:2814–2836and 41 more
1195 } 1196 } 1197 }, 1198 "description": "Successful Response" 1199}, 1200"401": { 1201 "description": "No authenticated caller could be resolved" 1202}, 1203"403": { 1204 "description": "The caller lacks the required permission"First 10 of 23 lines.
- 77 lines in 3 placesmarkdowndocs and examples1,109 tokens
- 488 lines in 2 placesjsontests1,330 tokens
By format, code only
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| python | 260 | 82,130 | 176 | 1,830 | 2.23% |
| tsx | 137 | 28,211 | 42 | 514 | 1.82% |
| typescript | 199 | 14,277 | 25 | 305 | 2.14% |
| bash | 2 | 140 | 0 | 0 | 0% |
| javascript | 1 | 43 | 0 | 0 | 0% |
By format, all files
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| json | 17 | 47,476 | 342 | 29,357 | 61.84% |
| python | 429 | 129,133 | 315 | 3,545 | 2.75% |
| tsx | 138 | 28,250 | 43 | 527 | 1.87% |
| markdown | 39 | 4,683 | 31 | 938 | 20.03% |
| typescript | 201 | 14,443 | 25 | 305 | 2.11% |
| yaml | 36 | 3,101 | 15 | 269 | 8.67% |
| docker | 3 | 390 | 2 | 17 | 4.36% |
| smarty | 1 | 166 | 2 | 19 | 11.45% |
| sql | 2 | 15,992 | 1 | 9 | 0.06% |
| css | 1 | 475 | 0 | 0 | 0% |
Trending appearances
| Day | Rank | Stars | Files | Lines | Clones | All files | Code | Health | Commit |
|---|---|---|---|---|---|---|---|---|---|
| Nov 5, 2026 | #1 | 5,556 (+2,050) | 885 | 244,952 | 776 | 14.28% | 2.12% | B 72.4 | 2a24f5d |
Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.