@oslo-flanders/core 0.0.3-alpha.0 → 0.0.4-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +6 -3
- package/index.js +6 -3
- package/lib/ServiceIdentifier.d.ts +2 -2
- package/lib/ServiceIdentifier.js +2 -2
- package/lib/interfaces/AppRunner.d.ts +5 -1
- package/lib/interfaces/AppRunner.js +12 -0
- package/lib/interfaces/IOutputHandler.d.ts +2 -2
- package/lib/interfaces/{IConversionService.d.ts → IService.d.ts} +3 -2
- package/lib/interfaces/{IConversionService.js → IService.js} +1 -1
- package/lib/logging/LogUtil.d.ts +4 -0
- package/lib/logging/LogUtil.js +17 -0
- package/lib/logging/Logger.d.ts +1 -0
- package/lib/logging/Logger.js +1 -0
- package/lib/logging/LoggerFactory.d.ts +11 -0
- package/lib/{interfaces/IGenerationService.js → logging/LoggerFactory.js} +1 -1
- package/lib/logging/VoidLoggerFactory.d.ts +9 -0
- package/lib/logging/VoidLoggerFactory.js +17 -0
- package/lib/logging/WinstonLogger.d.ts +3 -2
- package/lib/logging/WinstonLogger.js +3 -11
- package/lib/logging/WinstonLoggerFactory.d.ts +10 -0
- package/lib/logging/WinstonLoggerFactory.js +24 -0
- package/lib/store/QuadStore.d.ts +180 -0
- package/lib/store/QuadStore.js +330 -0
- package/package.json +4 -2
- package/lib/interfaces/IGenerationService.d.ts +0 -8
- package/lib/utils/N3StoreFunctions.d.ts +0 -136
- package/lib/utils/N3StoreFunctions.js +0 -257
package/index.d.ts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
2
|
export * from './lib/interfaces/AppRunner';
|
|
3
3
|
export * from './lib/interfaces/IConfiguration';
|
|
4
|
-
export * from './lib/interfaces/IConversionService';
|
|
5
|
-
export * from './lib/interfaces/IGenerationService';
|
|
6
4
|
export * from './lib/interfaces/IOutputHandler';
|
|
5
|
+
export * from './lib/interfaces/IService';
|
|
7
6
|
export * from './lib/utils/fetchFileOrUrl';
|
|
8
7
|
export * from './lib/utils/namespaces';
|
|
9
8
|
export * from './lib/utils/uniqueId';
|
|
10
|
-
export * from './lib/
|
|
9
|
+
export * from './lib/store/QuadStore';
|
|
11
10
|
export * from './lib/ServiceIdentifier';
|
|
12
11
|
export * from './lib/enums/Scope';
|
|
13
12
|
export * from './lib/enums/PropertyTypes';
|
|
@@ -15,3 +14,7 @@ export * from './lib/logging/LogLevel';
|
|
|
15
14
|
export * from './lib/logging/Logger';
|
|
16
15
|
export * from './lib/logging/VoidLogger';
|
|
17
16
|
export * from './lib/logging/WinstonLogger';
|
|
17
|
+
export * from './lib/logging/LogUtil';
|
|
18
|
+
export * from './lib/logging/LoggerFactory';
|
|
19
|
+
export * from './lib/logging/VoidLoggerFactory';
|
|
20
|
+
export * from './lib/logging/WinstonLoggerFactory';
|
package/index.js
CHANGED
|
@@ -17,13 +17,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
require("reflect-metadata");
|
|
18
18
|
__exportStar(require("./lib/interfaces/AppRunner"), exports);
|
|
19
19
|
__exportStar(require("./lib/interfaces/IConfiguration"), exports);
|
|
20
|
-
__exportStar(require("./lib/interfaces/IConversionService"), exports);
|
|
21
|
-
__exportStar(require("./lib/interfaces/IGenerationService"), exports);
|
|
22
20
|
__exportStar(require("./lib/interfaces/IOutputHandler"), exports);
|
|
21
|
+
__exportStar(require("./lib/interfaces/IService"), exports);
|
|
23
22
|
__exportStar(require("./lib/utils/fetchFileOrUrl"), exports);
|
|
24
23
|
__exportStar(require("./lib/utils/namespaces"), exports);
|
|
25
24
|
__exportStar(require("./lib/utils/uniqueId"), exports);
|
|
26
|
-
__exportStar(require("./lib/
|
|
25
|
+
__exportStar(require("./lib/store/QuadStore"), exports);
|
|
27
26
|
__exportStar(require("./lib/ServiceIdentifier"), exports);
|
|
28
27
|
__exportStar(require("./lib/enums/Scope"), exports);
|
|
29
28
|
__exportStar(require("./lib/enums/PropertyTypes"), exports);
|
|
@@ -31,4 +30,8 @@ __exportStar(require("./lib/logging/LogLevel"), exports);
|
|
|
31
30
|
__exportStar(require("./lib/logging/Logger"), exports);
|
|
32
31
|
__exportStar(require("./lib/logging/VoidLogger"), exports);
|
|
33
32
|
__exportStar(require("./lib/logging/WinstonLogger"), exports);
|
|
33
|
+
__exportStar(require("./lib/logging/LogUtil"), exports);
|
|
34
|
+
__exportStar(require("./lib/logging/LoggerFactory"), exports);
|
|
35
|
+
__exportStar(require("./lib/logging/VoidLoggerFactory"), exports);
|
|
36
|
+
__exportStar(require("./lib/logging/WinstonLoggerFactory"), exports);
|
|
34
37
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare class ServiceIdentifier {
|
|
2
|
-
static readonly
|
|
3
|
-
static readonly GenerationService: unique symbol;
|
|
2
|
+
static readonly Service: unique symbol;
|
|
4
3
|
static readonly Configuration: unique symbol;
|
|
5
4
|
static readonly OutputHandler: unique symbol;
|
|
6
5
|
static readonly Logger: unique symbol;
|
|
6
|
+
static readonly QuadStore: unique symbol;
|
|
7
7
|
}
|
package/lib/ServiceIdentifier.js
CHANGED
|
@@ -7,9 +7,9 @@ exports.ServiceIdentifier = void 0;
|
|
|
7
7
|
class ServiceIdentifier {
|
|
8
8
|
}
|
|
9
9
|
exports.ServiceIdentifier = ServiceIdentifier;
|
|
10
|
-
ServiceIdentifier.
|
|
11
|
-
ServiceIdentifier.GenerationService = Symbol.for('GenerationService');
|
|
10
|
+
ServiceIdentifier.Service = Symbol.for('Service');
|
|
12
11
|
ServiceIdentifier.Configuration = Symbol.for('Configuration');
|
|
13
12
|
ServiceIdentifier.OutputHandler = Symbol.for('OutputHandler');
|
|
14
13
|
ServiceIdentifier.Logger = Symbol.for('Logger');
|
|
14
|
+
ServiceIdentifier.QuadStore = Symbol.for('QuadStore');
|
|
15
15
|
//# sourceMappingURL=ServiceIdentifier.js.map
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
import type { Container } from 'inversify';
|
|
3
|
+
import type { IConfiguration } from './IConfiguration';
|
|
4
|
+
import type { IService } from './IService';
|
|
2
5
|
export declare type CliArgv = string[];
|
|
3
6
|
export declare type YargsParams = {
|
|
4
7
|
[x: string]: unknown;
|
|
@@ -9,7 +12,8 @@ export declare type YargsParams = {
|
|
|
9
12
|
_: (string | number)[];
|
|
10
13
|
$0: string;
|
|
11
14
|
};
|
|
12
|
-
export declare abstract class AppRunner {
|
|
15
|
+
export declare abstract class AppRunner<T extends IService, K extends IConfiguration> {
|
|
13
16
|
runCliSync(process: NodeJS.Process): void;
|
|
14
17
|
abstract runCli(argv: CliArgv): Promise<void>;
|
|
18
|
+
startApp(params: YargsParams, container: Container): Promise<void>;
|
|
15
19
|
}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AppRunner = void 0;
|
|
4
4
|
const process_1 = require("process");
|
|
5
|
+
const LogUtil_1 = require("../logging/LogUtil");
|
|
6
|
+
const ServiceIdentifier_1 = require("../ServiceIdentifier");
|
|
5
7
|
class AppRunner {
|
|
6
8
|
runCliSync(process) {
|
|
7
9
|
this.runCli(process.argv).catch((error) => {
|
|
@@ -10,6 +12,16 @@ class AppRunner {
|
|
|
10
12
|
process.exit(1);
|
|
11
13
|
});
|
|
12
14
|
}
|
|
15
|
+
async startApp(params, container) {
|
|
16
|
+
const configuration = container.get(ServiceIdentifier_1.ServiceIdentifier.Configuration);
|
|
17
|
+
await configuration.createFromCli(params);
|
|
18
|
+
(0, LogUtil_1.setLoggerFactory)(params);
|
|
19
|
+
container.bind(ServiceIdentifier_1.ServiceIdentifier.Logger).toDynamicValue(() => (0, LogUtil_1.createLogger)()).inSingletonScope();
|
|
20
|
+
const service = container.get(ServiceIdentifier_1.ServiceIdentifier.Service);
|
|
21
|
+
service.init()
|
|
22
|
+
.then(() => service.run())
|
|
23
|
+
.catch(error => console.error(error));
|
|
24
|
+
}
|
|
13
25
|
}
|
|
14
26
|
exports.AppRunner = AppRunner;
|
|
15
27
|
//# sourceMappingURL=AppRunner.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { QuadStore } from '../store/QuadStore';
|
|
2
2
|
/**
|
|
3
3
|
* Writes the triples in an RDF store to a write stream
|
|
4
4
|
*/
|
|
5
5
|
export interface IOutputHandler {
|
|
6
|
-
write: (store:
|
|
6
|
+
write: (store: QuadStore, writeStream: any) => Promise<void>;
|
|
7
7
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { Logger } from '../logging/Logger';
|
|
2
2
|
import type { IConfiguration } from './IConfiguration';
|
|
3
3
|
/**
|
|
4
|
-
* Interface that must be implemented by
|
|
4
|
+
* Interface that must be implemented by conversion of generation services
|
|
5
5
|
*/
|
|
6
|
-
export interface
|
|
6
|
+
export interface IService {
|
|
7
7
|
logger: Logger;
|
|
8
8
|
configuration: IConfiguration;
|
|
9
|
+
init: () => Promise<void>;
|
|
9
10
|
run: () => Promise<void>;
|
|
10
11
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setLoggerFactory = exports.createLogger = void 0;
|
|
4
|
+
const VoidLoggerFactory_1 = require("./VoidLoggerFactory");
|
|
5
|
+
const WinstonLoggerFactory_1 = require("./WinstonLoggerFactory");
|
|
6
|
+
let loggerFactory = new VoidLoggerFactory_1.VoidLoggerFactory();
|
|
7
|
+
function createLogger() {
|
|
8
|
+
return loggerFactory.createLogger();
|
|
9
|
+
}
|
|
10
|
+
exports.createLogger = createLogger;
|
|
11
|
+
function setLoggerFactory(params) {
|
|
12
|
+
if (!params.silent) {
|
|
13
|
+
loggerFactory = new WinstonLoggerFactory_1.WinstonLoggerFactory(params.logLevel);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.setLoggerFactory = setLoggerFactory;
|
|
17
|
+
//# sourceMappingURL=LogUtil.js.map
|
package/lib/logging/Logger.d.ts
CHANGED
package/lib/logging/Logger.js
CHANGED
|
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
};
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.BaseLogger = void 0;
|
|
10
|
+
require("reflect-metadata");
|
|
10
11
|
const inversify_1 = require("inversify");
|
|
11
12
|
let BaseLogger = class BaseLogger {
|
|
12
13
|
error(message) {
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Logger } from './Logger';
|
|
2
|
+
/**
|
|
3
|
+
* Instantiates new logger instances.
|
|
4
|
+
*/
|
|
5
|
+
export interface LoggerFactory {
|
|
6
|
+
/**
|
|
7
|
+
* Create a logger instance for the given label.
|
|
8
|
+
* @param label - A label that is used to identify the given logger.
|
|
9
|
+
*/
|
|
10
|
+
createLogger: (label?: string) => Logger;
|
|
11
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { LoggerFactory } from './LoggerFactory';
|
|
2
|
+
import { VoidLogger } from './VoidLogger';
|
|
3
|
+
/**
|
|
4
|
+
* A factory that always returns {@link VoidLogger}, which does nothing on log messages.
|
|
5
|
+
*/
|
|
6
|
+
export declare class VoidLoggerFactory implements LoggerFactory {
|
|
7
|
+
private readonly logger;
|
|
8
|
+
createLogger(label?: string): VoidLogger;
|
|
9
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VoidLoggerFactory = void 0;
|
|
4
|
+
const VoidLogger_1 = require("./VoidLogger");
|
|
5
|
+
/**
|
|
6
|
+
* A factory that always returns {@link VoidLogger}, which does nothing on log messages.
|
|
7
|
+
*/
|
|
8
|
+
class VoidLoggerFactory {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.logger = new VoidLogger_1.VoidLogger();
|
|
11
|
+
}
|
|
12
|
+
createLogger(label) {
|
|
13
|
+
return this.logger;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.VoidLoggerFactory = VoidLoggerFactory;
|
|
17
|
+
//# sourceMappingURL=VoidLoggerFactory.js.map
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { Logger as WinstonInnerLogger } from 'winston';
|
|
1
2
|
import { BaseLogger } from './Logger';
|
|
2
|
-
import { LogLevel } from './LogLevel';
|
|
3
|
+
import type { LogLevel } from './LogLevel';
|
|
3
4
|
export declare class WinstonLogger extends BaseLogger {
|
|
4
5
|
private readonly logger;
|
|
5
|
-
constructor(
|
|
6
|
+
constructor(logger: WinstonInnerLogger);
|
|
6
7
|
log(level: LogLevel, message: string): this;
|
|
7
8
|
}
|
|
@@ -12,19 +12,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.WinstonLogger = void 0;
|
|
13
13
|
const inversify_1 = require("inversify");
|
|
14
14
|
const winston_1 = require("winston");
|
|
15
|
-
const { combine, colorize, printf } = winston_1.format;
|
|
16
15
|
const Logger_1 = require("./Logger");
|
|
17
|
-
const messageFormat = printf(({ level, message, messageTimestamp }) => `${new Date(Date.now()).toISOString()} ${level}: ${message}`);
|
|
18
16
|
let WinstonLogger = class WinstonLogger extends Logger_1.BaseLogger {
|
|
19
|
-
constructor(
|
|
17
|
+
constructor(logger) {
|
|
20
18
|
super();
|
|
21
|
-
this.logger =
|
|
22
|
-
level: logLevel,
|
|
23
|
-
transports: [
|
|
24
|
-
new winston_1.transports.Console(),
|
|
25
|
-
],
|
|
26
|
-
format: combine(colorize(), messageFormat),
|
|
27
|
-
});
|
|
19
|
+
this.logger = logger;
|
|
28
20
|
}
|
|
29
21
|
log(level, message) {
|
|
30
22
|
this.logger.log(level, message);
|
|
@@ -33,7 +25,7 @@ let WinstonLogger = class WinstonLogger extends Logger_1.BaseLogger {
|
|
|
33
25
|
};
|
|
34
26
|
WinstonLogger = __decorate([
|
|
35
27
|
(0, inversify_1.injectable)(),
|
|
36
|
-
__metadata("design:paramtypes", [
|
|
28
|
+
__metadata("design:paramtypes", [winston_1.Logger])
|
|
37
29
|
], WinstonLogger);
|
|
38
30
|
exports.WinstonLogger = WinstonLogger;
|
|
39
31
|
//# sourceMappingURL=WinstonLogger.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type * as Transport from 'winston-transport';
|
|
2
|
+
import type { Logger } from './Logger';
|
|
3
|
+
import type { LoggerFactory } from './LoggerFactory';
|
|
4
|
+
import type { LogLevel } from './LogLevel';
|
|
5
|
+
export declare class WinstonLoggerFactory implements LoggerFactory {
|
|
6
|
+
private readonly level;
|
|
7
|
+
constructor(level: LogLevel);
|
|
8
|
+
createLogger(label?: string): Logger;
|
|
9
|
+
protected createTransports(): Transport[];
|
|
10
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WinstonLoggerFactory = void 0;
|
|
4
|
+
const winston_1 = require("winston");
|
|
5
|
+
const WinstonLogger_1 = require("./WinstonLogger");
|
|
6
|
+
const { combine, colorize, printf } = winston_1.format;
|
|
7
|
+
const messageFormat = printf(({ level, message, messageTimestamp }) => `${new Date(Date.now()).toISOString()} ${level}: ${message}`);
|
|
8
|
+
class WinstonLoggerFactory {
|
|
9
|
+
constructor(level) {
|
|
10
|
+
this.level = level;
|
|
11
|
+
}
|
|
12
|
+
createLogger(label) {
|
|
13
|
+
return new WinstonLogger_1.WinstonLogger((0, winston_1.createLogger)({
|
|
14
|
+
level: this.level,
|
|
15
|
+
transports: this.createTransports(),
|
|
16
|
+
format: combine(colorize(), messageFormat),
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
createTransports() {
|
|
20
|
+
return [new winston_1.transports.Console()];
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.WinstonLoggerFactory = WinstonLoggerFactory;
|
|
24
|
+
//# sourceMappingURL=WinstonLoggerFactory.js.map
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import type * as RDF from '@rdfjs/types';
|
|
2
|
+
export declare class QuadStore {
|
|
3
|
+
private readonly store;
|
|
4
|
+
constructor();
|
|
5
|
+
addQuads(quads: RDF.Quad[]): void;
|
|
6
|
+
addQuad(quad: RDF.Quad): void;
|
|
7
|
+
addQuadsFromFile(file: string): Promise<void>;
|
|
8
|
+
findQuads(subject: RDF.Term | null, predicate: RDF.Term | null, object: RDF.Term | null): RDF.Quad[];
|
|
9
|
+
findQuad(subject: RDF.Term | null, predicate: RDF.Term | null, object: RDF.Term | null): RDF.Quad | undefined;
|
|
10
|
+
findSubjects(predicate: RDF.Term, object: RDF.Term): RDF.Term[];
|
|
11
|
+
findSubject(predicate: RDF.Term, object: RDF.Term): RDF.Term | undefined;
|
|
12
|
+
findObjects(subject: RDF.Term, predicate: RDF.Term): RDF.Term[];
|
|
13
|
+
findObject(subject: RDF.Term, predicate: RDF.Term): RDF.Term | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Finds the subject where predicate is 'rdf:type' and object 'example:Package'
|
|
16
|
+
* @returns a RDF.NamedNode or undefined
|
|
17
|
+
*/
|
|
18
|
+
getPackageId(): RDF.NamedNode | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Finds all subjects where predicate is 'rdf:type' and object 'owl:Class'
|
|
21
|
+
* @returns an array of RDF.NamedNodes
|
|
22
|
+
*/
|
|
23
|
+
getClassIds(): RDF.NamedNode[];
|
|
24
|
+
/**
|
|
25
|
+
* Finds all subjects where predicate is 'rdf:type' and object 'owl:DatatypeProperty'
|
|
26
|
+
* @returns an array of RDF.NamedNodes
|
|
27
|
+
*/
|
|
28
|
+
getDatatypePropertyIds(): RDF.NamedNode[];
|
|
29
|
+
/**
|
|
30
|
+
* Finds all subjects where predicate is 'rdf:type' and object 'owl:ObjectProperty'
|
|
31
|
+
* @returns an array of RDF.NamedNodes
|
|
32
|
+
*/
|
|
33
|
+
getObjectPropertyIds(): RDF.NamedNode[];
|
|
34
|
+
/**
|
|
35
|
+
* For a given subject, the quad store is queried to find the assigned URI
|
|
36
|
+
* @param subject The subject for which the assigned URI is to be retrieved
|
|
37
|
+
* @param store The quad store
|
|
38
|
+
* @returns An RDF.NamedNode or undefined if not found
|
|
39
|
+
*/
|
|
40
|
+
getAssignedUri(subject: RDF.Term): RDF.NamedNode | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Find all rdfs:labels for a given subject
|
|
43
|
+
* @param subject The RDF.Term to find the rdfs:labels for
|
|
44
|
+
* @param store A N3 quad store
|
|
45
|
+
* @returns An array of RDF.Literals
|
|
46
|
+
*/
|
|
47
|
+
getLabels(subject: RDF.Term): RDF.Literal[];
|
|
48
|
+
/**
|
|
49
|
+
* Finds the rdfs:label whose language tag matches the given language
|
|
50
|
+
* @param subject The RDF.Term to find the rdfs:label for
|
|
51
|
+
* @param store A N3 quad store
|
|
52
|
+
* @param language A language tag
|
|
53
|
+
* @returns An RDF.Literal or undefined if not found
|
|
54
|
+
*/
|
|
55
|
+
getLabel(subject: RDF.Term, language?: string): RDF.Literal | undefined;
|
|
56
|
+
/**
|
|
57
|
+
* Find all rdfs:comments for a given subject
|
|
58
|
+
* @param subject The RDF.Term to find the rdfs:comments for
|
|
59
|
+
* @param store A N3 quad store
|
|
60
|
+
* @returns An array of RDF.Literals
|
|
61
|
+
*/
|
|
62
|
+
getDefinitions(subject: RDF.Term): RDF.Literal[];
|
|
63
|
+
/**
|
|
64
|
+
* Finds the rdfs:comment whose language tag matches the given language
|
|
65
|
+
* @param subject The RDF.Term to find the rdfs:comment for
|
|
66
|
+
* @param store A N3 quad store
|
|
67
|
+
* @param language A language tag
|
|
68
|
+
* @returns An RDF.Literal or undefined if not found
|
|
69
|
+
*/
|
|
70
|
+
getDefinition(subject: RDF.Term, language?: string): RDF.Literal | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* Finds the rdfs:range of a given RDF.Term
|
|
73
|
+
* @param subject The RDF.Term to find the range of
|
|
74
|
+
* @param store A N3 quad store
|
|
75
|
+
* @returns An RDF.Term or undefined if not found
|
|
76
|
+
*/
|
|
77
|
+
getRange(subject: RDF.Term): RDF.NamedNode | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* Finds the rdfs:domain of a given RDF.Term
|
|
80
|
+
* @param subject The RDF.Term to find the domain of
|
|
81
|
+
* @param store A N3 quad store
|
|
82
|
+
* @returns An RDF.Term or undefined if not found
|
|
83
|
+
*/
|
|
84
|
+
getDomain(subject: RDF.Term): RDF.NamedNode | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* Finds all the vann:usageNotes of a given RDF.Term
|
|
87
|
+
* @param subject The RDF.Term to find the usage notes for
|
|
88
|
+
* @param store A N3 quad store
|
|
89
|
+
* @returns An array of RDF.Literals
|
|
90
|
+
*/
|
|
91
|
+
getUsageNotes(subject: RDF.Term): RDF.Literal[];
|
|
92
|
+
/**
|
|
93
|
+
* Finds the vann:usageNote of which the language tag matches the given language
|
|
94
|
+
* @param subject The RDF.Term to find the usage note for
|
|
95
|
+
* @param store A N3 quad store
|
|
96
|
+
* @param language A language tag
|
|
97
|
+
* @returns An RDF.Literal or undefined if not found
|
|
98
|
+
*/
|
|
99
|
+
getUsageNote(subject: RDF.Term, language?: string): RDF.Literal | undefined;
|
|
100
|
+
/**
|
|
101
|
+
* Finds the example:scope of a given subject
|
|
102
|
+
* @param subject The RDF.Term to find the scope for
|
|
103
|
+
* @returns An RDF.NamedNode or undefined if not found
|
|
104
|
+
*/
|
|
105
|
+
getScope(subject: RDF.Term): RDF.NamedNode | undefined;
|
|
106
|
+
/**
|
|
107
|
+
* Finds the shacl:minCardinality for a given subject
|
|
108
|
+
* @param subject The RDF.Term to find the shacl:minCardinaly for
|
|
109
|
+
* @returns An RDF.Literal or undefined if not found
|
|
110
|
+
*/
|
|
111
|
+
getMinCardinality(subject: RDF.Term): RDF.Literal | undefined;
|
|
112
|
+
/**
|
|
113
|
+
* Finds the shacl:maxCardinality for a given subject
|
|
114
|
+
* @param subject The RDF.Term to find the shacl:maxCardinaly for
|
|
115
|
+
* @returns An RDF.Literal or undefined if not found
|
|
116
|
+
*/
|
|
117
|
+
getMaxCardinality(subject: RDF.Term): RDF.Literal | undefined;
|
|
118
|
+
/**
|
|
119
|
+
* Finds all the rdfs:subClassOf of a given RDF.Term
|
|
120
|
+
* @param subject the RDF.Term to find the parents of
|
|
121
|
+
* @param store A N3 quad store
|
|
122
|
+
* @returns An array of RDF.Terms
|
|
123
|
+
*/
|
|
124
|
+
getParentsOfClass(subject: RDF.Term): RDF.NamedNode[];
|
|
125
|
+
/**
|
|
126
|
+
* Finds the rdfs:subPropertyOf of a given RDF.Term
|
|
127
|
+
* @param subject The RDF.Term to find the parent of
|
|
128
|
+
* @param store A N3 quad store
|
|
129
|
+
* @returns An RDF.Term or undefined if not found
|
|
130
|
+
*/
|
|
131
|
+
getParentOfProperty(subject: RDF.Term): RDF.NamedNode | undefined;
|
|
132
|
+
/**
|
|
133
|
+
* Find the subject of the statement that matches the given subject, predicate and object
|
|
134
|
+
* @param statementSubject The subject to match the statement subject
|
|
135
|
+
* @param statementPredicate The predicate to match the statement predicate
|
|
136
|
+
* @param statementObject The object to match the statement object
|
|
137
|
+
* @param store An N3 quad store
|
|
138
|
+
* @returns an RDF.Term or undefined if none found
|
|
139
|
+
*/
|
|
140
|
+
getTargetStatementId(statementSubject: RDF.Term, statementPredicate: RDF.Term, statementObject: RDF.Term): RDF.Term | undefined;
|
|
141
|
+
/**
|
|
142
|
+
* Finds the assigned URI in rdf:Statements
|
|
143
|
+
* @param subject The statement subject
|
|
144
|
+
* @param predicate The statement predicate
|
|
145
|
+
* @param object The statement object for which the assigned URI must be found
|
|
146
|
+
* @param store A N3 quad store
|
|
147
|
+
* @returns An RDF.Term or undefined if not found
|
|
148
|
+
*/
|
|
149
|
+
getAssignedUriViaStatements(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term): RDF.NamedNode | undefined;
|
|
150
|
+
/**
|
|
151
|
+
* Finds the rdfs:label for an RDF.Term in rdf:Statements
|
|
152
|
+
* @param subject The statement subject
|
|
153
|
+
* @param predicate The statement predicate
|
|
154
|
+
* @param object The statement object for which the label must be found
|
|
155
|
+
* @param store A N3 quad store
|
|
156
|
+
* @param language A language tag
|
|
157
|
+
* @returns An RDF.Literal or undefined if not found
|
|
158
|
+
*/
|
|
159
|
+
getLabelViaStatements(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term, language: string): RDF.Literal | undefined;
|
|
160
|
+
/**
|
|
161
|
+
* Finds the rdfs:comment for an RDF.Term in rdf:Statements
|
|
162
|
+
* @param subject The statement subject
|
|
163
|
+
* @param predicate The statement predicate
|
|
164
|
+
* @param object The statement object for which the definition must be found
|
|
165
|
+
* @param store A N3 quad store
|
|
166
|
+
* @param language A language tag
|
|
167
|
+
* @returns An RDF.Literal or undefined if not found
|
|
168
|
+
*/
|
|
169
|
+
getDefinitionViaStatements(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term, language: string): RDF.Literal | undefined;
|
|
170
|
+
/**
|
|
171
|
+
* Finds the vann:usageNote for an RDF.Term in rdf:Statements
|
|
172
|
+
* @param subject The statement subject
|
|
173
|
+
* @param predicate The statement predicate
|
|
174
|
+
* @param object The statement object for which the usage note must be found
|
|
175
|
+
* @param store A N3 quad store
|
|
176
|
+
* @param language A language tag
|
|
177
|
+
* @returns An RDF.Literal or undefined if not found
|
|
178
|
+
*/
|
|
179
|
+
getUsageNoteViaStatements(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term, language: string): RDF.Literal | undefined;
|
|
180
|
+
}
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
+
if (mod && mod.__esModule) return mod;
|
|
26
|
+
var result = {};
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
+
__setModuleDefault(result, mod);
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
32
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.QuadStore = void 0;
|
|
39
|
+
const inversify_1 = require("inversify");
|
|
40
|
+
const N3 = __importStar(require("n3"));
|
|
41
|
+
const rdf_parse_1 = __importDefault(require("rdf-parse"));
|
|
42
|
+
const fetchFileOrUrl_1 = require("../utils/fetchFileOrUrl");
|
|
43
|
+
const namespaces_1 = require("../utils/namespaces");
|
|
44
|
+
let QuadStore = class QuadStore {
|
|
45
|
+
constructor() {
|
|
46
|
+
this.store = new N3.Store();
|
|
47
|
+
}
|
|
48
|
+
addQuads(quads) {
|
|
49
|
+
this.store.addQuads(quads);
|
|
50
|
+
}
|
|
51
|
+
addQuad(quad) {
|
|
52
|
+
this.store.addQuad(quad);
|
|
53
|
+
}
|
|
54
|
+
async addQuadsFromFile(file) {
|
|
55
|
+
const buffer = await (0, fetchFileOrUrl_1.fetchFileOrUrl)(file);
|
|
56
|
+
const textStream = require('streamify-string')(buffer.toString());
|
|
57
|
+
return new Promise((resolve, reject) => {
|
|
58
|
+
rdf_parse_1.default.parse(textStream, { path: file })
|
|
59
|
+
.on('data', (quad) => this.store.addQuad(quad))
|
|
60
|
+
.on('error', (error) => reject(error))
|
|
61
|
+
.on('end', () => resolve());
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
findQuads(subject, predicate, object) {
|
|
65
|
+
return this.store.getQuads(subject, predicate, object, null);
|
|
66
|
+
}
|
|
67
|
+
findQuad(subject, predicate, object) {
|
|
68
|
+
return this.findQuads(subject, predicate, object).shift();
|
|
69
|
+
}
|
|
70
|
+
findSubjects(predicate, object) {
|
|
71
|
+
return this.store.getSubjects(predicate, object, null);
|
|
72
|
+
}
|
|
73
|
+
findSubject(predicate, object) {
|
|
74
|
+
return this.findSubjects(predicate, object).shift();
|
|
75
|
+
}
|
|
76
|
+
findObjects(subject, predicate) {
|
|
77
|
+
return this.store.getObjects(subject, predicate, null);
|
|
78
|
+
}
|
|
79
|
+
findObject(subject, predicate) {
|
|
80
|
+
return this.findObjects(subject, predicate).shift();
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Finds the subject where predicate is 'rdf:type' and object 'example:Package'
|
|
84
|
+
* @returns a RDF.NamedNode or undefined
|
|
85
|
+
*/
|
|
86
|
+
getPackageId() {
|
|
87
|
+
return this.store.getSubjects(namespaces_1.ns.rdf('type'), namespaces_1.ns.example('Package'), null).shift();
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Finds all subjects where predicate is 'rdf:type' and object 'owl:Class'
|
|
91
|
+
* @returns an array of RDF.NamedNodes
|
|
92
|
+
*/
|
|
93
|
+
getClassIds() {
|
|
94
|
+
return this.store.getSubjects(namespaces_1.ns.rdf('type'), namespaces_1.ns.owl('Class'), null);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Finds all subjects where predicate is 'rdf:type' and object 'owl:DatatypeProperty'
|
|
98
|
+
* @returns an array of RDF.NamedNodes
|
|
99
|
+
*/
|
|
100
|
+
getDatatypePropertyIds() {
|
|
101
|
+
return this.store.getSubjects(namespaces_1.ns.rdf('type'), namespaces_1.ns.owl('DatatypeProperty'), null);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Finds all subjects where predicate is 'rdf:type' and object 'owl:ObjectProperty'
|
|
105
|
+
* @returns an array of RDF.NamedNodes
|
|
106
|
+
*/
|
|
107
|
+
getObjectPropertyIds() {
|
|
108
|
+
return this.store.getSubjects(namespaces_1.ns.rdf('type'), namespaces_1.ns.owl('ObjectProperty'), null);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* For a given subject, the quad store is queried to find the assigned URI
|
|
112
|
+
* @param subject The subject for which the assigned URI is to be retrieved
|
|
113
|
+
* @param store The quad store
|
|
114
|
+
* @returns An RDF.NamedNode or undefined if not found
|
|
115
|
+
*/
|
|
116
|
+
getAssignedUri(subject) {
|
|
117
|
+
return this.store.getObjects(subject, namespaces_1.ns.example('assignedUri'), null).shift();
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Find all rdfs:labels for a given subject
|
|
121
|
+
* @param subject The RDF.Term to find the rdfs:labels for
|
|
122
|
+
* @param store A N3 quad store
|
|
123
|
+
* @returns An array of RDF.Literals
|
|
124
|
+
*/
|
|
125
|
+
getLabels(subject) {
|
|
126
|
+
return this.store.getObjects(subject, namespaces_1.ns.rdfs('label'), null);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Finds the rdfs:label whose language tag matches the given language
|
|
130
|
+
* @param subject The RDF.Term to find the rdfs:label for
|
|
131
|
+
* @param store A N3 quad store
|
|
132
|
+
* @param language A language tag
|
|
133
|
+
* @returns An RDF.Literal or undefined if not found
|
|
134
|
+
*/
|
|
135
|
+
getLabel(subject, language) {
|
|
136
|
+
return this.getLabels(subject).find(x => x.language === (language || ''));
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Find all rdfs:comments for a given subject
|
|
140
|
+
* @param subject The RDF.Term to find the rdfs:comments for
|
|
141
|
+
* @param store A N3 quad store
|
|
142
|
+
* @returns An array of RDF.Literals
|
|
143
|
+
*/
|
|
144
|
+
getDefinitions(subject) {
|
|
145
|
+
return this.store.getObjects(subject, namespaces_1.ns.rdfs('comment'), null);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Finds the rdfs:comment whose language tag matches the given language
|
|
149
|
+
* @param subject The RDF.Term to find the rdfs:comment for
|
|
150
|
+
* @param store A N3 quad store
|
|
151
|
+
* @param language A language tag
|
|
152
|
+
* @returns An RDF.Literal or undefined if not found
|
|
153
|
+
*/
|
|
154
|
+
getDefinition(subject, language) {
|
|
155
|
+
return this.getDefinitions(subject).find(x => x.language === (language || ''));
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Finds the rdfs:range of a given RDF.Term
|
|
159
|
+
* @param subject The RDF.Term to find the range of
|
|
160
|
+
* @param store A N3 quad store
|
|
161
|
+
* @returns An RDF.Term or undefined if not found
|
|
162
|
+
*/
|
|
163
|
+
getRange(subject) {
|
|
164
|
+
return this.store.getObjects(subject, namespaces_1.ns.rdfs('range'), null).shift();
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Finds the rdfs:domain of a given RDF.Term
|
|
168
|
+
* @param subject The RDF.Term to find the domain of
|
|
169
|
+
* @param store A N3 quad store
|
|
170
|
+
* @returns An RDF.Term or undefined if not found
|
|
171
|
+
*/
|
|
172
|
+
getDomain(subject) {
|
|
173
|
+
return this.store.getObjects(subject, namespaces_1.ns.rdfs('domain'), null).shift();
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Finds all the vann:usageNotes of a given RDF.Term
|
|
177
|
+
* @param subject The RDF.Term to find the usage notes for
|
|
178
|
+
* @param store A N3 quad store
|
|
179
|
+
* @returns An array of RDF.Literals
|
|
180
|
+
*/
|
|
181
|
+
getUsageNotes(subject) {
|
|
182
|
+
return this.store.getObjects(subject, namespaces_1.ns.vann('usageNote'), null);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Finds the vann:usageNote of which the language tag matches the given language
|
|
186
|
+
* @param subject The RDF.Term to find the usage note for
|
|
187
|
+
* @param store A N3 quad store
|
|
188
|
+
* @param language A language tag
|
|
189
|
+
* @returns An RDF.Literal or undefined if not found
|
|
190
|
+
*/
|
|
191
|
+
getUsageNote(subject, language) {
|
|
192
|
+
return this.getUsageNotes(subject).find(x => x.language === (language || ''));
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Finds the example:scope of a given subject
|
|
196
|
+
* @param subject The RDF.Term to find the scope for
|
|
197
|
+
* @returns An RDF.NamedNode or undefined if not found
|
|
198
|
+
*/
|
|
199
|
+
getScope(subject) {
|
|
200
|
+
return this.store.getObjects(subject, namespaces_1.ns.example('scope'), null).shift();
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Finds the shacl:minCardinality for a given subject
|
|
204
|
+
* @param subject The RDF.Term to find the shacl:minCardinaly for
|
|
205
|
+
* @returns An RDF.Literal or undefined if not found
|
|
206
|
+
*/
|
|
207
|
+
getMinCardinality(subject) {
|
|
208
|
+
return this.store.getObjects(subject, namespaces_1.ns.shacl('minCount'), null).shift();
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Finds the shacl:maxCardinality for a given subject
|
|
212
|
+
* @param subject The RDF.Term to find the shacl:maxCardinaly for
|
|
213
|
+
* @returns An RDF.Literal or undefined if not found
|
|
214
|
+
*/
|
|
215
|
+
getMaxCardinality(subject) {
|
|
216
|
+
return this.store.getObjects(subject, namespaces_1.ns.shacl('maxCount'), null).shift();
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Finds all the rdfs:subClassOf of a given RDF.Term
|
|
220
|
+
* @param subject the RDF.Term to find the parents of
|
|
221
|
+
* @param store A N3 quad store
|
|
222
|
+
* @returns An array of RDF.Terms
|
|
223
|
+
*/
|
|
224
|
+
getParentsOfClass(subject) {
|
|
225
|
+
return this.store.getObjects(subject, namespaces_1.ns.rdfs('subClassOf'), null);
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Finds the rdfs:subPropertyOf of a given RDF.Term
|
|
229
|
+
* @param subject The RDF.Term to find the parent of
|
|
230
|
+
* @param store A N3 quad store
|
|
231
|
+
* @returns An RDF.Term or undefined if not found
|
|
232
|
+
*/
|
|
233
|
+
getParentOfProperty(subject) {
|
|
234
|
+
return this.store.getObjects(subject, namespaces_1.ns.rdfs('subPropertyOf'), null).shift();
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Find the subject of the statement that matches the given subject, predicate and object
|
|
238
|
+
* @param statementSubject The subject to match the statement subject
|
|
239
|
+
* @param statementPredicate The predicate to match the statement predicate
|
|
240
|
+
* @param statementObject The object to match the statement object
|
|
241
|
+
* @param store An N3 quad store
|
|
242
|
+
* @returns an RDF.Term or undefined if none found
|
|
243
|
+
*/
|
|
244
|
+
getTargetStatementId(statementSubject, statementPredicate, statementObject) {
|
|
245
|
+
const statementIds = this.store.getSubjects(namespaces_1.ns.rdf('type'), namespaces_1.ns.rdf('Statement'), null);
|
|
246
|
+
const statementSubjectPredicateSubjects = this.store.getSubjects(namespaces_1.ns.rdf('subject'), statementSubject, null);
|
|
247
|
+
const statementPredicatePredicateSubjects = this.store.getSubjects(namespaces_1.ns.rdf('predicate'), statementPredicate, null);
|
|
248
|
+
const statementObjectPredicateSubjects = this.store.getSubjects(namespaces_1.ns.rdf('object'), statementObject, null);
|
|
249
|
+
const targetIds = statementIds
|
|
250
|
+
.filter(x => statementSubjectPredicateSubjects.some(y => y.value === x.value))
|
|
251
|
+
.filter(x => statementPredicatePredicateSubjects.some(y => y.value === x.value))
|
|
252
|
+
.filter(x => statementObjectPredicateSubjects.some(y => y.value === x.value));
|
|
253
|
+
if (targetIds.length > 1) {
|
|
254
|
+
throw new Error(`Found multiple statements with subject "${statementSubject.value}", predicate "${statementPredicate.value}" and object "${statementObject.value}".`);
|
|
255
|
+
}
|
|
256
|
+
return targetIds.shift();
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Finds the assigned URI in rdf:Statements
|
|
260
|
+
* @param subject The statement subject
|
|
261
|
+
* @param predicate The statement predicate
|
|
262
|
+
* @param object The statement object for which the assigned URI must be found
|
|
263
|
+
* @param store A N3 quad store
|
|
264
|
+
* @returns An RDF.Term or undefined if not found
|
|
265
|
+
*/
|
|
266
|
+
getAssignedUriViaStatements(subject, predicate, object) {
|
|
267
|
+
const statementId = this.getTargetStatementId(subject, predicate, object);
|
|
268
|
+
if (!statementId) {
|
|
269
|
+
return undefined;
|
|
270
|
+
}
|
|
271
|
+
return this.getAssignedUri(statementId);
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Finds the rdfs:label for an RDF.Term in rdf:Statements
|
|
275
|
+
* @param subject The statement subject
|
|
276
|
+
* @param predicate The statement predicate
|
|
277
|
+
* @param object The statement object for which the label must be found
|
|
278
|
+
* @param store A N3 quad store
|
|
279
|
+
* @param language A language tag
|
|
280
|
+
* @returns An RDF.Literal or undefined if not found
|
|
281
|
+
*/
|
|
282
|
+
getLabelViaStatements(subject, predicate, object, language) {
|
|
283
|
+
const statementId = this.getTargetStatementId(subject, predicate, object);
|
|
284
|
+
if (!statementId) {
|
|
285
|
+
return undefined;
|
|
286
|
+
}
|
|
287
|
+
const label = this.getLabel(statementId, language);
|
|
288
|
+
return label || this.getLabel(statementId);
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Finds the rdfs:comment for an RDF.Term in rdf:Statements
|
|
292
|
+
* @param subject The statement subject
|
|
293
|
+
* @param predicate The statement predicate
|
|
294
|
+
* @param object The statement object for which the definition must be found
|
|
295
|
+
* @param store A N3 quad store
|
|
296
|
+
* @param language A language tag
|
|
297
|
+
* @returns An RDF.Literal or undefined if not found
|
|
298
|
+
*/
|
|
299
|
+
getDefinitionViaStatements(subject, predicate, object, language) {
|
|
300
|
+
const statementId = this.getTargetStatementId(subject, predicate, object);
|
|
301
|
+
if (!statementId) {
|
|
302
|
+
return undefined;
|
|
303
|
+
}
|
|
304
|
+
const definition = this.getDefinition(statementId, language);
|
|
305
|
+
return definition || this.getDefinition(statementId);
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Finds the vann:usageNote for an RDF.Term in rdf:Statements
|
|
309
|
+
* @param subject The statement subject
|
|
310
|
+
* @param predicate The statement predicate
|
|
311
|
+
* @param object The statement object for which the usage note must be found
|
|
312
|
+
* @param store A N3 quad store
|
|
313
|
+
* @param language A language tag
|
|
314
|
+
* @returns An RDF.Literal or undefined if not found
|
|
315
|
+
*/
|
|
316
|
+
getUsageNoteViaStatements(subject, predicate, object, language) {
|
|
317
|
+
const statementId = this.getTargetStatementId(subject, predicate, object);
|
|
318
|
+
if (!statementId) {
|
|
319
|
+
return undefined;
|
|
320
|
+
}
|
|
321
|
+
const usageNote = this.getUsageNote(statementId, language);
|
|
322
|
+
return usageNote || this.getUsageNote(statementId);
|
|
323
|
+
}
|
|
324
|
+
};
|
|
325
|
+
QuadStore = __decorate([
|
|
326
|
+
(0, inversify_1.injectable)(),
|
|
327
|
+
__metadata("design:paramtypes", [])
|
|
328
|
+
], QuadStore);
|
|
329
|
+
exports.QuadStore = QuadStore;
|
|
330
|
+
//# sourceMappingURL=QuadStore.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oslo-flanders/core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4-alpha.0",
|
|
4
4
|
"description": "Core interfaces and utilities",
|
|
5
5
|
"author": "Digitaal Vlaanderen <https://data.vlaanderen.be/id/organisatie/OVO002949>",
|
|
6
6
|
"homepage": "https://github.com/informatievlaanderen/OSLO-UML-Transformer/tree/main/packages/oslo-core#readme",
|
|
@@ -50,13 +50,15 @@
|
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
52
|
"crypto-js": "^4.1.1",
|
|
53
|
+
"inversify": "^6.0.1",
|
|
53
54
|
"n3": "^1.16.2",
|
|
54
55
|
"node-fetch": "^2.6.7",
|
|
55
56
|
"rdf-data-factory": "^1.1.1",
|
|
56
57
|
"rdf-parse": "^2.1.1",
|
|
57
58
|
"reflect-metadata": "^0.1.13",
|
|
58
59
|
"streamify-string": "^1.0.1",
|
|
59
|
-
"winston": "^3.8.2"
|
|
60
|
+
"winston": "^3.8.2",
|
|
61
|
+
"winston-transport": "^4.5.0"
|
|
60
62
|
},
|
|
61
63
|
"devDependencies": {
|
|
62
64
|
"@rdfjs/types": "^1.1.0",
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { IConfiguration } from './IConfiguration';
|
|
2
|
-
/**
|
|
3
|
-
* Interface that must be implemented by classes that use an RDF file as input and generates an artefact
|
|
4
|
-
*/
|
|
5
|
-
export interface IGenerationService {
|
|
6
|
-
configuration: IConfiguration;
|
|
7
|
-
run: () => Promise<void>;
|
|
8
|
-
}
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import type * as RDF from '@rdfjs/types';
|
|
2
|
-
import * as N3 from 'n3';
|
|
3
|
-
/**
|
|
4
|
-
* Given a local file, it is parsed and added to an in-memory quad store
|
|
5
|
-
* @param fileOrUrl Local path of the input file
|
|
6
|
-
* @returns A N3 quad store
|
|
7
|
-
*/
|
|
8
|
-
export declare function createN3Store(file: string): Promise<N3.Store>;
|
|
9
|
-
/**
|
|
10
|
-
* Find the subject of the statement that matches the given subject, predicate and object
|
|
11
|
-
* @param statementSubject The subject to match the statement subject
|
|
12
|
-
* @param statementPredicate The predicate to match the statement predicate
|
|
13
|
-
* @param statementObject The object to match the statement object
|
|
14
|
-
* @param store An N3 quad store
|
|
15
|
-
* @returns an RDF.Term or undefined if none found
|
|
16
|
-
*/
|
|
17
|
-
export declare function getTargetStatementId(statementSubject: RDF.Term, statementPredicate: RDF.Term, statementObject: RDF.Term, store: N3.Store): RDF.Term | undefined;
|
|
18
|
-
/**
|
|
19
|
-
* For a given subject, the quad store is queried to find the assigned URI
|
|
20
|
-
* @param subject The subject for which the assigned URI is to be retrieved
|
|
21
|
-
* @param store The quad store
|
|
22
|
-
* @returns An RDF.NamedNode or undefined if not found
|
|
23
|
-
*/
|
|
24
|
-
export declare function getAssignedUri(subject: RDF.Term, store: N3.Store): RDF.Term | undefined;
|
|
25
|
-
/**
|
|
26
|
-
* Finds the assigned URI in rdf:Statements
|
|
27
|
-
* @param subject The statement subject
|
|
28
|
-
* @param predicate The statement predicate
|
|
29
|
-
* @param object The statement object for which the assigned URI must be found
|
|
30
|
-
* @param store A N3 quad store
|
|
31
|
-
* @returns An RDF.Term or undefined if not found
|
|
32
|
-
*/
|
|
33
|
-
export declare function getAssignedUriViaStatements(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term, store: N3.Store): RDF.Term | undefined;
|
|
34
|
-
/**
|
|
35
|
-
* Find all rdfs:labels for a given subject
|
|
36
|
-
* @param subject The RDF.Term to find the rdfs:labels for
|
|
37
|
-
* @param store A N3 quad store
|
|
38
|
-
* @returns An array of RDF.Literals
|
|
39
|
-
*/
|
|
40
|
-
export declare function getLabels(subject: RDF.Term, store: N3.Store): RDF.Literal[];
|
|
41
|
-
/**
|
|
42
|
-
* Finds the rdfs:label whose language tag matches the given language
|
|
43
|
-
* @param subject The RDF.Term to find the rdfs:label for
|
|
44
|
-
* @param store A N3 quad store
|
|
45
|
-
* @param language A language tag
|
|
46
|
-
* @returns An RDF.Literal or undefined if not found
|
|
47
|
-
*/
|
|
48
|
-
export declare function getLabel(subject: RDF.Term, store: N3.Store, language?: string): RDF.Literal | undefined;
|
|
49
|
-
/**
|
|
50
|
-
* Finds the rdfs:label for an RDF.Term in rdf:Statements
|
|
51
|
-
* @param subject The statement subject
|
|
52
|
-
* @param predicate The statement predicate
|
|
53
|
-
* @param object The statement object for which the label must be found
|
|
54
|
-
* @param store A N3 quad store
|
|
55
|
-
* @param language A language tag
|
|
56
|
-
* @returns An RDF.Literal or undefined if not found
|
|
57
|
-
*/
|
|
58
|
-
export declare function getLabelViaStatements(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term, store: N3.Store, language: string): RDF.Literal | undefined;
|
|
59
|
-
/**
|
|
60
|
-
* Find all rdfs:comments for a given subject
|
|
61
|
-
* @param subject The RDF.Term to find the rdfs:comments for
|
|
62
|
-
* @param store A N3 quad store
|
|
63
|
-
* @returns An array of RDF.Literals
|
|
64
|
-
*/
|
|
65
|
-
export declare function getDefinitions(subject: RDF.Term, store: N3.Store): RDF.Literal[];
|
|
66
|
-
/**
|
|
67
|
-
* Finds the rdfs:comment whose language tag matches the given language
|
|
68
|
-
* @param subject The RDF.Term to find the rdfs:comment for
|
|
69
|
-
* @param store A N3 quad store
|
|
70
|
-
* @param language A language tag
|
|
71
|
-
* @returns An RDF.Literal or undefined if not found
|
|
72
|
-
*/
|
|
73
|
-
export declare function getDefinition(subject: RDF.Term, store: N3.Store, language?: string): RDF.Literal | undefined;
|
|
74
|
-
/**
|
|
75
|
-
* Finds the rdfs:comment for an RDF.Term in rdf:Statements
|
|
76
|
-
* @param subject The statement subject
|
|
77
|
-
* @param predicate The statement predicate
|
|
78
|
-
* @param object The statement object for which the definition must be found
|
|
79
|
-
* @param store A N3 quad store
|
|
80
|
-
* @param language A language tag
|
|
81
|
-
* @returns An RDF.Literal or undefined if not found
|
|
82
|
-
*/
|
|
83
|
-
export declare function getDefinitionViaStatements(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term, store: N3.Store, language: string): RDF.Literal | undefined;
|
|
84
|
-
/**
|
|
85
|
-
* Finds all the rdfs:subClassOf of a given RDF.Term
|
|
86
|
-
* @param subject the RDF.Term to find the parents of
|
|
87
|
-
* @param store A N3 quad store
|
|
88
|
-
* @returns An array of RDF.Terms
|
|
89
|
-
*/
|
|
90
|
-
export declare function getParentsOfClass(subject: RDF.Term, store: N3.Store): RDF.Term[];
|
|
91
|
-
/**
|
|
92
|
-
* Finds the rdfs:subPropertyOf of a given RDF.Term
|
|
93
|
-
* @param subject The RDF.Term to find the parent of
|
|
94
|
-
* @param store A N3 quad store
|
|
95
|
-
* @returns An RDF.Term or undefined if not found
|
|
96
|
-
*/
|
|
97
|
-
export declare function getParentOfProperty(subject: RDF.Term, store: N3.Store): RDF.Term | undefined;
|
|
98
|
-
/**
|
|
99
|
-
* Finds the rdfs:range of a given RDF.Term
|
|
100
|
-
* @param subject The RDF.Term to find the range of
|
|
101
|
-
* @param store A N3 quad store
|
|
102
|
-
* @returns An RDF.Term or undefined if not found
|
|
103
|
-
*/
|
|
104
|
-
export declare function getRange(subject: RDF.Term, store: N3.Store): RDF.Term | undefined;
|
|
105
|
-
/**
|
|
106
|
-
* Finds the rdfs:domain of a given RDF.Term
|
|
107
|
-
* @param subject The RDF.Term to find the domain of
|
|
108
|
-
* @param store A N3 quad store
|
|
109
|
-
* @returns An RDF.Term or undefined if not found
|
|
110
|
-
*/
|
|
111
|
-
export declare function getDomain(subject: RDF.Term, store: N3.Store): RDF.Term | undefined;
|
|
112
|
-
/**
|
|
113
|
-
* Finds all the vann:usageNotes of a given RDF.Term
|
|
114
|
-
* @param subject The RDF.Term to find the usage notes for
|
|
115
|
-
* @param store A N3 quad store
|
|
116
|
-
* @returns An array of RDF.Literals
|
|
117
|
-
*/
|
|
118
|
-
export declare function getUsageNotes(subject: RDF.Term, store: N3.Store): RDF.Literal[];
|
|
119
|
-
/**
|
|
120
|
-
* Finds the vann:usageNote of which the language tag matches the given language
|
|
121
|
-
* @param subject The RDF.Term to find the usage note for
|
|
122
|
-
* @param store A N3 quad store
|
|
123
|
-
* @param language A language tag
|
|
124
|
-
* @returns An RDF.Literal or undefined if not found
|
|
125
|
-
*/
|
|
126
|
-
export declare function getUsageNote(subject: RDF.Term, store: N3.Store, language?: string): RDF.Literal | undefined;
|
|
127
|
-
/**
|
|
128
|
-
* Finds the vann:usageNote for an RDF.Term in rdf:Statements
|
|
129
|
-
* @param subject The statement subject
|
|
130
|
-
* @param predicate The statement predicate
|
|
131
|
-
* @param object The statement object for which the usage note must be found
|
|
132
|
-
* @param store A N3 quad store
|
|
133
|
-
* @param language A language tag
|
|
134
|
-
* @returns An RDF.Literal or undefined if not found
|
|
135
|
-
*/
|
|
136
|
-
export declare function getUsageNoteViaStatements(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term, store: N3.Store, language: string): RDF.Literal | undefined;
|
|
@@ -1,257 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.getUsageNoteViaStatements = exports.getUsageNote = exports.getUsageNotes = exports.getDomain = exports.getRange = exports.getParentOfProperty = exports.getParentsOfClass = exports.getDefinitionViaStatements = exports.getDefinition = exports.getDefinitions = exports.getLabelViaStatements = exports.getLabel = exports.getLabels = exports.getAssignedUriViaStatements = exports.getAssignedUri = exports.getTargetStatementId = exports.createN3Store = void 0;
|
|
30
|
-
const N3 = __importStar(require("n3"));
|
|
31
|
-
const rdf_parse_1 = __importDefault(require("rdf-parse"));
|
|
32
|
-
const fetchFileOrUrl_1 = require("./fetchFileOrUrl");
|
|
33
|
-
const namespaces_1 = require("./namespaces");
|
|
34
|
-
/**
|
|
35
|
-
* Given a local file, it is parsed and added to an in-memory quad store
|
|
36
|
-
* @param fileOrUrl Local path of the input file
|
|
37
|
-
* @returns A N3 quad store
|
|
38
|
-
*/
|
|
39
|
-
async function createN3Store(file) {
|
|
40
|
-
const store = new N3.Store();
|
|
41
|
-
const buffer = await (0, fetchFileOrUrl_1.fetchFileOrUrl)(file);
|
|
42
|
-
const textStream = require('streamify-string')(buffer.toString());
|
|
43
|
-
return new Promise((resolve, reject) => {
|
|
44
|
-
rdf_parse_1.default.parse(textStream, { path: file })
|
|
45
|
-
.on('data', (quad) => store.addQuad(quad))
|
|
46
|
-
.on('error', (error) => reject(error))
|
|
47
|
-
.on('end', () => resolve(store));
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
exports.createN3Store = createN3Store;
|
|
51
|
-
/**
|
|
52
|
-
* Find the subject of the statement that matches the given subject, predicate and object
|
|
53
|
-
* @param statementSubject The subject to match the statement subject
|
|
54
|
-
* @param statementPredicate The predicate to match the statement predicate
|
|
55
|
-
* @param statementObject The object to match the statement object
|
|
56
|
-
* @param store An N3 quad store
|
|
57
|
-
* @returns an RDF.Term or undefined if none found
|
|
58
|
-
*/
|
|
59
|
-
function getTargetStatementId(statementSubject, statementPredicate, statementObject, store) {
|
|
60
|
-
const statementIds = store.getSubjects(namespaces_1.ns.rdf('type'), namespaces_1.ns.rdf('Statement'), null);
|
|
61
|
-
const statementSubjectPredicateSubjects = store.getSubjects(namespaces_1.ns.rdf('subject'), statementSubject, null);
|
|
62
|
-
const statementPredicatePredicateSubjects = store.getSubjects(namespaces_1.ns.rdf('predicate'), statementPredicate, null);
|
|
63
|
-
const statementObjectPredicateSubjects = store.getSubjects(namespaces_1.ns.rdf('object'), statementObject, null);
|
|
64
|
-
const targetIds = statementIds
|
|
65
|
-
.filter(x => statementSubjectPredicateSubjects.some(y => y.value === x.value))
|
|
66
|
-
.filter(x => statementPredicatePredicateSubjects.some(y => y.value === x.value))
|
|
67
|
-
.filter(x => statementObjectPredicateSubjects.some(y => y.value === x.value));
|
|
68
|
-
if (targetIds.length > 1) {
|
|
69
|
-
throw new Error(`Found multiple statements with subject "${statementSubject.value}", predicate "${statementPredicate.value}" and object "${statementObject.value}".`);
|
|
70
|
-
}
|
|
71
|
-
return targetIds.shift();
|
|
72
|
-
}
|
|
73
|
-
exports.getTargetStatementId = getTargetStatementId;
|
|
74
|
-
/**
|
|
75
|
-
* For a given subject, the quad store is queried to find the assigned URI
|
|
76
|
-
* @param subject The subject for which the assigned URI is to be retrieved
|
|
77
|
-
* @param store The quad store
|
|
78
|
-
* @returns An RDF.NamedNode or undefined if not found
|
|
79
|
-
*/
|
|
80
|
-
function getAssignedUri(subject, store) {
|
|
81
|
-
return store.getObjects(subject, namespaces_1.ns.example('assignedUri'), null).shift();
|
|
82
|
-
}
|
|
83
|
-
exports.getAssignedUri = getAssignedUri;
|
|
84
|
-
/**
|
|
85
|
-
* Finds the assigned URI in rdf:Statements
|
|
86
|
-
* @param subject The statement subject
|
|
87
|
-
* @param predicate The statement predicate
|
|
88
|
-
* @param object The statement object for which the assigned URI must be found
|
|
89
|
-
* @param store A N3 quad store
|
|
90
|
-
* @returns An RDF.Term or undefined if not found
|
|
91
|
-
*/
|
|
92
|
-
function getAssignedUriViaStatements(subject, predicate, object, store) {
|
|
93
|
-
const statementId = getTargetStatementId(subject, predicate, object, store);
|
|
94
|
-
if (!statementId) {
|
|
95
|
-
return undefined;
|
|
96
|
-
}
|
|
97
|
-
return getAssignedUri(statementId, store);
|
|
98
|
-
}
|
|
99
|
-
exports.getAssignedUriViaStatements = getAssignedUriViaStatements;
|
|
100
|
-
/**
|
|
101
|
-
* Find all rdfs:labels for a given subject
|
|
102
|
-
* @param subject The RDF.Term to find the rdfs:labels for
|
|
103
|
-
* @param store A N3 quad store
|
|
104
|
-
* @returns An array of RDF.Literals
|
|
105
|
-
*/
|
|
106
|
-
function getLabels(subject, store) {
|
|
107
|
-
return store.getObjects(subject, namespaces_1.ns.rdfs('label'), null);
|
|
108
|
-
}
|
|
109
|
-
exports.getLabels = getLabels;
|
|
110
|
-
/**
|
|
111
|
-
* Finds the rdfs:label whose language tag matches the given language
|
|
112
|
-
* @param subject The RDF.Term to find the rdfs:label for
|
|
113
|
-
* @param store A N3 quad store
|
|
114
|
-
* @param language A language tag
|
|
115
|
-
* @returns An RDF.Literal or undefined if not found
|
|
116
|
-
*/
|
|
117
|
-
function getLabel(subject, store, language) {
|
|
118
|
-
return getLabels(subject, store).find(x => x.language === (language || ''));
|
|
119
|
-
}
|
|
120
|
-
exports.getLabel = getLabel;
|
|
121
|
-
/**
|
|
122
|
-
* Finds the rdfs:label for an RDF.Term in rdf:Statements
|
|
123
|
-
* @param subject The statement subject
|
|
124
|
-
* @param predicate The statement predicate
|
|
125
|
-
* @param object The statement object for which the label must be found
|
|
126
|
-
* @param store A N3 quad store
|
|
127
|
-
* @param language A language tag
|
|
128
|
-
* @returns An RDF.Literal or undefined if not found
|
|
129
|
-
*/
|
|
130
|
-
function getLabelViaStatements(subject, predicate, object, store, language) {
|
|
131
|
-
const statementId = getTargetStatementId(subject, predicate, object, store);
|
|
132
|
-
if (!statementId) {
|
|
133
|
-
return undefined;
|
|
134
|
-
}
|
|
135
|
-
const label = getLabel(statementId, store, language);
|
|
136
|
-
return label || getLabel(statementId, store);
|
|
137
|
-
}
|
|
138
|
-
exports.getLabelViaStatements = getLabelViaStatements;
|
|
139
|
-
/**
|
|
140
|
-
* Find all rdfs:comments for a given subject
|
|
141
|
-
* @param subject The RDF.Term to find the rdfs:comments for
|
|
142
|
-
* @param store A N3 quad store
|
|
143
|
-
* @returns An array of RDF.Literals
|
|
144
|
-
*/
|
|
145
|
-
function getDefinitions(subject, store) {
|
|
146
|
-
return store.getObjects(subject, namespaces_1.ns.rdfs('comment'), null);
|
|
147
|
-
}
|
|
148
|
-
exports.getDefinitions = getDefinitions;
|
|
149
|
-
/**
|
|
150
|
-
* Finds the rdfs:comment whose language tag matches the given language
|
|
151
|
-
* @param subject The RDF.Term to find the rdfs:comment for
|
|
152
|
-
* @param store A N3 quad store
|
|
153
|
-
* @param language A language tag
|
|
154
|
-
* @returns An RDF.Literal or undefined if not found
|
|
155
|
-
*/
|
|
156
|
-
function getDefinition(subject, store, language) {
|
|
157
|
-
return getDefinitions(subject, store).find(x => x.language === (language || ''));
|
|
158
|
-
}
|
|
159
|
-
exports.getDefinition = getDefinition;
|
|
160
|
-
/**
|
|
161
|
-
* Finds the rdfs:comment for an RDF.Term in rdf:Statements
|
|
162
|
-
* @param subject The statement subject
|
|
163
|
-
* @param predicate The statement predicate
|
|
164
|
-
* @param object The statement object for which the definition must be found
|
|
165
|
-
* @param store A N3 quad store
|
|
166
|
-
* @param language A language tag
|
|
167
|
-
* @returns An RDF.Literal or undefined if not found
|
|
168
|
-
*/
|
|
169
|
-
function getDefinitionViaStatements(subject, predicate, object, store, language) {
|
|
170
|
-
const statementId = getTargetStatementId(subject, predicate, object, store);
|
|
171
|
-
if (!statementId) {
|
|
172
|
-
return undefined;
|
|
173
|
-
}
|
|
174
|
-
const definition = getDefinition(statementId, store, language);
|
|
175
|
-
return definition || getDefinition(statementId, store);
|
|
176
|
-
}
|
|
177
|
-
exports.getDefinitionViaStatements = getDefinitionViaStatements;
|
|
178
|
-
/**
|
|
179
|
-
* Finds all the rdfs:subClassOf of a given RDF.Term
|
|
180
|
-
* @param subject the RDF.Term to find the parents of
|
|
181
|
-
* @param store A N3 quad store
|
|
182
|
-
* @returns An array of RDF.Terms
|
|
183
|
-
*/
|
|
184
|
-
function getParentsOfClass(subject, store) {
|
|
185
|
-
return store.getObjects(subject, namespaces_1.ns.rdfs('subClassOf'), null);
|
|
186
|
-
}
|
|
187
|
-
exports.getParentsOfClass = getParentsOfClass;
|
|
188
|
-
/**
|
|
189
|
-
* Finds the rdfs:subPropertyOf of a given RDF.Term
|
|
190
|
-
* @param subject The RDF.Term to find the parent of
|
|
191
|
-
* @param store A N3 quad store
|
|
192
|
-
* @returns An RDF.Term or undefined if not found
|
|
193
|
-
*/
|
|
194
|
-
function getParentOfProperty(subject, store) {
|
|
195
|
-
return store.getObjects(subject, namespaces_1.ns.rdfs('subPropertyOf'), null).shift();
|
|
196
|
-
}
|
|
197
|
-
exports.getParentOfProperty = getParentOfProperty;
|
|
198
|
-
/**
|
|
199
|
-
* Finds the rdfs:range of a given RDF.Term
|
|
200
|
-
* @param subject The RDF.Term to find the range of
|
|
201
|
-
* @param store A N3 quad store
|
|
202
|
-
* @returns An RDF.Term or undefined if not found
|
|
203
|
-
*/
|
|
204
|
-
function getRange(subject, store) {
|
|
205
|
-
return store.getObjects(subject, namespaces_1.ns.rdfs('range'), null).shift();
|
|
206
|
-
}
|
|
207
|
-
exports.getRange = getRange;
|
|
208
|
-
/**
|
|
209
|
-
* Finds the rdfs:domain of a given RDF.Term
|
|
210
|
-
* @param subject The RDF.Term to find the domain of
|
|
211
|
-
* @param store A N3 quad store
|
|
212
|
-
* @returns An RDF.Term or undefined if not found
|
|
213
|
-
*/
|
|
214
|
-
function getDomain(subject, store) {
|
|
215
|
-
return store.getObjects(subject, namespaces_1.ns.rdfs('domain'), null).shift();
|
|
216
|
-
}
|
|
217
|
-
exports.getDomain = getDomain;
|
|
218
|
-
/**
|
|
219
|
-
* Finds all the vann:usageNotes of a given RDF.Term
|
|
220
|
-
* @param subject The RDF.Term to find the usage notes for
|
|
221
|
-
* @param store A N3 quad store
|
|
222
|
-
* @returns An array of RDF.Literals
|
|
223
|
-
*/
|
|
224
|
-
function getUsageNotes(subject, store) {
|
|
225
|
-
return store.getObjects(subject, namespaces_1.ns.vann('usageNote'), null);
|
|
226
|
-
}
|
|
227
|
-
exports.getUsageNotes = getUsageNotes;
|
|
228
|
-
/**
|
|
229
|
-
* Finds the vann:usageNote of which the language tag matches the given language
|
|
230
|
-
* @param subject The RDF.Term to find the usage note for
|
|
231
|
-
* @param store A N3 quad store
|
|
232
|
-
* @param language A language tag
|
|
233
|
-
* @returns An RDF.Literal or undefined if not found
|
|
234
|
-
*/
|
|
235
|
-
function getUsageNote(subject, store, language) {
|
|
236
|
-
return getUsageNotes(subject, store).find(x => x.language === (language || ''));
|
|
237
|
-
}
|
|
238
|
-
exports.getUsageNote = getUsageNote;
|
|
239
|
-
/**
|
|
240
|
-
* Finds the vann:usageNote for an RDF.Term in rdf:Statements
|
|
241
|
-
* @param subject The statement subject
|
|
242
|
-
* @param predicate The statement predicate
|
|
243
|
-
* @param object The statement object for which the usage note must be found
|
|
244
|
-
* @param store A N3 quad store
|
|
245
|
-
* @param language A language tag
|
|
246
|
-
* @returns An RDF.Literal or undefined if not found
|
|
247
|
-
*/
|
|
248
|
-
function getUsageNoteViaStatements(subject, predicate, object, store, language) {
|
|
249
|
-
const statementId = getTargetStatementId(subject, predicate, object, store);
|
|
250
|
-
if (!statementId) {
|
|
251
|
-
return undefined;
|
|
252
|
-
}
|
|
253
|
-
const usageNote = getUsageNote(statementId, store, language);
|
|
254
|
-
return usageNote || getUsageNote(statementId, store);
|
|
255
|
-
}
|
|
256
|
-
exports.getUsageNoteViaStatements = getUsageNoteViaStatements;
|
|
257
|
-
//# sourceMappingURL=N3StoreFunctions.js.map
|