meta-log-db
Version:
Native database package for Meta-Log (ProLog, DataLog, R5RS)
70 lines • 1.68 kB
TypeScript
/**
* Enhanced SPARQL Query Parser
* Supports: SELECT, DISTINCT, ORDER BY, LIMIT, OFFSET, FILTER, OPTIONAL, UNION
*/
export interface SparqlQuery {
type: 'SELECT' | 'ASK' | 'CONSTRUCT' | 'DESCRIBE';
distinct?: boolean;
variables: string[];
where: SparqlPattern[];
optional?: SparqlPattern[];
filters?: SparqlFilter[];
orderBy?: SparqlOrderBy[];
limit?: number;
offset?: number;
union?: SparqlQuery[];
}
export interface SparqlPattern {
subject: string;
predicate: string;
object: string;
optional?: boolean;
}
export interface SparqlFilter {
expression: string;
type: 'equals' | 'notEquals' | 'greaterThan' | 'lessThan' | 'regex' | 'lang' | 'bound' | 'custom';
left: string;
right?: string;
}
export interface SparqlOrderBy {
variable: string;
direction: 'ASC' | 'DESC';
}
/**
* Parse SPARQL query string into structured query object
*/
export declare class SparqlParser {
/**
* Parse SPARQL query
*/
static parse(query: string): SparqlQuery;
/**
* Normalize query string
*/
private static normalizeQuery;
/**
* Parse query type
*/
private static parseQueryType;
/**
* Parse variables from SELECT clause
*/
private static parseVariables;
/**
* Parse triple patterns from WHERE clause
*/
private static parsePatterns;
/**
* Parse OPTIONAL patterns
*/
private static parseOptional;
/**
* Parse FILTER expressions
*/
private static parseFilters;
/**
* Parse ORDER BY clause
*/
private static parseOrderBy;
}
//# sourceMappingURL=sparql-parser.d.ts.map