Make N3 Store implement RDFJS Store (#35813)

This commit is contained in:
Ruben Taelman
2019-05-30 10:56:04 -07:00
committed by Sheetal Nandi
parent f08baa1d0f
commit 13e317fe33
3 changed files with 7 additions and 8 deletions
+4 -7
View File
@@ -1,10 +1,10 @@
// Type definitions for N3 1.0
// Type definitions for N3 1.1
// Project: https://github.com/rdfjs/n3.js
// Definitions by: Fred Eisele <https://github.com/phreed>
// Ruben Taelman <https://github.com/rubensworks>
// Laurens Rietveld <https://github.com/LaurensRietveld>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
// TypeScript Version: 2.4
/// <reference types="node" />
@@ -205,9 +205,9 @@ export interface StreamWriterConstructor {
}
export const StreamWriter: StreamWriterConstructor;
export interface N3StreamWriter<Q extends RDF.BaseQuad = Quad> extends NodeJS.ReadWriteStream, RDF.Source {}
export interface N3StreamWriter<Q extends RDF.BaseQuad = Quad> extends NodeJS.ReadWriteStream, RDF.Source<Q> {}
export interface N3Store<Q_RDF extends RDF.BaseQuad = RDF.Quad, Q_N3 extends BaseQuad = Quad> extends RDF.Sink {
export interface N3Store<Q_RDF extends RDF.BaseQuad = RDF.Quad, Q_N3 extends BaseQuad = Quad> extends RDF.Store<Q_RDF> {
readonly size: number;
addQuad(subject: Q_RDF['subject'], predicate: Q_RDF['predicate'], object: Q_RDF['object'] | Array<Q_RDF['object']>, graph?: Q_RDF['graph'], done?: () => void): void;
addQuad(quad: Q_RDF): void;
@@ -229,9 +229,6 @@ export interface N3Store<Q_RDF extends RDF.BaseQuad = RDF.Quad, Q_N3 extends Bas
getGraphs(subject: OTerm, predicate: OTerm, object: OTerm): Array<Q_N3['graph']>;
forGraphs(callback: QuadCallback<Q_N3>, subject: OTerm, predicate: OTerm, object: OTerm): void;
createBlankNode(suggestedName?: string): BlankNode;
// match, removeMatches and deleteGraph are missing for full RDF.Store adherence
remove(stream: stream.Stream): EventEmitter;
}
export interface StoreConstructor {
new<Q_RDF extends RDF.BaseQuad = RDF.Quad, Q_N3 extends BaseQuad = Quad> (triples?: Q_RDF[], options?: StoreOptions): N3Store<Q_RDF, Q_N3>;
+2
View File
@@ -198,6 +198,8 @@ function test_doc_storing() {
}
console.log(mickey.subject, mickey.predicate, mickey.object, '.');
const quadStream: RDF.Stream = store.match(N3.DataFactory.namedNode('http://ex.org/Mickey'));
interface N3QuadGeneralized extends N3.BaseQuad {
subject: N3.Quad_Subject | N3.BlankNode | N3.Literal;
predicate: N3.Quad_Predicate | N3.BlankNode | N3.Literal;
+1 -1
View File
@@ -385,7 +385,7 @@ export interface Sink<Q extends BaseQuad = Quad> {
*
* Access to stores LDP or SPARQL endpoints can be implemented with a Store inteface.
*/
export interface Store<Q extends BaseQuad = Quad> extends Source, Sink {
export interface Store<Q extends BaseQuad = Quad> extends Source<Q>, Sink<Q> {
/**
* Removes all streamed quads.
*