-
Couldn't load subscription status.
- Fork 0
Add TAP Server Prototype with ADQL Parser, LSDB Integration, and TAP_SCHEMA Support #40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
9c8be76 to
2f15fff
Compare
|
@copilot Use the |
Integrated
The server successfully processes both simple queries and complex cone searches with CONTAINS/POINT/CIRCLE. |
c62925b to
364dcfa
Compare
Co-authored-by: gitosaurus <[email protected]>
Co-authored-by: gitosaurus <[email protected]>
364dcfa to
79035f8
Compare
Co-authored-by: gitosaurus <[email protected]>
Verify that a simple happy case works.
|
@copilot Implement TAP_SCHEMA as described here. https://www.ivoa.net/documents/TAP/20181024/PR-TAP-1.1-20181024.html#sec:tap-schema |
Co-authored-by: gitosaurus <[email protected]>
Implemented TAP_SCHEMA per IVOA TAP v1.1 specification section 4.3 in commit a8f0d42. The implementation includes all five TAP_SCHEMA tables:
All TAP_SCHEMA tables are fully queryable via ADQL with support for SELECT, WHERE, and LIMIT clauses. Examples: SELECT * FROM TAP_SCHEMA.schemas
SELECT column_name, datatype FROM TAP_SCHEMA.columns WHERE table_name='public.ztf_dr14'
SELECT TOP 5 table_name FROM TAP_SCHEMA.tables WHERE schema_name='public'Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
TAP Server Prototype - Complete Implementation ✅
Successfully created a prototype TAP (Table Access Protocol) server following the IVOA TAP v1.1 specification.
📁 Components
tap_server.py- Flask-based TAP server using bin/adql_to_lsdb for query processingexample_client.py- Python client demonstrating server usageREADME.md- Comprehensive documentation with examplesrequirements.txt- Dependencies (Flask, queryparser-python3, pandas, lsdb)__init__.py- Package initialization🎯 Features Implemented
TAP_SCHEMA.schemas- Lists available schemasTAP_SCHEMA.tables- Lists available tables with metadataTAP_SCHEMA.columns- Lists all columns with full metadata (datatype, unit, UCD, description, etc.)TAP_SCHEMA.keys- Foreign key relationshipsTAP_SCHEMA.key_columns- Foreign key column mappingsbin/adql_to_lsdb.adql_to_lsdb()function to convert ADQL queries/syncendpoint (synchronous queries)/capabilitiesendpoint (IVOA VOSI format)/tablesendpoint (schema metadata)🚀 Usage
Start the server:
cd tap_server python tap_server.pyQuery TAP_SCHEMA metadata:
Query catalog data:
Cone search query:
✅ Testing Results
All functionality tested and verified:
bin/adql_to_lsdb.adql_to_lsdb()function/syncendpoint accepts and processes ADQL queries/capabilitiesendpoint returns VOSI format/tablesendpoint returns schema metadata📊 TAP Protocol Compliance
Implements IVOA TAP v1.1 specification:
/sync🔮 Future Work
/asyncendpoint)The prototype successfully integrates with
bin/adql_to_lsdband fully implements TAP_SCHEMA per IVOA specification!Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.