graph-explorer
Version:
Graph Explorer can be used to explore and RDF graphs in SPARQL endpoints or on the web.
122 lines (102 loc) • 2.32 kB
text/typescript
export type RdfNode = RdfIri | RdfLiteral | RdfBlank;
export interface RdfIri {
type: "uri";
value: string;
}
export interface RdfBlank {
type: "bnode";
value: string;
}
export interface RdfLiteral {
type: "literal";
value: string;
datatype?: string;
"xml:lang": string;
}
export interface Triple {
subject: RdfNode;
predicate: RdfNode;
object: RdfNode;
}
export function isRdfBlank(e: RdfNode): e is RdfBlank {
return e && e.type === "bnode";
}
export function isRdfIri(e: RdfNode): e is RdfIri {
return e && e.type === "uri";
}
export function isRdfLiteral(e: RdfNode): e is RdfLiteral {
return e && e.type === "literal";
}
export interface BlankBinding extends ElementBinding {
blankType: {
value: "listHead" | "blankNode";
};
blankTrgProp: RdfNode;
blankTrg: RdfNode;
blankSrc?: RdfNode;
blankSrcProp?: RdfNode;
newInst?: RdfIri | RdfBlank;
}
export function isBlankBinding(
binding: ElementBinding | BlankBinding
): binding is BlankBinding {
const blank = binding as BlankBinding;
return (
blank.blankTrgProp !== undefined ||
blank.blankTrg !== undefined ||
blank.blankSrcProp !== undefined ||
blank.blankSrc !== undefined
);
}
export interface ElementBinding {
inst: RdfIri | RdfBlank;
class?: RdfIri;
label?: RdfLiteral;
propType?: RdfIri;
propValue?: RdfIri | RdfLiteral;
}
export interface ClassBinding {
class: RdfIri;
instcount?: RdfLiteral;
label?: RdfLiteral;
parent?: RdfIri;
}
export interface PropertyBinding {
property: RdfIri;
label?: RdfLiteral;
}
export interface LinkBinding {
source: RdfIri | RdfBlank;
type: RdfIri;
target: RdfIri | RdfBlank;
propType?: RdfIri;
propValue?: RdfLiteral;
}
export interface LinkCountBinding {
link: RdfIri | RdfBlank;
inCount: RdfLiteral;
outCount: RdfLiteral;
}
export interface LinkTypeBinding {
link: RdfIri;
label?: RdfLiteral;
instcount?: RdfLiteral;
}
export interface ElementImageBinding {
inst: RdfIri;
linkType: RdfIri;
image: RdfIri;
}
export interface ElementTypeBinding {
inst: RdfIri;
class: RdfIri;
}
export interface FilterBinding {
classAll?: RdfIri;
link?: RdfIri;
direction?: RdfLiteral;
}
export interface SparqlResponse<Binding> {
head: { vars: string[] };
results: { bindings: Binding[] };
}