@faubulous/mentor-rdf 0.2.52 → 0.2.53
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/out/index.js +381 -51
- package/out/ontologies/dcat.d.ts +229 -0
- package/out/ontologies/index.d.ts +8 -7
- package/out/ontologies/src.d.ts +1 -0
- package/out/rdf/reasoners/owl-reasoner.d.ts +8 -8
- package/out/rdf/reasoners/rdfs-reasoner.d.ts +8 -8
- package/out/rdf/reasoners/reasoner.d.ts +23 -14
- package/out/rdf/reasoners/shacl-reasoner.d.ts +11 -11
- package/out/rdf/reasoners/skos-reasoner.d.ts +8 -8
- package/out/rdf/store.d.ts +56 -14
- package/out/rdf/uri.d.ts +2 -2
- package/package.json +7 -2
package/out/index.js
CHANGED
|
@@ -31,6 +31,39 @@ eval("/*globals self, window */\n\n\n/*eslint-disable @mysticatea/prettier */\nc
|
|
|
31
31
|
|
|
32
32
|
/***/ }),
|
|
33
33
|
|
|
34
|
+
/***/ "./node_modules/asynciterator/dist/asynciterator.js":
|
|
35
|
+
/*!**********************************************************!*\
|
|
36
|
+
!*** ./node_modules/asynciterator/dist/asynciterator.js ***!
|
|
37
|
+
\**********************************************************/
|
|
38
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
39
|
+
|
|
40
|
+
"use strict";
|
|
41
|
+
eval("\n/**\n * An asynchronous iterator library for advanced object pipelines\n * @module asynciterator\n */\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.isIterator = exports.isIterable = exports.isSourceExpression = exports.isPromise = exports.isEventEmitter = exports.isFunction = exports.range = exports.union = exports.fromIterable = exports.fromIterator = exports.fromArray = exports.single = exports.empty = exports.wrap = exports.WrappingIterator = exports.ClonedIterator = exports.UnionIterator = exports.MultiTransformIterator = exports.SimpleTransformIterator = exports.TransformIterator = exports.BufferedIterator = exports.MappingIterator = exports.DESTINATION = exports.identity = exports.IntegerIterator = exports.ArrayIterator = exports.SingletonIterator = exports.EmptyIterator = exports.AsyncIterator = exports.DESTROYED = exports.ENDED = exports.CLOSED = exports.CLOSING = exports.OPEN = exports.INIT = exports.setTaskScheduler = exports.getTaskScheduler = exports.scheduleTask = exports.LinkedList = void 0;\nconst events_1 = __webpack_require__(/*! events */ \"./node_modules/events/events.js\");\nconst linkedlist_1 = __webpack_require__(/*! ./linkedlist.js */ \"./node_modules/asynciterator/dist/linkedlist.js\");\nObject.defineProperty(exports, \"LinkedList\", ({ enumerable: true, get: function () { return linkedlist_1.LinkedList; } }));\nconst taskscheduler_1 = __webpack_require__(/*! ./taskscheduler.js */ \"./node_modules/asynciterator/dist/taskscheduler.js\");\nlet taskScheduler = taskscheduler_1.createTaskScheduler();\n/** Schedules the given task for asynchronous execution. */\nfunction scheduleTask(task) {\n taskScheduler(task);\n}\nexports.scheduleTask = scheduleTask;\n/** Returns the asynchronous task scheduler. */\nfunction getTaskScheduler() {\n return taskScheduler;\n}\nexports.getTaskScheduler = getTaskScheduler;\n/** Sets the asynchronous task scheduler. */\nfunction setTaskScheduler(scheduler) {\n taskScheduler = scheduler;\n}\nexports.setTaskScheduler = setTaskScheduler;\n/**\n ID of the INIT state.\n An iterator is initializing if it is preparing main item generation.\n It can already produce items.\n @type integer\n*/\nexports.INIT = 1 << 0;\n/**\n ID of the OPEN state.\n An iterator is open if it can generate new items.\n @type integer\n*/\nexports.OPEN = 1 << 1;\n/**\n ID of the CLOSING state.\n An iterator is closing if item generation is pending but will not be scheduled again.\n @type integer\n*/\nexports.CLOSING = 1 << 2;\n/**\n ID of the CLOSED state.\n An iterator is closed if it no longer actively generates new items.\n Items might still be available.\n @type integer\n*/\nexports.CLOSED = 1 << 3;\n/**\n ID of the ENDED state.\n An iterator has ended if no further items will become available.\n The 'end' event is guaranteed to have been called when in this state.\n @type integer\n*/\nexports.ENDED = 1 << 4;\n/**\n ID of the DESTROYED state.\n An iterator has been destroyed\n after calling {@link module:asynciterator.AsyncIterator#destroy}.\n The 'end' event has not been called, as pending elements were voided.\n @type integer\n*/\nexports.DESTROYED = 1 << 5;\n/**\n An asynchronous iterator provides pull-based access to a stream of objects.\n @extends module:asynciterator.EventEmitter\n*/\nclass AsyncIterator extends events_1.EventEmitter {\n /** Creates a new `AsyncIterator`. */\n constructor(initialState = exports.OPEN) {\n super();\n this._readable = false;\n this._state = initialState;\n this.on('newListener', waitForDataListener);\n }\n /**\n Changes the iterator to the given state if possible and necessary,\n possibly emitting events to signal that change.\n @protected\n @param {integer} newState The ID of the new state\n @param {boolean} [eventAsync=false] Whether resulting events should be emitted asynchronously\n @returns {boolean} Whether the state was changed\n @emits module:asynciterator.AsyncIterator.end\n */\n _changeState(newState, eventAsync = false) {\n // Validate the state change\n const valid = newState > this._state && this._state < exports.ENDED;\n if (valid) {\n this._state = newState;\n // Emit the `end` event when changing to ENDED\n if (newState === exports.ENDED) {\n if (!eventAsync)\n this.emit('end');\n else\n taskScheduler(() => this.emit('end'));\n }\n }\n return valid;\n }\n /**\n Tries to read the next item from the iterator.\n This is the main method for reading the iterator in _on-demand mode_,\n where new items are only created when needed by consumers.\n If no items are currently available, this methods returns `null`.\n The {@link module:asynciterator.event:readable} event\n will then signal when new items might be ready.\n To read all items from the iterator,\n switch to _flow mode_ by subscribing\n to the {@link module:asynciterator.event:data} event.\n When in flow mode, do not use the `read` method.\n @returns {object?} The next item, or `null` if none is available\n */\n read() {\n return null;\n }\n /**\n The iterator emits a `readable` event when it might have new items available\n after having had no items available right before this event.\n If the iterator is not in flow mode, items can be retrieved\n by calling {@link module:asynciterator.AsyncIterator#read}.\n @event module:asynciterator.readable\n */\n /**\n The iterator emits a `data` event with a new item as soon as it becomes available.\n When one or more listeners are attached to the `data` event,\n the iterator switches to _flow mode_,\n generating and emitting new items as fast as possible.\n This drains the source and might create backpressure on the consumers,\n so only subscribe to this event if this behavior is intended.\n In flow mode, don't use {@link module:asynciterator.AsyncIterator#read}.\n To switch back to _on-demand mode_, remove all listeners from the `data` event.\n You can then obtain items through `read` again.\n @event module:asynciterator.data\n @param {object} item The new item\n */\n /**\n Invokes the callback for each remaining item in the iterator.\n Switches the iterator to flow mode.\n @param {Function} callback A function that will be called with each item\n @param {object?} self The `this` pointer for the callback\n */\n forEach(callback, self) {\n this.on('data', bind(callback, self));\n }\n /**\n Stops the iterator from generating new items.\n Already generated items or terminating items can still be emitted.\n After this, the iterator will end asynchronously.\n @emits module:asynciterator.AsyncIterator.end\n */\n close() {\n if (this._changeState(exports.CLOSED))\n this._endAsync();\n }\n /**\n Destroy the iterator and stop it from generating new items.\n This will not do anything if the iterator was already ended or destroyed.\n All internal resources will be released an no new items will be emitted,\n even not already generated items.\n Implementors should not override this method,\n but instead implement {@link module:asynciterator.AsyncIterator#_destroy}.\n @param {Error} [cause] An optional error to emit.\n @emits module:asynciterator.AsyncIterator.end\n @emits module:asynciterator.AsyncIterator.error Only if an error is passed.\n */\n destroy(cause) {\n if (!this.done) {\n this._destroy(cause, error => {\n cause = cause || error;\n if (cause)\n this.emit('error', cause);\n this._end(true);\n });\n }\n }\n /**\n Called by {@link module:asynciterator.AsyncIterator#destroy}.\n Implementers can override this, but this should not be called directly.\n @param {?Error} cause The reason why the iterator is destroyed.\n @param {Function} callback A callback function with an optional error argument.\n */\n _destroy(cause, callback) {\n callback();\n }\n /**\n Ends the iterator and cleans up.\n Should never be called before {@link module:asynciterator.AsyncIterator#close};\n typically, `close` is responsible for calling `_end`.\n @param {boolean} [destroy] If the iterator should be forcefully destroyed.\n @protected\n @emits module:asynciterator.AsyncIterator.end\n */\n _end(destroy = false) {\n if (this._changeState(destroy ? exports.DESTROYED : exports.ENDED)) {\n this._readable = false;\n this.removeAllListeners('readable');\n this.removeAllListeners('data');\n this.removeAllListeners('end');\n }\n }\n /**\n Asynchronously calls `_end`.\n @protected\n */\n _endAsync() {\n taskScheduler(() => this._end());\n }\n /**\n The `end` event is emitted after the last item of the iterator has been read.\n @event module:asynciterator.end\n */\n /**\n Gets or sets whether this iterator might have items available for read.\n A value of `false` means there are _definitely_ no items available;\n a value of `true` means items _might_ be available.\n @type boolean\n @emits module:asynciterator.AsyncIterator.readable\n */\n get readable() {\n return this._readable;\n }\n set readable(readable) {\n readable = Boolean(readable) && !this.done;\n // Set the readable value only if it has changed\n if (this._readable !== readable) {\n this._readable = readable;\n // If the iterator became readable, emit the `readable` event\n if (readable)\n taskScheduler(() => this.emit('readable'));\n }\n }\n /**\n Gets whether the iterator has stopped generating new items.\n @type boolean\n @readonly\n */\n get closed() {\n return this._state >= exports.CLOSING;\n }\n /**\n Gets whether the iterator has finished emitting items.\n @type boolean\n @readonly\n */\n get ended() {\n return this._state === exports.ENDED;\n }\n /**\n Gets whether the iterator has been destroyed.\n @type boolean\n @readonly\n */\n get destroyed() {\n return this._state === exports.DESTROYED;\n }\n /**\n Gets whether the iterator will not emit anymore items,\n either due to being closed or due to being destroyed.\n @type boolean\n @readonly\n */\n get done() {\n return this._state >= exports.ENDED;\n }\n /* Generates a textual representation of the iterator. */\n toString() {\n const details = this._toStringDetails();\n return `[${this.constructor.name}${details ? ` ${details}` : ''}]`;\n }\n /**\n Generates details for a textual representation of the iterator.\n @protected\n */\n _toStringDetails() {\n return '';\n }\n /**\n Consume all remaining items of the iterator into an array that will be returned asynchronously.\n @param {object} [options] Settings for array creation\n @param {integer} [options.limit] The maximum number of items to place in the array.\n */\n toArray(options) {\n const items = [];\n const limit = typeof (options === null || options === void 0 ? void 0 : options.limit) === 'number' ? options.limit : Infinity;\n return this.ended || limit <= 0 ? Promise.resolve(items) : new Promise((resolve, reject) => {\n // Collect and return all items up to the limit\n const resolveItems = () => resolve(items);\n const pushItem = (item) => {\n items.push(item);\n if (items.length >= limit) {\n this.removeListener('error', reject);\n this.removeListener('data', pushItem);\n this.removeListener('end', resolveItems);\n resolve(items);\n }\n };\n // Start item collection\n this.on('error', reject);\n this.on('data', pushItem);\n this.on('end', resolveItems);\n });\n }\n /**\n Retrieves the property with the given name from the iterator.\n If no callback is passed, it returns the value of the property\n or `undefined` if the property is not set.\n If a callback is passed, it returns `undefined`\n and calls the callback with the property the moment it is set.\n @param {string} propertyName The name of the property to retrieve\n @param {Function?} [callback] A one-argument callback to receive the property value\n @returns {object?} The value of the property (if set and no callback is given)\n */\n getProperty(propertyName, callback) {\n const properties = this._properties;\n // If no callback was passed, return the property value\n if (!callback)\n return properties && properties[propertyName];\n // If the value has been set, send it through the callback\n if (properties && (propertyName in properties)) {\n taskScheduler(() => callback(properties[propertyName]));\n }\n // If the value was not set, store the callback for when the value will be set\n else {\n let propertyCallbacks;\n if (!(propertyCallbacks = this._propertyCallbacks))\n this._propertyCallbacks = propertyCallbacks = Object.create(null);\n if (propertyName in propertyCallbacks)\n propertyCallbacks[propertyName].push(callback);\n else\n propertyCallbacks[propertyName] = [callback];\n }\n return undefined;\n }\n /**\n Sets the property with the given name to the value.\n @param {string} propertyName The name of the property to set\n @param {object?} value The new value of the property\n */\n setProperty(propertyName, value) {\n const properties = this._properties || (this._properties = Object.create(null));\n properties[propertyName] = value;\n // Execute getter callbacks that were waiting for this property to be set\n const propertyCallbacks = this._propertyCallbacks || {};\n const callbacks = propertyCallbacks[propertyName];\n if (callbacks) {\n delete propertyCallbacks[propertyName];\n taskScheduler(() => {\n for (const callback of callbacks)\n callback(value);\n });\n // Remove _propertyCallbacks if no pending callbacks are left\n for (propertyName in propertyCallbacks)\n return;\n delete this._propertyCallbacks;\n }\n }\n /**\n Retrieves all properties of the iterator.\n @returns {object} An object with property names as keys.\n */\n getProperties() {\n const properties = this._properties;\n const copy = {};\n for (const name in properties)\n copy[name] = properties[name];\n return copy;\n }\n /**\n Sets all of the given properties.\n @param {object} properties Key/value pairs of properties to set\n */\n setProperties(properties) {\n for (const propertyName in properties)\n this.setProperty(propertyName, properties[propertyName]);\n }\n /**\n Copies the given properties from the source iterator.\n @param {module:asynciterator.AsyncIterator} source The iterator to copy from\n @param {Array} propertyNames List of property names to copy\n */\n copyProperties(source, propertyNames) {\n for (const propertyName of propertyNames) {\n source.getProperty(propertyName, value => this.setProperty(propertyName, value));\n }\n }\n /**\n Transforms items from this iterator.\n After this operation, only read the returned iterator instead of the current one.\n @param {object|Function} [options] Settings of the iterator, or the transformation function\n @param {integer} [options.maxbufferSize=4] The maximum number of items to keep in the buffer\n @param {boolean} [options.autoStart=true] Whether buffering starts directly after construction\n @param {integer} [options.offset] The number of items to skip\n @param {integer} [options.limit] The maximum number of items\n @param {Function} [options.filter] A function to synchronously filter items from the source\n @param {Function} [options.map] A function to synchronously transform items from the source\n @param {Function} [options.transform] A function to asynchronously transform items from the source\n @param {boolean} [options.optional=false] If transforming is optional, the original item is pushed when its mapping yields `null` or its transformation yields no items\n @param {Array|module:asynciterator.AsyncIterator} [options.prepend] Items to insert before the source items\n @param {Array|module:asynciterator.AsyncIterator} [options.append] Items to insert after the source items\n @returns {module:asynciterator.AsyncIterator} A new iterator that maps the items from this iterator\n */\n transform(options) {\n return new SimpleTransformIterator(this, options);\n }\n /**\n Maps items from this iterator using the given function.\n After this operation, only read the returned iterator instead of the current one.\n @param {Function} map A mapping function to call on this iterator's (remaining) items\n @param {object?} self The `this` pointer for the mapping function\n @returns {module:asynciterator.AsyncIterator} A new iterator that maps the items from this iterator\n */\n map(map, self) {\n return new MappingIterator(this, bind(map, self));\n }\n filter(filter, self) {\n return this.map(function (item) {\n return filter.call(self || this, item) ? item : null;\n });\n }\n /**\n * Returns a new iterator containing all of the unique items in the original iterator.\n * @param by - The derived value by which to determine uniqueness (e.g., stringification).\n Defaults to the identity function.\n * @returns An iterator with duplicates filtered out.\n */\n uniq(by = identity) {\n const uniques = new Set();\n return this.filter(function (item) {\n const hashed = by.call(this, item);\n if (!uniques.has(hashed)) {\n uniques.add(hashed);\n return true;\n }\n return false;\n });\n }\n /**\n Prepends the items after those of the current iterator.\n After this operation, only read the returned iterator instead of the current one.\n @param {Array|module:asynciterator.AsyncIterator} items Items to insert before this iterator's (remaining) items\n @returns {module:asynciterator.AsyncIterator} A new iterator that prepends items to this iterator\n */\n prepend(items) {\n return this.transform({ prepend: items });\n }\n /**\n Appends the items after those of the current iterator.\n After this operation, only read the returned iterator instead of the current one.\n @param {Array|module:asynciterator.AsyncIterator} items Items to insert after this iterator's (remaining) items\n @returns {module:asynciterator.AsyncIterator} A new iterator that appends items to this iterator\n */\n append(items) {\n return this.transform({ append: items });\n }\n /**\n Surrounds items of the current iterator with the given items.\n After this operation, only read the returned iterator instead of the current one.\n @param {Array|module:asynciterator.AsyncIterator} prepend Items to insert before this iterator's (remaining) items\n @param {Array|module:asynciterator.AsyncIterator} append Items to insert after this iterator's (remaining) items\n @returns {module:asynciterator.AsyncIterator} A new iterator that appends and prepends items to this iterator\n */\n surround(prepend, append) {\n return this.transform({ prepend, append });\n }\n /**\n Skips the given number of items from the current iterator.\n The current iterator may not be read anymore until the returned iterator ends.\n @param {integer} offset The number of items to skip\n @returns {module:asynciterator.AsyncIterator} A new iterator that skips the given number of items\n */\n skip(offset) {\n return this.map(item => offset-- > 0 ? null : item);\n }\n /**\n Limits the current iterator to the given number of items.\n The current iterator may not be read anymore until the returned iterator ends.\n @param {integer} limit The maximum number of items\n @returns {module:asynciterator.AsyncIterator} A new iterator with at most the given number of items\n */\n take(limit) {\n return this.transform({ limit });\n }\n /**\n Limits the current iterator to the given range.\n The current iterator may not be read anymore until the returned iterator ends.\n @param {integer} start Index of the first item to return\n @param {integer} end Index of the last item to return\n @returns {module:asynciterator.AsyncIterator} A new iterator with items in the given range\n */\n range(start, end) {\n return this.transform({ offset: start, limit: Math.max(end - start + 1, 0) });\n }\n /**\n Creates a copy of the current iterator,\n containing all items emitted from this point onward.\n Further copies can be created; they will all start from this same point.\n After this operation, only read the returned copies instead of the original iterator.\n @returns {module:asynciterator.AsyncIterator} A new iterator that contains all future items of this iterator\n */\n clone() {\n return new ClonedIterator(this);\n }\n /**\n * An AsyncIterator is async iterable.\n * This allows iterators to be used via the for-await syntax.\n *\n * In cases where the returned EcmaScript AsyncIterator will not be fully consumed,\n * it is recommended to manually listen for error events on the main AsyncIterator\n * to avoid uncaught error messages.\n *\n * @returns {ESAsyncIterator<T>} An EcmaScript AsyncIterator\n */\n [Symbol.asyncIterator]() {\n const it = this;\n let currentResolve = null;\n let currentReject = null;\n let pendingError = null;\n it.addListener('readable', tryResolve);\n it.addListener('end', tryResolve);\n it.addListener('error', tryReject);\n // Tries to emit an item or signal the end of the iterator\n function tryResolve() {\n if (currentResolve !== null) {\n if (pendingError !== null) {\n tryReject(pendingError);\n }\n else if (it.done) {\n currentResolve({ done: true, value: undefined });\n currentResolve = currentReject = null;\n removeListeners();\n }\n else {\n const value = it.read();\n if (value !== null) {\n currentResolve({ done: false, value });\n currentResolve = currentReject = null;\n }\n }\n }\n }\n // Tries to emit an error\n function tryReject(error) {\n if (currentReject !== null) {\n currentReject(error);\n currentResolve = currentReject = pendingError = null;\n removeListeners();\n }\n else if (pendingError === null) {\n pendingError = error;\n }\n }\n // Cleans up all attached listeners\n function removeListeners() {\n it.removeListener('readable', tryResolve);\n it.removeListener('end', tryResolve);\n it.removeListener('error', tryReject);\n }\n // An EcmaScript AsyncIterator exposes the next() function that can be invoked repeatedly\n return {\n next() {\n return new Promise((resolve, reject) => {\n currentResolve = resolve;\n currentReject = reject;\n tryResolve();\n });\n },\n };\n }\n}\nexports.AsyncIterator = AsyncIterator;\n// Starts emitting `data` events when `data` listeners are added\nfunction waitForDataListener(eventName) {\n if (eventName === 'data') {\n this.removeListener('newListener', waitForDataListener);\n addSingleListener(this, 'readable', emitData);\n if (this.readable)\n taskScheduler(() => emitData.call(this));\n }\n}\n// Emits new items though `data` events as long as there are `data` listeners\nfunction emitData() {\n // While there are `data` listeners and items, emit them\n let item;\n while (this.listenerCount('data') !== 0 && (item = this.read()) !== null)\n this.emit('data', item);\n // Stop draining the source if there are no more `data` listeners\n if (this.listenerCount('data') === 0 && !this.done) {\n this.removeListener('readable', emitData);\n addSingleListener(this, 'newListener', waitForDataListener);\n }\n}\n// Adds the listener to the event, if it has not been added previously.\nfunction addSingleListener(source, eventName, listener) {\n if (!source.listeners(eventName).includes(listener))\n source.on(eventName, listener);\n}\n/**\n An iterator that doesn't emit any items.\n @extends module:asynciterator.AsyncIterator\n*/\nclass EmptyIterator extends AsyncIterator {\n /** Creates a new `EmptyIterator`. */\n constructor() {\n super();\n this._changeState(exports.ENDED, true);\n }\n}\nexports.EmptyIterator = EmptyIterator;\n/**\n An iterator that emits a single item.\n @extends module:asynciterator.AsyncIterator\n*/\nclass SingletonIterator extends AsyncIterator {\n /**\n Creates a new `SingletonIterator`.\n @param {object} item The item that will be emitted.\n */\n constructor(item) {\n super();\n this._item = item;\n if (item === null)\n this.close();\n else\n this.readable = true;\n }\n /* Reads the item from the iterator. */\n read() {\n const item = this._item;\n this._item = null;\n this.close();\n return item;\n }\n /* Generates details for a textual representation of the iterator. */\n _toStringDetails() {\n return this._item === null ? '' : `(${this._item})`;\n }\n}\nexports.SingletonIterator = SingletonIterator;\n/**\n An iterator that emits the items of a given array.\n @extends module:asynciterator.AsyncIterator\n*/\nclass ArrayIterator extends AsyncIterator {\n /**\n Creates a new `ArrayIterator`.\n @param {Array} items The items that will be emitted.\n @param {boolean} [options.autoStart=true] Whether buffering starts directly after construction\n @param {boolean} [options.preserve=true] If false, the passed array can be safely modified\n */\n constructor(items = [], { autoStart = true, preserve = true } = {}) {\n super();\n const buffer = preserve || !Array.isArray(items) ? [...items] : items;\n this._index = 0;\n this._sourceStarted = autoStart !== false;\n this._truncateThreshold = preserve ? -1 : 64;\n if (this._sourceStarted && buffer.length === 0)\n this.close();\n else\n this._buffer = buffer;\n this.readable = true;\n }\n /* Reads an item from the iterator. */\n read() {\n if (!this._sourceStarted)\n this._sourceStarted = true;\n let item = null;\n if (this._buffer) {\n // Emit the current item\n if (this._index < this._buffer.length)\n item = this._buffer[this._index++];\n // Close when all elements have been returned\n if (this._index === this._buffer.length) {\n delete this._buffer;\n this.close();\n }\n // Do need keep old items around indefinitely\n else if (this._index === this._truncateThreshold) {\n this._buffer.splice(0, this._truncateThreshold);\n this._index = 0;\n }\n }\n return item;\n }\n /* Generates details for a textual representation of the iterator. */\n _toStringDetails() {\n return `(${this._buffer ? this._buffer.length - this._index : 0})`;\n }\n /* Called by {@link module:asynciterator.AsyncIterator#destroy} */\n _destroy(cause, callback) {\n delete this._buffer;\n callback();\n }\n /**\n Consume all remaining items of the iterator into an array that will be returned asynchronously.\n @param {object} [options] Settings for array creation\n @param {integer} [options.limit] The maximum number of items to place in the array.\n */\n toArray(options = {}) {\n if (!this._buffer)\n return Promise.resolve([]);\n // Determine start and end index\n const { length } = this._buffer;\n const start = this._index;\n const end = typeof options.limit !== 'number' ? length : start + options.limit;\n // Slice the items off the buffer\n const items = this._buffer.slice(start, end);\n this._index = end;\n // Close this iterator when we're past the end\n if (end >= length)\n this.close();\n return Promise.resolve(items);\n }\n}\nexports.ArrayIterator = ArrayIterator;\n/**\n An iterator that enumerates integers in a certain range.\n @extends module:asynciterator.AsyncIterator\n*/\nclass IntegerIterator extends AsyncIterator {\n /**\n Creates a new `IntegerIterator`.\n @param {object} [options] Settings of the iterator\n @param {integer} [options.start=0] The first number to emit\n @param {integer} [options.end=Infinity] The last number to emit\n @param {integer} [options.step=1] The increment between two numbers\n */\n constructor({ start = 0, step = 1, end } = {}) {\n super();\n // Determine the first number\n if (Number.isFinite(start))\n start = Math.trunc(start);\n this._next = start;\n // Determine step size\n if (Number.isFinite(step))\n step = Math.trunc(step);\n this._step = step;\n // Determine the last number\n const ascending = step >= 0;\n const direction = ascending ? Infinity : -Infinity;\n if (Number.isFinite(end))\n end = Math.trunc(end);\n else if (end !== -direction)\n end = direction;\n this._last = end;\n // Start iteration if there is at least one item; close otherwise\n if (!Number.isFinite(start) || (ascending ? start > end : start < end))\n this.close();\n else\n this.readable = true;\n }\n /* Reads an item from the iterator. */\n read() {\n if (this.closed)\n return null;\n const current = this._next, step = this._step, last = this._last, next = this._next += step;\n if (step >= 0 ? next > last : next < last)\n this.close();\n return current;\n }\n /* Generates details for a textual representation of the iterator. */\n _toStringDetails() {\n return `(${this._next}...${this._last})`;\n }\n}\nexports.IntegerIterator = IntegerIterator;\n/** Function that maps an element to itself. */\nfunction identity(item) {\n return item;\n}\nexports.identity = identity;\n/** Key indicating the current consumer of a source. */\nexports.DESTINATION = Symbol('destination');\n/**\n An iterator that synchronously transforms every item from its source\n by applying a mapping function.\n @extends module:asynciterator.AsyncIterator\n*/\nclass MappingIterator extends AsyncIterator {\n /**\n * Applies the given mapping to the source iterator.\n */\n constructor(source, map = identity, options = {}) {\n super();\n this._map = map;\n this._source = ensureSourceAvailable(source);\n this._destroySource = options.destroySource !== false;\n // Close if the source is already empty\n if (source.done) {\n this.close();\n }\n // Otherwise, wire up the source for reading\n else {\n this._source[exports.DESTINATION] = this;\n this._source.on('end', destinationClose);\n this._source.on('error', destinationEmitError);\n this._source.on('readable', destinationSetReadable);\n this.readable = this._source.readable;\n }\n }\n /* Tries to read the next item from the iterator. */\n read() {\n if (!this.done) {\n // Try to read an item that maps to a non-null value\n if (this._source.readable) {\n let item, mapped;\n while ((item = this._source.read()) !== null) {\n if ((mapped = this._map(item)) !== null)\n return mapped;\n }\n }\n this.readable = false;\n // Close this iterator if the source is empty\n if (this._source.done)\n this.close();\n }\n return null;\n }\n /* Cleans up the source iterator and ends. */\n _end(destroy) {\n this._source.removeListener('end', destinationClose);\n this._source.removeListener('error', destinationEmitError);\n this._source.removeListener('readable', destinationSetReadable);\n delete this._source[exports.DESTINATION];\n if (this._destroySource)\n this._source.destroy();\n super._end(destroy);\n }\n}\nexports.MappingIterator = MappingIterator;\n// Validates an AsyncIterator for use as a source within another AsyncIterator\nfunction ensureSourceAvailable(source, allowDestination = false) {\n if (!source || !isFunction(source.read) || !isFunction(source.on))\n throw new TypeError(`Invalid source: ${source}`);\n if (!allowDestination && source[exports.DESTINATION])\n throw new Error('The source already has a destination');\n return source;\n}\n/**\n An iterator that maintains an internal buffer of items.\n This class serves as a base class for other iterators\n with a typically complex item generation process.\n @extends module:asynciterator.AsyncIterator\n*/\nclass BufferedIterator extends AsyncIterator {\n /**\n Creates a new `BufferedIterator`.\n @param {object} [options] Settings of the iterator\n @param {integer} [options.maxBufferSize=4] The number of items to preload in the internal buffer\n @param {boolean} [options.autoStart=true] Whether buffering starts directly after construction\n */\n constructor({ maxBufferSize = 4, autoStart = true } = {}) {\n super(exports.INIT);\n this._buffer = new linkedlist_1.LinkedList();\n this._maxBufferSize = 4;\n this._reading = true;\n this._pushedCount = 0;\n this.maxBufferSize = maxBufferSize;\n taskScheduler(() => this._init(autoStart));\n this._sourceStarted = autoStart !== false;\n }\n /**\n The maximum number of items to preload in the internal buffer.\n A `BufferedIterator` tries to fill its buffer as far as possible.\n Set to `Infinity` to fully drain the source.\n @type number\n */\n get maxBufferSize() {\n return this._maxBufferSize;\n }\n set maxBufferSize(maxBufferSize) {\n // Allow only positive integers and infinity\n if (maxBufferSize !== Infinity) {\n maxBufferSize = !Number.isFinite(maxBufferSize) ? 4 :\n Math.max(Math.trunc(maxBufferSize), 1);\n }\n // Only set the maximum buffer size if it changes\n if (this._maxBufferSize !== maxBufferSize) {\n this._maxBufferSize = maxBufferSize;\n // Ensure sufficient elements are buffered\n if (this._state === exports.OPEN)\n this._fillBuffer();\n }\n }\n /**\n Initializing the iterator by calling {@link BufferedIterator#_begin}\n and changing state from INIT to OPEN.\n @protected\n @param {boolean} autoStart Whether reading of items should immediately start after OPEN.\n */\n _init(autoStart) {\n // Perform initialization tasks\n let doneCalled = false;\n this._reading = true;\n this._begin(() => {\n if (doneCalled)\n throw new Error('done callback called multiple times');\n doneCalled = true;\n // Open the iterator and start buffering\n this._reading = false;\n this._changeState(exports.OPEN);\n if (autoStart)\n this._fillBufferAsync();\n // If reading should not start automatically, the iterator doesn't become readable.\n // Therefore, mark the iterator as (potentially) readable so consumers know it might be read.\n else\n this.readable = true;\n });\n }\n /**\n Writes beginning items and opens iterator resources.\n Should never be called before {@link BufferedIterator#_init};\n typically, `_init` is responsible for calling `_begin`.\n @protected\n @param {function} done To be called when initialization is complete\n */\n _begin(done) {\n done();\n }\n /**\n Tries to read the next item from the iterator.\n If the buffer is empty,\n this method calls {@link BufferedIterator#_read} to fetch items.\n @returns {object?} The next item, or `null` if none is available\n */\n read() {\n if (this.done)\n return null;\n // An explicit read kickstarts the source\n if (!this._sourceStarted)\n this._sourceStarted = true;\n // Try to retrieve an item from the buffer\n const buffer = this._buffer;\n let item;\n if (buffer.empty) {\n item = null;\n this.readable = false;\n }\n else {\n item = buffer.shift();\n }\n // If the buffer is becoming empty, either fill it or end the iterator\n if (!this._reading && buffer.length < this._maxBufferSize) {\n // If the iterator is not closed and thus may still generate new items, fill the buffer\n if (!this.closed)\n this._fillBufferAsync();\n // No new items will be generated, so if none are buffered, the iterator ends here\n else if (buffer.empty)\n this._endAsync();\n }\n return item;\n }\n /**\n Tries to generate the given number of items.\n Implementers should add `count` items through {@link BufferedIterator#_push}.\n @protected\n @param {integer} count The number of items to generate\n @param {function} done To be called when reading is complete\n */\n _read(count, done) {\n done();\n }\n /**\n Adds an item to the internal buffer.\n @protected\n @param {object} item The item to add\n @emits module:asynciterator.AsyncIterator.readable\n */\n _push(item) {\n if (!this.done) {\n this._pushedCount++;\n this._buffer.push(item);\n this.readable = true;\n }\n }\n /**\n Fills the internal buffer until `this._maxBufferSize` items are present.\n This method calls {@link BufferedIterator#_read} to fetch items.\n @protected\n @emits module:asynciterator.AsyncIterator.readable\n */\n _fillBuffer() {\n let neededItems;\n // Avoid recursive reads\n if (this._reading) {\n // Do nothing\n }\n // If iterator closing started in the meantime, don't generate new items anymore\n else if (this.closed) {\n this._completeClose();\n }\n // Otherwise, try to fill empty spaces in the buffer by generating new items\n else if ((neededItems = Math.min(this._maxBufferSize - this._buffer.length, 128)) > 0) {\n // Acquire reading lock and start reading, counting pushed items\n this._pushedCount = 0;\n this._reading = true;\n this._read(neededItems, () => {\n // Verify the callback is only called once\n if (!neededItems)\n throw new Error('done callback called multiple times');\n neededItems = 0;\n // Release reading lock\n this._reading = false;\n // If the iterator was closed while reading, complete closing\n if (this.closed) {\n this._completeClose();\n }\n // If the iterator pushed one or more items,\n // it might currently be able to generate additional items\n // (even though all pushed items might already have been read)\n else if (this._pushedCount) {\n this.readable = true;\n // If the buffer is insufficiently full, continue filling\n if (this._buffer.length < this._maxBufferSize / 2)\n this._fillBufferAsync();\n }\n });\n }\n }\n /**\n Schedules `_fillBuffer` asynchronously.\n */\n _fillBufferAsync() {\n // Acquire reading lock to avoid recursive reads\n if (!this._reading) {\n this._reading = true;\n taskScheduler(() => {\n // Release reading lock so _fillBuffer` can take it\n this._reading = false;\n this._fillBuffer();\n });\n }\n }\n /**\n Stops the iterator from generating new items\n after a possible pending read operation has finished.\n Already generated, pending, or terminating items can still be emitted.\n After this, the iterator will end asynchronously.\n @emits module:asynciterator.AsyncIterator.end\n */\n close() {\n // If the iterator is not currently reading, we can close immediately\n if (!this._reading)\n this._completeClose();\n // Closing cannot complete when reading, so temporarily assume CLOSING state\n // `_fillBuffer` becomes responsible for calling `_completeClose`\n else\n this._changeState(exports.CLOSING);\n }\n /**\n Stops the iterator from generating new items,\n switching from `CLOSING` state into `CLOSED` state.\n @protected\n @emits module:asynciterator.AsyncIterator.end\n */\n _completeClose() {\n if (this._changeState(exports.CLOSED)) {\n // Write possible terminating items\n this._reading = true;\n this._flush(() => {\n if (!this._reading)\n throw new Error('done callback called multiple times');\n this._reading = false;\n // If no items are left, end the iterator\n // Otherwise, `read` becomes responsible for ending the iterator\n if (this._buffer.empty)\n this._endAsync();\n });\n }\n }\n /* Called by {@link module:asynciterator.AsyncIterator#destroy} */\n _destroy(cause, callback) {\n this._buffer.clear();\n callback();\n }\n /**\n Writes terminating items and closes iterator resources.\n Should never be called before {@link BufferedIterator#close};\n typically, `close` is responsible for calling `_flush`.\n @protected\n @param {function} done To be called when termination is complete\n */\n _flush(done) {\n done();\n }\n /**\n Generates details for a textual representation of the iterator.\n @protected\n */\n _toStringDetails() {\n const buffer = this._buffer;\n return `{${buffer.empty ? '' : `next: ${buffer.first}, `}buffer: ${buffer.length}}`;\n }\n}\nexports.BufferedIterator = BufferedIterator;\n/**\n An iterator that generates items based on a source iterator.\n This class serves as a base class for other iterators.\n @extends module:asynciterator.BufferedIterator\n*/\nclass TransformIterator extends BufferedIterator {\n /**\n Creates a new `TransformIterator`.\n @param {module:asynciterator.AsyncIterator|Readable} [source] The source this iterator generates items from\n @param {object} [options] Settings of the iterator\n @param {integer} [options.maxBufferSize=4] The maximum number of items to keep in the buffer\n @param {boolean} [options.autoStart=true] Whether buffering starts directly after construction\n @param {boolean} [options.optional=false] If transforming is optional, the original item is pushed when its transformation yields no items\n @param {boolean} [options.destroySource=true] Whether the source should be destroyed when this transformed iterator is closed or destroyed\n @param {module:asynciterator.AsyncIterator} [options.source] The source this iterator generates items from\n */\n constructor(source, options = source || {}) {\n super(options);\n this._boundPush = (item) => this._push(item);\n // Shift parameters if needed\n if (!isSourceExpression(source))\n source = options.source;\n // The passed source is an AsyncIterator or readable stream\n if (isEventEmitter(source)) {\n this.source = source;\n }\n // The passed value is a promise or source creation function\n else if (source) {\n this._createSource = isPromise(source) ? () => source : source;\n if (this._sourceStarted)\n this._loadSourceAsync();\n }\n // Set other options\n this._optional = Boolean(options.optional);\n this._destroySource = options.destroySource !== false;\n }\n /**\n The source this iterator generates items from.\n @type module:asynciterator.AsyncIterator\n */\n get source() {\n if (isFunction(this._createSource))\n this._loadSourceAsync();\n return this._source;\n }\n set source(value) {\n // Validate and set source\n const source = this._source = this._validateSource(value);\n source[exports.DESTINATION] = this;\n // Do not read the source if this iterator already ended\n if (this.done) {\n if (this._destroySource)\n source.destroy();\n }\n // Close this iterator if the source already ended\n else if (source.done) {\n this.close();\n }\n // Otherwise, react to source events\n else {\n source.on('end', destinationCloseWhenDone);\n source.on('readable', destinationFillBuffer);\n source.on('error', destinationEmitError);\n }\n }\n /**\n Initializes a source that was set through a promise\n @protected\n */\n _loadSourceAsync() {\n if (isFunction(this._createSource)) {\n // Assign the source after resolving\n Promise.resolve(this._createSource()).then(source => {\n delete this._createSource;\n this.source = source;\n this._fillBuffer();\n }, error => this.emit('error', error));\n // Signal that source creation is pending\n this._createSource = null;\n }\n }\n /**\n Validates whether the given iterator can be used as a source.\n @protected\n @param {object} source The source to validate\n @param {boolean} allowDestination Whether the source can already have a destination\n */\n _validateSource(source, allowDestination = false) {\n if (this._source || typeof this._createSource !== 'undefined')\n throw new Error('The source cannot be changed after it has been set');\n return ensureSourceAvailable(source, allowDestination);\n }\n /**\n Tries to read transformed items.\n */\n _read(count, done) {\n const next = () => {\n // Continue transforming until at least `count` items have been pushed\n if (this._pushedCount < count && !this.closed)\n taskScheduler(() => this._readAndTransform(next, done));\n else\n done();\n };\n this._readAndTransform(next, done);\n }\n /**\n Reads a transforms an item\n */\n _readAndTransform(next, done) {\n // If the source exists and still can read items,\n // try to read and transform the next item.\n let item;\n const source = this.source;\n if (!source || source.done || (item = source.read()) === null)\n done();\n else if (!this._optional)\n this._transform(item, next, this._boundPush);\n else\n this._optionalTransform(item, next);\n }\n /**\n Tries to transform the item;\n if the transformation yields no items, pushes the original item.\n */\n _optionalTransform(item, done) {\n const pushedCount = this._pushedCount;\n this._transform(item, () => {\n if (pushedCount === this._pushedCount)\n this._push(item);\n done();\n }, this._boundPush);\n }\n /**\n Generates items based on the item from the source.\n Implementers should add items through {@link BufferedIterator#_push}.\n The default implementation pushes the source item as-is.\n @protected\n @param {object} item The last read item from the source\n @param {function} done To be called when reading is complete\n @param {function} push A callback to push zero or more transformation results.\n */\n _transform(item, done, push) {\n push(item);\n done();\n }\n /**\n Closes the iterator when pending items are transformed.\n @protected\n */\n _closeWhenDone() {\n this.close();\n }\n /* Cleans up the source iterator and ends. */\n _end(destroy) {\n const source = this._source;\n if (source) {\n source.removeListener('end', destinationCloseWhenDone);\n source.removeListener('error', destinationEmitError);\n source.removeListener('readable', destinationFillBuffer);\n delete source[exports.DESTINATION];\n if (this._destroySource)\n source.destroy();\n }\n super._end(destroy);\n }\n}\nexports.TransformIterator = TransformIterator;\nfunction destinationSetReadable() {\n this[exports.DESTINATION].readable = true;\n}\nfunction destinationEmitError(error) {\n this[exports.DESTINATION].emit('error', error);\n}\nfunction destinationClose() {\n this[exports.DESTINATION].close();\n}\nfunction destinationCloseWhenDone() {\n this[exports.DESTINATION]._closeWhenDone();\n}\nfunction destinationFillBuffer() {\n if (this[exports.DESTINATION]._sourceStarted !== false)\n this[exports.DESTINATION]._fillBuffer();\n}\n/**\n An iterator that generates items based on a source iterator\n and simple transformation steps passed as arguments.\n @extends module:asynciterator.TransformIterator\n*/\nclass SimpleTransformIterator extends TransformIterator {\n /**\n Creates a new `SimpleTransformIterator`.\n @param {module:asynciterator.AsyncIterator|Readable} [source] The source this iterator generates items from\n @param {object|Function} [options] Settings of the iterator, or the transformation function\n @param {integer} [options.maxbufferSize=4] The maximum number of items to keep in the buffer\n @param {boolean} [options.autoStart=true] Whether buffering starts directly after construction\n @param {module:asynciterator.AsyncIterator} [options.source] The source this iterator generates items from\n @param {integer} [options.offset] The number of items to skip\n @param {integer} [options.limit] The maximum number of items\n @param {Function} [options.filter] A function to synchronously filter items from the source\n @param {Function} [options.map] A function to synchronously transform items from the source\n @param {Function} [options.transform] A function to asynchronously transform items from the source\n @param {boolean} [options.optional=false] If transforming is optional, the original item is pushed when its mapping yields `null` or its transformation yields no items\n @param {Array|module:asynciterator.AsyncIterator} [options.prepend] Items to insert before the source items\n @param {Array|module:asynciterator.AsyncIterator} [options.append] Items to insert after the source items\n */\n constructor(source, options) {\n super(source, options);\n this._offset = 0;\n this._limit = Infinity;\n this._filter = (item) => true;\n // Set transformation steps from the options\n options = options || (!isSourceExpression(source) ? source : null);\n if (options) {\n const transform = isFunction(options) ? options : options.transform;\n const { limit, offset, filter, map, prepend, append } = options;\n // Don't emit any items when bounds are unreachable\n if (offset === Infinity || limit === -Infinity) {\n this._limit = 0;\n }\n else {\n if (Number.isFinite(offset))\n this._offset = Math.max(Math.trunc(offset), 0);\n if (Number.isFinite(limit))\n this._limit = Math.max(Math.trunc(limit), 0);\n if (isFunction(filter))\n this._filter = filter;\n if (isFunction(map))\n this._map = map;\n this._transform = isFunction(transform) ? transform : null;\n }\n if (prepend)\n this._prepender = isEventEmitter(prepend) ? prepend : fromArray(prepend);\n if (append)\n this._appender = isEventEmitter(append) ? append : fromArray(append);\n }\n }\n /* Tries to read and transform items */\n _read(count, done) {\n const next = () => this._readAndTransformSimple(count, nextAsync, done);\n this._readAndTransformSimple(count, nextAsync, done);\n function nextAsync() {\n taskScheduler(next);\n }\n }\n /* Reads and transform items */\n _readAndTransformSimple(count, next, done) {\n // Verify we have a readable source\n let item;\n const { source } = this;\n if (!source || source.done) {\n done();\n return;\n }\n // Verify we are still below the limit\n if (this._limit === 0)\n this.close();\n // Try to read the next item until at least `count` items have been pushed\n while (!this.closed && this._pushedCount < count && (item = source.read()) !== null) {\n // Verify the item passes the filter and we've reached the offset\n if (!this._filter(item) || this._offset !== 0 && this._offset--)\n continue;\n // Synchronously map the item\n const mappedItem = typeof this._map === 'undefined' ? item : this._map(item);\n // Skip `null` items, pushing the original item if the mapping was optional\n if (mappedItem === null) {\n if (this._optional)\n this._push(item);\n }\n // Skip the asynchronous phase if no transformation was specified\n else if (!isFunction(this._transform)) {\n this._push(mappedItem);\n }\n // Asynchronously transform the item, and wait for `next` to call back\n else {\n if (!this._optional)\n this._transform(mappedItem, next, this._boundPush);\n else\n this._optionalTransform(mappedItem, next);\n return;\n }\n // Stop when we've reached the limit\n if (--this._limit === 0)\n this.close();\n }\n done();\n }\n // Prepends items to the iterator\n _begin(done) {\n this._insert(this._prepender, done);\n delete this._prepender;\n }\n // Appends items to the iterator\n _flush(done) {\n this._insert(this._appender, done);\n delete this._appender;\n }\n // Inserts items in the iterator\n _insert(inserter, done) {\n const push = (item) => this._push(item);\n if (!inserter || inserter.done) {\n done();\n }\n else {\n inserter.on('data', push);\n inserter.on('end', end);\n }\n function end() {\n inserter.removeListener('data', push);\n inserter.removeListener('end', end);\n done();\n }\n }\n}\nexports.SimpleTransformIterator = SimpleTransformIterator;\n/**\n An iterator that generates items by transforming each item of a source\n with a different iterator.\n @extends module:asynciterator.TransformIterator\n*/\nclass MultiTransformIterator extends TransformIterator {\n /**\n Creates a new `MultiTransformIterator`.\n @param {module:asynciterator.AsyncIterator|Readable} [source] The source this iterator generates items from\n @param {object|Function} [options] Settings of the iterator, or the transformation function\n @param {integer} [options.maxbufferSize=4] The maximum number of items to keep in the buffer\n @param {boolean} [options.autoStart=true] Whether buffering starts directly after construction\n @param {module:asynciterator.AsyncIterator} [options.source] The source this iterator generates items from\n @param {integer} [options.offset] The number of items to skip\n @param {integer} [options.limit] The maximum number of items\n @param {Function} [options.filter] A function to synchronously filter items from the source\n @param {Function} [options.map] A function to synchronously transform items from the source\n @param {Function} [options.transform] A function to asynchronously transform items from the source\n @param {boolean} [options.optional=false] If transforming is optional, the original item is pushed when its mapping yields `null` or its transformation yields no items\n @param {Function} [options.multiTransform] A function to asynchronously transform items to iterators from the source\n @param {Array|module:asynciterator.AsyncIterator} [options.prepend] Items to insert before the source items\n @param {Array|module:asynciterator.AsyncIterator} [options.append] Items to insert after the source items\n */\n constructor(source, options) {\n super(source, options);\n this._transformerQueue = [];\n // Set transformation steps from the options\n if (options) {\n const multiTransform = isFunction(options) ? options : options.multiTransform;\n if (multiTransform)\n this._createTransformer = multiTransform;\n }\n }\n /* Tries to read and transform items */\n _read(count, done) {\n // Remove transformers that have ended\n const transformerQueue = this._transformerQueue, optional = this._optional;\n let head, item;\n while ((head = transformerQueue[0]) && head.transformer.done) {\n // If transforming is optional, push the original item if none was pushed\n if (optional && head.item !== null) {\n count--;\n this._push(head.item);\n }\n // Remove listeners from the transformer\n transformerQueue.shift();\n const { transformer } = head;\n transformer.removeListener('end', destinationFillBuffer);\n transformer.removeListener('readable', destinationFillBuffer);\n transformer.removeListener('error', destinationEmitError);\n }\n // Create new transformers if there are less than the maximum buffer size\n const { source } = this;\n while (source && !source.done && transformerQueue.length < this.maxBufferSize) {\n // Read an item to create the next transformer\n item = source.read();\n if (item === null)\n break;\n // Create the transformer and listen to its events\n const transformer = (this._createTransformer(item) ||\n new EmptyIterator());\n transformer[exports.DESTINATION] = this;\n transformer.on('end', destinationFillBuffer);\n transformer.on('readable', destinationFillBuffer);\n transformer.on('error', destinationEmitError);\n transformerQueue.push({ transformer, item });\n }\n // Try to read `count` items from the transformer\n head = transformerQueue[0];\n if (head) {\n const { transformer } = head;\n while (count-- > 0 && (item = transformer.read()) !== null) {\n this._push(item);\n // If a transformed item was pushed, no need to push the original anymore\n if (optional)\n head.item = null;\n }\n }\n // End the iterator if the source has ended\n else if (source && source.done) {\n this.close();\n }\n done();\n }\n /**\n Creates a transformer for the given item.\n @param {object} item The last read item from the source\n @returns {module:asynciterator.AsyncIterator} An iterator that transforms the given item\n */\n _createTransformer(item) {\n return new SingletonIterator(item);\n }\n /* Closes the iterator when pending items are transformed. */\n _closeWhenDone() {\n // Only close if all transformers are read\n if (!this._transformerQueue.length)\n this.close();\n }\n _end(destroy) {\n super._end(destroy);\n // Also destroy the open transformers left in the queue\n if (this._destroySource) {\n for (const item of this._transformerQueue)\n item.transformer.destroy();\n }\n }\n}\nexports.MultiTransformIterator = MultiTransformIterator;\n/**\n An iterator that generates items by reading from multiple other iterators.\n @extends module:asynciterator.BufferedIterator\n*/\nclass UnionIterator extends BufferedIterator {\n /**\n Creates a new `UnionIterator`.\n @param {module:asynciterator.AsyncIterator|Array} [sources] The sources to read from\n @param {object} [options] Settings of the iterator\n @param {boolean} [options.destroySource=true] Whether the sources should be destroyed when transformed iterator is closed or destroyed\n */\n constructor(sources, options = {}) {\n super(options);\n this._sources = [];\n this._currentSource = -1;\n const autoStart = options.autoStart !== false;\n // Sources have been passed as an iterator\n if (isEventEmitter(sources)) {\n sources.on('error', error => this.emit('error', error));\n this._pending = { loading: false, sources: sources };\n if (autoStart)\n this._loadSources();\n }\n // Sources have been passed as a non-empty array\n else if (Array.isArray(sources) && sources.length > 0) {\n for (const source of sources)\n this._addSource(source);\n }\n // Sources are an empty list\n else if (autoStart) {\n this.close();\n }\n // Set other options\n this._destroySources = options.destroySources !== false;\n }\n // Loads pending sources into the sources list\n _loadSources() {\n // Obtain sources iterator\n const sources = this._pending.sources;\n this._pending.loading = true;\n // Close immediately if done\n if (sources.done) {\n delete this._pending;\n this.close();\n }\n // Otherwise, set up source reading\n else {\n sources.on('data', source => {\n this._addSource(source);\n this._fillBufferAsync();\n });\n sources.on('end', () => {\n delete this._pending;\n this._fillBuffer();\n });\n }\n }\n // Adds the given source to the internal sources array\n _addSource(source) {\n if (isPromise(source))\n source = wrap(source);\n if (!source.done) {\n this._sources.push(source);\n source[exports.DESTINATION] = this;\n source.on('error', destinationEmitError);\n source.on('readable', destinationFillBuffer);\n source.on('end', destinationRemoveEmptySources);\n }\n }\n // Removes sources that will no longer emit items\n _removeEmptySources() {\n this._sources = this._sources.filter((source, index) => {\n // Adjust the index of the current source if needed\n if (source.done && index <= this._currentSource)\n this._currentSource--;\n return !source.done;\n });\n this._fillBuffer();\n }\n // Reads items from the next sources\n _read(count, done) {\n var _a;\n // Start source loading if needed\n if (((_a = this._pending) === null || _a === void 0 ? void 0 : _a.loading) === false)\n this._loadSources();\n // Try to read `count` items\n let lastCount = 0, item;\n while (lastCount !== (lastCount = count)) {\n // Try every source at least once\n for (let i = 0; i < this._sources.length && count > 0; i++) {\n // Pick the next source\n this._currentSource = (this._currentSource + 1) % this._sources.length;\n const source = this._sources[this._currentSource];\n // Attempt to read an item from that source\n if ((item = source.read()) !== null) {\n count--;\n this._push(item);\n }\n }\n }\n // Close this iterator if all of its sources have been read\n if (!this._pending && this._sources.length === 0)\n this.close();\n done();\n }\n _end(destroy = false) {\n super._end(destroy);\n // Destroy all sources that are still readable\n if (this._destroySources) {\n for (const source of this._sources)\n source.destroy();\n // Also close the sources stream if applicable\n if (this._pending) {\n this._pending.sources.destroy();\n delete this._pending;\n }\n }\n }\n}\nexports.UnionIterator = UnionIterator;\nfunction destinationRemoveEmptySources() {\n this[exports.DESTINATION]._removeEmptySources();\n}\n/**\n An iterator that copies items from another iterator.\n @extends module:asynciterator.TransformIterator\n*/\nclass ClonedIterator extends TransformIterator {\n /**\n Creates a new `ClonedIterator`.\n @param {module:asynciterator.AsyncIterator|Readable} [source] The source this iterator copies items from\n */\n constructor(source) {\n super(source, { autoStart: false });\n this._readPosition = 0;\n this._reading = false;\n // As cloned iterators are not auto-started, they must always be marked as readable.\n if (source)\n this.readable = true;\n }\n _init() {\n // skip buffered iterator initialization, since we read from history\n }\n close() {\n // skip buffered iterator cleanup\n AsyncIterator.prototype.close.call(this);\n }\n // The source this iterator copies items from\n get source() {\n return super.source;\n }\n set source(value) {\n // Validate and set the source\n const source = this._source = this._validateSource(value);\n // Create a history reader for the source if none already existed\n const history = (source && source[exports.DESTINATION]) ||\n (source[exports.DESTINATION] = new HistoryReader(source));\n // Do not read the source if this iterator already ended\n if (this.done) {\n if (this._destroySource)\n source.destroy();\n }\n // Close this clone if history is empty and the source has ended\n else if (history.endsAt(0)) {\n this.close();\n }\n else {\n // Subscribe to history events\n history.register(this);\n // If there are already items in history, this clone is readable\n // If the source has a lazy start, always mark this iterator as readable without eagerly triggering a read.\n if (source._sourceStarted === false || history.readAt(0) !== null)\n this.readable = true;\n }\n // Hook pending property callbacks to the source\n const propertyCallbacks = this._propertyCallbacks;\n for (const propertyName in propertyCallbacks) {\n const callbacks = propertyCallbacks[propertyName];\n for (const callback of callbacks)\n this._getSourceProperty(propertyName, callback);\n }\n }\n /**\n Validates whether the given iterator can be used as a source.\n @protected\n @param {object} source The source to validate\n @param {boolean} allowDestination Whether the source can already have a destination\n */\n _validateSource(source, allowDestination = false) {\n const history = (source && source[exports.DESTINATION]);\n return super._validateSource(source, !history || history instanceof HistoryReader);\n }\n // Retrieves the property with the given name from the clone or its source.\n getProperty(propertyName, callback) {\n const { source } = this, properties = this._properties, hasProperty = properties && (propertyName in properties);\n // If no callback was passed, return the property value\n if (!callback) {\n return hasProperty ? properties && properties[propertyName] :\n source && source.getProperty(propertyName);\n }\n // Try to look up the property in this clone\n super.getProperty(propertyName, callback);\n // If the property is not set on this clone, it might become set on the source first\n if (source && !hasProperty)\n this._getSourceProperty(propertyName, callback);\n return undefined;\n }\n // Retrieves the property with the given name from the source\n _getSourceProperty(propertyName, callback) {\n this.source.getProperty(propertyName, value => {\n // Only send the source's property if it was not set on the clone in the meantime\n if (!this._properties || !(propertyName in this._properties))\n callback(value);\n });\n }\n // Retrieves all properties of the iterator and its source.\n getProperties() {\n const base = this.source ? this.source.getProperties() : {}, properties = this._properties;\n for (const name in properties)\n base[name] = properties[name];\n return base;\n }\n /* Generates details for a textual representation of the iterator. */\n _toStringDetails() {\n return `{source: ${this.source ? this.source.toString() : 'none'}}`;\n }\n /* Tries to read an item */\n read() {\n // An explicit read kickstarts the source\n if (!this._sourceStarted)\n this._sourceStarted = true;\n const source = this.source;\n let item = null;\n if (!this.done && source) {\n // Try to read an item at the current point in history\n const history = source[exports.DESTINATION];\n if ((item = history.readAt(this._readPosition)) !== null)\n this._readPosition++;\n else\n this.readable = false;\n // Close the iterator if we are at the end of the source\n if (history.endsAt(this._readPosition))\n this.close();\n }\n return item;\n }\n /* End the iterator and cleans up. */\n _end(destroy) {\n // Unregister from a possible history reader\n const source = this.source;\n const history = source === null || source === void 0 ? void 0 : source[exports.DESTINATION];\n if (history)\n history.unregister(this);\n // Don't call TransformIterator#_end,\n // as it would make the source inaccessible for other clones\n BufferedIterator.prototype._end.call(this, destroy);\n }\n}\nexports.ClonedIterator = ClonedIterator;\n// Stores the history of a source, so it can be cloned\nclass HistoryReader {\n constructor(source) {\n this._history = [];\n this._trackers = new Set();\n this._source = source;\n // If the source is still live, set up clone tracking;\n // otherwise, the clones just read from the finished history\n if (!source.done) {\n // When the source becomes readable, makes all clones readable\n const setReadable = () => {\n for (const tracker of this._trackers)\n tracker.readable = true;\n };\n // When the source errors, re-emits the error\n const emitError = (error) => {\n for (const tracker of this._trackers)\n tracker.emit('error', error);\n };\n // When the source ends, closes all clones that are fully read\n const end = () => {\n // Close the clone if all items had been emitted\n for (const tracker of this._trackers) {\n if (tracker._sourceStarted !== false &&\n tracker._readPosition === this._history.length)\n tracker.close();\n }\n this._trackers.clear();\n // Remove source listeners, since no further events will be emitted\n source.removeListener('end', end);\n source.removeListener('error', emitError);\n source.removeListener('readable', setReadable);\n };\n // Listen to source events to trigger events in subscribed clones\n source.on('end', end);\n source.on('error', emitError);\n source.on('readable', setReadable);\n }\n }\n // Registers a clone for history updates\n register(clone) {\n // Tracking is only needed if the source is still live\n if (!this._source.done)\n this._trackers.add(clone);\n }\n // Unregisters a clone for history updates\n unregister(clone) {\n this._trackers.delete(clone);\n }\n // Tries to read the item at the given history position\n readAt(pos) {\n let item = null;\n // Retrieve an item from history when available\n if (pos < this._history.length)\n item = this._history[pos];\n // Read a new item from the source when possible\n else if (!this._source.done && (item = this._source.read()) !== null)\n this._history[pos] = item;\n return item;\n }\n // Determines whether the given position is the end of the source\n endsAt(pos) {\n return this._source.done && this._history.length === pos;\n }\n}\n/**\n * An iterator that takes a variety of iterable objects as a source.\n */\nclass WrappingIterator extends AsyncIterator {\n constructor(source, opts) {\n super();\n this._source = null;\n this._destroySource = (opts === null || opts === void 0 ? void 0 : opts.destroySource) !== false;\n // If promise, set up a temporary source and replace when ready\n if (isPromise(source)) {\n this._source = new AsyncIterator();\n source.then(value => {\n this._source = null;\n this.source = value;\n }).catch(error => this.emit('error', error));\n }\n // Otherwise, set the source synchronously\n else if (source) {\n this.source = source;\n }\n }\n set source(value) {\n let source = value;\n if (this._source !== null)\n throw new Error('The source cannot be changed after it has been set');\n // Process an iterable source\n if (isIterable(source))\n source = source[Symbol.iterator]();\n // Process an iterator source\n if (isIterator(source)) {\n let iterator = source;\n source = new events_1.EventEmitter();\n source.read = () => {\n if (iterator !== null) {\n // Skip any null values inside of the iterator\n let next;\n while (!(next = iterator.next()).done) {\n if (next.value !== null)\n return next.value;\n }\n // No remaining values, so stop iterating\n iterator = null;\n this.close();\n }\n return null;\n };\n }\n // Process any other readable source\n else {\n source = ensureSourceAvailable(source);\n }\n // Do not change sources if the iterator is already done\n if (this.done) {\n if (this._destroySource && isFunction(source.destroy))\n source.destroy();\n return;\n }\n // Set up event handling\n source[exports.DESTINATION] = this;\n source.on('end', destinationClose);\n source.on('error', destinationEmitError);\n source.on('readable', destinationSetReadable);\n // Enable reading from source\n this._source = source;\n this.readable = source.readable !== false;\n }\n read() {\n if (this._source !== null && this._source.readable !== false) {\n const item = this._source.read();\n if (item !== null)\n return item;\n this.readable = false;\n }\n return null;\n }\n _end(destroy = false) {\n if (this._source !== null) {\n this._source.removeListener('end', destinationClose);\n this._source.removeListener('error', destinationEmitError);\n this._source.removeListener('readable', destinationSetReadable);\n delete this._source[exports.DESTINATION];\n if (this._destroySource && isFunction(this._source.destroy))\n this._source.destroy();\n this._source = null;\n }\n super._end(destroy);\n }\n}\nexports.WrappingIterator = WrappingIterator;\n/**\n Creates an iterator that wraps around a given iterator or readable stream.\n Use this to convert an iterator-like object into a full-featured AsyncIterator.\n After this operation, only read the returned iterator instead of the given one.\n @function\n @param [source] The source this iterator generates items from\n @param {object} [options] Settings of the iterator\n @returns {module:asynciterator.AsyncIterator} A new iterator with the items from the given iterator\n*/\nfunction wrap(source, options) {\n // For backward compatibility, always use TransformIterator when options are specified\n if (options && ('autoStart' in options || 'optional' in options || 'source' in options || 'maxBufferSize' in options)) {\n if (source && !isEventEmitter(source))\n source = new WrappingIterator(source);\n return new TransformIterator(source, options);\n }\n // Empty iterator if no source specified\n if (!source)\n return empty();\n // Unwrap promised sources\n if (isPromise(source))\n return new WrappingIterator(source, options);\n // Directly return any AsyncIterator\n if (source instanceof AsyncIterator)\n return source;\n // Other iterable objects\n if (Array.isArray(source))\n return fromArray(source);\n if (isIterable(source) || isIterator(source) || isEventEmitter(source))\n return new WrappingIterator(source, options);\n // Other types are unsupported\n throw new TypeError(`Invalid source: ${source}`);\n}\nexports.wrap = wrap;\n/**\n Creates an empty iterator.\n */\nfunction empty() {\n return new EmptyIterator();\n}\nexports.empty = empty;\n/**\n Creates an iterator with a single item.\n @param {object} item the item\n */\nfunction single(item) {\n return new SingletonIterator(item);\n}\nexports.single = single;\n/**\n Creates an iterator for the given array.\n @param {Array} items the items\n */\nfunction fromArray(items) {\n return new ArrayIterator(items);\n}\nexports.fromArray = fromArray;\n/**\n Creates an iterator for the given Iterator.\n @param {Iterable} source the iterator\n */\nfunction fromIterator(source) {\n return new WrappingIterator(source);\n}\nexports.fromIterator = fromIterator;\n/**\n Creates an iterator for the given Iterable.\n @param {Iterable} source the iterable\n */\nfunction fromIterable(source) {\n return new WrappingIterator(source);\n}\nexports.fromIterable = fromIterable;\n/**\n Creates an iterator containing all items from the given iterators.\n @param {Array} items the items\n */\nfunction union(sources) {\n return new UnionIterator(sources);\n}\nexports.union = union;\n/**\n Creates an iterator of integers for the given numeric range.\n @param {Array} items the items\n */\nfunction range(start, end, step) {\n return new IntegerIterator({ start, end, step });\n}\nexports.range = range;\n// Returns a function that calls `fn` with `self` as `this` pointer. */\nfunction bind(fn, self) {\n return self ? fn.bind(self) : fn;\n}\n// Determines whether the given object is a function\nfunction isFunction(object) {\n return typeof object === 'function';\n}\nexports.isFunction = isFunction;\n// Determines whether the given object is an EventEmitter\nfunction isEventEmitter(object) {\n return isFunction(object === null || object === void 0 ? void 0 : object.on);\n}\nexports.isEventEmitter = isEventEmitter;\n// Determines whether the given object is a promise\nfunction isPromise(object) {\n return isFunction(object === null || object === void 0 ? void 0 : object.then);\n}\nexports.isPromise = isPromise;\n// Determines whether the given object is a source expression\nfunction isSourceExpression(object) {\n return object && (isEventEmitter(object) || isPromise(object) || isFunction(object));\n}\nexports.isSourceExpression = isSourceExpression;\n// Determines whether the given object supports the iterable protocol\nfunction isIterable(object) {\n return object && (Symbol.iterator in object);\n}\nexports.isIterable = isIterable;\n// Determines whether the given object supports the iterator protocol\nfunction isIterator(object) {\n return isFunction(object === null || object === void 0 ? void 0 : object.next);\n}\nexports.isIterator = isIterator;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/asynciterator/dist/asynciterator.js?");
|
|
42
|
+
|
|
43
|
+
/***/ }),
|
|
44
|
+
|
|
45
|
+
/***/ "./node_modules/asynciterator/dist/linkedlist.js":
|
|
46
|
+
/*!*******************************************************!*\
|
|
47
|
+
!*** ./node_modules/asynciterator/dist/linkedlist.js ***!
|
|
48
|
+
\*******************************************************/
|
|
49
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
50
|
+
|
|
51
|
+
"use strict";
|
|
52
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LinkedList = void 0;\n/**\n * A list with O(1) push and shift operations.\n */\nclass LinkedList {\n constructor() {\n this._length = 0;\n this._head = null;\n this._tail = null;\n }\n get length() { return this._length; }\n get first() { var _a; return (_a = this._head) === null || _a === void 0 ? void 0 : _a.value; }\n get last() { var _a; return (_a = this._tail) === null || _a === void 0 ? void 0 : _a.value; }\n get empty() { return this._head === null; }\n push(value) {\n const node = { value, next: null };\n if (this._tail === null)\n this._head = this._tail = node;\n else\n this._tail.next = this._tail = node;\n this._length++;\n }\n shift() {\n if (this._head === null)\n return undefined;\n const { value, next } = this._head;\n this._head = next;\n if (next === null)\n this._tail = null;\n this._length--;\n return value;\n }\n clear() {\n this._length = 0;\n this._head = this._tail = null;\n }\n}\nexports.LinkedList = LinkedList;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/asynciterator/dist/linkedlist.js?");
|
|
53
|
+
|
|
54
|
+
/***/ }),
|
|
55
|
+
|
|
56
|
+
/***/ "./node_modules/asynciterator/dist/taskscheduler.js":
|
|
57
|
+
/*!**********************************************************!*\
|
|
58
|
+
!*** ./node_modules/asynciterator/dist/taskscheduler.js ***!
|
|
59
|
+
\**********************************************************/
|
|
60
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
61
|
+
|
|
62
|
+
"use strict";
|
|
63
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.createTaskScheduler = void 0;\nconst resolved = Promise.resolve(undefined);\n// Returns a function that asynchronously schedules a task\nfunction createTaskScheduler() {\n // Use or create a microtask scheduler\n const scheduleMicrotask = typeof queueMicrotask === 'function' ?\n queueMicrotask : (task) => resolved.then(task);\n // Use or create a macrotask scheduler\n const scheduleMacrotask = typeof setImmediate === 'function' ?\n setImmediate : (task) => setTimeout(task, 0);\n // Interrupt with a macrotask every once in a while to avoid freezing\n let i = 0;\n let queue = null;\n return (task) => {\n // Tasks are currently being queued to avoid freezing\n if (queue !== null)\n queue.push(task);\n // Tasks are being scheduled normally as microtasks\n else if (++i < 100)\n scheduleMicrotask(task);\n // A macrotask interruption is needed\n else {\n // Hold all tasks in a queue, and reschedule them after a macrotask\n queue = [task];\n scheduleMacrotask(() => {\n // Work through the queue\n for (const queued of queue)\n scheduleMicrotask(queued);\n queue = null;\n // Reset the interruption schedule\n i = 0;\n });\n }\n };\n}\nexports.createTaskScheduler = createTaskScheduler;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/asynciterator/dist/taskscheduler.js?");
|
|
64
|
+
|
|
65
|
+
/***/ }),
|
|
66
|
+
|
|
34
67
|
/***/ "./node_modules/base64-js/index.js":
|
|
35
68
|
/*!*****************************************!*\
|
|
36
69
|
!*** ./node_modules/base64-js/index.js ***!
|
|
@@ -84,6 +117,17 @@ eval("!function(t,e){ true?module.exports=e():0}(\"undefined\"!=typeof self?self
|
|
|
84
117
|
|
|
85
118
|
/***/ }),
|
|
86
119
|
|
|
120
|
+
/***/ "./node_modules/n3/src/BaseIRI.js":
|
|
121
|
+
/*!****************************************!*\
|
|
122
|
+
!*** ./node_modules/n3/src/BaseIRI.js ***!
|
|
123
|
+
\****************************************/
|
|
124
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
125
|
+
|
|
126
|
+
"use strict";
|
|
127
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BaseIRI)\n/* harmony export */ });\n/* harmony import */ var _Util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Util */ \"./node_modules/n3/src/Util.js\");\n\n\n// Do not handle base IRIs without scheme, and currently unsupported cases:\n// - file: IRIs (which could also use backslashes)\n// - IRIs containing /. or /.. or //\nconst BASE_UNSUPPORTED = /^:?[^:?#]*(?:[?#]|$)|^file:|^[^:]*:\\/*[^?#]+?\\/(?:\\.\\.?(?:\\/|$)|\\/)/i;\nconst SUFFIX_SUPPORTED = /^(?:(?:[^/?#]{3,}|\\.?[^/?#.]\\.?)(?:\\/[^/?#]{3,}|\\.?[^/?#.]\\.?)*\\/?)?(?:[?#]|$)/;\nconst CURRENT = './';\nconst PARENT = '../';\nconst QUERY = '?';\nconst FRAGMENT = '#';\n\nclass BaseIRI {\n constructor(base) {\n this.base = base;\n this._baseLength = 0;\n this._baseMatcher = null;\n this._pathReplacements = new Array(base.length + 1);\n }\n\n static supports(base) {\n return !BASE_UNSUPPORTED.test(base);\n }\n\n _getBaseMatcher() {\n if (this._baseMatcher)\n return this._baseMatcher;\n if (!BaseIRI.supports(this.base))\n return this._baseMatcher = /.^/;\n\n // Extract the scheme\n const scheme = /^[^:]*:\\/*/.exec(this.base)[0];\n const regexHead = ['^', (0,_Util__WEBPACK_IMPORTED_MODULE_0__.escapeRegex)(scheme)];\n const regexTail = [];\n\n // Generate a regex for every path segment\n const segments = [], segmenter = /[^/?#]*([/?#])/y;\n let segment, query = 0, fragment = 0, last = segmenter.lastIndex = scheme.length;\n while (!query && !fragment && (segment = segmenter.exec(this.base))) {\n // Truncate base resolution path at fragment start\n if (segment[1] === FRAGMENT)\n fragment = segmenter.lastIndex - 1;\n else {\n // Create regex that matches the segment\n regexHead.push((0,_Util__WEBPACK_IMPORTED_MODULE_0__.escapeRegex)(segment[0]), '(?:');\n regexTail.push(')?');\n\n // Create dedicated query string replacement\n if (segment[1] !== QUERY)\n segments.push(last = segmenter.lastIndex);\n else {\n query = last = segmenter.lastIndex;\n fragment = this.base.indexOf(FRAGMENT, query);\n this._pathReplacements[query] = QUERY;\n }\n }\n }\n\n // Precalculate parent path substitutions\n for (let i = 0; i < segments.length; i++)\n this._pathReplacements[segments[i]] = PARENT.repeat(segments.length - i - 1);\n this._pathReplacements[segments[segments.length - 1]] = CURRENT;\n\n // Add the remainder of the base IRI (without fragment) to the regex\n this._baseLength = fragment > 0 ? fragment : this.base.length;\n regexHead.push(\n (0,_Util__WEBPACK_IMPORTED_MODULE_0__.escapeRegex)(this.base.substring(last, this._baseLength)),\n query ? '(?:#|$)' : '(?:[?#]|$)',\n );\n return this._baseMatcher = new RegExp([...regexHead, ...regexTail].join(''));\n }\n\n toRelative(iri) {\n // Unsupported or non-matching base IRI\n const match = this._getBaseMatcher().exec(iri);\n if (!match)\n return iri;\n\n // Exact base IRI match\n const length = match[0].length;\n if (length === this._baseLength && length === iri.length)\n return '';\n\n // Parent path match\n const parentPath = this._pathReplacements[length];\n if (parentPath) {\n const suffix = iri.substring(length);\n // Don't abbreviate unsupported path\n if (parentPath !== QUERY && !SUFFIX_SUPPORTED.test(suffix))\n return iri;\n // Omit ./ with fragment or query string\n if (parentPath === CURRENT && /^[^?#]/.test(suffix))\n return suffix;\n // Append suffix to relative parent path\n return parentPath + suffix;\n }\n\n // Fragment or query string, so include delimiter\n return iri.substring(length - 1);\n }\n}\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/n3/src/BaseIRI.js?");
|
|
128
|
+
|
|
129
|
+
/***/ }),
|
|
130
|
+
|
|
87
131
|
/***/ "./node_modules/n3/src/IRIs.js":
|
|
88
132
|
/*!*************************************!*\
|
|
89
133
|
!*** ./node_modules/n3/src/IRIs.js ***!
|
|
@@ -113,7 +157,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
113
157
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
114
158
|
|
|
115
159
|
"use strict";
|
|
116
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ N3Lexer)\n/* harmony export */ });\n/* harmony import */ var buffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\");\n/* harmony import */ var queue_microtask__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! queue-microtask */ \"./node_modules/queue-microtask/index.js\");\n/* harmony import */ var queue_microtask__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(queue_microtask__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _IRIs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./IRIs */ \"./node_modules/n3/src/IRIs.js\");\n// **N3Lexer** tokenizes N3 documents.\n\n\n\n\nconst { xsd } = _IRIs__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n\n// Regular expression and replacement string to escape N3 strings\nconst escapeSequence = /\\\\u([a-fA-F0-9]{4})|\\\\U([a-fA-F0-9]{8})|\\\\([^])/g;\nconst escapeReplacements = {\n '\\\\': '\\\\', \"'\": \"'\", '\"': '\"',\n 'n': '\\n', 'r': '\\r', 't': '\\t', 'f': '\\f', 'b': '\\b',\n '_': '_', '~': '~', '.': '.', '-': '-', '!': '!', '$': '$', '&': '&',\n '(': '(', ')': ')', '*': '*', '+': '+', ',': ',', ';': ';', '=': '=',\n '/': '/', '?': '?', '#': '#', '@': '@', '%': '%',\n};\nconst illegalIriChars = /[\\x00-\\x20<>\\\\\"\\{\\}\\|\\^\\`]/;\n\nconst lineModeRegExps = {\n _iri: true,\n _unescapedIri: true,\n _simpleQuotedString: true,\n _langcode: true,\n _blank: true,\n _newline: true,\n _comment: true,\n _whitespace: true,\n _endOfFile: true,\n};\nconst invalidRegExp = /$0^/;\n\n// ## Constructor\nclass N3Lexer {\n constructor(options) {\n // ## Regular expressions\n // It's slightly faster to have these as properties than as in-scope variables\n this._iri = /^<((?:[^ <>{}\\\\]|\\\\[uU])+)>[ \\t]*/; // IRI with escape sequences; needs sanity check after unescaping\n this._unescapedIri = /^<([^\\x00-\\x20<>\\\\\"\\{\\}\\|\\^\\`]*)>[ \\t]*/; // IRI without escape sequences; no unescaping\n this._simpleQuotedString = /^\"([^\"\\\\\\r\\n]*)\"(?=[^\"])/; // string without escape sequences\n this._simpleApostropheString = /^'([^'\\\\\\r\\n]*)'(?=[^'])/;\n this._langcode = /^@([a-z]+(?:-[a-z0-9]+)*)(?=[^a-z0-9\\-])/i;\n this._prefix = /^((?:[A-Za-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:\\.?[\\-0-9A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)?:(?=[#\\s<])/;\n this._prefixed = /^((?:[A-Za-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:\\.?[\\-0-9A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)?:((?:(?:[0-:A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff]|%[0-9a-fA-F]{2}|\\\\[!#-\\/;=?\\-@_~])(?:(?:[\\.\\-0-:A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff]|%[0-9a-fA-F]{2}|\\\\[!#-\\/;=?\\-@_~])*(?:[\\-0-:A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff]|%[0-9a-fA-F]{2}|\\\\[!#-\\/;=?\\-@_~]))?)?)(?:[ \\t]+|(?=\\.?[,;!\\^\\s#()\\[\\]\\{\\}\"'<>]))/;\n this._variable = /^\\?(?:(?:[A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:[\\-0-:A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)(?=[.,;!\\^\\s#()\\[\\]\\{\\}\"'<>])/;\n this._blank = /^_:((?:[0-9A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:\\.?[\\-0-9A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)(?:[ \\t]+|(?=\\.?[,;:\\s#()\\[\\]\\{\\}\"'<>]))/;\n this._number = /^[\\-+]?(?:(\\d+\\.\\d*|\\.?\\d+)[eE][\\-+]?|\\d*(\\.)?)\\d+(?=\\.?[,;:\\s#()\\[\\]\\{\\}\"'<>])/;\n this._boolean = /^(?:true|false)(?=[.,;\\s#()\\[\\]\\{\\}\"'<>])/;\n this._keyword = /^@[a-z]+(?=[\\s#<:])/i;\n this._sparqlKeyword = /^(?:PREFIX|BASE|GRAPH)(?=[\\s#<])/i;\n this._shortPredicates = /^a(?=[\\s#()\\[\\]\\{\\}\"'<>])/;\n this._newline = /^[ \\t]*(?:#[^\\n\\r]*)?(?:\\r\\n|\\n|\\r)[ \\t]*/;\n this._comment = /#([^\\n\\r]*)/;\n this._whitespace = /^[ \\t]+/;\n this._endOfFile = /^(?:#[^\\n\\r]*)?$/;\n options = options || {};\n\n // Whether the log:isImpliedBy predicate is supported\n this._isImpliedBy = options.isImpliedBy;\n\n // In line mode (N-Triples or N-Quads), only simple features may be parsed\n if (this._lineMode = !!options.lineMode) {\n this._n3Mode = false;\n // Don't tokenize special literals\n for (const key in this) {\n if (!(key in lineModeRegExps) && this[key] instanceof RegExp)\n this[key] = invalidRegExp;\n }\n }\n // When not in line mode, enable N3 functionality by default\n else {\n this._n3Mode = options.n3 !== false;\n }\n // Don't output comment tokens by default\n this.comments = !!options.comments;\n // Cache the last tested closing position of long literals\n this._literalClosingPos = 0;\n }\n\n // ## Private methods\n\n // ### `_tokenizeToEnd` tokenizes as for as possible, emitting tokens through the callback\n _tokenizeToEnd(callback, inputFinished) {\n // Continue parsing as far as possible; the loop will return eventually\n let input = this._input;\n let currentLineLength = input.length;\n while (true) {\n // Count and skip whitespace lines\n let whiteSpaceMatch, comment;\n while (whiteSpaceMatch = this._newline.exec(input)) {\n // Try to find a comment\n if (this.comments && (comment = this._comment.exec(whiteSpaceMatch[0])))\n emitToken('comment', comment[1], '', this._line, whiteSpaceMatch[0].length);\n // Advance the input\n input = input.substr(whiteSpaceMatch[0].length, input.length);\n currentLineLength = input.length;\n this._line++;\n }\n // Skip whitespace on current line\n if (!whiteSpaceMatch && (whiteSpaceMatch = this._whitespace.exec(input)))\n input = input.substr(whiteSpaceMatch[0].length, input.length);\n\n // Stop for now if we're at the end\n if (this._endOfFile.test(input)) {\n // If the input is finished, emit EOF\n if (inputFinished) {\n // Try to find a final comment\n if (this.comments && (comment = this._comment.exec(input)))\n emitToken('comment', comment[1], '', this._line, input.length);\n input = null;\n emitToken('eof', '', '', this._line, 0);\n }\n return this._input = input;\n }\n\n // Look for specific token types based on the first character\n const line = this._line, firstChar = input[0];\n let type = '', value = '', prefix = '',\n match = null, matchLength = 0, inconclusive = false;\n switch (firstChar) {\n case '^':\n // We need at least 3 tokens lookahead to distinguish ^^<IRI> and ^^pre:fixed\n if (input.length < 3)\n break;\n // Try to match a type\n else if (input[1] === '^') {\n this._previousMarker = '^^';\n // Move to type IRI or prefixed name\n input = input.substr(2);\n if (input[0] !== '<') {\n inconclusive = true;\n break;\n }\n }\n // If no type, it must be a path expression\n else {\n if (this._n3Mode) {\n matchLength = 1;\n type = '^';\n }\n break;\n }\n // Fall through in case the type is an IRI\n case '<':\n // Try to find a full IRI without escape sequences\n if (match = this._unescapedIri.exec(input))\n type = 'IRI', value = match[1];\n // Try to find a full IRI with escape sequences\n else if (match = this._iri.exec(input)) {\n value = this._unescape(match[1]);\n if (value === null || illegalIriChars.test(value))\n return reportSyntaxError(this);\n type = 'IRI';\n }\n // Try to find a nested triple\n else if (input.length > 1 && input[1] === '<')\n type = '<<', matchLength = 2;\n // Try to find a backwards implication arrow\n else if (this._n3Mode && input.length > 1 && input[1] === '=') {\n matchLength = 2;\n if (this._isImpliedBy) type = 'abbreviation', value = '<';\n else type = 'inverse', value = '>';\n }\n break;\n\n case '>':\n if (input.length > 1 && input[1] === '>')\n type = '>>', matchLength = 2;\n break;\n\n case '_':\n // Try to find a blank node. Since it can contain (but not end with) a dot,\n // we always need a non-dot character before deciding it is a blank node.\n // Therefore, try inserting a space if we're at the end of the input.\n if ((match = this._blank.exec(input)) ||\n inputFinished && (match = this._blank.exec(`${input} `)))\n type = 'blank', prefix = '_', value = match[1];\n break;\n\n case '\"':\n // Try to find a literal without escape sequences\n if (match = this._simpleQuotedString.exec(input))\n value = match[1];\n // Try to find a literal wrapped in three pairs of quotes\n else {\n ({ value, matchLength } = this._parseLiteral(input));\n if (value === null)\n return reportSyntaxError(this);\n }\n if (match !== null || matchLength !== 0) {\n type = 'literal';\n this._literalClosingPos = 0;\n }\n break;\n\n case \"'\":\n if (!this._lineMode) {\n // Try to find a literal without escape sequences\n if (match = this._simpleApostropheString.exec(input))\n value = match[1];\n // Try to find a literal wrapped in three pairs of quotes\n else {\n ({ value, matchLength } = this._parseLiteral(input));\n if (value === null)\n return reportSyntaxError(this);\n }\n if (match !== null || matchLength !== 0) {\n type = 'literal';\n this._literalClosingPos = 0;\n }\n }\n break;\n\n case '?':\n // Try to find a variable\n if (this._n3Mode && (match = this._variable.exec(input)))\n type = 'var', value = match[0];\n break;\n\n case '@':\n // Try to find a language code\n if (this._previousMarker === 'literal' && (match = this._langcode.exec(input)))\n type = 'langcode', value = match[1];\n // Try to find a keyword\n else if (match = this._keyword.exec(input))\n type = match[0];\n break;\n\n case '.':\n // Try to find a dot as punctuation\n if (input.length === 1 ? inputFinished : (input[1] < '0' || input[1] > '9')) {\n type = '.';\n matchLength = 1;\n break;\n }\n // Fall through to numerical case (could be a decimal dot)\n\n case '0':\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n case '+':\n case '-':\n // Try to find a number. Since it can contain (but not end with) a dot,\n // we always need a non-dot character before deciding it is a number.\n // Therefore, try inserting a space if we're at the end of the input.\n if (match = this._number.exec(input) ||\n inputFinished && (match = this._number.exec(`${input} `))) {\n type = 'literal', value = match[0];\n prefix = (typeof match[1] === 'string' ? xsd.double :\n (typeof match[2] === 'string' ? xsd.decimal : xsd.integer));\n }\n break;\n\n case 'B':\n case 'b':\n case 'p':\n case 'P':\n case 'G':\n case 'g':\n // Try to find a SPARQL-style keyword\n if (match = this._sparqlKeyword.exec(input))\n type = match[0].toUpperCase();\n else\n inconclusive = true;\n break;\n\n case 'f':\n case 't':\n // Try to match a boolean\n if (match = this._boolean.exec(input))\n type = 'literal', value = match[0], prefix = xsd.boolean;\n else\n inconclusive = true;\n break;\n\n case 'a':\n // Try to find an abbreviated predicate\n if (match = this._shortPredicates.exec(input))\n type = 'abbreviation', value = 'a';\n else\n inconclusive = true;\n break;\n\n case '=':\n // Try to find an implication arrow or equals sign\n if (this._n3Mode && input.length > 1) {\n type = 'abbreviation';\n if (input[1] !== '>')\n matchLength = 1, value = '=';\n else\n matchLength = 2, value = '>';\n }\n break;\n\n case '!':\n if (!this._n3Mode)\n break;\n case ',':\n case ';':\n case '[':\n case ']':\n case '(':\n case ')':\n case '}':\n if (!this._lineMode) {\n matchLength = 1;\n type = firstChar;\n }\n break;\n case '{':\n // We need at least 2 tokens lookahead to distinguish \"{|\" and \"{ \"\n if (!this._lineMode && input.length >= 2) {\n // Try to find a quoted triple annotation start\n if (input[1] === '|')\n type = '{|', matchLength = 2;\n else\n type = firstChar, matchLength = 1;\n }\n break;\n case '|':\n // We need 2 tokens lookahead to parse \"|}\"\n // Try to find a quoted triple annotation end\n if (input.length >= 2 && input[1] === '}')\n type = '|}', matchLength = 2;\n break;\n\n default:\n inconclusive = true;\n }\n\n // Some first characters do not allow an immediate decision, so inspect more\n if (inconclusive) {\n // Try to find a prefix\n if ((this._previousMarker === '@prefix' || this._previousMarker === 'PREFIX') &&\n (match = this._prefix.exec(input)))\n type = 'prefix', value = match[1] || '';\n // Try to find a prefixed name. Since it can contain (but not end with) a dot,\n // we always need a non-dot character before deciding it is a prefixed name.\n // Therefore, try inserting a space if we're at the end of the input.\n else if ((match = this._prefixed.exec(input)) ||\n inputFinished && (match = this._prefixed.exec(`${input} `)))\n type = 'prefixed', prefix = match[1] || '', value = this._unescape(match[2]);\n }\n\n // A type token is special: it can only be emitted after an IRI or prefixed name is read\n if (this._previousMarker === '^^') {\n switch (type) {\n case 'prefixed': type = 'type'; break;\n case 'IRI': type = 'typeIRI'; break;\n default: type = '';\n }\n }\n\n // What if nothing of the above was found?\n if (!type) {\n // We could be in streaming mode, and then we just wait for more input to arrive.\n // Otherwise, a syntax error has occurred in the input.\n // One exception: error on an unaccounted linebreak (= not inside a triple-quoted literal).\n if (inputFinished || (!/^'''|^\"\"\"/.test(input) && /\\n|\\r/.test(input)))\n return reportSyntaxError(this);\n else\n return this._input = input;\n }\n\n // Emit the parsed token\n const length = matchLength || match[0].length;\n const token = emitToken(type, value, prefix, line, length);\n this.previousToken = token;\n this._previousMarker = type;\n\n // Advance to next part to tokenize\n input = input.substr(length, input.length);\n }\n\n // Emits the token through the callback\n function emitToken(type, value, prefix, line, length) {\n const start = input ? currentLineLength - input.length : currentLineLength;\n const end = start + length;\n const token = { type, value, prefix, line, start, end };\n callback(null, token);\n return token;\n }\n // Signals the syntax error through the callback\n function reportSyntaxError(self) { callback(self._syntaxError(/^\\S*/.exec(input)[0])); }\n }\n\n // ### `_unescape` replaces N3 escape codes by their corresponding characters\n _unescape(item) {\n let invalid = false;\n const replaced = item.replace(escapeSequence, (sequence, unicode4, unicode8, escapedChar) => {\n // 4-digit unicode character\n if (typeof unicode4 === 'string')\n return String.fromCharCode(Number.parseInt(unicode4, 16));\n // 8-digit unicode character\n if (typeof unicode8 === 'string') {\n let charCode = Number.parseInt(unicode8, 16);\n return charCode <= 0xFFFF ? String.fromCharCode(Number.parseInt(unicode8, 16)) :\n String.fromCharCode(0xD800 + ((charCode -= 0x10000) >> 10), 0xDC00 + (charCode & 0x3FF));\n }\n // fixed escape sequence\n if (escapedChar in escapeReplacements)\n return escapeReplacements[escapedChar];\n // invalid escape sequence\n invalid = true;\n return '';\n });\n return invalid ? null : replaced;\n }\n\n // ### `_parseLiteral` parses a literal into an unescaped value\n _parseLiteral(input) {\n // Ensure we have enough lookahead to identify triple-quoted strings\n if (input.length >= 3) {\n // Identify the opening quote(s)\n const opening = input.match(/^(?:\"\"\"|\"|'''|'|)/)[0];\n const openingLength = opening.length;\n\n // Find the next candidate closing quotes\n let closingPos = Math.max(this._literalClosingPos, openingLength);\n while ((closingPos = input.indexOf(opening, closingPos)) > 0) {\n // Count backslashes right before the closing quotes\n let backslashCount = 0;\n while (input[closingPos - backslashCount - 1] === '\\\\')\n backslashCount++;\n\n // An even number of backslashes (in particular 0)\n // means these are actual, non-escaped closing quotes\n if (backslashCount % 2 === 0) {\n // Extract and unescape the value\n const raw = input.substring(openingLength, closingPos);\n const lines = raw.split(/\\r\\n|\\r|\\n/).length - 1;\n const matchLength = closingPos + openingLength;\n // Only triple-quoted strings can be multi-line\n if (openingLength === 1 && lines !== 0 ||\n openingLength === 3 && this._lineMode)\n break;\n this._line += lines;\n return { value: this._unescape(raw), matchLength };\n }\n closingPos++;\n }\n this._literalClosingPos = input.length - openingLength + 1;\n }\n return { value: '', matchLength: 0 };\n }\n\n // ### `_syntaxError` creates a syntax error for the given issue\n _syntaxError(issue) {\n this._input = null;\n const err = new Error(`Unexpected \"${issue}\" on line ${this._line}.`);\n err.context = {\n token: undefined,\n line: this._line,\n previousToken: this.previousToken,\n };\n return err;\n }\n\n // ### Strips off any starting UTF BOM mark.\n _readStartingBom(input) {\n return input.startsWith('\\ufeff') ? input.substr(1) : input;\n }\n\n // ## Public methods\n\n // ### `tokenize` starts the transformation of an N3 document into an array of tokens.\n // The input can be a string or a stream.\n tokenize(input, callback) {\n this._line = 1;\n\n // If the input is a string, continuously emit tokens through the callback until the end\n if (typeof input === 'string') {\n this._input = this._readStartingBom(input);\n // If a callback was passed, asynchronously call it\n if (typeof callback === 'function')\n queue_microtask__WEBPACK_IMPORTED_MODULE_1___default()(() => this._tokenizeToEnd(callback, true));\n // If no callback was passed, tokenize synchronously and return\n else {\n const tokens = [];\n let error;\n this._tokenizeToEnd((e, t) => e ? (error = e) : tokens.push(t), true);\n if (error) throw error;\n return tokens;\n }\n }\n // Otherwise, the input must be a stream\n else {\n this._pendingBuffer = null;\n if (typeof input.setEncoding === 'function')\n input.setEncoding('utf8');\n // Adds the data chunk to the buffer and parses as far as possible\n input.on('data', data => {\n if (this._input !== null && data.length !== 0) {\n // Prepend any previous pending writes\n if (this._pendingBuffer) {\n data = buffer__WEBPACK_IMPORTED_MODULE_0__.Buffer.concat([this._pendingBuffer, data]);\n this._pendingBuffer = null;\n }\n // Hold if the buffer ends in an incomplete unicode sequence\n if (data[data.length - 1] & 0x80) {\n this._pendingBuffer = data;\n }\n // Otherwise, tokenize as far as possible\n else {\n // Only read a BOM at the start\n if (typeof this._input === 'undefined')\n this._input = this._readStartingBom(typeof data === 'string' ? data : data.toString());\n else\n this._input += data;\n this._tokenizeToEnd(callback, false);\n }\n }\n });\n // Parses until the end\n input.on('end', () => {\n if (typeof this._input === 'string')\n this._tokenizeToEnd(callback, true);\n });\n input.on('error', callback);\n }\n }\n}\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/n3/src/N3Lexer.js?");
|
|
160
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ N3Lexer)\n/* harmony export */ });\n/* harmony import */ var buffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\");\n/* harmony import */ var _IRIs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./IRIs */ \"./node_modules/n3/src/IRIs.js\");\n// **N3Lexer** tokenizes N3 documents.\n\n\n\nconst { xsd } = _IRIs__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n\n// Regular expression and replacement string to escape N3 strings\nconst escapeSequence = /\\\\u([a-fA-F0-9]{4})|\\\\U([a-fA-F0-9]{8})|\\\\([^])/g;\nconst escapeReplacements = {\n '\\\\': '\\\\', \"'\": \"'\", '\"': '\"',\n 'n': '\\n', 'r': '\\r', 't': '\\t', 'f': '\\f', 'b': '\\b',\n '_': '_', '~': '~', '.': '.', '-': '-', '!': '!', '$': '$', '&': '&',\n '(': '(', ')': ')', '*': '*', '+': '+', ',': ',', ';': ';', '=': '=',\n '/': '/', '?': '?', '#': '#', '@': '@', '%': '%',\n};\nconst illegalIriChars = /[\\x00-\\x20<>\\\\\"\\{\\}\\|\\^\\`]/;\n\nconst lineModeRegExps = {\n _iri: true,\n _unescapedIri: true,\n _simpleQuotedString: true,\n _langcode: true,\n _blank: true,\n _newline: true,\n _comment: true,\n _whitespace: true,\n _endOfFile: true,\n};\nconst invalidRegExp = /$0^/;\n\n// ## Constructor\nclass N3Lexer {\n constructor(options) {\n // ## Regular expressions\n // It's slightly faster to have these as properties than as in-scope variables\n this._iri = /^<((?:[^ <>{}\\\\]|\\\\[uU])+)>[ \\t]*/; // IRI with escape sequences; needs sanity check after unescaping\n this._unescapedIri = /^<([^\\x00-\\x20<>\\\\\"\\{\\}\\|\\^\\`]*)>[ \\t]*/; // IRI without escape sequences; no unescaping\n this._simpleQuotedString = /^\"([^\"\\\\\\r\\n]*)\"(?=[^\"])/; // string without escape sequences\n this._simpleApostropheString = /^'([^'\\\\\\r\\n]*)'(?=[^'])/;\n this._langcode = /^@([a-z]+(?:-[a-z0-9]+)*)(?=[^a-z0-9\\-])/i;\n this._prefix = /^((?:[A-Za-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:\\.?[\\-0-9A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)?:(?=[#\\s<])/;\n this._prefixed = /^((?:[A-Za-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:\\.?[\\-0-9A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)?:((?:(?:[0-:A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff]|%[0-9a-fA-F]{2}|\\\\[!#-\\/;=?\\-@_~])(?:(?:[\\.\\-0-:A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff]|%[0-9a-fA-F]{2}|\\\\[!#-\\/;=?\\-@_~])*(?:[\\-0-:A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff]|%[0-9a-fA-F]{2}|\\\\[!#-\\/;=?\\-@_~]))?)?)(?:[ \\t]+|(?=\\.?[,;!\\^\\s#()\\[\\]\\{\\}\"'<>]))/;\n this._variable = /^\\?(?:(?:[A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:[\\-0-:A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)(?=[.,;!\\^\\s#()\\[\\]\\{\\}\"'<>])/;\n this._blank = /^_:((?:[0-9A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:\\.?[\\-0-9A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)(?:[ \\t]+|(?=\\.?[,;:\\s#()\\[\\]\\{\\}\"'<>]))/;\n this._number = /^[\\-+]?(?:(\\d+\\.\\d*|\\.?\\d+)[eE][\\-+]?|\\d*(\\.)?)\\d+(?=\\.?[,;:\\s#()\\[\\]\\{\\}\"'<>])/;\n this._boolean = /^(?:true|false)(?=[.,;\\s#()\\[\\]\\{\\}\"'<>])/;\n this._keyword = /^@[a-z]+(?=[\\s#<:])/i;\n this._sparqlKeyword = /^(?:PREFIX|BASE|GRAPH)(?=[\\s#<])/i;\n this._shortPredicates = /^a(?=[\\s#()\\[\\]\\{\\}\"'<>])/;\n this._newline = /^[ \\t]*(?:#[^\\n\\r]*)?(?:\\r\\n|\\n|\\r)[ \\t]*/;\n this._comment = /#([^\\n\\r]*)/;\n this._whitespace = /^[ \\t]+/;\n this._endOfFile = /^(?:#[^\\n\\r]*)?$/;\n options = options || {};\n\n // Whether the log:isImpliedBy predicate is supported\n this._isImpliedBy = options.isImpliedBy;\n\n // In line mode (N-Triples or N-Quads), only simple features may be parsed\n if (this._lineMode = !!options.lineMode) {\n this._n3Mode = false;\n // Don't tokenize special literals\n for (const key in this) {\n if (!(key in lineModeRegExps) && this[key] instanceof RegExp)\n this[key] = invalidRegExp;\n }\n }\n // When not in line mode, enable N3 functionality by default\n else {\n this._n3Mode = options.n3 !== false;\n }\n // Don't output comment tokens by default\n this.comments = !!options.comments;\n // Cache the last tested closing position of long literals\n this._literalClosingPos = 0;\n }\n\n // ## Private methods\n\n // ### `_tokenizeToEnd` tokenizes as for as possible, emitting tokens through the callback\n _tokenizeToEnd(callback, inputFinished) {\n // Continue parsing as far as possible; the loop will return eventually\n let input = this._input;\n let currentLineLength = input.length;\n while (true) {\n // Count and skip whitespace lines\n let whiteSpaceMatch, comment;\n while (whiteSpaceMatch = this._newline.exec(input)) {\n // Try to find a comment\n if (this.comments && (comment = this._comment.exec(whiteSpaceMatch[0])))\n emitToken('comment', comment[1], '', this._line, whiteSpaceMatch[0].length);\n // Advance the input\n input = input.substr(whiteSpaceMatch[0].length, input.length);\n currentLineLength = input.length;\n this._line++;\n }\n // Skip whitespace on current line\n if (!whiteSpaceMatch && (whiteSpaceMatch = this._whitespace.exec(input)))\n input = input.substr(whiteSpaceMatch[0].length, input.length);\n\n // Stop for now if we're at the end\n if (this._endOfFile.test(input)) {\n // If the input is finished, emit EOF\n if (inputFinished) {\n // Try to find a final comment\n if (this.comments && (comment = this._comment.exec(input)))\n emitToken('comment', comment[1], '', this._line, input.length);\n input = null;\n emitToken('eof', '', '', this._line, 0);\n }\n return this._input = input;\n }\n\n // Look for specific token types based on the first character\n const line = this._line, firstChar = input[0];\n let type = '', value = '', prefix = '',\n match = null, matchLength = 0, inconclusive = false;\n switch (firstChar) {\n case '^':\n // We need at least 3 tokens lookahead to distinguish ^^<IRI> and ^^pre:fixed\n if (input.length < 3)\n break;\n // Try to match a type\n else if (input[1] === '^') {\n this._previousMarker = '^^';\n // Move to type IRI or prefixed name\n input = input.substr(2);\n if (input[0] !== '<') {\n inconclusive = true;\n break;\n }\n }\n // If no type, it must be a path expression\n else {\n if (this._n3Mode) {\n matchLength = 1;\n type = '^';\n }\n break;\n }\n // Fall through in case the type is an IRI\n case '<':\n // Try to find a full IRI without escape sequences\n if (match = this._unescapedIri.exec(input))\n type = 'IRI', value = match[1];\n // Try to find a full IRI with escape sequences\n else if (match = this._iri.exec(input)) {\n value = this._unescape(match[1]);\n if (value === null || illegalIriChars.test(value))\n return reportSyntaxError(this);\n type = 'IRI';\n }\n // Try to find a nested triple\n else if (input.length > 1 && input[1] === '<')\n type = '<<', matchLength = 2;\n // Try to find a backwards implication arrow\n else if (this._n3Mode && input.length > 1 && input[1] === '=') {\n matchLength = 2;\n if (this._isImpliedBy) type = 'abbreviation', value = '<';\n else type = 'inverse', value = '>';\n }\n break;\n\n case '>':\n if (input.length > 1 && input[1] === '>')\n type = '>>', matchLength = 2;\n break;\n\n case '_':\n // Try to find a blank node. Since it can contain (but not end with) a dot,\n // we always need a non-dot character before deciding it is a blank node.\n // Therefore, try inserting a space if we're at the end of the input.\n if ((match = this._blank.exec(input)) ||\n inputFinished && (match = this._blank.exec(`${input} `)))\n type = 'blank', prefix = '_', value = match[1];\n break;\n\n case '\"':\n // Try to find a literal without escape sequences\n if (match = this._simpleQuotedString.exec(input))\n value = match[1];\n // Try to find a literal wrapped in three pairs of quotes\n else {\n ({ value, matchLength } = this._parseLiteral(input));\n if (value === null)\n return reportSyntaxError(this);\n }\n if (match !== null || matchLength !== 0) {\n type = 'literal';\n this._literalClosingPos = 0;\n }\n break;\n\n case \"'\":\n if (!this._lineMode) {\n // Try to find a literal without escape sequences\n if (match = this._simpleApostropheString.exec(input))\n value = match[1];\n // Try to find a literal wrapped in three pairs of quotes\n else {\n ({ value, matchLength } = this._parseLiteral(input));\n if (value === null)\n return reportSyntaxError(this);\n }\n if (match !== null || matchLength !== 0) {\n type = 'literal';\n this._literalClosingPos = 0;\n }\n }\n break;\n\n case '?':\n // Try to find a variable\n if (this._n3Mode && (match = this._variable.exec(input)))\n type = 'var', value = match[0];\n break;\n\n case '@':\n // Try to find a language code\n if (this._previousMarker === 'literal' && (match = this._langcode.exec(input)))\n type = 'langcode', value = match[1];\n // Try to find a keyword\n else if (match = this._keyword.exec(input))\n type = match[0];\n break;\n\n case '.':\n // Try to find a dot as punctuation\n if (input.length === 1 ? inputFinished : (input[1] < '0' || input[1] > '9')) {\n type = '.';\n matchLength = 1;\n break;\n }\n // Fall through to numerical case (could be a decimal dot)\n\n case '0':\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n case '+':\n case '-':\n // Try to find a number. Since it can contain (but not end with) a dot,\n // we always need a non-dot character before deciding it is a number.\n // Therefore, try inserting a space if we're at the end of the input.\n if (match = this._number.exec(input) ||\n inputFinished && (match = this._number.exec(`${input} `))) {\n type = 'literal', value = match[0];\n prefix = (typeof match[1] === 'string' ? xsd.double :\n (typeof match[2] === 'string' ? xsd.decimal : xsd.integer));\n }\n break;\n\n case 'B':\n case 'b':\n case 'p':\n case 'P':\n case 'G':\n case 'g':\n // Try to find a SPARQL-style keyword\n if (match = this._sparqlKeyword.exec(input))\n type = match[0].toUpperCase();\n else\n inconclusive = true;\n break;\n\n case 'f':\n case 't':\n // Try to match a boolean\n if (match = this._boolean.exec(input))\n type = 'literal', value = match[0], prefix = xsd.boolean;\n else\n inconclusive = true;\n break;\n\n case 'a':\n // Try to find an abbreviated predicate\n if (match = this._shortPredicates.exec(input))\n type = 'abbreviation', value = 'a';\n else\n inconclusive = true;\n break;\n\n case '=':\n // Try to find an implication arrow or equals sign\n if (this._n3Mode && input.length > 1) {\n type = 'abbreviation';\n if (input[1] !== '>')\n matchLength = 1, value = '=';\n else\n matchLength = 2, value = '>';\n }\n break;\n\n case '!':\n if (!this._n3Mode)\n break;\n case ',':\n case ';':\n case '[':\n case ']':\n case '(':\n case ')':\n case '}':\n if (!this._lineMode) {\n matchLength = 1;\n type = firstChar;\n }\n break;\n case '{':\n // We need at least 2 tokens lookahead to distinguish \"{|\" and \"{ \"\n if (!this._lineMode && input.length >= 2) {\n // Try to find a quoted triple annotation start\n if (input[1] === '|')\n type = '{|', matchLength = 2;\n else\n type = firstChar, matchLength = 1;\n }\n break;\n case '|':\n // We need 2 tokens lookahead to parse \"|}\"\n // Try to find a quoted triple annotation end\n if (input.length >= 2 && input[1] === '}')\n type = '|}', matchLength = 2;\n break;\n\n default:\n inconclusive = true;\n }\n\n // Some first characters do not allow an immediate decision, so inspect more\n if (inconclusive) {\n // Try to find a prefix\n if ((this._previousMarker === '@prefix' || this._previousMarker === 'PREFIX') &&\n (match = this._prefix.exec(input)))\n type = 'prefix', value = match[1] || '';\n // Try to find a prefixed name. Since it can contain (but not end with) a dot,\n // we always need a non-dot character before deciding it is a prefixed name.\n // Therefore, try inserting a space if we're at the end of the input.\n else if ((match = this._prefixed.exec(input)) ||\n inputFinished && (match = this._prefixed.exec(`${input} `)))\n type = 'prefixed', prefix = match[1] || '', value = this._unescape(match[2]);\n }\n\n // A type token is special: it can only be emitted after an IRI or prefixed name is read\n if (this._previousMarker === '^^') {\n switch (type) {\n case 'prefixed': type = 'type'; break;\n case 'IRI': type = 'typeIRI'; break;\n default: type = '';\n }\n }\n\n // What if nothing of the above was found?\n if (!type) {\n // We could be in streaming mode, and then we just wait for more input to arrive.\n // Otherwise, a syntax error has occurred in the input.\n // One exception: error on an unaccounted linebreak (= not inside a triple-quoted literal).\n if (inputFinished || (!/^'''|^\"\"\"/.test(input) && /\\n|\\r/.test(input)))\n return reportSyntaxError(this);\n else\n return this._input = input;\n }\n\n // Emit the parsed token\n const length = matchLength || match[0].length;\n const token = emitToken(type, value, prefix, line, length);\n this.previousToken = token;\n this._previousMarker = type;\n\n // Advance to next part to tokenize\n input = input.substr(length, input.length);\n }\n\n // Emits the token through the callback\n function emitToken(type, value, prefix, line, length) {\n const start = input ? currentLineLength - input.length : currentLineLength;\n const end = start + length;\n const token = { type, value, prefix, line, start, end };\n callback(null, token);\n return token;\n }\n // Signals the syntax error through the callback\n function reportSyntaxError(self) { callback(self._syntaxError(/^\\S*/.exec(input)[0])); }\n }\n\n // ### `_unescape` replaces N3 escape codes by their corresponding characters\n _unescape(item) {\n let invalid = false;\n const replaced = item.replace(escapeSequence, (sequence, unicode4, unicode8, escapedChar) => {\n // 4-digit unicode character\n if (typeof unicode4 === 'string')\n return String.fromCharCode(Number.parseInt(unicode4, 16));\n // 8-digit unicode character\n if (typeof unicode8 === 'string') {\n let charCode = Number.parseInt(unicode8, 16);\n return charCode <= 0xFFFF ? String.fromCharCode(Number.parseInt(unicode8, 16)) :\n String.fromCharCode(0xD800 + ((charCode -= 0x10000) >> 10), 0xDC00 + (charCode & 0x3FF));\n }\n // fixed escape sequence\n if (escapedChar in escapeReplacements)\n return escapeReplacements[escapedChar];\n // invalid escape sequence\n invalid = true;\n return '';\n });\n return invalid ? null : replaced;\n }\n\n // ### `_parseLiteral` parses a literal into an unescaped value\n _parseLiteral(input) {\n // Ensure we have enough lookahead to identify triple-quoted strings\n if (input.length >= 3) {\n // Identify the opening quote(s)\n const opening = input.match(/^(?:\"\"\"|\"|'''|'|)/)[0];\n const openingLength = opening.length;\n\n // Find the next candidate closing quotes\n let closingPos = Math.max(this._literalClosingPos, openingLength);\n while ((closingPos = input.indexOf(opening, closingPos)) > 0) {\n // Count backslashes right before the closing quotes\n let backslashCount = 0;\n while (input[closingPos - backslashCount - 1] === '\\\\')\n backslashCount++;\n\n // An even number of backslashes (in particular 0)\n // means these are actual, non-escaped closing quotes\n if (backslashCount % 2 === 0) {\n // Extract and unescape the value\n const raw = input.substring(openingLength, closingPos);\n const lines = raw.split(/\\r\\n|\\r|\\n/).length - 1;\n const matchLength = closingPos + openingLength;\n // Only triple-quoted strings can be multi-line\n if (openingLength === 1 && lines !== 0 ||\n openingLength === 3 && this._lineMode)\n break;\n this._line += lines;\n return { value: this._unescape(raw), matchLength };\n }\n closingPos++;\n }\n this._literalClosingPos = input.length - openingLength + 1;\n }\n return { value: '', matchLength: 0 };\n }\n\n // ### `_syntaxError` creates a syntax error for the given issue\n _syntaxError(issue) {\n this._input = null;\n const err = new Error(`Unexpected \"${issue}\" on line ${this._line}.`);\n err.context = {\n token: undefined,\n line: this._line,\n previousToken: this.previousToken,\n };\n return err;\n }\n\n // ### Strips off any starting UTF BOM mark.\n _readStartingBom(input) {\n return input.startsWith('\\ufeff') ? input.substr(1) : input;\n }\n\n // ## Public methods\n\n // ### `tokenize` starts the transformation of an N3 document into an array of tokens.\n // The input can be a string or a stream.\n tokenize(input, callback) {\n this._line = 1;\n\n // If the input is a string, continuously emit tokens through the callback until the end\n if (typeof input === 'string') {\n this._input = this._readStartingBom(input);\n // If a callback was passed, asynchronously call it\n if (typeof callback === 'function')\n queueMicrotask(() => this._tokenizeToEnd(callback, true));\n // If no callback was passed, tokenize synchronously and return\n else {\n const tokens = [];\n let error;\n this._tokenizeToEnd((e, t) => e ? (error = e) : tokens.push(t), true);\n if (error) throw error;\n return tokens;\n }\n }\n // Otherwise, the input must be a stream\n else {\n this._pendingBuffer = null;\n if (typeof input.setEncoding === 'function')\n input.setEncoding('utf8');\n // Adds the data chunk to the buffer and parses as far as possible\n input.on('data', data => {\n if (this._input !== null && data.length !== 0) {\n // Prepend any previous pending writes\n if (this._pendingBuffer) {\n data = buffer__WEBPACK_IMPORTED_MODULE_0__.Buffer.concat([this._pendingBuffer, data]);\n this._pendingBuffer = null;\n }\n // Hold if the buffer ends in an incomplete unicode sequence\n if (data[data.length - 1] & 0x80) {\n this._pendingBuffer = data;\n }\n // Otherwise, tokenize as far as possible\n else {\n // Only read a BOM at the start\n if (typeof this._input === 'undefined')\n this._input = this._readStartingBom(typeof data === 'string' ? data : data.toString());\n else\n this._input += data;\n this._tokenizeToEnd(callback, false);\n }\n }\n });\n // Parses until the end\n input.on('end', () => {\n if (typeof this._input === 'string')\n this._tokenizeToEnd(callback, true);\n });\n input.on('error', callback);\n }\n }\n}\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/n3/src/N3Lexer.js?");
|
|
117
161
|
|
|
118
162
|
/***/ }),
|
|
119
163
|
|
|
@@ -146,7 +190,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
146
190
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
147
191
|
|
|
148
192
|
"use strict";
|
|
149
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ N3EntityIndex: () => (/* binding */ N3EntityIndex),\n/* harmony export */ \"default\": () => (/* binding */ N3Store)\n/* harmony export */ });\n/* harmony import */ var readable_stream__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! readable-stream */ \"./node_modules/readable-stream/lib/ours/browser.js\");\n/* harmony import */ var readable_stream__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(readable_stream__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _N3DataFactory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./N3DataFactory */ \"./node_modules/n3/src/N3DataFactory.js\");\n/* harmony import */ var _IRIs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./IRIs */ \"./node_modules/n3/src/IRIs.js\");\n/* harmony import */ var _N3Util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./N3Util */ \"./node_modules/n3/src/N3Util.js\");\n/* harmony import */ var _N3Writer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./N3Writer */ \"./node_modules/n3/src/N3Writer.js\");\n// **N3Store** objects store N3 quads by graph in memory.\n\n\n\n\n\n\nconst ITERATOR = Symbol('iter');\n\nfunction merge(target, source, depth = 4) {\n if (depth === 0)\n return Object.assign(target, source);\n\n for (const key in source)\n target[key] = merge(target[key] || Object.create(null), source[key], depth - 1);\n\n return target;\n}\n\n/**\n * Determines the intersection of the `_graphs` index s1 and s2.\n * s1 and s2 *must* belong to Stores that share an `_entityIndex`.\n *\n * False is returned when there is no intersection; this should\n * *not* be set as the value for an index.\n */\nfunction intersect(s1, s2, depth = 4) {\n let target = false;\n\n for (const key in s1) {\n if (key in s2) {\n const intersection = depth === 0 ? null : intersect(s1[key], s2[key], depth - 1);\n if (intersection !== false) {\n target = target || Object.create(null);\n target[key] = intersection;\n }\n // Depth 3 is the 'subjects', 'predicates' and 'objects' keys.\n // If the 'subjects' index is empty, so will the 'predicates' and 'objects' index.\n else if (depth === 3) {\n return false;\n }\n }\n }\n\n return target;\n}\n\n/**\n * Determines the difference of the `_graphs` index s1 and s2.\n * s1 and s2 *must* belong to Stores that share an `_entityIndex`.\n *\n * False is returned when there is no difference; this should\n * *not* be set as the value for an index.\n */\nfunction difference(s1, s2, depth = 4) {\n let target = false;\n\n for (const key in s1) {\n // When the key is not in the index, then none of the triples defined by s1[key] are\n // in s2 and so we want to copy them over to the resultant store.\n if (!(key in s2)) {\n target = target || Object.create(null);\n target[key] = depth === 0 ? null : merge({}, s1[key], depth - 1);\n }\n else if (depth !== 0) {\n const diff = difference(s1[key], s2[key], depth - 1);\n if (diff !== false) {\n target = target || Object.create(null);\n target[key] = diff;\n }\n // Depth 3 is the 'subjects', 'predicates' and 'objects' keys.\n // If the 'subjects' index is empty, so will the 'predicates' and 'objects' index.\n else if (depth === 3) {\n return false;\n }\n }\n }\n\n return target;\n}\n\n// ## Constructor\nclass N3EntityIndex {\n constructor(options = {}) {\n this._id = 1;\n // `_ids` maps entities such as `http://xmlns.com/foaf/0.1/name` to numbers,\n // saving memory by using only numbers as keys in `_graphs`\n this._ids = Object.create(null);\n this._ids[''] = 1;\n // inverse of `_ids`\n this._entities = Object.create(null);\n this._entities[1] = '';\n // `_blankNodeIndex` is the index of the last automatically named blank node\n this._blankNodeIndex = 0;\n this._factory = options.factory || _N3DataFactory__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n }\n\n _termFromId(id) {\n if (id[0] === '.') {\n const entities = this._entities;\n const terms = id.split('.');\n const q = this._factory.quad(\n this._termFromId(entities[terms[1]]),\n this._termFromId(entities[terms[2]]),\n this._termFromId(entities[terms[3]]),\n terms[4] && this._termFromId(entities[terms[4]]),\n );\n return q;\n }\n return (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termFromId)(id, this._factory);\n }\n\n _termToNumericId(term) {\n if (term.termType === 'Quad') {\n const s = this._termToNumericId(term.subject),\n p = this._termToNumericId(term.predicate),\n o = this._termToNumericId(term.object);\n let g;\n\n return s && p && o && ((0,_N3Util__WEBPACK_IMPORTED_MODULE_2__.isDefaultGraph)(term.graph) || (g = this._termToNumericId(term.graph))) &&\n this._ids[g ? `.${s}.${p}.${o}.${g}` : `.${s}.${p}.${o}`];\n }\n return this._ids[(0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(term)];\n }\n\n _termToNewNumericId(term) {\n // This assumes that no graph term is present - we may wish to error if there is one\n const str = term && term.termType === 'Quad' ?\n `.${this._termToNewNumericId(term.subject)}.${this._termToNewNumericId(term.predicate)}.${this._termToNewNumericId(term.object)}${\n (0,_N3Util__WEBPACK_IMPORTED_MODULE_2__.isDefaultGraph)(term.graph) ? '' : `.${this._termToNewNumericId(term.graph)}`\n }`\n : (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(term);\n\n return this._ids[str] || (this._ids[this._entities[++this._id] = str] = this._id);\n }\n\n createBlankNode(suggestedName) {\n let name, index;\n // Generate a name based on the suggested name\n if (suggestedName) {\n name = suggestedName = `_:${suggestedName}`, index = 1;\n while (this._ids[name])\n name = suggestedName + index++;\n }\n // Generate a generic blank node name\n else {\n do { name = `_:b${this._blankNodeIndex++}`; }\n while (this._ids[name]);\n }\n // Add the blank node to the entities, avoiding the generation of duplicates\n this._ids[name] = ++this._id;\n this._entities[this._id] = name;\n return this._factory.blankNode(name.substr(2));\n }\n}\n\n// ## Constructor\nclass N3Store {\n constructor(quads, options) {\n // The number of quads is initially zero\n this._size = 0;\n // `_graphs` contains subject, predicate, and object indexes per graph\n this._graphs = Object.create(null);\n\n // Shift parameters if `quads` is not given\n if (!options && quads && !quads[0])\n options = quads, quads = null;\n options = options || {};\n this._factory = options.factory || _N3DataFactory__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n this._entityIndex = options.entityIndex || new N3EntityIndex({ factory: this._factory });\n this._entities = this._entityIndex._entities;\n this._termFromId = this._entityIndex._termFromId.bind(this._entityIndex);\n this._termToNumericId = this._entityIndex._termToNumericId.bind(this._entityIndex);\n this._termToNewNumericId = this._entityIndex._termToNewNumericId.bind(this._entityIndex);\n\n // Add quads if passed\n if (quads)\n this.addQuads(quads);\n }\n\n // ## Public properties\n\n // ### `size` returns the number of quads in the store\n get size() {\n // Return the quad count if if was cached\n let size = this._size;\n if (size !== null)\n return size;\n\n // Calculate the number of quads by counting to the deepest level\n size = 0;\n const graphs = this._graphs;\n let subjects, subject;\n for (const graphKey in graphs)\n for (const subjectKey in (subjects = graphs[graphKey].subjects))\n for (const predicateKey in (subject = subjects[subjectKey]))\n size += Object.keys(subject[predicateKey]).length;\n return this._size = size;\n }\n\n // ## Private methods\n\n // ### `_addToIndex` adds a quad to a three-layered index.\n // Returns if the index has changed, if the entry did not already exist.\n _addToIndex(index0, key0, key1, key2) {\n // Create layers as necessary\n const index1 = index0[key0] || (index0[key0] = {});\n const index2 = index1[key1] || (index1[key1] = {});\n // Setting the key to _any_ value signals the presence of the quad\n const existed = key2 in index2;\n if (!existed)\n index2[key2] = null;\n return !existed;\n }\n\n // ### `_removeFromIndex` removes a quad from a three-layered index\n _removeFromIndex(index0, key0, key1, key2) {\n // Remove the quad from the index\n const index1 = index0[key0], index2 = index1[key1];\n delete index2[key2];\n\n // Remove intermediary index layers if they are empty\n for (const key in index2) return;\n delete index1[key1];\n for (const key in index1) return;\n delete index0[key0];\n }\n\n // ### `_findInIndex` finds a set of quads in a three-layered index.\n // The index base is `index0` and the keys at each level are `key0`, `key1`, and `key2`.\n // Any of these keys can be undefined, which is interpreted as a wildcard.\n // `name0`, `name1`, and `name2` are the names of the keys at each level,\n // used when reconstructing the resulting quad\n // (for instance: _subject_, _predicate_, and _object_).\n // Finally, `graphId` will be the graph of the created quads.\n *_findInIndex(index0, key0, key1, key2, name0, name1, name2, graphId) {\n let tmp, index1, index2;\n const entityKeys = this._entities;\n const graph = this._termFromId(entityKeys[graphId]);\n const parts = { subject: null, predicate: null, object: null };\n\n // If a key is specified, use only that part of index 0.\n if (key0) (tmp = index0, index0 = {})[key0] = tmp[key0];\n for (const value0 in index0) {\n if (index1 = index0[value0]) {\n parts[name0] = this._termFromId(entityKeys[value0]);\n // If a key is specified, use only that part of index 1.\n if (key1) (tmp = index1, index1 = {})[key1] = tmp[key1];\n for (const value1 in index1) {\n if (index2 = index1[value1]) {\n parts[name1] = this._termFromId(entityKeys[value1]);\n // If a key is specified, use only that part of index 2, if it exists.\n const values = key2 ? (key2 in index2 ? [key2] : []) : Object.keys(index2);\n // Create quads for all items found in index 2.\n for (let l = 0; l < values.length; l++) {\n parts[name2] = this._termFromId(entityKeys[values[l]]);\n yield this._factory.quad(parts.subject, parts.predicate, parts.object, graph);\n }\n }\n }\n }\n }\n }\n\n // ### `_loop` executes the callback on all keys of index 0\n _loop(index0, callback) {\n for (const key0 in index0)\n callback(key0);\n }\n\n // ### `_loopByKey0` executes the callback on all keys of a certain entry in index 0\n _loopByKey0(index0, key0, callback) {\n let index1, key1;\n if (index1 = index0[key0]) {\n for (key1 in index1)\n callback(key1);\n }\n }\n\n // ### `_loopByKey1` executes the callback on given keys of all entries in index 0\n _loopByKey1(index0, key1, callback) {\n let key0, index1;\n for (key0 in index0) {\n index1 = index0[key0];\n if (index1[key1])\n callback(key0);\n }\n }\n\n // ### `_loopBy2Keys` executes the callback on given keys of certain entries in index 2\n _loopBy2Keys(index0, key0, key1, callback) {\n let index1, index2, key2;\n if ((index1 = index0[key0]) && (index2 = index1[key1])) {\n for (key2 in index2)\n callback(key2);\n }\n }\n\n // ### `_countInIndex` counts matching quads in a three-layered index.\n // The index base is `index0` and the keys at each level are `key0`, `key1`, and `key2`.\n // Any of these keys can be undefined, which is interpreted as a wildcard.\n _countInIndex(index0, key0, key1, key2) {\n let count = 0, tmp, index1, index2;\n\n // If a key is specified, count only that part of index 0\n if (key0) (tmp = index0, index0 = {})[key0] = tmp[key0];\n for (const value0 in index0) {\n if (index1 = index0[value0]) {\n // If a key is specified, count only that part of index 1\n if (key1) (tmp = index1, index1 = {})[key1] = tmp[key1];\n for (const value1 in index1) {\n if (index2 = index1[value1]) {\n // If a key is specified, count the quad if it exists\n if (key2) (key2 in index2) && count++;\n // Otherwise, count all quads\n else count += Object.keys(index2).length;\n }\n }\n }\n }\n return count;\n }\n\n // ### `_getGraphs` returns an array with the given graph,\n // or all graphs if the argument is null or undefined.\n _getGraphs(graph) {\n graph = graph === '' ? 1 : (graph && (this._termToNumericId(graph) || -1));\n return typeof graph !== 'number' ? this._graphs : { [graph]: this._graphs[graph] };\n }\n\n // ### `_uniqueEntities` returns a function that accepts an entity ID\n // and passes the corresponding entity to callback if it hasn't occurred before.\n _uniqueEntities(callback) {\n const uniqueIds = Object.create(null);\n return id => {\n if (!(id in uniqueIds)) {\n uniqueIds[id] = true;\n callback(this._termFromId(this._entities[id], this._factory));\n }\n };\n }\n\n // ## Public methods\n\n // ### `add` adds the specified quad to the dataset.\n // Returns the dataset instance it was called on.\n // Existing quads, as defined in Quad.equals, will be ignored.\n add(quad) {\n this.addQuad(quad);\n return this;\n }\n\n // ### `addQuad` adds a new quad to the store.\n // Returns if the quad index has changed, if the quad did not already exist.\n addQuad(subject, predicate, object, graph) {\n // Shift arguments if a quad object is given instead of components\n if (!predicate)\n graph = subject.graph, object = subject.object,\n predicate = subject.predicate, subject = subject.subject;\n\n // Convert terms to internal string representation\n graph = graph ? this._termToNewNumericId(graph) : 1;\n\n // Find the graph that will contain the triple\n let graphItem = this._graphs[graph];\n // Create the graph if it doesn't exist yet\n if (!graphItem) {\n graphItem = this._graphs[graph] = { subjects: {}, predicates: {}, objects: {} };\n // Freezing a graph helps subsequent `add` performance,\n // and properties will never be modified anyway\n Object.freeze(graphItem);\n }\n\n // Since entities can often be long IRIs, we avoid storing them in every index.\n // Instead, we have a separate index that maps entities to numbers,\n // which are then used as keys in the other indexes.\n subject = this._termToNewNumericId(subject);\n predicate = this._termToNewNumericId(predicate);\n object = this._termToNewNumericId(object);\n\n if (!this._addToIndex(graphItem.subjects, subject, predicate, object))\n return false;\n this._addToIndex(graphItem.predicates, predicate, object, subject);\n this._addToIndex(graphItem.objects, object, subject, predicate);\n\n // The cached quad count is now invalid\n this._size = null;\n return true;\n }\n\n // ### `addQuads` adds multiple quads to the store\n addQuads(quads) {\n for (let i = 0; i < quads.length; i++)\n this.addQuad(quads[i]);\n }\n\n // ### `delete` removes the specified quad from the dataset.\n // Returns the dataset instance it was called on.\n delete(quad) {\n this.removeQuad(quad);\n return this;\n }\n\n // ### `has` determines whether a dataset includes a certain quad or quad pattern.\n has(subjectOrQuad, predicate, object, graph) {\n if (subjectOrQuad && subjectOrQuad.subject)\n ({ subject: subjectOrQuad, predicate, object, graph } = subjectOrQuad);\n return !this.readQuads(subjectOrQuad, predicate, object, graph).next().done;\n }\n\n // ### `import` adds a stream of quads to the store\n import(stream) {\n stream.on('data', quad => { this.addQuad(quad); });\n return stream;\n }\n\n // ### `removeQuad` removes a quad from the store if it exists\n removeQuad(subject, predicate, object, graph) {\n // Shift arguments if a quad object is given instead of components\n if (!predicate)\n ({ subject, predicate, object, graph } = subject);\n // Convert terms to internal string representation\n graph = graph ? this._termToNumericId(graph) : 1;\n\n // Find internal identifiers for all components\n // and verify the quad exists.\n const graphs = this._graphs;\n let graphItem, subjects, predicates;\n if (!(subject = subject && this._termToNumericId(subject)) || !(predicate = predicate && this._termToNumericId(predicate)) ||\n !(object = object && this._termToNumericId(object)) || !(graphItem = graphs[graph]) ||\n !(subjects = graphItem.subjects[subject]) ||\n !(predicates = subjects[predicate]) ||\n !(object in predicates))\n return false;\n\n // Remove it from all indexes\n this._removeFromIndex(graphItem.subjects, subject, predicate, object);\n this._removeFromIndex(graphItem.predicates, predicate, object, subject);\n this._removeFromIndex(graphItem.objects, object, subject, predicate);\n if (this._size !== null) this._size--;\n\n // Remove the graph if it is empty\n for (subject in graphItem.subjects) return true;\n delete graphs[graph];\n return true;\n }\n\n // ### `removeQuads` removes multiple quads from the store\n removeQuads(quads) {\n for (let i = 0; i < quads.length; i++)\n this.removeQuad(quads[i]);\n }\n\n // ### `remove` removes a stream of quads from the store\n remove(stream) {\n stream.on('data', quad => { this.removeQuad(quad); });\n return stream;\n }\n\n // ### `removeMatches` removes all matching quads from the store\n // Setting any field to `undefined` or `null` indicates a wildcard.\n removeMatches(subject, predicate, object, graph) {\n const stream = new readable_stream__WEBPACK_IMPORTED_MODULE_0__.Readable({ objectMode: true });\n\n const iterable = this.readQuads(subject, predicate, object, graph);\n stream._read = size => {\n while (--size >= 0) {\n const { done, value } = iterable.next();\n if (done) {\n stream.push(null);\n return;\n }\n stream.push(value);\n }\n };\n\n return this.remove(stream);\n }\n\n // ### `deleteGraph` removes all triples with the given graph from the store\n deleteGraph(graph) {\n return this.removeMatches(null, null, null, graph);\n }\n\n // ### `getQuads` returns an array of quads matching a pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getQuads(subject, predicate, object, graph) {\n return [...this.readQuads(subject, predicate, object, graph)];\n }\n\n /**\n * `readQuads` returns a generator of quads matching a pattern.\n * Setting any field to `undefined` or `null` indicates a wildcard.\n * @deprecated Use `match` instead.\n */\n *readQuads(subject, predicate, object, graph) {\n const graphs = this._getGraphs(graph);\n let content, subjectId, predicateId, objectId;\n\n // Translate IRIs to internal index keys.\n if (subject && !(subjectId = this._termToNumericId(subject)) ||\n predicate && !(predicateId = this._termToNumericId(predicate)) ||\n object && !(objectId = this._termToNumericId(object)))\n return;\n\n for (const graphId in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graphId]) {\n // Choose the optimal index, based on what fields are present\n if (subjectId) {\n if (objectId)\n // If subject and object are given, the object index will be the fastest\n yield* this._findInIndex(content.objects, objectId, subjectId, predicateId,\n 'object', 'subject', 'predicate', graphId);\n else\n // If only subject and possibly predicate are given, the subject index will be the fastest\n yield* this._findInIndex(content.subjects, subjectId, predicateId, null,\n 'subject', 'predicate', 'object', graphId);\n }\n else if (predicateId)\n // If only predicate and possibly object are given, the predicate index will be the fastest\n yield* this._findInIndex(content.predicates, predicateId, objectId, null,\n 'predicate', 'object', 'subject', graphId);\n else if (objectId)\n // If only object is given, the object index will be the fastest\n yield* this._findInIndex(content.objects, objectId, null, null,\n 'object', 'subject', 'predicate', graphId);\n else\n // If nothing is given, iterate subjects and predicates first\n yield* this._findInIndex(content.subjects, null, null, null,\n 'subject', 'predicate', 'object', graphId);\n }\n }\n }\n\n // ### `match` returns a new dataset that is comprised of all quads in the current instance matching the given arguments.\n // The logic described in Quad Matching is applied for each quad in this dataset to check if it should be included in the output dataset.\n // Note: This method always returns a new DatasetCore, even if that dataset contains no quads.\n // Note: Since a DatasetCore is an unordered set, the order of the quads within the returned sequence is arbitrary.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n // For backwards compatibility, the object return also implements the Readable stream interface.\n match(subject, predicate, object, graph) {\n return new DatasetCoreAndReadableStream(this, subject, predicate, object, graph, { entityIndex: this._entityIndex });\n }\n\n // ### `countQuads` returns the number of quads matching a pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n countQuads(subject, predicate, object, graph) {\n const graphs = this._getGraphs(graph);\n let count = 0, content, subjectId, predicateId, objectId;\n\n // Translate IRIs to internal index keys.\n if (subject && !(subjectId = this._termToNumericId(subject)) ||\n predicate && !(predicateId = this._termToNumericId(predicate)) ||\n object && !(objectId = this._termToNumericId(object)))\n return 0;\n\n for (const graphId in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graphId]) {\n // Choose the optimal index, based on what fields are present\n if (subject) {\n if (object)\n // If subject and object are given, the object index will be the fastest\n count += this._countInIndex(content.objects, objectId, subjectId, predicateId);\n else\n // If only subject and possibly predicate are given, the subject index will be the fastest\n count += this._countInIndex(content.subjects, subjectId, predicateId, objectId);\n }\n else if (predicate) {\n // If only predicate and possibly object are given, the predicate index will be the fastest\n count += this._countInIndex(content.predicates, predicateId, objectId, subjectId);\n }\n else {\n // If only object is possibly given, the object index will be the fastest\n count += this._countInIndex(content.objects, objectId, subjectId, predicateId);\n }\n }\n }\n return count;\n }\n\n // ### `forEach` executes the callback on all quads.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forEach(callback, subject, predicate, object, graph) {\n this.some(quad => {\n callback(quad, this);\n return false;\n }, subject, predicate, object, graph);\n }\n\n // ### `every` executes the callback on all quads,\n // and returns `true` if it returns truthy for all them.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n every(callback, subject, predicate, object, graph) {\n return !this.some(quad => !callback(quad, this), subject, predicate, object, graph);\n }\n\n // ### `some` executes the callback on all quads,\n // and returns `true` if it returns truthy for any of them.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n some(callback, subject, predicate, object, graph) {\n for (const quad of this.readQuads(subject, predicate, object, graph))\n if (callback(quad))\n return true;\n return false;\n }\n\n // ### `getSubjects` returns all subjects that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getSubjects(predicate, object, graph) {\n const results = [];\n this.forSubjects(s => { results.push(s); }, predicate, object, graph);\n return results;\n }\n\n // ### `forSubjects` executes the callback on all subjects that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forSubjects(callback, predicate, object, graph) {\n const graphs = this._getGraphs(graph);\n let content, predicateId, objectId;\n callback = this._uniqueEntities(callback);\n\n // Translate IRIs to internal index keys.\n if (predicate && !(predicateId = this._termToNumericId(predicate)) ||\n object && !(objectId = this._termToNumericId(object)))\n return;\n\n for (graph in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graph]) {\n // Choose optimal index based on which fields are wildcards\n if (predicateId) {\n if (objectId)\n // If predicate and object are given, the POS index is best.\n this._loopBy2Keys(content.predicates, predicateId, objectId, callback);\n else\n // If only predicate is given, the SPO index is best.\n this._loopByKey1(content.subjects, predicateId, callback);\n }\n else if (objectId)\n // If only object is given, the OSP index is best.\n this._loopByKey0(content.objects, objectId, callback);\n else\n // If no params given, iterate all the subjects\n this._loop(content.subjects, callback);\n }\n }\n }\n\n // ### `getPredicates` returns all predicates that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getPredicates(subject, object, graph) {\n const results = [];\n this.forPredicates(p => { results.push(p); }, subject, object, graph);\n return results;\n }\n\n // ### `forPredicates` executes the callback on all predicates that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forPredicates(callback, subject, object, graph) {\n const graphs = this._getGraphs(graph);\n let content, subjectId, objectId;\n callback = this._uniqueEntities(callback);\n\n // Translate IRIs to internal index keys.\n if (subject && !(subjectId = this._termToNumericId(subject)) ||\n object && !(objectId = this._termToNumericId(object)))\n return;\n\n for (graph in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graph]) {\n // Choose optimal index based on which fields are wildcards\n if (subjectId) {\n if (objectId)\n // If subject and object are given, the OSP index is best.\n this._loopBy2Keys(content.objects, objectId, subjectId, callback);\n else\n // If only subject is given, the SPO index is best.\n this._loopByKey0(content.subjects, subjectId, callback);\n }\n else if (objectId)\n // If only object is given, the POS index is best.\n this._loopByKey1(content.predicates, objectId, callback);\n else\n // If no params given, iterate all the predicates.\n this._loop(content.predicates, callback);\n }\n }\n }\n\n // ### `getObjects` returns all objects that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getObjects(subject, predicate, graph) {\n const results = [];\n this.forObjects(o => { results.push(o); }, subject, predicate, graph);\n return results;\n }\n\n // ### `forObjects` executes the callback on all objects that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forObjects(callback, subject, predicate, graph) {\n const graphs = this._getGraphs(graph);\n let content, subjectId, predicateId;\n callback = this._uniqueEntities(callback);\n\n // Translate IRIs to internal index keys.\n if (subject && !(subjectId = this._termToNumericId(subject)) ||\n predicate && !(predicateId = this._termToNumericId(predicate)))\n return;\n\n for (graph in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graph]) {\n // Choose optimal index based on which fields are wildcards\n if (subjectId) {\n if (predicateId)\n // If subject and predicate are given, the SPO index is best.\n this._loopBy2Keys(content.subjects, subjectId, predicateId, callback);\n else\n // If only subject is given, the OSP index is best.\n this._loopByKey1(content.objects, subjectId, callback);\n }\n else if (predicateId)\n // If only predicate is given, the POS index is best.\n this._loopByKey0(content.predicates, predicateId, callback);\n else\n // If no params given, iterate all the objects.\n this._loop(content.objects, callback);\n }\n }\n }\n\n // ### `getGraphs` returns all graphs that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getGraphs(subject, predicate, object) {\n const results = [];\n this.forGraphs(g => { results.push(g); }, subject, predicate, object);\n return results;\n }\n\n // ### `forGraphs` executes the callback on all graphs that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forGraphs(callback, subject, predicate, object) {\n for (const graph in this._graphs) {\n this.some(quad => {\n callback(quad.graph);\n return true; // Halt iteration of some()\n }, subject, predicate, object, this._termFromId(this._entities[graph]));\n }\n }\n\n // ### `createBlankNode` creates a new blank node, returning its name\n createBlankNode(suggestedName) {\n return this._entityIndex.createBlankNode(suggestedName);\n }\n\n // ### `extractLists` finds and removes all list triples\n // and returns the items per list.\n extractLists({ remove = false, ignoreErrors = false } = {}) {\n const lists = {}; // has scalar keys so could be a simple Object\n const onError = ignoreErrors ? (() => true) :\n ((node, message) => { throw new Error(`${node.value} ${message}`); });\n\n // Traverse each list from its tail\n const tails = this.getQuads(null, _IRIs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].rdf.rest, _IRIs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].rdf.nil, null);\n const toRemove = remove ? [...tails] : [];\n tails.forEach(tailQuad => {\n const items = []; // the members found as objects of rdf:first quads\n let malformed = false; // signals whether the current list is malformed\n let head; // the head of the list (_:b1 in above example)\n let headPos; // set to subject or object when head is set\n const graph = tailQuad.graph; // make sure list is in exactly one graph\n\n // Traverse the list from tail to end\n let current = tailQuad.subject;\n while (current && !malformed) {\n const objectQuads = this.getQuads(null, null, current, null);\n const subjectQuads = this.getQuads(current, null, null, null);\n let quad, first = null, rest = null, parent = null;\n\n // Find the first and rest of this list node\n for (let i = 0; i < subjectQuads.length && !malformed; i++) {\n quad = subjectQuads[i];\n if (!quad.graph.equals(graph))\n malformed = onError(current, 'not confined to single graph');\n else if (head)\n malformed = onError(current, 'has non-list arcs out');\n\n // one rdf:first\n else if (quad.predicate.value === _IRIs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].rdf.first) {\n if (first)\n malformed = onError(current, 'has multiple rdf:first arcs');\n else\n toRemove.push(first = quad);\n }\n\n // one rdf:rest\n else if (quad.predicate.value === _IRIs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].rdf.rest) {\n if (rest)\n malformed = onError(current, 'has multiple rdf:rest arcs');\n else\n toRemove.push(rest = quad);\n }\n\n // alien triple\n else if (objectQuads.length)\n malformed = onError(current, 'can\\'t be subject and object');\n else {\n head = quad; // e.g. { (1 2 3) :p :o }\n headPos = 'subject';\n }\n }\n\n // { :s :p (1 2) } arrives here with no head\n // { (1 2) :p :o } arrives here with head set to the list.\n for (let i = 0; i < objectQuads.length && !malformed; ++i) {\n quad = objectQuads[i];\n if (head)\n malformed = onError(current, 'can\\'t have coreferences');\n // one rdf:rest\n else if (quad.predicate.value === _IRIs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].rdf.rest) {\n if (parent)\n malformed = onError(current, 'has incoming rdf:rest arcs');\n else\n parent = quad;\n }\n else {\n head = quad; // e.g. { :s :p (1 2) }\n headPos = 'object';\n }\n }\n\n // Store the list item and continue with parent\n if (!first)\n malformed = onError(current, 'has no list head');\n else\n items.unshift(first.object);\n current = parent && parent.subject;\n }\n\n // Don't remove any quads if the list is malformed\n if (malformed)\n remove = false;\n // Store the list under the value of its head\n else if (head)\n lists[head[headPos].value] = items;\n });\n\n // Remove list quads if requested\n if (remove)\n this.removeQuads(toRemove);\n return lists;\n }\n\n /**\n * Returns `true` if the current dataset is a superset of the given dataset; in other words, returns `true` if\n * the given dataset is a subset of, i.e., is contained within, the current dataset.\n *\n * Blank Nodes will be normalized.\n */\n addAll(quads) {\n if (quads instanceof DatasetCoreAndReadableStream)\n quads = quads.filtered;\n\n if (Array.isArray(quads))\n this.addQuads(quads);\n else if (quads instanceof N3Store && quads._entityIndex === this._entityIndex) {\n if (quads._size !== 0) {\n this._graphs = merge(this._graphs, quads._graphs);\n this._size = null; // Invalidate the cached size\n }\n }\n else {\n for (const quad of quads)\n this.add(quad);\n }\n return this;\n }\n\n /**\n * Returns `true` if the current dataset is a superset of the given dataset; in other words, returns `true` if\n * the given dataset is a subset of, i.e., is contained within, the current dataset.\n *\n * Blank Nodes will be normalized.\n */\n contains(other) {\n if (other instanceof DatasetCoreAndReadableStream)\n other = other.filtered;\n\n if (other === this)\n return true;\n\n if (!(other instanceof N3Store) || this._entityIndex !== other._entityIndex)\n return other.every(quad => this.has(quad));\n\n const g1 = this._graphs, g2 = other._graphs;\n let s1, s2, p1, p2, o1;\n for (const graph in g2) {\n if (!(s1 = g1[graph])) return false;\n s1 = s1.subjects;\n for (const subject in (s2 = g2[graph].subjects)) {\n if (!(p1 = s1[subject])) return false;\n for (const predicate in (p2 = s2[subject])) {\n if (!(o1 = p1[predicate])) return false;\n for (const object in p2[predicate])\n if (!(object in o1)) return false;\n }\n }\n }\n return true;\n }\n\n /**\n * This method removes the quads in the current dataset that match the given arguments.\n *\n * The logic described in {@link https://rdf.js.org/dataset-spec/#quad-matching|Quad Matching} is applied for each\n * quad in this dataset, to select the quads which will be deleted.\n *\n * @param subject The optional exact subject to match.\n * @param predicate The optional exact predicate to match.\n * @param object The optional exact object to match.\n * @param graph The optional exact graph to match.\n */\n deleteMatches(subject, predicate, object, graph) {\n for (const quad of this.match(subject, predicate, object, graph))\n this.removeQuad(quad);\n return this;\n }\n\n /**\n * Returns a new dataset that contains all quads from the current dataset that are not included in the given dataset.\n */\n difference(other) {\n if (other && other instanceof DatasetCoreAndReadableStream)\n other = other.filtered;\n\n if (other === this)\n return new N3Store({ entityIndex: this._entityIndex });\n\n if ((other instanceof N3Store) && other._entityIndex === this._entityIndex) {\n const store = new N3Store({ entityIndex: this._entityIndex });\n const graphs = difference(this._graphs, other._graphs);\n if (graphs) {\n store._graphs = graphs;\n store._size = null;\n }\n return store;\n }\n\n return this.filter(quad => !other.has(quad));\n }\n\n /**\n * Returns true if the current dataset contains the same graph structure as the given dataset.\n *\n * Blank Nodes will be normalized.\n */\n equals(other) {\n if (other instanceof DatasetCoreAndReadableStream)\n other = other.filtered;\n\n return other === this || (this.size === other.size && this.contains(other));\n }\n\n /**\n * Creates a new dataset with all the quads that pass the test implemented by the provided `iteratee`.\n *\n * This method is aligned with Array.prototype.filter() in ECMAScript-262.\n */\n filter(iteratee) {\n const store = new N3Store({ entityIndex: this._entityIndex });\n for (const quad of this)\n if (iteratee(quad, this))\n store.add(quad);\n return store;\n }\n\n /**\n * Returns a new dataset containing all quads from the current dataset that are also included in the given dataset.\n */\n intersection(other) {\n if (other instanceof DatasetCoreAndReadableStream)\n other = other.filtered;\n\n if (other === this) {\n const store = new N3Store({ entityIndex: this._entityIndex });\n store._graphs = merge(Object.create(null), this._graphs);\n store._size = this._size;\n return store;\n }\n else if ((other instanceof N3Store) && this._entityIndex === other._entityIndex) {\n const store = new N3Store({ entityIndex: this._entityIndex });\n const graphs = intersect(other._graphs, this._graphs);\n if (graphs) {\n store._graphs = graphs;\n store._size = null;\n }\n return store;\n }\n\n return this.filter(quad => other.has(quad));\n }\n\n /**\n * Returns a new dataset containing all quads returned by applying `iteratee` to each quad in the current dataset.\n */\n map(iteratee) {\n const store = new N3Store({ entityIndex: this._entityIndex });\n for (const quad of this)\n store.add(iteratee(quad, this));\n return store;\n }\n\n /**\n * This method calls the `iteratee` method on each `quad` of the `Dataset`. The first time the `iteratee` method\n * is called, the `accumulator` value is the `initialValue`, or, if not given, equals the first quad of the `Dataset`.\n * The return value of each call to the `iteratee` method is used as the `accumulator` value for the next call.\n *\n * This method returns the return value of the last `iteratee` call.\n *\n * This method is aligned with `Array.prototype.reduce()` in ECMAScript-262.\n */\n reduce(callback, initialValue) {\n const iter = this.readQuads();\n let accumulator = initialValue === undefined ? iter.next().value : initialValue;\n for (const quad of iter)\n accumulator = callback(accumulator, quad, this);\n return accumulator;\n }\n\n /**\n * Returns the set of quads within the dataset as a host-language-native sequence, for example an `Array` in\n * ECMAScript-262.\n *\n * Since a `Dataset` is an unordered set, the order of the quads within the returned sequence is arbitrary.\n */\n toArray() {\n return this.getQuads();\n }\n\n /**\n * Returns an N-Quads string representation of the dataset, preprocessed with the\n * {@link https://json-ld.github.io/normalization/spec/|RDF Dataset Normalization} algorithm.\n */\n toCanonical() {\n throw new Error('not implemented');\n }\n\n /**\n * Returns a stream that contains all quads of the dataset.\n */\n toStream() {\n return this.match();\n }\n\n /**\n * Returns an N-Quads string representation of the dataset.\n *\n * No prior normalization is required, therefore the results for the same quads may vary depending on the `Dataset`\n * implementation.\n */\n toString() {\n return (new _N3Writer__WEBPACK_IMPORTED_MODULE_4__[\"default\"]()).quadsToString(this);\n }\n\n /**\n * Returns a new `Dataset` that is a concatenation of this dataset and the quads given as an argument.\n */\n union(quads) {\n const store = new N3Store({ entityIndex: this._entityIndex });\n store._graphs = merge(Object.create(null), this._graphs);\n store._size = this._size;\n\n store.addAll(quads);\n return store;\n }\n\n // ### Store is an iterable.\n // Can be used where iterables are expected: for...of loops, array spread operator,\n // `yield*`, and destructuring assignment (order is not guaranteed).\n *[Symbol.iterator]() {\n yield* this.readQuads();\n }\n}\n\n/**\n * Returns a subset of the `index` with that part of the index\n * matching the `ids` array. `ids` contains 3 elements that are\n * either numerical ids; or `null`.\n *\n * `false` is returned when there are no matching indices; this should\n * *not* be set as the value for an index.\n */\nfunction indexMatch(index, ids, depth = 0) {\n const ind = ids[depth];\n if (ind && !(ind in index))\n return false;\n\n let target = false;\n for (const key in (ind ? { [ind]: index[ind] } : index)) {\n const result = depth === 2 ? null : indexMatch(index[key], ids, depth + 1);\n\n if (result !== false) {\n target = target || Object.create(null);\n target[key] = result;\n }\n }\n return target;\n}\n\n/**\n * A class that implements both DatasetCore and Readable.\n */\nclass DatasetCoreAndReadableStream extends readable_stream__WEBPACK_IMPORTED_MODULE_0__.Readable {\n constructor(n3Store, subject, predicate, object, graph, options) {\n super({ objectMode: true });\n Object.assign(this, { n3Store, subject, predicate, object, graph, options });\n }\n\n get filtered() {\n if (!this._filtered) {\n const { n3Store, graph, object, predicate, subject } = this;\n const newStore = this._filtered = new N3Store({ factory: n3Store._factory, entityIndex: this.options.entityIndex });\n\n let subjectId, predicateId, objectId;\n\n // Translate IRIs to internal index keys.\n if (subject && !(subjectId = newStore._termToNumericId(subject)) ||\n predicate && !(predicateId = newStore._termToNumericId(predicate)) ||\n object && !(objectId = newStore._termToNumericId(object)))\n return newStore;\n\n const graphs = n3Store._getGraphs(graph);\n for (const graphKey in graphs) {\n let subjects, predicates, objects, content;\n if (content = graphs[graphKey]) {\n if (!subjectId && predicateId) {\n if (predicates = indexMatch(content.predicates, [predicateId, objectId, subjectId])) {\n subjects = indexMatch(content.subjects, [subjectId, predicateId, objectId]);\n objects = indexMatch(content.objects, [objectId, subjectId, predicateId]);\n }\n }\n else if (objectId) {\n if (objects = indexMatch(content.objects, [objectId, subjectId, predicateId])) {\n subjects = indexMatch(content.subjects, [subjectId, predicateId, objectId]);\n predicates = indexMatch(content.predicates, [predicateId, objectId, subjectId]);\n }\n }\n else if (subjects = indexMatch(content.subjects, [subjectId, predicateId, objectId])) {\n predicates = indexMatch(content.predicates, [predicateId, objectId, subjectId]);\n objects = indexMatch(content.objects, [objectId, subjectId, predicateId]);\n }\n\n if (subjects)\n newStore._graphs[graphKey] = { subjects, predicates, objects };\n }\n }\n newStore._size = null;\n }\n return this._filtered;\n }\n\n get size() {\n return this.filtered.size;\n }\n\n _read(size) {\n if (size > 0 && !this[ITERATOR])\n this[ITERATOR] = this[Symbol.iterator]();\n const iterable = this[ITERATOR];\n while (--size >= 0) {\n const { done, value } = iterable.next();\n if (done) {\n this.push(null);\n return;\n }\n this.push(value);\n }\n }\n\n addAll(quads) {\n return this.filtered.addAll(quads);\n }\n\n contains(other) {\n return this.filtered.contains(other);\n }\n\n deleteMatches(subject, predicate, object, graph) {\n return this.filtered.deleteMatches(subject, predicate, object, graph);\n }\n\n difference(other) {\n return this.filtered.difference(other);\n }\n\n equals(other) {\n return this.filtered.equals(other);\n }\n\n every(callback, subject, predicate, object, graph) {\n return this.filtered.every(callback, subject, predicate, object, graph);\n }\n\n filter(iteratee) {\n return this.filtered.filter(iteratee);\n }\n\n forEach(callback, subject, predicate, object, graph) {\n return this.filtered.forEach(callback, subject, predicate, object, graph);\n }\n\n import(stream) {\n return this.filtered.import(stream);\n }\n\n intersection(other) {\n return this.filtered.intersection(other);\n }\n\n map(iteratee) {\n return this.filtered.map(iteratee);\n }\n\n some(callback, subject, predicate, object, graph) {\n return this.filtered.some(callback, subject, predicate, object, graph);\n }\n\n toCanonical() {\n return this.filtered.toCanonical();\n }\n\n toStream() {\n return this._filtered ?\n this._filtered.toStream()\n : this.n3Store.match(this.subject, this.predicate, this.object, this.graph);\n }\n\n union(quads) {\n return this._filtered ?\n this._filtered.union(quads)\n : this.n3Store.match(this.subject, this.predicate, this.object, this.graph).addAll(quads);\n }\n\n toArray() {\n return this._filtered ? this._filtered.toArray() : this.n3Store.getQuads(this.subject, this.predicate, this.object, this.graph);\n }\n\n reduce(callback, initialValue) {\n return this.filtered.reduce(callback, initialValue);\n }\n\n toString() {\n return (new _N3Writer__WEBPACK_IMPORTED_MODULE_4__[\"default\"]()).quadsToString(this);\n }\n\n add(quad) {\n return this.filtered.add(quad);\n }\n\n delete(quad) {\n return this.filtered.delete(quad);\n }\n\n has(quad) {\n return this.filtered.has(quad);\n }\n\n match(subject, predicate, object, graph) {\n return new DatasetCoreAndReadableStream(this.filtered, subject, predicate, object, graph, this.options);\n }\n\n *[Symbol.iterator]() {\n yield* this._filtered || this.n3Store.readQuads(this.subject, this.predicate, this.object, this.graph);\n }\n}\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/n3/src/N3Store.js?");
|
|
193
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ N3EntityIndex: () => (/* binding */ N3EntityIndex),\n/* harmony export */ \"default\": () => (/* binding */ N3Store)\n/* harmony export */ });\n/* harmony import */ var readable_stream__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! readable-stream */ \"./node_modules/readable-stream/lib/ours/browser.js\");\n/* harmony import */ var readable_stream__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(readable_stream__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _N3DataFactory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./N3DataFactory */ \"./node_modules/n3/src/N3DataFactory.js\");\n/* harmony import */ var _IRIs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./IRIs */ \"./node_modules/n3/src/IRIs.js\");\n/* harmony import */ var _N3Util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./N3Util */ \"./node_modules/n3/src/N3Util.js\");\n/* harmony import */ var _N3Writer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./N3Writer */ \"./node_modules/n3/src/N3Writer.js\");\n// **N3Store** objects store N3 quads by graph in memory.\n\n\n\n\n\n\nconst ITERATOR = Symbol('iter');\n\nfunction merge(target, source, depth = 4) {\n if (depth === 0)\n return Object.assign(target, source);\n\n for (const key in source)\n target[key] = merge(target[key] || Object.create(null), source[key], depth - 1);\n\n return target;\n}\n\n/**\n * Determines the intersection of the `_graphs` index s1 and s2.\n * s1 and s2 *must* belong to Stores that share an `_entityIndex`.\n *\n * False is returned when there is no intersection; this should\n * *not* be set as the value for an index.\n */\nfunction intersect(s1, s2, depth = 4) {\n let target = false;\n\n for (const key in s1) {\n if (key in s2) {\n const intersection = depth === 0 ? null : intersect(s1[key], s2[key], depth - 1);\n if (intersection !== false) {\n target = target || Object.create(null);\n target[key] = intersection;\n }\n // Depth 3 is the 'subjects', 'predicates' and 'objects' keys.\n // If the 'subjects' index is empty, so will the 'predicates' and 'objects' index.\n else if (depth === 3) {\n return false;\n }\n }\n }\n\n return target;\n}\n\n/**\n * Determines the difference of the `_graphs` index s1 and s2.\n * s1 and s2 *must* belong to Stores that share an `_entityIndex`.\n *\n * False is returned when there is no difference; this should\n * *not* be set as the value for an index.\n */\nfunction difference(s1, s2, depth = 4) {\n let target = false;\n\n for (const key in s1) {\n // When the key is not in the index, then none of the triples defined by s1[key] are\n // in s2 and so we want to copy them over to the resultant store.\n if (!(key in s2)) {\n target = target || Object.create(null);\n target[key] = depth === 0 ? null : merge({}, s1[key], depth - 1);\n }\n else if (depth !== 0) {\n const diff = difference(s1[key], s2[key], depth - 1);\n if (diff !== false) {\n target = target || Object.create(null);\n target[key] = diff;\n }\n // Depth 3 is the 'subjects', 'predicates' and 'objects' keys.\n // If the 'subjects' index is empty, so will the 'predicates' and 'objects' index.\n else if (depth === 3) {\n return false;\n }\n }\n }\n\n return target;\n}\n\n// ## Constructor\nclass N3EntityIndex {\n constructor(options = {}) {\n this._id = 1;\n // `_ids` maps entities such as `http://xmlns.com/foaf/0.1/name` to numbers,\n // saving memory by using only numbers as keys in `_graphs`\n this._ids = Object.create(null);\n this._ids[''] = 1;\n // inverse of `_ids`\n this._entities = Object.create(null);\n this._entities[1] = '';\n // `_blankNodeIndex` is the index of the last automatically named blank node\n this._blankNodeIndex = 0;\n this._factory = options.factory || _N3DataFactory__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n }\n\n _termFromId(id) {\n if (id[0] === '.') {\n const entities = this._entities;\n const terms = id.split('.');\n const q = this._factory.quad(\n this._termFromId(entities[terms[1]]),\n this._termFromId(entities[terms[2]]),\n this._termFromId(entities[terms[3]]),\n terms[4] && this._termFromId(entities[terms[4]]),\n );\n return q;\n }\n return (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termFromId)(id, this._factory);\n }\n\n _termToNumericId(term) {\n if (term.termType === 'Quad') {\n const s = this._termToNumericId(term.subject),\n p = this._termToNumericId(term.predicate),\n o = this._termToNumericId(term.object);\n let g;\n\n return s && p && o && ((0,_N3Util__WEBPACK_IMPORTED_MODULE_2__.isDefaultGraph)(term.graph) || (g = this._termToNumericId(term.graph))) &&\n this._ids[g ? `.${s}.${p}.${o}.${g}` : `.${s}.${p}.${o}`];\n }\n return this._ids[(0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(term)];\n }\n\n _termToNewNumericId(term) {\n // This assumes that no graph term is present - we may wish to error if there is one\n const str = term && term.termType === 'Quad' ?\n `.${this._termToNewNumericId(term.subject)}.${this._termToNewNumericId(term.predicate)}.${this._termToNewNumericId(term.object)}${\n (0,_N3Util__WEBPACK_IMPORTED_MODULE_2__.isDefaultGraph)(term.graph) ? '' : `.${this._termToNewNumericId(term.graph)}`\n }`\n : (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(term);\n\n return this._ids[str] || (this._ids[this._entities[++this._id] = str] = this._id);\n }\n\n createBlankNode(suggestedName) {\n let name, index;\n // Generate a name based on the suggested name\n if (suggestedName) {\n name = suggestedName = `_:${suggestedName}`, index = 1;\n while (this._ids[name])\n name = suggestedName + index++;\n }\n // Generate a generic blank node name\n else {\n do { name = `_:b${this._blankNodeIndex++}`; }\n while (this._ids[name]);\n }\n // Add the blank node to the entities, avoiding the generation of duplicates\n this._ids[name] = ++this._id;\n this._entities[this._id] = name;\n return this._factory.blankNode(name.substr(2));\n }\n}\n\n// ## Constructor\nclass N3Store {\n constructor(quads, options) {\n // The number of quads is initially zero\n this._size = 0;\n // `_graphs` contains subject, predicate, and object indexes per graph\n this._graphs = Object.create(null);\n\n // Shift parameters if `quads` is not given\n if (!options && quads && !quads[0] && !(typeof quads.match === 'function'))\n options = quads, quads = null;\n options = options || {};\n this._factory = options.factory || _N3DataFactory__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n this._entityIndex = options.entityIndex || new N3EntityIndex({ factory: this._factory });\n this._entities = this._entityIndex._entities;\n this._termFromId = this._entityIndex._termFromId.bind(this._entityIndex);\n this._termToNumericId = this._entityIndex._termToNumericId.bind(this._entityIndex);\n this._termToNewNumericId = this._entityIndex._termToNewNumericId.bind(this._entityIndex);\n\n // Add quads if passed\n if (quads)\n this.addAll(quads);\n }\n\n // ## Public properties\n\n // ### `size` returns the number of quads in the store\n get size() {\n // Return the quad count if if was cached\n let size = this._size;\n if (size !== null)\n return size;\n\n // Calculate the number of quads by counting to the deepest level\n size = 0;\n const graphs = this._graphs;\n let subjects, subject;\n for (const graphKey in graphs)\n for (const subjectKey in (subjects = graphs[graphKey].subjects))\n for (const predicateKey in (subject = subjects[subjectKey]))\n size += Object.keys(subject[predicateKey]).length;\n return this._size = size;\n }\n\n // ## Private methods\n\n // ### `_addToIndex` adds a quad to a three-layered index.\n // Returns if the index has changed, if the entry did not already exist.\n _addToIndex(index0, key0, key1, key2) {\n // Create layers as necessary\n const index1 = index0[key0] || (index0[key0] = {});\n const index2 = index1[key1] || (index1[key1] = {});\n // Setting the key to _any_ value signals the presence of the quad\n const existed = key2 in index2;\n if (!existed)\n index2[key2] = null;\n return !existed;\n }\n\n // ### `_removeFromIndex` removes a quad from a three-layered index\n _removeFromIndex(index0, key0, key1, key2) {\n // Remove the quad from the index\n const index1 = index0[key0], index2 = index1[key1];\n delete index2[key2];\n\n // Remove intermediary index layers if they are empty\n for (const key in index2) return;\n delete index1[key1];\n for (const key in index1) return;\n delete index0[key0];\n }\n\n // ### `_findInIndex` finds a set of quads in a three-layered index.\n // The index base is `index0` and the keys at each level are `key0`, `key1`, and `key2`.\n // Any of these keys can be undefined, which is interpreted as a wildcard.\n // `name0`, `name1`, and `name2` are the names of the keys at each level,\n // used when reconstructing the resulting quad\n // (for instance: _subject_, _predicate_, and _object_).\n // Finally, `graphId` will be the graph of the created quads.\n *_findInIndex(index0, key0, key1, key2, name0, name1, name2, graphId) {\n let tmp, index1, index2;\n const entityKeys = this._entities;\n const graph = this._termFromId(entityKeys[graphId]);\n const parts = { subject: null, predicate: null, object: null };\n\n // If a key is specified, use only that part of index 0.\n if (key0) (tmp = index0, index0 = {})[key0] = tmp[key0];\n for (const value0 in index0) {\n if (index1 = index0[value0]) {\n parts[name0] = this._termFromId(entityKeys[value0]);\n // If a key is specified, use only that part of index 1.\n if (key1) (tmp = index1, index1 = {})[key1] = tmp[key1];\n for (const value1 in index1) {\n if (index2 = index1[value1]) {\n parts[name1] = this._termFromId(entityKeys[value1]);\n // If a key is specified, use only that part of index 2, if it exists.\n const values = key2 ? (key2 in index2 ? [key2] : []) : Object.keys(index2);\n // Create quads for all items found in index 2.\n for (let l = 0; l < values.length; l++) {\n parts[name2] = this._termFromId(entityKeys[values[l]]);\n yield this._factory.quad(parts.subject, parts.predicate, parts.object, graph);\n }\n }\n }\n }\n }\n }\n\n // ### `_loop` executes the callback on all keys of index 0\n _loop(index0, callback) {\n for (const key0 in index0)\n callback(key0);\n }\n\n // ### `_loopByKey0` executes the callback on all keys of a certain entry in index 0\n _loopByKey0(index0, key0, callback) {\n let index1, key1;\n if (index1 = index0[key0]) {\n for (key1 in index1)\n callback(key1);\n }\n }\n\n // ### `_loopByKey1` executes the callback on given keys of all entries in index 0\n _loopByKey1(index0, key1, callback) {\n let key0, index1;\n for (key0 in index0) {\n index1 = index0[key0];\n if (index1[key1])\n callback(key0);\n }\n }\n\n // ### `_loopBy2Keys` executes the callback on given keys of certain entries in index 2\n _loopBy2Keys(index0, key0, key1, callback) {\n let index1, index2, key2;\n if ((index1 = index0[key0]) && (index2 = index1[key1])) {\n for (key2 in index2)\n callback(key2);\n }\n }\n\n // ### `_countInIndex` counts matching quads in a three-layered index.\n // The index base is `index0` and the keys at each level are `key0`, `key1`, and `key2`.\n // Any of these keys can be undefined, which is interpreted as a wildcard.\n _countInIndex(index0, key0, key1, key2) {\n let count = 0, tmp, index1, index2;\n\n // If a key is specified, count only that part of index 0\n if (key0) (tmp = index0, index0 = {})[key0] = tmp[key0];\n for (const value0 in index0) {\n if (index1 = index0[value0]) {\n // If a key is specified, count only that part of index 1\n if (key1) (tmp = index1, index1 = {})[key1] = tmp[key1];\n for (const value1 in index1) {\n if (index2 = index1[value1]) {\n // If a key is specified, count the quad if it exists\n if (key2) (key2 in index2) && count++;\n // Otherwise, count all quads\n else count += Object.keys(index2).length;\n }\n }\n }\n }\n return count;\n }\n\n // ### `_getGraphs` returns an array with the given graph,\n // or all graphs if the argument is null or undefined.\n _getGraphs(graph) {\n graph = graph === '' ? 1 : (graph && (this._termToNumericId(graph) || -1));\n return typeof graph !== 'number' ? this._graphs : { [graph]: this._graphs[graph] };\n }\n\n // ### `_uniqueEntities` returns a function that accepts an entity ID\n // and passes the corresponding entity to callback if it hasn't occurred before.\n _uniqueEntities(callback) {\n const uniqueIds = Object.create(null);\n return id => {\n if (!(id in uniqueIds)) {\n uniqueIds[id] = true;\n callback(this._termFromId(this._entities[id], this._factory));\n }\n };\n }\n\n // ## Public methods\n\n // ### `add` adds the specified quad to the dataset.\n // Returns the dataset instance it was called on.\n // Existing quads, as defined in Quad.equals, will be ignored.\n add(quad) {\n this.addQuad(quad);\n return this;\n }\n\n // ### `addQuad` adds a new quad to the store.\n // Returns if the quad index has changed, if the quad did not already exist.\n addQuad(subject, predicate, object, graph) {\n // Shift arguments if a quad object is given instead of components\n if (!predicate)\n graph = subject.graph, object = subject.object,\n predicate = subject.predicate, subject = subject.subject;\n\n // Convert terms to internal string representation\n graph = graph ? this._termToNewNumericId(graph) : 1;\n\n // Find the graph that will contain the triple\n let graphItem = this._graphs[graph];\n // Create the graph if it doesn't exist yet\n if (!graphItem) {\n graphItem = this._graphs[graph] = { subjects: {}, predicates: {}, objects: {} };\n // Freezing a graph helps subsequent `add` performance,\n // and properties will never be modified anyway\n Object.freeze(graphItem);\n }\n\n // Since entities can often be long IRIs, we avoid storing them in every index.\n // Instead, we have a separate index that maps entities to numbers,\n // which are then used as keys in the other indexes.\n subject = this._termToNewNumericId(subject);\n predicate = this._termToNewNumericId(predicate);\n object = this._termToNewNumericId(object);\n\n if (!this._addToIndex(graphItem.subjects, subject, predicate, object))\n return false;\n this._addToIndex(graphItem.predicates, predicate, object, subject);\n this._addToIndex(graphItem.objects, object, subject, predicate);\n\n // The cached quad count is now invalid\n this._size = null;\n return true;\n }\n\n // ### `addQuads` adds multiple quads to the store\n addQuads(quads) {\n for (let i = 0; i < quads.length; i++)\n this.addQuad(quads[i]);\n }\n\n // ### `delete` removes the specified quad from the dataset.\n // Returns the dataset instance it was called on.\n delete(quad) {\n this.removeQuad(quad);\n return this;\n }\n\n // ### `has` determines whether a dataset includes a certain quad or quad pattern.\n has(subjectOrQuad, predicate, object, graph) {\n if (subjectOrQuad && subjectOrQuad.subject)\n ({ subject: subjectOrQuad, predicate, object, graph } = subjectOrQuad);\n return !this.readQuads(subjectOrQuad, predicate, object, graph).next().done;\n }\n\n // ### `import` adds a stream of quads to the store\n import(stream) {\n stream.on('data', quad => { this.addQuad(quad); });\n return stream;\n }\n\n // ### `removeQuad` removes a quad from the store if it exists\n removeQuad(subject, predicate, object, graph) {\n // Shift arguments if a quad object is given instead of components\n if (!predicate)\n ({ subject, predicate, object, graph } = subject);\n // Convert terms to internal string representation\n graph = graph ? this._termToNumericId(graph) : 1;\n\n // Find internal identifiers for all components\n // and verify the quad exists.\n const graphs = this._graphs;\n let graphItem, subjects, predicates;\n if (!(subject = subject && this._termToNumericId(subject)) || !(predicate = predicate && this._termToNumericId(predicate)) ||\n !(object = object && this._termToNumericId(object)) || !(graphItem = graphs[graph]) ||\n !(subjects = graphItem.subjects[subject]) ||\n !(predicates = subjects[predicate]) ||\n !(object in predicates))\n return false;\n\n // Remove it from all indexes\n this._removeFromIndex(graphItem.subjects, subject, predicate, object);\n this._removeFromIndex(graphItem.predicates, predicate, object, subject);\n this._removeFromIndex(graphItem.objects, object, subject, predicate);\n if (this._size !== null) this._size--;\n\n // Remove the graph if it is empty\n for (subject in graphItem.subjects) return true;\n delete graphs[graph];\n return true;\n }\n\n // ### `removeQuads` removes multiple quads from the store\n removeQuads(quads) {\n for (let i = 0; i < quads.length; i++)\n this.removeQuad(quads[i]);\n }\n\n // ### `remove` removes a stream of quads from the store\n remove(stream) {\n stream.on('data', quad => { this.removeQuad(quad); });\n return stream;\n }\n\n // ### `removeMatches` removes all matching quads from the store\n // Setting any field to `undefined` or `null` indicates a wildcard.\n removeMatches(subject, predicate, object, graph) {\n const stream = new readable_stream__WEBPACK_IMPORTED_MODULE_0__.Readable({ objectMode: true });\n\n const iterable = this.readQuads(subject, predicate, object, graph);\n stream._read = size => {\n while (--size >= 0) {\n const { done, value } = iterable.next();\n if (done) {\n stream.push(null);\n return;\n }\n stream.push(value);\n }\n };\n\n return this.remove(stream);\n }\n\n // ### `deleteGraph` removes all triples with the given graph from the store\n deleteGraph(graph) {\n return this.removeMatches(null, null, null, graph);\n }\n\n // ### `getQuads` returns an array of quads matching a pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getQuads(subject, predicate, object, graph) {\n return [...this.readQuads(subject, predicate, object, graph)];\n }\n\n /**\n * `readQuads` returns a generator of quads matching a pattern.\n * Setting any field to `undefined` or `null` indicates a wildcard.\n * @deprecated Use `match` instead.\n */\n *readQuads(subject, predicate, object, graph) {\n const graphs = this._getGraphs(graph);\n let content, subjectId, predicateId, objectId;\n\n // Translate IRIs to internal index keys.\n if (subject && !(subjectId = this._termToNumericId(subject)) ||\n predicate && !(predicateId = this._termToNumericId(predicate)) ||\n object && !(objectId = this._termToNumericId(object)))\n return;\n\n for (const graphId in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graphId]) {\n // Choose the optimal index, based on what fields are present\n if (subjectId) {\n if (objectId)\n // If subject and object are given, the object index will be the fastest\n yield* this._findInIndex(content.objects, objectId, subjectId, predicateId,\n 'object', 'subject', 'predicate', graphId);\n else\n // If only subject and possibly predicate are given, the subject index will be the fastest\n yield* this._findInIndex(content.subjects, subjectId, predicateId, null,\n 'subject', 'predicate', 'object', graphId);\n }\n else if (predicateId)\n // If only predicate and possibly object are given, the predicate index will be the fastest\n yield* this._findInIndex(content.predicates, predicateId, objectId, null,\n 'predicate', 'object', 'subject', graphId);\n else if (objectId)\n // If only object is given, the object index will be the fastest\n yield* this._findInIndex(content.objects, objectId, null, null,\n 'object', 'subject', 'predicate', graphId);\n else\n // If nothing is given, iterate subjects and predicates first\n yield* this._findInIndex(content.subjects, null, null, null,\n 'subject', 'predicate', 'object', graphId);\n }\n }\n }\n\n // ### `match` returns a new dataset that is comprised of all quads in the current instance matching the given arguments.\n // The logic described in Quad Matching is applied for each quad in this dataset to check if it should be included in the output dataset.\n // Note: This method always returns a new DatasetCore, even if that dataset contains no quads.\n // Note: Since a DatasetCore is an unordered set, the order of the quads within the returned sequence is arbitrary.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n // For backwards compatibility, the object return also implements the Readable stream interface.\n match(subject, predicate, object, graph) {\n return new DatasetCoreAndReadableStream(this, subject, predicate, object, graph, { entityIndex: this._entityIndex });\n }\n\n // ### `countQuads` returns the number of quads matching a pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n countQuads(subject, predicate, object, graph) {\n const graphs = this._getGraphs(graph);\n let count = 0, content, subjectId, predicateId, objectId;\n\n // Translate IRIs to internal index keys.\n if (subject && !(subjectId = this._termToNumericId(subject)) ||\n predicate && !(predicateId = this._termToNumericId(predicate)) ||\n object && !(objectId = this._termToNumericId(object)))\n return 0;\n\n for (const graphId in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graphId]) {\n // Choose the optimal index, based on what fields are present\n if (subject) {\n if (object)\n // If subject and object are given, the object index will be the fastest\n count += this._countInIndex(content.objects, objectId, subjectId, predicateId);\n else\n // If only subject and possibly predicate are given, the subject index will be the fastest\n count += this._countInIndex(content.subjects, subjectId, predicateId, objectId);\n }\n else if (predicate) {\n // If only predicate and possibly object are given, the predicate index will be the fastest\n count += this._countInIndex(content.predicates, predicateId, objectId, subjectId);\n }\n else {\n // If only object is possibly given, the object index will be the fastest\n count += this._countInIndex(content.objects, objectId, subjectId, predicateId);\n }\n }\n }\n return count;\n }\n\n // ### `forEach` executes the callback on all quads.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forEach(callback, subject, predicate, object, graph) {\n this.some(quad => {\n callback(quad, this);\n return false;\n }, subject, predicate, object, graph);\n }\n\n // ### `every` executes the callback on all quads,\n // and returns `true` if it returns truthy for all them.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n every(callback, subject, predicate, object, graph) {\n return !this.some(quad => !callback(quad, this), subject, predicate, object, graph);\n }\n\n // ### `some` executes the callback on all quads,\n // and returns `true` if it returns truthy for any of them.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n some(callback, subject, predicate, object, graph) {\n for (const quad of this.readQuads(subject, predicate, object, graph))\n if (callback(quad, this))\n return true;\n return false;\n }\n\n // ### `getSubjects` returns all subjects that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getSubjects(predicate, object, graph) {\n const results = [];\n this.forSubjects(s => { results.push(s); }, predicate, object, graph);\n return results;\n }\n\n // ### `forSubjects` executes the callback on all subjects that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forSubjects(callback, predicate, object, graph) {\n const graphs = this._getGraphs(graph);\n let content, predicateId, objectId;\n callback = this._uniqueEntities(callback);\n\n // Translate IRIs to internal index keys.\n if (predicate && !(predicateId = this._termToNumericId(predicate)) ||\n object && !(objectId = this._termToNumericId(object)))\n return;\n\n for (graph in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graph]) {\n // Choose optimal index based on which fields are wildcards\n if (predicateId) {\n if (objectId)\n // If predicate and object are given, the POS index is best.\n this._loopBy2Keys(content.predicates, predicateId, objectId, callback);\n else\n // If only predicate is given, the SPO index is best.\n this._loopByKey1(content.subjects, predicateId, callback);\n }\n else if (objectId)\n // If only object is given, the OSP index is best.\n this._loopByKey0(content.objects, objectId, callback);\n else\n // If no params given, iterate all the subjects\n this._loop(content.subjects, callback);\n }\n }\n }\n\n // ### `getPredicates` returns all predicates that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getPredicates(subject, object, graph) {\n const results = [];\n this.forPredicates(p => { results.push(p); }, subject, object, graph);\n return results;\n }\n\n // ### `forPredicates` executes the callback on all predicates that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forPredicates(callback, subject, object, graph) {\n const graphs = this._getGraphs(graph);\n let content, subjectId, objectId;\n callback = this._uniqueEntities(callback);\n\n // Translate IRIs to internal index keys.\n if (subject && !(subjectId = this._termToNumericId(subject)) ||\n object && !(objectId = this._termToNumericId(object)))\n return;\n\n for (graph in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graph]) {\n // Choose optimal index based on which fields are wildcards\n if (subjectId) {\n if (objectId)\n // If subject and object are given, the OSP index is best.\n this._loopBy2Keys(content.objects, objectId, subjectId, callback);\n else\n // If only subject is given, the SPO index is best.\n this._loopByKey0(content.subjects, subjectId, callback);\n }\n else if (objectId)\n // If only object is given, the POS index is best.\n this._loopByKey1(content.predicates, objectId, callback);\n else\n // If no params given, iterate all the predicates.\n this._loop(content.predicates, callback);\n }\n }\n }\n\n // ### `getObjects` returns all objects that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getObjects(subject, predicate, graph) {\n const results = [];\n this.forObjects(o => { results.push(o); }, subject, predicate, graph);\n return results;\n }\n\n // ### `forObjects` executes the callback on all objects that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forObjects(callback, subject, predicate, graph) {\n const graphs = this._getGraphs(graph);\n let content, subjectId, predicateId;\n callback = this._uniqueEntities(callback);\n\n // Translate IRIs to internal index keys.\n if (subject && !(subjectId = this._termToNumericId(subject)) ||\n predicate && !(predicateId = this._termToNumericId(predicate)))\n return;\n\n for (graph in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graph]) {\n // Choose optimal index based on which fields are wildcards\n if (subjectId) {\n if (predicateId)\n // If subject and predicate are given, the SPO index is best.\n this._loopBy2Keys(content.subjects, subjectId, predicateId, callback);\n else\n // If only subject is given, the OSP index is best.\n this._loopByKey1(content.objects, subjectId, callback);\n }\n else if (predicateId)\n // If only predicate is given, the POS index is best.\n this._loopByKey0(content.predicates, predicateId, callback);\n else\n // If no params given, iterate all the objects.\n this._loop(content.objects, callback);\n }\n }\n }\n\n // ### `getGraphs` returns all graphs that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getGraphs(subject, predicate, object) {\n const results = [];\n this.forGraphs(g => { results.push(g); }, subject, predicate, object);\n return results;\n }\n\n // ### `forGraphs` executes the callback on all graphs that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forGraphs(callback, subject, predicate, object) {\n for (const graph in this._graphs) {\n this.some(quad => {\n callback(quad.graph);\n return true; // Halt iteration of some()\n }, subject, predicate, object, this._termFromId(this._entities[graph]));\n }\n }\n\n // ### `createBlankNode` creates a new blank node, returning its name\n createBlankNode(suggestedName) {\n return this._entityIndex.createBlankNode(suggestedName);\n }\n\n // ### `extractLists` finds and removes all list triples\n // and returns the items per list.\n extractLists({ remove = false, ignoreErrors = false } = {}) {\n const lists = {}; // has scalar keys so could be a simple Object\n const onError = ignoreErrors ? (() => true) :\n ((node, message) => { throw new Error(`${node.value} ${message}`); });\n\n // Traverse each list from its tail\n const tails = this.getQuads(null, _IRIs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].rdf.rest, _IRIs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].rdf.nil, null);\n const toRemove = remove ? [...tails] : [];\n tails.forEach(tailQuad => {\n const items = []; // the members found as objects of rdf:first quads\n let malformed = false; // signals whether the current list is malformed\n let head; // the head of the list (_:b1 in above example)\n let headPos; // set to subject or object when head is set\n const graph = tailQuad.graph; // make sure list is in exactly one graph\n\n // Traverse the list from tail to end\n let current = tailQuad.subject;\n while (current && !malformed) {\n const objectQuads = this.getQuads(null, null, current, null);\n const subjectQuads = this.getQuads(current, null, null, null);\n let quad, first = null, rest = null, parent = null;\n\n // Find the first and rest of this list node\n for (let i = 0; i < subjectQuads.length && !malformed; i++) {\n quad = subjectQuads[i];\n if (!quad.graph.equals(graph))\n malformed = onError(current, 'not confined to single graph');\n else if (head)\n malformed = onError(current, 'has non-list arcs out');\n\n // one rdf:first\n else if (quad.predicate.value === _IRIs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].rdf.first) {\n if (first)\n malformed = onError(current, 'has multiple rdf:first arcs');\n else\n toRemove.push(first = quad);\n }\n\n // one rdf:rest\n else if (quad.predicate.value === _IRIs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].rdf.rest) {\n if (rest)\n malformed = onError(current, 'has multiple rdf:rest arcs');\n else\n toRemove.push(rest = quad);\n }\n\n // alien triple\n else if (objectQuads.length)\n malformed = onError(current, 'can\\'t be subject and object');\n else {\n head = quad; // e.g. { (1 2 3) :p :o }\n headPos = 'subject';\n }\n }\n\n // { :s :p (1 2) } arrives here with no head\n // { (1 2) :p :o } arrives here with head set to the list.\n for (let i = 0; i < objectQuads.length && !malformed; ++i) {\n quad = objectQuads[i];\n if (head)\n malformed = onError(current, 'can\\'t have coreferences');\n // one rdf:rest\n else if (quad.predicate.value === _IRIs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].rdf.rest) {\n if (parent)\n malformed = onError(current, 'has incoming rdf:rest arcs');\n else\n parent = quad;\n }\n else {\n head = quad; // e.g. { :s :p (1 2) }\n headPos = 'object';\n }\n }\n\n // Store the list item and continue with parent\n if (!first)\n malformed = onError(current, 'has no list head');\n else\n items.unshift(first.object);\n current = parent && parent.subject;\n }\n\n // Don't remove any quads if the list is malformed\n if (malformed)\n remove = false;\n // Store the list under the value of its head\n else if (head)\n lists[head[headPos].value] = items;\n });\n\n // Remove list quads if requested\n if (remove)\n this.removeQuads(toRemove);\n return lists;\n }\n\n /**\n * Returns `true` if the current dataset is a superset of the given dataset; in other words, returns `true` if\n * the given dataset is a subset of, i.e., is contained within, the current dataset.\n *\n * Blank Nodes will be normalized.\n */\n addAll(quads) {\n if (quads instanceof DatasetCoreAndReadableStream)\n quads = quads.filtered;\n\n if (Array.isArray(quads))\n this.addQuads(quads);\n else if (quads instanceof N3Store && quads._entityIndex === this._entityIndex) {\n if (quads._size !== 0) {\n this._graphs = merge(this._graphs, quads._graphs);\n this._size = null; // Invalidate the cached size\n }\n }\n else {\n for (const quad of quads)\n this.add(quad);\n }\n return this;\n }\n\n /**\n * Returns `true` if the current dataset is a superset of the given dataset; in other words, returns `true` if\n * the given dataset is a subset of, i.e., is contained within, the current dataset.\n *\n * Blank Nodes will be normalized.\n */\n contains(other) {\n if (other instanceof DatasetCoreAndReadableStream)\n other = other.filtered;\n\n if (other === this)\n return true;\n\n if (!(other instanceof N3Store) || this._entityIndex !== other._entityIndex)\n return other.every(quad => this.has(quad));\n\n const g1 = this._graphs, g2 = other._graphs;\n let s1, s2, p1, p2, o1;\n for (const graph in g2) {\n if (!(s1 = g1[graph])) return false;\n s1 = s1.subjects;\n for (const subject in (s2 = g2[graph].subjects)) {\n if (!(p1 = s1[subject])) return false;\n for (const predicate in (p2 = s2[subject])) {\n if (!(o1 = p1[predicate])) return false;\n for (const object in p2[predicate])\n if (!(object in o1)) return false;\n }\n }\n }\n return true;\n }\n\n /**\n * This method removes the quads in the current dataset that match the given arguments.\n *\n * The logic described in {@link https://rdf.js.org/dataset-spec/#quad-matching|Quad Matching} is applied for each\n * quad in this dataset, to select the quads which will be deleted.\n *\n * @param subject The optional exact subject to match.\n * @param predicate The optional exact predicate to match.\n * @param object The optional exact object to match.\n * @param graph The optional exact graph to match.\n */\n deleteMatches(subject, predicate, object, graph) {\n for (const quad of this.match(subject, predicate, object, graph))\n this.removeQuad(quad);\n return this;\n }\n\n /**\n * Returns a new dataset that contains all quads from the current dataset that are not included in the given dataset.\n */\n difference(other) {\n if (other && other instanceof DatasetCoreAndReadableStream)\n other = other.filtered;\n\n if (other === this)\n return new N3Store({ entityIndex: this._entityIndex });\n\n if ((other instanceof N3Store) && other._entityIndex === this._entityIndex) {\n const store = new N3Store({ entityIndex: this._entityIndex });\n const graphs = difference(this._graphs, other._graphs);\n if (graphs) {\n store._graphs = graphs;\n store._size = null;\n }\n return store;\n }\n\n return this.filter(quad => !other.has(quad));\n }\n\n /**\n * Returns true if the current dataset contains the same graph structure as the given dataset.\n *\n * Blank Nodes will be normalized.\n */\n equals(other) {\n if (other instanceof DatasetCoreAndReadableStream)\n other = other.filtered;\n\n return other === this || (this.size === other.size && this.contains(other));\n }\n\n /**\n * Creates a new dataset with all the quads that pass the test implemented by the provided `iteratee`.\n *\n * This method is aligned with Array.prototype.filter() in ECMAScript-262.\n */\n filter(iteratee) {\n const store = new N3Store({ entityIndex: this._entityIndex });\n for (const quad of this)\n if (iteratee(quad, this))\n store.add(quad);\n return store;\n }\n\n /**\n * Returns a new dataset containing all quads from the current dataset that are also included in the given dataset.\n */\n intersection(other) {\n if (other instanceof DatasetCoreAndReadableStream)\n other = other.filtered;\n\n if (other === this) {\n const store = new N3Store({ entityIndex: this._entityIndex });\n store._graphs = merge(Object.create(null), this._graphs);\n store._size = this._size;\n return store;\n }\n else if ((other instanceof N3Store) && this._entityIndex === other._entityIndex) {\n const store = new N3Store({ entityIndex: this._entityIndex });\n const graphs = intersect(other._graphs, this._graphs);\n if (graphs) {\n store._graphs = graphs;\n store._size = null;\n }\n return store;\n }\n\n return this.filter(quad => other.has(quad));\n }\n\n /**\n * Returns a new dataset containing all quads returned by applying `iteratee` to each quad in the current dataset.\n */\n map(iteratee) {\n const store = new N3Store({ entityIndex: this._entityIndex });\n for (const quad of this)\n store.add(iteratee(quad, this));\n return store;\n }\n\n /**\n * This method calls the `iteratee` method on each `quad` of the `Dataset`. The first time the `iteratee` method\n * is called, the `accumulator` value is the `initialValue`, or, if not given, equals the first quad of the `Dataset`.\n * The return value of each call to the `iteratee` method is used as the `accumulator` value for the next call.\n *\n * This method returns the return value of the last `iteratee` call.\n *\n * This method is aligned with `Array.prototype.reduce()` in ECMAScript-262.\n */\n reduce(callback, initialValue) {\n const iter = this.readQuads();\n let accumulator = initialValue === undefined ? iter.next().value : initialValue;\n for (const quad of iter)\n accumulator = callback(accumulator, quad, this);\n return accumulator;\n }\n\n /**\n * Returns the set of quads within the dataset as a host-language-native sequence, for example an `Array` in\n * ECMAScript-262.\n *\n * Since a `Dataset` is an unordered set, the order of the quads within the returned sequence is arbitrary.\n */\n toArray() {\n return this.getQuads();\n }\n\n /**\n * Returns an N-Quads string representation of the dataset, preprocessed with the\n * {@link https://json-ld.github.io/normalization/spec/|RDF Dataset Normalization} algorithm.\n */\n toCanonical() {\n throw new Error('not implemented');\n }\n\n /**\n * Returns a stream that contains all quads of the dataset.\n */\n toStream() {\n return this.match();\n }\n\n /**\n * Returns an N-Quads string representation of the dataset.\n *\n * No prior normalization is required, therefore the results for the same quads may vary depending on the `Dataset`\n * implementation.\n */\n toString() {\n return (new _N3Writer__WEBPACK_IMPORTED_MODULE_4__[\"default\"]()).quadsToString(this);\n }\n\n /**\n * Returns a new `Dataset` that is a concatenation of this dataset and the quads given as an argument.\n */\n union(quads) {\n const store = new N3Store({ entityIndex: this._entityIndex });\n store._graphs = merge(Object.create(null), this._graphs);\n store._size = this._size;\n\n store.addAll(quads);\n return store;\n }\n\n // ### Store is an iterable.\n // Can be used where iterables are expected: for...of loops, array spread operator,\n // `yield*`, and destructuring assignment (order is not guaranteed).\n *[Symbol.iterator]() {\n yield* this.readQuads();\n }\n}\n\n/**\n * Returns a subset of the `index` with that part of the index\n * matching the `ids` array. `ids` contains 3 elements that are\n * either numerical ids; or `null`.\n *\n * `false` is returned when there are no matching indices; this should\n * *not* be set as the value for an index.\n */\nfunction indexMatch(index, ids, depth = 0) {\n const ind = ids[depth];\n if (ind && !(ind in index))\n return false;\n\n let target = false;\n for (const key in (ind ? { [ind]: index[ind] } : index)) {\n const result = depth === 2 ? null : indexMatch(index[key], ids, depth + 1);\n\n if (result !== false) {\n target = target || Object.create(null);\n target[key] = result;\n }\n }\n return target;\n}\n\n/**\n * A class that implements both DatasetCore and Readable.\n */\nclass DatasetCoreAndReadableStream extends readable_stream__WEBPACK_IMPORTED_MODULE_0__.Readable {\n constructor(n3Store, subject, predicate, object, graph, options) {\n super({ objectMode: true });\n Object.assign(this, { n3Store, subject, predicate, object, graph, options });\n }\n\n get filtered() {\n if (!this._filtered) {\n const { n3Store, graph, object, predicate, subject } = this;\n const newStore = this._filtered = new N3Store({ factory: n3Store._factory, entityIndex: this.options.entityIndex });\n\n let subjectId, predicateId, objectId;\n\n // Translate IRIs to internal index keys.\n if (subject && !(subjectId = newStore._termToNumericId(subject)) ||\n predicate && !(predicateId = newStore._termToNumericId(predicate)) ||\n object && !(objectId = newStore._termToNumericId(object)))\n return newStore;\n\n const graphs = n3Store._getGraphs(graph);\n for (const graphKey in graphs) {\n let subjects, predicates, objects, content;\n if (content = graphs[graphKey]) {\n if (!subjectId && predicateId) {\n if (predicates = indexMatch(content.predicates, [predicateId, objectId, subjectId])) {\n subjects = indexMatch(content.subjects, [subjectId, predicateId, objectId]);\n objects = indexMatch(content.objects, [objectId, subjectId, predicateId]);\n }\n }\n else if (objectId) {\n if (objects = indexMatch(content.objects, [objectId, subjectId, predicateId])) {\n subjects = indexMatch(content.subjects, [subjectId, predicateId, objectId]);\n predicates = indexMatch(content.predicates, [predicateId, objectId, subjectId]);\n }\n }\n else if (subjects = indexMatch(content.subjects, [subjectId, predicateId, objectId])) {\n predicates = indexMatch(content.predicates, [predicateId, objectId, subjectId]);\n objects = indexMatch(content.objects, [objectId, subjectId, predicateId]);\n }\n\n if (subjects)\n newStore._graphs[graphKey] = { subjects, predicates, objects };\n }\n }\n newStore._size = null;\n }\n return this._filtered;\n }\n\n get size() {\n return this.filtered.size;\n }\n\n _read(size) {\n if (size > 0 && !this[ITERATOR])\n this[ITERATOR] = this[Symbol.iterator]();\n const iterable = this[ITERATOR];\n while (--size >= 0) {\n const { done, value } = iterable.next();\n if (done) {\n this.push(null);\n return;\n }\n this.push(value);\n }\n }\n\n addAll(quads) {\n return this.filtered.addAll(quads);\n }\n\n contains(other) {\n return this.filtered.contains(other);\n }\n\n deleteMatches(subject, predicate, object, graph) {\n return this.filtered.deleteMatches(subject, predicate, object, graph);\n }\n\n difference(other) {\n return this.filtered.difference(other);\n }\n\n equals(other) {\n return this.filtered.equals(other);\n }\n\n every(callback, subject, predicate, object, graph) {\n return this.filtered.every(callback, subject, predicate, object, graph);\n }\n\n filter(iteratee) {\n return this.filtered.filter(iteratee);\n }\n\n forEach(callback, subject, predicate, object, graph) {\n return this.filtered.forEach(callback, subject, predicate, object, graph);\n }\n\n import(stream) {\n return this.filtered.import(stream);\n }\n\n intersection(other) {\n return this.filtered.intersection(other);\n }\n\n map(iteratee) {\n return this.filtered.map(iteratee);\n }\n\n some(callback, subject, predicate, object, graph) {\n return this.filtered.some(callback, subject, predicate, object, graph);\n }\n\n toCanonical() {\n return this.filtered.toCanonical();\n }\n\n toStream() {\n return this._filtered ?\n this._filtered.toStream()\n : this.n3Store.match(this.subject, this.predicate, this.object, this.graph);\n }\n\n union(quads) {\n return this._filtered ?\n this._filtered.union(quads)\n : this.n3Store.match(this.subject, this.predicate, this.object, this.graph).addAll(quads);\n }\n\n toArray() {\n return this._filtered ? this._filtered.toArray() : this.n3Store.getQuads(this.subject, this.predicate, this.object, this.graph);\n }\n\n reduce(callback, initialValue) {\n return this.filtered.reduce(callback, initialValue);\n }\n\n toString() {\n return (new _N3Writer__WEBPACK_IMPORTED_MODULE_4__[\"default\"]()).quadsToString(this);\n }\n\n add(quad) {\n return this.filtered.add(quad);\n }\n\n delete(quad) {\n return this.filtered.delete(quad);\n }\n\n has(quad) {\n return this.filtered.has(quad);\n }\n\n match(subject, predicate, object, graph) {\n return new DatasetCoreAndReadableStream(this.filtered, subject, predicate, object, graph, this.options);\n }\n\n *[Symbol.iterator]() {\n yield* this._filtered || this.n3Store.readQuads(this.subject, this.predicate, this.object, this.graph);\n }\n}\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/n3/src/N3Store.js?");
|
|
150
194
|
|
|
151
195
|
/***/ }),
|
|
152
196
|
|
|
@@ -190,7 +234,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
190
234
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
191
235
|
|
|
192
236
|
"use strict";
|
|
193
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ inDefaultGraph: () => (/* binding */ inDefaultGraph),\n/* harmony export */ isBlankNode: () => (/* binding */ isBlankNode),\n/* harmony export */ isDefaultGraph: () => (/* binding */ isDefaultGraph),\n/* harmony export */ isLiteral: () => (/* binding */ isLiteral),\n/* harmony export */ isNamedNode: () => (/* binding */ isNamedNode),\n/* harmony export */ isVariable: () => (/* binding */ isVariable),\n/* harmony export */ prefix: () => (/* binding */ prefix),\n/* harmony export */ prefixes: () => (/* binding */ prefixes)\n/* harmony export */ });\n/* harmony import */ var _N3DataFactory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./N3DataFactory */ \"./node_modules/n3/src/N3DataFactory.js\");\n// **N3Util** provides N3 utility functions.\n\n\n\n// Tests whether the given term represents an IRI\nfunction isNamedNode(term) {\n return !!term && term.termType === 'NamedNode';\n}\n\n// Tests whether the given term represents a blank node\nfunction isBlankNode(term) {\n return !!term && term.termType === 'BlankNode';\n}\n\n// Tests whether the given term represents a literal\nfunction isLiteral(term) {\n return !!term && term.termType === 'Literal';\n}\n\n// Tests whether the given term represents a variable\nfunction isVariable(term) {\n return !!term && term.termType === 'Variable';\n}\n\n// Tests whether the given term represents the default graph\nfunction isDefaultGraph(term) {\n return !!term && term.termType === 'DefaultGraph';\n}\n\n// Tests whether the given quad is in the default graph\nfunction inDefaultGraph(quad) {\n return isDefaultGraph(quad.graph);\n}\n\n// Creates a function that prepends the given IRI to a local name\nfunction prefix(iri, factory) {\n return prefixes({ '': iri.value || iri }, factory)('');\n}\n\n// Creates a function that allows registering and expanding prefixes\nfunction prefixes(defaultPrefixes, factory) {\n // Add all of the default prefixes\n const prefixes = Object.create(null);\n for (const prefix in defaultPrefixes)\n processPrefix(prefix, defaultPrefixes[prefix]);\n // Set the default factory if none was specified\n factory = factory || _N3DataFactory__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n\n // Registers a new prefix (if an IRI was specified)\n // or retrieves a function that expands an existing prefix (if no IRI was specified)\n function processPrefix(prefix, iri) {\n // Create a new prefix if an IRI is specified or the prefix doesn't exist\n if (typeof iri === 'string') {\n // Create a function that expands the prefix\n const cache = Object.create(null);\n prefixes[prefix] = local => {\n return cache[local] || (cache[local] = factory.namedNode(iri + local));\n };\n }\n else if (!(prefix in prefixes)) {\n throw new Error(`Unknown prefix: ${prefix}`);\n }\n return prefixes[prefix];\n }\n return processPrefix;\n}\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/n3/src/N3Util.js?");
|
|
237
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ inDefaultGraph: () => (/* binding */ inDefaultGraph),\n/* harmony export */ isBlankNode: () => (/* binding */ isBlankNode),\n/* harmony export */ isDefaultGraph: () => (/* binding */ isDefaultGraph),\n/* harmony export */ isLiteral: () => (/* binding */ isLiteral),\n/* harmony export */ isNamedNode: () => (/* binding */ isNamedNode),\n/* harmony export */ isQuad: () => (/* binding */ isQuad),\n/* harmony export */ isVariable: () => (/* binding */ isVariable),\n/* harmony export */ prefix: () => (/* binding */ prefix),\n/* harmony export */ prefixes: () => (/* binding */ prefixes)\n/* harmony export */ });\n/* harmony import */ var _N3DataFactory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./N3DataFactory */ \"./node_modules/n3/src/N3DataFactory.js\");\n// **N3Util** provides N3 utility functions.\n\n\n\n// Tests whether the given term represents an IRI\nfunction isNamedNode(term) {\n return !!term && term.termType === 'NamedNode';\n}\n\n// Tests whether the given term represents a blank node\nfunction isBlankNode(term) {\n return !!term && term.termType === 'BlankNode';\n}\n\n// Tests whether the given term represents a literal\nfunction isLiteral(term) {\n return !!term && term.termType === 'Literal';\n}\n\n// Tests whether the given term represents a variable\nfunction isVariable(term) {\n return !!term && term.termType === 'Variable';\n}\n\n// Tests whether the given term represents a quad\nfunction isQuad(term) {\n return !!term && term.termType === 'Quad';\n}\n\n// Tests whether the given term represents the default graph\nfunction isDefaultGraph(term) {\n return !!term && term.termType === 'DefaultGraph';\n}\n\n// Tests whether the given quad is in the default graph\nfunction inDefaultGraph(quad) {\n return isDefaultGraph(quad.graph);\n}\n\n// Creates a function that prepends the given IRI to a local name\nfunction prefix(iri, factory) {\n return prefixes({ '': iri.value || iri }, factory)('');\n}\n\n// Creates a function that allows registering and expanding prefixes\nfunction prefixes(defaultPrefixes, factory) {\n // Add all of the default prefixes\n const prefixes = Object.create(null);\n for (const prefix in defaultPrefixes)\n processPrefix(prefix, defaultPrefixes[prefix]);\n // Set the default factory if none was specified\n factory = factory || _N3DataFactory__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n\n // Registers a new prefix (if an IRI was specified)\n // or retrieves a function that expands an existing prefix (if no IRI was specified)\n function processPrefix(prefix, iri) {\n // Create a new prefix if an IRI is specified or the prefix doesn't exist\n if (typeof iri === 'string') {\n // Create a function that expands the prefix\n const cache = Object.create(null);\n prefixes[prefix] = local => {\n return cache[local] || (cache[local] = factory.namedNode(iri + local));\n };\n }\n else if (!(prefix in prefixes)) {\n throw new Error(`Unknown prefix: ${prefix}`);\n }\n return prefixes[prefix];\n }\n return processPrefix;\n}\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/n3/src/N3Util.js?");
|
|
194
238
|
|
|
195
239
|
/***/ }),
|
|
196
240
|
|
|
@@ -201,7 +245,18 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
201
245
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
202
246
|
|
|
203
247
|
"use strict";
|
|
204
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ N3Writer)\n/* harmony export */ });\n/* harmony import */ var _IRIs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./IRIs */ \"./node_modules/n3/src/IRIs.js\");\n/* harmony import */ var _N3DataFactory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./N3DataFactory */ \"./node_modules/n3/src/N3DataFactory.js\");\n/* harmony import */ var _N3Util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./N3Util */ \"./node_modules/n3/src/N3Util.js\");\n// **N3Writer** writes N3 documents.\n\n\n\n\nconst DEFAULTGRAPH = _N3DataFactory__WEBPACK_IMPORTED_MODULE_0__[\"default\"].defaultGraph();\n\nconst { rdf, xsd } = _IRIs__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n\n// Characters in literals that require escaping\nconst escape = /[\"\\\\\\t\\n\\r\\b\\f\\u0000-\\u0019\\ud800-\\udbff]/,\n escapeAll = /[\"\\\\\\t\\n\\r\\b\\f\\u0000-\\u0019]|[\\ud800-\\udbff][\\udc00-\\udfff]/g,\n escapedCharacters = {\n '\\\\': '\\\\\\\\', '\"': '\\\\\"', '\\t': '\\\\t',\n '\\n': '\\\\n', '\\r': '\\\\r', '\\b': '\\\\b', '\\f': '\\\\f',\n };\n\n// ## Placeholder class to represent already pretty-printed terms\nclass SerializedTerm extends _N3DataFactory__WEBPACK_IMPORTED_MODULE_0__.Term {\n // Pretty-printed nodes are not equal to any other node\n // (e.g., [] does not equal [])\n equals(other) {\n return other === this;\n }\n}\n\n// ## Constructor\nclass N3Writer {\n constructor(outputStream, options) {\n // ### `_prefixRegex` matches a prefixed name or IRI that begins with one of the added prefixes\n this._prefixRegex = /$0^/;\n\n // Shift arguments if the first argument is not a stream\n if (outputStream && typeof outputStream.write !== 'function')\n options = outputStream, outputStream = null;\n options = options || {};\n this._lists = options.lists;\n\n // If no output stream given, send the output as string through the end callback\n if (!outputStream) {\n let output = '';\n this._outputStream = {\n write(chunk, encoding, done) { output += chunk; done && done(); },\n end: done => { done && done(null, output); },\n };\n this._endStream = true;\n }\n else {\n this._outputStream = outputStream;\n this._endStream = options.end === undefined ? true : !!options.end;\n }\n\n // Initialize writer, depending on the format\n this._subject = null;\n if (!(/triple|quad/i).test(options.format)) {\n this._lineMode = false;\n this._graph = DEFAULTGRAPH;\n this._prefixIRIs = Object.create(null);\n options.prefixes && this.addPrefixes(options.prefixes);\n if (options.baseIRI) {\n this._baseMatcher = new RegExp(`^${escapeRegex(options.baseIRI)\n }${options.baseIRI.endsWith('/') ? '' : '[#?]'}`);\n this._baseLength = options.baseIRI.length;\n }\n }\n else {\n this._lineMode = true;\n this._writeQuad = this._writeQuadLine;\n }\n }\n\n // ## Private methods\n\n // ### Whether the current graph is the default graph\n get _inDefaultGraph() {\n return DEFAULTGRAPH.equals(this._graph);\n }\n\n // ### `_write` writes the argument to the output stream\n _write(string, callback) {\n this._outputStream.write(string, 'utf8', callback);\n }\n\n // ### `_writeQuad` writes the quad to the output stream\n _writeQuad(subject, predicate, object, graph, done) {\n try {\n // Write the graph's label if it has changed\n if (!graph.equals(this._graph)) {\n // Close the previous graph and start the new one\n this._write((this._subject === null ? '' : (this._inDefaultGraph ? '.\\n' : '\\n}\\n')) +\n (DEFAULTGRAPH.equals(graph) ? '' : `${this._encodeIriOrBlank(graph)} {\\n`));\n this._graph = graph;\n this._subject = null;\n }\n // Don't repeat the subject if it's the same\n if (subject.equals(this._subject)) {\n // Don't repeat the predicate if it's the same\n if (predicate.equals(this._predicate))\n this._write(`, ${this._encodeObject(object)}`, done);\n // Same subject, different predicate\n else\n this._write(`;\\n ${\n this._encodePredicate(this._predicate = predicate)} ${\n this._encodeObject(object)}`, done);\n }\n // Different subject; write the whole quad\n else\n this._write(`${(this._subject === null ? '' : '.\\n') +\n this._encodeSubject(this._subject = subject)} ${\n this._encodePredicate(this._predicate = predicate)} ${\n this._encodeObject(object)}`, done);\n }\n catch (error) { done && done(error); }\n }\n\n // ### `_writeQuadLine` writes the quad to the output stream as a single line\n _writeQuadLine(subject, predicate, object, graph, done) {\n // Write the quad without prefixes\n delete this._prefixMatch;\n this._write(this.quadToString(subject, predicate, object, graph), done);\n }\n\n // ### `quadToString` serializes a quad as a string\n quadToString(subject, predicate, object, graph) {\n return `${this._encodeSubject(subject)} ${\n this._encodeIriOrBlank(predicate)} ${\n this._encodeObject(object)\n }${graph && graph.value ? ` ${this._encodeIriOrBlank(graph)} .\\n` : ' .\\n'}`;\n }\n\n // ### `quadsToString` serializes an array of quads as a string\n quadsToString(quads) {\n let quadsString = '';\n for (const quad of quads)\n quadsString += this.quadToString(quad.subject, quad.predicate, quad.object, quad.graph);\n return quadsString;\n }\n\n // ### `_encodeSubject` represents a subject\n _encodeSubject(entity) {\n return entity.termType === 'Quad' ?\n this._encodeQuad(entity) : this._encodeIriOrBlank(entity);\n }\n\n // ### `_encodeIriOrBlank` represents an IRI or blank node\n _encodeIriOrBlank(entity) {\n // A blank node or list is represented as-is\n if (entity.termType !== 'NamedNode') {\n // If it is a list head, pretty-print it\n if (this._lists && (entity.value in this._lists))\n entity = this.list(this._lists[entity.value]);\n return 'id' in entity ? entity.id : `_:${entity.value}`;\n }\n let iri = entity.value;\n // Use relative IRIs if requested and possible\n if (this._baseMatcher && this._baseMatcher.test(iri))\n iri = iri.substr(this._baseLength);\n // Escape special characters\n if (escape.test(iri))\n iri = iri.replace(escapeAll, characterReplacer);\n // Try to represent the IRI as prefixed name\n const prefixMatch = this._prefixRegex.exec(iri);\n return !prefixMatch ? `<${iri}>` :\n (!prefixMatch[1] ? iri : this._prefixIRIs[prefixMatch[1]] + prefixMatch[2]);\n }\n\n // ### `_encodeLiteral` represents a literal\n _encodeLiteral(literal) {\n // Escape special characters\n let value = literal.value;\n if (escape.test(value))\n value = value.replace(escapeAll, characterReplacer);\n\n // Write a language-tagged literal\n if (literal.language)\n return `\"${value}\"@${literal.language}`;\n\n // Write dedicated literals per data type\n if (this._lineMode) {\n // Only abbreviate strings in N-Triples or N-Quads\n if (literal.datatype.value === xsd.string)\n return `\"${value}\"`;\n }\n else {\n // Use common datatype abbreviations in Turtle or TriG\n switch (literal.datatype.value) {\n case xsd.string:\n return `\"${value}\"`;\n case xsd.boolean:\n if (value === 'true' || value === 'false')\n return value;\n break;\n case xsd.integer:\n if (/^[+-]?\\d+$/.test(value))\n return value;\n break;\n case xsd.decimal:\n if (/^[+-]?\\d*\\.\\d+$/.test(value))\n return value;\n break;\n case xsd.double:\n if (/^[+-]?(?:\\d+\\.\\d*|\\.?\\d+)[eE][+-]?\\d+$/.test(value))\n return value;\n break;\n }\n }\n\n // Write a regular datatyped literal\n return `\"${value}\"^^${this._encodeIriOrBlank(literal.datatype)}`;\n }\n\n // ### `_encodePredicate` represents a predicate\n _encodePredicate(predicate) {\n return predicate.value === rdf.type ? 'a' : this._encodeIriOrBlank(predicate);\n }\n\n // ### `_encodeObject` represents an object\n _encodeObject(object) {\n switch (object.termType) {\n case 'Quad':\n return this._encodeQuad(object);\n case 'Literal':\n return this._encodeLiteral(object);\n default:\n return this._encodeIriOrBlank(object);\n }\n }\n\n // ### `_encodeQuad` encodes an RDF-star quad\n _encodeQuad({ subject, predicate, object, graph }) {\n return `<<${\n this._encodeSubject(subject)} ${\n this._encodePredicate(predicate)} ${\n this._encodeObject(object)}${\n (0,_N3Util__WEBPACK_IMPORTED_MODULE_2__.isDefaultGraph)(graph) ? '' : ` ${this._encodeIriOrBlank(graph)}`}>>`;\n }\n\n // ### `_blockedWrite` replaces `_write` after the writer has been closed\n _blockedWrite() {\n throw new Error('Cannot write because the writer has been closed.');\n }\n\n // ### `addQuad` adds the quad to the output stream\n addQuad(subject, predicate, object, graph, done) {\n // The quad was given as an object, so shift parameters\n if (object === undefined)\n this._writeQuad(subject.subject, subject.predicate, subject.object, subject.graph, predicate);\n // The optional `graph` parameter was not provided\n else if (typeof graph === 'function')\n this._writeQuad(subject, predicate, object, DEFAULTGRAPH, graph);\n // The `graph` parameter was provided\n else\n this._writeQuad(subject, predicate, object, graph || DEFAULTGRAPH, done);\n }\n\n // ### `addQuads` adds the quads to the output stream\n addQuads(quads) {\n for (let i = 0; i < quads.length; i++)\n this.addQuad(quads[i]);\n }\n\n // ### `addPrefix` adds the prefix to the output stream\n addPrefix(prefix, iri, done) {\n const prefixes = {};\n prefixes[prefix] = iri;\n this.addPrefixes(prefixes, done);\n }\n\n // ### `addPrefixes` adds the prefixes to the output stream\n addPrefixes(prefixes, done) {\n // Ignore prefixes if not supported by the serialization\n if (!this._prefixIRIs)\n return done && done();\n\n // Write all new prefixes\n let hasPrefixes = false;\n for (let prefix in prefixes) {\n let iri = prefixes[prefix];\n if (typeof iri !== 'string')\n iri = iri.value;\n hasPrefixes = true;\n // Finish a possible pending quad\n if (this._subject !== null) {\n this._write(this._inDefaultGraph ? '.\\n' : '\\n}\\n');\n this._subject = null, this._graph = '';\n }\n // Store and write the prefix\n this._prefixIRIs[iri] = (prefix += ':');\n this._write(`@prefix ${prefix} <${iri}>.\\n`);\n }\n // Recreate the prefix matcher\n if (hasPrefixes) {\n let IRIlist = '', prefixList = '';\n for (const prefixIRI in this._prefixIRIs) {\n IRIlist += IRIlist ? `|${prefixIRI}` : prefixIRI;\n prefixList += (prefixList ? '|' : '') + this._prefixIRIs[prefixIRI];\n }\n IRIlist = escapeRegex(IRIlist, /[\\]\\/\\(\\)\\*\\+\\?\\.\\\\\\$]/g, '\\\\$&');\n this._prefixRegex = new RegExp(`^(?:${prefixList})[^\\/]*$|` +\n `^(${IRIlist})([_a-zA-Z0-9][\\\\-_a-zA-Z0-9]*)$`);\n }\n // End a prefix block with a newline\n this._write(hasPrefixes ? '\\n' : '', done);\n }\n\n // ### `blank` creates a blank node with the given content\n blank(predicate, object) {\n let children = predicate, child, length;\n // Empty blank node\n if (predicate === undefined)\n children = [];\n // Blank node passed as blank(Term(\"predicate\"), Term(\"object\"))\n else if (predicate.termType)\n children = [{ predicate: predicate, object: object }];\n // Blank node passed as blank({ predicate: predicate, object: object })\n else if (!('length' in predicate))\n children = [predicate];\n\n switch (length = children.length) {\n // Generate an empty blank node\n case 0:\n return new SerializedTerm('[]');\n // Generate a non-nested one-triple blank node\n case 1:\n child = children[0];\n if (!(child.object instanceof SerializedTerm))\n return new SerializedTerm(`[ ${this._encodePredicate(child.predicate)} ${\n this._encodeObject(child.object)} ]`);\n // Generate a multi-triple or nested blank node\n default:\n let contents = '[';\n // Write all triples in order\n for (let i = 0; i < length; i++) {\n child = children[i];\n // Write only the object is the predicate is the same as the previous\n if (child.predicate.equals(predicate))\n contents += `, ${this._encodeObject(child.object)}`;\n // Otherwise, write the predicate and the object\n else {\n contents += `${(i ? ';\\n ' : '\\n ') +\n this._encodePredicate(child.predicate)} ${\n this._encodeObject(child.object)}`;\n predicate = child.predicate;\n }\n }\n return new SerializedTerm(`${contents}\\n]`);\n }\n }\n\n // ### `list` creates a list node with the given content\n list(elements) {\n const length = elements && elements.length || 0, contents = new Array(length);\n for (let i = 0; i < length; i++)\n contents[i] = this._encodeObject(elements[i]);\n return new SerializedTerm(`(${contents.join(' ')})`);\n }\n\n // ### `end` signals the end of the output stream\n end(done) {\n // Finish a possible pending quad\n if (this._subject !== null) {\n this._write(this._inDefaultGraph ? '.\\n' : '\\n}\\n');\n this._subject = null;\n }\n // Disallow further writing\n this._write = this._blockedWrite;\n\n // Try to end the underlying stream, ensuring done is called exactly one time\n let singleDone = done && ((error, result) => { singleDone = null, done(error, result); });\n if (this._endStream) {\n try { return this._outputStream.end(singleDone); }\n catch (error) { /* error closing stream */ }\n }\n singleDone && singleDone();\n }\n}\n\n// Replaces a character by its escaped version\nfunction characterReplacer(character) {\n // Replace a single character by its escaped version\n let result = escapedCharacters[character];\n if (result === undefined) {\n // Replace a single character with its 4-bit unicode escape sequence\n if (character.length === 1) {\n result = character.charCodeAt(0).toString(16);\n result = '\\\\u0000'.substr(0, 6 - result.length) + result;\n }\n // Replace a surrogate pair with its 8-bit unicode escape sequence\n else {\n result = ((character.charCodeAt(0) - 0xD800) * 0x400 +\n character.charCodeAt(1) + 0x2400).toString(16);\n result = '\\\\U00000000'.substr(0, 10 - result.length) + result;\n }\n }\n return result;\n}\n\nfunction escapeRegex(regex) {\n return regex.replace(/[\\]\\/\\(\\)\\*\\+\\?\\.\\\\\\$]/g, '\\\\$&');\n}\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/n3/src/N3Writer.js?");
|
|
248
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ N3Writer)\n/* harmony export */ });\n/* harmony import */ var _IRIs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./IRIs */ \"./node_modules/n3/src/IRIs.js\");\n/* harmony import */ var _N3DataFactory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./N3DataFactory */ \"./node_modules/n3/src/N3DataFactory.js\");\n/* harmony import */ var _N3Util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./N3Util */ \"./node_modules/n3/src/N3Util.js\");\n/* harmony import */ var _BaseIRI__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BaseIRI */ \"./node_modules/n3/src/BaseIRI.js\");\n/* harmony import */ var _Util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Util */ \"./node_modules/n3/src/Util.js\");\n// **N3Writer** writes N3 documents.\n\n\n\n\n\n\nconst DEFAULTGRAPH = _N3DataFactory__WEBPACK_IMPORTED_MODULE_0__[\"default\"].defaultGraph();\n\nconst { rdf, xsd } = _IRIs__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n\n// Characters in literals that require escaping\nconst escape = /[\"\\\\\\t\\n\\r\\b\\f\\u0000-\\u0019\\ud800-\\udbff]/,\n escapeAll = /[\"\\\\\\t\\n\\r\\b\\f\\u0000-\\u0019]|[\\ud800-\\udbff][\\udc00-\\udfff]/g,\n escapedCharacters = {\n '\\\\': '\\\\\\\\', '\"': '\\\\\"', '\\t': '\\\\t',\n '\\n': '\\\\n', '\\r': '\\\\r', '\\b': '\\\\b', '\\f': '\\\\f',\n };\n\n// ## Placeholder class to represent already pretty-printed terms\nclass SerializedTerm extends _N3DataFactory__WEBPACK_IMPORTED_MODULE_0__.Term {\n // Pretty-printed nodes are not equal to any other node\n // (e.g., [] does not equal [])\n equals(other) {\n return other === this;\n }\n}\n\n// ## Constructor\nclass N3Writer {\n constructor(outputStream, options) {\n // ### `_prefixRegex` matches a prefixed name or IRI that begins with one of the added prefixes\n this._prefixRegex = /$0^/;\n\n // Shift arguments if the first argument is not a stream\n if (outputStream && typeof outputStream.write !== 'function')\n options = outputStream, outputStream = null;\n options = options || {};\n this._lists = options.lists;\n\n // If no output stream given, send the output as string through the end callback\n if (!outputStream) {\n let output = '';\n this._outputStream = {\n write(chunk, encoding, done) { output += chunk; done && done(); },\n end: done => { done && done(null, output); },\n };\n this._endStream = true;\n }\n else {\n this._outputStream = outputStream;\n this._endStream = options.end === undefined ? true : !!options.end;\n }\n\n // Initialize writer, depending on the format\n this._subject = null;\n if (!(/triple|quad/i).test(options.format)) {\n this._lineMode = false;\n this._graph = DEFAULTGRAPH;\n this._prefixIRIs = Object.create(null);\n options.prefixes && this.addPrefixes(options.prefixes);\n if (options.baseIRI) {\n this._baseIri = new _BaseIRI__WEBPACK_IMPORTED_MODULE_2__[\"default\"](options.baseIRI);\n }\n }\n else {\n this._lineMode = true;\n this._writeQuad = this._writeQuadLine;\n }\n }\n\n // ## Private methods\n\n // ### Whether the current graph is the default graph\n get _inDefaultGraph() {\n return DEFAULTGRAPH.equals(this._graph);\n }\n\n // ### `_write` writes the argument to the output stream\n _write(string, callback) {\n this._outputStream.write(string, 'utf8', callback);\n }\n\n // ### `_writeQuad` writes the quad to the output stream\n _writeQuad(subject, predicate, object, graph, done) {\n try {\n // Write the graph's label if it has changed\n if (!graph.equals(this._graph)) {\n // Close the previous graph and start the new one\n this._write((this._subject === null ? '' : (this._inDefaultGraph ? '.\\n' : '\\n}\\n')) +\n (DEFAULTGRAPH.equals(graph) ? '' : `${this._encodeIriOrBlank(graph)} {\\n`));\n this._graph = graph;\n this._subject = null;\n }\n // Don't repeat the subject if it's the same\n if (subject.equals(this._subject)) {\n // Don't repeat the predicate if it's the same\n if (predicate.equals(this._predicate))\n this._write(`, ${this._encodeObject(object)}`, done);\n // Same subject, different predicate\n else\n this._write(`;\\n ${\n this._encodePredicate(this._predicate = predicate)} ${\n this._encodeObject(object)}`, done);\n }\n // Different subject; write the whole quad\n else\n this._write(`${(this._subject === null ? '' : '.\\n') +\n this._encodeSubject(this._subject = subject)} ${\n this._encodePredicate(this._predicate = predicate)} ${\n this._encodeObject(object)}`, done);\n }\n catch (error) { done && done(error); }\n }\n\n // ### `_writeQuadLine` writes the quad to the output stream as a single line\n _writeQuadLine(subject, predicate, object, graph, done) {\n // Write the quad without prefixes\n delete this._prefixMatch;\n this._write(this.quadToString(subject, predicate, object, graph), done);\n }\n\n // ### `quadToString` serializes a quad as a string\n quadToString(subject, predicate, object, graph) {\n return `${this._encodeSubject(subject)} ${\n this._encodeIriOrBlank(predicate)} ${\n this._encodeObject(object)\n }${graph && graph.value ? ` ${this._encodeIriOrBlank(graph)} .\\n` : ' .\\n'}`;\n }\n\n // ### `quadsToString` serializes an array of quads as a string\n quadsToString(quads) {\n let quadsString = '';\n for (const quad of quads)\n quadsString += this.quadToString(quad.subject, quad.predicate, quad.object, quad.graph);\n return quadsString;\n }\n\n // ### `_encodeSubject` represents a subject\n _encodeSubject(entity) {\n return entity.termType === 'Quad' ?\n this._encodeQuad(entity) : this._encodeIriOrBlank(entity);\n }\n\n // ### `_encodeIriOrBlank` represents an IRI or blank node\n _encodeIriOrBlank(entity) {\n // A blank node or list is represented as-is\n if (entity.termType !== 'NamedNode') {\n // If it is a list head, pretty-print it\n if (this._lists && (entity.value in this._lists))\n entity = this.list(this._lists[entity.value]);\n return 'id' in entity ? entity.id : `_:${entity.value}`;\n }\n let iri = entity.value;\n // Use relative IRIs if requested and possible\n if (this._baseIri) {\n iri = this._baseIri.toRelative(iri);\n }\n // Escape special characters\n if (escape.test(iri))\n iri = iri.replace(escapeAll, characterReplacer);\n // Try to represent the IRI as prefixed name\n const prefixMatch = this._prefixRegex.exec(iri);\n return !prefixMatch ? `<${iri}>` :\n (!prefixMatch[1] ? iri : this._prefixIRIs[prefixMatch[1]] + prefixMatch[2]);\n }\n\n // ### `_encodeLiteral` represents a literal\n _encodeLiteral(literal) {\n // Escape special characters\n let value = literal.value;\n if (escape.test(value))\n value = value.replace(escapeAll, characterReplacer);\n\n // Write a language-tagged literal\n if (literal.language)\n return `\"${value}\"@${literal.language}`;\n\n // Write dedicated literals per data type\n if (this._lineMode) {\n // Only abbreviate strings in N-Triples or N-Quads\n if (literal.datatype.value === xsd.string)\n return `\"${value}\"`;\n }\n else {\n // Use common datatype abbreviations in Turtle or TriG\n switch (literal.datatype.value) {\n case xsd.string:\n return `\"${value}\"`;\n case xsd.boolean:\n if (value === 'true' || value === 'false')\n return value;\n break;\n case xsd.integer:\n if (/^[+-]?\\d+$/.test(value))\n return value;\n break;\n case xsd.decimal:\n if (/^[+-]?\\d*\\.\\d+$/.test(value))\n return value;\n break;\n case xsd.double:\n if (/^[+-]?(?:\\d+\\.\\d*|\\.?\\d+)[eE][+-]?\\d+$/.test(value))\n return value;\n break;\n }\n }\n\n // Write a regular datatyped literal\n return `\"${value}\"^^${this._encodeIriOrBlank(literal.datatype)}`;\n }\n\n // ### `_encodePredicate` represents a predicate\n _encodePredicate(predicate) {\n return predicate.value === rdf.type ? 'a' : this._encodeIriOrBlank(predicate);\n }\n\n // ### `_encodeObject` represents an object\n _encodeObject(object) {\n switch (object.termType) {\n case 'Quad':\n return this._encodeQuad(object);\n case 'Literal':\n return this._encodeLiteral(object);\n default:\n return this._encodeIriOrBlank(object);\n }\n }\n\n // ### `_encodeQuad` encodes an RDF-star quad\n _encodeQuad({ subject, predicate, object, graph }) {\n return `<<${\n this._encodeSubject(subject)} ${\n this._encodePredicate(predicate)} ${\n this._encodeObject(object)}${\n (0,_N3Util__WEBPACK_IMPORTED_MODULE_3__.isDefaultGraph)(graph) ? '' : ` ${this._encodeIriOrBlank(graph)}`}>>`;\n }\n\n // ### `_blockedWrite` replaces `_write` after the writer has been closed\n _blockedWrite() {\n throw new Error('Cannot write because the writer has been closed.');\n }\n\n // ### `addQuad` adds the quad to the output stream\n addQuad(subject, predicate, object, graph, done) {\n // The quad was given as an object, so shift parameters\n if (object === undefined)\n this._writeQuad(subject.subject, subject.predicate, subject.object, subject.graph, predicate);\n // The optional `graph` parameter was not provided\n else if (typeof graph === 'function')\n this._writeQuad(subject, predicate, object, DEFAULTGRAPH, graph);\n // The `graph` parameter was provided\n else\n this._writeQuad(subject, predicate, object, graph || DEFAULTGRAPH, done);\n }\n\n // ### `addQuads` adds the quads to the output stream\n addQuads(quads) {\n for (let i = 0; i < quads.length; i++)\n this.addQuad(quads[i]);\n }\n\n // ### `addPrefix` adds the prefix to the output stream\n addPrefix(prefix, iri, done) {\n const prefixes = {};\n prefixes[prefix] = iri;\n this.addPrefixes(prefixes, done);\n }\n\n // ### `addPrefixes` adds the prefixes to the output stream\n addPrefixes(prefixes, done) {\n // Ignore prefixes if not supported by the serialization\n if (!this._prefixIRIs)\n return done && done();\n\n // Write all new prefixes\n let hasPrefixes = false;\n for (let prefix in prefixes) {\n let iri = prefixes[prefix];\n if (typeof iri !== 'string')\n iri = iri.value;\n hasPrefixes = true;\n // Finish a possible pending quad\n if (this._subject !== null) {\n this._write(this._inDefaultGraph ? '.\\n' : '\\n}\\n');\n this._subject = null, this._graph = '';\n }\n // Store and write the prefix\n this._prefixIRIs[iri] = (prefix += ':');\n this._write(`@prefix ${prefix} <${iri}>.\\n`);\n }\n // Recreate the prefix matcher\n if (hasPrefixes) {\n let IRIlist = '', prefixList = '';\n for (const prefixIRI in this._prefixIRIs) {\n IRIlist += IRIlist ? `|${prefixIRI}` : prefixIRI;\n prefixList += (prefixList ? '|' : '') + this._prefixIRIs[prefixIRI];\n }\n IRIlist = (0,_Util__WEBPACK_IMPORTED_MODULE_4__.escapeRegex)(IRIlist, /[\\]\\/\\(\\)\\*\\+\\?\\.\\\\\\$]/g, '\\\\$&');\n this._prefixRegex = new RegExp(`^(?:${prefixList})[^\\/]*$|` +\n `^(${IRIlist})([_a-zA-Z0-9][\\\\-_a-zA-Z0-9]*)$`);\n }\n // End a prefix block with a newline\n this._write(hasPrefixes ? '\\n' : '', done);\n }\n\n // ### `blank` creates a blank node with the given content\n blank(predicate, object) {\n let children = predicate, child, length;\n // Empty blank node\n if (predicate === undefined)\n children = [];\n // Blank node passed as blank(Term(\"predicate\"), Term(\"object\"))\n else if (predicate.termType)\n children = [{ predicate: predicate, object: object }];\n // Blank node passed as blank({ predicate: predicate, object: object })\n else if (!('length' in predicate))\n children = [predicate];\n\n switch (length = children.length) {\n // Generate an empty blank node\n case 0:\n return new SerializedTerm('[]');\n // Generate a non-nested one-triple blank node\n case 1:\n child = children[0];\n if (!(child.object instanceof SerializedTerm))\n return new SerializedTerm(`[ ${this._encodePredicate(child.predicate)} ${\n this._encodeObject(child.object)} ]`);\n // Generate a multi-triple or nested blank node\n default:\n let contents = '[';\n // Write all triples in order\n for (let i = 0; i < length; i++) {\n child = children[i];\n // Write only the object is the predicate is the same as the previous\n if (child.predicate.equals(predicate))\n contents += `, ${this._encodeObject(child.object)}`;\n // Otherwise, write the predicate and the object\n else {\n contents += `${(i ? ';\\n ' : '\\n ') +\n this._encodePredicate(child.predicate)} ${\n this._encodeObject(child.object)}`;\n predicate = child.predicate;\n }\n }\n return new SerializedTerm(`${contents}\\n]`);\n }\n }\n\n // ### `list` creates a list node with the given content\n list(elements) {\n const length = elements && elements.length || 0, contents = new Array(length);\n for (let i = 0; i < length; i++)\n contents[i] = this._encodeObject(elements[i]);\n return new SerializedTerm(`(${contents.join(' ')})`);\n }\n\n // ### `end` signals the end of the output stream\n end(done) {\n // Finish a possible pending quad\n if (this._subject !== null) {\n this._write(this._inDefaultGraph ? '.\\n' : '\\n}\\n');\n this._subject = null;\n }\n // Disallow further writing\n this._write = this._blockedWrite;\n\n // Try to end the underlying stream, ensuring done is called exactly one time\n let singleDone = done && ((error, result) => { singleDone = null, done(error, result); });\n if (this._endStream) {\n try { return this._outputStream.end(singleDone); }\n catch (error) { /* error closing stream */ }\n }\n singleDone && singleDone();\n }\n}\n\n// Replaces a character by its escaped version\nfunction characterReplacer(character) {\n // Replace a single character by its escaped version\n let result = escapedCharacters[character];\n if (result === undefined) {\n // Replace a single character with its 4-bit unicode escape sequence\n if (character.length === 1) {\n result = character.charCodeAt(0).toString(16);\n result = '\\\\u0000'.substr(0, 6 - result.length) + result;\n }\n // Replace a surrogate pair with its 8-bit unicode escape sequence\n else {\n result = ((character.charCodeAt(0) - 0xD800) * 0x400 +\n character.charCodeAt(1) + 0x2400).toString(16);\n result = '\\\\U00000000'.substr(0, 10 - result.length) + result;\n }\n }\n return result;\n}\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/n3/src/N3Writer.js?");
|
|
249
|
+
|
|
250
|
+
/***/ }),
|
|
251
|
+
|
|
252
|
+
/***/ "./node_modules/n3/src/Util.js":
|
|
253
|
+
/*!*************************************!*\
|
|
254
|
+
!*** ./node_modules/n3/src/Util.js ***!
|
|
255
|
+
\*************************************/
|
|
256
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
257
|
+
|
|
258
|
+
"use strict";
|
|
259
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ escapeRegex: () => (/* binding */ escapeRegex)\n/* harmony export */ });\nfunction escapeRegex(regex) {\n return regex.replace(/[\\]\\/\\(\\)\\*\\+\\?\\.\\\\\\$]/g, '\\\\$&');\n}\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/n3/src/Util.js?");
|
|
205
260
|
|
|
206
261
|
/***/ }),
|
|
207
262
|
|
|
@@ -212,7 +267,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
212
267
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
213
268
|
|
|
214
269
|
"use strict";
|
|
215
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BlankNode: () => (/* reexport safe */
|
|
270
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BaseIRI: () => (/* reexport safe */ _BaseIRI__WEBPACK_IMPORTED_MODULE_9__[\"default\"]),\n/* harmony export */ BlankNode: () => (/* reexport safe */ _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__.BlankNode),\n/* harmony export */ DataFactory: () => (/* reexport safe */ _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__[\"default\"]),\n/* harmony export */ DefaultGraph: () => (/* reexport safe */ _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__.DefaultGraph),\n/* harmony export */ EntityIndex: () => (/* reexport safe */ _N3Store__WEBPACK_IMPORTED_MODULE_3__.N3EntityIndex),\n/* harmony export */ Lexer: () => (/* reexport safe */ _N3Lexer__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ Literal: () => (/* reexport safe */ _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__.Literal),\n/* harmony export */ NamedNode: () => (/* reexport safe */ _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__.NamedNode),\n/* harmony export */ Parser: () => (/* reexport safe */ _N3Parser__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ Quad: () => (/* reexport safe */ _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__.Quad),\n/* harmony export */ Reasoner: () => (/* reexport safe */ _N3Reasoner__WEBPACK_IMPORTED_MODULE_8__[\"default\"]),\n/* harmony export */ Store: () => (/* reexport safe */ _N3Store__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n/* harmony export */ StoreFactory: () => (/* reexport safe */ _N3StoreFactory__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n/* harmony export */ StreamParser: () => (/* reexport safe */ _N3StreamParser__WEBPACK_IMPORTED_MODULE_5__[\"default\"]),\n/* harmony export */ StreamWriter: () => (/* reexport safe */ _N3StreamWriter__WEBPACK_IMPORTED_MODULE_6__[\"default\"]),\n/* harmony export */ Term: () => (/* reexport safe */ _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__.Term),\n/* harmony export */ Triple: () => (/* reexport safe */ _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__.Triple),\n/* harmony export */ Util: () => (/* reexport module object */ _N3Util__WEBPACK_IMPORTED_MODULE_7__),\n/* harmony export */ Variable: () => (/* reexport safe */ _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__.Variable),\n/* harmony export */ Writer: () => (/* reexport safe */ _N3Writer__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ getRulesFromDataset: () => (/* reexport safe */ _N3Reasoner__WEBPACK_IMPORTED_MODULE_8__.getRulesFromDataset),\n/* harmony export */ termFromId: () => (/* reexport safe */ _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__.termFromId),\n/* harmony export */ termToId: () => (/* reexport safe */ _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__.termToId)\n/* harmony export */ });\n/* harmony import */ var _N3Lexer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./N3Lexer */ \"./node_modules/n3/src/N3Lexer.js\");\n/* harmony import */ var _N3Parser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./N3Parser */ \"./node_modules/n3/src/N3Parser.js\");\n/* harmony import */ var _N3Writer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./N3Writer */ \"./node_modules/n3/src/N3Writer.js\");\n/* harmony import */ var _N3Store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./N3Store */ \"./node_modules/n3/src/N3Store.js\");\n/* harmony import */ var _N3StoreFactory__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./N3StoreFactory */ \"./node_modules/n3/src/N3StoreFactory.js\");\n/* harmony import */ var _N3Reasoner__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./N3Reasoner */ \"./node_modules/n3/src/N3Reasoner.js\");\n/* harmony import */ var _N3StreamParser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./N3StreamParser */ \"./node_modules/n3/src/N3StreamParser.js\");\n/* harmony import */ var _N3StreamWriter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./N3StreamWriter */ \"./node_modules/n3/src/N3StreamWriter.js\");\n/* harmony import */ var _N3Util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./N3Util */ \"./node_modules/n3/src/N3Util.js\");\n/* harmony import */ var _BaseIRI__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./BaseIRI */ \"./node_modules/n3/src/BaseIRI.js\");\n/* harmony import */ var _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./N3DataFactory */ \"./node_modules/n3/src/N3DataFactory.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n// Named exports\n\n\n// Export all named exports as a default object for backward compatibility\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n Lexer: _N3Lexer__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n Parser: _N3Parser__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n Writer: _N3Writer__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n Store: _N3Store__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n StoreFactory: _N3StoreFactory__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n EntityIndex: _N3Store__WEBPACK_IMPORTED_MODULE_3__.N3EntityIndex,\n StreamParser: _N3StreamParser__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n StreamWriter: _N3StreamWriter__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n Util: _N3Util__WEBPACK_IMPORTED_MODULE_7__,\n Reasoner: _N3Reasoner__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n BaseIRI: _BaseIRI__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n\n DataFactory: _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n\n Term: _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__.Term,\n NamedNode: _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__.NamedNode,\n Literal: _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__.Literal,\n BlankNode: _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__.BlankNode,\n Variable: _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__.Variable,\n DefaultGraph: _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__.DefaultGraph,\n Quad: _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__.Quad,\n Triple: _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__.Triple,\n\n termFromId: _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__.termFromId,\n termToId: _N3DataFactory__WEBPACK_IMPORTED_MODULE_10__.termToId,\n});\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/n3/src/index.js?");
|
|
216
271
|
|
|
217
272
|
/***/ }),
|
|
218
273
|
|
|
@@ -226,16 +281,6 @@ eval("// shim for using process in browser\nvar process = module.exports = {};\n
|
|
|
226
281
|
|
|
227
282
|
/***/ }),
|
|
228
283
|
|
|
229
|
-
/***/ "./node_modules/queue-microtask/index.js":
|
|
230
|
-
/*!***********************************************!*\
|
|
231
|
-
!*** ./node_modules/queue-microtask/index.js ***!
|
|
232
|
-
\***********************************************/
|
|
233
|
-
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
234
|
-
|
|
235
|
-
eval("/*! queue-microtask. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\nlet promise\n\nmodule.exports = typeof queueMicrotask === 'function'\n ? queueMicrotask.bind(typeof window !== 'undefined' ? window : __webpack_require__.g)\n // reuse resolved promise, and allocate it lazily\n : cb => (promise || (promise = Promise.resolve()))\n .then(cb)\n .catch(err => setTimeout(() => { throw err }, 0))\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/queue-microtask/index.js?");
|
|
236
|
-
|
|
237
|
-
/***/ }),
|
|
238
|
-
|
|
239
284
|
/***/ "./node_modules/rdf-data-factory/index.js":
|
|
240
285
|
/*!************************************************!*\
|
|
241
286
|
!*** ./node_modules/rdf-data-factory/index.js ***!
|
|
@@ -324,6 +369,292 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
324
369
|
|
|
325
370
|
/***/ }),
|
|
326
371
|
|
|
372
|
+
/***/ "./node_modules/rdf-stores/index.js":
|
|
373
|
+
/*!******************************************!*\
|
|
374
|
+
!*** ./node_modules/rdf-stores/index.js ***!
|
|
375
|
+
\******************************************/
|
|
376
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
377
|
+
|
|
378
|
+
"use strict";
|
|
379
|
+
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./lib/dataset/DatasetCoreWrapper */ \"./node_modules/rdf-stores/lib/dataset/DatasetCoreWrapper.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/dictionary/ITermDictionary */ \"./node_modules/rdf-stores/lib/dictionary/ITermDictionary.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/dictionary/TermDictionaryNumberMap */ \"./node_modules/rdf-stores/lib/dictionary/TermDictionaryNumberMap.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/dictionary/TermDictionaryNumberRecord */ \"./node_modules/rdf-stores/lib/dictionary/TermDictionaryNumberRecord.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/dictionary/TermDictionaryNumberRecordFullTerms */ \"./node_modules/rdf-stores/lib/dictionary/TermDictionaryNumberRecordFullTerms.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/dictionary/TermDictionaryQuoted */ \"./node_modules/rdf-stores/lib/dictionary/TermDictionaryQuoted.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/dictionary/TermDictionaryQuotedIndexed */ \"./node_modules/rdf-stores/lib/dictionary/TermDictionaryQuotedIndexed.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/dictionary/TermDictionaryQuotedReferential */ \"./node_modules/rdf-stores/lib/dictionary/TermDictionaryQuotedReferential.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/dictionary/TermDictionarySymbol */ \"./node_modules/rdf-stores/lib/dictionary/TermDictionarySymbol.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/index/IRdfStoreIndex */ \"./node_modules/rdf-stores/lib/index/IRdfStoreIndex.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/index/RdfStoreIndexNestedMap */ \"./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMap.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/index/RdfStoreIndexNestedMapQuoted */ \"./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMapQuoted.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/index/RdfStoreIndexNestedMapRecursive */ \"./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMapRecursive.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/index/RdfStoreIndexNestedMapRecursiveQuoted */ \"./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMapRecursiveQuoted.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/index/RdfStoreIndexNestedRecord */ \"./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedRecord.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/index/RdfStoreIndexNestedRecordQuoted */ \"./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedRecordQuoted.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/IRdfStoreOptions */ \"./node_modules/rdf-stores/lib/IRdfStoreOptions.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/OrderUtils */ \"./node_modules/rdf-stores/lib/OrderUtils.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/PatternTerm */ \"./node_modules/rdf-stores/lib/PatternTerm.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/RdfStore */ \"./node_modules/rdf-stores/lib/RdfStore.js\"), exports);\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-stores/index.js?");
|
|
380
|
+
|
|
381
|
+
/***/ }),
|
|
382
|
+
|
|
383
|
+
/***/ "./node_modules/rdf-stores/lib/IRdfStoreOptions.js":
|
|
384
|
+
/*!*********************************************************!*\
|
|
385
|
+
!*** ./node_modules/rdf-stores/lib/IRdfStoreOptions.js ***!
|
|
386
|
+
\*********************************************************/
|
|
387
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
388
|
+
|
|
389
|
+
"use strict";
|
|
390
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceMappingURL=IRdfStoreOptions.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-stores/lib/IRdfStoreOptions.js?");
|
|
391
|
+
|
|
392
|
+
/***/ }),
|
|
393
|
+
|
|
394
|
+
/***/ "./node_modules/rdf-stores/lib/OrderUtils.js":
|
|
395
|
+
/*!***************************************************!*\
|
|
396
|
+
!*** ./node_modules/rdf-stores/lib/OrderUtils.js ***!
|
|
397
|
+
\***************************************************/
|
|
398
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
399
|
+
|
|
400
|
+
"use strict";
|
|
401
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.QUAD_TERM_NAMES_INVERSE = void 0;\nexports.getBestIndex = getBestIndex;\nexports.getComponentOrderScore = getComponentOrderScore;\nexports.orderQuadComponents = orderQuadComponents;\nexports.encodeOptionalTerms = encodeOptionalTerms;\nexports.quadToPattern = quadToPattern;\nexports.quadHasVariables = quadHasVariables;\nexports.arePatternsQuoted = arePatternsQuoted;\nconst rdf_terms_1 = __webpack_require__(/*! rdf-terms */ \"./node_modules/rdf-terms/index.js\");\nexports.QUAD_TERM_NAMES_INVERSE = Object.fromEntries(rdf_terms_1.QUAD_TERM_NAMES.map((value, key) => [value, key]));\n/**\n * Determine the best suitable order's index among the given orders for the given quad pattern.\n * @param componentOrders Possible orders of quad components.\n * @param quadPattern A quad pattern.\n */\nfunction getBestIndex(componentOrders, quadPattern) {\n if (componentOrders.length === 1 || quadPattern.every(term => term !== undefined)) {\n return 0;\n }\n // Determine the quad component names for which we require a defined lookup\n const definedQuadComponentNames = [];\n for (let quadComponentId = 0; quadComponentId < rdf_terms_1.QUAD_TERM_NAMES.length; quadComponentId++) {\n if (quadPattern[quadComponentId]) {\n definedQuadComponentNames.push(rdf_terms_1.QUAD_TERM_NAMES[quadComponentId]);\n }\n }\n // Score indexes by how well they match to the index\n const scoredIndexes = componentOrders.map((componentOrder, index) => {\n const score = getComponentOrderScore(componentOrder, definedQuadComponentNames);\n return { score, index };\n });\n // Sort the indexes, and pick the first one\n return scoredIndexes.sort((scoredLeft, scoredRight) => scoredRight.score - scoredLeft.score)[0].index;\n}\n/**\n * Determine the score of the given partial component order in the given component order.\n * @param componentOrder A quad component order.\n * @param partialComponentOrder A partial quad component order that originates from a quad pattern.\n */\nfunction getComponentOrderScore(componentOrder, partialComponentOrder) {\n return componentOrder\n .map((order, i) => partialComponentOrder.includes(order) ? componentOrder.length - i : 0)\n .reduce((acc, add) => acc + add, 0);\n}\n/**\n * Order a quad pattern's terms based on the given component order.\n * @param desiredComponentOrder The desired order of components.\n * @param quadPattern A quad pattern.\n */\nfunction orderQuadComponents(desiredComponentOrder, quadPattern) {\n return desiredComponentOrder.map(desiredComponent => {\n const desiredComponentIndex = exports.QUAD_TERM_NAMES_INVERSE[desiredComponent];\n return quadPattern[desiredComponentIndex];\n });\n}\n/**\n * Encode the given array of quad terms.\n * @param terms Non-encoded quad terms.\n * @param dictionary A dictionary\n * @return array An array of encoded terms.\n * The array will be undefined if at least one of the patterns does not occur within the dictionary.\n */\nfunction encodeOptionalTerms(terms, dictionary) {\n const encodedTerms = terms.map(term => {\n if (term) {\n if (term.termType === 'Quad' && quadHasVariables(term)) {\n return;\n }\n const encodedTerm = dictionary.encodeOptional(term);\n if (encodedTerm === undefined) {\n return 'none';\n }\n return encodedTerm;\n }\n return term;\n });\n if (encodedTerms.includes('none')) {\n return undefined;\n }\n return encodedTerms;\n}\n/**\n * Convert a quad patter to a `QuadPatternTerms` type.\n * @param subject The subject.\n * @param predicate The predicate.\n * @param object The object.\n * @param graph The graph.\n * @param quotedPatterns If the index supports quoted triple filtering.\n * @return Tuple A tuple of QuadPatternTerms\n * and a boolean indicating if post-filtering will be needed on quoted triples.\n * This boolean can only be true if `quotedPatterns` is false, and a quoted triple pattern was present.\n */\nfunction quadToPattern(subject, predicate, object, graph, quotedPatterns) {\n let requireQuotedTripleFiltering = false;\n const quadPatternTerms = [subject || undefined, predicate || undefined, object || undefined, graph || undefined]\n .map(term => {\n if (term) {\n if (term.termType === 'Variable') {\n return;\n }\n if (term.termType === 'Quad') {\n if (quotedPatterns) {\n return term;\n }\n requireQuotedTripleFiltering = true;\n return;\n }\n }\n return term;\n });\n return [quadPatternTerms, requireQuotedTripleFiltering];\n}\n/**\n * Check if the given quad contains variables, even in deeply nested quoted triples.\n * @param currentTerm The quad pattern term.\n */\nfunction quadHasVariables(currentTerm) {\n for (const component of rdf_terms_1.QUAD_TERM_NAMES) {\n const subTerm = currentTerm[component];\n if (subTerm.termType === 'Variable' || (subTerm.termType === 'Quad' && quadHasVariables(subTerm))) {\n return true;\n }\n }\n return false;\n}\n/**\n * Create a boolean array indicating which terms are quoted triple patterns.\n * @param terms An array of terms.\n */\nfunction arePatternsQuoted(terms) {\n return terms.map(term => term?.termType === 'Quad' && quadHasVariables(term));\n}\n//# sourceMappingURL=OrderUtils.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-stores/lib/OrderUtils.js?");
|
|
402
|
+
|
|
403
|
+
/***/ }),
|
|
404
|
+
|
|
405
|
+
/***/ "./node_modules/rdf-stores/lib/PatternTerm.js":
|
|
406
|
+
/*!****************************************************!*\
|
|
407
|
+
!*** ./node_modules/rdf-stores/lib/PatternTerm.js ***!
|
|
408
|
+
\****************************************************/
|
|
409
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
410
|
+
|
|
411
|
+
"use strict";
|
|
412
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceMappingURL=PatternTerm.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-stores/lib/PatternTerm.js?");
|
|
413
|
+
|
|
414
|
+
/***/ }),
|
|
415
|
+
|
|
416
|
+
/***/ "./node_modules/rdf-stores/lib/RdfStore.js":
|
|
417
|
+
/*!*************************************************!*\
|
|
418
|
+
!*** ./node_modules/rdf-stores/lib/RdfStore.js ***!
|
|
419
|
+
\*************************************************/
|
|
420
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
421
|
+
|
|
422
|
+
"use strict";
|
|
423
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RdfStore = void 0;\nconst asynciterator_1 = __webpack_require__(/*! asynciterator */ \"./node_modules/asynciterator/dist/asynciterator.js\");\nconst rdf_data_factory_1 = __webpack_require__(/*! rdf-data-factory */ \"./node_modules/rdf-data-factory/index.js\");\nconst rdf_terms_1 = __webpack_require__(/*! rdf-terms */ \"./node_modules/rdf-terms/index.js\");\nconst DatasetCoreWrapper_1 = __webpack_require__(/*! ./dataset/DatasetCoreWrapper */ \"./node_modules/rdf-stores/lib/dataset/DatasetCoreWrapper.js\");\nconst TermDictionaryNumberRecordFullTerms_1 = __webpack_require__(/*! ./dictionary/TermDictionaryNumberRecordFullTerms */ \"./node_modules/rdf-stores/lib/dictionary/TermDictionaryNumberRecordFullTerms.js\");\nconst TermDictionaryQuotedIndexed_1 = __webpack_require__(/*! ./dictionary/TermDictionaryQuotedIndexed */ \"./node_modules/rdf-stores/lib/dictionary/TermDictionaryQuotedIndexed.js\");\nconst RdfStoreIndexNestedMapQuoted_1 = __webpack_require__(/*! ./index/RdfStoreIndexNestedMapQuoted */ \"./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMapQuoted.js\");\nconst OrderUtils_1 = __webpack_require__(/*! ./OrderUtils */ \"./node_modules/rdf-stores/lib/OrderUtils.js\");\n/**\n * An RDF store allows quads to be stored and fetched, based on one or more customizable indexes.\n */\nclass RdfStore {\n constructor(options) {\n this.features = { quotedTripleFiltering: true };\n this._size = 0;\n this.options = options;\n this.dataFactory = options.dataFactory;\n this.dictionary = options.dictionary;\n this.indexesWrapped = RdfStore.constructIndexesWrapped(options);\n this.indexesWrappedComponentOrders = this.indexesWrapped.map(indexThis => indexThis.componentOrder);\n }\n /**\n * Create an RDF store with default settings.\n * Concretely, this store stores triples in GSPO, GPOS, and GOSP order,\n * and makes use of in-memory number dictionary encoding.\n */\n static createDefault() {\n return new RdfStore({\n indexCombinations: RdfStore.DEFAULT_INDEX_COMBINATIONS,\n indexConstructor: subOptions => new RdfStoreIndexNestedMapQuoted_1.RdfStoreIndexNestedMapQuoted(subOptions),\n dictionary: new TermDictionaryQuotedIndexed_1.TermDictionaryQuotedIndexed(new TermDictionaryNumberRecordFullTerms_1.TermDictionaryNumberRecordFullTerms()),\n dataFactory: new rdf_data_factory_1.DataFactory(),\n });\n }\n /**\n * Internal helper to create index objects.\n * @param options The RDF store options object.\n */\n static constructIndexesWrapped(options) {\n const indexes = [];\n if (options.indexCombinations.length === 0) {\n throw new Error('At least one index combination is required');\n }\n for (const componentOrder of options.indexCombinations) {\n if (!RdfStore.isCombinationValid(componentOrder)) {\n throw new Error(`Invalid index combination: ${componentOrder}`);\n }\n indexes.push({\n index: options.indexConstructor(options),\n componentOrder,\n componentOrderInverse: Object.fromEntries(componentOrder.map((value, key) => [value, key])),\n });\n }\n return indexes;\n }\n /**\n * Check if a given quad term order is valid.\n * @param combination A quad term order.\n */\n static isCombinationValid(combination) {\n for (const quadTermName of rdf_terms_1.QUAD_TERM_NAMES) {\n if (!combination.includes(quadTermName)) {\n return false;\n }\n }\n return combination.length === 4;\n }\n /**\n * The number of quads in this store.\n */\n get size() {\n return this._size;\n }\n /**\n * Add a quad to the store.\n * @param quad An RDF quad.\n * @return boolean If the quad was not yet present in the index.\n */\n addQuad(quad) {\n const quadEncoded = [\n this.dictionary.encode(quad.subject),\n this.dictionary.encode(quad.predicate),\n this.dictionary.encode(quad.object),\n this.dictionary.encode(quad.graph),\n ];\n let newQuad = false;\n for (const indexWrapped of this.indexesWrapped) {\n // Before sending the quad to the index, make sure its components are ordered corresponding to the index's order.\n newQuad = indexWrapped.index\n .set((0, OrderUtils_1.orderQuadComponents)(indexWrapped.componentOrder, quadEncoded), true);\n }\n if (newQuad) {\n this._size++;\n return true;\n }\n return false;\n }\n /**\n * Remove a quad from the store.\n * @param quad An RDF quad.\n * @return boolean If the quad was present in the index.\n */\n removeQuad(quad) {\n const quadEncoded = [\n this.dictionary.encodeOptional(quad.subject),\n this.dictionary.encodeOptional(quad.predicate),\n this.dictionary.encodeOptional(quad.object),\n this.dictionary.encodeOptional(quad.graph),\n ];\n // We can quickly return false if the quad is not present in the dictionary\n // eslint-disable-next-line unicorn/no-useless-undefined\n if (quadEncoded.includes(undefined)) {\n return false;\n }\n let wasPresent = false;\n for (const indexWrapped of this.indexesWrapped) {\n // Before sending the quad to the index, make sure its components are ordered corresponding to the index's order.\n wasPresent = indexWrapped.index\n .remove((0, OrderUtils_1.orderQuadComponents)(indexWrapped.componentOrder, quadEncoded));\n if (!wasPresent) {\n break;\n }\n }\n if (wasPresent) {\n this._size--;\n return true;\n }\n return false;\n }\n /**\n * Removes all streamed quads.\n * @param stream A stream of quads\n */\n remove(stream) {\n stream.on('data', quad => this.removeQuad(quad));\n return stream;\n }\n /**\n * All quads matching the pattern will be removed.\n * @param subject The optional subject.\n * @param predicate The optional predicate.\n * @param object The optional object.\n * @param graph The optional graph.\n */\n removeMatches(subject, predicate, object, graph) {\n return this.remove(this.match(subject, predicate, object, graph));\n }\n /**\n * Deletes the given named graph.\n * @param graph The graph term or string to match.\n */\n deleteGraph(graph) {\n if (typeof graph === 'string') {\n graph = this.dataFactory.namedNode(graph);\n }\n return this.removeMatches(undefined, undefined, undefined, graph);\n }\n /**\n * Import the given stream of quads into the store.\n * @param stream A stream of RDF quads.\n */\n import(stream) {\n stream.on('data', (quad) => this.addQuad(quad));\n return stream;\n }\n /**\n * Returns a generator producing all quads matching the pattern.\n * @param subject The optional subject.\n * @param predicate The optional predicate.\n * @param object The optional object.\n * @param graph The optional graph.\n */\n *readQuads(subject, predicate, object, graph) {\n // Check if our dictionary and our indexes have quoted pattern support\n const indexesSupportQuotedPatterns = Boolean(this.dictionary.features.quotedTriples) &&\n Object.values(this.indexesWrapped).every(wrapped => wrapped.index.features.quotedTripleFiltering);\n // Construct a quad pattern array\n const [quadComponents, requireQuotedTripleFiltering] = (0, OrderUtils_1.quadToPattern)(subject, predicate, object, graph, indexesSupportQuotedPatterns);\n // Determine the best index for this pattern\n const indexWrapped = this.indexesWrapped[(0, OrderUtils_1.getBestIndex)(this.indexesWrappedComponentOrders, quadComponents)];\n // Re-order the quad pattern based on this best index's component order\n const quadComponentsOrdered = (0, OrderUtils_1.orderQuadComponents)(indexWrapped.componentOrder, quadComponents);\n // Call the best index's find method.\n // eslint-disable-next-line unicorn/no-array-callback-reference\n for (const decomposedQuad of indexWrapped.index.find(quadComponentsOrdered)) {\n // De-order the resulting quad components into the normal SPOG order for quad creation.\n const quad = this.dataFactory.quad(decomposedQuad[indexWrapped.componentOrderInverse.subject], decomposedQuad[indexWrapped.componentOrderInverse.predicate], decomposedQuad[indexWrapped.componentOrderInverse.object], decomposedQuad[indexWrapped.componentOrderInverse.graph]);\n if (requireQuotedTripleFiltering) {\n if ((0, rdf_terms_1.matchPattern)(quad, subject, predicate, object, graph)) {\n yield quad;\n }\n }\n else {\n yield quad;\n }\n }\n }\n /**\n * Returns an array containing all quads matching the pattern.\n * @param subject The optional subject.\n * @param predicate The optional predicate.\n * @param object The optional object.\n * @param graph The optional graph.\n */\n getQuads(subject, predicate, object, graph) {\n return [...this.readQuads(subject, predicate, object, graph)];\n }\n /**\n * Returns a stream that produces all quads matching the pattern.\n * @param subject The optional subject.\n * @param predicate The optional predicate.\n * @param object The optional object.\n * @param graph The optional graph.\n */\n match(subject, predicate, object, graph) {\n return (0, asynciterator_1.wrap)(this.readQuads(subject, predicate, object, graph));\n }\n /**\n * Returns a generator producing all quads matching the pattern.\n * @param subject The subject, which can be a variable.\n * @param predicate The predicate, which can be a variable.\n * @param object The object, which can be a variable.\n * @param graph The graph, which can be a variable.\n */\n *readBindings(bindingsFactory, subject, predicate, object, graph) {\n // Check if our dictionary and our indexes have quoted pattern support\n const indexesSupportQuotedPatterns = Boolean(this.dictionary.features.quotedTriples) &&\n Object.values(this.indexesWrapped).every(wrapped => wrapped.index.features.quotedTripleFiltering);\n // Construct a quad pattern array\n const [quadComponents, requireQuotedTripleFiltering] = (0, OrderUtils_1.quadToPattern)(subject, predicate, object, graph, indexesSupportQuotedPatterns);\n // Determine the best index for this pattern\n const indexWrapped = this.indexesWrapped[(0, OrderUtils_1.getBestIndex)(this.indexesWrappedComponentOrders, quadComponents)];\n // Re-order the quad pattern based on this best index's component order\n const quadComponentsOrdered = (0, OrderUtils_1.orderQuadComponents)(indexWrapped.componentOrder, quadComponents);\n const ids = (0, OrderUtils_1.encodeOptionalTerms)(quadComponentsOrdered, this.dictionary);\n // Abort if any of the terms does not exist in the dictionary\n if (!ids) {\n return;\n }\n // Collect variables to bind\n const terms = (0, OrderUtils_1.orderQuadComponents)(indexWrapped.componentOrder, [subject, predicate, object, graph]);\n const variableIndexes = [];\n for (let i = 0; i < terms.length; i++) {\n if (terms[i].termType === 'Variable' || terms[i].termType === 'Quad') {\n variableIndexes.push(i);\n }\n }\n // Check if we need to do post-filtering for overlapping variables\n let shouldFilterIndexes = false;\n const filterIndexes = terms.map((variable, i) => {\n const equalVariables = [];\n for (let j = i + 1; j < terms.length; j++) {\n if (variable.equals(terms[j])) {\n equalVariables.push(j);\n shouldFilterIndexes = true;\n }\n }\n return equalVariables;\n });\n // Call the best index's find method.\n for (const decomposedQuadEncoded of indexWrapped.index\n .findEncoded(ids, quadComponentsOrdered)) {\n let skipBinding = false;\n let checkForBindingConflicts = false;\n const bindingsEntries = [];\n for (const i of variableIndexes) {\n // If we had overlapping variables, potentially exclude this binding if values for variable are unequal\n if (shouldFilterIndexes) {\n const filterI = filterIndexes[i];\n if (filterI) {\n for (const j of filterI) {\n if (decomposedQuadEncoded[i] !== decomposedQuadEncoded[j]) {\n skipBinding = true;\n break;\n }\n }\n }\n if (skipBinding) {\n break;\n }\n }\n const decodedTerm = this.dictionary.decode(decomposedQuadEncoded[i]);\n // Handle quoted triples\n // TODO: it may be possible to implement a more efficient of findEncoded if requireQuotedTripleFiltering is\n // false that would return bindings instead of quads. The following could then be skipped.\n // variableIndexes would also need to be changed to check requireQuotedTripleFiltering (see readQuads).\n if (terms[i].termType === 'Quad') {\n if (decodedTerm.termType === 'Quad') {\n // If the term is a quad, it may also contain nested variables,\n // so we need to extract those additional bindings.\n const additionalBindings = (0, rdf_terms_1.matchPatternMappings)(decodedTerm, terms[i], { returnMappings: true });\n if (additionalBindings) {\n checkForBindingConflicts = true;\n for (const [key, value] of Object.entries(additionalBindings)) {\n const variable = this.dataFactory.variable(key);\n if (bindingsEntries.some(entry => entry[0].equals(variable) && !entry[1].equals(value))) {\n // Skip this binding if we find conflicting variable bindings\n skipBinding = true;\n break;\n }\n bindingsEntries.push([variable, value]);\n }\n continue;\n }\n }\n skipBinding = true;\n break;\n }\n // If for the current bindings object, we previously found a quoted quad term that bound variables within it,\n // make sure that later bindings to this variable from other terms don't conflict.\n if (checkForBindingConflicts && bindingsEntries\n .some(entry => entry[0].equals(terms[i]) && !entry[1].equals(decodedTerm))) {\n // Skip this binding if we find conflicting variable bindings\n skipBinding = true;\n break;\n }\n bindingsEntries.push([terms[i], decodedTerm]);\n }\n if (!skipBinding) {\n // Create and yield the bindings object\n yield bindingsFactory.bindings(bindingsEntries);\n }\n }\n }\n /**\n * Returns an array containing all bindings matching the pattern.\n * @param bindingsFactory The factory that will be used to create bindings.\n * @param subject The subject, which can be a variable.\n * @param predicate The predicate, which can be a variable.\n * @param object The object, which can be a variable.\n * @param graph The graph, which can be a variable.\n */\n getBindings(bindingsFactory, subject, predicate, object, graph) {\n return [...this.readBindings(bindingsFactory, subject, predicate, object, graph)];\n }\n /**\n * Returns a stream that produces all quads matching the pattern.\n * @param bindingsFactory The factory that will be used to create bindings.\n * @param subject The subject, which can be a variable.\n * @param predicate The predicate, which can be a variable.\n * @param object The object, which can be a variable.\n * @param graph The graph, which can be a variable.\n */\n matchBindings(bindingsFactory, subject, predicate, object, graph) {\n return (0, asynciterator_1.wrap)(this.readBindings(bindingsFactory, subject, predicate, object, graph));\n }\n /**\n * Returns the exact cardinality of the quads matching the pattern.\n * @param subject The optional subject.\n * @param predicate The optional predicate.\n * @param object The optional object.\n * @param graph The optional graph.\n */\n countQuads(subject, predicate, object, graph) {\n // Check if our dictionary and our indexes have quoted pattern support\n const indexesSupportQuotedPatterns = Boolean(this.dictionary.features.quotedTriples) &&\n Object.values(this.indexesWrapped).every(wrapped => wrapped.index.features.quotedTripleFiltering);\n // Construct a quad pattern array\n const [quadComponents] = (0, OrderUtils_1.quadToPattern)(subject, predicate, object, graph, indexesSupportQuotedPatterns);\n // Optimize all-variables pattern\n if (quadComponents.every(quadComponent => quadComponent === undefined)) {\n return this.size;\n }\n // Determine the best index for this pattern\n const indexWrapped = this.indexesWrapped[(0, OrderUtils_1.getBestIndex)(this.indexesWrappedComponentOrders, quadComponents)];\n // Re-order the quad pattern based on this best index's component order\n const quadComponentsOrdered = (0, OrderUtils_1.orderQuadComponents)(indexWrapped.componentOrder, quadComponents);\n // Call the best index's count method.\n return indexWrapped.index.count(quadComponentsOrdered);\n }\n /**\n * Wrap this store inside a DatasetCore interface.\n * Any mutations in either this store or the wrapper will propagate to each other.\n */\n asDataset() {\n return new DatasetCoreWrapper_1.DatasetCoreWrapper(this);\n }\n}\nexports.RdfStore = RdfStore;\nRdfStore.DEFAULT_INDEX_COMBINATIONS = [\n ['graph', 'subject', 'predicate', 'object'],\n ['graph', 'predicate', 'object', 'subject'],\n ['graph', 'object', 'subject', 'predicate'],\n];\n//# sourceMappingURL=RdfStore.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-stores/lib/RdfStore.js?");
|
|
424
|
+
|
|
425
|
+
/***/ }),
|
|
426
|
+
|
|
427
|
+
/***/ "./node_modules/rdf-stores/lib/dataset/DatasetCoreWrapper.js":
|
|
428
|
+
/*!*******************************************************************!*\
|
|
429
|
+
!*** ./node_modules/rdf-stores/lib/dataset/DatasetCoreWrapper.js ***!
|
|
430
|
+
\*******************************************************************/
|
|
431
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
432
|
+
|
|
433
|
+
"use strict";
|
|
434
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DatasetCoreWrapper = void 0;\nconst RdfStore_1 = __webpack_require__(/*! ../RdfStore */ \"./node_modules/rdf-stores/lib/RdfStore.js\");\n/**\n * A DatasetCoreWrapper exposes an RdfStore inside an RDF.DatasetCore.\n */\nclass DatasetCoreWrapper {\n constructor(store) {\n this.store = store;\n }\n get size() {\n return this.store.size;\n }\n add(quad) {\n this.store.addQuad(quad);\n return this;\n }\n delete(quad) {\n this.store.removeQuad(quad);\n return this;\n }\n has(quad) {\n // eslint-disable-next-line no-unreachable-loop\n for (const result of this.store.readQuads(quad.subject, quad.predicate, quad.object, quad.graph)) {\n return true;\n }\n return false;\n }\n match(subject, predicate, object, graph) {\n const newStore = new RdfStore_1.RdfStore(this.store.options);\n for (const quad of this.store.readQuads(subject, predicate, object, graph)) {\n newStore.addQuad(quad);\n }\n return new DatasetCoreWrapper(newStore);\n }\n [Symbol.iterator]() {\n return this.store.readQuads();\n }\n}\nexports.DatasetCoreWrapper = DatasetCoreWrapper;\n//# sourceMappingURL=DatasetCoreWrapper.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-stores/lib/dataset/DatasetCoreWrapper.js?");
|
|
435
|
+
|
|
436
|
+
/***/ }),
|
|
437
|
+
|
|
438
|
+
/***/ "./node_modules/rdf-stores/lib/dictionary/ITermDictionary.js":
|
|
439
|
+
/*!*******************************************************************!*\
|
|
440
|
+
!*** ./node_modules/rdf-stores/lib/dictionary/ITermDictionary.js ***!
|
|
441
|
+
\*******************************************************************/
|
|
442
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
443
|
+
|
|
444
|
+
"use strict";
|
|
445
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceMappingURL=ITermDictionary.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-stores/lib/dictionary/ITermDictionary.js?");
|
|
446
|
+
|
|
447
|
+
/***/ }),
|
|
448
|
+
|
|
449
|
+
/***/ "./node_modules/rdf-stores/lib/dictionary/TermDictionaryNumberMap.js":
|
|
450
|
+
/*!***************************************************************************!*\
|
|
451
|
+
!*** ./node_modules/rdf-stores/lib/dictionary/TermDictionaryNumberMap.js ***!
|
|
452
|
+
\***************************************************************************/
|
|
453
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
454
|
+
|
|
455
|
+
"use strict";
|
|
456
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TermDictionaryNumberMap = void 0;\nconst rdf_data_factory_1 = __webpack_require__(/*! rdf-data-factory */ \"./node_modules/rdf-data-factory/index.js\");\nconst rdf_string_1 = __webpack_require__(/*! rdf-string */ \"./node_modules/rdf-string/index.js\");\n/**\n * A term dictionary that encodes to numbers, and stores the dictionary in memory in a Map.\n */\nclass TermDictionaryNumberMap {\n constructor(dataFactory = new rdf_data_factory_1.DataFactory()) {\n this.lastId = 0;\n this.dictionary = new Map();\n this.reverseDictionary = new Map();\n this.features = { quotedTriples: false };\n this.dataFactory = dataFactory;\n }\n encode(term) {\n const key = (0, rdf_string_1.termToString)(term);\n let encoded = this.dictionary.get(key);\n if (encoded === undefined) {\n encoded = this.lastId++;\n this.dictionary.set(key, encoded);\n this.reverseDictionary.set(encoded, key);\n }\n return encoded;\n }\n encodeOptional(term) {\n const key = (0, rdf_string_1.termToString)(term);\n return this.dictionary.get(key);\n }\n decode(encoding) {\n const string = this.reverseDictionary.get(encoding);\n if (string === undefined) {\n throw new Error(`The value ${encoding} is not present in this dictionary`);\n }\n return (0, rdf_string_1.stringToTerm)(string, this.dataFactory);\n }\n encodings() {\n return this.reverseDictionary.keys();\n }\n findQuotedTriples(quotedTriplePattern) {\n throw new Error('findQuotedTriples is not supported');\n }\n findQuotedTriplesEncoded(quotedTriplePattern) {\n throw new Error('findQuotedTriplesEncoded is not supported');\n }\n}\nexports.TermDictionaryNumberMap = TermDictionaryNumberMap;\n//# sourceMappingURL=TermDictionaryNumberMap.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-stores/lib/dictionary/TermDictionaryNumberMap.js?");
|
|
457
|
+
|
|
458
|
+
/***/ }),
|
|
459
|
+
|
|
460
|
+
/***/ "./node_modules/rdf-stores/lib/dictionary/TermDictionaryNumberRecord.js":
|
|
461
|
+
/*!******************************************************************************!*\
|
|
462
|
+
!*** ./node_modules/rdf-stores/lib/dictionary/TermDictionaryNumberRecord.js ***!
|
|
463
|
+
\******************************************************************************/
|
|
464
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
465
|
+
|
|
466
|
+
"use strict";
|
|
467
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TermDictionaryNumberRecord = void 0;\nconst rdf_data_factory_1 = __webpack_require__(/*! rdf-data-factory */ \"./node_modules/rdf-data-factory/index.js\");\nconst rdf_string_1 = __webpack_require__(/*! rdf-string */ \"./node_modules/rdf-string/index.js\");\n/**\n * A term dictionary that encodes to numbers, and stores the dictionary in memory in a Record.\n */\nclass TermDictionaryNumberRecord {\n constructor(dataFactory = new rdf_data_factory_1.DataFactory()) {\n this.lastId = 0;\n this.dictionary = {};\n this.reverseDictionary = {};\n this.features = { quotedTriples: false };\n this.dataFactory = dataFactory;\n }\n encode(term) {\n const key = (0, rdf_string_1.termToString)(term);\n let encoded = this.dictionary[key];\n if (encoded === undefined) {\n encoded = this.lastId++;\n this.dictionary[key] = encoded;\n this.reverseDictionary[encoded] = key;\n }\n return encoded;\n }\n encodeOptional(term) {\n const key = (0, rdf_string_1.termToString)(term);\n return this.dictionary[key];\n }\n decode(encoding) {\n const string = this.reverseDictionary[encoding];\n if (string === undefined) {\n throw new Error(`The value ${encoding} is not present in this dictionary`);\n }\n return (0, rdf_string_1.stringToTerm)(string, this.dataFactory);\n }\n *encodings() {\n for (const key of Object.keys(this.reverseDictionary)) {\n yield Number.parseInt(key, 10);\n }\n }\n findQuotedTriples(quotedTriplePattern) {\n throw new Error('findQuotedTriples is not supported');\n }\n findQuotedTriplesEncoded(quotedTriplePattern) {\n throw new Error('findQuotedTriplesEncoded is not supported');\n }\n}\nexports.TermDictionaryNumberRecord = TermDictionaryNumberRecord;\n//# sourceMappingURL=TermDictionaryNumberRecord.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-stores/lib/dictionary/TermDictionaryNumberRecord.js?");
|
|
468
|
+
|
|
469
|
+
/***/ }),
|
|
470
|
+
|
|
471
|
+
/***/ "./node_modules/rdf-stores/lib/dictionary/TermDictionaryNumberRecordFullTerms.js":
|
|
472
|
+
/*!***************************************************************************************!*\
|
|
473
|
+
!*** ./node_modules/rdf-stores/lib/dictionary/TermDictionaryNumberRecordFullTerms.js ***!
|
|
474
|
+
\***************************************************************************************/
|
|
475
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
476
|
+
|
|
477
|
+
"use strict";
|
|
478
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TermDictionaryNumberRecordFullTerms = void 0;\nconst rdf_data_factory_1 = __webpack_require__(/*! rdf-data-factory */ \"./node_modules/rdf-data-factory/index.js\");\nconst rdf_string_1 = __webpack_require__(/*! rdf-string */ \"./node_modules/rdf-string/index.js\");\n/**\n * A term dictionary that encodes to numbers, and stores the dictionary in memory in a Record.\n * The reverse dictionary will store full RDF term objects,\n * resulting in slightly better query performance at the cost of slightly higher memory usage.\n */\nclass TermDictionaryNumberRecordFullTerms {\n constructor(dataFactory = new rdf_data_factory_1.DataFactory()) {\n this.lastId = 0;\n this.dictionary = {};\n this.reverseDictionary = {};\n this.features = { quotedTriples: false };\n this.dataFactory = dataFactory;\n }\n encode(term) {\n const key = (0, rdf_string_1.termToString)(term);\n let encoded = this.dictionary[key];\n if (encoded === undefined) {\n encoded = this.lastId++;\n this.dictionary[key] = encoded;\n this.reverseDictionary[encoded] = term;\n }\n return encoded;\n }\n encodeOptional(term) {\n const key = (0, rdf_string_1.termToString)(term);\n return this.dictionary[key];\n }\n decode(encoding) {\n const string = this.reverseDictionary[encoding];\n if (string === undefined) {\n throw new Error(`The value ${encoding} is not present in this dictionary`);\n }\n return string;\n }\n *encodings() {\n for (const key of Object.keys(this.reverseDictionary)) {\n yield Number.parseInt(key, 10);\n }\n }\n findQuotedTriples(quotedTriplePattern) {\n throw new Error('findQuotedTriples is not supported');\n }\n findQuotedTriplesEncoded(quotedTriplePattern) {\n throw new Error('findQuotedTriplesEncoded is not supported');\n }\n}\nexports.TermDictionaryNumberRecordFullTerms = TermDictionaryNumberRecordFullTerms;\n//# sourceMappingURL=TermDictionaryNumberRecordFullTerms.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-stores/lib/dictionary/TermDictionaryNumberRecordFullTerms.js?");
|
|
479
|
+
|
|
480
|
+
/***/ }),
|
|
481
|
+
|
|
482
|
+
/***/ "./node_modules/rdf-stores/lib/dictionary/TermDictionaryQuoted.js":
|
|
483
|
+
/*!************************************************************************!*\
|
|
484
|
+
!*** ./node_modules/rdf-stores/lib/dictionary/TermDictionaryQuoted.js ***!
|
|
485
|
+
\************************************************************************/
|
|
486
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
487
|
+
|
|
488
|
+
"use strict";
|
|
489
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TermDictionaryQuoted = void 0;\nconst rdf_data_factory_1 = __webpack_require__(/*! rdf-data-factory */ \"./node_modules/rdf-data-factory/index.js\");\nconst rdf_terms_1 = __webpack_require__(/*! rdf-terms */ \"./node_modules/rdf-terms/index.js\");\n/**\n * A term dictionary for quoted triples.\n *\n * Plain terms and quoted triples are stored in separate dictionaries.\n *\n * Finding quoted triples is done by iterating over all quoted triples, and filtering by the matching ones.\n */\nclass TermDictionaryQuoted {\n constructor(plainTermDictionary, quotedTriplesDictionary, dataFactory = new rdf_data_factory_1.DataFactory()) {\n this.features = { quotedTriples: true };\n this.plainTermDictionary = plainTermDictionary;\n this.quotedTriplesDictionary = quotedTriplesDictionary;\n this.dataFactory = dataFactory;\n }\n encode(term) {\n if (term.termType === 'Quad') {\n // Mask MSB to indicate that the encoding should refer to the quoted triples dictionary.\n return TermDictionaryQuoted.BITMASK | (1 + this.quotedTriplesDictionary.encode(term));\n }\n return this.plainTermDictionary.encode(term);\n }\n encodeOptional(term) {\n if (term.termType === 'Quad') {\n const encoding = this.quotedTriplesDictionary.encodeOptional(term);\n if (encoding === undefined) {\n return encoding;\n }\n // Mask MSB to indicate that the encoding should refer to the quoted triples dictionary.\n return TermDictionaryQuoted.BITMASK | (1 + encoding);\n }\n return this.plainTermDictionary.encodeOptional(term);\n }\n decode(encoding) {\n if (TermDictionaryQuoted.BITMASK & encoding) {\n // Term comes from the quoted triples dictionary\n const encodingBase = (~TermDictionaryQuoted.BITMASK & encoding) - 1;\n return this.quotedTriplesDictionary.decode(encodingBase);\n }\n // Term comes from the plain terms dictionary\n return this.plainTermDictionary.decode(encoding);\n }\n *encodings() {\n for (const encoding of this.plainTermDictionary.encodings()) {\n yield encoding;\n }\n for (const encoding of this.quotedTriplesDictionary.encodings()) {\n yield TermDictionaryQuoted.BITMASK | (1 + encoding);\n }\n }\n *findQuotedTriples(quotedTriplePattern) {\n for (const termEncoded of this.findQuotedTriplesEncoded(quotedTriplePattern)) {\n yield this.decode(termEncoded);\n }\n }\n *findQuotedTriplesEncoded(quotedTriplePattern) {\n for (let encodedQuotedTriple of this.quotedTriplesDictionary.encodings()) {\n encodedQuotedTriple = TermDictionaryQuoted.BITMASK | (1 + encodedQuotedTriple);\n const quotedTriple = this.decode(encodedQuotedTriple);\n if ((0, rdf_terms_1.matchPattern)(quotedTriple, quotedTriplePattern.subject, quotedTriplePattern.predicate, quotedTriplePattern.object, quotedTriplePattern.graph)) {\n yield encodedQuotedTriple;\n }\n }\n }\n}\nexports.TermDictionaryQuoted = TermDictionaryQuoted;\nTermDictionaryQuoted.BITMASK = 1 << 31;\n//# sourceMappingURL=TermDictionaryQuoted.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-stores/lib/dictionary/TermDictionaryQuoted.js?");
|
|
490
|
+
|
|
491
|
+
/***/ }),
|
|
492
|
+
|
|
493
|
+
/***/ "./node_modules/rdf-stores/lib/dictionary/TermDictionaryQuotedIndexed.js":
|
|
494
|
+
/*!*******************************************************************************!*\
|
|
495
|
+
!*** ./node_modules/rdf-stores/lib/dictionary/TermDictionaryQuotedIndexed.js ***!
|
|
496
|
+
\*******************************************************************************/
|
|
497
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
498
|
+
|
|
499
|
+
"use strict";
|
|
500
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TermDictionaryQuotedIndexed = void 0;\nconst rdf_data_factory_1 = __webpack_require__(/*! rdf-data-factory */ \"./node_modules/rdf-data-factory/index.js\");\nconst RdfStoreIndexNestedMap_1 = __webpack_require__(/*! ../index/RdfStoreIndexNestedMap */ \"./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMap.js\");\nconst OrderUtils_1 = __webpack_require__(/*! ../OrderUtils */ \"./node_modules/rdf-stores/lib/OrderUtils.js\");\n/**\n * A term dictionary for quoted triples.\n *\n * Plain terms are stored in a regular dictionary.\n * Quoted triples are stored separately using an index, which is backed the same dictionary.\n *\n * Finding quoted triples is done through indexed lookups.\n */\nclass TermDictionaryQuotedIndexed {\n constructor(rawTermDictionary, dataFactory = new rdf_data_factory_1.DataFactory()) {\n this.quotedTriplesDictionary = [];\n this.features = { quotedTriples: true };\n this.plainTermDictionary = rawTermDictionary;\n const subIndexOpts = {\n // Not required\n indexCombinations: [],\n // Not required\n indexConstructor: undefined,\n dictionary: this,\n dataFactory,\n };\n this.quotedTriplesReverseDictionaries = [\n new RdfStoreIndexNestedMap_1.RdfStoreIndexNestedMap(subIndexOpts),\n new RdfStoreIndexNestedMap_1.RdfStoreIndexNestedMap(subIndexOpts),\n new RdfStoreIndexNestedMap_1.RdfStoreIndexNestedMap(subIndexOpts),\n ];\n this.dataFactory = dataFactory;\n }\n encode(term) {\n if (term.termType === 'Quad') {\n return this.encodeQuotedTriple(term, false);\n }\n return this.plainTermDictionary.encode(term);\n }\n encodeQuotedTriple(quad, optional) {\n // Only quoted triples are supported\n if (quad.graph.termType !== 'DefaultGraph') {\n throw new Error('Encoding of quoted quads outside of the default graph is not allowed');\n }\n // Check if the quad was already encoded\n const encodedTripleOptional = (0, OrderUtils_1.encodeOptionalTerms)([quad.subject, quad.predicate, quad.object, quad.graph], this);\n const id = encodedTripleOptional && encodedTripleOptional.every(encoded => encoded !== undefined) ?\n this.quotedTriplesReverseDictionaries[0].getEncoded(encodedTripleOptional) :\n undefined;\n // Return the encoding if we found one\n if (id !== undefined || optional) {\n // Mask MSB to indicate that the encoding should refer to the quoted triples dictionary.\n return (id === undefined ? undefined : TermDictionaryQuotedIndexed.BITMASK | id);\n }\n // If the quad was not encoded yet, add a new entry for it in the dictionary.\n const encodedTriple = [\n this.encode(quad.subject),\n this.encode(quad.predicate),\n this.encode(quad.object),\n ];\n const encodingBase = this.quotedTriplesDictionary.length + 1;\n this.quotedTriplesDictionary.push(encodedTriple);\n const encodedGraph = this.encode(this.dataFactory.defaultGraph());\n this.quotedTriplesReverseDictionaries[0].set([\n encodedTriple[0],\n encodedTriple[1],\n encodedTriple[2],\n encodedGraph,\n ], encodingBase);\n this.quotedTriplesReverseDictionaries[1].set([\n encodedTriple[1],\n encodedTriple[2],\n encodedTriple[0],\n encodedGraph,\n ], encodingBase);\n this.quotedTriplesReverseDictionaries[2].set([\n encodedTriple[2],\n encodedTriple[0],\n encodedTriple[1],\n encodedGraph,\n ], encodingBase);\n // Mask MSB to indicate that the encoding should refer to the quoted triples dictionary.\n return TermDictionaryQuotedIndexed.BITMASK | encodingBase;\n }\n encodeOptional(term) {\n if (term.termType === 'Quad') {\n return this.encodeQuotedTriple(term, true);\n }\n return this.plainTermDictionary.encodeOptional(term);\n }\n decode(encoding) {\n if (TermDictionaryQuotedIndexed.BITMASK & encoding) {\n // Term comes from the quoted triples dictionary\n const encodingBase = (~TermDictionaryQuotedIndexed.BITMASK & encoding) - 1;\n if (encodingBase >= this.quotedTriplesDictionary.length) {\n throw new Error(`The value ${encoding} is not present in the quoted triples range of the dictionary`);\n }\n const encodedTerms = this.quotedTriplesDictionary[encodingBase];\n return this.dataFactory.quad(this.decode(encodedTerms[0]), this.decode(encodedTerms[1]), this.decode(encodedTerms[2]));\n }\n // Term comes from the plain terms dictionary\n return this.plainTermDictionary.decode(encoding);\n }\n *encodings() {\n for (const encoding of this.plainTermDictionary.encodings()) {\n yield encoding;\n }\n for (const encoding of this.quotedTriplesDictionary.keys()) {\n yield TermDictionaryQuotedIndexed.BITMASK | (1 + encoding);\n }\n }\n *findQuotedTriples(quotedTriplePattern) {\n for (const termEncoded of this.findQuotedTriplesEncoded(quotedTriplePattern)) {\n yield this.decode(termEncoded);\n }\n }\n *findQuotedTriplesEncoded(quotedTriplePattern) {\n const [patternIn, requireQuotedTripleFiltering] = (0, OrderUtils_1.quadToPattern)(quotedTriplePattern.subject, quotedTriplePattern.predicate, quotedTriplePattern.object, quotedTriplePattern.graph, true);\n // Find all matching terms iteratively\n for (const termS of this.patternToIterable(patternIn[0])) {\n for (const termP of this.patternToIterable(patternIn[1])) {\n for (const termO of this.patternToIterable(patternIn[2])) {\n for (const termG of this.patternToIterable(patternIn[3])) {\n // Find all terms matching the pattern from the reverse indexes\n // We select the reverse index according to the current triple pattern\n if ((termS && termP) || (!termP && !termO)) {\n // SPO\n const pattern = [termS, termP, termO, termG];\n for (const termEncoded of this.quotedTriplesReverseDictionaries[0].findEncoded(pattern, patternIn)) {\n yield TermDictionaryQuotedIndexed.BITMASK |\n this.quotedTriplesReverseDictionaries[0].getEncoded(termEncoded);\n }\n }\n else if (!termS && termP) {\n // POS\n const pattern = [termP, termO, termS, termG];\n for (const termEncoded of this.quotedTriplesReverseDictionaries[1].findEncoded(pattern, patternIn)) {\n yield TermDictionaryQuotedIndexed.BITMASK |\n this.quotedTriplesReverseDictionaries[1].getEncoded(termEncoded);\n }\n }\n else {\n // OSP\n const pattern = [termO, termS, termP, termG];\n for (const termEncoded of this.quotedTriplesReverseDictionaries[2].findEncoded(pattern, patternIn)) {\n yield TermDictionaryQuotedIndexed.BITMASK |\n this.quotedTriplesReverseDictionaries[2].getEncoded(termEncoded);\n }\n }\n }\n }\n }\n }\n }\n /**\n * Helper function to convert a term to an iterator over encoded terms.\n * @param patternTerm A term.\n * @protected\n */\n *patternToIterable(patternTerm) {\n // If the term is another quoted quad, recursively find other quoted triples\n if (patternTerm?.termType === 'Quad') {\n yield* this.findQuotedTriplesEncoded(patternTerm);\n return;\n }\n // Undefined terms indicate a variable\n if (patternTerm === undefined) {\n // eslint-disable-next-line unicorn/no-useless-undefined\n yield undefined;\n return;\n }\n // Defined terms indicate a precise match\n const enc = this.encodeOptional(patternTerm);\n if (enc === undefined) {\n return;\n }\n yield enc;\n }\n}\nexports.TermDictionaryQuotedIndexed = TermDictionaryQuotedIndexed;\nTermDictionaryQuotedIndexed.BITMASK = 1 << 31;\n//# sourceMappingURL=TermDictionaryQuotedIndexed.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-stores/lib/dictionary/TermDictionaryQuotedIndexed.js?");
|
|
501
|
+
|
|
502
|
+
/***/ }),
|
|
503
|
+
|
|
504
|
+
/***/ "./node_modules/rdf-stores/lib/dictionary/TermDictionaryQuotedReferential.js":
|
|
505
|
+
/*!***********************************************************************************!*\
|
|
506
|
+
!*** ./node_modules/rdf-stores/lib/dictionary/TermDictionaryQuotedReferential.js ***!
|
|
507
|
+
\***********************************************************************************/
|
|
508
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
509
|
+
|
|
510
|
+
"use strict";
|
|
511
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TermDictionaryQuotedReferential = void 0;\nconst rdf_data_factory_1 = __webpack_require__(/*! rdf-data-factory */ \"./node_modules/rdf-data-factory/index.js\");\nconst rdf_terms_1 = __webpack_require__(/*! rdf-terms */ \"./node_modules/rdf-terms/index.js\");\nconst OrderUtils_1 = __webpack_require__(/*! ../OrderUtils */ \"./node_modules/rdf-stores/lib/OrderUtils.js\");\n/**\n * A term dictionary for quoted triples.\n *\n * Plain terms and quoted triples are stored in separate dictionaries,\n * but quoted triples are encoded using encodings from the plain term dictionary.\n *\n * Finding quoted triples is done by iterating over all quoted triples, and filtering by the matching ones.\n */\nclass TermDictionaryQuotedReferential {\n constructor(plainTermDictionary, dataFactory = new rdf_data_factory_1.DataFactory()) {\n this.quotedTriplesDictionary = [];\n this.quotedTriplesReverseDictionary = {};\n this.features = { quotedTriples: true };\n this.plainTermDictionary = plainTermDictionary;\n this.dataFactory = dataFactory;\n }\n encode(term) {\n if (term.termType === 'Quad') {\n return this.encodeQuotedTriple(term, false);\n }\n return this.plainTermDictionary.encode(term);\n }\n encodeQuotedTriple(quad, optional) {\n // Only quoted triples are supported\n if (quad.graph.termType !== 'DefaultGraph') {\n throw new Error('Encoding of quoted quads outside of the default graph is not allowed');\n }\n // Check if the quad was already encoded\n const encodedTripleOptional = (0, OrderUtils_1.encodeOptionalTerms)([quad.subject, quad.predicate, quad.object, undefined], this)?.slice(0, 3);\n const id = encodedTripleOptional && encodedTripleOptional.every(encoded => encoded !== undefined) ?\n this.quotedTriplesReverseDictionary[encodedTripleOptional.join(TermDictionaryQuotedReferential.SEPARATOR)] :\n undefined;\n // Return the encoding if we found one\n if (id !== undefined || optional) {\n // Mask MSB to indicate that the encoding should refer to the quoted triples dictionary.\n return (id === undefined ? undefined : TermDictionaryQuotedReferential.BITMASK | id);\n }\n // If the quad was not encoded yet, add a new entry for it in the dictionary.\n const encodedTriple = [\n this.encode(quad.subject),\n this.encode(quad.predicate),\n this.encode(quad.object),\n ];\n const encodingBase = this.quotedTriplesDictionary.length + 1;\n this.quotedTriplesDictionary.push(encodedTriple);\n this.quotedTriplesReverseDictionary[encodedTriple.join(TermDictionaryQuotedReferential.SEPARATOR)] = encodingBase;\n // Mask MSB to indicate that the encoding should refer to the quoted triples dictionary.\n return TermDictionaryQuotedReferential.BITMASK | encodingBase;\n }\n encodeOptional(term) {\n if (term.termType === 'Quad') {\n return this.encodeQuotedTriple(term, true);\n }\n return this.plainTermDictionary.encodeOptional(term);\n }\n decode(encoding) {\n if (TermDictionaryQuotedReferential.BITMASK & encoding) {\n // Term comes from the quoted triples dictionary\n const encodingBase = (~TermDictionaryQuotedReferential.BITMASK & encoding) - 1;\n if (encodingBase >= this.quotedTriplesDictionary.length) {\n throw new Error(`The value ${encoding} is not present in the quoted triples range of the dictionary`);\n }\n const encodedTerms = this.quotedTriplesDictionary[encodingBase];\n return this.dataFactory.quad(this.decode(encodedTerms[0]), this.decode(encodedTerms[1]), this.decode(encodedTerms[2]));\n }\n // Term comes from the plain terms dictionary\n return this.plainTermDictionary.decode(encoding);\n }\n *encodings() {\n for (const encoding of this.plainTermDictionary.encodings()) {\n yield encoding;\n }\n for (const encoding of this.quotedTriplesDictionary.keys()) {\n yield TermDictionaryQuotedReferential.BITMASK | (1 + encoding);\n }\n }\n *findQuotedTriples(quotedTriplePattern) {\n for (const termEncoded of this.findQuotedTriplesEncoded(quotedTriplePattern)) {\n yield this.decode(termEncoded);\n }\n }\n *findQuotedTriplesEncoded(quotedTriplePattern) {\n for (let encodedQuotedTriple of this.quotedTriplesDictionary.keys()) {\n encodedQuotedTriple = TermDictionaryQuotedReferential.BITMASK | (1 + encodedQuotedTriple);\n const quotedTriple = this.decode(encodedQuotedTriple);\n if ((0, rdf_terms_1.matchPattern)(quotedTriple, quotedTriplePattern.subject, quotedTriplePattern.predicate, quotedTriplePattern.object, quotedTriplePattern.graph)) {\n yield encodedQuotedTriple;\n }\n }\n }\n}\nexports.TermDictionaryQuotedReferential = TermDictionaryQuotedReferential;\nTermDictionaryQuotedReferential.BITMASK = 1 << 31;\nTermDictionaryQuotedReferential.SEPARATOR = '_';\n//# sourceMappingURL=TermDictionaryQuotedReferential.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-stores/lib/dictionary/TermDictionaryQuotedReferential.js?");
|
|
512
|
+
|
|
513
|
+
/***/ }),
|
|
514
|
+
|
|
515
|
+
/***/ "./node_modules/rdf-stores/lib/dictionary/TermDictionarySymbol.js":
|
|
516
|
+
/*!************************************************************************!*\
|
|
517
|
+
!*** ./node_modules/rdf-stores/lib/dictionary/TermDictionarySymbol.js ***!
|
|
518
|
+
\************************************************************************/
|
|
519
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
520
|
+
|
|
521
|
+
"use strict";
|
|
522
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TermDictionarySymbol = void 0;\nconst rdf_data_factory_1 = __webpack_require__(/*! rdf-data-factory */ \"./node_modules/rdf-data-factory/index.js\");\nconst rdf_string_1 = __webpack_require__(/*! rdf-string */ \"./node_modules/rdf-string/index.js\");\n/**\n * A term dictionary that encodes and decodes using symbols.\n */\nclass TermDictionarySymbol {\n constructor(dataFactory = new rdf_data_factory_1.DataFactory()) {\n this.features = { quotedTriples: false };\n this.dataFactory = dataFactory;\n }\n encode(term) {\n return Symbol.for(`rdf::${(0, rdf_string_1.termToString)(term)}`);\n }\n encodeOptional(term) {\n return this.encode(term);\n }\n decode(encoding) {\n const string = Symbol.keyFor(encoding);\n if (string === undefined) {\n throw new Error(`The value ${String(encoding)} is not present in this dictionary`);\n }\n return (0, rdf_string_1.stringToTerm)(string.slice(5), this.dataFactory);\n }\n encodings() {\n throw new Error('encodings is not supported');\n }\n findQuotedTriples(quotedTriplePattern) {\n throw new Error('findQuotedTriples is not supported');\n }\n findQuotedTriplesEncoded(quotedTriplePattern) {\n throw new Error('findQuotedTriplesEncoded is not supported');\n }\n}\nexports.TermDictionarySymbol = TermDictionarySymbol;\n//# sourceMappingURL=TermDictionarySymbol.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-stores/lib/dictionary/TermDictionarySymbol.js?");
|
|
523
|
+
|
|
524
|
+
/***/ }),
|
|
525
|
+
|
|
526
|
+
/***/ "./node_modules/rdf-stores/lib/index/IRdfStoreIndex.js":
|
|
527
|
+
/*!*************************************************************!*\
|
|
528
|
+
!*** ./node_modules/rdf-stores/lib/index/IRdfStoreIndex.js ***!
|
|
529
|
+
\*************************************************************/
|
|
530
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
531
|
+
|
|
532
|
+
"use strict";
|
|
533
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceMappingURL=IRdfStoreIndex.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-stores/lib/index/IRdfStoreIndex.js?");
|
|
534
|
+
|
|
535
|
+
/***/ }),
|
|
536
|
+
|
|
537
|
+
/***/ "./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMap.js":
|
|
538
|
+
/*!*********************************************************************!*\
|
|
539
|
+
!*** ./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMap.js ***!
|
|
540
|
+
\*********************************************************************/
|
|
541
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
542
|
+
|
|
543
|
+
"use strict";
|
|
544
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RdfStoreIndexNestedMap = void 0;\nconst OrderUtils_1 = __webpack_require__(/*! ../OrderUtils */ \"./node_modules/rdf-stores/lib/OrderUtils.js\");\n/**\n * An RDF store index that is implemented using nested Maps.\n */\nclass RdfStoreIndexNestedMap {\n constructor(options) {\n this.features = {\n quotedTripleFiltering: false,\n };\n this.dictionary = options.dictionary;\n this.nestedMap = new Map();\n }\n set(terms, value) {\n const map0 = this.nestedMap;\n let map1 = map0.get(terms[0]);\n if (!map1) {\n map1 = new Map();\n map0.set(terms[0], map1);\n }\n let map2 = map1.get(terms[1]);\n if (!map2) {\n map2 = new Map();\n map1.set(terms[1], map2);\n }\n let map3 = map2.get(terms[2]);\n if (!map3) {\n map3 = new Map();\n map2.set(terms[2], map3);\n }\n const contained = map3.has(terms[3]);\n if (!contained) {\n map3.set(terms[3], value);\n }\n return !contained;\n }\n remove(terms) {\n const map0 = this.nestedMap;\n const map1 = map0.get(terms[0]);\n if (!map1) {\n return false;\n }\n const map2 = map1.get(terms[1]);\n if (!map2) {\n return false;\n }\n const map3 = map2.get(terms[2]);\n if (!map3) {\n return false;\n }\n const ret = map3.delete(terms[3]);\n // Clean up intermediate maps\n if (ret && map3.size === 0) {\n map2.delete(terms[2]);\n if (map2.size === 0) {\n map1.delete(terms[1]);\n if (map1.size === 0) {\n map0.delete(terms[0]);\n }\n }\n }\n return ret;\n }\n get(key) {\n const encoded = (0, OrderUtils_1.encodeOptionalTerms)(key, this.dictionary);\n // eslint-disable-next-line unicorn/no-useless-undefined\n if (!encoded || encoded.includes(undefined)) {\n return undefined;\n }\n return this.getEncoded(encoded);\n }\n getEncoded(ids) {\n const map1 = this.nestedMap.get(ids[0]);\n if (!map1) {\n return undefined;\n }\n const map2 = map1.get(ids[1]);\n if (!map2) {\n return undefined;\n }\n const map3 = map2.get(ids[2]);\n if (!map3) {\n return undefined;\n }\n return map3.get(ids[3]);\n }\n *find(terms) {\n const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n if (!ids) {\n return;\n }\n const [id0, id1, id2, id3] = ids;\n const [term0, term1, term2, term3] = terms;\n let partialQuad0;\n let partialQuad1;\n let partialQuad2;\n let partialQuad3;\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedMap;\n const map0Keys = id0 !== undefined ? (map0.has(id0) ? [id0] : []) : map0.keys();\n for (const key1 of map0Keys) {\n map1 = map0.get(key1);\n partialQuad0 = term0 || this.dictionary.decode(key1);\n const map1Keys = id1 !== undefined ? (map1.has(id1) ? [id1] : []) : map1.keys();\n for (const key2 of map1Keys) {\n map2 = map1.get(key2);\n partialQuad1 = term1 || this.dictionary.decode(key2);\n const map2Keys = id2 !== undefined ? (map2.has(id2) ? [id2] : []) : map2.keys();\n for (const key3 of map2Keys) {\n map3 = map2.get(key3);\n partialQuad2 = term2 || this.dictionary.decode(key3);\n const map3Keys = id3 !== undefined ? (map3.has(id3) ? [id3] : []) : map3.keys();\n for (const key4 of map3Keys) {\n partialQuad3 = term3 || this.dictionary.decode(key4);\n yield [partialQuad0, partialQuad1, partialQuad2, partialQuad3];\n }\n }\n }\n }\n }\n // The code below is nearly identical. We duplicate because abstraction would result in a significant performance hit.\n *findEncoded(ids, terms) {\n const [id0, id1, id2, id3] = ids;\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedMap;\n const map0Keys = id0 !== undefined ? (map0.has(id0) ? [id0] : []) : map0.keys();\n for (const key1 of map0Keys) {\n map1 = map0.get(key1);\n const map1Keys = id1 !== undefined ? (map1.has(id1) ? [id1] : []) : map1.keys();\n for (const key2 of map1Keys) {\n map2 = map1.get(key2);\n const map2Keys = id2 !== undefined ? (map2.has(id2) ? [id2] : []) : map2.keys();\n for (const key3 of map2Keys) {\n map3 = map2.get(key3);\n const map3Keys = id3 !== undefined ? (map3.has(id3) ? [id3] : []) : map3.keys();\n for (const key4 of map3Keys) {\n yield [key1, key2, key3, key4];\n }\n }\n }\n }\n }\n count(terms) {\n let count = 0;\n const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n if (!ids) {\n return 0;\n }\n const id0 = ids[0];\n const id1 = ids[1];\n const id2 = ids[2];\n const id3 = ids[3];\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedMap;\n const map0Keys = id0 !== undefined ? (map0.has(id0) ? [id0] : []) : map0.keys();\n for (const key1 of map0Keys) {\n map1 = map0.get(key1);\n const map1Keys = id1 !== undefined ? (map1.has(id1) ? [id1] : []) : map1.keys();\n for (const key2 of map1Keys) {\n map2 = map1.get(key2);\n const map2Keys = id2 !== undefined ? (map2.has(id2) ? [id2] : []) : map2.keys();\n for (const key3 of map2Keys) {\n map3 = map2.get(key3);\n if (id3 !== undefined) {\n if (map3.has(id3)) {\n count++;\n }\n }\n else {\n count += map3.size;\n }\n }\n }\n }\n return count;\n }\n}\nexports.RdfStoreIndexNestedMap = RdfStoreIndexNestedMap;\n//# sourceMappingURL=RdfStoreIndexNestedMap.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMap.js?");
|
|
545
|
+
|
|
546
|
+
/***/ }),
|
|
547
|
+
|
|
548
|
+
/***/ "./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMapQuoted.js":
|
|
549
|
+
/*!***************************************************************************!*\
|
|
550
|
+
!*** ./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMapQuoted.js ***!
|
|
551
|
+
\***************************************************************************/
|
|
552
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
553
|
+
|
|
554
|
+
"use strict";
|
|
555
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RdfStoreIndexNestedMapQuoted = void 0;\nconst OrderUtils_1 = __webpack_require__(/*! ../OrderUtils */ \"./node_modules/rdf-stores/lib/OrderUtils.js\");\nconst RdfStoreIndexNestedMap_1 = __webpack_require__(/*! ./RdfStoreIndexNestedMap */ \"./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMap.js\");\n/**\n * An RDF store index that is implemented using nested Maps with optimized quoted triple support.\n */\nclass RdfStoreIndexNestedMapQuoted extends RdfStoreIndexNestedMap_1.RdfStoreIndexNestedMap {\n constructor(options) {\n super(options);\n this.features = {\n quotedTripleFiltering: true,\n };\n }\n *getQuotedPatternKeys(map, term) {\n for (const quotedTripleEncoded of this.dictionary.findQuotedTriplesEncoded(term)) {\n if (map.has(quotedTripleEncoded)) {\n yield quotedTripleEncoded;\n }\n }\n }\n *find(terms) {\n const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n if (!ids) {\n return;\n }\n const [id0, id1, id2, id3] = ids;\n const [term0, term1, term2, term3] = terms;\n const [quotedTerm0, quotedTerm1, quotedTerm2, quotedTerm3] = (0, OrderUtils_1.arePatternsQuoted)(terms);\n let partialQuad0;\n let partialQuad1;\n let partialQuad2;\n let partialQuad3;\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedMap;\n const map0Keys = (term0 !== undefined ?\n (quotedTerm0 ? this.getQuotedPatternKeys(map0, term0) : (map0.has(id0) ? [id0] : [])) :\n map0.keys());\n for (const key1 of map0Keys) {\n map1 = map0.get(key1);\n partialQuad0 = !quotedTerm0 && term0 ? term0 : this.dictionary.decode(key1);\n const map1Keys = (term1 !== undefined ?\n (quotedTerm1 ? this.getQuotedPatternKeys(map1, term1) : (map1.has(id1) ? [id1] : [])) :\n map1.keys());\n for (const key2 of map1Keys) {\n map2 = map1.get(key2);\n partialQuad1 = !quotedTerm1 && term1 ? term1 : this.dictionary.decode(key2);\n const map2Keys = (term2 !== undefined ?\n (quotedTerm2 ? this.getQuotedPatternKeys(map2, term2) : (map2.has(id2) ? [id2] : [])) :\n map2.keys());\n for (const key3 of map2Keys) {\n map3 = map2.get(key3);\n partialQuad2 = !quotedTerm2 && term2 ? term2 : this.dictionary.decode(key3);\n const map3Keys = (term3 !== undefined ?\n (quotedTerm3 ? this.getQuotedPatternKeys(map3, term3) : (map3.has(id3) ? [id3] : [])) :\n map3.keys());\n for (const key4 of map3Keys) {\n partialQuad3 = !quotedTerm3 && term3 ? term3 : this.dictionary.decode(key4);\n yield [partialQuad0, partialQuad1, partialQuad2, partialQuad3];\n }\n }\n }\n }\n }\n // The code below is nearly identical. We duplicate because abstraction would result in a significant performance hit.\n *findEncoded(ids, terms) {\n const [id0, id1, id2, id3] = ids;\n const [term0, term1, term2, term3] = terms;\n const [quotedTerm0, quotedTerm1, quotedTerm2, quotedTerm3] = (0, OrderUtils_1.arePatternsQuoted)(terms);\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedMap;\n const map0Keys = (term0 !== undefined ?\n (quotedTerm0 ? this.getQuotedPatternKeys(map0, term0) : (map0.has(id0) ? [id0] : [])) :\n map0.keys());\n for (const key1 of map0Keys) {\n map1 = map0.get(key1);\n const map1Keys = (term1 !== undefined ?\n (quotedTerm1 ? this.getQuotedPatternKeys(map1, term1) : (map1.has(id1) ? [id1] : [])) :\n map1.keys());\n for (const key2 of map1Keys) {\n map2 = map1.get(key2);\n const map2Keys = (term2 !== undefined ?\n (quotedTerm2 ? this.getQuotedPatternKeys(map2, term2) : (map2.has(id2) ? [id2] : [])) :\n map2.keys());\n for (const key3 of map2Keys) {\n map3 = map2.get(key3);\n const map3Keys = (term3 !== undefined ?\n (quotedTerm3 ? this.getQuotedPatternKeys(map3, term3) : (map3.has(id3) ? [id3] : [])) :\n map3.keys());\n for (const key4 of map3Keys) {\n yield [\n Number.parseInt(key1, 10),\n Number.parseInt(key2, 10),\n Number.parseInt(key3, 10),\n Number.parseInt(key4, 10),\n ];\n }\n }\n }\n }\n }\n count(terms) {\n let count = 0;\n const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n if (!ids) {\n return 0;\n }\n const [id0, id1, id2, id3] = ids;\n const [term0, term1, term2, term3] = terms;\n const [quotedTerm0, quotedTerm1, quotedTerm2, quotedTerm3] = (0, OrderUtils_1.arePatternsQuoted)(terms);\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedMap;\n const map0Keys = (term0 !== undefined ?\n (quotedTerm0 ? this.getQuotedPatternKeys(map0, term0) : (map0.has(id0) ? [id0] : [])) :\n map0.keys());\n for (const key1 of map0Keys) {\n map1 = map0.get(key1);\n const map1Keys = (term1 !== undefined ?\n (quotedTerm1 ? this.getQuotedPatternKeys(map1, term1) : (map1.has(id1) ? [id1] : [])) :\n map1.keys());\n for (const key2 of map1Keys) {\n map2 = map1.get(key2);\n const map2Keys = (term2 !== undefined ?\n (quotedTerm2 ? this.getQuotedPatternKeys(map2, term2) : (map2.has(id2) ? [id2] : [])) :\n map2.keys());\n for (const key3 of map2Keys) {\n map3 = map2.get(key3);\n if (term3 !== undefined) {\n if (quotedTerm3) {\n count += [...this.getQuotedPatternKeys(map3, term3)].length;\n }\n else if (map3.has(id3)) {\n count++;\n }\n }\n else {\n count += map3.size;\n }\n }\n }\n }\n return count;\n }\n}\nexports.RdfStoreIndexNestedMapQuoted = RdfStoreIndexNestedMapQuoted;\n//# sourceMappingURL=RdfStoreIndexNestedMapQuoted.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMapQuoted.js?");
|
|
556
|
+
|
|
557
|
+
/***/ }),
|
|
558
|
+
|
|
559
|
+
/***/ "./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMapRecursive.js":
|
|
560
|
+
/*!******************************************************************************!*\
|
|
561
|
+
!*** ./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMapRecursive.js ***!
|
|
562
|
+
\******************************************************************************/
|
|
563
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
564
|
+
|
|
565
|
+
"use strict";
|
|
566
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RdfStoreIndexNestedMapRecursive = void 0;\nconst OrderUtils_1 = __webpack_require__(/*! ../OrderUtils */ \"./node_modules/rdf-stores/lib/OrderUtils.js\");\n/**\n * An RDF store index that is implemented using nested Maps,\n * and finds quads components via recursive methods calls.\n */\nclass RdfStoreIndexNestedMapRecursive {\n constructor(options) {\n this.features = {\n quotedTripleFiltering: false,\n };\n this.dictionary = options.dictionary;\n this.nestedMap = new Map();\n }\n set(terms, value) {\n let map = this.nestedMap;\n let contained = false;\n for (const [i, term] of terms.entries()) {\n const mapActual = map;\n let nextMap = mapActual.get(term);\n if (!nextMap) {\n nextMap = i === terms.length - 1 ? value : new Map();\n mapActual.set(term, nextMap);\n }\n else if (i === terms.length - 1) {\n contained = true;\n }\n map = nextMap;\n }\n return !contained;\n }\n remove(terms) {\n const map0 = this.nestedMap;\n const map1 = map0.get(terms[0]);\n if (!map1) {\n return false;\n }\n const map2 = map1.get(terms[1]);\n if (!map2) {\n return false;\n }\n const map3 = map2.get(terms[2]);\n if (!map3) {\n return false;\n }\n const ret = map3.delete(terms[3]);\n // Clean up intermediate maps\n if (ret && map3.size === 0) {\n map2.delete(terms[2]);\n if (map2.size === 0) {\n map1.delete(terms[1]);\n if (map1.size === 0) {\n map0.delete(terms[0]);\n }\n }\n }\n return ret;\n }\n get(key) {\n const encoded = (0, OrderUtils_1.encodeOptionalTerms)(key, this.dictionary);\n // eslint-disable-next-line unicorn/no-useless-undefined\n if (!encoded || encoded.includes(undefined)) {\n return undefined;\n }\n return this.getEncoded(encoded);\n }\n getEncoded(ids) {\n const map1 = this.nestedMap.get(ids[0]);\n if (!map1) {\n return undefined;\n }\n const map2 = map1.get(ids[1]);\n if (!map2) {\n return undefined;\n }\n const map3 = map2.get(ids[2]);\n if (!map3) {\n return undefined;\n }\n return map3.get(ids[3]);\n }\n *find(terms) {\n const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n if (!ids) {\n return;\n }\n for (const termsEncoded of this.findEncoded(ids, terms)) {\n yield [\n ids[0] !== undefined ? terms[0] : this.dictionary.decode(termsEncoded[0]),\n ids[1] !== undefined ? terms[1] : this.dictionary.decode(termsEncoded[1]),\n ids[2] !== undefined ? terms[2] : this.dictionary.decode(termsEncoded[2]),\n ids[3] !== undefined ? terms[3] : this.dictionary.decode(termsEncoded[3]),\n ];\n }\n }\n *findEncoded(ids, terms) {\n return yield* this\n .findEncodedInner(0, ids, terms, this.nestedMap, []);\n }\n *findEncodedInner(index, ids, terms, map, partialQuad) {\n if (index === ids.length) {\n yield [...partialQuad];\n }\n else {\n const id = ids[index];\n const currentTerm = terms[index];\n // If current term is undefined, iterate over all terms at this level.\n if (!currentTerm) {\n for (const [key, subMap] of map.entries()) {\n partialQuad[index] = key;\n yield* this\n .findEncodedInner(index + 1, ids, terms, subMap, partialQuad);\n }\n }\n else {\n // If the current term is defined, find one matching map for the current term.\n const encodedTerm = id;\n if (encodedTerm !== undefined) {\n const subMap = map.get(encodedTerm);\n if (subMap) {\n partialQuad[index] = id;\n yield* this\n .findEncodedInner(index + 1, ids, terms, subMap, partialQuad);\n }\n }\n }\n }\n }\n count(terms) {\n return this.countInner(0, terms, this.nestedMap);\n }\n countInner(index, terms, map) {\n const currentTerm = terms[index];\n let count = 0;\n // If current term is undefined, iterate over all terms at this level.\n if (!currentTerm) {\n if (index === terms.length - 1) {\n return map.size;\n }\n for (const subMap of map.values()) {\n count += this.countInner(index + 1, terms, subMap);\n }\n }\n else {\n // If the current term is defined, find one matching map for the current term.\n const encodedTerm = this.dictionary.encodeOptional(currentTerm);\n if (encodedTerm !== undefined) {\n if (index === terms.length - 1) {\n if (map.has(encodedTerm)) {\n return 1;\n }\n return 0;\n }\n const subMap = map.get(encodedTerm);\n if (subMap) {\n count += this.countInner(index + 1, terms, subMap);\n }\n }\n }\n return count;\n }\n}\nexports.RdfStoreIndexNestedMapRecursive = RdfStoreIndexNestedMapRecursive;\n//# sourceMappingURL=RdfStoreIndexNestedMapRecursive.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMapRecursive.js?");
|
|
567
|
+
|
|
568
|
+
/***/ }),
|
|
569
|
+
|
|
570
|
+
/***/ "./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMapRecursiveQuoted.js":
|
|
571
|
+
/*!************************************************************************************!*\
|
|
572
|
+
!*** ./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMapRecursiveQuoted.js ***!
|
|
573
|
+
\************************************************************************************/
|
|
574
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
575
|
+
|
|
576
|
+
"use strict";
|
|
577
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RdfStoreIndexNestedMapRecursiveQuoted = void 0;\nconst OrderUtils_1 = __webpack_require__(/*! ../OrderUtils */ \"./node_modules/rdf-stores/lib/OrderUtils.js\");\nconst RdfStoreIndexNestedMapRecursive_1 = __webpack_require__(/*! ./RdfStoreIndexNestedMapRecursive */ \"./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMapRecursive.js\");\n/**\n * An RDF store index that is implemented using nested Maps,\n * and finds quads components via recursive methods calls\n * with optimized quoted triple support.\n */\nclass RdfStoreIndexNestedMapRecursiveQuoted extends RdfStoreIndexNestedMapRecursive_1.RdfStoreIndexNestedMapRecursive {\n constructor(options) {\n super(options);\n this.features = {\n quotedTripleFiltering: true,\n };\n }\n *findEncoded(ids, terms) {\n return yield* this\n .findEncodedInnerQuoted(0, ids, terms, (0, OrderUtils_1.arePatternsQuoted)(terms), this.nestedMap, []);\n }\n *findEncodedInnerQuoted(index, ids, terms, isQuotedPattern, map, partialQuad) {\n if (index === ids.length) {\n yield [...partialQuad];\n }\n else {\n const id = ids[index];\n const currentTerm = terms[index];\n // If current term is undefined, iterate over all terms at this level.\n if (!currentTerm) {\n for (const [key, subMap] of map.entries()) {\n partialQuad[index] = key;\n yield* this\n .findEncodedInnerQuoted(index + 1, ids, terms, isQuotedPattern, subMap, partialQuad);\n }\n }\n else if (isQuotedPattern[index]) {\n const quotedTriplesEncoded = this\n .dictionary.findQuotedTriplesEncoded(currentTerm);\n // Below, we perform a type of inner (hash) join between quotedTriplesEncoded and map (with hash on map)\n for (const quotedTripleEncoded of quotedTriplesEncoded) {\n const subMap = map.get(quotedTripleEncoded);\n if (subMap) {\n partialQuad[index] = quotedTripleEncoded;\n yield* this.findEncodedInnerQuoted(index + 1, ids, terms, isQuotedPattern, subMap, partialQuad);\n }\n }\n }\n else {\n // If the current term is defined, find one matching map for the current term.\n const encodedTerm = id;\n if (encodedTerm !== undefined) {\n const subMap = map.get(encodedTerm);\n if (subMap) {\n partialQuad[index] = id;\n yield* this.findEncodedInnerQuoted(index + 1, ids, terms, isQuotedPattern, subMap, partialQuad);\n }\n }\n }\n }\n }\n countInner(index, terms, map) {\n const currentTerm = terms[index];\n let count = 0;\n // If current term is undefined, iterate over all terms at this level.\n if (!currentTerm) {\n if (index === terms.length - 1) {\n return map.size;\n }\n for (const subMap of map.values()) {\n count += this.countInner(index + 1, terms, subMap);\n }\n }\n else if (currentTerm.termType === 'Quad' && (0, OrderUtils_1.quadHasVariables)(currentTerm)) {\n const quotedTriplesEncoded = this.dictionary.findQuotedTriplesEncoded(currentTerm);\n // Below, we perform a type of inner (hash) join between quotedTriplesEncoded and map (with hash on map)\n for (const quotedTripleEncoded of quotedTriplesEncoded) {\n if (index === terms.length - 1) {\n if (map.has(quotedTripleEncoded)) {\n count++;\n }\n }\n else {\n const subMap = map.get(quotedTripleEncoded);\n if (subMap) {\n count += this.countInner(index + 1, terms, subMap);\n }\n }\n }\n }\n else {\n // If the current term is defined, find one matching map for the current term.\n const encodedTerm = this.dictionary.encodeOptional(currentTerm);\n if (encodedTerm !== undefined) {\n if (index === terms.length - 1) {\n if (map.has(encodedTerm)) {\n return 1;\n }\n return 0;\n }\n const subMap = map.get(encodedTerm);\n if (subMap) {\n count += this.countInner(index + 1, terms, subMap);\n }\n }\n }\n return count;\n }\n}\nexports.RdfStoreIndexNestedMapRecursiveQuoted = RdfStoreIndexNestedMapRecursiveQuoted;\n//# sourceMappingURL=RdfStoreIndexNestedMapRecursiveQuoted.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMapRecursiveQuoted.js?");
|
|
578
|
+
|
|
579
|
+
/***/ }),
|
|
580
|
+
|
|
581
|
+
/***/ "./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedRecord.js":
|
|
582
|
+
/*!************************************************************************!*\
|
|
583
|
+
!*** ./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedRecord.js ***!
|
|
584
|
+
\************************************************************************/
|
|
585
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
586
|
+
|
|
587
|
+
"use strict";
|
|
588
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RdfStoreIndexNestedRecord = void 0;\nconst OrderUtils_1 = __webpack_require__(/*! ../OrderUtils */ \"./node_modules/rdf-stores/lib/OrderUtils.js\");\n/**\n * An RDF store index that is implemented using nested records.\n */\nclass RdfStoreIndexNestedRecord {\n constructor(options) {\n this.features = {\n quotedTripleFiltering: false,\n };\n this.dictionary = options.dictionary;\n this.nestedRecords = {};\n }\n set(terms, value) {\n const map0 = this.nestedRecords;\n const map1 = map0[terms[0]] || (map0[terms[0]] = {});\n const map2 = map1[terms[1]] || (map1[terms[1]] = {});\n const map3 = map2[terms[2]] || (map2[terms[2]] = {});\n if (map3[terms[3]]) {\n return false;\n }\n map3[terms[3]] = value;\n return true;\n }\n remove(terms) {\n const map0 = this.nestedRecords;\n const map1 = map0[terms[0]];\n if (!map1) {\n return false;\n }\n const map2 = map1[terms[1]];\n if (!map2) {\n return false;\n }\n const map3 = map2[terms[2]];\n if (!map3) {\n return false;\n }\n if (!map3[terms[3]]) {\n return false;\n }\n delete map3[terms[3]];\n // Clean up intermediate maps\n if (Object.keys(map3).length === 0) {\n delete map2[terms[2]];\n if (Object.keys(map2).length === 0) {\n delete map1[terms[1]];\n if (Object.keys(map1).length === 0) {\n delete map0[terms[0]];\n }\n }\n }\n return true;\n }\n get(key) {\n const encoded = (0, OrderUtils_1.encodeOptionalTerms)(key, this.dictionary);\n // eslint-disable-next-line unicorn/no-useless-undefined\n if (!encoded || encoded.includes(undefined)) {\n return undefined;\n }\n return this.getEncoded(encoded);\n }\n getEncoded(ids) {\n return this.nestedRecords[ids[0]]?.[ids[1]]?.[ids[2]]?.[ids[3]];\n }\n *find(terms) {\n const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n if (!ids) {\n return;\n }\n const [id0, id1, id2, id3] = ids;\n const [term0, term1, term2, term3] = terms;\n let partialQuad0;\n let partialQuad1;\n let partialQuad2;\n let partialQuad3;\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedRecords;\n const map0Keys = id0 !== undefined ? (id0 in map0 ? [id0] : []) : Object.keys(map0);\n for (const key1 of map0Keys) {\n map1 = map0[key1];\n partialQuad0 = term0 || this.dictionary.decode(Number.parseInt(key1, 10));\n const map1Keys = id1 !== undefined ? (id1 in map1 ? [id1] : []) : Object.keys(map1);\n for (const key2 of map1Keys) {\n map2 = map1[key2];\n partialQuad1 = term1 || this.dictionary.decode(Number.parseInt(key2, 10));\n const map2Keys = id2 !== undefined ? (id2 in map2 ? [id2] : []) : Object.keys(map2);\n for (const key3 of map2Keys) {\n map3 = map2[key3];\n partialQuad2 = term2 || this.dictionary.decode(Number.parseInt(key3, 10));\n const map3Keys = id3 !== undefined ? (id3 in map3 ? [id3] : []) : Object.keys(map3);\n for (const key4 of map3Keys) {\n partialQuad3 = term3 || this.dictionary.decode(Number.parseInt(key4, 10));\n yield [partialQuad0, partialQuad1, partialQuad2, partialQuad3];\n }\n }\n }\n }\n }\n // The code below is nearly identical. We duplicate because abstraction would result in a significant performance hit.\n *findEncoded(ids, terms) {\n const [id0, id1, id2, id3] = ids;\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedRecords;\n const map0Keys = id0 !== undefined ? (id0 in map0 ? [id0] : []) : Object.keys(map0);\n for (const key1 of map0Keys) {\n map1 = map0[key1];\n const map1Keys = id1 !== undefined ? (id1 in map1 ? [id1] : []) : Object.keys(map1);\n for (const key2 of map1Keys) {\n map2 = map1[key2];\n const map2Keys = id2 !== undefined ? (id2 in map2 ? [id2] : []) : Object.keys(map2);\n for (const key3 of map2Keys) {\n map3 = map2[key3];\n const map3Keys = id3 !== undefined ? (id3 in map3 ? [id3] : []) : Object.keys(map3);\n for (const key4 of map3Keys) {\n yield [\n Number.parseInt(key1, 10),\n Number.parseInt(key2, 10),\n Number.parseInt(key3, 10),\n Number.parseInt(key4, 10),\n ];\n }\n }\n }\n }\n }\n count(terms) {\n let count = 0;\n const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n if (!ids) {\n return 0;\n }\n const id0 = ids[0];\n const id1 = ids[1];\n const id2 = ids[2];\n const id3 = ids[3];\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedRecords;\n const map0Keys = id0 !== undefined ? (id0 in map0 ? [id0] : []) : Object.keys(map0);\n for (const key1 of map0Keys) {\n map1 = map0[key1];\n const map1Keys = id1 !== undefined ? (id1 in map1 ? [id1] : []) : Object.keys(map1);\n for (const key2 of map1Keys) {\n map2 = map1[key2];\n const map2Keys = id2 !== undefined ? (id2 in map2 ? [id2] : []) : Object.keys(map2);\n for (const key3 of map2Keys) {\n map3 = map2[key3];\n if (id3 !== undefined) {\n if (id3 in map3) {\n count++;\n }\n }\n else {\n count += Object.keys(map3).length;\n }\n }\n }\n }\n return count;\n }\n}\nexports.RdfStoreIndexNestedRecord = RdfStoreIndexNestedRecord;\n//# sourceMappingURL=RdfStoreIndexNestedRecord.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedRecord.js?");
|
|
589
|
+
|
|
590
|
+
/***/ }),
|
|
591
|
+
|
|
592
|
+
/***/ "./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedRecordQuoted.js":
|
|
593
|
+
/*!******************************************************************************!*\
|
|
594
|
+
!*** ./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedRecordQuoted.js ***!
|
|
595
|
+
\******************************************************************************/
|
|
596
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
597
|
+
|
|
598
|
+
"use strict";
|
|
599
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RdfStoreIndexNestedRecordQuoted = void 0;\nconst OrderUtils_1 = __webpack_require__(/*! ../OrderUtils */ \"./node_modules/rdf-stores/lib/OrderUtils.js\");\nconst RdfStoreIndexNestedRecord_1 = __webpack_require__(/*! ./RdfStoreIndexNestedRecord */ \"./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedRecord.js\");\n/**\n * An RDF store index that is implemented using nested records with optimized quoted triple support.\n */\nclass RdfStoreIndexNestedRecordQuoted extends RdfStoreIndexNestedRecord_1.RdfStoreIndexNestedRecord {\n constructor(options) {\n super(options);\n this.features = {\n quotedTripleFiltering: true,\n };\n }\n *getQuotedPatternKeys(map, term) {\n for (const quotedTripleEncoded of this.dictionary.findQuotedTriplesEncoded(term)) {\n if (quotedTripleEncoded in map) {\n yield quotedTripleEncoded;\n }\n }\n }\n *find(terms) {\n const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n if (!ids) {\n return;\n }\n const [id0, id1, id2, id3] = ids;\n const [term0, term1, term2, term3] = terms;\n const [quotedTerm0, quotedTerm1, quotedTerm2, quotedTerm3] = (0, OrderUtils_1.arePatternsQuoted)(terms);\n let partialQuad0;\n let partialQuad1;\n let partialQuad2;\n let partialQuad3;\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedRecords;\n const map0Keys = (term0 !== undefined ?\n (quotedTerm0 ? this.getQuotedPatternKeys(map0, term0) : (id0 in map0 ? [id0] : [])) :\n Object.keys(map0));\n for (const key1 of map0Keys) {\n map1 = map0[key1];\n partialQuad0 = !quotedTerm0 && term0 ? term0 : this.dictionary.decode(Number.parseInt(key1, 10));\n const map1Keys = (term1 !== undefined ?\n (quotedTerm1 ? this.getQuotedPatternKeys(map1, term1) : (id1 in map1 ? [id1] : [])) :\n Object.keys(map1));\n for (const key2 of map1Keys) {\n map2 = map1[key2];\n partialQuad1 = !quotedTerm1 && term1 ? term1 : this.dictionary.decode(Number.parseInt(key2, 10));\n const map2Keys = (term2 !== undefined ?\n (quotedTerm2 ? this.getQuotedPatternKeys(map2, term2) : (id2 in map2 ? [id2] : [])) :\n Object.keys(map2));\n for (const key3 of map2Keys) {\n map3 = map2[key3];\n partialQuad2 = !quotedTerm2 && term2 ? term2 : this.dictionary.decode(Number.parseInt(key3, 10));\n const map3Keys = (term3 !== undefined ?\n (quotedTerm3 ? this.getQuotedPatternKeys(map3, term3) : (id3 in map3 ? [id3] : [])) :\n Object.keys(map3));\n for (const key4 of map3Keys) {\n partialQuad3 = !quotedTerm3 && term3 ? term3 : this.dictionary.decode(Number.parseInt(key4, 10));\n yield [partialQuad0, partialQuad1, partialQuad2, partialQuad3];\n }\n }\n }\n }\n }\n // The code below is nearly identical. We duplicate because abstraction would result in a significant performance hit.\n *findEncoded(ids, terms) {\n const [id0, id1, id2, id3] = ids;\n const [term0, term1, term2, term3] = terms;\n const [quotedTerm0, quotedTerm1, quotedTerm2, quotedTerm3] = (0, OrderUtils_1.arePatternsQuoted)(terms);\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedRecords;\n const map0Keys = (term0 !== undefined ?\n (quotedTerm0 ? this.getQuotedPatternKeys(map0, term0) : (id0 in map0 ? [id0] : [])) :\n Object.keys(map0));\n for (const key1 of map0Keys) {\n map1 = map0[key1];\n const map1Keys = (term1 !== undefined ?\n (quotedTerm1 ? this.getQuotedPatternKeys(map1, term1) : (id1 in map1 ? [id1] : [])) :\n Object.keys(map1));\n for (const key2 of map1Keys) {\n map2 = map1[key2];\n const map2Keys = (term2 !== undefined ?\n (quotedTerm2 ? this.getQuotedPatternKeys(map2, term2) : (id2 in map2 ? [id2] : [])) :\n Object.keys(map2));\n for (const key3 of map2Keys) {\n map3 = map2[key3];\n const map3Keys = (term3 !== undefined ?\n (quotedTerm3 ? this.getQuotedPatternKeys(map3, term3) : (id3 in map3 ? [id3] : [])) :\n Object.keys(map3));\n for (const key4 of map3Keys) {\n yield [\n Number.parseInt(key1, 10),\n Number.parseInt(key2, 10),\n Number.parseInt(key3, 10),\n Number.parseInt(key4, 10),\n ];\n }\n }\n }\n }\n }\n count(terms) {\n let count = 0;\n const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n if (!ids) {\n return 0;\n }\n const [id0, id1, id2, id3] = ids;\n const [term0, term1, term2, term3] = terms;\n const [quotedTerm0, quotedTerm1, quotedTerm2, quotedTerm3] = (0, OrderUtils_1.arePatternsQuoted)(terms);\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedRecords;\n const map0Keys = (term0 !== undefined ?\n (quotedTerm0 ? this.getQuotedPatternKeys(map0, term0) : (id0 in map0 ? [id0] : [])) :\n Object.keys(map0));\n for (const key1 of map0Keys) {\n map1 = map0[key1];\n const map1Keys = (term1 !== undefined ?\n (quotedTerm1 ? this.getQuotedPatternKeys(map1, term1) : (id1 in map1 ? [id1] : [])) :\n Object.keys(map1));\n for (const key2 of map1Keys) {\n map2 = map1[key2];\n const map2Keys = (term2 !== undefined ?\n (quotedTerm2 ? this.getQuotedPatternKeys(map2, term2) : (id2 in map2 ? [id2] : [])) :\n Object.keys(map2));\n for (const key3 of map2Keys) {\n map3 = map2[key3];\n if (term3 !== undefined) {\n if (quotedTerm3) {\n count += [...this.getQuotedPatternKeys(map3, term3)].length;\n }\n else if (id3 in map3) {\n count++;\n }\n }\n else {\n count += Object.keys(map3).length;\n }\n }\n }\n }\n return count;\n }\n}\nexports.RdfStoreIndexNestedRecordQuoted = RdfStoreIndexNestedRecordQuoted;\n//# sourceMappingURL=RdfStoreIndexNestedRecordQuoted.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-stores/lib/index/RdfStoreIndexNestedRecordQuoted.js?");
|
|
600
|
+
|
|
601
|
+
/***/ }),
|
|
602
|
+
|
|
603
|
+
/***/ "./node_modules/rdf-string/index.js":
|
|
604
|
+
/*!******************************************!*\
|
|
605
|
+
!*** ./node_modules/rdf-string/index.js ***!
|
|
606
|
+
\******************************************/
|
|
607
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
608
|
+
|
|
609
|
+
"use strict";
|
|
610
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.termToString = exports.stringToTerm = exports.stringQuadToQuad = exports.quadToStringQuad = exports.getLiteralValue = exports.getLiteralType = exports.getLiteralDirection = exports.getLiteralLanguage = void 0;\nconst TermUtil_1 = __webpack_require__(/*! ./lib/TermUtil */ \"./node_modules/rdf-string/lib/TermUtil.js\");\nObject.defineProperty(exports, \"getLiteralLanguage\", ({ enumerable: true, get: function () { return TermUtil_1.getLiteralLanguage; } }));\nObject.defineProperty(exports, \"getLiteralDirection\", ({ enumerable: true, get: function () { return TermUtil_1.getLiteralDirection; } }));\nObject.defineProperty(exports, \"getLiteralType\", ({ enumerable: true, get: function () { return TermUtil_1.getLiteralType; } }));\nObject.defineProperty(exports, \"getLiteralValue\", ({ enumerable: true, get: function () { return TermUtil_1.getLiteralValue; } }));\nObject.defineProperty(exports, \"quadToStringQuad\", ({ enumerable: true, get: function () { return TermUtil_1.quadToStringQuad; } }));\nObject.defineProperty(exports, \"stringQuadToQuad\", ({ enumerable: true, get: function () { return TermUtil_1.stringQuadToQuad; } }));\nObject.defineProperty(exports, \"stringToTerm\", ({ enumerable: true, get: function () { return TermUtil_1.stringToTerm; } }));\nObject.defineProperty(exports, \"termToString\", ({ enumerable: true, get: function () { return TermUtil_1.termToString; } }));\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-string/index.js?");
|
|
611
|
+
|
|
612
|
+
/***/ }),
|
|
613
|
+
|
|
614
|
+
/***/ "./node_modules/rdf-string/lib/TermUtil.js":
|
|
615
|
+
/*!*************************************************!*\
|
|
616
|
+
!*** ./node_modules/rdf-string/lib/TermUtil.js ***!
|
|
617
|
+
\*************************************************/
|
|
618
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
619
|
+
|
|
620
|
+
"use strict";
|
|
621
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.termToString = termToString;\nexports.getLiteralValue = getLiteralValue;\nexports.getLiteralType = getLiteralType;\nexports.getLiteralLanguage = getLiteralLanguage;\nexports.getLiteralDirection = getLiteralDirection;\nexports.stringToTerm = stringToTerm;\nexports.quadToStringQuad = quadToStringQuad;\nexports.stringQuadToQuad = stringQuadToQuad;\nconst rdf_data_factory_1 = __webpack_require__(/*! rdf-data-factory */ \"./node_modules/rdf-data-factory/index.js\");\nconst FACTORY = new rdf_data_factory_1.DataFactory();\n/**\n * Utility methods for converting between string-based RDF representations and RDFJS objects.\n *\n * RDF Terms are represented as follows:\n * * Blank nodes: '_:myBlankNode'\n * * Variables: '?myVariable'\n * * Literals: '\"myString\"', '\"myLanguageString\"@en-us', '\"myLanguageString\"@en-us--ltr', '\"3\"^^xsd:number'\n * * URIs: 'http://example.org'\n *\n * Quads/triples are represented as hashes with 'subject', 'predicate', 'object' and 'graph' (optional)\n * as keys, and string-based RDF terms as values.\n */\n/**\n * Convert an RDFJS term to a string-based representation.\n * @param {RDF.Term} term An RDFJS term.\n * @return {string} A string-based term representation.\n */\nfunction termToString(term) {\n // TODO: remove nasty any casts when this TS bug has been fixed: https://github.com/microsoft/TypeScript/issues/26933\n if (!term) {\n return undefined;\n }\n switch (term.termType) {\n case 'NamedNode': return term.value;\n case 'BlankNode': return ('_:' + term.value);\n case 'Literal':\n const literalValue = term;\n return ('\"' + literalValue.value + '\"' +\n (literalValue.datatype &&\n literalValue.datatype.value !== 'http://www.w3.org/2001/XMLSchema#string' &&\n literalValue.datatype.value !== 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString' &&\n literalValue.datatype.value !== 'http://www.w3.org/1999/02/22-rdf-syntax-ns#dirLangString' ?\n '^^' + literalValue.datatype.value : '') +\n (literalValue.language ? '@' + literalValue.language : '') +\n (literalValue.direction ? '--' + literalValue.direction : ''));\n case 'Quad': return `<<${termToString(term.subject)} ${termToString(term.predicate)} ${termToString(term.object)}${term.graph.termType === 'DefaultGraph' ? '' : ' ' + termToString(term.graph)}>>`;\n case 'Variable': return ('?' + term.value);\n case 'DefaultGraph': return term.value;\n }\n}\n/**\n * Get the string value of a literal.\n * @param {string} literalValue An RDF literal enclosed by '\"'.\n * @return {string} The literal value inside the '\"'.\n */\nfunction getLiteralValue(literalValue) {\n const match = /^\"([^]*)\"/.exec(literalValue);\n if (!match) {\n throw new Error(literalValue + ' is not a literal');\n }\n return match[1];\n}\n/**\n * Get the datatype of the given literal.\n * @param {string} literalValue An RDF literal.\n * @return {string} The datatype of the literal.\n */\nfunction getLiteralType(literalValue) {\n const match = /^\"[^]*\"(?:\\^\\^([^\"]+)|(@)[^@\"]+)?$/.exec(literalValue);\n if (!match) {\n throw new Error(literalValue + ' is not a literal');\n }\n return match[1] || (match[2]\n ? 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString' : 'http://www.w3.org/2001/XMLSchema#string');\n}\n/**\n * Get the language of the given literal.\n * @param {string} literalValue An RDF literal.\n * @return {string} The language of the literal.\n */\nfunction getLiteralLanguage(literalValue) {\n const match = /^\"[^]*\"(?:@([^@\"]+)|\\^\\^[^\"]+)?$/.exec(literalValue);\n if (!match) {\n throw new Error(literalValue + ' is not a literal');\n }\n if (match[1]) {\n let ret = match[1].toLowerCase();\n // Remove everything after --, since this indicates the base direction, which will be parsed later.\n const doubleDashPos = ret.indexOf('--');\n if (doubleDashPos >= 0) {\n ret = ret.slice(0, doubleDashPos);\n }\n return ret;\n }\n return '';\n}\n/**\n * Get the direction of the given literal.\n * @param {string} literalValue An RDF literal.\n * @return {string} The direction of the literal.\n */\nfunction getLiteralDirection(literalValue) {\n const doubleDashPos = literalValue.indexOf('--', literalValue.lastIndexOf('\"'));\n if (doubleDashPos >= 0) {\n const direction = literalValue.slice(doubleDashPos + 2, literalValue.length);\n if (direction === 'ltr' || direction === 'rtl') {\n return direction;\n }\n throw new Error(literalValue + ' is not a literal with a valid direction');\n }\n return '';\n}\n/**\n * Transform a string-based RDF term to an RDFJS term.\n * @param {string} value A string-based RDF-term.\n * @param {RDF.DataFactory} dataFactory An optional datafactory to create terms with.\n * @return {RDF.Term} An RDF-JS term.\n */\nfunction stringToTerm(value, dataFactory) {\n dataFactory = dataFactory || FACTORY;\n if (!value || !value.length) {\n return dataFactory.defaultGraph();\n }\n switch (value[0]) {\n case '_': return dataFactory.blankNode(value.substr(2));\n case '?':\n if (!dataFactory.variable) {\n throw new Error(`Missing 'variable()' method on the given DataFactory`);\n }\n return dataFactory.variable(value.substr(1));\n case '\"':\n const language = getLiteralLanguage(value);\n const direction = getLiteralDirection(value);\n const type = dataFactory.namedNode(getLiteralType(value));\n return dataFactory.literal(getLiteralValue(value), language ? { language, direction } : type);\n case '<':\n default:\n if (value[0] === '<' && value.length > 4 && value[1] === '<' && value[value.length - 1] === '>' && value[value.length - 2] === '>') {\n // Iterate character-by-character to detect spaces that are *not* wrapped in <<>>\n const terms = value.slice(2, -2).trim();\n let stringTerms = [];\n let ignoreTags = 0;\n let lastIndex = 0;\n let inQuote = false;\n for (let i = 0; i < terms.length; i++) {\n const char = terms[i];\n if (char === '<')\n ignoreTags++;\n if (char === '>') {\n if (ignoreTags === 0) {\n throw new Error('Found closing tag without opening tag in ' + value);\n }\n else {\n ignoreTags--;\n }\n }\n if (char === '\"') {\n let escaped = false;\n let j = i;\n while (j-- > 0 && terms[j] === '\\\\') {\n escaped = !escaped;\n }\n if (!escaped) {\n // We have reached an unescaped quote\n inQuote = !inQuote;\n }\n }\n if (char === ' ' && !inQuote && ignoreTags === 0) {\n stringTerms.push(terms.slice(lastIndex, i));\n while (terms[i + 1] === ' ') {\n i += 1;\n }\n lastIndex = i + 1;\n }\n }\n if (ignoreTags !== 0) {\n throw new Error('Found opening tag without closing tag in ' + value);\n }\n stringTerms.push(terms.slice(lastIndex, terms.length));\n // We require 3 or 4 components\n if (stringTerms.length !== 3 && stringTerms.length !== 4) {\n throw new Error('Nested quad syntax error ' + value);\n }\n stringTerms = stringTerms.map(term => term.startsWith('<') && !term.includes(' ') ? term.slice(1, -1) : term);\n return dataFactory.quad(stringToTerm(stringTerms[0]), stringToTerm(stringTerms[1]), stringToTerm(stringTerms[2]), stringTerms[3] ? stringToTerm(stringTerms[3]) : undefined);\n }\n return dataFactory.namedNode(value);\n }\n}\n/**\n * Convert an RDFJS quad to a string-based quad representation.\n * @param {Quad} q An RDFJS quad.\n * @return {IStringQuad} A hash with string-based quad terms.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction quadToStringQuad(q) {\n // tslint:disable:object-literal-sort-keys\n return {\n subject: termToString(q.subject),\n predicate: termToString(q.predicate),\n object: termToString(q.object),\n graph: termToString(q.graph),\n };\n // tslint:enable:object-literal-sort-keys\n}\n/**\n * Convert a string-based quad representation to an RDFJS quad.\n * @param {IStringQuad} stringQuad A hash with string-based quad terms.\n * @param {RDF.DataFactory} dataFactory An optional datafactory to create terms with.\n * @return {Q} An RDFJS quad.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction stringQuadToQuad(stringQuad, dataFactory) {\n dataFactory = dataFactory || FACTORY;\n return dataFactory.quad(stringToTerm(stringQuad.subject, dataFactory), stringToTerm(stringQuad.predicate, dataFactory), stringToTerm(stringQuad.object, dataFactory), stringToTerm(stringQuad.graph, dataFactory));\n}\n//# sourceMappingURL=TermUtil.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-string/lib/TermUtil.js?");
|
|
622
|
+
|
|
623
|
+
/***/ }),
|
|
624
|
+
|
|
625
|
+
/***/ "./node_modules/rdf-terms/index.js":
|
|
626
|
+
/*!*****************************************!*\
|
|
627
|
+
!*** ./node_modules/rdf-terms/index.js ***!
|
|
628
|
+
\*****************************************/
|
|
629
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
630
|
+
|
|
631
|
+
"use strict";
|
|
632
|
+
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./lib/QuadTermUtil */ \"./node_modules/rdf-terms/lib/QuadTermUtil.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/TermUtil */ \"./node_modules/rdf-terms/lib/TermUtil.js\"), exports);\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-terms/index.js?");
|
|
633
|
+
|
|
634
|
+
/***/ }),
|
|
635
|
+
|
|
636
|
+
/***/ "./node_modules/rdf-terms/lib/QuadTermUtil.js":
|
|
637
|
+
/*!****************************************************!*\
|
|
638
|
+
!*** ./node_modules/rdf-terms/lib/QuadTermUtil.js ***!
|
|
639
|
+
\****************************************************/
|
|
640
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
641
|
+
|
|
642
|
+
"use strict";
|
|
643
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TRIPLE_TERM_NAMES = exports.QUAD_TERM_NAMES = void 0;\nexports.getTerms = getTerms;\nexports.getTermsNested = getTermsNested;\nexports.getNamedTerms = getNamedTerms;\nexports.collectNamedTerms = collectNamedTerms;\nexports.forEachTerms = forEachTerms;\nexports.forEachTermsNested = forEachTermsNested;\nexports.filterTerms = filterTerms;\nexports.filterTermsNested = filterTermsNested;\nexports.filterQuadTermNames = filterQuadTermNames;\nexports.filterQuadTermNamesNested = filterQuadTermNamesNested;\nexports.mapTerms = mapTerms;\nexports.mapTermsNested = mapTermsNested;\nexports.reduceTerms = reduceTerms;\nexports.reduceTermsNested = reduceTermsNested;\nexports.everyTerms = everyTerms;\nexports.everyTermsNested = everyTermsNested;\nexports.someTerms = someTerms;\nexports.someTermsNested = someTermsNested;\nexports.getValueNestedPath = getValueNestedPath;\nexports.matchTerm = matchTerm;\nexports.matchPattern = matchPattern;\nexports.matchPatternComplete = matchPatternComplete;\nexports.matchPatternMappings = matchPatternMappings;\nconst rdf_data_factory_1 = __webpack_require__(/*! rdf-data-factory */ \"./node_modules/rdf-data-factory/index.js\");\nconst DF = new rdf_data_factory_1.DataFactory();\n/**\n * All available quad term names.\n * @type {[string , string , string , string]}\n */\nexports.QUAD_TERM_NAMES = ['subject', 'predicate', 'object', 'graph'];\n/**\n * All available triple term names.\n * @type {[string , string , string]}\n */\nexports.TRIPLE_TERM_NAMES = ['subject', 'predicate', 'object'];\n/**\n * Get all terms in the given quad.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {boolean} ignoreDefaultGraph If true and the quad has the default graph as graph,\n * this term will not be returned in the array.\n * (default: false)\n * @return {Term[]} The available terms in the quad.\n */\nfunction getTerms(quad, ignoreDefaultGraph) {\n if (ignoreDefaultGraph && quad.graph.termType === 'DefaultGraph') {\n return [quad.subject, quad.predicate, quad.object];\n }\n return [quad.subject, quad.predicate, quad.object, quad.graph];\n}\n/**\n * Get all terms in the given quad, including nested quads.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {boolean} ignoreDefaultGraph If true and the quad has the default graph as graph,\n * this term will not be returned in the array.\n * (default: false)\n * @return {Term[]} The available terms in the nested quad, excluding quad terms.\n */\nfunction getTermsNested(quad, ignoreDefaultGraph) {\n const terms = [];\n for (const term of getTerms(quad, ignoreDefaultGraph)) {\n if (term.termType === 'Quad') {\n getTermsNested(term, ignoreDefaultGraph).forEach(subTerm => terms.push(subTerm));\n }\n else {\n terms.push(term);\n }\n }\n return terms;\n}\n/**\n * Convert the given quad to an array of named terms.\n * This is the reverse operation of {@link collectNamedTerms}.\n * @param {BaseQuad} quad An RDFJS quad.\n * @return {INamedTerm[]} An array of named terms.\n */\nfunction getNamedTerms(quad) {\n return [\n { key: 'subject', value: quad.subject },\n { key: 'predicate', value: quad.predicate },\n { key: 'object', value: quad.object },\n { key: 'graph', value: quad.graph },\n ];\n}\n/**\n * Convert an array of named terms to an RDFJS quad.\n * This is the reverse operation of {@link getNamedTerms}.\n * @param {INamedTerm[]} namedTerms An array of named terms.\n * @param {(termName: QuadTermName) => Term} defaultCb An optional callback for when\n * certain terms are not available in the array.\n * @param {RDF.DataFactory} dataFactory A custom data factory to create quads.\n * @return {Q} The resulting RDFJS quad.\n * @template Q The type of quad to output, defaults to RDF.Quad.\n */\nfunction collectNamedTerms(namedTerms, defaultCb, dataFactory) {\n const elements = {};\n namedTerms.forEach((namedTerm) => elements[namedTerm.key] = namedTerm.value);\n if (defaultCb) {\n elements.subject = elements.subject || defaultCb('subject');\n elements.predicate = elements.predicate || defaultCb('predicate');\n elements.object = elements.object || defaultCb('object');\n elements.graph = elements.graph || defaultCb('graph');\n }\n return (dataFactory || DF).quad(elements.subject, elements.predicate, elements.object, elements.graph);\n}\n/**\n * Iterates over each term.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} cb A callback function.\n */\nfunction forEachTerms(quad, cb) {\n cb(quad.subject, 'subject');\n cb(quad.predicate, 'predicate');\n cb(quad.object, 'object');\n cb(quad.graph, 'graph');\n}\n/**\n * Iterates over each leaf term, while recursing into quoted triples.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} cb A callback function.\n * @param QuadTermName[] keys The current key path.\n */\nfunction forEachTermsNested(quad, cb, keys = []) {\n if (quad.subject.termType === 'Quad') {\n forEachTermsNested(quad.subject, cb, [...keys, 'subject']);\n }\n else {\n cb(quad.subject, [...keys, 'subject']);\n }\n if (quad.predicate.termType === 'Quad') {\n forEachTermsNested(quad.predicate, cb, [...keys, 'predicate']);\n }\n else {\n cb(quad.predicate, [...keys, 'predicate']);\n }\n if (quad.object.termType === 'Quad') {\n forEachTermsNested(quad.object, cb, [...keys, 'object']);\n }\n else {\n cb(quad.object, [...keys, 'object']);\n }\n if (quad.graph.termType === 'Quad') {\n forEachTermsNested(quad.graph, cb, [...keys, 'graph']);\n }\n else {\n cb(quad.graph, [...keys, 'graph']);\n }\n}\n/**\n * Get all terms in the given quad that return true on the given filter function.\n * @param {BaseQuad} quad A quad.\n * @param {(value: Term, key: QuadTermName) => boolean} filter A filter callback.\n * @return {Term[]} The list of matching terms.\n */\nfunction filterTerms(quad, filter) {\n const terms = [];\n if (filter(quad.subject, 'subject')) {\n terms.push(quad.subject);\n }\n if (filter(quad.predicate, 'predicate')) {\n terms.push(quad.predicate);\n }\n if (filter(quad.object, 'object')) {\n terms.push(quad.object);\n }\n if (filter(quad.graph, 'graph')) {\n terms.push(quad.graph);\n }\n return terms;\n}\n/**\n * Get all terms in the given quad that return true on the given filter function, while recursing into quoted triples.\n * @param {BaseQuad} quad A quad.\n * @param {(value: Term, key: QuadTermName) => boolean} filter A filter callback.\n * @param QuadTermName[] keys The current key path.\n * @return {Term[]} The list of matching terms.\n */\nfunction filterTermsNested(quad, filter, keys = []) {\n let terms = [];\n if (quad.subject.termType === 'Quad') {\n terms = [...terms, ...filterTermsNested(quad.subject, filter, [...keys, 'subject'])];\n }\n else {\n if (filter(quad.subject, [...keys, 'subject'])) {\n terms.push(quad.subject);\n }\n }\n if (quad.predicate.termType === 'Quad') {\n terms = [...terms, ...filterTermsNested(quad.predicate, filter, [...keys, 'predicate'])];\n }\n else {\n if (filter(quad.predicate, [...keys, 'predicate'])) {\n terms.push(quad.predicate);\n }\n }\n if (quad.object.termType === 'Quad') {\n terms = [...terms, ...filterTermsNested(quad.object, filter, [...keys, 'object'])];\n }\n else {\n if (filter(quad.object, [...keys, 'object'])) {\n terms.push(quad.object);\n }\n }\n if (quad.graph.termType === 'Quad') {\n terms = [...terms, ...filterTermsNested(quad.graph, filter, [...keys, 'graph'])];\n }\n else {\n if (filter(quad.graph, [...keys, 'graph'])) {\n terms.push(quad.graph);\n }\n }\n return terms;\n}\n/**\n * Get all quad term names in the given quad that return true on the given filter function.\n * @param {BaseQuad} quad A quad.\n * @param {(value: Term, key: QuadTermName, all: INamedTerm[]) => boolean} filter A filter callback.\n * @return {QuadTermName[]} The list of matching quad term names.\n */\nfunction filterQuadTermNames(quad, filter) {\n const names = [];\n if (filter(quad.subject, 'subject')) {\n names.push('subject');\n }\n if (filter(quad.predicate, 'predicate')) {\n names.push('predicate');\n }\n if (filter(quad.object, 'object')) {\n names.push('object');\n }\n if (filter(quad.graph, 'graph')) {\n names.push('graph');\n }\n return names;\n}\n/**\n * Get all quad term names in the given quad that return true on the given filter function, while recursing into quoted triples.\n * @param {BaseQuad} quad A quad.\n * @param {(value: Term, key: QuadTermName, all: INamedTerm[]) => boolean} filter A filter callback.\n * @param QuadTermName[] keys The current key path.\n * @return {QuadTermName[]} The list of matching quad term names.\n */\nfunction filterQuadTermNamesNested(quad, filter, keys = []) {\n let names = [];\n const keysS = [...keys, 'subject'];\n if (quad.subject.termType === 'Quad') {\n names = [...names, ...filterQuadTermNamesNested(quad.subject, filter, keysS)];\n }\n else {\n if (filter(quad.subject, keysS)) {\n names.push(keysS);\n }\n }\n const keysP = [...keys, 'predicate'];\n if (quad.predicate.termType === 'Quad') {\n names = [...names, ...filterQuadTermNamesNested(quad.predicate, filter, keysP)];\n }\n else {\n if (filter(quad.predicate, keysP)) {\n names.push(keysP);\n }\n }\n const keysO = [...keys, 'object'];\n if (quad.object.termType === 'Quad') {\n names = [...names, ...filterQuadTermNamesNested(quad.object, filter, keysO)];\n }\n else {\n if (filter(quad.object, keysO)) {\n names.push(keysO);\n }\n }\n const keysG = [...keys, 'graph'];\n if (quad.graph.termType === 'Quad') {\n names = [...names, ...filterQuadTermNamesNested(quad.graph, filter, keysG)];\n }\n else {\n if (filter(quad.graph, keysG)) {\n names.push(keysG);\n }\n }\n return names;\n}\n/**\n * Map all terms of a quad.\n * @param {Quad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName) => Term} mapper A mapper function.\n * @param {RDF.DataFactory} dataFactory A custom data factory to create quads.\n * @return {Quad} A new RDFJS quad.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction mapTerms(quad, mapper, dataFactory) {\n return (dataFactory || DF).quad(mapper(quad.subject, 'subject'), mapper(quad.predicate, 'predicate'), mapper(quad.object, 'object'), mapper(quad.graph, 'graph'));\n}\n/**\n * Map all terms of a quad, while recursing into quoted triples.\n * @param {Quad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName) => Term} mapper A mapper function.\n * @param {RDF.DataFactory} dataFactory A custom data factory to create quads.\n * @param QuadTermName[] keys The current key path.\n * @return {Quad} A new RDFJS quad.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction mapTermsNested(quad, mapper, dataFactory, keys = []) {\n return (dataFactory || DF).quad(quad.subject.termType === 'Quad' ?\n mapTermsNested(quad.subject, mapper, dataFactory, [...keys, 'subject']) :\n mapper(quad.subject, [...keys, 'subject']), quad.predicate.termType === 'Quad' ?\n mapTermsNested(quad.predicate, mapper, dataFactory, [...keys, 'predicate']) :\n mapper(quad.predicate, [...keys, 'predicate']), quad.object.termType === 'Quad' ?\n mapTermsNested(quad.object, mapper, dataFactory, [...keys, 'object']) :\n mapper(quad.object, [...keys, 'object']), quad.graph.termType === 'Quad' ?\n mapTermsNested(quad.graph, mapper, dataFactory, [...keys, 'graph']) :\n mapper(quad.graph, [...keys, 'graph']));\n}\n/**\n * Reduce all terms of a quad.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(previousValue: U, currentValue: Term, key: QuadTermName) => U} reducer A reduce function.\n * @param {U} initialValue The initial value.\n * @return {U} The final value.\n */\nfunction reduceTerms(quad, reducer, initialValue) {\n let value = initialValue;\n value = reducer(value, quad.subject, 'subject');\n value = reducer(value, quad.predicate, 'predicate');\n value = reducer(value, quad.object, 'object');\n return reducer(value, quad.graph, 'graph');\n}\n/**\n * Reduce all terms of a quad, while recursing into quoted triples.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(previousValue: U, currentValue: Term, key: QuadTermName) => U} reducer A reduce function.\n * @param {U} initialValue The initial value.\n * @param QuadTermName[] keys The current key path.\n * @return {U} The final value.\n */\nfunction reduceTermsNested(quad, reducer, initialValue, keys = []) {\n let value = initialValue;\n if (quad.subject.termType === 'Quad') {\n value = reduceTermsNested(quad.subject, reducer, value, [...keys, 'subject']);\n }\n else {\n value = reducer(value, quad.subject, [...keys, 'subject']);\n }\n if (quad.predicate.termType === 'Quad') {\n value = reduceTermsNested(quad.predicate, reducer, value, [...keys, 'predicate']);\n }\n else {\n value = reducer(value, quad.predicate, [...keys, 'predicate']);\n }\n if (quad.object.termType === 'Quad') {\n value = reduceTermsNested(quad.object, reducer, value, [...keys, 'object']);\n }\n else {\n value = reducer(value, quad.object, [...keys, 'object']);\n }\n if (quad.graph.termType === 'Quad') {\n value = reduceTermsNested(quad.graph, reducer, value, [...keys, 'graph']);\n }\n else {\n value = reducer(value, quad.graph, [...keys, 'graph']);\n }\n return value;\n}\n/**\n * Determines whether all terms satisfy the specified test.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} checker A checker function.\n * @return {boolean} If all terms satisfy the specified test.\n */\nfunction everyTerms(quad, checker) {\n return checker(quad.subject, 'subject')\n && checker(quad.predicate, 'predicate')\n && checker(quad.object, 'object')\n && checker(quad.graph, 'graph');\n}\n/**\n * Determines whether all terms satisfy the specified test, while recursing into quoted triples.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} checker A checker function.\n * @param QuadTermName[] keys The current key path.\n * @return {boolean} If all terms satisfy the specified test.\n */\nfunction everyTermsNested(quad, checker, keys = []) {\n return (quad.subject.termType === 'Quad' ?\n everyTermsNested(quad.subject, checker, [...keys, 'subject']) :\n checker(quad.subject, [...keys, 'subject']))\n && (quad.predicate.termType === 'Quad' ?\n everyTermsNested(quad.predicate, checker, [...keys, 'predicate']) :\n checker(quad.predicate, [...keys, 'predicate']))\n && (quad.object.termType === 'Quad' ?\n everyTermsNested(quad.object, checker, [...keys, 'object']) :\n checker(quad.object, [...keys, 'object']))\n && (quad.graph.termType === 'Quad' ?\n everyTermsNested(quad.graph, checker, [...keys, 'graph']) :\n checker(quad.graph, [...keys, 'graph']));\n}\n/**\n * Determines whether at least one term satisfies the specified test.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} checker A checker function.\n * @return {boolean} If at least one term satisfies the specified test.\n */\nfunction someTerms(quad, checker) {\n return checker(quad.subject, 'subject')\n || checker(quad.predicate, 'predicate')\n || checker(quad.object, 'object')\n || checker(quad.graph, 'graph');\n}\n/**\n * Determines whether at least one term satisfies the specified test, while recursing into quoted triples.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} checker A checker function.\n * @param QuadTermName[] keys The current key path.\n * @return {boolean} If at least one term satisfies the specified test.\n */\nfunction someTermsNested(quad, checker, keys = []) {\n return (quad.subject.termType === 'Quad' ?\n someTermsNested(quad.subject, checker, [...keys, 'subject']) :\n checker(quad.subject, [...keys, 'subject']))\n || (quad.predicate.termType === 'Quad' ?\n someTermsNested(quad.predicate, checker, [...keys, 'predicate']) :\n checker(quad.predicate, [...keys, 'predicate']))\n || (quad.object.termType === 'Quad' ?\n someTermsNested(quad.object, checker, [...keys, 'object']) :\n checker(quad.object, [...keys, 'object']))\n || (quad.graph.termType === 'Quad' ?\n someTermsNested(quad.graph, checker, [...keys, 'graph']) :\n checker(quad.graph, [...keys, 'graph']));\n}\n/**\n * Get the nested value inside a quoted triple by the given path of quad keys.\n * @param term A term, that can be a quoted triple.\n * @param keys A path of quad term names.\n */\nfunction getValueNestedPath(term, keys) {\n if (keys.length === 0) {\n return term;\n }\n if (term.termType === 'Quad') {\n return getValueNestedPath(term[keys[0]], keys.slice(1));\n }\n throw new Error(`Tried to get ${keys[0]} from term of type ${term.termType}`);\n}\n/**\n * Check if the given terms match.\n *\n * At least one of the following must be true:\n * * Term B is undefined.\n * * Term B is a variable.\n * * Term A and B are quads, and return true for `matchPatternComplete`.\n * * Quad term and term are equal (`termB.equals(termA)` return true)\n *\n * @param termA A term.\n * @param termB An optional term.\n */\nfunction matchTerm(termA, termB) {\n return !termB\n || termB.termType === 'Variable'\n || (termB.termType === 'Quad' && termA.termType === 'Quad' && matchPatternComplete(termA, termB))\n || termB.equals(termA);\n}\n/**\n * Check if the given quad matches with the given quad terms.\n *\n * Each term must match at least one of the following:\n * * Term is undefined.\n * * Term is a variable.\n * * Quad term and term are both quads, and return true for `matchPatternComplete`.\n * * Quad term and term are equal (`quadTerm.equals(term)` return true)\n *\n * @param {BaseQuad} quad A quad to match with (can not contain variables).\n * @param {Term} subject An optional subject.\n * @param {Term} predicate An optional predicate.\n * @param {Term} object An optional object.\n * @param {Term} graph An optional graph.\n * @return {boolean} If the quad matches with the quad terms.\n */\nfunction matchPattern(quad, subject, predicate, object, graph) {\n return matchTerm(quad.subject, subject)\n && matchTerm(quad.predicate, predicate)\n && matchTerm(quad.object, object)\n && matchTerm(quad.graph, graph);\n}\n/**\n * Check if the first quad matches with all terms from the second quad.\n *\n * Each term must match at least one of the following:\n * * Quad2 term is a variable.\n * * Quad1 term and Quad2 term are equal (`term1.equals(term2)` return true)\n *\n * @param {BaseQuad} quad A quad (can not contain variables).\n * @param {BaseQuad} pattern A quad pattern (can contain variables).\n * @return {boolean} If the quad terms match.\n */\nfunction matchPatternComplete(quad, pattern) {\n return matchPattern(quad, pattern.subject, pattern.predicate, pattern.object, pattern.graph);\n}\nfunction matchPatternMappings(quad, pattern, opt = {}) {\n const map = {};\n function match(_pattern, _quad) {\n return everyTerms(_pattern, (t1, key) => {\n var _a, _b;\n const t2 = _quad[key];\n switch (t1.termType) {\n case 'Variable':\n return (opt.skipVarMapping && t2.termType === 'Variable')\n || ((_b = (_a = map[t1.value]) === null || _a === void 0 ? void 0 : _a.equals(t2)) !== null && _b !== void 0 ? _b : (map[t1.value] = t2, true));\n case 'Quad':\n return t2.termType === 'Quad' && match(t1, t2);\n default:\n return t1.equals(t2);\n }\n });\n }\n return match(pattern, quad) && (opt.returnMappings ? map : true);\n}\n//# sourceMappingURL=QuadTermUtil.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-terms/lib/QuadTermUtil.js?");
|
|
644
|
+
|
|
645
|
+
/***/ }),
|
|
646
|
+
|
|
647
|
+
/***/ "./node_modules/rdf-terms/lib/TermUtil.js":
|
|
648
|
+
/*!************************************************!*\
|
|
649
|
+
!*** ./node_modules/rdf-terms/lib/TermUtil.js ***!
|
|
650
|
+
\************************************************/
|
|
651
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
652
|
+
|
|
653
|
+
"use strict";
|
|
654
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TERM_TYPES = void 0;\nexports.uniqTerms = uniqTerms;\nexports.getTermsOfType = getTermsOfType;\nexports.getNamedNodes = getNamedNodes;\nexports.getBlankNodes = getBlankNodes;\nexports.getLiterals = getLiterals;\nexports.getVariables = getVariables;\nexports.getDefaultGraphs = getDefaultGraphs;\nexports.getQuads = getQuads;\nconst rdf_string_1 = __webpack_require__(/*! rdf-string */ \"./node_modules/rdf-string/index.js\");\n/**\n * All known term types.\n * @see RDF.Term\n * @type {[string , string , string , string , string, string]}\n */\nexports.TERM_TYPES = ['NamedNode', 'BlankNode', 'Literal', 'Variable', 'DefaultGraph', 'Quad'];\n/*\n * Utility methods for handling RDFJS terms.\n */\n/**\n * Create an array of unique terms from the given array.\n * @param {T[]} terms An array of RDFJS terms.\n * @return {T[]} A new array of unique RDFJS terms.\n */\nfunction uniqTerms(terms) {\n const hash = {};\n return terms.filter(term => {\n const termString = (0, rdf_string_1.termToString)(term);\n return !(termString in hash) && (hash[termString] = true);\n });\n}\n/**\n * Find all terms of the given type in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @param {\"NamedNode\" | \"BlankNode\" | \"Literal\" | \"Variable\" | \"DefaultGraph\" | \"Quad\"} termType A term type.\n * @return {Term[]} A new array with elements from the given array only containing elements of the given type.\n */\nfunction getTermsOfType(terms, termType) {\n return terms.filter((term) => term.termType === termType);\n}\n/**\n * Find all named nodes in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {NamedNode[]} A new array with elements from the given array only containing named nodes.\n */\nfunction getNamedNodes(terms) {\n return getTermsOfType(terms, 'NamedNode');\n}\n/**\n * Find all blank nodes in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {BlankNode[]} A new array with elements from the given array only containing blank nodes.\n */\nfunction getBlankNodes(terms) {\n return getTermsOfType(terms, 'BlankNode');\n}\n/**\n * Find all literals in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {Literal[]} A new array with elements from the given array only containing literals.\n */\nfunction getLiterals(terms) {\n return getTermsOfType(terms, 'Literal');\n}\n/**\n * Find all variables in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {Variable[]} A new array with elements from the given array only containing variables.\n */\nfunction getVariables(terms) {\n return getTermsOfType(terms, 'Variable');\n}\n/**\n * Find all default graphs in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {DefaultGraph[]} A new array with elements from the given array only containing default graphs.\n */\nfunction getDefaultGraphs(terms) {\n return getTermsOfType(terms, 'DefaultGraph');\n}\n/**\n * Find all quads in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {BaseQuad[]} A new array with elements from the given array only containing quads.\n */\nfunction getQuads(terms) {\n return getTermsOfType(terms, 'Quad');\n}\n//# sourceMappingURL=TermUtil.js.map\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./node_modules/rdf-terms/lib/TermUtil.js?");
|
|
655
|
+
|
|
656
|
+
/***/ }),
|
|
657
|
+
|
|
327
658
|
/***/ "./node_modules/rdfxml-streaming-parser/index.js":
|
|
328
659
|
/*!*******************************************************!*\
|
|
329
660
|
!*** ./node_modules/rdfxml-streaming-parser/index.js ***!
|
|
@@ -735,6 +1066,17 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\ncons
|
|
|
735
1066
|
|
|
736
1067
|
/***/ }),
|
|
737
1068
|
|
|
1069
|
+
/***/ "./src/ontologies/dcat.ts":
|
|
1070
|
+
/*!********************************!*\
|
|
1071
|
+
!*** ./src/ontologies/dcat.ts ***!
|
|
1072
|
+
\********************************/
|
|
1073
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
1074
|
+
|
|
1075
|
+
"use strict";
|
|
1076
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.dcat = exports._dcat = exports.DCAT = exports._DCAT = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst { namedNode } = n3.DataFactory;\n/** Namespace URI of the DCAT vocabulary. */\nexports._DCAT = 'http://www.w3.org/ns/dcat#';\nexports.DCAT = {\n /** DCAT is an RDF vocabulary designed to facilitate interoperability between data catalogs published on the Web. By using DCAT to describe datasets in data catalogs, publishers increase discoverability and enable applications easily to consume metadata from multiple catalogs. It further enables decentralized publishing of catalogs and facilitates federated dataset search across sites. Aggregated DCAT metadata can serve as a manifest file to facilitate digital preservation. DCAT is defined at http://www.w3.org/TR/vocab-dcat/. Any variance between that normative document and this schema is an error in this schema. */\n 'dcat': 'http://www.w3.org/ns/dcat',\n /** A curated collection of metadata about resources (e.g., datasets and data services in the context of a data catalog). */\n 'Catalog': 'http://www.w3.org/ns/dcat#Catalog',\n /** A record in a data catalog, describing the registration of a single dataset or data service. */\n 'CatalogRecord': 'http://www.w3.org/ns/dcat#CatalogRecord',\n /** A site or end-point providing operations related to the discovery of, access to, or processing functions on, data or related resources. */\n 'DataService': 'http://www.w3.org/ns/dcat#DataService',\n /** A collection of data, published or curated by a single source, and available for access or download in one or more representations. */\n 'Dataset': 'http://www.w3.org/ns/dcat#Dataset',\n /** A collection of datasets that are published separately, but share some characteristics that group them. */\n 'DatasetSeries': 'http://www.w3.org/ns/dcat#DatasetSeries',\n /** A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above). */\n 'Distribution': 'http://www.w3.org/ns/dcat#Distribution',\n /** An association class for attaching additional information to a relationship between DCAT Resources. */\n 'Relationship': 'http://www.w3.org/ns/dcat#Relationship',\n /** Resource published or curated by a single agent. */\n 'Resource': 'http://www.w3.org/ns/dcat#Resource',\n /** A role is the function of a resource or agent with respect to another resource, in the context of resource attribution or resource relationships. */\n 'Role': 'http://www.w3.org/ns/dcat#Role',\n /** A site or end-point that gives access to the distribution of the dataset. */\n 'accessService': 'http://www.w3.org/ns/dcat#accessService',\n /** A URL of a resource that gives access to a distribution of the dataset. E.g. landing page, feed, SPARQL endpoint. Use for all cases except a simple download link, in which case downloadURL is preferred. */\n 'accessURL': 'http://www.w3.org/ns/dcat#accessURL',\n /** The geographic bounding box of a spatial thing [SDW-BP]. */\n 'bbox': 'http://www.w3.org/ns/dcat#bbox',\n /** The size of a distribution in bytes. */\n 'byteSize': 'http://www.w3.org/ns/dcat#byteSize',\n /** A catalog that is listed in the catalog. */\n 'catalog': 'http://www.w3.org/ns/dcat#catalog',\n /** The geographic center (centroid) of a spatial thing [SDW-BP]. */\n 'centroid': 'http://www.w3.org/ns/dcat#centroid',\n /** The compression format of the distribution in which the data is contained in a compressed form, e.g. to reduce the size of the downloadable file. */\n 'compressFormat': 'http://www.w3.org/ns/dcat#compressFormat',\n /** Relevant contact information for the catalogued resource. Use of vCard is recommended. */\n 'contactPoint': 'http://www.w3.org/ns/dcat#contactPoint',\n /** A dataset that is listed in the catalog. */\n 'dataset': 'http://www.w3.org/ns/dcat#dataset',\n /** An available distribution of the dataset. */\n 'distribution': 'http://www.w3.org/ns/dcat#distribution',\n /** The URL of the downloadable file in a given format. E.g. CSV file or RDF file. The format is indicated by the distribution's dcterms:format and/or dcat:mediaType. */\n 'downloadURL': 'http://www.w3.org/ns/dcat#downloadURL',\n /** The end of the period. */\n 'endDate': 'http://www.w3.org/ns/dcat#endDate',\n /** A description of the service end-point, including its operations, parameters etc. */\n 'endpointDescription': 'http://www.w3.org/ns/dcat#endpointDescription',\n /** The root location or primary endpoint of the service (a web-resolvable IRI). */\n 'endpointURL': 'http://www.w3.org/ns/dcat#endpointURL',\n /** The first resource in an ordered collection or series of resources, to which the current resource belongs. */\n 'first': 'http://www.w3.org/ns/dcat#first',\n /** The function of an entity or agent with respect to another entity or resource. */\n 'hadRole': 'http://www.w3.org/ns/dcat#hadRole',\n /** This resource has a more specific, versioned resource with equivalent content [PAV]. */\n 'hasCurrentVersion': 'http://www.w3.org/ns/dcat#hasCurrentVersion',\n /** This resource has a more specific, versioned resource [PAV]. */\n 'hasVersion': 'http://www.w3.org/ns/dcat#hasVersion',\n /** This property MAY be used only in addition to its inverse, and it MUST NOT be used to replace it. */\n 'inCatalog': 'http://www.w3.org/ns/dcat#inCatalog',\n /** A dataset series of which the dataset is part. */\n 'inSeries': 'http://www.w3.org/ns/dcat#inSeries',\n /** This property MAY be used only in addition to its inverse, and it MUST NOT be used to replace it. */\n 'isDistributionOf': 'http://www.w3.org/ns/dcat#isDistributionOf',\n /** This property MAY be used only in addition to its inverse, and it MUST NOT be used to replace it. */\n 'isVersionOf': 'http://www.w3.org/ns/dcat#isVersionOf',\n /** A keyword or tag describing a resource. */\n 'keyword': 'http://www.w3.org/ns/dcat#keyword',\n /** A Web page that can be navigated to in a Web browser to gain access to the catalog, a dataset, its distributions and/or additional information. */\n 'landingPage': 'http://www.w3.org/ns/dcat#landingPage',\n /** The last resource in an ordered collection or series of resources, to which the current resource belongs. */\n 'last': 'http://www.w3.org/ns/dcat#last',\n /** The media type of the distribution as defined by IANA */\n 'mediaType': 'http://www.w3.org/ns/dcat#mediaType',\n /** This property MAY be used only in addition to its inverse, and it MUST NOT be used to replace it. */\n 'next': 'http://www.w3.org/ns/dcat#next',\n /** This property MAY be used only in addition to its inverse, and it MUST NOT be used to replace it. */\n 'nextVersion': 'http://www.w3.org/ns/dcat#nextVersion',\n /** The package format of the distribution in which one or more data files are grouped together, e.g. to enable a set of related files to be downloaded together. */\n 'packageFormat': 'http://www.w3.org/ns/dcat#packageFormat',\n /** The previous resource (before the current one) in an ordered collection or series of resources. */\n 'prev': 'http://www.w3.org/ns/dcat#prev',\n /** The previous version of a resource in a lineage [PAV]. */\n 'previousVersion': 'http://www.w3.org/ns/dcat#previousVersion',\n /** Link to a description of a relationship with another resource. */\n 'qualifiedRelation': 'http://www.w3.org/ns/dcat#qualifiedRelation',\n /** A record describing the registration of a single dataset or data service that is part of the catalog. */\n 'record': 'http://www.w3.org/ns/dcat#record',\n /** A resource that is listed in the catalog. */\n 'resource': 'http://www.w3.org/ns/dcat#resource',\n /** This property MAY be used only in addition to its inverse, and it MUST NOT be used to replace it. */\n 'seriesMember': 'http://www.w3.org/ns/dcat#seriesMember',\n /** A collection of data that this DataService can distribute. */\n 'servesDataset': 'http://www.w3.org/ns/dcat#servesDataset',\n /** A service that is listed in the catalog. */\n 'service': 'http://www.w3.org/ns/dcat#service',\n /** Alternative spatial resolutions might be provided as different dataset distributions. */\n 'spatialResolutionInMeters': 'http://www.w3.org/ns/dcat#spatialResolutionInMeters',\n /** The start of the period */\n 'startDate': 'http://www.w3.org/ns/dcat#startDate',\n /** minimum time period resolvable in a dataset. */\n 'temporalResolution': 'http://www.w3.org/ns/dcat#temporalResolution',\n /** A main category of the resource. A resource can have multiple themes. */\n 'theme': 'http://www.w3.org/ns/dcat#theme',\n /** The knowledge organization system (KOS) used to classify catalog's datasets. */\n 'themeTaxonomy': 'http://www.w3.org/ns/dcat#themeTaxonomy',\n /** The version indicator (name or identifier) of a resource. */\n 'version': 'http://www.w3.org/ns/dcat#version',\n /** This axiom needed so that Protege loads DCAT 3 without errors. */\n 'homepage': 'http://xmlns.com/foaf/0.1/homepage',\n /** This axiom needed so that Protege loads DCAT 3 without errors. */\n 'primaryTopic': 'http://xmlns.com/foaf/0.1/primaryTopic',\n};\n/** Namespace URI of the dcat vocabulary. */\nexports._dcat = namedNode('http://www.w3.org/ns/dcat#');\nexports.dcat = {\n /** DCAT is an RDF vocabulary designed to facilitate interoperability between data catalogs published on the Web. By using DCAT to describe datasets in data catalogs, publishers increase discoverability and enable applications easily to consume metadata from multiple catalogs. It further enables decentralized publishing of catalogs and facilitates federated dataset search across sites. Aggregated DCAT metadata can serve as a manifest file to facilitate digital preservation. DCAT is defined at http://www.w3.org/TR/vocab-dcat/. Any variance between that normative document and this schema is an error in this schema. */\n 'dcat': namedNode('http://www.w3.org/ns/dcat'),\n /** A curated collection of metadata about resources (e.g., datasets and data services in the context of a data catalog). */\n 'Catalog': namedNode('http://www.w3.org/ns/dcat#Catalog'),\n /** A record in a data catalog, describing the registration of a single dataset or data service. */\n 'CatalogRecord': namedNode('http://www.w3.org/ns/dcat#CatalogRecord'),\n /** A site or end-point providing operations related to the discovery of, access to, or processing functions on, data or related resources. */\n 'DataService': namedNode('http://www.w3.org/ns/dcat#DataService'),\n /** A collection of data, published or curated by a single source, and available for access or download in one or more representations. */\n 'Dataset': namedNode('http://www.w3.org/ns/dcat#Dataset'),\n /** A collection of datasets that are published separately, but share some characteristics that group them. */\n 'DatasetSeries': namedNode('http://www.w3.org/ns/dcat#DatasetSeries'),\n /** A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above). */\n 'Distribution': namedNode('http://www.w3.org/ns/dcat#Distribution'),\n /** An association class for attaching additional information to a relationship between DCAT Resources. */\n 'Relationship': namedNode('http://www.w3.org/ns/dcat#Relationship'),\n /** Resource published or curated by a single agent. */\n 'Resource': namedNode('http://www.w3.org/ns/dcat#Resource'),\n /** A role is the function of a resource or agent with respect to another resource, in the context of resource attribution or resource relationships. */\n 'Role': namedNode('http://www.w3.org/ns/dcat#Role'),\n /** A site or end-point that gives access to the distribution of the dataset. */\n 'accessService': namedNode('http://www.w3.org/ns/dcat#accessService'),\n /** A URL of a resource that gives access to a distribution of the dataset. E.g. landing page, feed, SPARQL endpoint. Use for all cases except a simple download link, in which case downloadURL is preferred. */\n 'accessURL': namedNode('http://www.w3.org/ns/dcat#accessURL'),\n /** The geographic bounding box of a spatial thing [SDW-BP]. */\n 'bbox': namedNode('http://www.w3.org/ns/dcat#bbox'),\n /** The size of a distribution in bytes. */\n 'byteSize': namedNode('http://www.w3.org/ns/dcat#byteSize'),\n /** A catalog that is listed in the catalog. */\n 'catalog': namedNode('http://www.w3.org/ns/dcat#catalog'),\n /** The geographic center (centroid) of a spatial thing [SDW-BP]. */\n 'centroid': namedNode('http://www.w3.org/ns/dcat#centroid'),\n /** The compression format of the distribution in which the data is contained in a compressed form, e.g. to reduce the size of the downloadable file. */\n 'compressFormat': namedNode('http://www.w3.org/ns/dcat#compressFormat'),\n /** Relevant contact information for the catalogued resource. Use of vCard is recommended. */\n 'contactPoint': namedNode('http://www.w3.org/ns/dcat#contactPoint'),\n /** A dataset that is listed in the catalog. */\n 'dataset': namedNode('http://www.w3.org/ns/dcat#dataset'),\n /** An available distribution of the dataset. */\n 'distribution': namedNode('http://www.w3.org/ns/dcat#distribution'),\n /** The URL of the downloadable file in a given format. E.g. CSV file or RDF file. The format is indicated by the distribution's dcterms:format and/or dcat:mediaType. */\n 'downloadURL': namedNode('http://www.w3.org/ns/dcat#downloadURL'),\n /** The end of the period. */\n 'endDate': namedNode('http://www.w3.org/ns/dcat#endDate'),\n /** A description of the service end-point, including its operations, parameters etc. */\n 'endpointDescription': namedNode('http://www.w3.org/ns/dcat#endpointDescription'),\n /** The root location or primary endpoint of the service (a web-resolvable IRI). */\n 'endpointURL': namedNode('http://www.w3.org/ns/dcat#endpointURL'),\n /** The first resource in an ordered collection or series of resources, to which the current resource belongs. */\n 'first': namedNode('http://www.w3.org/ns/dcat#first'),\n /** The function of an entity or agent with respect to another entity or resource. */\n 'hadRole': namedNode('http://www.w3.org/ns/dcat#hadRole'),\n /** This resource has a more specific, versioned resource with equivalent content [PAV]. */\n 'hasCurrentVersion': namedNode('http://www.w3.org/ns/dcat#hasCurrentVersion'),\n /** This resource has a more specific, versioned resource [PAV]. */\n 'hasVersion': namedNode('http://www.w3.org/ns/dcat#hasVersion'),\n /** This property MAY be used only in addition to its inverse, and it MUST NOT be used to replace it. */\n 'inCatalog': namedNode('http://www.w3.org/ns/dcat#inCatalog'),\n /** A dataset series of which the dataset is part. */\n 'inSeries': namedNode('http://www.w3.org/ns/dcat#inSeries'),\n /** This property MAY be used only in addition to its inverse, and it MUST NOT be used to replace it. */\n 'isDistributionOf': namedNode('http://www.w3.org/ns/dcat#isDistributionOf'),\n /** This property MAY be used only in addition to its inverse, and it MUST NOT be used to replace it. */\n 'isVersionOf': namedNode('http://www.w3.org/ns/dcat#isVersionOf'),\n /** A keyword or tag describing a resource. */\n 'keyword': namedNode('http://www.w3.org/ns/dcat#keyword'),\n /** A Web page that can be navigated to in a Web browser to gain access to the catalog, a dataset, its distributions and/or additional information. */\n 'landingPage': namedNode('http://www.w3.org/ns/dcat#landingPage'),\n /** The last resource in an ordered collection or series of resources, to which the current resource belongs. */\n 'last': namedNode('http://www.w3.org/ns/dcat#last'),\n /** The media type of the distribution as defined by IANA */\n 'mediaType': namedNode('http://www.w3.org/ns/dcat#mediaType'),\n /** This property MAY be used only in addition to its inverse, and it MUST NOT be used to replace it. */\n 'next': namedNode('http://www.w3.org/ns/dcat#next'),\n /** This property MAY be used only in addition to its inverse, and it MUST NOT be used to replace it. */\n 'nextVersion': namedNode('http://www.w3.org/ns/dcat#nextVersion'),\n /** The package format of the distribution in which one or more data files are grouped together, e.g. to enable a set of related files to be downloaded together. */\n 'packageFormat': namedNode('http://www.w3.org/ns/dcat#packageFormat'),\n /** The previous resource (before the current one) in an ordered collection or series of resources. */\n 'prev': namedNode('http://www.w3.org/ns/dcat#prev'),\n /** The previous version of a resource in a lineage [PAV]. */\n 'previousVersion': namedNode('http://www.w3.org/ns/dcat#previousVersion'),\n /** Link to a description of a relationship with another resource. */\n 'qualifiedRelation': namedNode('http://www.w3.org/ns/dcat#qualifiedRelation'),\n /** A record describing the registration of a single dataset or data service that is part of the catalog. */\n 'record': namedNode('http://www.w3.org/ns/dcat#record'),\n /** A resource that is listed in the catalog. */\n 'resource': namedNode('http://www.w3.org/ns/dcat#resource'),\n /** This property MAY be used only in addition to its inverse, and it MUST NOT be used to replace it. */\n 'seriesMember': namedNode('http://www.w3.org/ns/dcat#seriesMember'),\n /** A collection of data that this DataService can distribute. */\n 'servesDataset': namedNode('http://www.w3.org/ns/dcat#servesDataset'),\n /** A service that is listed in the catalog. */\n 'service': namedNode('http://www.w3.org/ns/dcat#service'),\n /** Alternative spatial resolutions might be provided as different dataset distributions. */\n 'spatialResolutionInMeters': namedNode('http://www.w3.org/ns/dcat#spatialResolutionInMeters'),\n /** The start of the period */\n 'startDate': namedNode('http://www.w3.org/ns/dcat#startDate'),\n /** minimum time period resolvable in a dataset. */\n 'temporalResolution': namedNode('http://www.w3.org/ns/dcat#temporalResolution'),\n /** A main category of the resource. A resource can have multiple themes. */\n 'theme': namedNode('http://www.w3.org/ns/dcat#theme'),\n /** The knowledge organization system (KOS) used to classify catalog's datasets. */\n 'themeTaxonomy': namedNode('http://www.w3.org/ns/dcat#themeTaxonomy'),\n /** The version indicator (name or identifier) of a resource. */\n 'version': namedNode('http://www.w3.org/ns/dcat#version'),\n /** This axiom needed so that Protege loads DCAT 3 without errors. */\n 'homepage': namedNode('http://xmlns.com/foaf/0.1/homepage'),\n /** This axiom needed so that Protege loads DCAT 3 without errors. */\n 'primaryTopic': namedNode('http://xmlns.com/foaf/0.1/primaryTopic'),\n};\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/ontologies/dcat.ts?");
|
|
1077
|
+
|
|
1078
|
+
/***/ }),
|
|
1079
|
+
|
|
738
1080
|
/***/ "./src/ontologies/index.ts":
|
|
739
1081
|
/*!*********************************!*\
|
|
740
1082
|
!*** ./src/ontologies/index.ts ***!
|
|
@@ -742,7 +1084,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\ncons
|
|
|
742
1084
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
743
1085
|
|
|
744
1086
|
"use strict";
|
|
745
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.
|
|
1087
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports._dcat = exports.dcat = exports._DCAT = exports.DCAT = exports._owl = exports.owl = exports._OWL = exports.OWL = exports._rdf = exports.rdf = exports._RDF = exports.RDF = exports._rdfa = exports.rdfa = exports._RDFA = exports.RDFA = exports._rdfs = exports.rdfs = exports._RDFS = exports.RDFS = exports._sh = exports.sh = exports._SH = exports.SH = exports._skos_xl = exports.skos_xl = exports._SKOS_XL = exports.SKOS_XL = exports._skos = exports.skos = exports._SKOS = exports.SKOS = exports._xsd = exports.xsd = exports._XSD = exports.XSD = void 0;\nvar xsd_1 = __webpack_require__(/*! ./xsd */ \"./src/ontologies/xsd.ts\");\nObject.defineProperty(exports, \"XSD\", ({ enumerable: true, get: function () { return xsd_1.XSD; } }));\nObject.defineProperty(exports, \"_XSD\", ({ enumerable: true, get: function () { return xsd_1._XSD; } }));\nObject.defineProperty(exports, \"xsd\", ({ enumerable: true, get: function () { return xsd_1.xsd; } }));\nObject.defineProperty(exports, \"_xsd\", ({ enumerable: true, get: function () { return xsd_1._xsd; } }));\nvar skos_1 = __webpack_require__(/*! ./skos */ \"./src/ontologies/skos.ts\");\nObject.defineProperty(exports, \"SKOS\", ({ enumerable: true, get: function () { return skos_1.SKOS; } }));\nObject.defineProperty(exports, \"_SKOS\", ({ enumerable: true, get: function () { return skos_1._SKOS; } }));\nObject.defineProperty(exports, \"skos\", ({ enumerable: true, get: function () { return skos_1.skos; } }));\nObject.defineProperty(exports, \"_skos\", ({ enumerable: true, get: function () { return skos_1._skos; } }));\nvar skos_xl_1 = __webpack_require__(/*! ./skos-xl */ \"./src/ontologies/skos-xl.ts\");\nObject.defineProperty(exports, \"SKOS_XL\", ({ enumerable: true, get: function () { return skos_xl_1.SKOS_XL; } }));\nObject.defineProperty(exports, \"_SKOS_XL\", ({ enumerable: true, get: function () { return skos_xl_1._SKOS_XL; } }));\nObject.defineProperty(exports, \"skos_xl\", ({ enumerable: true, get: function () { return skos_xl_1.skos_xl; } }));\nObject.defineProperty(exports, \"_skos_xl\", ({ enumerable: true, get: function () { return skos_xl_1._skos_xl; } }));\nvar sh_1 = __webpack_require__(/*! ./sh */ \"./src/ontologies/sh.ts\");\nObject.defineProperty(exports, \"SH\", ({ enumerable: true, get: function () { return sh_1.SH; } }));\nObject.defineProperty(exports, \"_SH\", ({ enumerable: true, get: function () { return sh_1._SH; } }));\nObject.defineProperty(exports, \"sh\", ({ enumerable: true, get: function () { return sh_1.sh; } }));\nObject.defineProperty(exports, \"_sh\", ({ enumerable: true, get: function () { return sh_1._sh; } }));\nvar rdfs_1 = __webpack_require__(/*! ./rdfs */ \"./src/ontologies/rdfs.ts\");\nObject.defineProperty(exports, \"RDFS\", ({ enumerable: true, get: function () { return rdfs_1.RDFS; } }));\nObject.defineProperty(exports, \"_RDFS\", ({ enumerable: true, get: function () { return rdfs_1._RDFS; } }));\nObject.defineProperty(exports, \"rdfs\", ({ enumerable: true, get: function () { return rdfs_1.rdfs; } }));\nObject.defineProperty(exports, \"_rdfs\", ({ enumerable: true, get: function () { return rdfs_1._rdfs; } }));\nvar rdfa_1 = __webpack_require__(/*! ./rdfa */ \"./src/ontologies/rdfa.ts\");\nObject.defineProperty(exports, \"RDFA\", ({ enumerable: true, get: function () { return rdfa_1.RDFA; } }));\nObject.defineProperty(exports, \"_RDFA\", ({ enumerable: true, get: function () { return rdfa_1._RDFA; } }));\nObject.defineProperty(exports, \"rdfa\", ({ enumerable: true, get: function () { return rdfa_1.rdfa; } }));\nObject.defineProperty(exports, \"_rdfa\", ({ enumerable: true, get: function () { return rdfa_1._rdfa; } }));\nvar rdf_1 = __webpack_require__(/*! ./rdf */ \"./src/ontologies/rdf.ts\");\nObject.defineProperty(exports, \"RDF\", ({ enumerable: true, get: function () { return rdf_1.RDF; } }));\nObject.defineProperty(exports, \"_RDF\", ({ enumerable: true, get: function () { return rdf_1._RDF; } }));\nObject.defineProperty(exports, \"rdf\", ({ enumerable: true, get: function () { return rdf_1.rdf; } }));\nObject.defineProperty(exports, \"_rdf\", ({ enumerable: true, get: function () { return rdf_1._rdf; } }));\nvar owl_1 = __webpack_require__(/*! ./owl */ \"./src/ontologies/owl.ts\");\nObject.defineProperty(exports, \"OWL\", ({ enumerable: true, get: function () { return owl_1.OWL; } }));\nObject.defineProperty(exports, \"_OWL\", ({ enumerable: true, get: function () { return owl_1._OWL; } }));\nObject.defineProperty(exports, \"owl\", ({ enumerable: true, get: function () { return owl_1.owl; } }));\nObject.defineProperty(exports, \"_owl\", ({ enumerable: true, get: function () { return owl_1._owl; } }));\nvar dcat_1 = __webpack_require__(/*! ./dcat */ \"./src/ontologies/dcat.ts\");\nObject.defineProperty(exports, \"DCAT\", ({ enumerable: true, get: function () { return dcat_1.DCAT; } }));\nObject.defineProperty(exports, \"_DCAT\", ({ enumerable: true, get: function () { return dcat_1._DCAT; } }));\nObject.defineProperty(exports, \"dcat\", ({ enumerable: true, get: function () { return dcat_1.dcat; } }));\nObject.defineProperty(exports, \"_dcat\", ({ enumerable: true, get: function () { return dcat_1._dcat; } }));\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/ontologies/index.ts?");
|
|
746
1088
|
|
|
747
1089
|
/***/ }),
|
|
748
1090
|
|
|
@@ -753,7 +1095,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
753
1095
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
754
1096
|
|
|
755
1097
|
"use strict";
|
|
756
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.owl = exports._owl = exports.OWL = exports._OWL = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\n/** Namespace URI of the OWL vocabulary. */\nexports._OWL = 'http://www.w3.org/2002/07/owl#';\nexports.OWL = {\n /** The class of collections of pairwise different individuals. */\n 'AllDifferent': 'http://www.w3.org/2002/07/owl#AllDifferent',\n /** The class of collections of pairwise disjoint classes. */\n 'AllDisjointClasses': 'http://www.w3.org/2002/07/owl#AllDisjointClasses',\n /** The class of collections of pairwise disjoint properties. */\n 'AllDisjointProperties': 'http://www.w3.org/2002/07/owl#AllDisjointProperties',\n /** The class of annotated annotations for which the RDF serialization consists of an annotated subject, predicate and object. */\n 'Annotation': 'http://www.w3.org/2002/07/owl#Annotation',\n /** The class of annotation properties. */\n 'AnnotationProperty': 'http://www.w3.org/2002/07/owl#AnnotationProperty',\n /** The class of asymmetric properties. */\n 'AsymmetricProperty': 'http://www.w3.org/2002/07/owl#AsymmetricProperty',\n /** The class of annotated axioms for which the RDF serialization consists of an annotated subject, predicate and object. */\n 'Axiom': 'http://www.w3.org/2002/07/owl#Axiom',\n /** The class of OWL classes. */\n 'Class': 'http://www.w3.org/2002/07/owl#Class',\n /** The class of OWL data ranges, which are special kinds of datatypes. Note: The use of the IRI owl:DataRange has been deprecated as of OWL 2. The IRI rdfs:Datatype SHOULD be used instead. */\n 'DataRange': 'http://www.w3.org/2002/07/owl#DataRange',\n /** The class of data properties. */\n 'DatatypeProperty': 'http://www.w3.org/2002/07/owl#DatatypeProperty',\n /** The class of deprecated classes. */\n 'DeprecatedClass': 'http://www.w3.org/2002/07/owl#DeprecatedClass',\n /** The class of deprecated properties. */\n 'DeprecatedProperty': 'http://www.w3.org/2002/07/owl#DeprecatedProperty',\n /** The class of functional properties. */\n 'FunctionalProperty': 'http://www.w3.org/2002/07/owl#FunctionalProperty',\n /** The class of inverse-functional properties. */\n 'InverseFunctionalProperty': 'http://www.w3.org/2002/07/owl#InverseFunctionalProperty',\n /** The class of irreflexive properties. */\n 'IrreflexiveProperty': 'http://www.w3.org/2002/07/owl#IrreflexiveProperty',\n /** The class of named individuals. */\n 'NamedIndividual': 'http://www.w3.org/2002/07/owl#NamedIndividual',\n /** The class of negative property assertions. */\n 'NegativePropertyAssertion': 'http://www.w3.org/2002/07/owl#NegativePropertyAssertion',\n /** This is the empty class. */\n 'Nothing': 'http://www.w3.org/2002/07/owl#Nothing',\n /** The class of object properties. */\n 'ObjectProperty': 'http://www.w3.org/2002/07/owl#ObjectProperty',\n /** The class of ontologies. */\n 'Ontology': 'http://www.w3.org/2002/07/owl#Ontology',\n /** The class of ontology properties. */\n 'OntologyProperty': 'http://www.w3.org/2002/07/owl#OntologyProperty',\n /** The class of reflexive properties. */\n 'ReflexiveProperty': 'http://www.w3.org/2002/07/owl#ReflexiveProperty',\n /** The class of property restrictions. */\n 'Restriction': 'http://www.w3.org/2002/07/owl#Restriction',\n /** The class of symmetric properties. */\n 'SymmetricProperty': 'http://www.w3.org/2002/07/owl#SymmetricProperty',\n /** The class of OWL individuals. */\n 'Thing': 'http://www.w3.org/2002/07/owl#Thing',\n /** The class of transitive properties. */\n 'TransitiveProperty': 'http://www.w3.org/2002/07/owl#TransitiveProperty',\n /** The property that determines the class that a universal property restriction refers to. */\n 'allValuesFrom': 'http://www.w3.org/2002/07/owl#allValuesFrom',\n /** The property that determines the predicate of an annotated axiom or annotated annotation. */\n 'annotatedProperty': 'http://www.w3.org/2002/07/owl#annotatedProperty',\n /** The property that determines the subject of an annotated axiom or annotated annotation. */\n 'annotatedSource': 'http://www.w3.org/2002/07/owl#annotatedSource',\n /** The property that determines the object of an annotated axiom or annotated annotation. */\n 'annotatedTarget': 'http://www.w3.org/2002/07/owl#annotatedTarget',\n /** The property that determines the predicate of a negative property assertion. */\n 'assertionProperty': 'http://www.w3.org/2002/07/owl#assertionProperty',\n /** The annotation property that indicates that a given ontology is backward compatible with another ontology. */\n 'backwardCompatibleWith': 'http://www.w3.org/2002/07/owl#backwardCompatibleWith',\n /** The data property that does not relate any individual to any data value. */\n 'bottomDataProperty': 'http://www.w3.org/2002/07/owl#bottomDataProperty',\n /** The object property that does not relate any two individuals. */\n 'bottomObjectProperty': 'http://www.w3.org/2002/07/owl#bottomObjectProperty',\n /** The property that determines the cardinality of an exact cardinality restriction. */\n 'cardinality': 'http://www.w3.org/2002/07/owl#cardinality',\n /** The property that determines that a given class is the complement of another class. */\n 'complementOf': 'http://www.w3.org/2002/07/owl#complementOf',\n /** The property that determines that a given data range is the complement of another data range with respect to the data domain. */\n 'datatypeComplementOf': 'http://www.w3.org/2002/07/owl#datatypeComplementOf',\n /** The annotation property that indicates that a given entity has been deprecated. */\n 'deprecated': 'http://www.w3.org/2002/07/owl#deprecated',\n /** The property that determines that two given individuals are different. */\n 'differentFrom': 'http://www.w3.org/2002/07/owl#differentFrom',\n /** The property that determines that a given class is equivalent to the disjoint union of a collection of other classes. */\n 'disjointUnionOf': 'http://www.w3.org/2002/07/owl#disjointUnionOf',\n /** The property that determines that two given classes are disjoint. */\n 'disjointWith': 'http://www.w3.org/2002/07/owl#disjointWith',\n /** The property that determines the collection of pairwise different individuals in a owl:AllDifferent axiom. */\n 'distinctMembers': 'http://www.w3.org/2002/07/owl#distinctMembers',\n /** The property that determines that two given classes are equivalent, and that is used to specify datatype definitions. */\n 'equivalentClass': 'http://www.w3.org/2002/07/owl#equivalentClass',\n /** The property that determines that two given properties are equivalent. */\n 'equivalentProperty': 'http://www.w3.org/2002/07/owl#equivalentProperty',\n /** The property that determines the collection of properties that jointly build a key. */\n 'hasKey': 'http://www.w3.org/2002/07/owl#hasKey',\n /** The property that determines the property that a self restriction refers to. */\n 'hasSelf': 'http://www.w3.org/2002/07/owl#hasSelf',\n /** The property that determines the individual that a has-value restriction refers to. */\n 'hasValue': 'http://www.w3.org/2002/07/owl#hasValue',\n /** The property that is used for importing other ontologies into a given ontology. */\n 'imports': 'http://www.w3.org/2002/07/owl#imports',\n /** The annotation property that indicates that a given ontology is incompatible with another ontology. */\n 'incompatibleWith': 'http://www.w3.org/2002/07/owl#incompatibleWith',\n /** The property that determines the collection of classes or data ranges that build an intersection. */\n 'intersectionOf': 'http://www.w3.org/2002/07/owl#intersectionOf',\n /** The property that determines that two given properties are inverse. */\n 'inverseOf': 'http://www.w3.org/2002/07/owl#inverseOf',\n /** The property that determines the cardinality of a maximum cardinality restriction. */\n 'maxCardinality': 'http://www.w3.org/2002/07/owl#maxCardinality',\n /** The property that determines the cardinality of a maximum qualified cardinality restriction. */\n 'maxQualifiedCardinality': 'http://www.w3.org/2002/07/owl#maxQualifiedCardinality',\n /** The property that determines the collection of members in either a owl:AllDifferent, owl:AllDisjointClasses or owl:AllDisjointProperties axiom. */\n 'members': 'http://www.w3.org/2002/07/owl#members',\n /** The property that determines the cardinality of a minimum cardinality restriction. */\n 'minCardinality': 'http://www.w3.org/2002/07/owl#minCardinality',\n /** The property that determines the cardinality of a minimum qualified cardinality restriction. */\n 'minQualifiedCardinality': 'http://www.w3.org/2002/07/owl#minQualifiedCardinality',\n /** The property that determines the class that a qualified object cardinality restriction refers to. */\n 'onClass': 'http://www.w3.org/2002/07/owl#onClass',\n /** The property that determines the data range that a qualified data cardinality restriction refers to. */\n 'onDataRange': 'http://www.w3.org/2002/07/owl#onDataRange',\n /** The property that determines the datatype that a datatype restriction refers to. */\n 'onDatatype': 'http://www.w3.org/2002/07/owl#onDatatype',\n /** The property that determines the n-tuple of properties that a property restriction on an n-ary data range refers to. */\n 'onProperties': 'http://www.w3.org/2002/07/owl#onProperties',\n /** The property that determines the property that a property restriction refers to. */\n 'onProperty': 'http://www.w3.org/2002/07/owl#onProperty',\n /** The property that determines the collection of individuals or data values that build an enumeration. */\n 'oneOf': 'http://www.w3.org/2002/07/owl#oneOf',\n /** The annotation property that indicates the predecessor ontology of a given ontology. */\n 'priorVersion': 'http://www.w3.org/2002/07/owl#priorVersion',\n /** The property that determines the n-tuple of properties that build a sub property chain of a given property. */\n 'propertyChainAxiom': 'http://www.w3.org/2002/07/owl#propertyChainAxiom',\n /** The property that determines that two given properties are disjoint. */\n 'propertyDisjointWith': 'http://www.w3.org/2002/07/owl#propertyDisjointWith',\n /** The property that determines the cardinality of an exact qualified cardinality restriction. */\n 'qualifiedCardinality': 'http://www.w3.org/2002/07/owl#qualifiedCardinality',\n /** The property that determines that two given individuals are equal. */\n 'sameAs': 'http://www.w3.org/2002/07/owl#sameAs',\n /** The property that determines the class that an existential property restriction refers to. */\n 'someValuesFrom': 'http://www.w3.org/2002/07/owl#someValuesFrom',\n /** The property that determines the subject of a negative property assertion. */\n 'sourceIndividual': 'http://www.w3.org/2002/07/owl#sourceIndividual',\n /** The property that determines the object of a negative object property assertion. */\n 'targetIndividual': 'http://www.w3.org/2002/07/owl#targetIndividual',\n /** The property that determines the value of a negative data property assertion. */\n 'targetValue': 'http://www.w3.org/2002/07/owl#targetValue',\n /** The data property that relates every individual to every data value. */\n 'topDataProperty': 'http://www.w3.org/2002/07/owl#topDataProperty',\n /** The object property that relates every two individuals. */\n 'topObjectProperty': 'http://www.w3.org/2002/07/owl#topObjectProperty',\n /** The property that determines the collection of classes or data ranges that build a union. */\n 'unionOf': 'http://www.w3.org/2002/07/owl#unionOf',\n /** The property that identifies the version IRI of an ontology. */\n 'versionIRI': 'http://www.w3.org/2002/07/owl#versionIRI',\n /** The annotation property that provides version information for an ontology or another OWL construct. */\n 'versionInfo': 'http://www.w3.org/2002/07/owl#versionInfo',\n /** The property that determines the collection of facet-value pairs that define a datatype restriction. */\n 'withRestrictions': 'http://www.w3.org/2002/07/owl#withRestrictions',\n};\n/** Namespace URI of the owl vocabulary. */\nexports._owl = new n3.NamedNode('http://www.w3.org/2002/07/owl#');\nexports.owl = {\n /** The class of collections of pairwise different individuals. */\n 'AllDifferent': new n3.NamedNode('http://www.w3.org/2002/07/owl#AllDifferent'),\n /** The class of collections of pairwise disjoint classes. */\n 'AllDisjointClasses': new n3.NamedNode('http://www.w3.org/2002/07/owl#AllDisjointClasses'),\n /** The class of collections of pairwise disjoint properties. */\n 'AllDisjointProperties': new n3.NamedNode('http://www.w3.org/2002/07/owl#AllDisjointProperties'),\n /** The class of annotated annotations for which the RDF serialization consists of an annotated subject, predicate and object. */\n 'Annotation': new n3.NamedNode('http://www.w3.org/2002/07/owl#Annotation'),\n /** The class of annotation properties. */\n 'AnnotationProperty': new n3.NamedNode('http://www.w3.org/2002/07/owl#AnnotationProperty'),\n /** The class of asymmetric properties. */\n 'AsymmetricProperty': new n3.NamedNode('http://www.w3.org/2002/07/owl#AsymmetricProperty'),\n /** The class of annotated axioms for which the RDF serialization consists of an annotated subject, predicate and object. */\n 'Axiom': new n3.NamedNode('http://www.w3.org/2002/07/owl#Axiom'),\n /** The class of OWL classes. */\n 'Class': new n3.NamedNode('http://www.w3.org/2002/07/owl#Class'),\n /** The class of OWL data ranges, which are special kinds of datatypes. Note: The use of the IRI owl:DataRange has been deprecated as of OWL 2. The IRI rdfs:Datatype SHOULD be used instead. */\n 'DataRange': new n3.NamedNode('http://www.w3.org/2002/07/owl#DataRange'),\n /** The class of data properties. */\n 'DatatypeProperty': new n3.NamedNode('http://www.w3.org/2002/07/owl#DatatypeProperty'),\n /** The class of deprecated classes. */\n 'DeprecatedClass': new n3.NamedNode('http://www.w3.org/2002/07/owl#DeprecatedClass'),\n /** The class of deprecated properties. */\n 'DeprecatedProperty': new n3.NamedNode('http://www.w3.org/2002/07/owl#DeprecatedProperty'),\n /** The class of functional properties. */\n 'FunctionalProperty': new n3.NamedNode('http://www.w3.org/2002/07/owl#FunctionalProperty'),\n /** The class of inverse-functional properties. */\n 'InverseFunctionalProperty': new n3.NamedNode('http://www.w3.org/2002/07/owl#InverseFunctionalProperty'),\n /** The class of irreflexive properties. */\n 'IrreflexiveProperty': new n3.NamedNode('http://www.w3.org/2002/07/owl#IrreflexiveProperty'),\n /** The class of named individuals. */\n 'NamedIndividual': new n3.NamedNode('http://www.w3.org/2002/07/owl#NamedIndividual'),\n /** The class of negative property assertions. */\n 'NegativePropertyAssertion': new n3.NamedNode('http://www.w3.org/2002/07/owl#NegativePropertyAssertion'),\n /** This is the empty class. */\n 'Nothing': new n3.NamedNode('http://www.w3.org/2002/07/owl#Nothing'),\n /** The class of object properties. */\n 'ObjectProperty': new n3.NamedNode('http://www.w3.org/2002/07/owl#ObjectProperty'),\n /** The class of ontologies. */\n 'Ontology': new n3.NamedNode('http://www.w3.org/2002/07/owl#Ontology'),\n /** The class of ontology properties. */\n 'OntologyProperty': new n3.NamedNode('http://www.w3.org/2002/07/owl#OntologyProperty'),\n /** The class of reflexive properties. */\n 'ReflexiveProperty': new n3.NamedNode('http://www.w3.org/2002/07/owl#ReflexiveProperty'),\n /** The class of property restrictions. */\n 'Restriction': new n3.NamedNode('http://www.w3.org/2002/07/owl#Restriction'),\n /** The class of symmetric properties. */\n 'SymmetricProperty': new n3.NamedNode('http://www.w3.org/2002/07/owl#SymmetricProperty'),\n /** The class of OWL individuals. */\n 'Thing': new n3.NamedNode('http://www.w3.org/2002/07/owl#Thing'),\n /** The class of transitive properties. */\n 'TransitiveProperty': new n3.NamedNode('http://www.w3.org/2002/07/owl#TransitiveProperty'),\n /** The property that determines the class that a universal property restriction refers to. */\n 'allValuesFrom': new n3.NamedNode('http://www.w3.org/2002/07/owl#allValuesFrom'),\n /** The property that determines the predicate of an annotated axiom or annotated annotation. */\n 'annotatedProperty': new n3.NamedNode('http://www.w3.org/2002/07/owl#annotatedProperty'),\n /** The property that determines the subject of an annotated axiom or annotated annotation. */\n 'annotatedSource': new n3.NamedNode('http://www.w3.org/2002/07/owl#annotatedSource'),\n /** The property that determines the object of an annotated axiom or annotated annotation. */\n 'annotatedTarget': new n3.NamedNode('http://www.w3.org/2002/07/owl#annotatedTarget'),\n /** The property that determines the predicate of a negative property assertion. */\n 'assertionProperty': new n3.NamedNode('http://www.w3.org/2002/07/owl#assertionProperty'),\n /** The annotation property that indicates that a given ontology is backward compatible with another ontology. */\n 'backwardCompatibleWith': new n3.NamedNode('http://www.w3.org/2002/07/owl#backwardCompatibleWith'),\n /** The data property that does not relate any individual to any data value. */\n 'bottomDataProperty': new n3.NamedNode('http://www.w3.org/2002/07/owl#bottomDataProperty'),\n /** The object property that does not relate any two individuals. */\n 'bottomObjectProperty': new n3.NamedNode('http://www.w3.org/2002/07/owl#bottomObjectProperty'),\n /** The property that determines the cardinality of an exact cardinality restriction. */\n 'cardinality': new n3.NamedNode('http://www.w3.org/2002/07/owl#cardinality'),\n /** The property that determines that a given class is the complement of another class. */\n 'complementOf': new n3.NamedNode('http://www.w3.org/2002/07/owl#complementOf'),\n /** The property that determines that a given data range is the complement of another data range with respect to the data domain. */\n 'datatypeComplementOf': new n3.NamedNode('http://www.w3.org/2002/07/owl#datatypeComplementOf'),\n /** The annotation property that indicates that a given entity has been deprecated. */\n 'deprecated': new n3.NamedNode('http://www.w3.org/2002/07/owl#deprecated'),\n /** The property that determines that two given individuals are different. */\n 'differentFrom': new n3.NamedNode('http://www.w3.org/2002/07/owl#differentFrom'),\n /** The property that determines that a given class is equivalent to the disjoint union of a collection of other classes. */\n 'disjointUnionOf': new n3.NamedNode('http://www.w3.org/2002/07/owl#disjointUnionOf'),\n /** The property that determines that two given classes are disjoint. */\n 'disjointWith': new n3.NamedNode('http://www.w3.org/2002/07/owl#disjointWith'),\n /** The property that determines the collection of pairwise different individuals in a owl:AllDifferent axiom. */\n 'distinctMembers': new n3.NamedNode('http://www.w3.org/2002/07/owl#distinctMembers'),\n /** The property that determines that two given classes are equivalent, and that is used to specify datatype definitions. */\n 'equivalentClass': new n3.NamedNode('http://www.w3.org/2002/07/owl#equivalentClass'),\n /** The property that determines that two given properties are equivalent. */\n 'equivalentProperty': new n3.NamedNode('http://www.w3.org/2002/07/owl#equivalentProperty'),\n /** The property that determines the collection of properties that jointly build a key. */\n 'hasKey': new n3.NamedNode('http://www.w3.org/2002/07/owl#hasKey'),\n /** The property that determines the property that a self restriction refers to. */\n 'hasSelf': new n3.NamedNode('http://www.w3.org/2002/07/owl#hasSelf'),\n /** The property that determines the individual that a has-value restriction refers to. */\n 'hasValue': new n3.NamedNode('http://www.w3.org/2002/07/owl#hasValue'),\n /** The property that is used for importing other ontologies into a given ontology. */\n 'imports': new n3.NamedNode('http://www.w3.org/2002/07/owl#imports'),\n /** The annotation property that indicates that a given ontology is incompatible with another ontology. */\n 'incompatibleWith': new n3.NamedNode('http://www.w3.org/2002/07/owl#incompatibleWith'),\n /** The property that determines the collection of classes or data ranges that build an intersection. */\n 'intersectionOf': new n3.NamedNode('http://www.w3.org/2002/07/owl#intersectionOf'),\n /** The property that determines that two given properties are inverse. */\n 'inverseOf': new n3.NamedNode('http://www.w3.org/2002/07/owl#inverseOf'),\n /** The property that determines the cardinality of a maximum cardinality restriction. */\n 'maxCardinality': new n3.NamedNode('http://www.w3.org/2002/07/owl#maxCardinality'),\n /** The property that determines the cardinality of a maximum qualified cardinality restriction. */\n 'maxQualifiedCardinality': new n3.NamedNode('http://www.w3.org/2002/07/owl#maxQualifiedCardinality'),\n /** The property that determines the collection of members in either a owl:AllDifferent, owl:AllDisjointClasses or owl:AllDisjointProperties axiom. */\n 'members': new n3.NamedNode('http://www.w3.org/2002/07/owl#members'),\n /** The property that determines the cardinality of a minimum cardinality restriction. */\n 'minCardinality': new n3.NamedNode('http://www.w3.org/2002/07/owl#minCardinality'),\n /** The property that determines the cardinality of a minimum qualified cardinality restriction. */\n 'minQualifiedCardinality': new n3.NamedNode('http://www.w3.org/2002/07/owl#minQualifiedCardinality'),\n /** The property that determines the class that a qualified object cardinality restriction refers to. */\n 'onClass': new n3.NamedNode('http://www.w3.org/2002/07/owl#onClass'),\n /** The property that determines the data range that a qualified data cardinality restriction refers to. */\n 'onDataRange': new n3.NamedNode('http://www.w3.org/2002/07/owl#onDataRange'),\n /** The property that determines the datatype that a datatype restriction refers to. */\n 'onDatatype': new n3.NamedNode('http://www.w3.org/2002/07/owl#onDatatype'),\n /** The property that determines the n-tuple of properties that a property restriction on an n-ary data range refers to. */\n 'onProperties': new n3.NamedNode('http://www.w3.org/2002/07/owl#onProperties'),\n /** The property that determines the property that a property restriction refers to. */\n 'onProperty': new n3.NamedNode('http://www.w3.org/2002/07/owl#onProperty'),\n /** The property that determines the collection of individuals or data values that build an enumeration. */\n 'oneOf': new n3.NamedNode('http://www.w3.org/2002/07/owl#oneOf'),\n /** The annotation property that indicates the predecessor ontology of a given ontology. */\n 'priorVersion': new n3.NamedNode('http://www.w3.org/2002/07/owl#priorVersion'),\n /** The property that determines the n-tuple of properties that build a sub property chain of a given property. */\n 'propertyChainAxiom': new n3.NamedNode('http://www.w3.org/2002/07/owl#propertyChainAxiom'),\n /** The property that determines that two given properties are disjoint. */\n 'propertyDisjointWith': new n3.NamedNode('http://www.w3.org/2002/07/owl#propertyDisjointWith'),\n /** The property that determines the cardinality of an exact qualified cardinality restriction. */\n 'qualifiedCardinality': new n3.NamedNode('http://www.w3.org/2002/07/owl#qualifiedCardinality'),\n /** The property that determines that two given individuals are equal. */\n 'sameAs': new n3.NamedNode('http://www.w3.org/2002/07/owl#sameAs'),\n /** The property that determines the class that an existential property restriction refers to. */\n 'someValuesFrom': new n3.NamedNode('http://www.w3.org/2002/07/owl#someValuesFrom'),\n /** The property that determines the subject of a negative property assertion. */\n 'sourceIndividual': new n3.NamedNode('http://www.w3.org/2002/07/owl#sourceIndividual'),\n /** The property that determines the object of a negative object property assertion. */\n 'targetIndividual': new n3.NamedNode('http://www.w3.org/2002/07/owl#targetIndividual'),\n /** The property that determines the value of a negative data property assertion. */\n 'targetValue': new n3.NamedNode('http://www.w3.org/2002/07/owl#targetValue'),\n /** The data property that relates every individual to every data value. */\n 'topDataProperty': new n3.NamedNode('http://www.w3.org/2002/07/owl#topDataProperty'),\n /** The object property that relates every two individuals. */\n 'topObjectProperty': new n3.NamedNode('http://www.w3.org/2002/07/owl#topObjectProperty'),\n /** The property that determines the collection of classes or data ranges that build a union. */\n 'unionOf': new n3.NamedNode('http://www.w3.org/2002/07/owl#unionOf'),\n /** The property that identifies the version IRI of an ontology. */\n 'versionIRI': new n3.NamedNode('http://www.w3.org/2002/07/owl#versionIRI'),\n /** The annotation property that provides version information for an ontology or another OWL construct. */\n 'versionInfo': new n3.NamedNode('http://www.w3.org/2002/07/owl#versionInfo'),\n /** The property that determines the collection of facet-value pairs that define a datatype restriction. */\n 'withRestrictions': new n3.NamedNode('http://www.w3.org/2002/07/owl#withRestrictions'),\n};\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/ontologies/owl.ts?");
|
|
1098
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.owl = exports._owl = exports.OWL = exports._OWL = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst { namedNode } = n3.DataFactory;\n/** Namespace URI of the OWL vocabulary. */\nexports._OWL = 'http://www.w3.org/2002/07/owl#';\nexports.OWL = {\n /** The class of collections of pairwise different individuals. */\n 'AllDifferent': 'http://www.w3.org/2002/07/owl#AllDifferent',\n /** The class of collections of pairwise disjoint classes. */\n 'AllDisjointClasses': 'http://www.w3.org/2002/07/owl#AllDisjointClasses',\n /** The class of collections of pairwise disjoint properties. */\n 'AllDisjointProperties': 'http://www.w3.org/2002/07/owl#AllDisjointProperties',\n /** The class of annotated annotations for which the RDF serialization consists of an annotated subject, predicate and object. */\n 'Annotation': 'http://www.w3.org/2002/07/owl#Annotation',\n /** The class of annotation properties. */\n 'AnnotationProperty': 'http://www.w3.org/2002/07/owl#AnnotationProperty',\n /** The class of asymmetric properties. */\n 'AsymmetricProperty': 'http://www.w3.org/2002/07/owl#AsymmetricProperty',\n /** The class of annotated axioms for which the RDF serialization consists of an annotated subject, predicate and object. */\n 'Axiom': 'http://www.w3.org/2002/07/owl#Axiom',\n /** The class of OWL classes. */\n 'Class': 'http://www.w3.org/2002/07/owl#Class',\n /** The class of OWL data ranges, which are special kinds of datatypes. Note: The use of the IRI owl:DataRange has been deprecated as of OWL 2. The IRI rdfs:Datatype SHOULD be used instead. */\n 'DataRange': 'http://www.w3.org/2002/07/owl#DataRange',\n /** The class of data properties. */\n 'DatatypeProperty': 'http://www.w3.org/2002/07/owl#DatatypeProperty',\n /** The class of deprecated classes. */\n 'DeprecatedClass': 'http://www.w3.org/2002/07/owl#DeprecatedClass',\n /** The class of deprecated properties. */\n 'DeprecatedProperty': 'http://www.w3.org/2002/07/owl#DeprecatedProperty',\n /** The class of functional properties. */\n 'FunctionalProperty': 'http://www.w3.org/2002/07/owl#FunctionalProperty',\n /** The class of inverse-functional properties. */\n 'InverseFunctionalProperty': 'http://www.w3.org/2002/07/owl#InverseFunctionalProperty',\n /** The class of irreflexive properties. */\n 'IrreflexiveProperty': 'http://www.w3.org/2002/07/owl#IrreflexiveProperty',\n /** The class of named individuals. */\n 'NamedIndividual': 'http://www.w3.org/2002/07/owl#NamedIndividual',\n /** The class of negative property assertions. */\n 'NegativePropertyAssertion': 'http://www.w3.org/2002/07/owl#NegativePropertyAssertion',\n /** This is the empty class. */\n 'Nothing': 'http://www.w3.org/2002/07/owl#Nothing',\n /** The class of object properties. */\n 'ObjectProperty': 'http://www.w3.org/2002/07/owl#ObjectProperty',\n /** The class of ontologies. */\n 'Ontology': 'http://www.w3.org/2002/07/owl#Ontology',\n /** The class of ontology properties. */\n 'OntologyProperty': 'http://www.w3.org/2002/07/owl#OntologyProperty',\n /** The class of reflexive properties. */\n 'ReflexiveProperty': 'http://www.w3.org/2002/07/owl#ReflexiveProperty',\n /** The class of property restrictions. */\n 'Restriction': 'http://www.w3.org/2002/07/owl#Restriction',\n /** The class of symmetric properties. */\n 'SymmetricProperty': 'http://www.w3.org/2002/07/owl#SymmetricProperty',\n /** The class of OWL individuals. */\n 'Thing': 'http://www.w3.org/2002/07/owl#Thing',\n /** The class of transitive properties. */\n 'TransitiveProperty': 'http://www.w3.org/2002/07/owl#TransitiveProperty',\n /** The property that determines the class that a universal property restriction refers to. */\n 'allValuesFrom': 'http://www.w3.org/2002/07/owl#allValuesFrom',\n /** The property that determines the predicate of an annotated axiom or annotated annotation. */\n 'annotatedProperty': 'http://www.w3.org/2002/07/owl#annotatedProperty',\n /** The property that determines the subject of an annotated axiom or annotated annotation. */\n 'annotatedSource': 'http://www.w3.org/2002/07/owl#annotatedSource',\n /** The property that determines the object of an annotated axiom or annotated annotation. */\n 'annotatedTarget': 'http://www.w3.org/2002/07/owl#annotatedTarget',\n /** The property that determines the predicate of a negative property assertion. */\n 'assertionProperty': 'http://www.w3.org/2002/07/owl#assertionProperty',\n /** The annotation property that indicates that a given ontology is backward compatible with another ontology. */\n 'backwardCompatibleWith': 'http://www.w3.org/2002/07/owl#backwardCompatibleWith',\n /** The data property that does not relate any individual to any data value. */\n 'bottomDataProperty': 'http://www.w3.org/2002/07/owl#bottomDataProperty',\n /** The object property that does not relate any two individuals. */\n 'bottomObjectProperty': 'http://www.w3.org/2002/07/owl#bottomObjectProperty',\n /** The property that determines the cardinality of an exact cardinality restriction. */\n 'cardinality': 'http://www.w3.org/2002/07/owl#cardinality',\n /** The property that determines that a given class is the complement of another class. */\n 'complementOf': 'http://www.w3.org/2002/07/owl#complementOf',\n /** The property that determines that a given data range is the complement of another data range with respect to the data domain. */\n 'datatypeComplementOf': 'http://www.w3.org/2002/07/owl#datatypeComplementOf',\n /** The annotation property that indicates that a given entity has been deprecated. */\n 'deprecated': 'http://www.w3.org/2002/07/owl#deprecated',\n /** The property that determines that two given individuals are different. */\n 'differentFrom': 'http://www.w3.org/2002/07/owl#differentFrom',\n /** The property that determines that a given class is equivalent to the disjoint union of a collection of other classes. */\n 'disjointUnionOf': 'http://www.w3.org/2002/07/owl#disjointUnionOf',\n /** The property that determines that two given classes are disjoint. */\n 'disjointWith': 'http://www.w3.org/2002/07/owl#disjointWith',\n /** The property that determines the collection of pairwise different individuals in a owl:AllDifferent axiom. */\n 'distinctMembers': 'http://www.w3.org/2002/07/owl#distinctMembers',\n /** The property that determines that two given classes are equivalent, and that is used to specify datatype definitions. */\n 'equivalentClass': 'http://www.w3.org/2002/07/owl#equivalentClass',\n /** The property that determines that two given properties are equivalent. */\n 'equivalentProperty': 'http://www.w3.org/2002/07/owl#equivalentProperty',\n /** The property that determines the collection of properties that jointly build a key. */\n 'hasKey': 'http://www.w3.org/2002/07/owl#hasKey',\n /** The property that determines the property that a self restriction refers to. */\n 'hasSelf': 'http://www.w3.org/2002/07/owl#hasSelf',\n /** The property that determines the individual that a has-value restriction refers to. */\n 'hasValue': 'http://www.w3.org/2002/07/owl#hasValue',\n /** The property that is used for importing other ontologies into a given ontology. */\n 'imports': 'http://www.w3.org/2002/07/owl#imports',\n /** The annotation property that indicates that a given ontology is incompatible with another ontology. */\n 'incompatibleWith': 'http://www.w3.org/2002/07/owl#incompatibleWith',\n /** The property that determines the collection of classes or data ranges that build an intersection. */\n 'intersectionOf': 'http://www.w3.org/2002/07/owl#intersectionOf',\n /** The property that determines that two given properties are inverse. */\n 'inverseOf': 'http://www.w3.org/2002/07/owl#inverseOf',\n /** The property that determines the cardinality of a maximum cardinality restriction. */\n 'maxCardinality': 'http://www.w3.org/2002/07/owl#maxCardinality',\n /** The property that determines the cardinality of a maximum qualified cardinality restriction. */\n 'maxQualifiedCardinality': 'http://www.w3.org/2002/07/owl#maxQualifiedCardinality',\n /** The property that determines the collection of members in either a owl:AllDifferent, owl:AllDisjointClasses or owl:AllDisjointProperties axiom. */\n 'members': 'http://www.w3.org/2002/07/owl#members',\n /** The property that determines the cardinality of a minimum cardinality restriction. */\n 'minCardinality': 'http://www.w3.org/2002/07/owl#minCardinality',\n /** The property that determines the cardinality of a minimum qualified cardinality restriction. */\n 'minQualifiedCardinality': 'http://www.w3.org/2002/07/owl#minQualifiedCardinality',\n /** The property that determines the class that a qualified object cardinality restriction refers to. */\n 'onClass': 'http://www.w3.org/2002/07/owl#onClass',\n /** The property that determines the data range that a qualified data cardinality restriction refers to. */\n 'onDataRange': 'http://www.w3.org/2002/07/owl#onDataRange',\n /** The property that determines the datatype that a datatype restriction refers to. */\n 'onDatatype': 'http://www.w3.org/2002/07/owl#onDatatype',\n /** The property that determines the n-tuple of properties that a property restriction on an n-ary data range refers to. */\n 'onProperties': 'http://www.w3.org/2002/07/owl#onProperties',\n /** The property that determines the property that a property restriction refers to. */\n 'onProperty': 'http://www.w3.org/2002/07/owl#onProperty',\n /** The property that determines the collection of individuals or data values that build an enumeration. */\n 'oneOf': 'http://www.w3.org/2002/07/owl#oneOf',\n /** The annotation property that indicates the predecessor ontology of a given ontology. */\n 'priorVersion': 'http://www.w3.org/2002/07/owl#priorVersion',\n /** The property that determines the n-tuple of properties that build a sub property chain of a given property. */\n 'propertyChainAxiom': 'http://www.w3.org/2002/07/owl#propertyChainAxiom',\n /** The property that determines that two given properties are disjoint. */\n 'propertyDisjointWith': 'http://www.w3.org/2002/07/owl#propertyDisjointWith',\n /** The property that determines the cardinality of an exact qualified cardinality restriction. */\n 'qualifiedCardinality': 'http://www.w3.org/2002/07/owl#qualifiedCardinality',\n /** The property that determines that two given individuals are equal. */\n 'sameAs': 'http://www.w3.org/2002/07/owl#sameAs',\n /** The property that determines the class that an existential property restriction refers to. */\n 'someValuesFrom': 'http://www.w3.org/2002/07/owl#someValuesFrom',\n /** The property that determines the subject of a negative property assertion. */\n 'sourceIndividual': 'http://www.w3.org/2002/07/owl#sourceIndividual',\n /** The property that determines the object of a negative object property assertion. */\n 'targetIndividual': 'http://www.w3.org/2002/07/owl#targetIndividual',\n /** The property that determines the value of a negative data property assertion. */\n 'targetValue': 'http://www.w3.org/2002/07/owl#targetValue',\n /** The data property that relates every individual to every data value. */\n 'topDataProperty': 'http://www.w3.org/2002/07/owl#topDataProperty',\n /** The object property that relates every two individuals. */\n 'topObjectProperty': 'http://www.w3.org/2002/07/owl#topObjectProperty',\n /** The property that determines the collection of classes or data ranges that build a union. */\n 'unionOf': 'http://www.w3.org/2002/07/owl#unionOf',\n /** The property that identifies the version IRI of an ontology. */\n 'versionIRI': 'http://www.w3.org/2002/07/owl#versionIRI',\n /** The annotation property that provides version information for an ontology or another OWL construct. */\n 'versionInfo': 'http://www.w3.org/2002/07/owl#versionInfo',\n /** The property that determines the collection of facet-value pairs that define a datatype restriction. */\n 'withRestrictions': 'http://www.w3.org/2002/07/owl#withRestrictions',\n};\n/** Namespace URI of the owl vocabulary. */\nexports._owl = namedNode('http://www.w3.org/2002/07/owl#');\nexports.owl = {\n /** The class of collections of pairwise different individuals. */\n 'AllDifferent': namedNode('http://www.w3.org/2002/07/owl#AllDifferent'),\n /** The class of collections of pairwise disjoint classes. */\n 'AllDisjointClasses': namedNode('http://www.w3.org/2002/07/owl#AllDisjointClasses'),\n /** The class of collections of pairwise disjoint properties. */\n 'AllDisjointProperties': namedNode('http://www.w3.org/2002/07/owl#AllDisjointProperties'),\n /** The class of annotated annotations for which the RDF serialization consists of an annotated subject, predicate and object. */\n 'Annotation': namedNode('http://www.w3.org/2002/07/owl#Annotation'),\n /** The class of annotation properties. */\n 'AnnotationProperty': namedNode('http://www.w3.org/2002/07/owl#AnnotationProperty'),\n /** The class of asymmetric properties. */\n 'AsymmetricProperty': namedNode('http://www.w3.org/2002/07/owl#AsymmetricProperty'),\n /** The class of annotated axioms for which the RDF serialization consists of an annotated subject, predicate and object. */\n 'Axiom': namedNode('http://www.w3.org/2002/07/owl#Axiom'),\n /** The class of OWL classes. */\n 'Class': namedNode('http://www.w3.org/2002/07/owl#Class'),\n /** The class of OWL data ranges, which are special kinds of datatypes. Note: The use of the IRI owl:DataRange has been deprecated as of OWL 2. The IRI rdfs:Datatype SHOULD be used instead. */\n 'DataRange': namedNode('http://www.w3.org/2002/07/owl#DataRange'),\n /** The class of data properties. */\n 'DatatypeProperty': namedNode('http://www.w3.org/2002/07/owl#DatatypeProperty'),\n /** The class of deprecated classes. */\n 'DeprecatedClass': namedNode('http://www.w3.org/2002/07/owl#DeprecatedClass'),\n /** The class of deprecated properties. */\n 'DeprecatedProperty': namedNode('http://www.w3.org/2002/07/owl#DeprecatedProperty'),\n /** The class of functional properties. */\n 'FunctionalProperty': namedNode('http://www.w3.org/2002/07/owl#FunctionalProperty'),\n /** The class of inverse-functional properties. */\n 'InverseFunctionalProperty': namedNode('http://www.w3.org/2002/07/owl#InverseFunctionalProperty'),\n /** The class of irreflexive properties. */\n 'IrreflexiveProperty': namedNode('http://www.w3.org/2002/07/owl#IrreflexiveProperty'),\n /** The class of named individuals. */\n 'NamedIndividual': namedNode('http://www.w3.org/2002/07/owl#NamedIndividual'),\n /** The class of negative property assertions. */\n 'NegativePropertyAssertion': namedNode('http://www.w3.org/2002/07/owl#NegativePropertyAssertion'),\n /** This is the empty class. */\n 'Nothing': namedNode('http://www.w3.org/2002/07/owl#Nothing'),\n /** The class of object properties. */\n 'ObjectProperty': namedNode('http://www.w3.org/2002/07/owl#ObjectProperty'),\n /** The class of ontologies. */\n 'Ontology': namedNode('http://www.w3.org/2002/07/owl#Ontology'),\n /** The class of ontology properties. */\n 'OntologyProperty': namedNode('http://www.w3.org/2002/07/owl#OntologyProperty'),\n /** The class of reflexive properties. */\n 'ReflexiveProperty': namedNode('http://www.w3.org/2002/07/owl#ReflexiveProperty'),\n /** The class of property restrictions. */\n 'Restriction': namedNode('http://www.w3.org/2002/07/owl#Restriction'),\n /** The class of symmetric properties. */\n 'SymmetricProperty': namedNode('http://www.w3.org/2002/07/owl#SymmetricProperty'),\n /** The class of OWL individuals. */\n 'Thing': namedNode('http://www.w3.org/2002/07/owl#Thing'),\n /** The class of transitive properties. */\n 'TransitiveProperty': namedNode('http://www.w3.org/2002/07/owl#TransitiveProperty'),\n /** The property that determines the class that a universal property restriction refers to. */\n 'allValuesFrom': namedNode('http://www.w3.org/2002/07/owl#allValuesFrom'),\n /** The property that determines the predicate of an annotated axiom or annotated annotation. */\n 'annotatedProperty': namedNode('http://www.w3.org/2002/07/owl#annotatedProperty'),\n /** The property that determines the subject of an annotated axiom or annotated annotation. */\n 'annotatedSource': namedNode('http://www.w3.org/2002/07/owl#annotatedSource'),\n /** The property that determines the object of an annotated axiom or annotated annotation. */\n 'annotatedTarget': namedNode('http://www.w3.org/2002/07/owl#annotatedTarget'),\n /** The property that determines the predicate of a negative property assertion. */\n 'assertionProperty': namedNode('http://www.w3.org/2002/07/owl#assertionProperty'),\n /** The annotation property that indicates that a given ontology is backward compatible with another ontology. */\n 'backwardCompatibleWith': namedNode('http://www.w3.org/2002/07/owl#backwardCompatibleWith'),\n /** The data property that does not relate any individual to any data value. */\n 'bottomDataProperty': namedNode('http://www.w3.org/2002/07/owl#bottomDataProperty'),\n /** The object property that does not relate any two individuals. */\n 'bottomObjectProperty': namedNode('http://www.w3.org/2002/07/owl#bottomObjectProperty'),\n /** The property that determines the cardinality of an exact cardinality restriction. */\n 'cardinality': namedNode('http://www.w3.org/2002/07/owl#cardinality'),\n /** The property that determines that a given class is the complement of another class. */\n 'complementOf': namedNode('http://www.w3.org/2002/07/owl#complementOf'),\n /** The property that determines that a given data range is the complement of another data range with respect to the data domain. */\n 'datatypeComplementOf': namedNode('http://www.w3.org/2002/07/owl#datatypeComplementOf'),\n /** The annotation property that indicates that a given entity has been deprecated. */\n 'deprecated': namedNode('http://www.w3.org/2002/07/owl#deprecated'),\n /** The property that determines that two given individuals are different. */\n 'differentFrom': namedNode('http://www.w3.org/2002/07/owl#differentFrom'),\n /** The property that determines that a given class is equivalent to the disjoint union of a collection of other classes. */\n 'disjointUnionOf': namedNode('http://www.w3.org/2002/07/owl#disjointUnionOf'),\n /** The property that determines that two given classes are disjoint. */\n 'disjointWith': namedNode('http://www.w3.org/2002/07/owl#disjointWith'),\n /** The property that determines the collection of pairwise different individuals in a owl:AllDifferent axiom. */\n 'distinctMembers': namedNode('http://www.w3.org/2002/07/owl#distinctMembers'),\n /** The property that determines that two given classes are equivalent, and that is used to specify datatype definitions. */\n 'equivalentClass': namedNode('http://www.w3.org/2002/07/owl#equivalentClass'),\n /** The property that determines that two given properties are equivalent. */\n 'equivalentProperty': namedNode('http://www.w3.org/2002/07/owl#equivalentProperty'),\n /** The property that determines the collection of properties that jointly build a key. */\n 'hasKey': namedNode('http://www.w3.org/2002/07/owl#hasKey'),\n /** The property that determines the property that a self restriction refers to. */\n 'hasSelf': namedNode('http://www.w3.org/2002/07/owl#hasSelf'),\n /** The property that determines the individual that a has-value restriction refers to. */\n 'hasValue': namedNode('http://www.w3.org/2002/07/owl#hasValue'),\n /** The property that is used for importing other ontologies into a given ontology. */\n 'imports': namedNode('http://www.w3.org/2002/07/owl#imports'),\n /** The annotation property that indicates that a given ontology is incompatible with another ontology. */\n 'incompatibleWith': namedNode('http://www.w3.org/2002/07/owl#incompatibleWith'),\n /** The property that determines the collection of classes or data ranges that build an intersection. */\n 'intersectionOf': namedNode('http://www.w3.org/2002/07/owl#intersectionOf'),\n /** The property that determines that two given properties are inverse. */\n 'inverseOf': namedNode('http://www.w3.org/2002/07/owl#inverseOf'),\n /** The property that determines the cardinality of a maximum cardinality restriction. */\n 'maxCardinality': namedNode('http://www.w3.org/2002/07/owl#maxCardinality'),\n /** The property that determines the cardinality of a maximum qualified cardinality restriction. */\n 'maxQualifiedCardinality': namedNode('http://www.w3.org/2002/07/owl#maxQualifiedCardinality'),\n /** The property that determines the collection of members in either a owl:AllDifferent, owl:AllDisjointClasses or owl:AllDisjointProperties axiom. */\n 'members': namedNode('http://www.w3.org/2002/07/owl#members'),\n /** The property that determines the cardinality of a minimum cardinality restriction. */\n 'minCardinality': namedNode('http://www.w3.org/2002/07/owl#minCardinality'),\n /** The property that determines the cardinality of a minimum qualified cardinality restriction. */\n 'minQualifiedCardinality': namedNode('http://www.w3.org/2002/07/owl#minQualifiedCardinality'),\n /** The property that determines the class that a qualified object cardinality restriction refers to. */\n 'onClass': namedNode('http://www.w3.org/2002/07/owl#onClass'),\n /** The property that determines the data range that a qualified data cardinality restriction refers to. */\n 'onDataRange': namedNode('http://www.w3.org/2002/07/owl#onDataRange'),\n /** The property that determines the datatype that a datatype restriction refers to. */\n 'onDatatype': namedNode('http://www.w3.org/2002/07/owl#onDatatype'),\n /** The property that determines the n-tuple of properties that a property restriction on an n-ary data range refers to. */\n 'onProperties': namedNode('http://www.w3.org/2002/07/owl#onProperties'),\n /** The property that determines the property that a property restriction refers to. */\n 'onProperty': namedNode('http://www.w3.org/2002/07/owl#onProperty'),\n /** The property that determines the collection of individuals or data values that build an enumeration. */\n 'oneOf': namedNode('http://www.w3.org/2002/07/owl#oneOf'),\n /** The annotation property that indicates the predecessor ontology of a given ontology. */\n 'priorVersion': namedNode('http://www.w3.org/2002/07/owl#priorVersion'),\n /** The property that determines the n-tuple of properties that build a sub property chain of a given property. */\n 'propertyChainAxiom': namedNode('http://www.w3.org/2002/07/owl#propertyChainAxiom'),\n /** The property that determines that two given properties are disjoint. */\n 'propertyDisjointWith': namedNode('http://www.w3.org/2002/07/owl#propertyDisjointWith'),\n /** The property that determines the cardinality of an exact qualified cardinality restriction. */\n 'qualifiedCardinality': namedNode('http://www.w3.org/2002/07/owl#qualifiedCardinality'),\n /** The property that determines that two given individuals are equal. */\n 'sameAs': namedNode('http://www.w3.org/2002/07/owl#sameAs'),\n /** The property that determines the class that an existential property restriction refers to. */\n 'someValuesFrom': namedNode('http://www.w3.org/2002/07/owl#someValuesFrom'),\n /** The property that determines the subject of a negative property assertion. */\n 'sourceIndividual': namedNode('http://www.w3.org/2002/07/owl#sourceIndividual'),\n /** The property that determines the object of a negative object property assertion. */\n 'targetIndividual': namedNode('http://www.w3.org/2002/07/owl#targetIndividual'),\n /** The property that determines the value of a negative data property assertion. */\n 'targetValue': namedNode('http://www.w3.org/2002/07/owl#targetValue'),\n /** The data property that relates every individual to every data value. */\n 'topDataProperty': namedNode('http://www.w3.org/2002/07/owl#topDataProperty'),\n /** The object property that relates every two individuals. */\n 'topObjectProperty': namedNode('http://www.w3.org/2002/07/owl#topObjectProperty'),\n /** The property that determines the collection of classes or data ranges that build a union. */\n 'unionOf': namedNode('http://www.w3.org/2002/07/owl#unionOf'),\n /** The property that identifies the version IRI of an ontology. */\n 'versionIRI': namedNode('http://www.w3.org/2002/07/owl#versionIRI'),\n /** The annotation property that provides version information for an ontology or another OWL construct. */\n 'versionInfo': namedNode('http://www.w3.org/2002/07/owl#versionInfo'),\n /** The property that determines the collection of facet-value pairs that define a datatype restriction. */\n 'withRestrictions': namedNode('http://www.w3.org/2002/07/owl#withRestrictions'),\n};\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/ontologies/owl.ts?");
|
|
757
1099
|
|
|
758
1100
|
/***/ }),
|
|
759
1101
|
|
|
@@ -764,7 +1106,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
764
1106
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
765
1107
|
|
|
766
1108
|
"use strict";
|
|
767
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.rdf = exports._rdf = exports.RDF = exports._RDF = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\n/** Namespace URI of the RDF vocabulary. */\nexports._RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\nexports.RDF = {\n /** The class of containers of alternatives. */\n 'Alt': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#Alt',\n /** The class of unordered containers. */\n 'Bag': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag',\n /** A class representing a compound literal. */\n 'CompoundLiteral': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#CompoundLiteral',\n /** The datatype of RDF literals storing fragments of HTML content */\n 'HTML': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML',\n /** The datatype of RDF literals storing JSON content. */\n 'JSON': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON',\n /** The class of RDF Lists. */\n 'List': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#List',\n /** The class of plain (i.e. untyped) literal values, as used in RIF and OWL 2 */\n 'PlainLiteral': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#PlainLiteral',\n /** The class of RDF properties. */\n 'Property': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#Property',\n /** The class of ordered containers. */\n 'Seq': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq',\n /** The class of RDF statements. */\n 'Statement': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement',\n /** The datatype of XML literal values. */\n 'XMLLiteral': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral',\n /** The base direction component of a CompoundLiteral. */\n 'direction': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#direction',\n /** The first item in the subject RDF list. */\n 'first': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#first',\n /** The datatype of language-tagged string values */\n 'langString': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString',\n /** The language component of a CompoundLiteral. */\n 'language': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#language',\n /** The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it. */\n 'nil': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#nil',\n /** The object of the subject RDF statement. */\n 'object': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#object',\n /** The predicate of the subject RDF statement. */\n 'predicate': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate',\n /** The rest of the subject RDF list after the first item. */\n 'rest': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#rest',\n /** The subject of the subject RDF statement. */\n 'subject': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#subject',\n /** The subject is an instance of a class. */\n 'type': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type',\n /** Idiomatic property used for structured values. */\n 'value': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#value',\n};\n/** Namespace URI of the rdf vocabulary. */\nexports._rdf =
|
|
1109
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.rdf = exports._rdf = exports.RDF = exports._RDF = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst { namedNode } = n3.DataFactory;\n/** Namespace URI of the RDF vocabulary. */\nexports._RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\nexports.RDF = {\n /** The class of containers of alternatives. */\n 'Alt': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#Alt',\n /** The class of unordered containers. */\n 'Bag': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag',\n /** A class representing a compound literal. */\n 'CompoundLiteral': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#CompoundLiteral',\n /** The datatype of RDF literals storing fragments of HTML content */\n 'HTML': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML',\n /** The datatype of RDF literals storing JSON content. */\n 'JSON': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON',\n /** The class of RDF Lists. */\n 'List': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#List',\n /** The class of plain (i.e. untyped) literal values, as used in RIF and OWL 2 */\n 'PlainLiteral': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#PlainLiteral',\n /** The class of RDF properties. */\n 'Property': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#Property',\n /** The class of ordered containers. */\n 'Seq': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq',\n /** The class of RDF statements. */\n 'Statement': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement',\n /** The datatype of XML literal values. */\n 'XMLLiteral': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral',\n /** The base direction component of a CompoundLiteral. */\n 'direction': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#direction',\n /** The first item in the subject RDF list. */\n 'first': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#first',\n /** The datatype of language-tagged string values */\n 'langString': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString',\n /** The language component of a CompoundLiteral. */\n 'language': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#language',\n /** The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it. */\n 'nil': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#nil',\n /** The object of the subject RDF statement. */\n 'object': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#object',\n /** The predicate of the subject RDF statement. */\n 'predicate': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate',\n /** The rest of the subject RDF list after the first item. */\n 'rest': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#rest',\n /** The subject of the subject RDF statement. */\n 'subject': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#subject',\n /** The subject is an instance of a class. */\n 'type': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type',\n /** Idiomatic property used for structured values. */\n 'value': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#value',\n};\n/** Namespace URI of the rdf vocabulary. */\nexports._rdf = namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#');\nexports.rdf = {\n /** The class of containers of alternatives. */\n 'Alt': namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#Alt'),\n /** The class of unordered containers. */\n 'Bag': namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag'),\n /** A class representing a compound literal. */\n 'CompoundLiteral': namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#CompoundLiteral'),\n /** The datatype of RDF literals storing fragments of HTML content */\n 'HTML': namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML'),\n /** The datatype of RDF literals storing JSON content. */\n 'JSON': namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON'),\n /** The class of RDF Lists. */\n 'List': namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#List'),\n /** The class of plain (i.e. untyped) literal values, as used in RIF and OWL 2 */\n 'PlainLiteral': namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#PlainLiteral'),\n /** The class of RDF properties. */\n 'Property': namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#Property'),\n /** The class of ordered containers. */\n 'Seq': namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq'),\n /** The class of RDF statements. */\n 'Statement': namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement'),\n /** The datatype of XML literal values. */\n 'XMLLiteral': namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral'),\n /** The base direction component of a CompoundLiteral. */\n 'direction': namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#direction'),\n /** The first item in the subject RDF list. */\n 'first': namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#first'),\n /** The datatype of language-tagged string values */\n 'langString': namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#langString'),\n /** The language component of a CompoundLiteral. */\n 'language': namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#language'),\n /** The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it. */\n 'nil': namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'),\n /** The object of the subject RDF statement. */\n 'object': namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#object'),\n /** The predicate of the subject RDF statement. */\n 'predicate': namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate'),\n /** The rest of the subject RDF list after the first item. */\n 'rest': namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#rest'),\n /** The subject of the subject RDF statement. */\n 'subject': namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#subject'),\n /** The subject is an instance of a class. */\n 'type': namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#type'),\n /** Idiomatic property used for structured values. */\n 'value': namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#value'),\n};\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/ontologies/rdf.ts?");
|
|
768
1110
|
|
|
769
1111
|
/***/ }),
|
|
770
1112
|
|
|
@@ -775,7 +1117,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
775
1117
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
776
1118
|
|
|
777
1119
|
"use strict";
|
|
778
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.rdfa = exports._rdfa = exports.RDFA = exports._RDFA = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\n/** Namespace URI of the RDFA vocabulary. */\nexports._RDFA = 'http://www.w3.org/ns/rdfa#';\nexports.RDFA = {\n 'me': 'http://www.ivan-herman.net/foaf#me',\n 'DocumentError': 'http://www.w3.org/ns/rdfa#DocumentError',\n 'Error': 'http://www.w3.org/ns/rdfa#Error',\n 'Info': 'http://www.w3.org/ns/rdfa#Info',\n 'PGClass': 'http://www.w3.org/ns/rdfa#PGClass',\n 'Pattern': 'http://www.w3.org/ns/rdfa#Pattern',\n 'PrefixMapping': 'http://www.w3.org/ns/rdfa#PrefixMapping',\n 'PrefixOrTermMapping': 'http://www.w3.org/ns/rdfa#PrefixOrTermMapping',\n 'PrefixRedefinition': 'http://www.w3.org/ns/rdfa#PrefixRedefinition',\n 'TermMapping': 'http://www.w3.org/ns/rdfa#TermMapping',\n 'UnresolvedCURIE': 'http://www.w3.org/ns/rdfa#UnresolvedCURIE',\n 'UnresolvedTerm': 'http://www.w3.org/ns/rdfa#UnresolvedTerm',\n 'VocabReferenceError': 'http://www.w3.org/ns/rdfa#VocabReferenceError',\n 'Warning': 'http://www.w3.org/ns/rdfa#Warning',\n 'context': 'http://www.w3.org/ns/rdfa#context',\n 'copy': 'http://www.w3.org/ns/rdfa#copy',\n 'prefix': 'http://www.w3.org/ns/rdfa#prefix',\n 'term': 'http://www.w3.org/ns/rdfa#term',\n 'uri': 'http://www.w3.org/ns/rdfa#uri',\n 'usesVocabulary': 'http://www.w3.org/ns/rdfa#usesVocabulary',\n 'vocabulary': 'http://www.w3.org/ns/rdfa#vocabulary',\n};\n/** Namespace URI of the rdfa vocabulary. */\nexports._rdfa =
|
|
1120
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.rdfa = exports._rdfa = exports.RDFA = exports._RDFA = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst { namedNode } = n3.DataFactory;\n/** Namespace URI of the RDFA vocabulary. */\nexports._RDFA = 'http://www.w3.org/ns/rdfa#';\nexports.RDFA = {\n 'me': 'http://www.ivan-herman.net/foaf#me',\n 'DocumentError': 'http://www.w3.org/ns/rdfa#DocumentError',\n 'Error': 'http://www.w3.org/ns/rdfa#Error',\n 'Info': 'http://www.w3.org/ns/rdfa#Info',\n 'PGClass': 'http://www.w3.org/ns/rdfa#PGClass',\n 'Pattern': 'http://www.w3.org/ns/rdfa#Pattern',\n 'PrefixMapping': 'http://www.w3.org/ns/rdfa#PrefixMapping',\n 'PrefixOrTermMapping': 'http://www.w3.org/ns/rdfa#PrefixOrTermMapping',\n 'PrefixRedefinition': 'http://www.w3.org/ns/rdfa#PrefixRedefinition',\n 'TermMapping': 'http://www.w3.org/ns/rdfa#TermMapping',\n 'UnresolvedCURIE': 'http://www.w3.org/ns/rdfa#UnresolvedCURIE',\n 'UnresolvedTerm': 'http://www.w3.org/ns/rdfa#UnresolvedTerm',\n 'VocabReferenceError': 'http://www.w3.org/ns/rdfa#VocabReferenceError',\n 'Warning': 'http://www.w3.org/ns/rdfa#Warning',\n 'context': 'http://www.w3.org/ns/rdfa#context',\n 'copy': 'http://www.w3.org/ns/rdfa#copy',\n 'prefix': 'http://www.w3.org/ns/rdfa#prefix',\n 'term': 'http://www.w3.org/ns/rdfa#term',\n 'uri': 'http://www.w3.org/ns/rdfa#uri',\n 'usesVocabulary': 'http://www.w3.org/ns/rdfa#usesVocabulary',\n 'vocabulary': 'http://www.w3.org/ns/rdfa#vocabulary',\n};\n/** Namespace URI of the rdfa vocabulary. */\nexports._rdfa = namedNode('http://www.w3.org/ns/rdfa#');\nexports.rdfa = {\n 'me': namedNode('http://www.ivan-herman.net/foaf#me'),\n 'DocumentError': namedNode('http://www.w3.org/ns/rdfa#DocumentError'),\n 'Error': namedNode('http://www.w3.org/ns/rdfa#Error'),\n 'Info': namedNode('http://www.w3.org/ns/rdfa#Info'),\n 'PGClass': namedNode('http://www.w3.org/ns/rdfa#PGClass'),\n 'Pattern': namedNode('http://www.w3.org/ns/rdfa#Pattern'),\n 'PrefixMapping': namedNode('http://www.w3.org/ns/rdfa#PrefixMapping'),\n 'PrefixOrTermMapping': namedNode('http://www.w3.org/ns/rdfa#PrefixOrTermMapping'),\n 'PrefixRedefinition': namedNode('http://www.w3.org/ns/rdfa#PrefixRedefinition'),\n 'TermMapping': namedNode('http://www.w3.org/ns/rdfa#TermMapping'),\n 'UnresolvedCURIE': namedNode('http://www.w3.org/ns/rdfa#UnresolvedCURIE'),\n 'UnresolvedTerm': namedNode('http://www.w3.org/ns/rdfa#UnresolvedTerm'),\n 'VocabReferenceError': namedNode('http://www.w3.org/ns/rdfa#VocabReferenceError'),\n 'Warning': namedNode('http://www.w3.org/ns/rdfa#Warning'),\n 'context': namedNode('http://www.w3.org/ns/rdfa#context'),\n 'copy': namedNode('http://www.w3.org/ns/rdfa#copy'),\n 'prefix': namedNode('http://www.w3.org/ns/rdfa#prefix'),\n 'term': namedNode('http://www.w3.org/ns/rdfa#term'),\n 'uri': namedNode('http://www.w3.org/ns/rdfa#uri'),\n 'usesVocabulary': namedNode('http://www.w3.org/ns/rdfa#usesVocabulary'),\n 'vocabulary': namedNode('http://www.w3.org/ns/rdfa#vocabulary'),\n};\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/ontologies/rdfa.ts?");
|
|
779
1121
|
|
|
780
1122
|
/***/ }),
|
|
781
1123
|
|
|
@@ -786,7 +1128,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
786
1128
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
787
1129
|
|
|
788
1130
|
"use strict";
|
|
789
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.rdfs = exports._rdfs = exports.RDFS = exports._RDFS = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\n/** Namespace URI of the RDFS vocabulary. */\nexports._RDFS = 'http://www.w3.org/2000/01/rdf-schema#';\nexports.RDFS = {\n /** The class of classes. */\n 'Class': 'http://www.w3.org/2000/01/rdf-schema#Class',\n /** The class of RDF containers. */\n 'Container': 'http://www.w3.org/2000/01/rdf-schema#Container',\n /** The class of container membership properties, rdf:_1, rdf:_2, ...,\n all of which are sub-properties of 'member'. */\n 'ContainerMembershipProperty': 'http://www.w3.org/2000/01/rdf-schema#ContainerMembershipProperty',\n /** The class of RDF datatypes. */\n 'Datatype': 'http://www.w3.org/2000/01/rdf-schema#Datatype',\n /** The class of literal values, eg. textual strings and integers. */\n 'Literal': 'http://www.w3.org/2000/01/rdf-schema#Literal',\n /** The class resource, everything. */\n 'Resource': 'http://www.w3.org/2000/01/rdf-schema#Resource',\n /** A description of the subject resource. */\n 'comment': 'http://www.w3.org/2000/01/rdf-schema#comment',\n /** A domain of the subject property. */\n 'domain': 'http://www.w3.org/2000/01/rdf-schema#domain',\n /** The defininition of the subject resource. */\n 'isDefinedBy': 'http://www.w3.org/2000/01/rdf-schema#isDefinedBy',\n /** A human-readable name for the subject. */\n 'label': 'http://www.w3.org/2000/01/rdf-schema#label',\n /** A member of the subject resource. */\n 'member': 'http://www.w3.org/2000/01/rdf-schema#member',\n /** A range of the subject property. */\n 'range': 'http://www.w3.org/2000/01/rdf-schema#range',\n /** Further information about the subject resource. */\n 'seeAlso': 'http://www.w3.org/2000/01/rdf-schema#seeAlso',\n /** The subject is a subclass of a class. */\n 'subClassOf': 'http://www.w3.org/2000/01/rdf-schema#subClassOf',\n /** The subject is a subproperty of a property. */\n 'subPropertyOf': 'http://www.w3.org/2000/01/rdf-schema#subPropertyOf',\n};\n/** Namespace URI of the rdfs vocabulary. */\nexports._rdfs =
|
|
1131
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.rdfs = exports._rdfs = exports.RDFS = exports._RDFS = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst { namedNode } = n3.DataFactory;\n/** Namespace URI of the RDFS vocabulary. */\nexports._RDFS = 'http://www.w3.org/2000/01/rdf-schema#';\nexports.RDFS = {\n /** The class of classes. */\n 'Class': 'http://www.w3.org/2000/01/rdf-schema#Class',\n /** The class of RDF containers. */\n 'Container': 'http://www.w3.org/2000/01/rdf-schema#Container',\n /** The class of container membership properties, rdf:_1, rdf:_2, ...,\n all of which are sub-properties of 'member'. */\n 'ContainerMembershipProperty': 'http://www.w3.org/2000/01/rdf-schema#ContainerMembershipProperty',\n /** The class of RDF datatypes. */\n 'Datatype': 'http://www.w3.org/2000/01/rdf-schema#Datatype',\n /** The class of literal values, eg. textual strings and integers. */\n 'Literal': 'http://www.w3.org/2000/01/rdf-schema#Literal',\n /** The class resource, everything. */\n 'Resource': 'http://www.w3.org/2000/01/rdf-schema#Resource',\n /** A description of the subject resource. */\n 'comment': 'http://www.w3.org/2000/01/rdf-schema#comment',\n /** A domain of the subject property. */\n 'domain': 'http://www.w3.org/2000/01/rdf-schema#domain',\n /** The defininition of the subject resource. */\n 'isDefinedBy': 'http://www.w3.org/2000/01/rdf-schema#isDefinedBy',\n /** A human-readable name for the subject. */\n 'label': 'http://www.w3.org/2000/01/rdf-schema#label',\n /** A member of the subject resource. */\n 'member': 'http://www.w3.org/2000/01/rdf-schema#member',\n /** A range of the subject property. */\n 'range': 'http://www.w3.org/2000/01/rdf-schema#range',\n /** Further information about the subject resource. */\n 'seeAlso': 'http://www.w3.org/2000/01/rdf-schema#seeAlso',\n /** The subject is a subclass of a class. */\n 'subClassOf': 'http://www.w3.org/2000/01/rdf-schema#subClassOf',\n /** The subject is a subproperty of a property. */\n 'subPropertyOf': 'http://www.w3.org/2000/01/rdf-schema#subPropertyOf',\n};\n/** Namespace URI of the rdfs vocabulary. */\nexports._rdfs = namedNode('http://www.w3.org/2000/01/rdf-schema#');\nexports.rdfs = {\n /** The class of classes. */\n 'Class': namedNode('http://www.w3.org/2000/01/rdf-schema#Class'),\n /** The class of RDF containers. */\n 'Container': namedNode('http://www.w3.org/2000/01/rdf-schema#Container'),\n /** The class of container membership properties, rdf:_1, rdf:_2, ...,\n all of which are sub-properties of 'member'. */\n 'ContainerMembershipProperty': namedNode('http://www.w3.org/2000/01/rdf-schema#ContainerMembershipProperty'),\n /** The class of RDF datatypes. */\n 'Datatype': namedNode('http://www.w3.org/2000/01/rdf-schema#Datatype'),\n /** The class of literal values, eg. textual strings and integers. */\n 'Literal': namedNode('http://www.w3.org/2000/01/rdf-schema#Literal'),\n /** The class resource, everything. */\n 'Resource': namedNode('http://www.w3.org/2000/01/rdf-schema#Resource'),\n /** A description of the subject resource. */\n 'comment': namedNode('http://www.w3.org/2000/01/rdf-schema#comment'),\n /** A domain of the subject property. */\n 'domain': namedNode('http://www.w3.org/2000/01/rdf-schema#domain'),\n /** The defininition of the subject resource. */\n 'isDefinedBy': namedNode('http://www.w3.org/2000/01/rdf-schema#isDefinedBy'),\n /** A human-readable name for the subject. */\n 'label': namedNode('http://www.w3.org/2000/01/rdf-schema#label'),\n /** A member of the subject resource. */\n 'member': namedNode('http://www.w3.org/2000/01/rdf-schema#member'),\n /** A range of the subject property. */\n 'range': namedNode('http://www.w3.org/2000/01/rdf-schema#range'),\n /** Further information about the subject resource. */\n 'seeAlso': namedNode('http://www.w3.org/2000/01/rdf-schema#seeAlso'),\n /** The subject is a subclass of a class. */\n 'subClassOf': namedNode('http://www.w3.org/2000/01/rdf-schema#subClassOf'),\n /** The subject is a subproperty of a property. */\n 'subPropertyOf': namedNode('http://www.w3.org/2000/01/rdf-schema#subPropertyOf'),\n};\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/ontologies/rdfs.ts?");
|
|
790
1132
|
|
|
791
1133
|
/***/ }),
|
|
792
1134
|
|
|
@@ -797,7 +1139,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
797
1139
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
798
1140
|
|
|
799
1141
|
"use strict";
|
|
800
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.sh = exports._sh = exports.SH = exports._SH = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\n/** Namespace URI of the SH vocabulary. */\nexports._SH = 'http://www.w3.org/ns/shacl#';\nexports.SH = {\n /** The base class of validation results, typically not instantiated directly. */\n 'AbstractResult': 'http://www.w3.org/ns/shacl#AbstractResult',\n /** A constraint component that can be used to test whether a value node conforms to all members of a provided list of shapes. */\n 'AndConstraintComponent': 'http://www.w3.org/ns/shacl#AndConstraintComponent',\n 'AndConstraintComponent_and': 'http://www.w3.org/ns/shacl#AndConstraintComponent-and',\n /** The node kind of all blank nodes. */\n 'BlankNode': 'http://www.w3.org/ns/shacl#BlankNode',\n /** The node kind of all blank nodes or IRIs. */\n 'BlankNodeOrIRI': 'http://www.w3.org/ns/shacl#BlankNodeOrIRI',\n /** The node kind of all blank nodes or literals. */\n 'BlankNodeOrLiteral': 'http://www.w3.org/ns/shacl#BlankNodeOrLiteral',\n /** A constraint component that can be used to verify that each value node is an instance of a given type. */\n 'ClassConstraintComponent': 'http://www.w3.org/ns/shacl#ClassConstraintComponent',\n 'ClassConstraintComponent_class': 'http://www.w3.org/ns/shacl#ClassConstraintComponent-class',\n /** A constraint component that can be used to indicate that focus nodes must only have values for those properties that have been explicitly enumerated via sh:property/sh:path. */\n 'ClosedConstraintComponent': 'http://www.w3.org/ns/shacl#ClosedConstraintComponent',\n 'ClosedConstraintComponent_closed': 'http://www.w3.org/ns/shacl#ClosedConstraintComponent-closed',\n 'ClosedConstraintComponent_ignoredProperties': 'http://www.w3.org/ns/shacl#ClosedConstraintComponent-ignoredProperties',\n /** The class of constraint components. */\n 'ConstraintComponent': 'http://www.w3.org/ns/shacl#ConstraintComponent',\n /** A constraint component that can be used to restrict the datatype of all value nodes. */\n 'DatatypeConstraintComponent': 'http://www.w3.org/ns/shacl#DatatypeConstraintComponent',\n 'DatatypeConstraintComponent_datatype': 'http://www.w3.org/ns/shacl#DatatypeConstraintComponent-datatype',\n /** A constraint component that can be used to verify that the set of value nodes is disjoint with the the set of nodes that have the focus node as subject and the value of a given property as predicate. */\n 'DisjointConstraintComponent': 'http://www.w3.org/ns/shacl#DisjointConstraintComponent',\n 'DisjointConstraintComponent_disjoint': 'http://www.w3.org/ns/shacl#DisjointConstraintComponent-disjoint',\n /** A constraint component that can be used to verify that the set of value nodes is equal to the set of nodes that have the focus node as subject and the value of a given property as predicate. */\n 'EqualsConstraintComponent': 'http://www.w3.org/ns/shacl#EqualsConstraintComponent',\n 'EqualsConstraintComponent_equals': 'http://www.w3.org/ns/shacl#EqualsConstraintComponent-equals',\n /** A constraint component that can be used to verify that a given node expression produces true for all value nodes. */\n 'ExpressionConstraintComponent': 'http://www.w3.org/ns/shacl#ExpressionConstraintComponent',\n 'ExpressionConstraintComponent_expression': 'http://www.w3.org/ns/shacl#ExpressionConstraintComponent-expression',\n /** The class of SHACL functions. */\n 'Function': 'http://www.w3.org/ns/shacl#Function',\n /** A constraint component that can be used to verify that one of the value nodes is a given RDF node. */\n 'HasValueConstraintComponent': 'http://www.w3.org/ns/shacl#HasValueConstraintComponent',\n 'HasValueConstraintComponent_hasValue': 'http://www.w3.org/ns/shacl#HasValueConstraintComponent-hasValue',\n /** The node kind of all IRIs. */\n 'IRI': 'http://www.w3.org/ns/shacl#IRI',\n /** The node kind of all IRIs or literals. */\n 'IRIOrLiteral': 'http://www.w3.org/ns/shacl#IRIOrLiteral',\n /** A constraint component that can be used to exclusively enumerate the permitted value nodes. */\n 'InConstraintComponent': 'http://www.w3.org/ns/shacl#InConstraintComponent',\n 'InConstraintComponent_in': 'http://www.w3.org/ns/shacl#InConstraintComponent-in',\n /** The severity for an informational validation result. */\n 'Info': 'http://www.w3.org/ns/shacl#Info',\n /** The class of constraints backed by a JavaScript function. */\n 'JSConstraint': 'http://www.w3.org/ns/shacl#JSConstraint',\n 'JSConstraint_js': 'http://www.w3.org/ns/shacl#JSConstraint-js',\n /** A constraint component with the parameter sh:js linking to a sh:JSConstraint containing a sh:script. */\n 'JSConstraintComponent': 'http://www.w3.org/ns/shacl#JSConstraintComponent',\n /** Abstract base class of resources that declare an executable JavaScript. */\n 'JSExecutable': 'http://www.w3.org/ns/shacl#JSExecutable',\n /** The class of SHACL functions that execute a JavaScript function when called. */\n 'JSFunction': 'http://www.w3.org/ns/shacl#JSFunction',\n /** Represents a JavaScript library, typically identified by one or more URLs of files to include. */\n 'JSLibrary': 'http://www.w3.org/ns/shacl#JSLibrary',\n /** The class of SHACL rules expressed using JavaScript. */\n 'JSRule': 'http://www.w3.org/ns/shacl#JSRule',\n /** The class of targets that are based on JavaScript functions. */\n 'JSTarget': 'http://www.w3.org/ns/shacl#JSTarget',\n /** The (meta) class for parameterizable targets that are based on JavaScript functions. */\n 'JSTargetType': 'http://www.w3.org/ns/shacl#JSTargetType',\n /** A SHACL validator based on JavaScript. This can be used to declare SHACL constraint components that perform JavaScript-based validation when used. */\n 'JSValidator': 'http://www.w3.org/ns/shacl#JSValidator',\n /** A constraint component that can be used to enumerate language tags that all value nodes must have. */\n 'LanguageInConstraintComponent': 'http://www.w3.org/ns/shacl#LanguageInConstraintComponent',\n 'LanguageInConstraintComponent_languageIn': 'http://www.w3.org/ns/shacl#LanguageInConstraintComponent-languageIn',\n /** A constraint component that can be used to verify that each value node is smaller than all the nodes that have the focus node as subject and the value of a given property as predicate. */\n 'LessThanConstraintComponent': 'http://www.w3.org/ns/shacl#LessThanConstraintComponent',\n 'LessThanConstraintComponent_lessThan': 'http://www.w3.org/ns/shacl#LessThanConstraintComponent-lessThan',\n /** A constraint component that can be used to verify that every value node is smaller than all the nodes that have the focus node as subject and the value of a given property as predicate. */\n 'LessThanOrEqualsConstraintComponent': 'http://www.w3.org/ns/shacl#LessThanOrEqualsConstraintComponent',\n 'LessThanOrEqualsConstraintComponent_lessThanOrEquals': 'http://www.w3.org/ns/shacl#LessThanOrEqualsConstraintComponent-lessThanOrEquals',\n /** The node kind of all literals. */\n 'Literal': 'http://www.w3.org/ns/shacl#Literal',\n /** A constraint component that can be used to restrict the maximum number of value nodes. */\n 'MaxCountConstraintComponent': 'http://www.w3.org/ns/shacl#MaxCountConstraintComponent',\n 'MaxCountConstraintComponent_maxCount': 'http://www.w3.org/ns/shacl#MaxCountConstraintComponent-maxCount',\n /** A constraint component that can be used to restrict the range of value nodes with a maximum exclusive value. */\n 'MaxExclusiveConstraintComponent': 'http://www.w3.org/ns/shacl#MaxExclusiveConstraintComponent',\n 'MaxExclusiveConstraintComponent_maxExclusive': 'http://www.w3.org/ns/shacl#MaxExclusiveConstraintComponent-maxExclusive',\n /** A constraint component that can be used to restrict the range of value nodes with a maximum inclusive value. */\n 'MaxInclusiveConstraintComponent': 'http://www.w3.org/ns/shacl#MaxInclusiveConstraintComponent',\n 'MaxInclusiveConstraintComponent_maxInclusive': 'http://www.w3.org/ns/shacl#MaxInclusiveConstraintComponent-maxInclusive',\n /** A constraint component that can be used to restrict the maximum string length of value nodes. */\n 'MaxLengthConstraintComponent': 'http://www.w3.org/ns/shacl#MaxLengthConstraintComponent',\n 'MaxLengthConstraintComponent_maxLength': 'http://www.w3.org/ns/shacl#MaxLengthConstraintComponent-maxLength',\n /** A constraint component that can be used to restrict the minimum number of value nodes. */\n 'MinCountConstraintComponent': 'http://www.w3.org/ns/shacl#MinCountConstraintComponent',\n 'MinCountConstraintComponent_minCount': 'http://www.w3.org/ns/shacl#MinCountConstraintComponent-minCount',\n /** A constraint component that can be used to restrict the range of value nodes with a minimum exclusive value. */\n 'MinExclusiveConstraintComponent': 'http://www.w3.org/ns/shacl#MinExclusiveConstraintComponent',\n 'MinExclusiveConstraintComponent_minExclusive': 'http://www.w3.org/ns/shacl#MinExclusiveConstraintComponent-minExclusive',\n /** A constraint component that can be used to restrict the range of value nodes with a minimum inclusive value. */\n 'MinInclusiveConstraintComponent': 'http://www.w3.org/ns/shacl#MinInclusiveConstraintComponent',\n 'MinInclusiveConstraintComponent_minInclusive': 'http://www.w3.org/ns/shacl#MinInclusiveConstraintComponent-minInclusive',\n /** A constraint component that can be used to restrict the minimum string length of value nodes. */\n 'MinLengthConstraintComponent': 'http://www.w3.org/ns/shacl#MinLengthConstraintComponent',\n 'MinLengthConstraintComponent_minLength': 'http://www.w3.org/ns/shacl#MinLengthConstraintComponent-minLength',\n /** A constraint component that can be used to verify that all value nodes conform to the given node shape. */\n 'NodeConstraintComponent': 'http://www.w3.org/ns/shacl#NodeConstraintComponent',\n 'NodeConstraintComponent_node': 'http://www.w3.org/ns/shacl#NodeConstraintComponent-node',\n /** The class of all node kinds, including sh:BlankNode, sh:IRI, sh:Literal or the combinations of these: sh:BlankNodeOrIRI, sh:BlankNodeOrLiteral, sh:IRIOrLiteral. */\n 'NodeKind': 'http://www.w3.org/ns/shacl#NodeKind',\n /** A constraint component that can be used to restrict the RDF node kind of each value node. */\n 'NodeKindConstraintComponent': 'http://www.w3.org/ns/shacl#NodeKindConstraintComponent',\n 'NodeKindConstraintComponent_nodeKind': 'http://www.w3.org/ns/shacl#NodeKindConstraintComponent-nodeKind',\n /** A node shape is a shape that specifies constraint that need to be met with respect to focus nodes. */\n 'NodeShape': 'http://www.w3.org/ns/shacl#NodeShape',\n /** A constraint component that can be used to verify that value nodes do not conform to a given shape. */\n 'NotConstraintComponent': 'http://www.w3.org/ns/shacl#NotConstraintComponent',\n 'NotConstraintComponent_not': 'http://www.w3.org/ns/shacl#NotConstraintComponent-not',\n /** A constraint component that can be used to restrict the value nodes so that they conform to at least one out of several provided shapes. */\n 'OrConstraintComponent': 'http://www.w3.org/ns/shacl#OrConstraintComponent',\n 'OrConstraintComponent_or': 'http://www.w3.org/ns/shacl#OrConstraintComponent-or',\n /** The class of parameter declarations, consisting of a path predicate and (possibly) information about allowed value type, cardinality and other characteristics. */\n 'Parameter': 'http://www.w3.org/ns/shacl#Parameter',\n /** Superclass of components that can take parameters, especially functions and constraint components. */\n 'Parameterizable': 'http://www.w3.org/ns/shacl#Parameterizable',\n /** A constraint component that can be used to verify that every value node matches a given regular expression. */\n 'PatternConstraintComponent': 'http://www.w3.org/ns/shacl#PatternConstraintComponent',\n 'PatternConstraintComponent_flags': 'http://www.w3.org/ns/shacl#PatternConstraintComponent-flags',\n 'PatternConstraintComponent_pattern': 'http://www.w3.org/ns/shacl#PatternConstraintComponent-pattern',\n /** The class of prefix declarations, consisting of pairs of a prefix with a namespace. */\n 'PrefixDeclaration': 'http://www.w3.org/ns/shacl#PrefixDeclaration',\n /** A constraint component that can be used to verify that all value nodes conform to the given property shape. */\n 'PropertyConstraintComponent': 'http://www.w3.org/ns/shacl#PropertyConstraintComponent',\n 'PropertyConstraintComponent_property': 'http://www.w3.org/ns/shacl#PropertyConstraintComponent-property',\n /** Instances of this class represent groups of property shapes that belong together. */\n 'PropertyGroup': 'http://www.w3.org/ns/shacl#PropertyGroup',\n /** A property shape is a shape that specifies constraints on the values of a focus node for a given property or path. */\n 'PropertyShape': 'http://www.w3.org/ns/shacl#PropertyShape',\n /** A constraint component that can be used to verify that a specified maximum number of value nodes conforms to a given shape. */\n 'QualifiedMaxCountConstraintComponent': 'http://www.w3.org/ns/shacl#QualifiedMaxCountConstraintComponent',\n 'QualifiedMaxCountConstraintComponent_qualifiedMaxCount': 'http://www.w3.org/ns/shacl#QualifiedMaxCountConstraintComponent-qualifiedMaxCount',\n 'QualifiedMaxCountConstraintComponent_qualifiedValueShape': 'http://www.w3.org/ns/shacl#QualifiedMaxCountConstraintComponent-qualifiedValueShape',\n 'QualifiedMaxCountConstraintComponent_qualifiedValueShapesDisjoint': 'http://www.w3.org/ns/shacl#QualifiedMaxCountConstraintComponent-qualifiedValueShapesDisjoint',\n /** A constraint component that can be used to verify that a specified minimum number of value nodes conforms to a given shape. */\n 'QualifiedMinCountConstraintComponent': 'http://www.w3.org/ns/shacl#QualifiedMinCountConstraintComponent',\n 'QualifiedMinCountConstraintComponent_qualifiedMinCount': 'http://www.w3.org/ns/shacl#QualifiedMinCountConstraintComponent-qualifiedMinCount',\n 'QualifiedMinCountConstraintComponent_qualifiedValueShape': 'http://www.w3.org/ns/shacl#QualifiedMinCountConstraintComponent-qualifiedValueShape',\n 'QualifiedMinCountConstraintComponent_qualifiedValueShapesDisjoint': 'http://www.w3.org/ns/shacl#QualifiedMinCountConstraintComponent-qualifiedValueShapesDisjoint',\n /** A class of result annotations, which define the rules to derive the values of a given annotation property as extra values for a validation result. */\n 'ResultAnnotation': 'http://www.w3.org/ns/shacl#ResultAnnotation',\n /** The class of SHACL rules. Never instantiated directly. */\n 'Rule': 'http://www.w3.org/ns/shacl#Rule',\n /** The class of SPARQL executables that are based on an ASK query. */\n 'SPARQLAskExecutable': 'http://www.w3.org/ns/shacl#SPARQLAskExecutable',\n /** The class of validators based on SPARQL ASK queries. The queries are evaluated for each value node and are supposed to return true if the given node conforms. */\n 'SPARQLAskValidator': 'http://www.w3.org/ns/shacl#SPARQLAskValidator',\n /** The class of constraints based on SPARQL SELECT queries. */\n 'SPARQLConstraint': 'http://www.w3.org/ns/shacl#SPARQLConstraint',\n /** A constraint component that can be used to define constraints based on SPARQL queries. */\n 'SPARQLConstraintComponent': 'http://www.w3.org/ns/shacl#SPARQLConstraintComponent',\n 'SPARQLConstraintComponent_sparql': 'http://www.w3.org/ns/shacl#SPARQLConstraintComponent-sparql',\n /** The class of SPARQL executables that are based on a CONSTRUCT query. */\n 'SPARQLConstructExecutable': 'http://www.w3.org/ns/shacl#SPARQLConstructExecutable',\n /** The class of resources that encapsulate a SPARQL query. */\n 'SPARQLExecutable': 'http://www.w3.org/ns/shacl#SPARQLExecutable',\n /** A function backed by a SPARQL query - either ASK or SELECT. */\n 'SPARQLFunction': 'http://www.w3.org/ns/shacl#SPARQLFunction',\n /** The class of SHACL rules based on SPARQL CONSTRUCT queries. */\n 'SPARQLRule': 'http://www.w3.org/ns/shacl#SPARQLRule',\n /** The class of SPARQL executables based on a SELECT query. */\n 'SPARQLSelectExecutable': 'http://www.w3.org/ns/shacl#SPARQLSelectExecutable',\n /** The class of validators based on SPARQL SELECT queries. The queries are evaluated for each focus node and are supposed to produce bindings for all focus nodes that do not conform. */\n 'SPARQLSelectValidator': 'http://www.w3.org/ns/shacl#SPARQLSelectValidator',\n /** The class of targets that are based on SPARQL queries. */\n 'SPARQLTarget': 'http://www.w3.org/ns/shacl#SPARQLTarget',\n /** The (meta) class for parameterizable targets that are based on SPARQL queries. */\n 'SPARQLTargetType': 'http://www.w3.org/ns/shacl#SPARQLTargetType',\n /** The class of SPARQL executables based on a SPARQL UPDATE. */\n 'SPARQLUpdateExecutable': 'http://www.w3.org/ns/shacl#SPARQLUpdateExecutable',\n /** The class of validation result severity levels, including violation and warning levels. */\n 'Severity': 'http://www.w3.org/ns/shacl#Severity',\n /** A shape is a collection of constraints that may be targeted for certain nodes. */\n 'Shape': 'http://www.w3.org/ns/shacl#Shape',\n /** The base class of targets such as those based on SPARQL queries. */\n 'Target': 'http://www.w3.org/ns/shacl#Target',\n /** The (meta) class for parameterizable targets.\tInstances of this are instantiated as values of the sh:target property. */\n 'TargetType': 'http://www.w3.org/ns/shacl#TargetType',\n /** A rule based on triple (subject, predicate, object) pattern. */\n 'TripleRule': 'http://www.w3.org/ns/shacl#TripleRule',\n /** A constraint component that can be used to specify that no pair of value nodes may use the same language tag. */\n 'UniqueLangConstraintComponent': 'http://www.w3.org/ns/shacl#UniqueLangConstraintComponent',\n 'UniqueLangConstraintComponent_uniqueLang': 'http://www.w3.org/ns/shacl#UniqueLangConstraintComponent-uniqueLang',\n /** The class of SHACL validation reports. */\n 'ValidationReport': 'http://www.w3.org/ns/shacl#ValidationReport',\n /** The class of validation results. */\n 'ValidationResult': 'http://www.w3.org/ns/shacl#ValidationResult',\n /** The class of validators, which provide instructions on how to process a constraint definition. This class serves as base class for the SPARQL-based validators and other possible implementations. */\n 'Validator': 'http://www.w3.org/ns/shacl#Validator',\n /** The severity for a violation validation result. */\n 'Violation': 'http://www.w3.org/ns/shacl#Violation',\n /** The severity for a warning validation result. */\n 'Warning': 'http://www.w3.org/ns/shacl#Warning',\n /** A constraint component that can be used to restrict the value nodes so that they conform to exactly one out of several provided shapes. */\n 'XoneConstraintComponent': 'http://www.w3.org/ns/shacl#XoneConstraintComponent',\n 'XoneConstraintComponent_xone': 'http://www.w3.org/ns/shacl#XoneConstraintComponent-xone',\n /** The (single) value of this property must be a list of path elements, representing the elements of alternative paths. */\n 'alternativePath': 'http://www.w3.org/ns/shacl#alternativePath',\n /** RDF list of shapes to validate the value nodes against. */\n 'and': 'http://www.w3.org/ns/shacl#and',\n /** The annotation property that shall be set. */\n 'annotationProperty': 'http://www.w3.org/ns/shacl#annotationProperty',\n /** The (default) values of the annotation property. */\n 'annotationValue': 'http://www.w3.org/ns/shacl#annotationValue',\n /** The name of the SPARQL variable from the SELECT clause that shall be used for the values. */\n 'annotationVarName': 'http://www.w3.org/ns/shacl#annotationVarName',\n /** The SPARQL ASK query to execute. */\n 'ask': 'http://www.w3.org/ns/shacl#ask',\n /** The type that all value nodes must have. */\n 'class': 'http://www.w3.org/ns/shacl#class',\n /** If set to true then the shape is closed. */\n 'closed': 'http://www.w3.org/ns/shacl#closed',\n /** The shapes that the focus nodes need to conform to before a rule is executed on them. */\n 'condition': 'http://www.w3.org/ns/shacl#condition',\n /** True if the validation did not produce any validation results, and false otherwise. */\n 'conforms': 'http://www.w3.org/ns/shacl#conforms',\n /** The SPARQL CONSTRUCT query to execute. */\n 'construct': 'http://www.w3.org/ns/shacl#construct',\n /** Specifies an RDF datatype that all value nodes must have. */\n 'datatype': 'http://www.w3.org/ns/shacl#datatype',\n /** If set to true then all nodes conform to this. */\n 'deactivated': 'http://www.w3.org/ns/shacl#deactivated',\n /** Links a resource with its namespace prefix declarations. */\n 'declare': 'http://www.w3.org/ns/shacl#declare',\n /** A default value for a property, for example for user interface tools to pre-populate input fields. */\n 'defaultValue': 'http://www.w3.org/ns/shacl#defaultValue',\n /** Human-readable descriptions for the property in the context of the surrounding shape. */\n 'description': 'http://www.w3.org/ns/shacl#description',\n /** Links a result with other results that provide more details, for example to describe violations against nested shapes. */\n 'detail': 'http://www.w3.org/ns/shacl#detail',\n /** Specifies a property where the set of values must be disjoint with the value nodes. */\n 'disjoint': 'http://www.w3.org/ns/shacl#disjoint',\n /** An entailment regime that indicates what kind of inferencing is required by a shapes graph. */\n 'entailment': 'http://www.w3.org/ns/shacl#entailment',\n /** Specifies a property that must have the same values as the value nodes. */\n 'equals': 'http://www.w3.org/ns/shacl#equals',\n /** The node expression that must return true for the value nodes. */\n 'expression': 'http://www.w3.org/ns/shacl#expression',\n /** The shape that all input nodes of the expression need to conform to. */\n 'filterShape': 'http://www.w3.org/ns/shacl#filterShape',\n /** An optional flag to be used with regular expression pattern matching. */\n 'flags': 'http://www.w3.org/ns/shacl#flags',\n /** The focus node that was validated when the result was produced. */\n 'focusNode': 'http://www.w3.org/ns/shacl#focusNode',\n /** Can be used to link to a property group to indicate that a property shape belongs to a group of related property shapes. */\n 'group': 'http://www.w3.org/ns/shacl#group',\n /** Specifies a value that must be among the value nodes. */\n 'hasValue': 'http://www.w3.org/ns/shacl#hasValue',\n /** An optional RDF list of properties that are also permitted in addition to those explicitly enumerated via sh:property/sh:path. */\n 'ignoredProperties': 'http://www.w3.org/ns/shacl#ignoredProperties',\n /** Specifies a list of allowed values so that each value node must be among the members of the given list. */\n 'in': 'http://www.w3.org/ns/shacl#in',\n /** A list of node expressions that shall be intersected. */\n 'intersection': 'http://www.w3.org/ns/shacl#intersection',\n /** The (single) value of this property represents an inverse path (object to subject). */\n 'inversePath': 'http://www.w3.org/ns/shacl#inversePath',\n /** Constraints expressed in JavaScript. */\n 'js': 'http://www.w3.org/ns/shacl#js',\n /** The name of the JavaScript function to execute. */\n 'jsFunctionName': 'http://www.w3.org/ns/shacl#jsFunctionName',\n /** Declares which JavaScript libraries are needed to execute this. */\n 'jsLibrary': 'http://www.w3.org/ns/shacl#jsLibrary',\n /** Declares the URLs of a JavaScript library. This should be the absolute URL of a JavaScript file. Implementations may redirect those to local files. */\n 'jsLibraryURL': 'http://www.w3.org/ns/shacl#jsLibraryURL',\n /** Outlines how human-readable labels of instances of the associated Parameterizable shall be produced. The values can contain {?paramName} as placeholders for the actual values of the given parameter. */\n 'labelTemplate': 'http://www.w3.org/ns/shacl#labelTemplate',\n /** Specifies a list of language tags that all value nodes must have. */\n 'languageIn': 'http://www.w3.org/ns/shacl#languageIn',\n /** Specifies a property that must have smaller values than the value nodes. */\n 'lessThan': 'http://www.w3.org/ns/shacl#lessThan',\n /** Specifies a property that must have smaller or equal values than the value nodes. */\n 'lessThanOrEquals': 'http://www.w3.org/ns/shacl#lessThanOrEquals',\n /** Specifies the maximum number of values in the set of value nodes. */\n 'maxCount': 'http://www.w3.org/ns/shacl#maxCount',\n /** Specifies the maximum exclusive value of each value node. */\n 'maxExclusive': 'http://www.w3.org/ns/shacl#maxExclusive',\n /** Specifies the maximum inclusive value of each value node. */\n 'maxInclusive': 'http://www.w3.org/ns/shacl#maxInclusive',\n /** Specifies the maximum string length of each value node. */\n 'maxLength': 'http://www.w3.org/ns/shacl#maxLength',\n /** A human-readable message (possibly with placeholders for variables) explaining the cause of the result. */\n 'message': 'http://www.w3.org/ns/shacl#message',\n /** Specifies the minimum number of values in the set of value nodes. */\n 'minCount': 'http://www.w3.org/ns/shacl#minCount',\n /** Specifies the minimum exclusive value of each value node. */\n 'minExclusive': 'http://www.w3.org/ns/shacl#minExclusive',\n /** Specifies the minimum inclusive value of each value node. */\n 'minInclusive': 'http://www.w3.org/ns/shacl#minInclusive',\n /** Specifies the minimum string length of each value node. */\n 'minLength': 'http://www.w3.org/ns/shacl#minLength',\n /** Human-readable labels for the property in the context of the surrounding shape. */\n 'name': 'http://www.w3.org/ns/shacl#name',\n /** The namespace associated with a prefix in a prefix declaration. */\n 'namespace': 'http://www.w3.org/ns/shacl#namespace',\n /** Specifies the node shape that all value nodes must conform to. */\n 'node': 'http://www.w3.org/ns/shacl#node',\n /** Specifies the node kind (e.g. IRI or literal) each value node. */\n 'nodeKind': 'http://www.w3.org/ns/shacl#nodeKind',\n /** The validator(s) used to evaluate a constraint in the context of a node shape. */\n 'nodeValidator': 'http://www.w3.org/ns/shacl#nodeValidator',\n /** The node expression producing the input nodes of a filter shape expression. */\n 'nodes': 'http://www.w3.org/ns/shacl#nodes',\n /** Specifies a shape that the value nodes must not conform to. */\n 'not': 'http://www.w3.org/ns/shacl#not',\n /** An expression producing the nodes that shall be inferred as objects. */\n 'object': 'http://www.w3.org/ns/shacl#object',\n /** The (single) value of this property represents a path that is matched one or more times. */\n 'oneOrMorePath': 'http://www.w3.org/ns/shacl#oneOrMorePath',\n /** Indicates whether a parameter is optional. */\n 'optional': 'http://www.w3.org/ns/shacl#optional',\n /** Specifies a list of shapes so that the value nodes must conform to at least one of the shapes. */\n 'or': 'http://www.w3.org/ns/shacl#or',\n /** Specifies the relative order of this compared to its siblings. For example use 0 for the first, 1 for the second. */\n 'order': 'http://www.w3.org/ns/shacl#order',\n /** The parameters of a function or constraint component. */\n 'parameter': 'http://www.w3.org/ns/shacl#parameter',\n /** Specifies the property path of a property shape. */\n 'path': 'http://www.w3.org/ns/shacl#path',\n /** Specifies a regular expression pattern that the string representations of the value nodes must match. */\n 'pattern': 'http://www.w3.org/ns/shacl#pattern',\n /** An expression producing the properties that shall be inferred as predicates. */\n 'predicate': 'http://www.w3.org/ns/shacl#predicate',\n /** The prefix of a prefix declaration. */\n 'prefix': 'http://www.w3.org/ns/shacl#prefix',\n /** The prefixes that shall be applied before parsing the associated SPARQL query. */\n 'prefixes': 'http://www.w3.org/ns/shacl#prefixes',\n /** Links a shape to its property shapes. */\n 'property': 'http://www.w3.org/ns/shacl#property',\n /** The validator(s) used to evaluate a constraint in the context of a property shape. */\n 'propertyValidator': 'http://www.w3.org/ns/shacl#propertyValidator',\n /** The maximum number of value nodes that can conform to the shape. */\n 'qualifiedMaxCount': 'http://www.w3.org/ns/shacl#qualifiedMaxCount',\n /** The minimum number of value nodes that must conform to the shape. */\n 'qualifiedMinCount': 'http://www.w3.org/ns/shacl#qualifiedMinCount',\n /** The shape that a specified number of values must conform to. */\n 'qualifiedValueShape': 'http://www.w3.org/ns/shacl#qualifiedValueShape',\n /** Can be used to mark the qualified value shape to be disjoint with its sibling shapes. */\n 'qualifiedValueShapesDisjoint': 'http://www.w3.org/ns/shacl#qualifiedValueShapesDisjoint',\n /** The validation results contained in a validation report. */\n 'result': 'http://www.w3.org/ns/shacl#result',\n /** Links a SPARQL validator with zero or more sh:ResultAnnotation instances, defining how to derive additional result properties based on the variables of the SELECT query. */\n 'resultAnnotation': 'http://www.w3.org/ns/shacl#resultAnnotation',\n /** Human-readable messages explaining the cause of the result. */\n 'resultMessage': 'http://www.w3.org/ns/shacl#resultMessage',\n /** The path of a validation result, based on the path of the validated property shape. */\n 'resultPath': 'http://www.w3.org/ns/shacl#resultPath',\n /** The severity of the result, e.g. warning. */\n 'resultSeverity': 'http://www.w3.org/ns/shacl#resultSeverity',\n /** The expected type of values returned by the associated function. */\n 'returnType': 'http://www.w3.org/ns/shacl#returnType',\n /** The rules linked to a shape. */\n 'rule': 'http://www.w3.org/ns/shacl#rule',\n /** The SPARQL SELECT query to execute. */\n 'select': 'http://www.w3.org/ns/shacl#select',\n /** Defines the severity that validation results produced by a shape must have. Defaults to sh:Violation. */\n 'severity': 'http://www.w3.org/ns/shacl#severity',\n /** Shapes graphs that should be used when validating this data graph. */\n 'shapesGraph': 'http://www.w3.org/ns/shacl#shapesGraph',\n /** If true then the validation engine was certain that the shapes graph has passed all SHACL syntax requirements during the validation process. */\n 'shapesGraphWellFormed': 'http://www.w3.org/ns/shacl#shapesGraphWellFormed',\n /** The constraint that was validated when the result was produced. */\n 'sourceConstraint': 'http://www.w3.org/ns/shacl#sourceConstraint',\n /** The constraint component that is the source of the result. */\n 'sourceConstraintComponent': 'http://www.w3.org/ns/shacl#sourceConstraintComponent',\n /** The shape that is was validated when the result was produced. */\n 'sourceShape': 'http://www.w3.org/ns/shacl#sourceShape',\n /** Links a shape with SPARQL constraints. */\n 'sparql': 'http://www.w3.org/ns/shacl#sparql',\n /** An expression producing the resources that shall be inferred as subjects. */\n 'subject': 'http://www.w3.org/ns/shacl#subject',\n /** Suggested shapes graphs for this ontology. The values of this property may be used in the absence of specific sh:shapesGraph statements. */\n 'suggestedShapesGraph': 'http://www.w3.org/ns/shacl#suggestedShapesGraph',\n /** Links a shape to a target specified by an extension language, for example instances of sh:SPARQLTarget. */\n 'target': 'http://www.w3.org/ns/shacl#target',\n /** Links a shape to a class, indicating that all instances of the class must conform to the shape. */\n 'targetClass': 'http://www.w3.org/ns/shacl#targetClass',\n /** Links a shape to individual nodes, indicating that these nodes must conform to the shape. */\n 'targetNode': 'http://www.w3.org/ns/shacl#targetNode',\n /** Links a shape to a property, indicating that all all objects of triples that have the given property as their predicate must conform to the shape. */\n 'targetObjectsOf': 'http://www.w3.org/ns/shacl#targetObjectsOf',\n /** Links a shape to a property, indicating that all subjects of triples that have the given property as their predicate must conform to the shape. */\n 'targetSubjectsOf': 'http://www.w3.org/ns/shacl#targetSubjectsOf',\n /** A node expression that represents the current focus node. */\n 'this': 'http://www.w3.org/ns/shacl#this',\n /** A list of node expressions that shall be used together. */\n 'union': 'http://www.w3.org/ns/shacl#union',\n /** Specifies whether all node values must have a unique (or no) language tag. */\n 'uniqueLang': 'http://www.w3.org/ns/shacl#uniqueLang',\n /** The SPARQL UPDATE to execute. */\n 'update': 'http://www.w3.org/ns/shacl#update',\n /** The validator(s) used to evaluate constraints of either node or property shapes. */\n 'validator': 'http://www.w3.org/ns/shacl#validator',\n /** An RDF node that has caused the result. */\n 'value': 'http://www.w3.org/ns/shacl#value',\n /** Specifies a list of shapes so that the value nodes must conform to exactly one of the shapes. */\n 'xone': 'http://www.w3.org/ns/shacl#xone',\n /** The (single) value of this property represents a path that is matched zero or more times. */\n 'zeroOrMorePath': 'http://www.w3.org/ns/shacl#zeroOrMorePath',\n /** The (single) value of this property represents a path that is matched zero or one times. */\n 'zeroOrOnePath': 'http://www.w3.org/ns/shacl#zeroOrOnePath',\n};\n/** Namespace URI of the sh vocabulary. */\nexports._sh = new n3.NamedNode('http://www.w3.org/ns/shacl#');\nexports.sh = {\n /** The base class of validation results, typically not instantiated directly. */\n 'AbstractResult': new n3.NamedNode('http://www.w3.org/ns/shacl#AbstractResult'),\n /** A constraint component that can be used to test whether a value node conforms to all members of a provided list of shapes. */\n 'AndConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#AndConstraintComponent'),\n 'AndConstraintComponent_and': new n3.NamedNode('http://www.w3.org/ns/shacl#AndConstraintComponent-and'),\n /** The node kind of all blank nodes. */\n 'BlankNode': new n3.NamedNode('http://www.w3.org/ns/shacl#BlankNode'),\n /** The node kind of all blank nodes or IRIs. */\n 'BlankNodeOrIRI': new n3.NamedNode('http://www.w3.org/ns/shacl#BlankNodeOrIRI'),\n /** The node kind of all blank nodes or literals. */\n 'BlankNodeOrLiteral': new n3.NamedNode('http://www.w3.org/ns/shacl#BlankNodeOrLiteral'),\n /** A constraint component that can be used to verify that each value node is an instance of a given type. */\n 'ClassConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#ClassConstraintComponent'),\n 'ClassConstraintComponent_class': new n3.NamedNode('http://www.w3.org/ns/shacl#ClassConstraintComponent-class'),\n /** A constraint component that can be used to indicate that focus nodes must only have values for those properties that have been explicitly enumerated via sh:property/sh:path. */\n 'ClosedConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#ClosedConstraintComponent'),\n 'ClosedConstraintComponent_closed': new n3.NamedNode('http://www.w3.org/ns/shacl#ClosedConstraintComponent-closed'),\n 'ClosedConstraintComponent_ignoredProperties': new n3.NamedNode('http://www.w3.org/ns/shacl#ClosedConstraintComponent-ignoredProperties'),\n /** The class of constraint components. */\n 'ConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#ConstraintComponent'),\n /** A constraint component that can be used to restrict the datatype of all value nodes. */\n 'DatatypeConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#DatatypeConstraintComponent'),\n 'DatatypeConstraintComponent_datatype': new n3.NamedNode('http://www.w3.org/ns/shacl#DatatypeConstraintComponent-datatype'),\n /** A constraint component that can be used to verify that the set of value nodes is disjoint with the the set of nodes that have the focus node as subject and the value of a given property as predicate. */\n 'DisjointConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#DisjointConstraintComponent'),\n 'DisjointConstraintComponent_disjoint': new n3.NamedNode('http://www.w3.org/ns/shacl#DisjointConstraintComponent-disjoint'),\n /** A constraint component that can be used to verify that the set of value nodes is equal to the set of nodes that have the focus node as subject and the value of a given property as predicate. */\n 'EqualsConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#EqualsConstraintComponent'),\n 'EqualsConstraintComponent_equals': new n3.NamedNode('http://www.w3.org/ns/shacl#EqualsConstraintComponent-equals'),\n /** A constraint component that can be used to verify that a given node expression produces true for all value nodes. */\n 'ExpressionConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#ExpressionConstraintComponent'),\n 'ExpressionConstraintComponent_expression': new n3.NamedNode('http://www.w3.org/ns/shacl#ExpressionConstraintComponent-expression'),\n /** The class of SHACL functions. */\n 'Function': new n3.NamedNode('http://www.w3.org/ns/shacl#Function'),\n /** A constraint component that can be used to verify that one of the value nodes is a given RDF node. */\n 'HasValueConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#HasValueConstraintComponent'),\n 'HasValueConstraintComponent_hasValue': new n3.NamedNode('http://www.w3.org/ns/shacl#HasValueConstraintComponent-hasValue'),\n /** The node kind of all IRIs. */\n 'IRI': new n3.NamedNode('http://www.w3.org/ns/shacl#IRI'),\n /** The node kind of all IRIs or literals. */\n 'IRIOrLiteral': new n3.NamedNode('http://www.w3.org/ns/shacl#IRIOrLiteral'),\n /** A constraint component that can be used to exclusively enumerate the permitted value nodes. */\n 'InConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#InConstraintComponent'),\n 'InConstraintComponent_in': new n3.NamedNode('http://www.w3.org/ns/shacl#InConstraintComponent-in'),\n /** The severity for an informational validation result. */\n 'Info': new n3.NamedNode('http://www.w3.org/ns/shacl#Info'),\n /** The class of constraints backed by a JavaScript function. */\n 'JSConstraint': new n3.NamedNode('http://www.w3.org/ns/shacl#JSConstraint'),\n 'JSConstraint_js': new n3.NamedNode('http://www.w3.org/ns/shacl#JSConstraint-js'),\n /** A constraint component with the parameter sh:js linking to a sh:JSConstraint containing a sh:script. */\n 'JSConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#JSConstraintComponent'),\n /** Abstract base class of resources that declare an executable JavaScript. */\n 'JSExecutable': new n3.NamedNode('http://www.w3.org/ns/shacl#JSExecutable'),\n /** The class of SHACL functions that execute a JavaScript function when called. */\n 'JSFunction': new n3.NamedNode('http://www.w3.org/ns/shacl#JSFunction'),\n /** Represents a JavaScript library, typically identified by one or more URLs of files to include. */\n 'JSLibrary': new n3.NamedNode('http://www.w3.org/ns/shacl#JSLibrary'),\n /** The class of SHACL rules expressed using JavaScript. */\n 'JSRule': new n3.NamedNode('http://www.w3.org/ns/shacl#JSRule'),\n /** The class of targets that are based on JavaScript functions. */\n 'JSTarget': new n3.NamedNode('http://www.w3.org/ns/shacl#JSTarget'),\n /** The (meta) class for parameterizable targets that are based on JavaScript functions. */\n 'JSTargetType': new n3.NamedNode('http://www.w3.org/ns/shacl#JSTargetType'),\n /** A SHACL validator based on JavaScript. This can be used to declare SHACL constraint components that perform JavaScript-based validation when used. */\n 'JSValidator': new n3.NamedNode('http://www.w3.org/ns/shacl#JSValidator'),\n /** A constraint component that can be used to enumerate language tags that all value nodes must have. */\n 'LanguageInConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#LanguageInConstraintComponent'),\n 'LanguageInConstraintComponent_languageIn': new n3.NamedNode('http://www.w3.org/ns/shacl#LanguageInConstraintComponent-languageIn'),\n /** A constraint component that can be used to verify that each value node is smaller than all the nodes that have the focus node as subject and the value of a given property as predicate. */\n 'LessThanConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#LessThanConstraintComponent'),\n 'LessThanConstraintComponent_lessThan': new n3.NamedNode('http://www.w3.org/ns/shacl#LessThanConstraintComponent-lessThan'),\n /** A constraint component that can be used to verify that every value node is smaller than all the nodes that have the focus node as subject and the value of a given property as predicate. */\n 'LessThanOrEqualsConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#LessThanOrEqualsConstraintComponent'),\n 'LessThanOrEqualsConstraintComponent_lessThanOrEquals': new n3.NamedNode('http://www.w3.org/ns/shacl#LessThanOrEqualsConstraintComponent-lessThanOrEquals'),\n /** The node kind of all literals. */\n 'Literal': new n3.NamedNode('http://www.w3.org/ns/shacl#Literal'),\n /** A constraint component that can be used to restrict the maximum number of value nodes. */\n 'MaxCountConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#MaxCountConstraintComponent'),\n 'MaxCountConstraintComponent_maxCount': new n3.NamedNode('http://www.w3.org/ns/shacl#MaxCountConstraintComponent-maxCount'),\n /** A constraint component that can be used to restrict the range of value nodes with a maximum exclusive value. */\n 'MaxExclusiveConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#MaxExclusiveConstraintComponent'),\n 'MaxExclusiveConstraintComponent_maxExclusive': new n3.NamedNode('http://www.w3.org/ns/shacl#MaxExclusiveConstraintComponent-maxExclusive'),\n /** A constraint component that can be used to restrict the range of value nodes with a maximum inclusive value. */\n 'MaxInclusiveConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#MaxInclusiveConstraintComponent'),\n 'MaxInclusiveConstraintComponent_maxInclusive': new n3.NamedNode('http://www.w3.org/ns/shacl#MaxInclusiveConstraintComponent-maxInclusive'),\n /** A constraint component that can be used to restrict the maximum string length of value nodes. */\n 'MaxLengthConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#MaxLengthConstraintComponent'),\n 'MaxLengthConstraintComponent_maxLength': new n3.NamedNode('http://www.w3.org/ns/shacl#MaxLengthConstraintComponent-maxLength'),\n /** A constraint component that can be used to restrict the minimum number of value nodes. */\n 'MinCountConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#MinCountConstraintComponent'),\n 'MinCountConstraintComponent_minCount': new n3.NamedNode('http://www.w3.org/ns/shacl#MinCountConstraintComponent-minCount'),\n /** A constraint component that can be used to restrict the range of value nodes with a minimum exclusive value. */\n 'MinExclusiveConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#MinExclusiveConstraintComponent'),\n 'MinExclusiveConstraintComponent_minExclusive': new n3.NamedNode('http://www.w3.org/ns/shacl#MinExclusiveConstraintComponent-minExclusive'),\n /** A constraint component that can be used to restrict the range of value nodes with a minimum inclusive value. */\n 'MinInclusiveConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#MinInclusiveConstraintComponent'),\n 'MinInclusiveConstraintComponent_minInclusive': new n3.NamedNode('http://www.w3.org/ns/shacl#MinInclusiveConstraintComponent-minInclusive'),\n /** A constraint component that can be used to restrict the minimum string length of value nodes. */\n 'MinLengthConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#MinLengthConstraintComponent'),\n 'MinLengthConstraintComponent_minLength': new n3.NamedNode('http://www.w3.org/ns/shacl#MinLengthConstraintComponent-minLength'),\n /** A constraint component that can be used to verify that all value nodes conform to the given node shape. */\n 'NodeConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#NodeConstraintComponent'),\n 'NodeConstraintComponent_node': new n3.NamedNode('http://www.w3.org/ns/shacl#NodeConstraintComponent-node'),\n /** The class of all node kinds, including sh:BlankNode, sh:IRI, sh:Literal or the combinations of these: sh:BlankNodeOrIRI, sh:BlankNodeOrLiteral, sh:IRIOrLiteral. */\n 'NodeKind': new n3.NamedNode('http://www.w3.org/ns/shacl#NodeKind'),\n /** A constraint component that can be used to restrict the RDF node kind of each value node. */\n 'NodeKindConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#NodeKindConstraintComponent'),\n 'NodeKindConstraintComponent_nodeKind': new n3.NamedNode('http://www.w3.org/ns/shacl#NodeKindConstraintComponent-nodeKind'),\n /** A node shape is a shape that specifies constraint that need to be met with respect to focus nodes. */\n 'NodeShape': new n3.NamedNode('http://www.w3.org/ns/shacl#NodeShape'),\n /** A constraint component that can be used to verify that value nodes do not conform to a given shape. */\n 'NotConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#NotConstraintComponent'),\n 'NotConstraintComponent_not': new n3.NamedNode('http://www.w3.org/ns/shacl#NotConstraintComponent-not'),\n /** A constraint component that can be used to restrict the value nodes so that they conform to at least one out of several provided shapes. */\n 'OrConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#OrConstraintComponent'),\n 'OrConstraintComponent_or': new n3.NamedNode('http://www.w3.org/ns/shacl#OrConstraintComponent-or'),\n /** The class of parameter declarations, consisting of a path predicate and (possibly) information about allowed value type, cardinality and other characteristics. */\n 'Parameter': new n3.NamedNode('http://www.w3.org/ns/shacl#Parameter'),\n /** Superclass of components that can take parameters, especially functions and constraint components. */\n 'Parameterizable': new n3.NamedNode('http://www.w3.org/ns/shacl#Parameterizable'),\n /** A constraint component that can be used to verify that every value node matches a given regular expression. */\n 'PatternConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#PatternConstraintComponent'),\n 'PatternConstraintComponent_flags': new n3.NamedNode('http://www.w3.org/ns/shacl#PatternConstraintComponent-flags'),\n 'PatternConstraintComponent_pattern': new n3.NamedNode('http://www.w3.org/ns/shacl#PatternConstraintComponent-pattern'),\n /** The class of prefix declarations, consisting of pairs of a prefix with a namespace. */\n 'PrefixDeclaration': new n3.NamedNode('http://www.w3.org/ns/shacl#PrefixDeclaration'),\n /** A constraint component that can be used to verify that all value nodes conform to the given property shape. */\n 'PropertyConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#PropertyConstraintComponent'),\n 'PropertyConstraintComponent_property': new n3.NamedNode('http://www.w3.org/ns/shacl#PropertyConstraintComponent-property'),\n /** Instances of this class represent groups of property shapes that belong together. */\n 'PropertyGroup': new n3.NamedNode('http://www.w3.org/ns/shacl#PropertyGroup'),\n /** A property shape is a shape that specifies constraints on the values of a focus node for a given property or path. */\n 'PropertyShape': new n3.NamedNode('http://www.w3.org/ns/shacl#PropertyShape'),\n /** A constraint component that can be used to verify that a specified maximum number of value nodes conforms to a given shape. */\n 'QualifiedMaxCountConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#QualifiedMaxCountConstraintComponent'),\n 'QualifiedMaxCountConstraintComponent_qualifiedMaxCount': new n3.NamedNode('http://www.w3.org/ns/shacl#QualifiedMaxCountConstraintComponent-qualifiedMaxCount'),\n 'QualifiedMaxCountConstraintComponent_qualifiedValueShape': new n3.NamedNode('http://www.w3.org/ns/shacl#QualifiedMaxCountConstraintComponent-qualifiedValueShape'),\n 'QualifiedMaxCountConstraintComponent_qualifiedValueShapesDisjoint': new n3.NamedNode('http://www.w3.org/ns/shacl#QualifiedMaxCountConstraintComponent-qualifiedValueShapesDisjoint'),\n /** A constraint component that can be used to verify that a specified minimum number of value nodes conforms to a given shape. */\n 'QualifiedMinCountConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#QualifiedMinCountConstraintComponent'),\n 'QualifiedMinCountConstraintComponent_qualifiedMinCount': new n3.NamedNode('http://www.w3.org/ns/shacl#QualifiedMinCountConstraintComponent-qualifiedMinCount'),\n 'QualifiedMinCountConstraintComponent_qualifiedValueShape': new n3.NamedNode('http://www.w3.org/ns/shacl#QualifiedMinCountConstraintComponent-qualifiedValueShape'),\n 'QualifiedMinCountConstraintComponent_qualifiedValueShapesDisjoint': new n3.NamedNode('http://www.w3.org/ns/shacl#QualifiedMinCountConstraintComponent-qualifiedValueShapesDisjoint'),\n /** A class of result annotations, which define the rules to derive the values of a given annotation property as extra values for a validation result. */\n 'ResultAnnotation': new n3.NamedNode('http://www.w3.org/ns/shacl#ResultAnnotation'),\n /** The class of SHACL rules. Never instantiated directly. */\n 'Rule': new n3.NamedNode('http://www.w3.org/ns/shacl#Rule'),\n /** The class of SPARQL executables that are based on an ASK query. */\n 'SPARQLAskExecutable': new n3.NamedNode('http://www.w3.org/ns/shacl#SPARQLAskExecutable'),\n /** The class of validators based on SPARQL ASK queries. The queries are evaluated for each value node and are supposed to return true if the given node conforms. */\n 'SPARQLAskValidator': new n3.NamedNode('http://www.w3.org/ns/shacl#SPARQLAskValidator'),\n /** The class of constraints based on SPARQL SELECT queries. */\n 'SPARQLConstraint': new n3.NamedNode('http://www.w3.org/ns/shacl#SPARQLConstraint'),\n /** A constraint component that can be used to define constraints based on SPARQL queries. */\n 'SPARQLConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#SPARQLConstraintComponent'),\n 'SPARQLConstraintComponent_sparql': new n3.NamedNode('http://www.w3.org/ns/shacl#SPARQLConstraintComponent-sparql'),\n /** The class of SPARQL executables that are based on a CONSTRUCT query. */\n 'SPARQLConstructExecutable': new n3.NamedNode('http://www.w3.org/ns/shacl#SPARQLConstructExecutable'),\n /** The class of resources that encapsulate a SPARQL query. */\n 'SPARQLExecutable': new n3.NamedNode('http://www.w3.org/ns/shacl#SPARQLExecutable'),\n /** A function backed by a SPARQL query - either ASK or SELECT. */\n 'SPARQLFunction': new n3.NamedNode('http://www.w3.org/ns/shacl#SPARQLFunction'),\n /** The class of SHACL rules based on SPARQL CONSTRUCT queries. */\n 'SPARQLRule': new n3.NamedNode('http://www.w3.org/ns/shacl#SPARQLRule'),\n /** The class of SPARQL executables based on a SELECT query. */\n 'SPARQLSelectExecutable': new n3.NamedNode('http://www.w3.org/ns/shacl#SPARQLSelectExecutable'),\n /** The class of validators based on SPARQL SELECT queries. The queries are evaluated for each focus node and are supposed to produce bindings for all focus nodes that do not conform. */\n 'SPARQLSelectValidator': new n3.NamedNode('http://www.w3.org/ns/shacl#SPARQLSelectValidator'),\n /** The class of targets that are based on SPARQL queries. */\n 'SPARQLTarget': new n3.NamedNode('http://www.w3.org/ns/shacl#SPARQLTarget'),\n /** The (meta) class for parameterizable targets that are based on SPARQL queries. */\n 'SPARQLTargetType': new n3.NamedNode('http://www.w3.org/ns/shacl#SPARQLTargetType'),\n /** The class of SPARQL executables based on a SPARQL UPDATE. */\n 'SPARQLUpdateExecutable': new n3.NamedNode('http://www.w3.org/ns/shacl#SPARQLUpdateExecutable'),\n /** The class of validation result severity levels, including violation and warning levels. */\n 'Severity': new n3.NamedNode('http://www.w3.org/ns/shacl#Severity'),\n /** A shape is a collection of constraints that may be targeted for certain nodes. */\n 'Shape': new n3.NamedNode('http://www.w3.org/ns/shacl#Shape'),\n /** The base class of targets such as those based on SPARQL queries. */\n 'Target': new n3.NamedNode('http://www.w3.org/ns/shacl#Target'),\n /** The (meta) class for parameterizable targets.\tInstances of this are instantiated as values of the sh:target property. */\n 'TargetType': new n3.NamedNode('http://www.w3.org/ns/shacl#TargetType'),\n /** A rule based on triple (subject, predicate, object) pattern. */\n 'TripleRule': new n3.NamedNode('http://www.w3.org/ns/shacl#TripleRule'),\n /** A constraint component that can be used to specify that no pair of value nodes may use the same language tag. */\n 'UniqueLangConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#UniqueLangConstraintComponent'),\n 'UniqueLangConstraintComponent_uniqueLang': new n3.NamedNode('http://www.w3.org/ns/shacl#UniqueLangConstraintComponent-uniqueLang'),\n /** The class of SHACL validation reports. */\n 'ValidationReport': new n3.NamedNode('http://www.w3.org/ns/shacl#ValidationReport'),\n /** The class of validation results. */\n 'ValidationResult': new n3.NamedNode('http://www.w3.org/ns/shacl#ValidationResult'),\n /** The class of validators, which provide instructions on how to process a constraint definition. This class serves as base class for the SPARQL-based validators and other possible implementations. */\n 'Validator': new n3.NamedNode('http://www.w3.org/ns/shacl#Validator'),\n /** The severity for a violation validation result. */\n 'Violation': new n3.NamedNode('http://www.w3.org/ns/shacl#Violation'),\n /** The severity for a warning validation result. */\n 'Warning': new n3.NamedNode('http://www.w3.org/ns/shacl#Warning'),\n /** A constraint component that can be used to restrict the value nodes so that they conform to exactly one out of several provided shapes. */\n 'XoneConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#XoneConstraintComponent'),\n 'XoneConstraintComponent_xone': new n3.NamedNode('http://www.w3.org/ns/shacl#XoneConstraintComponent-xone'),\n /** The (single) value of this property must be a list of path elements, representing the elements of alternative paths. */\n 'alternativePath': new n3.NamedNode('http://www.w3.org/ns/shacl#alternativePath'),\n /** RDF list of shapes to validate the value nodes against. */\n 'and': new n3.NamedNode('http://www.w3.org/ns/shacl#and'),\n /** The annotation property that shall be set. */\n 'annotationProperty': new n3.NamedNode('http://www.w3.org/ns/shacl#annotationProperty'),\n /** The (default) values of the annotation property. */\n 'annotationValue': new n3.NamedNode('http://www.w3.org/ns/shacl#annotationValue'),\n /** The name of the SPARQL variable from the SELECT clause that shall be used for the values. */\n 'annotationVarName': new n3.NamedNode('http://www.w3.org/ns/shacl#annotationVarName'),\n /** The SPARQL ASK query to execute. */\n 'ask': new n3.NamedNode('http://www.w3.org/ns/shacl#ask'),\n /** The type that all value nodes must have. */\n 'class': new n3.NamedNode('http://www.w3.org/ns/shacl#class'),\n /** If set to true then the shape is closed. */\n 'closed': new n3.NamedNode('http://www.w3.org/ns/shacl#closed'),\n /** The shapes that the focus nodes need to conform to before a rule is executed on them. */\n 'condition': new n3.NamedNode('http://www.w3.org/ns/shacl#condition'),\n /** True if the validation did not produce any validation results, and false otherwise. */\n 'conforms': new n3.NamedNode('http://www.w3.org/ns/shacl#conforms'),\n /** The SPARQL CONSTRUCT query to execute. */\n 'construct': new n3.NamedNode('http://www.w3.org/ns/shacl#construct'),\n /** Specifies an RDF datatype that all value nodes must have. */\n 'datatype': new n3.NamedNode('http://www.w3.org/ns/shacl#datatype'),\n /** If set to true then all nodes conform to this. */\n 'deactivated': new n3.NamedNode('http://www.w3.org/ns/shacl#deactivated'),\n /** Links a resource with its namespace prefix declarations. */\n 'declare': new n3.NamedNode('http://www.w3.org/ns/shacl#declare'),\n /** A default value for a property, for example for user interface tools to pre-populate input fields. */\n 'defaultValue': new n3.NamedNode('http://www.w3.org/ns/shacl#defaultValue'),\n /** Human-readable descriptions for the property in the context of the surrounding shape. */\n 'description': new n3.NamedNode('http://www.w3.org/ns/shacl#description'),\n /** Links a result with other results that provide more details, for example to describe violations against nested shapes. */\n 'detail': new n3.NamedNode('http://www.w3.org/ns/shacl#detail'),\n /** Specifies a property where the set of values must be disjoint with the value nodes. */\n 'disjoint': new n3.NamedNode('http://www.w3.org/ns/shacl#disjoint'),\n /** An entailment regime that indicates what kind of inferencing is required by a shapes graph. */\n 'entailment': new n3.NamedNode('http://www.w3.org/ns/shacl#entailment'),\n /** Specifies a property that must have the same values as the value nodes. */\n 'equals': new n3.NamedNode('http://www.w3.org/ns/shacl#equals'),\n /** The node expression that must return true for the value nodes. */\n 'expression': new n3.NamedNode('http://www.w3.org/ns/shacl#expression'),\n /** The shape that all input nodes of the expression need to conform to. */\n 'filterShape': new n3.NamedNode('http://www.w3.org/ns/shacl#filterShape'),\n /** An optional flag to be used with regular expression pattern matching. */\n 'flags': new n3.NamedNode('http://www.w3.org/ns/shacl#flags'),\n /** The focus node that was validated when the result was produced. */\n 'focusNode': new n3.NamedNode('http://www.w3.org/ns/shacl#focusNode'),\n /** Can be used to link to a property group to indicate that a property shape belongs to a group of related property shapes. */\n 'group': new n3.NamedNode('http://www.w3.org/ns/shacl#group'),\n /** Specifies a value that must be among the value nodes. */\n 'hasValue': new n3.NamedNode('http://www.w3.org/ns/shacl#hasValue'),\n /** An optional RDF list of properties that are also permitted in addition to those explicitly enumerated via sh:property/sh:path. */\n 'ignoredProperties': new n3.NamedNode('http://www.w3.org/ns/shacl#ignoredProperties'),\n /** Specifies a list of allowed values so that each value node must be among the members of the given list. */\n 'in': new n3.NamedNode('http://www.w3.org/ns/shacl#in'),\n /** A list of node expressions that shall be intersected. */\n 'intersection': new n3.NamedNode('http://www.w3.org/ns/shacl#intersection'),\n /** The (single) value of this property represents an inverse path (object to subject). */\n 'inversePath': new n3.NamedNode('http://www.w3.org/ns/shacl#inversePath'),\n /** Constraints expressed in JavaScript. */\n 'js': new n3.NamedNode('http://www.w3.org/ns/shacl#js'),\n /** The name of the JavaScript function to execute. */\n 'jsFunctionName': new n3.NamedNode('http://www.w3.org/ns/shacl#jsFunctionName'),\n /** Declares which JavaScript libraries are needed to execute this. */\n 'jsLibrary': new n3.NamedNode('http://www.w3.org/ns/shacl#jsLibrary'),\n /** Declares the URLs of a JavaScript library. This should be the absolute URL of a JavaScript file. Implementations may redirect those to local files. */\n 'jsLibraryURL': new n3.NamedNode('http://www.w3.org/ns/shacl#jsLibraryURL'),\n /** Outlines how human-readable labels of instances of the associated Parameterizable shall be produced. The values can contain {?paramName} as placeholders for the actual values of the given parameter. */\n 'labelTemplate': new n3.NamedNode('http://www.w3.org/ns/shacl#labelTemplate'),\n /** Specifies a list of language tags that all value nodes must have. */\n 'languageIn': new n3.NamedNode('http://www.w3.org/ns/shacl#languageIn'),\n /** Specifies a property that must have smaller values than the value nodes. */\n 'lessThan': new n3.NamedNode('http://www.w3.org/ns/shacl#lessThan'),\n /** Specifies a property that must have smaller or equal values than the value nodes. */\n 'lessThanOrEquals': new n3.NamedNode('http://www.w3.org/ns/shacl#lessThanOrEquals'),\n /** Specifies the maximum number of values in the set of value nodes. */\n 'maxCount': new n3.NamedNode('http://www.w3.org/ns/shacl#maxCount'),\n /** Specifies the maximum exclusive value of each value node. */\n 'maxExclusive': new n3.NamedNode('http://www.w3.org/ns/shacl#maxExclusive'),\n /** Specifies the maximum inclusive value of each value node. */\n 'maxInclusive': new n3.NamedNode('http://www.w3.org/ns/shacl#maxInclusive'),\n /** Specifies the maximum string length of each value node. */\n 'maxLength': new n3.NamedNode('http://www.w3.org/ns/shacl#maxLength'),\n /** A human-readable message (possibly with placeholders for variables) explaining the cause of the result. */\n 'message': new n3.NamedNode('http://www.w3.org/ns/shacl#message'),\n /** Specifies the minimum number of values in the set of value nodes. */\n 'minCount': new n3.NamedNode('http://www.w3.org/ns/shacl#minCount'),\n /** Specifies the minimum exclusive value of each value node. */\n 'minExclusive': new n3.NamedNode('http://www.w3.org/ns/shacl#minExclusive'),\n /** Specifies the minimum inclusive value of each value node. */\n 'minInclusive': new n3.NamedNode('http://www.w3.org/ns/shacl#minInclusive'),\n /** Specifies the minimum string length of each value node. */\n 'minLength': new n3.NamedNode('http://www.w3.org/ns/shacl#minLength'),\n /** Human-readable labels for the property in the context of the surrounding shape. */\n 'name': new n3.NamedNode('http://www.w3.org/ns/shacl#name'),\n /** The namespace associated with a prefix in a prefix declaration. */\n 'namespace': new n3.NamedNode('http://www.w3.org/ns/shacl#namespace'),\n /** Specifies the node shape that all value nodes must conform to. */\n 'node': new n3.NamedNode('http://www.w3.org/ns/shacl#node'),\n /** Specifies the node kind (e.g. IRI or literal) each value node. */\n 'nodeKind': new n3.NamedNode('http://www.w3.org/ns/shacl#nodeKind'),\n /** The validator(s) used to evaluate a constraint in the context of a node shape. */\n 'nodeValidator': new n3.NamedNode('http://www.w3.org/ns/shacl#nodeValidator'),\n /** The node expression producing the input nodes of a filter shape expression. */\n 'nodes': new n3.NamedNode('http://www.w3.org/ns/shacl#nodes'),\n /** Specifies a shape that the value nodes must not conform to. */\n 'not': new n3.NamedNode('http://www.w3.org/ns/shacl#not'),\n /** An expression producing the nodes that shall be inferred as objects. */\n 'object': new n3.NamedNode('http://www.w3.org/ns/shacl#object'),\n /** The (single) value of this property represents a path that is matched one or more times. */\n 'oneOrMorePath': new n3.NamedNode('http://www.w3.org/ns/shacl#oneOrMorePath'),\n /** Indicates whether a parameter is optional. */\n 'optional': new n3.NamedNode('http://www.w3.org/ns/shacl#optional'),\n /** Specifies a list of shapes so that the value nodes must conform to at least one of the shapes. */\n 'or': new n3.NamedNode('http://www.w3.org/ns/shacl#or'),\n /** Specifies the relative order of this compared to its siblings. For example use 0 for the first, 1 for the second. */\n 'order': new n3.NamedNode('http://www.w3.org/ns/shacl#order'),\n /** The parameters of a function or constraint component. */\n 'parameter': new n3.NamedNode('http://www.w3.org/ns/shacl#parameter'),\n /** Specifies the property path of a property shape. */\n 'path': new n3.NamedNode('http://www.w3.org/ns/shacl#path'),\n /** Specifies a regular expression pattern that the string representations of the value nodes must match. */\n 'pattern': new n3.NamedNode('http://www.w3.org/ns/shacl#pattern'),\n /** An expression producing the properties that shall be inferred as predicates. */\n 'predicate': new n3.NamedNode('http://www.w3.org/ns/shacl#predicate'),\n /** The prefix of a prefix declaration. */\n 'prefix': new n3.NamedNode('http://www.w3.org/ns/shacl#prefix'),\n /** The prefixes that shall be applied before parsing the associated SPARQL query. */\n 'prefixes': new n3.NamedNode('http://www.w3.org/ns/shacl#prefixes'),\n /** Links a shape to its property shapes. */\n 'property': new n3.NamedNode('http://www.w3.org/ns/shacl#property'),\n /** The validator(s) used to evaluate a constraint in the context of a property shape. */\n 'propertyValidator': new n3.NamedNode('http://www.w3.org/ns/shacl#propertyValidator'),\n /** The maximum number of value nodes that can conform to the shape. */\n 'qualifiedMaxCount': new n3.NamedNode('http://www.w3.org/ns/shacl#qualifiedMaxCount'),\n /** The minimum number of value nodes that must conform to the shape. */\n 'qualifiedMinCount': new n3.NamedNode('http://www.w3.org/ns/shacl#qualifiedMinCount'),\n /** The shape that a specified number of values must conform to. */\n 'qualifiedValueShape': new n3.NamedNode('http://www.w3.org/ns/shacl#qualifiedValueShape'),\n /** Can be used to mark the qualified value shape to be disjoint with its sibling shapes. */\n 'qualifiedValueShapesDisjoint': new n3.NamedNode('http://www.w3.org/ns/shacl#qualifiedValueShapesDisjoint'),\n /** The validation results contained in a validation report. */\n 'result': new n3.NamedNode('http://www.w3.org/ns/shacl#result'),\n /** Links a SPARQL validator with zero or more sh:ResultAnnotation instances, defining how to derive additional result properties based on the variables of the SELECT query. */\n 'resultAnnotation': new n3.NamedNode('http://www.w3.org/ns/shacl#resultAnnotation'),\n /** Human-readable messages explaining the cause of the result. */\n 'resultMessage': new n3.NamedNode('http://www.w3.org/ns/shacl#resultMessage'),\n /** The path of a validation result, based on the path of the validated property shape. */\n 'resultPath': new n3.NamedNode('http://www.w3.org/ns/shacl#resultPath'),\n /** The severity of the result, e.g. warning. */\n 'resultSeverity': new n3.NamedNode('http://www.w3.org/ns/shacl#resultSeverity'),\n /** The expected type of values returned by the associated function. */\n 'returnType': new n3.NamedNode('http://www.w3.org/ns/shacl#returnType'),\n /** The rules linked to a shape. */\n 'rule': new n3.NamedNode('http://www.w3.org/ns/shacl#rule'),\n /** The SPARQL SELECT query to execute. */\n 'select': new n3.NamedNode('http://www.w3.org/ns/shacl#select'),\n /** Defines the severity that validation results produced by a shape must have. Defaults to sh:Violation. */\n 'severity': new n3.NamedNode('http://www.w3.org/ns/shacl#severity'),\n /** Shapes graphs that should be used when validating this data graph. */\n 'shapesGraph': new n3.NamedNode('http://www.w3.org/ns/shacl#shapesGraph'),\n /** If true then the validation engine was certain that the shapes graph has passed all SHACL syntax requirements during the validation process. */\n 'shapesGraphWellFormed': new n3.NamedNode('http://www.w3.org/ns/shacl#shapesGraphWellFormed'),\n /** The constraint that was validated when the result was produced. */\n 'sourceConstraint': new n3.NamedNode('http://www.w3.org/ns/shacl#sourceConstraint'),\n /** The constraint component that is the source of the result. */\n 'sourceConstraintComponent': new n3.NamedNode('http://www.w3.org/ns/shacl#sourceConstraintComponent'),\n /** The shape that is was validated when the result was produced. */\n 'sourceShape': new n3.NamedNode('http://www.w3.org/ns/shacl#sourceShape'),\n /** Links a shape with SPARQL constraints. */\n 'sparql': new n3.NamedNode('http://www.w3.org/ns/shacl#sparql'),\n /** An expression producing the resources that shall be inferred as subjects. */\n 'subject': new n3.NamedNode('http://www.w3.org/ns/shacl#subject'),\n /** Suggested shapes graphs for this ontology. The values of this property may be used in the absence of specific sh:shapesGraph statements. */\n 'suggestedShapesGraph': new n3.NamedNode('http://www.w3.org/ns/shacl#suggestedShapesGraph'),\n /** Links a shape to a target specified by an extension language, for example instances of sh:SPARQLTarget. */\n 'target': new n3.NamedNode('http://www.w3.org/ns/shacl#target'),\n /** Links a shape to a class, indicating that all instances of the class must conform to the shape. */\n 'targetClass': new n3.NamedNode('http://www.w3.org/ns/shacl#targetClass'),\n /** Links a shape to individual nodes, indicating that these nodes must conform to the shape. */\n 'targetNode': new n3.NamedNode('http://www.w3.org/ns/shacl#targetNode'),\n /** Links a shape to a property, indicating that all all objects of triples that have the given property as their predicate must conform to the shape. */\n 'targetObjectsOf': new n3.NamedNode('http://www.w3.org/ns/shacl#targetObjectsOf'),\n /** Links a shape to a property, indicating that all subjects of triples that have the given property as their predicate must conform to the shape. */\n 'targetSubjectsOf': new n3.NamedNode('http://www.w3.org/ns/shacl#targetSubjectsOf'),\n /** A node expression that represents the current focus node. */\n 'this': new n3.NamedNode('http://www.w3.org/ns/shacl#this'),\n /** A list of node expressions that shall be used together. */\n 'union': new n3.NamedNode('http://www.w3.org/ns/shacl#union'),\n /** Specifies whether all node values must have a unique (or no) language tag. */\n 'uniqueLang': new n3.NamedNode('http://www.w3.org/ns/shacl#uniqueLang'),\n /** The SPARQL UPDATE to execute. */\n 'update': new n3.NamedNode('http://www.w3.org/ns/shacl#update'),\n /** The validator(s) used to evaluate constraints of either node or property shapes. */\n 'validator': new n3.NamedNode('http://www.w3.org/ns/shacl#validator'),\n /** An RDF node that has caused the result. */\n 'value': new n3.NamedNode('http://www.w3.org/ns/shacl#value'),\n /** Specifies a list of shapes so that the value nodes must conform to exactly one of the shapes. */\n 'xone': new n3.NamedNode('http://www.w3.org/ns/shacl#xone'),\n /** The (single) value of this property represents a path that is matched zero or more times. */\n 'zeroOrMorePath': new n3.NamedNode('http://www.w3.org/ns/shacl#zeroOrMorePath'),\n /** The (single) value of this property represents a path that is matched zero or one times. */\n 'zeroOrOnePath': new n3.NamedNode('http://www.w3.org/ns/shacl#zeroOrOnePath'),\n};\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/ontologies/sh.ts?");
|
|
1142
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.sh = exports._sh = exports.SH = exports._SH = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst { namedNode } = n3.DataFactory;\n/** Namespace URI of the SH vocabulary. */\nexports._SH = 'http://www.w3.org/ns/shacl#';\nexports.SH = {\n /** The base class of validation results, typically not instantiated directly. */\n 'AbstractResult': 'http://www.w3.org/ns/shacl#AbstractResult',\n /** A constraint component that can be used to test whether a value node conforms to all members of a provided list of shapes. */\n 'AndConstraintComponent': 'http://www.w3.org/ns/shacl#AndConstraintComponent',\n 'AndConstraintComponent_and': 'http://www.w3.org/ns/shacl#AndConstraintComponent-and',\n /** The node kind of all blank nodes. */\n 'BlankNode': 'http://www.w3.org/ns/shacl#BlankNode',\n /** The node kind of all blank nodes or IRIs. */\n 'BlankNodeOrIRI': 'http://www.w3.org/ns/shacl#BlankNodeOrIRI',\n /** The node kind of all blank nodes or literals. */\n 'BlankNodeOrLiteral': 'http://www.w3.org/ns/shacl#BlankNodeOrLiteral',\n /** A constraint component that can be used to verify that each value node is an instance of a given type. */\n 'ClassConstraintComponent': 'http://www.w3.org/ns/shacl#ClassConstraintComponent',\n 'ClassConstraintComponent_class': 'http://www.w3.org/ns/shacl#ClassConstraintComponent-class',\n /** A constraint component that can be used to indicate that focus nodes must only have values for those properties that have been explicitly enumerated via sh:property/sh:path. */\n 'ClosedConstraintComponent': 'http://www.w3.org/ns/shacl#ClosedConstraintComponent',\n 'ClosedConstraintComponent_closed': 'http://www.w3.org/ns/shacl#ClosedConstraintComponent-closed',\n 'ClosedConstraintComponent_ignoredProperties': 'http://www.w3.org/ns/shacl#ClosedConstraintComponent-ignoredProperties',\n /** The class of constraint components. */\n 'ConstraintComponent': 'http://www.w3.org/ns/shacl#ConstraintComponent',\n /** A constraint component that can be used to restrict the datatype of all value nodes. */\n 'DatatypeConstraintComponent': 'http://www.w3.org/ns/shacl#DatatypeConstraintComponent',\n 'DatatypeConstraintComponent_datatype': 'http://www.w3.org/ns/shacl#DatatypeConstraintComponent-datatype',\n /** A constraint component that can be used to verify that the set of value nodes is disjoint with the the set of nodes that have the focus node as subject and the value of a given property as predicate. */\n 'DisjointConstraintComponent': 'http://www.w3.org/ns/shacl#DisjointConstraintComponent',\n 'DisjointConstraintComponent_disjoint': 'http://www.w3.org/ns/shacl#DisjointConstraintComponent-disjoint',\n /** A constraint component that can be used to verify that the set of value nodes is equal to the set of nodes that have the focus node as subject and the value of a given property as predicate. */\n 'EqualsConstraintComponent': 'http://www.w3.org/ns/shacl#EqualsConstraintComponent',\n 'EqualsConstraintComponent_equals': 'http://www.w3.org/ns/shacl#EqualsConstraintComponent-equals',\n /** A constraint component that can be used to verify that a given node expression produces true for all value nodes. */\n 'ExpressionConstraintComponent': 'http://www.w3.org/ns/shacl#ExpressionConstraintComponent',\n 'ExpressionConstraintComponent_expression': 'http://www.w3.org/ns/shacl#ExpressionConstraintComponent-expression',\n /** The class of SHACL functions. */\n 'Function': 'http://www.w3.org/ns/shacl#Function',\n /** A constraint component that can be used to verify that one of the value nodes is a given RDF node. */\n 'HasValueConstraintComponent': 'http://www.w3.org/ns/shacl#HasValueConstraintComponent',\n 'HasValueConstraintComponent_hasValue': 'http://www.w3.org/ns/shacl#HasValueConstraintComponent-hasValue',\n /** The node kind of all IRIs. */\n 'IRI': 'http://www.w3.org/ns/shacl#IRI',\n /** The node kind of all IRIs or literals. */\n 'IRIOrLiteral': 'http://www.w3.org/ns/shacl#IRIOrLiteral',\n /** A constraint component that can be used to exclusively enumerate the permitted value nodes. */\n 'InConstraintComponent': 'http://www.w3.org/ns/shacl#InConstraintComponent',\n 'InConstraintComponent_in': 'http://www.w3.org/ns/shacl#InConstraintComponent-in',\n /** The severity for an informational validation result. */\n 'Info': 'http://www.w3.org/ns/shacl#Info',\n /** The class of constraints backed by a JavaScript function. */\n 'JSConstraint': 'http://www.w3.org/ns/shacl#JSConstraint',\n 'JSConstraint_js': 'http://www.w3.org/ns/shacl#JSConstraint-js',\n /** A constraint component with the parameter sh:js linking to a sh:JSConstraint containing a sh:script. */\n 'JSConstraintComponent': 'http://www.w3.org/ns/shacl#JSConstraintComponent',\n /** Abstract base class of resources that declare an executable JavaScript. */\n 'JSExecutable': 'http://www.w3.org/ns/shacl#JSExecutable',\n /** The class of SHACL functions that execute a JavaScript function when called. */\n 'JSFunction': 'http://www.w3.org/ns/shacl#JSFunction',\n /** Represents a JavaScript library, typically identified by one or more URLs of files to include. */\n 'JSLibrary': 'http://www.w3.org/ns/shacl#JSLibrary',\n /** The class of SHACL rules expressed using JavaScript. */\n 'JSRule': 'http://www.w3.org/ns/shacl#JSRule',\n /** The class of targets that are based on JavaScript functions. */\n 'JSTarget': 'http://www.w3.org/ns/shacl#JSTarget',\n /** The (meta) class for parameterizable targets that are based on JavaScript functions. */\n 'JSTargetType': 'http://www.w3.org/ns/shacl#JSTargetType',\n /** A SHACL validator based on JavaScript. This can be used to declare SHACL constraint components that perform JavaScript-based validation when used. */\n 'JSValidator': 'http://www.w3.org/ns/shacl#JSValidator',\n /** A constraint component that can be used to enumerate language tags that all value nodes must have. */\n 'LanguageInConstraintComponent': 'http://www.w3.org/ns/shacl#LanguageInConstraintComponent',\n 'LanguageInConstraintComponent_languageIn': 'http://www.w3.org/ns/shacl#LanguageInConstraintComponent-languageIn',\n /** A constraint component that can be used to verify that each value node is smaller than all the nodes that have the focus node as subject and the value of a given property as predicate. */\n 'LessThanConstraintComponent': 'http://www.w3.org/ns/shacl#LessThanConstraintComponent',\n 'LessThanConstraintComponent_lessThan': 'http://www.w3.org/ns/shacl#LessThanConstraintComponent-lessThan',\n /** A constraint component that can be used to verify that every value node is smaller than all the nodes that have the focus node as subject and the value of a given property as predicate. */\n 'LessThanOrEqualsConstraintComponent': 'http://www.w3.org/ns/shacl#LessThanOrEqualsConstraintComponent',\n 'LessThanOrEqualsConstraintComponent_lessThanOrEquals': 'http://www.w3.org/ns/shacl#LessThanOrEqualsConstraintComponent-lessThanOrEquals',\n /** The node kind of all literals. */\n 'Literal': 'http://www.w3.org/ns/shacl#Literal',\n /** A constraint component that can be used to restrict the maximum number of value nodes. */\n 'MaxCountConstraintComponent': 'http://www.w3.org/ns/shacl#MaxCountConstraintComponent',\n 'MaxCountConstraintComponent_maxCount': 'http://www.w3.org/ns/shacl#MaxCountConstraintComponent-maxCount',\n /** A constraint component that can be used to restrict the range of value nodes with a maximum exclusive value. */\n 'MaxExclusiveConstraintComponent': 'http://www.w3.org/ns/shacl#MaxExclusiveConstraintComponent',\n 'MaxExclusiveConstraintComponent_maxExclusive': 'http://www.w3.org/ns/shacl#MaxExclusiveConstraintComponent-maxExclusive',\n /** A constraint component that can be used to restrict the range of value nodes with a maximum inclusive value. */\n 'MaxInclusiveConstraintComponent': 'http://www.w3.org/ns/shacl#MaxInclusiveConstraintComponent',\n 'MaxInclusiveConstraintComponent_maxInclusive': 'http://www.w3.org/ns/shacl#MaxInclusiveConstraintComponent-maxInclusive',\n /** A constraint component that can be used to restrict the maximum string length of value nodes. */\n 'MaxLengthConstraintComponent': 'http://www.w3.org/ns/shacl#MaxLengthConstraintComponent',\n 'MaxLengthConstraintComponent_maxLength': 'http://www.w3.org/ns/shacl#MaxLengthConstraintComponent-maxLength',\n /** A constraint component that can be used to restrict the minimum number of value nodes. */\n 'MinCountConstraintComponent': 'http://www.w3.org/ns/shacl#MinCountConstraintComponent',\n 'MinCountConstraintComponent_minCount': 'http://www.w3.org/ns/shacl#MinCountConstraintComponent-minCount',\n /** A constraint component that can be used to restrict the range of value nodes with a minimum exclusive value. */\n 'MinExclusiveConstraintComponent': 'http://www.w3.org/ns/shacl#MinExclusiveConstraintComponent',\n 'MinExclusiveConstraintComponent_minExclusive': 'http://www.w3.org/ns/shacl#MinExclusiveConstraintComponent-minExclusive',\n /** A constraint component that can be used to restrict the range of value nodes with a minimum inclusive value. */\n 'MinInclusiveConstraintComponent': 'http://www.w3.org/ns/shacl#MinInclusiveConstraintComponent',\n 'MinInclusiveConstraintComponent_minInclusive': 'http://www.w3.org/ns/shacl#MinInclusiveConstraintComponent-minInclusive',\n /** A constraint component that can be used to restrict the minimum string length of value nodes. */\n 'MinLengthConstraintComponent': 'http://www.w3.org/ns/shacl#MinLengthConstraintComponent',\n 'MinLengthConstraintComponent_minLength': 'http://www.w3.org/ns/shacl#MinLengthConstraintComponent-minLength',\n /** A constraint component that can be used to verify that all value nodes conform to the given node shape. */\n 'NodeConstraintComponent': 'http://www.w3.org/ns/shacl#NodeConstraintComponent',\n 'NodeConstraintComponent_node': 'http://www.w3.org/ns/shacl#NodeConstraintComponent-node',\n /** The class of all node kinds, including sh:BlankNode, sh:IRI, sh:Literal or the combinations of these: sh:BlankNodeOrIRI, sh:BlankNodeOrLiteral, sh:IRIOrLiteral. */\n 'NodeKind': 'http://www.w3.org/ns/shacl#NodeKind',\n /** A constraint component that can be used to restrict the RDF node kind of each value node. */\n 'NodeKindConstraintComponent': 'http://www.w3.org/ns/shacl#NodeKindConstraintComponent',\n 'NodeKindConstraintComponent_nodeKind': 'http://www.w3.org/ns/shacl#NodeKindConstraintComponent-nodeKind',\n /** A node shape is a shape that specifies constraint that need to be met with respect to focus nodes. */\n 'NodeShape': 'http://www.w3.org/ns/shacl#NodeShape',\n /** A constraint component that can be used to verify that value nodes do not conform to a given shape. */\n 'NotConstraintComponent': 'http://www.w3.org/ns/shacl#NotConstraintComponent',\n 'NotConstraintComponent_not': 'http://www.w3.org/ns/shacl#NotConstraintComponent-not',\n /** A constraint component that can be used to restrict the value nodes so that they conform to at least one out of several provided shapes. */\n 'OrConstraintComponent': 'http://www.w3.org/ns/shacl#OrConstraintComponent',\n 'OrConstraintComponent_or': 'http://www.w3.org/ns/shacl#OrConstraintComponent-or',\n /** The class of parameter declarations, consisting of a path predicate and (possibly) information about allowed value type, cardinality and other characteristics. */\n 'Parameter': 'http://www.w3.org/ns/shacl#Parameter',\n /** Superclass of components that can take parameters, especially functions and constraint components. */\n 'Parameterizable': 'http://www.w3.org/ns/shacl#Parameterizable',\n /** A constraint component that can be used to verify that every value node matches a given regular expression. */\n 'PatternConstraintComponent': 'http://www.w3.org/ns/shacl#PatternConstraintComponent',\n 'PatternConstraintComponent_flags': 'http://www.w3.org/ns/shacl#PatternConstraintComponent-flags',\n 'PatternConstraintComponent_pattern': 'http://www.w3.org/ns/shacl#PatternConstraintComponent-pattern',\n /** The class of prefix declarations, consisting of pairs of a prefix with a namespace. */\n 'PrefixDeclaration': 'http://www.w3.org/ns/shacl#PrefixDeclaration',\n /** A constraint component that can be used to verify that all value nodes conform to the given property shape. */\n 'PropertyConstraintComponent': 'http://www.w3.org/ns/shacl#PropertyConstraintComponent',\n 'PropertyConstraintComponent_property': 'http://www.w3.org/ns/shacl#PropertyConstraintComponent-property',\n /** Instances of this class represent groups of property shapes that belong together. */\n 'PropertyGroup': 'http://www.w3.org/ns/shacl#PropertyGroup',\n /** A property shape is a shape that specifies constraints on the values of a focus node for a given property or path. */\n 'PropertyShape': 'http://www.w3.org/ns/shacl#PropertyShape',\n /** A constraint component that can be used to verify that a specified maximum number of value nodes conforms to a given shape. */\n 'QualifiedMaxCountConstraintComponent': 'http://www.w3.org/ns/shacl#QualifiedMaxCountConstraintComponent',\n 'QualifiedMaxCountConstraintComponent_qualifiedMaxCount': 'http://www.w3.org/ns/shacl#QualifiedMaxCountConstraintComponent-qualifiedMaxCount',\n 'QualifiedMaxCountConstraintComponent_qualifiedValueShape': 'http://www.w3.org/ns/shacl#QualifiedMaxCountConstraintComponent-qualifiedValueShape',\n 'QualifiedMaxCountConstraintComponent_qualifiedValueShapesDisjoint': 'http://www.w3.org/ns/shacl#QualifiedMaxCountConstraintComponent-qualifiedValueShapesDisjoint',\n /** A constraint component that can be used to verify that a specified minimum number of value nodes conforms to a given shape. */\n 'QualifiedMinCountConstraintComponent': 'http://www.w3.org/ns/shacl#QualifiedMinCountConstraintComponent',\n 'QualifiedMinCountConstraintComponent_qualifiedMinCount': 'http://www.w3.org/ns/shacl#QualifiedMinCountConstraintComponent-qualifiedMinCount',\n 'QualifiedMinCountConstraintComponent_qualifiedValueShape': 'http://www.w3.org/ns/shacl#QualifiedMinCountConstraintComponent-qualifiedValueShape',\n 'QualifiedMinCountConstraintComponent_qualifiedValueShapesDisjoint': 'http://www.w3.org/ns/shacl#QualifiedMinCountConstraintComponent-qualifiedValueShapesDisjoint',\n /** A class of result annotations, which define the rules to derive the values of a given annotation property as extra values for a validation result. */\n 'ResultAnnotation': 'http://www.w3.org/ns/shacl#ResultAnnotation',\n /** The class of SHACL rules. Never instantiated directly. */\n 'Rule': 'http://www.w3.org/ns/shacl#Rule',\n /** The class of SPARQL executables that are based on an ASK query. */\n 'SPARQLAskExecutable': 'http://www.w3.org/ns/shacl#SPARQLAskExecutable',\n /** The class of validators based on SPARQL ASK queries. The queries are evaluated for each value node and are supposed to return true if the given node conforms. */\n 'SPARQLAskValidator': 'http://www.w3.org/ns/shacl#SPARQLAskValidator',\n /** The class of constraints based on SPARQL SELECT queries. */\n 'SPARQLConstraint': 'http://www.w3.org/ns/shacl#SPARQLConstraint',\n /** A constraint component that can be used to define constraints based on SPARQL queries. */\n 'SPARQLConstraintComponent': 'http://www.w3.org/ns/shacl#SPARQLConstraintComponent',\n 'SPARQLConstraintComponent_sparql': 'http://www.w3.org/ns/shacl#SPARQLConstraintComponent-sparql',\n /** The class of SPARQL executables that are based on a CONSTRUCT query. */\n 'SPARQLConstructExecutable': 'http://www.w3.org/ns/shacl#SPARQLConstructExecutable',\n /** The class of resources that encapsulate a SPARQL query. */\n 'SPARQLExecutable': 'http://www.w3.org/ns/shacl#SPARQLExecutable',\n /** A function backed by a SPARQL query - either ASK or SELECT. */\n 'SPARQLFunction': 'http://www.w3.org/ns/shacl#SPARQLFunction',\n /** The class of SHACL rules based on SPARQL CONSTRUCT queries. */\n 'SPARQLRule': 'http://www.w3.org/ns/shacl#SPARQLRule',\n /** The class of SPARQL executables based on a SELECT query. */\n 'SPARQLSelectExecutable': 'http://www.w3.org/ns/shacl#SPARQLSelectExecutable',\n /** The class of validators based on SPARQL SELECT queries. The queries are evaluated for each focus node and are supposed to produce bindings for all focus nodes that do not conform. */\n 'SPARQLSelectValidator': 'http://www.w3.org/ns/shacl#SPARQLSelectValidator',\n /** The class of targets that are based on SPARQL queries. */\n 'SPARQLTarget': 'http://www.w3.org/ns/shacl#SPARQLTarget',\n /** The (meta) class for parameterizable targets that are based on SPARQL queries. */\n 'SPARQLTargetType': 'http://www.w3.org/ns/shacl#SPARQLTargetType',\n /** The class of SPARQL executables based on a SPARQL UPDATE. */\n 'SPARQLUpdateExecutable': 'http://www.w3.org/ns/shacl#SPARQLUpdateExecutable',\n /** The class of validation result severity levels, including violation and warning levels. */\n 'Severity': 'http://www.w3.org/ns/shacl#Severity',\n /** A shape is a collection of constraints that may be targeted for certain nodes. */\n 'Shape': 'http://www.w3.org/ns/shacl#Shape',\n /** The base class of targets such as those based on SPARQL queries. */\n 'Target': 'http://www.w3.org/ns/shacl#Target',\n /** The (meta) class for parameterizable targets.\tInstances of this are instantiated as values of the sh:target property. */\n 'TargetType': 'http://www.w3.org/ns/shacl#TargetType',\n /** A rule based on triple (subject, predicate, object) pattern. */\n 'TripleRule': 'http://www.w3.org/ns/shacl#TripleRule',\n /** A constraint component that can be used to specify that no pair of value nodes may use the same language tag. */\n 'UniqueLangConstraintComponent': 'http://www.w3.org/ns/shacl#UniqueLangConstraintComponent',\n 'UniqueLangConstraintComponent_uniqueLang': 'http://www.w3.org/ns/shacl#UniqueLangConstraintComponent-uniqueLang',\n /** The class of SHACL validation reports. */\n 'ValidationReport': 'http://www.w3.org/ns/shacl#ValidationReport',\n /** The class of validation results. */\n 'ValidationResult': 'http://www.w3.org/ns/shacl#ValidationResult',\n /** The class of validators, which provide instructions on how to process a constraint definition. This class serves as base class for the SPARQL-based validators and other possible implementations. */\n 'Validator': 'http://www.w3.org/ns/shacl#Validator',\n /** The severity for a violation validation result. */\n 'Violation': 'http://www.w3.org/ns/shacl#Violation',\n /** The severity for a warning validation result. */\n 'Warning': 'http://www.w3.org/ns/shacl#Warning',\n /** A constraint component that can be used to restrict the value nodes so that they conform to exactly one out of several provided shapes. */\n 'XoneConstraintComponent': 'http://www.w3.org/ns/shacl#XoneConstraintComponent',\n 'XoneConstraintComponent_xone': 'http://www.w3.org/ns/shacl#XoneConstraintComponent-xone',\n /** The (single) value of this property must be a list of path elements, representing the elements of alternative paths. */\n 'alternativePath': 'http://www.w3.org/ns/shacl#alternativePath',\n /** RDF list of shapes to validate the value nodes against. */\n 'and': 'http://www.w3.org/ns/shacl#and',\n /** The annotation property that shall be set. */\n 'annotationProperty': 'http://www.w3.org/ns/shacl#annotationProperty',\n /** The (default) values of the annotation property. */\n 'annotationValue': 'http://www.w3.org/ns/shacl#annotationValue',\n /** The name of the SPARQL variable from the SELECT clause that shall be used for the values. */\n 'annotationVarName': 'http://www.w3.org/ns/shacl#annotationVarName',\n /** The SPARQL ASK query to execute. */\n 'ask': 'http://www.w3.org/ns/shacl#ask',\n /** The type that all value nodes must have. */\n 'class': 'http://www.w3.org/ns/shacl#class',\n /** If set to true then the shape is closed. */\n 'closed': 'http://www.w3.org/ns/shacl#closed',\n /** The shapes that the focus nodes need to conform to before a rule is executed on them. */\n 'condition': 'http://www.w3.org/ns/shacl#condition',\n /** True if the validation did not produce any validation results, and false otherwise. */\n 'conforms': 'http://www.w3.org/ns/shacl#conforms',\n /** The SPARQL CONSTRUCT query to execute. */\n 'construct': 'http://www.w3.org/ns/shacl#construct',\n /** Specifies an RDF datatype that all value nodes must have. */\n 'datatype': 'http://www.w3.org/ns/shacl#datatype',\n /** If set to true then all nodes conform to this. */\n 'deactivated': 'http://www.w3.org/ns/shacl#deactivated',\n /** Links a resource with its namespace prefix declarations. */\n 'declare': 'http://www.w3.org/ns/shacl#declare',\n /** A default value for a property, for example for user interface tools to pre-populate input fields. */\n 'defaultValue': 'http://www.w3.org/ns/shacl#defaultValue',\n /** Human-readable descriptions for the property in the context of the surrounding shape. */\n 'description': 'http://www.w3.org/ns/shacl#description',\n /** Links a result with other results that provide more details, for example to describe violations against nested shapes. */\n 'detail': 'http://www.w3.org/ns/shacl#detail',\n /** Specifies a property where the set of values must be disjoint with the value nodes. */\n 'disjoint': 'http://www.w3.org/ns/shacl#disjoint',\n /** An entailment regime that indicates what kind of inferencing is required by a shapes graph. */\n 'entailment': 'http://www.w3.org/ns/shacl#entailment',\n /** Specifies a property that must have the same values as the value nodes. */\n 'equals': 'http://www.w3.org/ns/shacl#equals',\n /** The node expression that must return true for the value nodes. */\n 'expression': 'http://www.w3.org/ns/shacl#expression',\n /** The shape that all input nodes of the expression need to conform to. */\n 'filterShape': 'http://www.w3.org/ns/shacl#filterShape',\n /** An optional flag to be used with regular expression pattern matching. */\n 'flags': 'http://www.w3.org/ns/shacl#flags',\n /** The focus node that was validated when the result was produced. */\n 'focusNode': 'http://www.w3.org/ns/shacl#focusNode',\n /** Can be used to link to a property group to indicate that a property shape belongs to a group of related property shapes. */\n 'group': 'http://www.w3.org/ns/shacl#group',\n /** Specifies a value that must be among the value nodes. */\n 'hasValue': 'http://www.w3.org/ns/shacl#hasValue',\n /** An optional RDF list of properties that are also permitted in addition to those explicitly enumerated via sh:property/sh:path. */\n 'ignoredProperties': 'http://www.w3.org/ns/shacl#ignoredProperties',\n /** Specifies a list of allowed values so that each value node must be among the members of the given list. */\n 'in': 'http://www.w3.org/ns/shacl#in',\n /** A list of node expressions that shall be intersected. */\n 'intersection': 'http://www.w3.org/ns/shacl#intersection',\n /** The (single) value of this property represents an inverse path (object to subject). */\n 'inversePath': 'http://www.w3.org/ns/shacl#inversePath',\n /** Constraints expressed in JavaScript. */\n 'js': 'http://www.w3.org/ns/shacl#js',\n /** The name of the JavaScript function to execute. */\n 'jsFunctionName': 'http://www.w3.org/ns/shacl#jsFunctionName',\n /** Declares which JavaScript libraries are needed to execute this. */\n 'jsLibrary': 'http://www.w3.org/ns/shacl#jsLibrary',\n /** Declares the URLs of a JavaScript library. This should be the absolute URL of a JavaScript file. Implementations may redirect those to local files. */\n 'jsLibraryURL': 'http://www.w3.org/ns/shacl#jsLibraryURL',\n /** Outlines how human-readable labels of instances of the associated Parameterizable shall be produced. The values can contain {?paramName} as placeholders for the actual values of the given parameter. */\n 'labelTemplate': 'http://www.w3.org/ns/shacl#labelTemplate',\n /** Specifies a list of language tags that all value nodes must have. */\n 'languageIn': 'http://www.w3.org/ns/shacl#languageIn',\n /** Specifies a property that must have smaller values than the value nodes. */\n 'lessThan': 'http://www.w3.org/ns/shacl#lessThan',\n /** Specifies a property that must have smaller or equal values than the value nodes. */\n 'lessThanOrEquals': 'http://www.w3.org/ns/shacl#lessThanOrEquals',\n /** Specifies the maximum number of values in the set of value nodes. */\n 'maxCount': 'http://www.w3.org/ns/shacl#maxCount',\n /** Specifies the maximum exclusive value of each value node. */\n 'maxExclusive': 'http://www.w3.org/ns/shacl#maxExclusive',\n /** Specifies the maximum inclusive value of each value node. */\n 'maxInclusive': 'http://www.w3.org/ns/shacl#maxInclusive',\n /** Specifies the maximum string length of each value node. */\n 'maxLength': 'http://www.w3.org/ns/shacl#maxLength',\n /** A human-readable message (possibly with placeholders for variables) explaining the cause of the result. */\n 'message': 'http://www.w3.org/ns/shacl#message',\n /** Specifies the minimum number of values in the set of value nodes. */\n 'minCount': 'http://www.w3.org/ns/shacl#minCount',\n /** Specifies the minimum exclusive value of each value node. */\n 'minExclusive': 'http://www.w3.org/ns/shacl#minExclusive',\n /** Specifies the minimum inclusive value of each value node. */\n 'minInclusive': 'http://www.w3.org/ns/shacl#minInclusive',\n /** Specifies the minimum string length of each value node. */\n 'minLength': 'http://www.w3.org/ns/shacl#minLength',\n /** Human-readable labels for the property in the context of the surrounding shape. */\n 'name': 'http://www.w3.org/ns/shacl#name',\n /** The namespace associated with a prefix in a prefix declaration. */\n 'namespace': 'http://www.w3.org/ns/shacl#namespace',\n /** Specifies the node shape that all value nodes must conform to. */\n 'node': 'http://www.w3.org/ns/shacl#node',\n /** Specifies the node kind (e.g. IRI or literal) each value node. */\n 'nodeKind': 'http://www.w3.org/ns/shacl#nodeKind',\n /** The validator(s) used to evaluate a constraint in the context of a node shape. */\n 'nodeValidator': 'http://www.w3.org/ns/shacl#nodeValidator',\n /** The node expression producing the input nodes of a filter shape expression. */\n 'nodes': 'http://www.w3.org/ns/shacl#nodes',\n /** Specifies a shape that the value nodes must not conform to. */\n 'not': 'http://www.w3.org/ns/shacl#not',\n /** An expression producing the nodes that shall be inferred as objects. */\n 'object': 'http://www.w3.org/ns/shacl#object',\n /** The (single) value of this property represents a path that is matched one or more times. */\n 'oneOrMorePath': 'http://www.w3.org/ns/shacl#oneOrMorePath',\n /** Indicates whether a parameter is optional. */\n 'optional': 'http://www.w3.org/ns/shacl#optional',\n /** Specifies a list of shapes so that the value nodes must conform to at least one of the shapes. */\n 'or': 'http://www.w3.org/ns/shacl#or',\n /** Specifies the relative order of this compared to its siblings. For example use 0 for the first, 1 for the second. */\n 'order': 'http://www.w3.org/ns/shacl#order',\n /** The parameters of a function or constraint component. */\n 'parameter': 'http://www.w3.org/ns/shacl#parameter',\n /** Specifies the property path of a property shape. */\n 'path': 'http://www.w3.org/ns/shacl#path',\n /** Specifies a regular expression pattern that the string representations of the value nodes must match. */\n 'pattern': 'http://www.w3.org/ns/shacl#pattern',\n /** An expression producing the properties that shall be inferred as predicates. */\n 'predicate': 'http://www.w3.org/ns/shacl#predicate',\n /** The prefix of a prefix declaration. */\n 'prefix': 'http://www.w3.org/ns/shacl#prefix',\n /** The prefixes that shall be applied before parsing the associated SPARQL query. */\n 'prefixes': 'http://www.w3.org/ns/shacl#prefixes',\n /** Links a shape to its property shapes. */\n 'property': 'http://www.w3.org/ns/shacl#property',\n /** The validator(s) used to evaluate a constraint in the context of a property shape. */\n 'propertyValidator': 'http://www.w3.org/ns/shacl#propertyValidator',\n /** The maximum number of value nodes that can conform to the shape. */\n 'qualifiedMaxCount': 'http://www.w3.org/ns/shacl#qualifiedMaxCount',\n /** The minimum number of value nodes that must conform to the shape. */\n 'qualifiedMinCount': 'http://www.w3.org/ns/shacl#qualifiedMinCount',\n /** The shape that a specified number of values must conform to. */\n 'qualifiedValueShape': 'http://www.w3.org/ns/shacl#qualifiedValueShape',\n /** Can be used to mark the qualified value shape to be disjoint with its sibling shapes. */\n 'qualifiedValueShapesDisjoint': 'http://www.w3.org/ns/shacl#qualifiedValueShapesDisjoint',\n /** The validation results contained in a validation report. */\n 'result': 'http://www.w3.org/ns/shacl#result',\n /** Links a SPARQL validator with zero or more sh:ResultAnnotation instances, defining how to derive additional result properties based on the variables of the SELECT query. */\n 'resultAnnotation': 'http://www.w3.org/ns/shacl#resultAnnotation',\n /** Human-readable messages explaining the cause of the result. */\n 'resultMessage': 'http://www.w3.org/ns/shacl#resultMessage',\n /** The path of a validation result, based on the path of the validated property shape. */\n 'resultPath': 'http://www.w3.org/ns/shacl#resultPath',\n /** The severity of the result, e.g. warning. */\n 'resultSeverity': 'http://www.w3.org/ns/shacl#resultSeverity',\n /** The expected type of values returned by the associated function. */\n 'returnType': 'http://www.w3.org/ns/shacl#returnType',\n /** The rules linked to a shape. */\n 'rule': 'http://www.w3.org/ns/shacl#rule',\n /** The SPARQL SELECT query to execute. */\n 'select': 'http://www.w3.org/ns/shacl#select',\n /** Defines the severity that validation results produced by a shape must have. Defaults to sh:Violation. */\n 'severity': 'http://www.w3.org/ns/shacl#severity',\n /** Shapes graphs that should be used when validating this data graph. */\n 'shapesGraph': 'http://www.w3.org/ns/shacl#shapesGraph',\n /** If true then the validation engine was certain that the shapes graph has passed all SHACL syntax requirements during the validation process. */\n 'shapesGraphWellFormed': 'http://www.w3.org/ns/shacl#shapesGraphWellFormed',\n /** The constraint that was validated when the result was produced. */\n 'sourceConstraint': 'http://www.w3.org/ns/shacl#sourceConstraint',\n /** The constraint component that is the source of the result. */\n 'sourceConstraintComponent': 'http://www.w3.org/ns/shacl#sourceConstraintComponent',\n /** The shape that is was validated when the result was produced. */\n 'sourceShape': 'http://www.w3.org/ns/shacl#sourceShape',\n /** Links a shape with SPARQL constraints. */\n 'sparql': 'http://www.w3.org/ns/shacl#sparql',\n /** An expression producing the resources that shall be inferred as subjects. */\n 'subject': 'http://www.w3.org/ns/shacl#subject',\n /** Suggested shapes graphs for this ontology. The values of this property may be used in the absence of specific sh:shapesGraph statements. */\n 'suggestedShapesGraph': 'http://www.w3.org/ns/shacl#suggestedShapesGraph',\n /** Links a shape to a target specified by an extension language, for example instances of sh:SPARQLTarget. */\n 'target': 'http://www.w3.org/ns/shacl#target',\n /** Links a shape to a class, indicating that all instances of the class must conform to the shape. */\n 'targetClass': 'http://www.w3.org/ns/shacl#targetClass',\n /** Links a shape to individual nodes, indicating that these nodes must conform to the shape. */\n 'targetNode': 'http://www.w3.org/ns/shacl#targetNode',\n /** Links a shape to a property, indicating that all all objects of triples that have the given property as their predicate must conform to the shape. */\n 'targetObjectsOf': 'http://www.w3.org/ns/shacl#targetObjectsOf',\n /** Links a shape to a property, indicating that all subjects of triples that have the given property as their predicate must conform to the shape. */\n 'targetSubjectsOf': 'http://www.w3.org/ns/shacl#targetSubjectsOf',\n /** A node expression that represents the current focus node. */\n 'this': 'http://www.w3.org/ns/shacl#this',\n /** A list of node expressions that shall be used together. */\n 'union': 'http://www.w3.org/ns/shacl#union',\n /** Specifies whether all node values must have a unique (or no) language tag. */\n 'uniqueLang': 'http://www.w3.org/ns/shacl#uniqueLang',\n /** The SPARQL UPDATE to execute. */\n 'update': 'http://www.w3.org/ns/shacl#update',\n /** The validator(s) used to evaluate constraints of either node or property shapes. */\n 'validator': 'http://www.w3.org/ns/shacl#validator',\n /** An RDF node that has caused the result. */\n 'value': 'http://www.w3.org/ns/shacl#value',\n /** Specifies a list of shapes so that the value nodes must conform to exactly one of the shapes. */\n 'xone': 'http://www.w3.org/ns/shacl#xone',\n /** The (single) value of this property represents a path that is matched zero or more times. */\n 'zeroOrMorePath': 'http://www.w3.org/ns/shacl#zeroOrMorePath',\n /** The (single) value of this property represents a path that is matched zero or one times. */\n 'zeroOrOnePath': 'http://www.w3.org/ns/shacl#zeroOrOnePath',\n};\n/** Namespace URI of the sh vocabulary. */\nexports._sh = namedNode('http://www.w3.org/ns/shacl#');\nexports.sh = {\n /** The base class of validation results, typically not instantiated directly. */\n 'AbstractResult': namedNode('http://www.w3.org/ns/shacl#AbstractResult'),\n /** A constraint component that can be used to test whether a value node conforms to all members of a provided list of shapes. */\n 'AndConstraintComponent': namedNode('http://www.w3.org/ns/shacl#AndConstraintComponent'),\n 'AndConstraintComponent_and': namedNode('http://www.w3.org/ns/shacl#AndConstraintComponent-and'),\n /** The node kind of all blank nodes. */\n 'BlankNode': namedNode('http://www.w3.org/ns/shacl#BlankNode'),\n /** The node kind of all blank nodes or IRIs. */\n 'BlankNodeOrIRI': namedNode('http://www.w3.org/ns/shacl#BlankNodeOrIRI'),\n /** The node kind of all blank nodes or literals. */\n 'BlankNodeOrLiteral': namedNode('http://www.w3.org/ns/shacl#BlankNodeOrLiteral'),\n /** A constraint component that can be used to verify that each value node is an instance of a given type. */\n 'ClassConstraintComponent': namedNode('http://www.w3.org/ns/shacl#ClassConstraintComponent'),\n 'ClassConstraintComponent_class': namedNode('http://www.w3.org/ns/shacl#ClassConstraintComponent-class'),\n /** A constraint component that can be used to indicate that focus nodes must only have values for those properties that have been explicitly enumerated via sh:property/sh:path. */\n 'ClosedConstraintComponent': namedNode('http://www.w3.org/ns/shacl#ClosedConstraintComponent'),\n 'ClosedConstraintComponent_closed': namedNode('http://www.w3.org/ns/shacl#ClosedConstraintComponent-closed'),\n 'ClosedConstraintComponent_ignoredProperties': namedNode('http://www.w3.org/ns/shacl#ClosedConstraintComponent-ignoredProperties'),\n /** The class of constraint components. */\n 'ConstraintComponent': namedNode('http://www.w3.org/ns/shacl#ConstraintComponent'),\n /** A constraint component that can be used to restrict the datatype of all value nodes. */\n 'DatatypeConstraintComponent': namedNode('http://www.w3.org/ns/shacl#DatatypeConstraintComponent'),\n 'DatatypeConstraintComponent_datatype': namedNode('http://www.w3.org/ns/shacl#DatatypeConstraintComponent-datatype'),\n /** A constraint component that can be used to verify that the set of value nodes is disjoint with the the set of nodes that have the focus node as subject and the value of a given property as predicate. */\n 'DisjointConstraintComponent': namedNode('http://www.w3.org/ns/shacl#DisjointConstraintComponent'),\n 'DisjointConstraintComponent_disjoint': namedNode('http://www.w3.org/ns/shacl#DisjointConstraintComponent-disjoint'),\n /** A constraint component that can be used to verify that the set of value nodes is equal to the set of nodes that have the focus node as subject and the value of a given property as predicate. */\n 'EqualsConstraintComponent': namedNode('http://www.w3.org/ns/shacl#EqualsConstraintComponent'),\n 'EqualsConstraintComponent_equals': namedNode('http://www.w3.org/ns/shacl#EqualsConstraintComponent-equals'),\n /** A constraint component that can be used to verify that a given node expression produces true for all value nodes. */\n 'ExpressionConstraintComponent': namedNode('http://www.w3.org/ns/shacl#ExpressionConstraintComponent'),\n 'ExpressionConstraintComponent_expression': namedNode('http://www.w3.org/ns/shacl#ExpressionConstraintComponent-expression'),\n /** The class of SHACL functions. */\n 'Function': namedNode('http://www.w3.org/ns/shacl#Function'),\n /** A constraint component that can be used to verify that one of the value nodes is a given RDF node. */\n 'HasValueConstraintComponent': namedNode('http://www.w3.org/ns/shacl#HasValueConstraintComponent'),\n 'HasValueConstraintComponent_hasValue': namedNode('http://www.w3.org/ns/shacl#HasValueConstraintComponent-hasValue'),\n /** The node kind of all IRIs. */\n 'IRI': namedNode('http://www.w3.org/ns/shacl#IRI'),\n /** The node kind of all IRIs or literals. */\n 'IRIOrLiteral': namedNode('http://www.w3.org/ns/shacl#IRIOrLiteral'),\n /** A constraint component that can be used to exclusively enumerate the permitted value nodes. */\n 'InConstraintComponent': namedNode('http://www.w3.org/ns/shacl#InConstraintComponent'),\n 'InConstraintComponent_in': namedNode('http://www.w3.org/ns/shacl#InConstraintComponent-in'),\n /** The severity for an informational validation result. */\n 'Info': namedNode('http://www.w3.org/ns/shacl#Info'),\n /** The class of constraints backed by a JavaScript function. */\n 'JSConstraint': namedNode('http://www.w3.org/ns/shacl#JSConstraint'),\n 'JSConstraint_js': namedNode('http://www.w3.org/ns/shacl#JSConstraint-js'),\n /** A constraint component with the parameter sh:js linking to a sh:JSConstraint containing a sh:script. */\n 'JSConstraintComponent': namedNode('http://www.w3.org/ns/shacl#JSConstraintComponent'),\n /** Abstract base class of resources that declare an executable JavaScript. */\n 'JSExecutable': namedNode('http://www.w3.org/ns/shacl#JSExecutable'),\n /** The class of SHACL functions that execute a JavaScript function when called. */\n 'JSFunction': namedNode('http://www.w3.org/ns/shacl#JSFunction'),\n /** Represents a JavaScript library, typically identified by one or more URLs of files to include. */\n 'JSLibrary': namedNode('http://www.w3.org/ns/shacl#JSLibrary'),\n /** The class of SHACL rules expressed using JavaScript. */\n 'JSRule': namedNode('http://www.w3.org/ns/shacl#JSRule'),\n /** The class of targets that are based on JavaScript functions. */\n 'JSTarget': namedNode('http://www.w3.org/ns/shacl#JSTarget'),\n /** The (meta) class for parameterizable targets that are based on JavaScript functions. */\n 'JSTargetType': namedNode('http://www.w3.org/ns/shacl#JSTargetType'),\n /** A SHACL validator based on JavaScript. This can be used to declare SHACL constraint components that perform JavaScript-based validation when used. */\n 'JSValidator': namedNode('http://www.w3.org/ns/shacl#JSValidator'),\n /** A constraint component that can be used to enumerate language tags that all value nodes must have. */\n 'LanguageInConstraintComponent': namedNode('http://www.w3.org/ns/shacl#LanguageInConstraintComponent'),\n 'LanguageInConstraintComponent_languageIn': namedNode('http://www.w3.org/ns/shacl#LanguageInConstraintComponent-languageIn'),\n /** A constraint component that can be used to verify that each value node is smaller than all the nodes that have the focus node as subject and the value of a given property as predicate. */\n 'LessThanConstraintComponent': namedNode('http://www.w3.org/ns/shacl#LessThanConstraintComponent'),\n 'LessThanConstraintComponent_lessThan': namedNode('http://www.w3.org/ns/shacl#LessThanConstraintComponent-lessThan'),\n /** A constraint component that can be used to verify that every value node is smaller than all the nodes that have the focus node as subject and the value of a given property as predicate. */\n 'LessThanOrEqualsConstraintComponent': namedNode('http://www.w3.org/ns/shacl#LessThanOrEqualsConstraintComponent'),\n 'LessThanOrEqualsConstraintComponent_lessThanOrEquals': namedNode('http://www.w3.org/ns/shacl#LessThanOrEqualsConstraintComponent-lessThanOrEquals'),\n /** The node kind of all literals. */\n 'Literal': namedNode('http://www.w3.org/ns/shacl#Literal'),\n /** A constraint component that can be used to restrict the maximum number of value nodes. */\n 'MaxCountConstraintComponent': namedNode('http://www.w3.org/ns/shacl#MaxCountConstraintComponent'),\n 'MaxCountConstraintComponent_maxCount': namedNode('http://www.w3.org/ns/shacl#MaxCountConstraintComponent-maxCount'),\n /** A constraint component that can be used to restrict the range of value nodes with a maximum exclusive value. */\n 'MaxExclusiveConstraintComponent': namedNode('http://www.w3.org/ns/shacl#MaxExclusiveConstraintComponent'),\n 'MaxExclusiveConstraintComponent_maxExclusive': namedNode('http://www.w3.org/ns/shacl#MaxExclusiveConstraintComponent-maxExclusive'),\n /** A constraint component that can be used to restrict the range of value nodes with a maximum inclusive value. */\n 'MaxInclusiveConstraintComponent': namedNode('http://www.w3.org/ns/shacl#MaxInclusiveConstraintComponent'),\n 'MaxInclusiveConstraintComponent_maxInclusive': namedNode('http://www.w3.org/ns/shacl#MaxInclusiveConstraintComponent-maxInclusive'),\n /** A constraint component that can be used to restrict the maximum string length of value nodes. */\n 'MaxLengthConstraintComponent': namedNode('http://www.w3.org/ns/shacl#MaxLengthConstraintComponent'),\n 'MaxLengthConstraintComponent_maxLength': namedNode('http://www.w3.org/ns/shacl#MaxLengthConstraintComponent-maxLength'),\n /** A constraint component that can be used to restrict the minimum number of value nodes. */\n 'MinCountConstraintComponent': namedNode('http://www.w3.org/ns/shacl#MinCountConstraintComponent'),\n 'MinCountConstraintComponent_minCount': namedNode('http://www.w3.org/ns/shacl#MinCountConstraintComponent-minCount'),\n /** A constraint component that can be used to restrict the range of value nodes with a minimum exclusive value. */\n 'MinExclusiveConstraintComponent': namedNode('http://www.w3.org/ns/shacl#MinExclusiveConstraintComponent'),\n 'MinExclusiveConstraintComponent_minExclusive': namedNode('http://www.w3.org/ns/shacl#MinExclusiveConstraintComponent-minExclusive'),\n /** A constraint component that can be used to restrict the range of value nodes with a minimum inclusive value. */\n 'MinInclusiveConstraintComponent': namedNode('http://www.w3.org/ns/shacl#MinInclusiveConstraintComponent'),\n 'MinInclusiveConstraintComponent_minInclusive': namedNode('http://www.w3.org/ns/shacl#MinInclusiveConstraintComponent-minInclusive'),\n /** A constraint component that can be used to restrict the minimum string length of value nodes. */\n 'MinLengthConstraintComponent': namedNode('http://www.w3.org/ns/shacl#MinLengthConstraintComponent'),\n 'MinLengthConstraintComponent_minLength': namedNode('http://www.w3.org/ns/shacl#MinLengthConstraintComponent-minLength'),\n /** A constraint component that can be used to verify that all value nodes conform to the given node shape. */\n 'NodeConstraintComponent': namedNode('http://www.w3.org/ns/shacl#NodeConstraintComponent'),\n 'NodeConstraintComponent_node': namedNode('http://www.w3.org/ns/shacl#NodeConstraintComponent-node'),\n /** The class of all node kinds, including sh:BlankNode, sh:IRI, sh:Literal or the combinations of these: sh:BlankNodeOrIRI, sh:BlankNodeOrLiteral, sh:IRIOrLiteral. */\n 'NodeKind': namedNode('http://www.w3.org/ns/shacl#NodeKind'),\n /** A constraint component that can be used to restrict the RDF node kind of each value node. */\n 'NodeKindConstraintComponent': namedNode('http://www.w3.org/ns/shacl#NodeKindConstraintComponent'),\n 'NodeKindConstraintComponent_nodeKind': namedNode('http://www.w3.org/ns/shacl#NodeKindConstraintComponent-nodeKind'),\n /** A node shape is a shape that specifies constraint that need to be met with respect to focus nodes. */\n 'NodeShape': namedNode('http://www.w3.org/ns/shacl#NodeShape'),\n /** A constraint component that can be used to verify that value nodes do not conform to a given shape. */\n 'NotConstraintComponent': namedNode('http://www.w3.org/ns/shacl#NotConstraintComponent'),\n 'NotConstraintComponent_not': namedNode('http://www.w3.org/ns/shacl#NotConstraintComponent-not'),\n /** A constraint component that can be used to restrict the value nodes so that they conform to at least one out of several provided shapes. */\n 'OrConstraintComponent': namedNode('http://www.w3.org/ns/shacl#OrConstraintComponent'),\n 'OrConstraintComponent_or': namedNode('http://www.w3.org/ns/shacl#OrConstraintComponent-or'),\n /** The class of parameter declarations, consisting of a path predicate and (possibly) information about allowed value type, cardinality and other characteristics. */\n 'Parameter': namedNode('http://www.w3.org/ns/shacl#Parameter'),\n /** Superclass of components that can take parameters, especially functions and constraint components. */\n 'Parameterizable': namedNode('http://www.w3.org/ns/shacl#Parameterizable'),\n /** A constraint component that can be used to verify that every value node matches a given regular expression. */\n 'PatternConstraintComponent': namedNode('http://www.w3.org/ns/shacl#PatternConstraintComponent'),\n 'PatternConstraintComponent_flags': namedNode('http://www.w3.org/ns/shacl#PatternConstraintComponent-flags'),\n 'PatternConstraintComponent_pattern': namedNode('http://www.w3.org/ns/shacl#PatternConstraintComponent-pattern'),\n /** The class of prefix declarations, consisting of pairs of a prefix with a namespace. */\n 'PrefixDeclaration': namedNode('http://www.w3.org/ns/shacl#PrefixDeclaration'),\n /** A constraint component that can be used to verify that all value nodes conform to the given property shape. */\n 'PropertyConstraintComponent': namedNode('http://www.w3.org/ns/shacl#PropertyConstraintComponent'),\n 'PropertyConstraintComponent_property': namedNode('http://www.w3.org/ns/shacl#PropertyConstraintComponent-property'),\n /** Instances of this class represent groups of property shapes that belong together. */\n 'PropertyGroup': namedNode('http://www.w3.org/ns/shacl#PropertyGroup'),\n /** A property shape is a shape that specifies constraints on the values of a focus node for a given property or path. */\n 'PropertyShape': namedNode('http://www.w3.org/ns/shacl#PropertyShape'),\n /** A constraint component that can be used to verify that a specified maximum number of value nodes conforms to a given shape. */\n 'QualifiedMaxCountConstraintComponent': namedNode('http://www.w3.org/ns/shacl#QualifiedMaxCountConstraintComponent'),\n 'QualifiedMaxCountConstraintComponent_qualifiedMaxCount': namedNode('http://www.w3.org/ns/shacl#QualifiedMaxCountConstraintComponent-qualifiedMaxCount'),\n 'QualifiedMaxCountConstraintComponent_qualifiedValueShape': namedNode('http://www.w3.org/ns/shacl#QualifiedMaxCountConstraintComponent-qualifiedValueShape'),\n 'QualifiedMaxCountConstraintComponent_qualifiedValueShapesDisjoint': namedNode('http://www.w3.org/ns/shacl#QualifiedMaxCountConstraintComponent-qualifiedValueShapesDisjoint'),\n /** A constraint component that can be used to verify that a specified minimum number of value nodes conforms to a given shape. */\n 'QualifiedMinCountConstraintComponent': namedNode('http://www.w3.org/ns/shacl#QualifiedMinCountConstraintComponent'),\n 'QualifiedMinCountConstraintComponent_qualifiedMinCount': namedNode('http://www.w3.org/ns/shacl#QualifiedMinCountConstraintComponent-qualifiedMinCount'),\n 'QualifiedMinCountConstraintComponent_qualifiedValueShape': namedNode('http://www.w3.org/ns/shacl#QualifiedMinCountConstraintComponent-qualifiedValueShape'),\n 'QualifiedMinCountConstraintComponent_qualifiedValueShapesDisjoint': namedNode('http://www.w3.org/ns/shacl#QualifiedMinCountConstraintComponent-qualifiedValueShapesDisjoint'),\n /** A class of result annotations, which define the rules to derive the values of a given annotation property as extra values for a validation result. */\n 'ResultAnnotation': namedNode('http://www.w3.org/ns/shacl#ResultAnnotation'),\n /** The class of SHACL rules. Never instantiated directly. */\n 'Rule': namedNode('http://www.w3.org/ns/shacl#Rule'),\n /** The class of SPARQL executables that are based on an ASK query. */\n 'SPARQLAskExecutable': namedNode('http://www.w3.org/ns/shacl#SPARQLAskExecutable'),\n /** The class of validators based on SPARQL ASK queries. The queries are evaluated for each value node and are supposed to return true if the given node conforms. */\n 'SPARQLAskValidator': namedNode('http://www.w3.org/ns/shacl#SPARQLAskValidator'),\n /** The class of constraints based on SPARQL SELECT queries. */\n 'SPARQLConstraint': namedNode('http://www.w3.org/ns/shacl#SPARQLConstraint'),\n /** A constraint component that can be used to define constraints based on SPARQL queries. */\n 'SPARQLConstraintComponent': namedNode('http://www.w3.org/ns/shacl#SPARQLConstraintComponent'),\n 'SPARQLConstraintComponent_sparql': namedNode('http://www.w3.org/ns/shacl#SPARQLConstraintComponent-sparql'),\n /** The class of SPARQL executables that are based on a CONSTRUCT query. */\n 'SPARQLConstructExecutable': namedNode('http://www.w3.org/ns/shacl#SPARQLConstructExecutable'),\n /** The class of resources that encapsulate a SPARQL query. */\n 'SPARQLExecutable': namedNode('http://www.w3.org/ns/shacl#SPARQLExecutable'),\n /** A function backed by a SPARQL query - either ASK or SELECT. */\n 'SPARQLFunction': namedNode('http://www.w3.org/ns/shacl#SPARQLFunction'),\n /** The class of SHACL rules based on SPARQL CONSTRUCT queries. */\n 'SPARQLRule': namedNode('http://www.w3.org/ns/shacl#SPARQLRule'),\n /** The class of SPARQL executables based on a SELECT query. */\n 'SPARQLSelectExecutable': namedNode('http://www.w3.org/ns/shacl#SPARQLSelectExecutable'),\n /** The class of validators based on SPARQL SELECT queries. The queries are evaluated for each focus node and are supposed to produce bindings for all focus nodes that do not conform. */\n 'SPARQLSelectValidator': namedNode('http://www.w3.org/ns/shacl#SPARQLSelectValidator'),\n /** The class of targets that are based on SPARQL queries. */\n 'SPARQLTarget': namedNode('http://www.w3.org/ns/shacl#SPARQLTarget'),\n /** The (meta) class for parameterizable targets that are based on SPARQL queries. */\n 'SPARQLTargetType': namedNode('http://www.w3.org/ns/shacl#SPARQLTargetType'),\n /** The class of SPARQL executables based on a SPARQL UPDATE. */\n 'SPARQLUpdateExecutable': namedNode('http://www.w3.org/ns/shacl#SPARQLUpdateExecutable'),\n /** The class of validation result severity levels, including violation and warning levels. */\n 'Severity': namedNode('http://www.w3.org/ns/shacl#Severity'),\n /** A shape is a collection of constraints that may be targeted for certain nodes. */\n 'Shape': namedNode('http://www.w3.org/ns/shacl#Shape'),\n /** The base class of targets such as those based on SPARQL queries. */\n 'Target': namedNode('http://www.w3.org/ns/shacl#Target'),\n /** The (meta) class for parameterizable targets.\tInstances of this are instantiated as values of the sh:target property. */\n 'TargetType': namedNode('http://www.w3.org/ns/shacl#TargetType'),\n /** A rule based on triple (subject, predicate, object) pattern. */\n 'TripleRule': namedNode('http://www.w3.org/ns/shacl#TripleRule'),\n /** A constraint component that can be used to specify that no pair of value nodes may use the same language tag. */\n 'UniqueLangConstraintComponent': namedNode('http://www.w3.org/ns/shacl#UniqueLangConstraintComponent'),\n 'UniqueLangConstraintComponent_uniqueLang': namedNode('http://www.w3.org/ns/shacl#UniqueLangConstraintComponent-uniqueLang'),\n /** The class of SHACL validation reports. */\n 'ValidationReport': namedNode('http://www.w3.org/ns/shacl#ValidationReport'),\n /** The class of validation results. */\n 'ValidationResult': namedNode('http://www.w3.org/ns/shacl#ValidationResult'),\n /** The class of validators, which provide instructions on how to process a constraint definition. This class serves as base class for the SPARQL-based validators and other possible implementations. */\n 'Validator': namedNode('http://www.w3.org/ns/shacl#Validator'),\n /** The severity for a violation validation result. */\n 'Violation': namedNode('http://www.w3.org/ns/shacl#Violation'),\n /** The severity for a warning validation result. */\n 'Warning': namedNode('http://www.w3.org/ns/shacl#Warning'),\n /** A constraint component that can be used to restrict the value nodes so that they conform to exactly one out of several provided shapes. */\n 'XoneConstraintComponent': namedNode('http://www.w3.org/ns/shacl#XoneConstraintComponent'),\n 'XoneConstraintComponent_xone': namedNode('http://www.w3.org/ns/shacl#XoneConstraintComponent-xone'),\n /** The (single) value of this property must be a list of path elements, representing the elements of alternative paths. */\n 'alternativePath': namedNode('http://www.w3.org/ns/shacl#alternativePath'),\n /** RDF list of shapes to validate the value nodes against. */\n 'and': namedNode('http://www.w3.org/ns/shacl#and'),\n /** The annotation property that shall be set. */\n 'annotationProperty': namedNode('http://www.w3.org/ns/shacl#annotationProperty'),\n /** The (default) values of the annotation property. */\n 'annotationValue': namedNode('http://www.w3.org/ns/shacl#annotationValue'),\n /** The name of the SPARQL variable from the SELECT clause that shall be used for the values. */\n 'annotationVarName': namedNode('http://www.w3.org/ns/shacl#annotationVarName'),\n /** The SPARQL ASK query to execute. */\n 'ask': namedNode('http://www.w3.org/ns/shacl#ask'),\n /** The type that all value nodes must have. */\n 'class': namedNode('http://www.w3.org/ns/shacl#class'),\n /** If set to true then the shape is closed. */\n 'closed': namedNode('http://www.w3.org/ns/shacl#closed'),\n /** The shapes that the focus nodes need to conform to before a rule is executed on them. */\n 'condition': namedNode('http://www.w3.org/ns/shacl#condition'),\n /** True if the validation did not produce any validation results, and false otherwise. */\n 'conforms': namedNode('http://www.w3.org/ns/shacl#conforms'),\n /** The SPARQL CONSTRUCT query to execute. */\n 'construct': namedNode('http://www.w3.org/ns/shacl#construct'),\n /** Specifies an RDF datatype that all value nodes must have. */\n 'datatype': namedNode('http://www.w3.org/ns/shacl#datatype'),\n /** If set to true then all nodes conform to this. */\n 'deactivated': namedNode('http://www.w3.org/ns/shacl#deactivated'),\n /** Links a resource with its namespace prefix declarations. */\n 'declare': namedNode('http://www.w3.org/ns/shacl#declare'),\n /** A default value for a property, for example for user interface tools to pre-populate input fields. */\n 'defaultValue': namedNode('http://www.w3.org/ns/shacl#defaultValue'),\n /** Human-readable descriptions for the property in the context of the surrounding shape. */\n 'description': namedNode('http://www.w3.org/ns/shacl#description'),\n /** Links a result with other results that provide more details, for example to describe violations against nested shapes. */\n 'detail': namedNode('http://www.w3.org/ns/shacl#detail'),\n /** Specifies a property where the set of values must be disjoint with the value nodes. */\n 'disjoint': namedNode('http://www.w3.org/ns/shacl#disjoint'),\n /** An entailment regime that indicates what kind of inferencing is required by a shapes graph. */\n 'entailment': namedNode('http://www.w3.org/ns/shacl#entailment'),\n /** Specifies a property that must have the same values as the value nodes. */\n 'equals': namedNode('http://www.w3.org/ns/shacl#equals'),\n /** The node expression that must return true for the value nodes. */\n 'expression': namedNode('http://www.w3.org/ns/shacl#expression'),\n /** The shape that all input nodes of the expression need to conform to. */\n 'filterShape': namedNode('http://www.w3.org/ns/shacl#filterShape'),\n /** An optional flag to be used with regular expression pattern matching. */\n 'flags': namedNode('http://www.w3.org/ns/shacl#flags'),\n /** The focus node that was validated when the result was produced. */\n 'focusNode': namedNode('http://www.w3.org/ns/shacl#focusNode'),\n /** Can be used to link to a property group to indicate that a property shape belongs to a group of related property shapes. */\n 'group': namedNode('http://www.w3.org/ns/shacl#group'),\n /** Specifies a value that must be among the value nodes. */\n 'hasValue': namedNode('http://www.w3.org/ns/shacl#hasValue'),\n /** An optional RDF list of properties that are also permitted in addition to those explicitly enumerated via sh:property/sh:path. */\n 'ignoredProperties': namedNode('http://www.w3.org/ns/shacl#ignoredProperties'),\n /** Specifies a list of allowed values so that each value node must be among the members of the given list. */\n 'in': namedNode('http://www.w3.org/ns/shacl#in'),\n /** A list of node expressions that shall be intersected. */\n 'intersection': namedNode('http://www.w3.org/ns/shacl#intersection'),\n /** The (single) value of this property represents an inverse path (object to subject). */\n 'inversePath': namedNode('http://www.w3.org/ns/shacl#inversePath'),\n /** Constraints expressed in JavaScript. */\n 'js': namedNode('http://www.w3.org/ns/shacl#js'),\n /** The name of the JavaScript function to execute. */\n 'jsFunctionName': namedNode('http://www.w3.org/ns/shacl#jsFunctionName'),\n /** Declares which JavaScript libraries are needed to execute this. */\n 'jsLibrary': namedNode('http://www.w3.org/ns/shacl#jsLibrary'),\n /** Declares the URLs of a JavaScript library. This should be the absolute URL of a JavaScript file. Implementations may redirect those to local files. */\n 'jsLibraryURL': namedNode('http://www.w3.org/ns/shacl#jsLibraryURL'),\n /** Outlines how human-readable labels of instances of the associated Parameterizable shall be produced. The values can contain {?paramName} as placeholders for the actual values of the given parameter. */\n 'labelTemplate': namedNode('http://www.w3.org/ns/shacl#labelTemplate'),\n /** Specifies a list of language tags that all value nodes must have. */\n 'languageIn': namedNode('http://www.w3.org/ns/shacl#languageIn'),\n /** Specifies a property that must have smaller values than the value nodes. */\n 'lessThan': namedNode('http://www.w3.org/ns/shacl#lessThan'),\n /** Specifies a property that must have smaller or equal values than the value nodes. */\n 'lessThanOrEquals': namedNode('http://www.w3.org/ns/shacl#lessThanOrEquals'),\n /** Specifies the maximum number of values in the set of value nodes. */\n 'maxCount': namedNode('http://www.w3.org/ns/shacl#maxCount'),\n /** Specifies the maximum exclusive value of each value node. */\n 'maxExclusive': namedNode('http://www.w3.org/ns/shacl#maxExclusive'),\n /** Specifies the maximum inclusive value of each value node. */\n 'maxInclusive': namedNode('http://www.w3.org/ns/shacl#maxInclusive'),\n /** Specifies the maximum string length of each value node. */\n 'maxLength': namedNode('http://www.w3.org/ns/shacl#maxLength'),\n /** A human-readable message (possibly with placeholders for variables) explaining the cause of the result. */\n 'message': namedNode('http://www.w3.org/ns/shacl#message'),\n /** Specifies the minimum number of values in the set of value nodes. */\n 'minCount': namedNode('http://www.w3.org/ns/shacl#minCount'),\n /** Specifies the minimum exclusive value of each value node. */\n 'minExclusive': namedNode('http://www.w3.org/ns/shacl#minExclusive'),\n /** Specifies the minimum inclusive value of each value node. */\n 'minInclusive': namedNode('http://www.w3.org/ns/shacl#minInclusive'),\n /** Specifies the minimum string length of each value node. */\n 'minLength': namedNode('http://www.w3.org/ns/shacl#minLength'),\n /** Human-readable labels for the property in the context of the surrounding shape. */\n 'name': namedNode('http://www.w3.org/ns/shacl#name'),\n /** The namespace associated with a prefix in a prefix declaration. */\n 'namespace': namedNode('http://www.w3.org/ns/shacl#namespace'),\n /** Specifies the node shape that all value nodes must conform to. */\n 'node': namedNode('http://www.w3.org/ns/shacl#node'),\n /** Specifies the node kind (e.g. IRI or literal) each value node. */\n 'nodeKind': namedNode('http://www.w3.org/ns/shacl#nodeKind'),\n /** The validator(s) used to evaluate a constraint in the context of a node shape. */\n 'nodeValidator': namedNode('http://www.w3.org/ns/shacl#nodeValidator'),\n /** The node expression producing the input nodes of a filter shape expression. */\n 'nodes': namedNode('http://www.w3.org/ns/shacl#nodes'),\n /** Specifies a shape that the value nodes must not conform to. */\n 'not': namedNode('http://www.w3.org/ns/shacl#not'),\n /** An expression producing the nodes that shall be inferred as objects. */\n 'object': namedNode('http://www.w3.org/ns/shacl#object'),\n /** The (single) value of this property represents a path that is matched one or more times. */\n 'oneOrMorePath': namedNode('http://www.w3.org/ns/shacl#oneOrMorePath'),\n /** Indicates whether a parameter is optional. */\n 'optional': namedNode('http://www.w3.org/ns/shacl#optional'),\n /** Specifies a list of shapes so that the value nodes must conform to at least one of the shapes. */\n 'or': namedNode('http://www.w3.org/ns/shacl#or'),\n /** Specifies the relative order of this compared to its siblings. For example use 0 for the first, 1 for the second. */\n 'order': namedNode('http://www.w3.org/ns/shacl#order'),\n /** The parameters of a function or constraint component. */\n 'parameter': namedNode('http://www.w3.org/ns/shacl#parameter'),\n /** Specifies the property path of a property shape. */\n 'path': namedNode('http://www.w3.org/ns/shacl#path'),\n /** Specifies a regular expression pattern that the string representations of the value nodes must match. */\n 'pattern': namedNode('http://www.w3.org/ns/shacl#pattern'),\n /** An expression producing the properties that shall be inferred as predicates. */\n 'predicate': namedNode('http://www.w3.org/ns/shacl#predicate'),\n /** The prefix of a prefix declaration. */\n 'prefix': namedNode('http://www.w3.org/ns/shacl#prefix'),\n /** The prefixes that shall be applied before parsing the associated SPARQL query. */\n 'prefixes': namedNode('http://www.w3.org/ns/shacl#prefixes'),\n /** Links a shape to its property shapes. */\n 'property': namedNode('http://www.w3.org/ns/shacl#property'),\n /** The validator(s) used to evaluate a constraint in the context of a property shape. */\n 'propertyValidator': namedNode('http://www.w3.org/ns/shacl#propertyValidator'),\n /** The maximum number of value nodes that can conform to the shape. */\n 'qualifiedMaxCount': namedNode('http://www.w3.org/ns/shacl#qualifiedMaxCount'),\n /** The minimum number of value nodes that must conform to the shape. */\n 'qualifiedMinCount': namedNode('http://www.w3.org/ns/shacl#qualifiedMinCount'),\n /** The shape that a specified number of values must conform to. */\n 'qualifiedValueShape': namedNode('http://www.w3.org/ns/shacl#qualifiedValueShape'),\n /** Can be used to mark the qualified value shape to be disjoint with its sibling shapes. */\n 'qualifiedValueShapesDisjoint': namedNode('http://www.w3.org/ns/shacl#qualifiedValueShapesDisjoint'),\n /** The validation results contained in a validation report. */\n 'result': namedNode('http://www.w3.org/ns/shacl#result'),\n /** Links a SPARQL validator with zero or more sh:ResultAnnotation instances, defining how to derive additional result properties based on the variables of the SELECT query. */\n 'resultAnnotation': namedNode('http://www.w3.org/ns/shacl#resultAnnotation'),\n /** Human-readable messages explaining the cause of the result. */\n 'resultMessage': namedNode('http://www.w3.org/ns/shacl#resultMessage'),\n /** The path of a validation result, based on the path of the validated property shape. */\n 'resultPath': namedNode('http://www.w3.org/ns/shacl#resultPath'),\n /** The severity of the result, e.g. warning. */\n 'resultSeverity': namedNode('http://www.w3.org/ns/shacl#resultSeverity'),\n /** The expected type of values returned by the associated function. */\n 'returnType': namedNode('http://www.w3.org/ns/shacl#returnType'),\n /** The rules linked to a shape. */\n 'rule': namedNode('http://www.w3.org/ns/shacl#rule'),\n /** The SPARQL SELECT query to execute. */\n 'select': namedNode('http://www.w3.org/ns/shacl#select'),\n /** Defines the severity that validation results produced by a shape must have. Defaults to sh:Violation. */\n 'severity': namedNode('http://www.w3.org/ns/shacl#severity'),\n /** Shapes graphs that should be used when validating this data graph. */\n 'shapesGraph': namedNode('http://www.w3.org/ns/shacl#shapesGraph'),\n /** If true then the validation engine was certain that the shapes graph has passed all SHACL syntax requirements during the validation process. */\n 'shapesGraphWellFormed': namedNode('http://www.w3.org/ns/shacl#shapesGraphWellFormed'),\n /** The constraint that was validated when the result was produced. */\n 'sourceConstraint': namedNode('http://www.w3.org/ns/shacl#sourceConstraint'),\n /** The constraint component that is the source of the result. */\n 'sourceConstraintComponent': namedNode('http://www.w3.org/ns/shacl#sourceConstraintComponent'),\n /** The shape that is was validated when the result was produced. */\n 'sourceShape': namedNode('http://www.w3.org/ns/shacl#sourceShape'),\n /** Links a shape with SPARQL constraints. */\n 'sparql': namedNode('http://www.w3.org/ns/shacl#sparql'),\n /** An expression producing the resources that shall be inferred as subjects. */\n 'subject': namedNode('http://www.w3.org/ns/shacl#subject'),\n /** Suggested shapes graphs for this ontology. The values of this property may be used in the absence of specific sh:shapesGraph statements. */\n 'suggestedShapesGraph': namedNode('http://www.w3.org/ns/shacl#suggestedShapesGraph'),\n /** Links a shape to a target specified by an extension language, for example instances of sh:SPARQLTarget. */\n 'target': namedNode('http://www.w3.org/ns/shacl#target'),\n /** Links a shape to a class, indicating that all instances of the class must conform to the shape. */\n 'targetClass': namedNode('http://www.w3.org/ns/shacl#targetClass'),\n /** Links a shape to individual nodes, indicating that these nodes must conform to the shape. */\n 'targetNode': namedNode('http://www.w3.org/ns/shacl#targetNode'),\n /** Links a shape to a property, indicating that all all objects of triples that have the given property as their predicate must conform to the shape. */\n 'targetObjectsOf': namedNode('http://www.w3.org/ns/shacl#targetObjectsOf'),\n /** Links a shape to a property, indicating that all subjects of triples that have the given property as their predicate must conform to the shape. */\n 'targetSubjectsOf': namedNode('http://www.w3.org/ns/shacl#targetSubjectsOf'),\n /** A node expression that represents the current focus node. */\n 'this': namedNode('http://www.w3.org/ns/shacl#this'),\n /** A list of node expressions that shall be used together. */\n 'union': namedNode('http://www.w3.org/ns/shacl#union'),\n /** Specifies whether all node values must have a unique (or no) language tag. */\n 'uniqueLang': namedNode('http://www.w3.org/ns/shacl#uniqueLang'),\n /** The SPARQL UPDATE to execute. */\n 'update': namedNode('http://www.w3.org/ns/shacl#update'),\n /** The validator(s) used to evaluate constraints of either node or property shapes. */\n 'validator': namedNode('http://www.w3.org/ns/shacl#validator'),\n /** An RDF node that has caused the result. */\n 'value': namedNode('http://www.w3.org/ns/shacl#value'),\n /** Specifies a list of shapes so that the value nodes must conform to exactly one of the shapes. */\n 'xone': namedNode('http://www.w3.org/ns/shacl#xone'),\n /** The (single) value of this property represents a path that is matched zero or more times. */\n 'zeroOrMorePath': namedNode('http://www.w3.org/ns/shacl#zeroOrMorePath'),\n /** The (single) value of this property represents a path that is matched zero or one times. */\n 'zeroOrOnePath': namedNode('http://www.w3.org/ns/shacl#zeroOrOnePath'),\n};\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/ontologies/sh.ts?");
|
|
801
1143
|
|
|
802
1144
|
/***/ }),
|
|
803
1145
|
|
|
@@ -808,7 +1150,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
808
1150
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
809
1151
|
|
|
810
1152
|
"use strict";
|
|
811
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.skos_xl = exports._skos_xl = exports.SKOS_XL = exports._SKOS_XL = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\n/** Namespace URI of the SKOS_XL vocabulary. */\nexports._SKOS_XL = 'http://www.w3.org/2008/05/skos-xl#';\nexports.SKOS_XL = {\n 'skos_xl': 'http://www.w3.org/2008/05/skos-xl',\n /** A special class of lexical entities. */\n 'Label': 'http://www.w3.org/2008/05/skos-xl#Label',\n /** The property skosxl:altLabel is used to associate an skosxl:Label with a skos:Concept. The property is analogous to skos:altLabel. */\n 'altLabel': 'http://www.w3.org/2008/05/skos-xl#altLabel',\n /** The property skosxl:hiddenLabel is used to associate an skosxl:Label with a skos:Concept. The property is analogous to skos:hiddenLabel. */\n 'hiddenLabel': 'http://www.w3.org/2008/05/skos-xl#hiddenLabel',\n /** The property skosxl:labelRelation is used for representing binary ('direct') relations between instances of the class skosxl:Label. */\n 'labelRelation': 'http://www.w3.org/2008/05/skos-xl#labelRelation',\n /** The property skosxl:literalForm is used to give the literal form of an skosxl:Label. */\n 'literalForm': 'http://www.w3.org/2008/05/skos-xl#literalForm',\n /** The property skosxl:prefLabel is used to associate an skosxl:Label with a skos:Concept. The property is analogous to skos:prefLabel. */\n 'prefLabel': 'http://www.w3.org/2008/05/skos-xl#prefLabel',\n};\n/** Namespace URI of the skos_xl vocabulary. */\nexports._skos_xl =
|
|
1153
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.skos_xl = exports._skos_xl = exports.SKOS_XL = exports._SKOS_XL = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst { namedNode } = n3.DataFactory;\n/** Namespace URI of the SKOS_XL vocabulary. */\nexports._SKOS_XL = 'http://www.w3.org/2008/05/skos-xl#';\nexports.SKOS_XL = {\n 'skos_xl': 'http://www.w3.org/2008/05/skos-xl',\n /** A special class of lexical entities. */\n 'Label': 'http://www.w3.org/2008/05/skos-xl#Label',\n /** The property skosxl:altLabel is used to associate an skosxl:Label with a skos:Concept. The property is analogous to skos:altLabel. */\n 'altLabel': 'http://www.w3.org/2008/05/skos-xl#altLabel',\n /** The property skosxl:hiddenLabel is used to associate an skosxl:Label with a skos:Concept. The property is analogous to skos:hiddenLabel. */\n 'hiddenLabel': 'http://www.w3.org/2008/05/skos-xl#hiddenLabel',\n /** The property skosxl:labelRelation is used for representing binary ('direct') relations between instances of the class skosxl:Label. */\n 'labelRelation': 'http://www.w3.org/2008/05/skos-xl#labelRelation',\n /** The property skosxl:literalForm is used to give the literal form of an skosxl:Label. */\n 'literalForm': 'http://www.w3.org/2008/05/skos-xl#literalForm',\n /** The property skosxl:prefLabel is used to associate an skosxl:Label with a skos:Concept. The property is analogous to skos:prefLabel. */\n 'prefLabel': 'http://www.w3.org/2008/05/skos-xl#prefLabel',\n};\n/** Namespace URI of the skos_xl vocabulary. */\nexports._skos_xl = namedNode('http://www.w3.org/2008/05/skos-xl#');\nexports.skos_xl = {\n 'skos_xl': namedNode('http://www.w3.org/2008/05/skos-xl'),\n /** A special class of lexical entities. */\n 'Label': namedNode('http://www.w3.org/2008/05/skos-xl#Label'),\n /** The property skosxl:altLabel is used to associate an skosxl:Label with a skos:Concept. The property is analogous to skos:altLabel. */\n 'altLabel': namedNode('http://www.w3.org/2008/05/skos-xl#altLabel'),\n /** The property skosxl:hiddenLabel is used to associate an skosxl:Label with a skos:Concept. The property is analogous to skos:hiddenLabel. */\n 'hiddenLabel': namedNode('http://www.w3.org/2008/05/skos-xl#hiddenLabel'),\n /** The property skosxl:labelRelation is used for representing binary ('direct') relations between instances of the class skosxl:Label. */\n 'labelRelation': namedNode('http://www.w3.org/2008/05/skos-xl#labelRelation'),\n /** The property skosxl:literalForm is used to give the literal form of an skosxl:Label. */\n 'literalForm': namedNode('http://www.w3.org/2008/05/skos-xl#literalForm'),\n /** The property skosxl:prefLabel is used to associate an skosxl:Label with a skos:Concept. The property is analogous to skos:prefLabel. */\n 'prefLabel': namedNode('http://www.w3.org/2008/05/skos-xl#prefLabel'),\n};\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/ontologies/skos-xl.ts?");
|
|
812
1154
|
|
|
813
1155
|
/***/ }),
|
|
814
1156
|
|
|
@@ -819,7 +1161,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
819
1161
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
820
1162
|
|
|
821
1163
|
"use strict";
|
|
822
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.skos = exports._skos = exports.SKOS = exports._SKOS = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\n/** Namespace URI of the SKOS vocabulary. */\nexports._SKOS = 'http://www.w3.org/2004/02/skos/core#';\nexports.SKOS = {\n 'core': 'http://www.w3.org/2004/02/skos/core',\n /** A meaningful collection of concepts. */\n 'Collection': 'http://www.w3.org/2004/02/skos/core#Collection',\n /** An idea or notion; a unit of thought. */\n 'Concept': 'http://www.w3.org/2004/02/skos/core#Concept',\n /** A set of concepts, optionally including statements about semantic relationships between those concepts. */\n 'ConceptScheme': 'http://www.w3.org/2004/02/skos/core#ConceptScheme',\n /** An ordered collection of concepts, where both the grouping and the ordering are meaningful. */\n 'OrderedCollection': 'http://www.w3.org/2004/02/skos/core#OrderedCollection',\n /** An alternative lexical label for a resource. */\n 'altLabel': 'http://www.w3.org/2004/02/skos/core#altLabel',\n /** skos:broadMatch is used to state a hierarchical mapping link between two conceptual resources in different concept schemes. */\n 'broadMatch': 'http://www.w3.org/2004/02/skos/core#broadMatch',\n /** Relates a concept to a concept that is more general in meaning. */\n 'broader': 'http://www.w3.org/2004/02/skos/core#broader',\n /** By convention, skos:broaderTransitive is not used to make assertions. Rather, the properties can be used to draw inferences about the transitive closure of the hierarchical relation, which is useful e.g. when implementing a simple query expansion algorithm in a search application. */\n 'broaderTransitive': 'http://www.w3.org/2004/02/skos/core#broaderTransitive',\n /** A note about a modification to a concept. */\n 'changeNote': 'http://www.w3.org/2004/02/skos/core#changeNote',\n /** skos:closeMatch is used to link two concepts that are sufficiently similar that they can be used interchangeably in some information retrieval applications. In order to avoid the possibility of \"compound errors\" when combining mappings across more than two concept schemes, skos:closeMatch is not declared to be a transitive property. */\n 'closeMatch': 'http://www.w3.org/2004/02/skos/core#closeMatch',\n /** A statement or formal explanation of the meaning of a concept. */\n 'definition': 'http://www.w3.org/2004/02/skos/core#definition',\n /** A note for an editor, translator or maintainer of the vocabulary. */\n 'editorialNote': 'http://www.w3.org/2004/02/skos/core#editorialNote',\n /** skos:exactMatch is used to link two concepts, indicating a high degree of confidence that the concepts can be used interchangeably across a wide range of information retrieval applications. skos:exactMatch is a transitive property, and is a sub-property of skos:closeMatch. */\n 'exactMatch': 'http://www.w3.org/2004/02/skos/core#exactMatch',\n /** An example of the use of a concept. */\n 'example': 'http://www.w3.org/2004/02/skos/core#example',\n /** Relates, by convention, a concept scheme to a concept which is topmost in the broader/narrower concept hierarchies for that scheme, providing an entry point to these hierarchies. */\n 'hasTopConcept': 'http://www.w3.org/2004/02/skos/core#hasTopConcept',\n /** A lexical label for a resource that should be hidden when generating visual displays of the resource, but should still be accessible to free text search operations. */\n 'hiddenLabel': 'http://www.w3.org/2004/02/skos/core#hiddenLabel',\n /** A note about the past state/use/meaning of a concept. */\n 'historyNote': 'http://www.w3.org/2004/02/skos/core#historyNote',\n /** Relates a resource (for example a concept) to a concept scheme in which it is included. */\n 'inScheme': 'http://www.w3.org/2004/02/skos/core#inScheme',\n /** Relates two concepts coming, by convention, from different schemes, and that have comparable meanings */\n 'mappingRelation': 'http://www.w3.org/2004/02/skos/core#mappingRelation',\n /** Relates a collection to one of its members. */\n 'member': 'http://www.w3.org/2004/02/skos/core#member',\n /** Relates an ordered collection to the RDF list containing its members. */\n 'memberList': 'http://www.w3.org/2004/02/skos/core#memberList',\n /** skos:narrowMatch is used to state a hierarchical mapping link between two conceptual resources in different concept schemes. */\n 'narrowMatch': 'http://www.w3.org/2004/02/skos/core#narrowMatch',\n /** Relates a concept to a concept that is more specific in meaning. */\n 'narrower': 'http://www.w3.org/2004/02/skos/core#narrower',\n /** By convention, skos:narrowerTransitive is not used to make assertions. Rather, the properties can be used to draw inferences about the transitive closure of the hierarchical relation, which is useful e.g. when implementing a simple query expansion algorithm in a search application. */\n 'narrowerTransitive': 'http://www.w3.org/2004/02/skos/core#narrowerTransitive',\n /** A notation, also known as classification code, is a string of characters such as \"T58.5\" or \"303.4833\" used to uniquely identify a concept within the scope of a given concept scheme. */\n 'notation': 'http://www.w3.org/2004/02/skos/core#notation',\n /** A general note, for any purpose. */\n 'note': 'http://www.w3.org/2004/02/skos/core#note',\n /** The preferred lexical label for a resource, in a given language. */\n 'prefLabel': 'http://www.w3.org/2004/02/skos/core#prefLabel',\n /** Relates a concept to a concept with which there is an associative semantic relationship. */\n 'related': 'http://www.w3.org/2004/02/skos/core#related',\n /** skos:relatedMatch is used to state an associative mapping link between two conceptual resources in different concept schemes. */\n 'relatedMatch': 'http://www.w3.org/2004/02/skos/core#relatedMatch',\n /** A note that helps to clarify the meaning and/or the use of a concept. */\n 'scopeNote': 'http://www.w3.org/2004/02/skos/core#scopeNote',\n /** Links a concept to a concept related by meaning. */\n 'semanticRelation': 'http://www.w3.org/2004/02/skos/core#semanticRelation',\n /** Relates a concept to the concept scheme that it is a top level concept of. */\n 'topConceptOf': 'http://www.w3.org/2004/02/skos/core#topConceptOf',\n};\n/** Namespace URI of the skos vocabulary. */\nexports._skos = new n3.NamedNode('http://www.w3.org/2004/02/skos/core#');\nexports.skos = {\n 'core': new n3.NamedNode('http://www.w3.org/2004/02/skos/core'),\n /** A meaningful collection of concepts. */\n 'Collection': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#Collection'),\n /** An idea or notion; a unit of thought. */\n 'Concept': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#Concept'),\n /** A set of concepts, optionally including statements about semantic relationships between those concepts. */\n 'ConceptScheme': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#ConceptScheme'),\n /** An ordered collection of concepts, where both the grouping and the ordering are meaningful. */\n 'OrderedCollection': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#OrderedCollection'),\n /** An alternative lexical label for a resource. */\n 'altLabel': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#altLabel'),\n /** skos:broadMatch is used to state a hierarchical mapping link between two conceptual resources in different concept schemes. */\n 'broadMatch': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#broadMatch'),\n /** Relates a concept to a concept that is more general in meaning. */\n 'broader': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#broader'),\n /** By convention, skos:broaderTransitive is not used to make assertions. Rather, the properties can be used to draw inferences about the transitive closure of the hierarchical relation, which is useful e.g. when implementing a simple query expansion algorithm in a search application. */\n 'broaderTransitive': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#broaderTransitive'),\n /** A note about a modification to a concept. */\n 'changeNote': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#changeNote'),\n /** skos:closeMatch is used to link two concepts that are sufficiently similar that they can be used interchangeably in some information retrieval applications. In order to avoid the possibility of \"compound errors\" when combining mappings across more than two concept schemes, skos:closeMatch is not declared to be a transitive property. */\n 'closeMatch': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#closeMatch'),\n /** A statement or formal explanation of the meaning of a concept. */\n 'definition': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#definition'),\n /** A note for an editor, translator or maintainer of the vocabulary. */\n 'editorialNote': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#editorialNote'),\n /** skos:exactMatch is used to link two concepts, indicating a high degree of confidence that the concepts can be used interchangeably across a wide range of information retrieval applications. skos:exactMatch is a transitive property, and is a sub-property of skos:closeMatch. */\n 'exactMatch': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#exactMatch'),\n /** An example of the use of a concept. */\n 'example': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#example'),\n /** Relates, by convention, a concept scheme to a concept which is topmost in the broader/narrower concept hierarchies for that scheme, providing an entry point to these hierarchies. */\n 'hasTopConcept': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#hasTopConcept'),\n /** A lexical label for a resource that should be hidden when generating visual displays of the resource, but should still be accessible to free text search operations. */\n 'hiddenLabel': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#hiddenLabel'),\n /** A note about the past state/use/meaning of a concept. */\n 'historyNote': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#historyNote'),\n /** Relates a resource (for example a concept) to a concept scheme in which it is included. */\n 'inScheme': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#inScheme'),\n /** Relates two concepts coming, by convention, from different schemes, and that have comparable meanings */\n 'mappingRelation': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#mappingRelation'),\n /** Relates a collection to one of its members. */\n 'member': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#member'),\n /** Relates an ordered collection to the RDF list containing its members. */\n 'memberList': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#memberList'),\n /** skos:narrowMatch is used to state a hierarchical mapping link between two conceptual resources in different concept schemes. */\n 'narrowMatch': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#narrowMatch'),\n /** Relates a concept to a concept that is more specific in meaning. */\n 'narrower': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#narrower'),\n /** By convention, skos:narrowerTransitive is not used to make assertions. Rather, the properties can be used to draw inferences about the transitive closure of the hierarchical relation, which is useful e.g. when implementing a simple query expansion algorithm in a search application. */\n 'narrowerTransitive': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#narrowerTransitive'),\n /** A notation, also known as classification code, is a string of characters such as \"T58.5\" or \"303.4833\" used to uniquely identify a concept within the scope of a given concept scheme. */\n 'notation': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#notation'),\n /** A general note, for any purpose. */\n 'note': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#note'),\n /** The preferred lexical label for a resource, in a given language. */\n 'prefLabel': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#prefLabel'),\n /** Relates a concept to a concept with which there is an associative semantic relationship. */\n 'related': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#related'),\n /** skos:relatedMatch is used to state an associative mapping link between two conceptual resources in different concept schemes. */\n 'relatedMatch': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#relatedMatch'),\n /** A note that helps to clarify the meaning and/or the use of a concept. */\n 'scopeNote': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#scopeNote'),\n /** Links a concept to a concept related by meaning. */\n 'semanticRelation': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#semanticRelation'),\n /** Relates a concept to the concept scheme that it is a top level concept of. */\n 'topConceptOf': new n3.NamedNode('http://www.w3.org/2004/02/skos/core#topConceptOf'),\n};\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/ontologies/skos.ts?");
|
|
1164
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.skos = exports._skos = exports.SKOS = exports._SKOS = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst { namedNode } = n3.DataFactory;\n/** Namespace URI of the SKOS vocabulary. */\nexports._SKOS = 'http://www.w3.org/2004/02/skos/core#';\nexports.SKOS = {\n 'core': 'http://www.w3.org/2004/02/skos/core',\n /** A meaningful collection of concepts. */\n 'Collection': 'http://www.w3.org/2004/02/skos/core#Collection',\n /** An idea or notion; a unit of thought. */\n 'Concept': 'http://www.w3.org/2004/02/skos/core#Concept',\n /** A set of concepts, optionally including statements about semantic relationships between those concepts. */\n 'ConceptScheme': 'http://www.w3.org/2004/02/skos/core#ConceptScheme',\n /** An ordered collection of concepts, where both the grouping and the ordering are meaningful. */\n 'OrderedCollection': 'http://www.w3.org/2004/02/skos/core#OrderedCollection',\n /** An alternative lexical label for a resource. */\n 'altLabel': 'http://www.w3.org/2004/02/skos/core#altLabel',\n /** skos:broadMatch is used to state a hierarchical mapping link between two conceptual resources in different concept schemes. */\n 'broadMatch': 'http://www.w3.org/2004/02/skos/core#broadMatch',\n /** Relates a concept to a concept that is more general in meaning. */\n 'broader': 'http://www.w3.org/2004/02/skos/core#broader',\n /** By convention, skos:broaderTransitive is not used to make assertions. Rather, the properties can be used to draw inferences about the transitive closure of the hierarchical relation, which is useful e.g. when implementing a simple query expansion algorithm in a search application. */\n 'broaderTransitive': 'http://www.w3.org/2004/02/skos/core#broaderTransitive',\n /** A note about a modification to a concept. */\n 'changeNote': 'http://www.w3.org/2004/02/skos/core#changeNote',\n /** skos:closeMatch is used to link two concepts that are sufficiently similar that they can be used interchangeably in some information retrieval applications. In order to avoid the possibility of \"compound errors\" when combining mappings across more than two concept schemes, skos:closeMatch is not declared to be a transitive property. */\n 'closeMatch': 'http://www.w3.org/2004/02/skos/core#closeMatch',\n /** A statement or formal explanation of the meaning of a concept. */\n 'definition': 'http://www.w3.org/2004/02/skos/core#definition',\n /** A note for an editor, translator or maintainer of the vocabulary. */\n 'editorialNote': 'http://www.w3.org/2004/02/skos/core#editorialNote',\n /** skos:exactMatch is used to link two concepts, indicating a high degree of confidence that the concepts can be used interchangeably across a wide range of information retrieval applications. skos:exactMatch is a transitive property, and is a sub-property of skos:closeMatch. */\n 'exactMatch': 'http://www.w3.org/2004/02/skos/core#exactMatch',\n /** An example of the use of a concept. */\n 'example': 'http://www.w3.org/2004/02/skos/core#example',\n /** Relates, by convention, a concept scheme to a concept which is topmost in the broader/narrower concept hierarchies for that scheme, providing an entry point to these hierarchies. */\n 'hasTopConcept': 'http://www.w3.org/2004/02/skos/core#hasTopConcept',\n /** A lexical label for a resource that should be hidden when generating visual displays of the resource, but should still be accessible to free text search operations. */\n 'hiddenLabel': 'http://www.w3.org/2004/02/skos/core#hiddenLabel',\n /** A note about the past state/use/meaning of a concept. */\n 'historyNote': 'http://www.w3.org/2004/02/skos/core#historyNote',\n /** Relates a resource (for example a concept) to a concept scheme in which it is included. */\n 'inScheme': 'http://www.w3.org/2004/02/skos/core#inScheme',\n /** Relates two concepts coming, by convention, from different schemes, and that have comparable meanings */\n 'mappingRelation': 'http://www.w3.org/2004/02/skos/core#mappingRelation',\n /** Relates a collection to one of its members. */\n 'member': 'http://www.w3.org/2004/02/skos/core#member',\n /** Relates an ordered collection to the RDF list containing its members. */\n 'memberList': 'http://www.w3.org/2004/02/skos/core#memberList',\n /** skos:narrowMatch is used to state a hierarchical mapping link between two conceptual resources in different concept schemes. */\n 'narrowMatch': 'http://www.w3.org/2004/02/skos/core#narrowMatch',\n /** Relates a concept to a concept that is more specific in meaning. */\n 'narrower': 'http://www.w3.org/2004/02/skos/core#narrower',\n /** By convention, skos:narrowerTransitive is not used to make assertions. Rather, the properties can be used to draw inferences about the transitive closure of the hierarchical relation, which is useful e.g. when implementing a simple query expansion algorithm in a search application. */\n 'narrowerTransitive': 'http://www.w3.org/2004/02/skos/core#narrowerTransitive',\n /** A notation, also known as classification code, is a string of characters such as \"T58.5\" or \"303.4833\" used to uniquely identify a concept within the scope of a given concept scheme. */\n 'notation': 'http://www.w3.org/2004/02/skos/core#notation',\n /** A general note, for any purpose. */\n 'note': 'http://www.w3.org/2004/02/skos/core#note',\n /** The preferred lexical label for a resource, in a given language. */\n 'prefLabel': 'http://www.w3.org/2004/02/skos/core#prefLabel',\n /** Relates a concept to a concept with which there is an associative semantic relationship. */\n 'related': 'http://www.w3.org/2004/02/skos/core#related',\n /** skos:relatedMatch is used to state an associative mapping link between two conceptual resources in different concept schemes. */\n 'relatedMatch': 'http://www.w3.org/2004/02/skos/core#relatedMatch',\n /** A note that helps to clarify the meaning and/or the use of a concept. */\n 'scopeNote': 'http://www.w3.org/2004/02/skos/core#scopeNote',\n /** Links a concept to a concept related by meaning. */\n 'semanticRelation': 'http://www.w3.org/2004/02/skos/core#semanticRelation',\n /** Relates a concept to the concept scheme that it is a top level concept of. */\n 'topConceptOf': 'http://www.w3.org/2004/02/skos/core#topConceptOf',\n};\n/** Namespace URI of the skos vocabulary. */\nexports._skos = namedNode('http://www.w3.org/2004/02/skos/core#');\nexports.skos = {\n 'core': namedNode('http://www.w3.org/2004/02/skos/core'),\n /** A meaningful collection of concepts. */\n 'Collection': namedNode('http://www.w3.org/2004/02/skos/core#Collection'),\n /** An idea or notion; a unit of thought. */\n 'Concept': namedNode('http://www.w3.org/2004/02/skos/core#Concept'),\n /** A set of concepts, optionally including statements about semantic relationships between those concepts. */\n 'ConceptScheme': namedNode('http://www.w3.org/2004/02/skos/core#ConceptScheme'),\n /** An ordered collection of concepts, where both the grouping and the ordering are meaningful. */\n 'OrderedCollection': namedNode('http://www.w3.org/2004/02/skos/core#OrderedCollection'),\n /** An alternative lexical label for a resource. */\n 'altLabel': namedNode('http://www.w3.org/2004/02/skos/core#altLabel'),\n /** skos:broadMatch is used to state a hierarchical mapping link between two conceptual resources in different concept schemes. */\n 'broadMatch': namedNode('http://www.w3.org/2004/02/skos/core#broadMatch'),\n /** Relates a concept to a concept that is more general in meaning. */\n 'broader': namedNode('http://www.w3.org/2004/02/skos/core#broader'),\n /** By convention, skos:broaderTransitive is not used to make assertions. Rather, the properties can be used to draw inferences about the transitive closure of the hierarchical relation, which is useful e.g. when implementing a simple query expansion algorithm in a search application. */\n 'broaderTransitive': namedNode('http://www.w3.org/2004/02/skos/core#broaderTransitive'),\n /** A note about a modification to a concept. */\n 'changeNote': namedNode('http://www.w3.org/2004/02/skos/core#changeNote'),\n /** skos:closeMatch is used to link two concepts that are sufficiently similar that they can be used interchangeably in some information retrieval applications. In order to avoid the possibility of \"compound errors\" when combining mappings across more than two concept schemes, skos:closeMatch is not declared to be a transitive property. */\n 'closeMatch': namedNode('http://www.w3.org/2004/02/skos/core#closeMatch'),\n /** A statement or formal explanation of the meaning of a concept. */\n 'definition': namedNode('http://www.w3.org/2004/02/skos/core#definition'),\n /** A note for an editor, translator or maintainer of the vocabulary. */\n 'editorialNote': namedNode('http://www.w3.org/2004/02/skos/core#editorialNote'),\n /** skos:exactMatch is used to link two concepts, indicating a high degree of confidence that the concepts can be used interchangeably across a wide range of information retrieval applications. skos:exactMatch is a transitive property, and is a sub-property of skos:closeMatch. */\n 'exactMatch': namedNode('http://www.w3.org/2004/02/skos/core#exactMatch'),\n /** An example of the use of a concept. */\n 'example': namedNode('http://www.w3.org/2004/02/skos/core#example'),\n /** Relates, by convention, a concept scheme to a concept which is topmost in the broader/narrower concept hierarchies for that scheme, providing an entry point to these hierarchies. */\n 'hasTopConcept': namedNode('http://www.w3.org/2004/02/skos/core#hasTopConcept'),\n /** A lexical label for a resource that should be hidden when generating visual displays of the resource, but should still be accessible to free text search operations. */\n 'hiddenLabel': namedNode('http://www.w3.org/2004/02/skos/core#hiddenLabel'),\n /** A note about the past state/use/meaning of a concept. */\n 'historyNote': namedNode('http://www.w3.org/2004/02/skos/core#historyNote'),\n /** Relates a resource (for example a concept) to a concept scheme in which it is included. */\n 'inScheme': namedNode('http://www.w3.org/2004/02/skos/core#inScheme'),\n /** Relates two concepts coming, by convention, from different schemes, and that have comparable meanings */\n 'mappingRelation': namedNode('http://www.w3.org/2004/02/skos/core#mappingRelation'),\n /** Relates a collection to one of its members. */\n 'member': namedNode('http://www.w3.org/2004/02/skos/core#member'),\n /** Relates an ordered collection to the RDF list containing its members. */\n 'memberList': namedNode('http://www.w3.org/2004/02/skos/core#memberList'),\n /** skos:narrowMatch is used to state a hierarchical mapping link between two conceptual resources in different concept schemes. */\n 'narrowMatch': namedNode('http://www.w3.org/2004/02/skos/core#narrowMatch'),\n /** Relates a concept to a concept that is more specific in meaning. */\n 'narrower': namedNode('http://www.w3.org/2004/02/skos/core#narrower'),\n /** By convention, skos:narrowerTransitive is not used to make assertions. Rather, the properties can be used to draw inferences about the transitive closure of the hierarchical relation, which is useful e.g. when implementing a simple query expansion algorithm in a search application. */\n 'narrowerTransitive': namedNode('http://www.w3.org/2004/02/skos/core#narrowerTransitive'),\n /** A notation, also known as classification code, is a string of characters such as \"T58.5\" or \"303.4833\" used to uniquely identify a concept within the scope of a given concept scheme. */\n 'notation': namedNode('http://www.w3.org/2004/02/skos/core#notation'),\n /** A general note, for any purpose. */\n 'note': namedNode('http://www.w3.org/2004/02/skos/core#note'),\n /** The preferred lexical label for a resource, in a given language. */\n 'prefLabel': namedNode('http://www.w3.org/2004/02/skos/core#prefLabel'),\n /** Relates a concept to a concept with which there is an associative semantic relationship. */\n 'related': namedNode('http://www.w3.org/2004/02/skos/core#related'),\n /** skos:relatedMatch is used to state an associative mapping link between two conceptual resources in different concept schemes. */\n 'relatedMatch': namedNode('http://www.w3.org/2004/02/skos/core#relatedMatch'),\n /** A note that helps to clarify the meaning and/or the use of a concept. */\n 'scopeNote': namedNode('http://www.w3.org/2004/02/skos/core#scopeNote'),\n /** Links a concept to a concept related by meaning. */\n 'semanticRelation': namedNode('http://www.w3.org/2004/02/skos/core#semanticRelation'),\n /** Relates a concept to the concept scheme that it is a top level concept of. */\n 'topConceptOf': namedNode('http://www.w3.org/2004/02/skos/core#topConceptOf'),\n};\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/ontologies/skos.ts?");
|
|
823
1165
|
|
|
824
1166
|
/***/ }),
|
|
825
1167
|
|
|
@@ -830,7 +1172,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
830
1172
|
/***/ ((__unused_webpack_module, exports) => {
|
|
831
1173
|
|
|
832
1174
|
"use strict";
|
|
833
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.xsd = exports.skos = exports.skos_xl = exports.sh = exports.rdfs = exports.rdfa = exports.rdf = exports.owl = void 0;\nexports.owl = `@prefix dc: <http://purl.org/dc/elements/1.1/> .\n@prefix grddl: <http://www.w3.org/2003/g/data-view#> .\n@prefix owl: <http://www.w3.org/2002/07/owl#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n@prefix xml: <http://www.w3.org/XML/1998/namespace> .\n@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .\n\n<http://www.w3.org/2002/07/owl#> a owl:Ontology ;\n dc:title \"The OWL 2 Schema vocabulary (OWL 2)\" ;\n rdfs:comment \"\"\"\n This ontology partially describes the built-in classes and\n properties that together form the basis of the RDF/XML syntax of OWL 2.\n The content of this ontology is based on Tables 6.1 and 6.2\n in Section 6.4 of the OWL 2 RDF-Based Semantics specification,\n available at http://www.w3.org/TR/owl2-rdf-based-semantics/.\n Please note that those tables do not include the different annotations\n (labels, comments and rdfs:isDefinedBy links) used in this file.\n Also note that the descriptions provided in this ontology do not\n provide a complete and correct formal description of either the syntax\n or the semantics of the introduced terms (please see the OWL 2\n recommendations for the complete and normative specifications).\n Furthermore, the information provided by this ontology may be\n misleading if not used with care. This ontology SHOULD NOT be imported\n into OWL ontologies. Importing this file into an OWL 2 DL ontology\n will cause it to become an OWL 2 Full ontology and may have other,\n unexpected, consequences.\n \"\"\" ;\n rdfs:isDefinedBy\n <http://www.w3.org/TR/owl2-mapping-to-rdf/>,\n <http://www.w3.org/TR/owl2-rdf-based-semantics/>,\n <http://www.w3.org/TR/owl2-syntax/> ;\n rdfs:seeAlso <http://www.w3.org/TR/owl2-rdf-based-semantics/#table-axiomatic-classes>,\n <http://www.w3.org/TR/owl2-rdf-based-semantics/#table-axiomatic-properties> ;\n owl:imports <http://www.w3.org/2000/01/rdf-schema> ;\n owl:versionIRI <http://www.w3.org/2002/07/owl> ;\n owl:versionInfo \"$Date: 2009/11/15 10:54:12 $\" ;\n grddl:namespaceTransformation <http://dev.w3.org/cvsweb/2009/owl-grddl/owx2rdf.xsl> . \n\n\nowl:AllDifferent a rdfs:Class ;\n rdfs:label \"AllDifferent\" ;\n rdfs:comment \"The class of collections of pairwise different individuals.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdfs:Resource . \n\nowl:AllDisjointClasses a rdfs:Class ;\n rdfs:label \"AllDisjointClasses\" ;\n rdfs:comment \"The class of collections of pairwise disjoint classes.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdfs:Resource . \n\nowl:AllDisjointProperties a rdfs:Class ;\n rdfs:label \"AllDisjointProperties\" ;\n rdfs:comment \"The class of collections of pairwise disjoint properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdfs:Resource . \n\nowl:Annotation a rdfs:Class ;\n rdfs:label \"Annotation\" ;\n rdfs:comment \"The class of annotated annotations for which the RDF serialization consists of an annotated subject, predicate and object.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdfs:Resource . \n\nowl:AnnotationProperty a rdfs:Class ;\n rdfs:label \"AnnotationProperty\" ;\n rdfs:comment \"The class of annotation properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdf:Property .\n\nowl:AsymmetricProperty a rdfs:Class ;\n rdfs:label \"AsymmetricProperty\" ;\n rdfs:comment \"The class of asymmetric properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf owl:ObjectProperty . \n\nowl:Axiom a rdfs:Class ;\n rdfs:label \"Axiom\" ;\n rdfs:comment \"The class of annotated axioms for which the RDF serialization consists of an annotated subject, predicate and object.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdfs:Resource . \n\nowl:Class a rdfs:Class ;\n rdfs:label \"Class\" ;\n rdfs:comment \"The class of OWL classes.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdfs:Class . \n\nowl:DataRange a rdfs:Class ;\n rdfs:label \"DataRange\" ;\n rdfs:comment \"The class of OWL data ranges, which are special kinds of datatypes. Note: The use of the IRI owl:DataRange has been deprecated as of OWL 2. The IRI rdfs:Datatype SHOULD be used instead.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdfs:Datatype . \n\nowl:DatatypeProperty a rdfs:Class ;\n rdfs:label \"DatatypeProperty\" ;\n rdfs:comment \"The class of data properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdf:Property . \n\nowl:DeprecatedClass a rdfs:Class ;\n rdfs:label \"DeprecatedClass\" ;\n rdfs:comment \"The class of deprecated classes.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdfs:Class . \n\nowl:DeprecatedProperty a rdfs:Class ;\n rdfs:label \"DeprecatedProperty\" ;\n rdfs:comment \"The class of deprecated properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdf:Property . \n\nowl:FunctionalProperty a rdfs:Class ;\n rdfs:label \"FunctionalProperty\" ;\n rdfs:comment \"The class of functional properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdf:Property . \n\nowl:InverseFunctionalProperty a rdfs:Class ;\n rdfs:label \"InverseFunctionalProperty\" ;\n rdfs:comment \"The class of inverse-functional properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf owl:ObjectProperty . \n\nowl:IrreflexiveProperty a rdfs:Class ;\n rdfs:label \"IrreflexiveProperty\" ;\n rdfs:comment \"The class of irreflexive properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf owl:ObjectProperty . \n\nowl:NamedIndividual a rdfs:Class ;\n rdfs:label \"NamedIndividual\" ;\n rdfs:comment \"The class of named individuals.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf owl:Thing . \n\nowl:NegativePropertyAssertion a rdfs:Class ;\n rdfs:label \"NegativePropertyAssertion\" ;\n rdfs:comment \"The class of negative property assertions.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdfs:Resource . \n\nowl:Nothing a owl:Class ;\n rdfs:label \"Nothing\" ;\n rdfs:comment \"This is the empty class.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf owl:Thing . \n\nowl:ObjectProperty a rdfs:Class ;\n rdfs:label \"ObjectProperty\" ;\n rdfs:comment \"The class of object properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdf:Property . \n\nowl:Ontology a rdfs:Class ;\n rdfs:label \"Ontology\" ;\n rdfs:comment \"The class of ontologies.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdfs:Resource . \n\nowl:OntologyProperty a rdfs:Class ;\n rdfs:label \"OntologyProperty\" ;\n rdfs:comment \"The class of ontology properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdf:Property . \n\nowl:ReflexiveProperty a rdfs:Class ;\n rdfs:label \"ReflexiveProperty\" ;\n rdfs:comment \"The class of reflexive properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf owl:ObjectProperty . \n\nowl:Restriction a rdfs:Class ;\n rdfs:label \"Restriction\" ;\n rdfs:comment \"The class of property restrictions.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf owl:Class . \n\nowl:SymmetricProperty a rdfs:Class ;\n rdfs:label \"SymmetricProperty\" ;\n rdfs:comment \"The class of symmetric properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf owl:ObjectProperty . \n\nowl:TransitiveProperty a rdfs:Class ;\n rdfs:label \"TransitiveProperty\" ;\n rdfs:comment \"The class of transitive properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf owl:ObjectProperty . \n\nowl:Thing a owl:Class ;\n rdfs:label \"Thing\" ;\n rdfs:comment \"The class of OWL individuals.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> .\n \nowl:allValuesFrom a rdf:Property ;\n rdfs:label \"allValuesFrom\" ;\n rdfs:comment \"The property that determines the class that a universal property restriction refers to.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Class . \n\nowl:annotatedProperty a rdf:Property ;\n rdfs:label \"annotatedProperty\" ;\n rdfs:comment \"The property that determines the predicate of an annotated axiom or annotated annotation.\" ;\n rdfs:domain rdfs:Resource ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Resource . \n\nowl:annotatedSource a rdf:Property ;\n rdfs:label \"annotatedSource\" ;\n rdfs:comment \"The property that determines the subject of an annotated axiom or annotated annotation.\" ;\n rdfs:domain rdfs:Resource ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Resource . \n\nowl:annotatedTarget a rdf:Property ;\n rdfs:label \"annotatedTarget\" ;\n rdfs:comment \"The property that determines the object of an annotated axiom or annotated annotation.\" ;\n rdfs:domain rdfs:Resource ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Resource . \n\nowl:assertionProperty a rdf:Property ;\n rdfs:label \"assertionProperty\" ;\n rdfs:comment \"The property that determines the predicate of a negative property assertion.\" ;\n rdfs:domain owl:NegativePropertyAssertion ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:Property . \n\nowl:backwardCompatibleWith a owl:AnnotationProperty, owl:OntologyProperty ;\n rdfs:label \"backwardCompatibleWith\" ;\n rdfs:comment \"The annotation property that indicates that a given ontology is backward compatible with another ontology.\" ;\n rdfs:domain owl:Ontology ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Ontology . \n\nowl:bottomDataProperty a owl:DatatypeProperty ;\n rdfs:label \"bottomDataProperty\" ;\n rdfs:comment \"The data property that does not relate any individual to any data value.\" ;\n rdfs:domain owl:Thing ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Literal . \n\nowl:bottomObjectProperty a owl:ObjectProperty ;\n rdfs:label \"bottomObjectProperty\" ;\n rdfs:comment \"The object property that does not relate any two individuals.\" ;\n rdfs:domain owl:Thing ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Thing . \n\nowl:cardinality a rdf:Property ;\n rdfs:label \"cardinality\" ;\n rdfs:comment \"The property that determines the cardinality of an exact cardinality restriction.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range xsd:nonNegativeInteger . \n\nowl:complementOf a rdf:Property ;\n rdfs:label \"complementOf\" ;\n rdfs:comment \"The property that determines that a given class is the complement of another class.\" ;\n rdfs:domain owl:Class ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Class . \n\nowl:datatypeComplementOf a rdf:Property ;\n rdfs:label \"datatypeComplementOf\" ;\n rdfs:comment \"The property that determines that a given data range is the complement of another data range with respect to the data domain.\" ;\n rdfs:domain rdfs:Datatype ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Datatype . \n\nowl:deprecated a owl:AnnotationProperty ;\n rdfs:label \"deprecated\" ;\n rdfs:comment \"The annotation property that indicates that a given entity has been deprecated.\" ;\n rdfs:domain rdfs:Resource ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Resource . \n\nowl:differentFrom a rdf:Property ;\n rdfs:label \"differentFrom\" ;\n rdfs:comment \"The property that determines that two given individuals are different.\" ;\n rdfs:domain owl:Thing ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Thing . \n\nowl:disjointUnionOf a rdf:Property ;\n rdfs:label \"disjointUnionOf\" ;\n rdfs:comment \"The property that determines that a given class is equivalent to the disjoint union of a collection of other classes.\" ;\n rdfs:domain owl:Class ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:List . \n\nowl:disjointWith a rdf:Property ;\n rdfs:label \"disjointWith\" ;\n rdfs:comment \"The property that determines that two given classes are disjoint.\" ;\n rdfs:domain owl:Class ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Class . \n\nowl:distinctMembers a rdf:Property ;\n rdfs:label \"distinctMembers\" ;\n rdfs:comment \"The property that determines the collection of pairwise different individuals in a owl:AllDifferent axiom.\" ;\n rdfs:domain owl:AllDifferent ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:List . \n\nowl:equivalentClass a rdf:Property ;\n rdfs:label \"equivalentClass\" ;\n rdfs:comment \"The property that determines that two given classes are equivalent, and that is used to specify datatype definitions.\" ;\n rdfs:domain rdfs:Class ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Class . \n\nowl:equivalentProperty a rdf:Property ;\n rdfs:label \"equivalentProperty\" ;\n rdfs:comment \"The property that determines that two given properties are equivalent.\" ;\n rdfs:domain rdf:Property ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:Property . \n\nowl:hasKey a rdf:Property ;\n rdfs:label \"hasKey\" ;\n rdfs:comment \"The property that determines the collection of properties that jointly build a key.\" ;\n rdfs:domain owl:Class ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:List . \n\nowl:hasSelf a rdf:Property ;\n rdfs:label \"hasSelf\" ;\n rdfs:comment \"The property that determines the property that a self restriction refers to.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Resource . \n\nowl:hasValue a rdf:Property ;\n rdfs:label \"hasValue\" ;\n rdfs:comment \"The property that determines the individual that a has-value restriction refers to.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Resource . \n\nowl:imports a owl:OntologyProperty ;\n rdfs:label \"imports\" ;\n rdfs:comment \"The property that is used for importing other ontologies into a given ontology.\" ;\n rdfs:domain owl:Ontology ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Ontology . \n\nowl:incompatibleWith a owl:AnnotationProperty, owl:OntologyProperty ;\n rdfs:label \"incompatibleWith\" ;\n rdfs:comment \"The annotation property that indicates that a given ontology is incompatible with another ontology.\" ;\n rdfs:domain owl:Ontology ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Ontology . \n\nowl:intersectionOf a rdf:Property ;\n rdfs:label \"intersectionOf\" ;\n rdfs:comment \"The property that determines the collection of classes or data ranges that build an intersection.\" ;\n rdfs:domain rdfs:Class ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:List . \n\nowl:inverseOf a rdf:Property ;\n rdfs:label \"inverseOf\" ;\n rdfs:comment \"The property that determines that two given properties are inverse.\" ;\n rdfs:domain owl:ObjectProperty ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:ObjectProperty . \n\nowl:maxCardinality a rdf:Property ;\n rdfs:label \"maxCardinality\" ;\n rdfs:comment \"The property that determines the cardinality of a maximum cardinality restriction.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range xsd:nonNegativeInteger . \n\nowl:maxQualifiedCardinality a rdf:Property ;\n rdfs:label \"maxQualifiedCardinality\" ;\n rdfs:comment \"The property that determines the cardinality of a maximum qualified cardinality restriction.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range xsd:nonNegativeInteger . \n\nowl:members a rdf:Property ;\n rdfs:label \"members\" ;\n rdfs:comment \"The property that determines the collection of members in either a owl:AllDifferent, owl:AllDisjointClasses or owl:AllDisjointProperties axiom.\" ;\n rdfs:domain rdfs:Resource ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:List . \n\nowl:minCardinality a rdf:Property ;\n rdfs:label \"minCardinality\" ;\n rdfs:comment \"The property that determines the cardinality of a minimum cardinality restriction.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range xsd:nonNegativeInteger . \n\nowl:minQualifiedCardinality a rdf:Property ;\n rdfs:label \"minQualifiedCardinality\" ;\n rdfs:comment \"The property that determines the cardinality of a minimum qualified cardinality restriction.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range xsd:nonNegativeInteger . \n\nowl:onClass a rdf:Property ;\n rdfs:label \"onClass\" ;\n rdfs:comment \"The property that determines the class that a qualified object cardinality restriction refers to.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Class . \n\nowl:onDataRange a rdf:Property ;\n rdfs:label \"onDataRange\" ;\n rdfs:comment \"The property that determines the data range that a qualified data cardinality restriction refers to.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Datatype . \n\nowl:onDatatype a rdf:Property ;\n rdfs:label \"onDatatype\" ;\n rdfs:comment \"The property that determines the datatype that a datatype restriction refers to.\" ;\n rdfs:domain rdfs:Datatype ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Datatype . \n\nowl:oneOf a rdf:Property ;\n rdfs:label \"oneOf\" ;\n rdfs:comment \"The property that determines the collection of individuals or data values that build an enumeration.\" ;\n rdfs:domain rdfs:Class ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:List . \n\nowl:onProperties a rdf:Property ;\n rdfs:label \"onProperties\" ;\n rdfs:comment \"The property that determines the n-tuple of properties that a property restriction on an n-ary data range refers to.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:List .\n\nowl:onProperty a rdf:Property ;\n rdfs:label \"onProperty\" ;\n rdfs:comment \"The property that determines the property that a property restriction refers to.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:Property . \n\nowl:priorVersion a owl:AnnotationProperty, owl:OntologyProperty ;\n rdfs:label \"priorVersion\" ;\n rdfs:comment \"The annotation property that indicates the predecessor ontology of a given ontology.\" ;\n rdfs:domain owl:Ontology ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Ontology . \n\nowl:propertyChainAxiom a rdf:Property ;\n rdfs:label \"propertyChainAxiom\" ;\n rdfs:comment \"The property that determines the n-tuple of properties that build a sub property chain of a given property.\" ;\n rdfs:domain owl:ObjectProperty ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:List . \n\nowl:propertyDisjointWith a rdf:Property ;\n rdfs:label \"propertyDisjointWith\" ;\n rdfs:comment \"The property that determines that two given properties are disjoint.\" ;\n rdfs:domain rdf:Property ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:Property . \n\nowl:qualifiedCardinality a rdf:Property ;\n rdfs:label \"qualifiedCardinality\" ;\n rdfs:comment \"The property that determines the cardinality of an exact qualified cardinality restriction.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range xsd:nonNegativeInteger . \n\nowl:sameAs a rdf:Property ;\n rdfs:label \"sameAs\" ;\n rdfs:comment \"The property that determines that two given individuals are equal.\" ;\n rdfs:domain owl:Thing ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Thing . \n\nowl:someValuesFrom a rdf:Property ;\n rdfs:label \"someValuesFrom\" ;\n rdfs:comment \"The property that determines the class that an existential property restriction refers to.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Class . \n\nowl:sourceIndividual a rdf:Property ;\n rdfs:label \"sourceIndividual\" ;\n rdfs:comment \"The property that determines the subject of a negative property assertion.\" ;\n rdfs:domain owl:NegativePropertyAssertion ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Thing . \n\nowl:targetIndividual a rdf:Property ;\n rdfs:label \"targetIndividual\" ;\n rdfs:comment \"The property that determines the object of a negative object property assertion.\" ;\n rdfs:domain owl:NegativePropertyAssertion ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Thing . \n\nowl:targetValue a rdf:Property ;\n rdfs:label \"targetValue\" ;\n rdfs:comment \"The property that determines the value of a negative data property assertion.\" ;\n rdfs:domain owl:NegativePropertyAssertion ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Literal . \n\nowl:topDataProperty a owl:DatatypeProperty ;\n rdfs:label \"topDataProperty\" ;\n rdfs:comment \"The data property that relates every individual to every data value.\" ;\n rdfs:domain owl:Thing ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Literal . \n\nowl:topObjectProperty a owl:ObjectProperty ;\n rdfs:label \"topObjectProperty\" ;\n rdfs:comment \"The object property that relates every two individuals.\" ;\n rdfs:domain owl:Thing ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Thing . \n\nowl:unionOf a rdf:Property ;\n rdfs:label \"unionOf\" ;\n rdfs:comment \"The property that determines the collection of classes or data ranges that build a union.\" ;\n rdfs:domain rdfs:Class ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:List . \n\nowl:versionInfo a owl:AnnotationProperty ;\n rdfs:label \"versionInfo\" ;\n rdfs:comment \"The annotation property that provides version information for an ontology or another OWL construct.\" ;\n rdfs:domain rdfs:Resource ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Resource .\n \nowl:versionIRI a owl:OntologyProperty ;\n rdfs:label \"versionIRI\" ;\n rdfs:comment \"The property that identifies the version IRI of an ontology.\" ;\n rdfs:domain owl:Ontology ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Ontology . \n\nowl:withRestrictions a rdf:Property ;\n rdfs:label \"withRestrictions\" ;\n rdfs:comment \"The property that determines the collection of facet-value pairs that define a datatype restriction.\" ;\n rdfs:domain rdfs:Datatype ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:List .\n `;\nexports.rdf = `@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n@prefix owl: <http://www.w3.org/2002/07/owl#> .\n@prefix dc: <http://purl.org/dc/elements/1.1/> .\n\n<http://www.w3.org/1999/02/22-rdf-syntax-ns#> a owl:Ontology ;\n\tdc:title \"The RDF Concepts Vocabulary (RDF)\" ;\n\tdc:date \"2019-12-16\" ;\n\tdc:description \"This is the RDF Schema for the RDF vocabulary terms in the RDF Namespace, defined in RDF 1.1 Concepts.\" .\n\nrdf:HTML a rdfs:Datatype ;\n\trdfs:subClassOf rdfs:Literal ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:seeAlso <http://www.w3.org/TR/rdf11-concepts/#section-html> ;\n\trdfs:label \"HTML\" ;\n\trdfs:comment \"The datatype of RDF literals storing fragments of HTML content\" .\n\nrdf:langString a rdfs:Datatype ;\n\trdfs:subClassOf rdfs:Literal ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:seeAlso <http://www.w3.org/TR/rdf11-concepts/#section-Graph-Literal> ;\n\trdfs:label \"langString\" ;\n\trdfs:comment \"The datatype of language-tagged string values\" .\n\nrdf:PlainLiteral a rdfs:Datatype ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:subClassOf rdfs:Literal ;\n\trdfs:seeAlso <http://www.w3.org/TR/rdf-plain-literal/> ;\n\trdfs:label \"PlainLiteral\" ;\n\trdfs:comment \"The class of plain (i.e. untyped) literal values, as used in RIF and OWL 2\" .\n\nrdf:type a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"type\" ;\n\trdfs:comment \"The subject is an instance of a class.\" ;\n\trdfs:range rdfs:Class ;\n\trdfs:domain rdfs:Resource .\n\nrdf:Property a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"Property\" ;\n\trdfs:comment \"The class of RDF properties.\" ;\n\trdfs:subClassOf rdfs:Resource .\n\nrdf:Statement a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"Statement\" ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:comment \"The class of RDF statements.\" .\n\nrdf:subject a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"subject\" ;\n\trdfs:comment \"The subject of the subject RDF statement.\" ;\n\trdfs:domain rdf:Statement ;\n\trdfs:range rdfs:Resource .\n\nrdf:predicate a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"predicate\" ;\n\trdfs:comment \"The predicate of the subject RDF statement.\" ;\n\trdfs:domain rdf:Statement ;\n\trdfs:range rdfs:Resource .\n\nrdf:object a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"object\" ;\n\trdfs:comment \"The object of the subject RDF statement.\" ;\n\trdfs:domain rdf:Statement ;\n\trdfs:range rdfs:Resource .\n\nrdf:Bag a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"Bag\" ;\n\trdfs:comment \"The class of unordered containers.\" ;\n\trdfs:subClassOf rdfs:Container .\n\nrdf:Seq a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"Seq\" ;\n\trdfs:comment \"The class of ordered containers.\" ;\n\trdfs:subClassOf rdfs:Container .\n\nrdf:Alt a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"Alt\" ;\n\trdfs:comment \"The class of containers of alternatives.\" ;\n\trdfs:subClassOf rdfs:Container .\n\nrdf:value a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"value\" ;\n\trdfs:comment \"Idiomatic property used for structured values.\" ;\n\trdfs:domain rdfs:Resource ;\n\trdfs:range rdfs:Resource .\n\nrdf:List a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"List\" ;\n\trdfs:comment \"The class of RDF Lists.\" ;\n\trdfs:subClassOf rdfs:Resource .\n\nrdf:nil a rdf:List ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"nil\" ;\n\trdfs:comment \"The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it.\" .\n\nrdf:first a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"first\" ;\n\trdfs:comment \"The first item in the subject RDF list.\" ;\n\trdfs:domain rdf:List ;\n\trdfs:range rdfs:Resource .\n\nrdf:rest a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"rest\" ;\n\trdfs:comment \"The rest of the subject RDF list after the first item.\" ;\n\trdfs:domain rdf:List ;\n\trdfs:range rdf:List .\n\nrdf:XMLLiteral a rdfs:Datatype ;\n\trdfs:subClassOf rdfs:Literal ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"XMLLiteral\" ;\n\trdfs:comment \"The datatype of XML literal values.\" .\n\nrdf:JSON a rdfs:Datatype ;\n\trdfs:label \"JSON\" ;\n\trdfs:comment \"The datatype of RDF literals storing JSON content.\" ;\n\trdfs:subClassOf rdfs:Literal ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:seeAlso <https://www.w3.org/TR/json-ld11/#the-rdf-json-datatype> .\n\nrdf:CompoundLiteral a rdfs:Class ;\n\trdfs:label \"CompoundLiteral\" ;\n\trdfs:comment \"A class representing a compound literal.\" ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:seeAlso <https://www.w3.org/TR/json-ld11/#the-rdf-compoundliteral-class-and-the-rdf-language-and-rdf-direction-properties> .\n\nrdf:language a rdf:Property ;\n\trdfs:label \"language\" ;\n\trdfs:comment \"The language component of a CompoundLiteral.\" ;\n\trdfs:domain rdf:CompoundLiteral ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:seeAlso <https://www.w3.org/TR/json-ld11/#the-rdf-compoundliteral-class-and-the-rdf-language-and-rdf-direction-properties> .\n\nrdf:direction a rdf:Property ;\n\trdfs:label \"direction\" ;\n\trdfs:comment \"The base direction component of a CompoundLiteral.\" ;\n\trdfs:domain rdf:CompoundLiteral ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:seeAlso <https://www.w3.org/TR/json-ld11/#the-rdf-compoundliteral-class-and-the-rdf-language-and-rdf-direction-properties> .\n`;\nexports.rdfa = `@prefix dcterms: <http://purl.org/dc/terms/> .\n@prefix foaf: <http://xmlns.com/foaf/0.1/> .\n@prefix owl: <http://www.w3.org/2002/07/owl#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n@prefix rdfa: <http://www.w3.org/ns/rdfa#> .\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .\n\nrdfa:PGClass a rdfs:Class,\n owl:Class;\n dcterms:description \"is the top level class of the hierarchy\" .\n\nrdfa:Pattern a rdfs:Class,\n owl:Class;\n dcterms:description \"Class to identify an (RDF) resource whose properties are to be copied to another resource\" .\n\nrdfa:PrefixOrTermMapping a rdfs:Class,\n owl:Class;\n dcterms:description \"is the top level class for prefix or term mappings\" .\n\nrdfa: a owl:Ontology;\n dcterms:creator <http://www.ivan-herman.net/foaf#me>;\n dcterms:date \"2013-01-18\";\n dcterms:description \"This document describes the RDFa Vocabulary for Term and Prefix Assignment. The Vocabulary is used to modify RDFa 1.1 processing behavior.\";\n dcterms:publisher <http://www.w3.org/data#W3C>;\n dcterms:title \"RDFa Vocabulary for Term and Prefix Assignment, and for Processor Graph Reporting\";\n rdfs:isDefinedBy <http://www.w3.org/TR/rdfa-core/#s_initialcontexts>;\n owl:versionInfo \"$Date: 2013-03-11 07:54:23 $\" .\n\nrdfa:DocumentError dcterms:description \"error condition; to be used when the document fails to be fully processed as a result of non-conformant host language markup\";\n rdfs:subClassOf rdfa:Error .\n\nrdfa:Info dcterms:description \"is the class for all informations\";\n rdfs:subClassOf rdfa:PGClass .\n\nrdfa:PrefixRedefinition dcterms:description \"warning; to be used when a prefix, either from the initial context or inherited from an ancestor node, is redefined in an element\";\n rdfs:subClassOf rdfa:Warning .\n\nrdfa:UnresolvedCURIE dcterms:description \"warning; to be used when a CURIE prefix fails to be resolved\";\n rdfs:subClassOf rdfa:Warning .\n\nrdfa:UnresolvedTerm dcterms:description \"warning; to be used when a Term fails to be resolved\";\n rdfs:subClassOf rdfa:Warning .\n\nrdfa:VocabReferenceError dcterms:description \"warning; to be used when the value of a @vocab attribute cannot be dereferenced, hence the vocabulary expansion cannot be completed\";\n rdfs:subClassOf rdfa:Warning .\n\nrdfa:context a rdf:Property,\n owl:ObjectProperty;\n dcterms:description \"provides extra context for the error, eg, http response, an XPointer/XPath information, or simply the URI that created the error\";\n rdfs:domain rdfa:PGClass .\n\nrdfa:copy a rdf:Property,\n owl:ObjectProperty;\n dcterms:description \"identifies the resource (i.e., pattern) whose properties and values should be copied to replace the current triple (retaining the subject of the triple).\" .\n\nrdfa:prefix a rdf:Property,\n owl:DatatypeProperty;\n dcterms:description \"defines a prefix mapping for a URI; the value is supposed to be a NMTOKEN\";\n rdfs:domain rdfa:PrefixMapping .\n\nrdfa:term a rdf:Property,\n owl:DatatypeProperty;\n dcterms:description \"defines a term mapping for a URI; the value is supposed to be a NMTOKEN\";\n rdfs:domain rdfa:TermMapping .\n\nrdfa:uri a rdf:Property,\n owl:DatatypeProperty;\n dcterms:description \"defines the URI for either a prefix or a term mapping; the value is supposed to be an absolute URI\";\n rdfs:domain rdfa:PrefixOrTermMapping .\n\nrdfa:usesVocabulary a rdf:Property,\n owl:ObjectProperty;\n dcterms:description \"\"\"provides a relationship between the host document and a vocabulary\n\tdefined using the @vocab facility of RDFa1.1\"\"\" .\n\nrdfa:vocabulary a rdf:Property,\n owl:DatatypeProperty;\n dcterms:description \"defines an absolute URI to be used as a default vocabulary; the value is can be any string; for documentation purposes it is advised to use the string 'true' or 'True'.\" .\n\n<http://www.ivan-herman.net/foaf#me> a foaf:Person;\n rdfs:seeAlso <http://www.ivan-herman.net/foaf>;\n foaf:mbox <mailto:ivan@w3.org>;\n foaf:name \"Ivan Herman\";\n foaf:title \"Semantic Web Activity Lead\";\n foaf:workplaceHomepage <http://www.w3.org> .\n\nrdfa:Error dcterms:description \"is the class for all error conditions\";\n rdfs:subClassOf rdfa:PGClass .\n\nrdfa:PrefixMapping dcterms:description \"is the class for prefix mappings\";\n rdfs:subClassOf rdfa:PrefixOrTermMapping .\n\nrdfa:TermMapping dcterms:description \"is the class for term mappings\";\n rdfs:subClassOf rdfa:PrefixOrTermMapping .\n\nrdfa:Warning dcterms:description \"is the class for all warnings\";\n rdfs:subClassOf rdfa:PGClass .\n\n\n`;\nexports.rdfs = `@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n@prefix owl: <http://www.w3.org/2002/07/owl#> .\n@prefix dc: <http://purl.org/dc/elements/1.1/> .\n\n<http://www.w3.org/2000/01/rdf-schema#> a owl:Ontology ;\n\tdc:title \"The RDF Schema vocabulary (RDFS)\" .\n\nrdfs:Resource a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"Resource\" ;\n\trdfs:comment \"The class resource, everything.\" .\n\nrdfs:Class a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"Class\" ;\n\trdfs:comment \"The class of classes.\" ;\n\trdfs:subClassOf rdfs:Resource .\n\nrdfs:subClassOf a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"subClassOf\" ;\n\trdfs:comment \"The subject is a subclass of a class.\" ;\n\trdfs:range rdfs:Class ;\n\trdfs:domain rdfs:Class .\n\nrdfs:subPropertyOf a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"subPropertyOf\" ;\n\trdfs:comment \"The subject is a subproperty of a property.\" ;\n\trdfs:range rdf:Property ;\n\trdfs:domain rdf:Property .\n\nrdfs:comment a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"comment\" ;\n\trdfs:comment \"A description of the subject resource.\" ;\n\trdfs:domain rdfs:Resource ;\n\trdfs:range rdfs:Literal .\n\nrdfs:label a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"label\" ;\n\trdfs:comment \"A human-readable name for the subject.\" ;\n\trdfs:domain rdfs:Resource ;\n\trdfs:range rdfs:Literal .\n\nrdfs:domain a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"domain\" ;\n\trdfs:comment \"A domain of the subject property.\" ;\n\trdfs:range rdfs:Class ;\n\trdfs:domain rdf:Property .\n\nrdfs:range a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"range\" ;\n\trdfs:comment \"A range of the subject property.\" ;\n\trdfs:range rdfs:Class ;\n\trdfs:domain rdf:Property .\n\nrdfs:seeAlso a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"seeAlso\" ;\n\trdfs:comment \"Further information about the subject resource.\" ;\n\trdfs:range rdfs:Resource ;\n\trdfs:domain rdfs:Resource .\n\nrdfs:isDefinedBy a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:subPropertyOf rdfs:seeAlso ;\n\trdfs:label \"isDefinedBy\" ;\n\trdfs:comment \"The defininition of the subject resource.\" ;\n\trdfs:range rdfs:Resource ;\n\trdfs:domain rdfs:Resource .\n\nrdfs:Literal a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"Literal\" ;\n\trdfs:comment \"The class of literal values, eg. textual strings and integers.\" ;\n\trdfs:subClassOf rdfs:Resource .\n\nrdfs:Container a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"Container\" ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:comment \"The class of RDF containers.\" .\n\nrdfs:ContainerMembershipProperty a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"ContainerMembershipProperty\" ;\n\trdfs:comment \"\"\"The class of container membership properties, rdf:_1, rdf:_2, ...,\n all of which are sub-properties of 'member'.\"\"\" ;\n\trdfs:subClassOf rdf:Property .\n\nrdfs:member a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"member\" ;\n\trdfs:comment \"A member of the subject resource.\" ;\n\trdfs:domain rdfs:Resource ;\n\trdfs:range rdfs:Resource .\n\nrdfs:Datatype a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"Datatype\" ;\n\trdfs:comment \"The class of RDF datatypes.\" ;\n\trdfs:subClassOf rdfs:Class .\n\n<http://www.w3.org/2000/01/rdf-schema#> rdfs:seeAlso <http://www.w3.org/2000/01/rdf-schema-more> .\n`;\nexports.sh = `# W3C Shapes Constraint Language (SHACL) Vocabulary\n# Version from 2017-07-20\n\n@prefix owl: <http://www.w3.org/2002/07/owl#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .\n@prefix sh: <http://www.w3.org/ns/shacl#> .\n\nsh:\n\ta owl:Ontology ;\n\trdfs:label \"W3C Shapes Constraint Language (SHACL) Vocabulary\"@en ;\n\trdfs:comment \"This vocabulary defines terms used in SHACL, the W3C Shapes Constraint Language.\"@en ;\n\tsh:declare [\n\t\tsh:prefix \"sh\" ;\n\t\tsh:namespace \"http://www.w3.org/ns/shacl#\" ;\n\t] ;\n\tsh:suggestedShapesGraph <http://www.w3.org/ns/shacl-shacl#> .\n\n\n# Shapes vocabulary -----------------------------------------------------------\n\nsh:Shape\n\ta rdfs:Class ;\n\trdfs:label \"Shape\"@en ;\n\trdfs:comment \"A shape is a collection of constraints that may be targeted for certain nodes.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:NodeShape\n\ta rdfs:Class ;\n\trdfs:label \"Node Shape\"@en ;\n\trdfs:comment \"A node shape is a shape that specifies constraint that need to be met with respect to focus nodes.\"@en ;\n\trdfs:subClassOf sh:Shape ;\n\trdfs:isDefinedBy sh: .\n\nsh:PropertyShape\n\ta rdfs:Class ;\n\trdfs:label \"Property Shape\"@en ;\n\trdfs:comment \"A property shape is a shape that specifies constraints on the values of a focus node for a given property or path.\"@en ;\n\trdfs:subClassOf sh:Shape ;\n\trdfs:isDefinedBy sh: .\n\nsh:deactivated\n\ta rdf:Property ;\n\trdfs:label \"deactivated\"@en ;\n\trdfs:comment \"If set to true then all nodes conform to this.\"@en ;\n\t# rdfs:domain sh:Shape or sh:SPARQLConstraint\n\trdfs:range xsd:boolean ;\n\trdfs:isDefinedBy sh: .\n\nsh:targetClass \n\ta rdf:Property ;\n\trdfs:label \"target class\"@en ;\n\trdfs:comment \"Links a shape to a class, indicating that all instances of the class must conform to the shape.\"@en ;\n\trdfs:domain sh:Shape ;\n\trdfs:range rdfs:Class ;\n\trdfs:isDefinedBy sh: .\n\nsh:targetNode \n\ta rdf:Property ;\n\trdfs:label \"target node\"@en ;\n\trdfs:comment \"Links a shape to individual nodes, indicating that these nodes must conform to the shape.\"@en ;\n\trdfs:domain sh:Shape ;\n\trdfs:isDefinedBy sh: .\n\nsh:targetObjectsOf\n\ta rdf:Property ;\n\trdfs:label \"target objects of\"@en ;\n\trdfs:comment \"Links a shape to a property, indicating that all all objects of triples that have the given property as their predicate must conform to the shape.\"@en ;\n\trdfs:domain sh:Shape ;\n\trdfs:range rdf:Property ;\n\trdfs:isDefinedBy sh: .\n\nsh:targetSubjectsOf\n\ta rdf:Property ;\n\trdfs:label \"target subjects of\"@en ;\n\trdfs:comment \"Links a shape to a property, indicating that all subjects of triples that have the given property as their predicate must conform to the shape.\"@en ;\n\trdfs:domain sh:Shape ;\n\trdfs:range rdf:Property ;\n\trdfs:isDefinedBy sh: .\n\nsh:message\n\ta rdf:Property ;\n\t# domain: sh:Shape or sh:SPARQLConstraint or sh:SPARQLSelectValidator or sh:SPARQLAskValidator\n\t# range: xsd:string or rdf:langString\n\trdfs:label \"message\"@en ;\n\trdfs:comment \"A human-readable message (possibly with placeholders for variables) explaining the cause of the result.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:severity\n\ta rdf:Property ;\n\trdfs:label \"severity\"@en ;\n\trdfs:comment \"Defines the severity that validation results produced by a shape must have. Defaults to sh:Violation.\"@en ;\n\trdfs:domain sh:Shape ;\n\trdfs:range sh:Severity ;\n\trdfs:isDefinedBy sh: .\n\n\n# Node kind vocabulary --------------------------------------------------------\n\nsh:NodeKind\n\ta rdfs:Class ;\n\trdfs:label \"Node Kind\"@en ;\n\trdfs:comment \"The class of all node kinds, including sh:BlankNode, sh:IRI, sh:Literal or the combinations of these: sh:BlankNodeOrIRI, sh:BlankNodeOrLiteral, sh:IRIOrLiteral.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:BlankNode\n\ta sh:NodeKind ;\n\trdfs:label \"Blank Node\"@en ;\n\trdfs:comment \"The node kind of all blank nodes.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:BlankNodeOrIRI\n\ta sh:NodeKind ;\n\trdfs:label \"Blank Node or IRI\"@en ;\n\trdfs:comment \"The node kind of all blank nodes or IRIs.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:BlankNodeOrLiteral\n\ta sh:NodeKind ;\n\trdfs:label \"Blank Node or Literal\"@en ;\n\trdfs:comment \"The node kind of all blank nodes or literals.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:IRI\n\ta sh:NodeKind ;\n\trdfs:label \"IRI\"@en ;\n\trdfs:comment \"The node kind of all IRIs.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:IRIOrLiteral\n\ta sh:NodeKind ;\n\trdfs:label \"IRI or Literal\"@en ;\n\trdfs:comment \"The node kind of all IRIs or literals.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:Literal\n\ta sh:NodeKind ;\n\trdfs:label \"Literal\"@en ;\n\trdfs:comment \"The node kind of all literals.\"@en ;\n\trdfs:isDefinedBy sh: .\n\n\n# Results vocabulary ----------------------------------------------------------\n\nsh:ValidationReport\n\ta rdfs:Class ;\n\trdfs:label \"Validation Report\"@en ;\n\trdfs:comment \"The class of SHACL validation reports.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:conforms\n\ta rdf:Property ;\n\trdfs:label \"conforms\"@en ;\n\trdfs:comment \"True if the validation did not produce any validation results, and false otherwise.\"@en ;\n\trdfs:domain sh:ValidationReport ;\n\trdfs:range xsd:boolean ;\n\trdfs:isDefinedBy sh: .\n\nsh:result\n\ta rdf:Property ;\n\trdfs:label \"result\"@en ;\n\trdfs:comment \"The validation results contained in a validation report.\"@en ;\n\trdfs:domain sh:ValidationReport ;\n\trdfs:range sh:ValidationResult ;\n\trdfs:isDefinedBy sh: .\n\nsh:shapesGraphWellFormed\n\ta rdf:Property ;\n\trdfs:label \"shapes graph well-formed\"@en ;\n\trdfs:comment \"If true then the validation engine was certain that the shapes graph has passed all SHACL syntax requirements during the validation process.\"@en ;\n\trdfs:domain sh:ValidationReport ;\n\trdfs:range xsd:boolean ;\n\trdfs:isDefinedBy sh: .\n\nsh:AbstractResult\n\ta rdfs:Class ;\n\trdfs:label \"Abstract Result\"@en ;\n\trdfs:comment \"The base class of validation results, typically not instantiated directly.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:ValidationResult\n\ta rdfs:Class ;\n\trdfs:label \"Validation Result\"@en ;\n\trdfs:comment \"The class of validation results.\"@en ;\n\trdfs:subClassOf sh:AbstractResult ;\n\trdfs:isDefinedBy sh: .\n\nsh:Severity\n\ta rdfs:Class ;\n\trdfs:label \"Severity\"@en ;\n\trdfs:comment \"The class of validation result severity levels, including violation and warning levels.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:Info\n\ta sh:Severity ;\n\trdfs:label \"Info\"@en ;\n\trdfs:comment \"The severity for an informational validation result.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:Violation\n\ta sh:Severity ;\n\trdfs:label \"Violation\"@en ;\n\trdfs:comment \"The severity for a violation validation result.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:Warning\n\ta sh:Severity ;\n\trdfs:label \"Warning\"@en ;\n\trdfs:comment \"The severity for a warning validation result.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:detail\n\ta rdf:Property ;\n\trdfs:label \"detail\"@en ;\n\trdfs:comment \"Links a result with other results that provide more details, for example to describe violations against nested shapes.\"@en ;\n\trdfs:domain sh:AbstractResult ;\n\trdfs:range sh:AbstractResult ;\n\trdfs:isDefinedBy sh: .\n\nsh:focusNode\n\ta rdf:Property ;\n\trdfs:label \"focus node\"@en ;\n\trdfs:comment \"The focus node that was validated when the result was produced.\"@en ;\n\trdfs:domain sh:AbstractResult ;\n\trdfs:isDefinedBy sh: .\n\nsh:resultMessage\n\ta rdf:Property ;\n\trdfs:label \"result message\"@en ;\n\trdfs:comment \"Human-readable messages explaining the cause of the result.\"@en ;\n\trdfs:domain sh:AbstractResult ;\n\t# range: xsd:string or rdf:langString\n\trdfs:isDefinedBy sh: .\n\nsh:resultPath\n\ta rdf:Property ;\n\trdfs:label \"result path\"@en ;\n\trdfs:comment \"The path of a validation result, based on the path of the validated property shape.\"@en ;\n\trdfs:domain sh:AbstractResult ;\n\trdfs:range rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:resultSeverity\n\ta rdf:Property ;\n\trdfs:label \"result severity\"@en ;\n\trdfs:comment \"The severity of the result, e.g. warning.\"@en ;\n\trdfs:domain sh:AbstractResult ;\n\trdfs:range sh:Severity ;\n\trdfs:isDefinedBy sh: .\n\nsh:sourceConstraint\n\ta rdf:Property ;\n\trdfs:label \"source constraint\"@en ;\n\trdfs:comment \"The constraint that was validated when the result was produced.\"@en ;\n\trdfs:domain sh:AbstractResult ;\n\trdfs:isDefinedBy sh: .\n\nsh:sourceShape\n\ta rdf:Property ;\n\trdfs:label \"source shape\"@en ;\n\trdfs:comment \"The shape that is was validated when the result was produced.\"@en ;\n\trdfs:domain sh:AbstractResult ;\n\trdfs:range sh:Shape ;\n\trdfs:isDefinedBy sh: .\n\nsh:sourceConstraintComponent\n\ta rdf:Property ;\n\trdfs:label \"source Constraint Component\"@en ;\n\trdfs:comment \"The constraint component that is the source of the result.\"@en ;\n\trdfs:domain sh:AbstractResult ;\n\trdfs:range sh:ConstraintComponent ;\n\trdfs:isDefinedBy sh: .\n\nsh:value\n\ta rdf:Property ;\n\trdfs:label \"value\"@en ;\n\trdfs:comment \"An RDF node that has caused the result.\"@en ;\n\trdfs:domain sh:AbstractResult ;\n\trdfs:isDefinedBy sh: .\n\n\t\n# Graph properties ------------------------------------------------------------\n\nsh:shapesGraph\n\ta rdf:Property ;\n\trdfs:label \"shapes graph\"@en ;\n\trdfs:comment \"Shapes graphs that should be used when validating this data graph.\"@en ;\n\trdfs:domain owl:Ontology ;\n\trdfs:range owl:Ontology ;\n\trdfs:isDefinedBy sh: .\n\nsh:suggestedShapesGraph\n\ta rdf:Property ;\n\trdfs:label \"suggested shapes graph\"@en ;\n\trdfs:comment \"Suggested shapes graphs for this ontology. The values of this property may be used in the absence of specific sh:shapesGraph statements.\"@en ;\n\trdfs:domain owl:Ontology ;\n\trdfs:range owl:Ontology ;\n\trdfs:isDefinedBy sh: .\n\nsh:entailment\n\ta rdf:Property ;\n\trdfs:label \"entailment\"@en ;\n\trdfs:comment \"An entailment regime that indicates what kind of inferencing is required by a shapes graph.\"@en ;\n\trdfs:domain owl:Ontology ;\n\trdfs:range rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\n\n# Path vocabulary -------------------------------------------------------------\n\nsh:path\n\ta rdf:Property ;\n\trdfs:label \"path\"@en ;\n\trdfs:comment \"Specifies the property path of a property shape.\"@en ;\n\trdfs:domain sh:PropertyShape ;\n\trdfs:range rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:inversePath\n\ta rdf:Property ;\n\trdfs:label \"inverse path\"@en ;\n\trdfs:comment \"The (single) value of this property represents an inverse path (object to subject).\"@en ;\n\trdfs:range rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:alternativePath\n\ta rdf:Property ;\n\trdfs:label \"alternative path\"@en ;\n\trdfs:comment \"The (single) value of this property must be a list of path elements, representing the elements of alternative paths.\"@en ;\n\trdfs:range rdf:List ;\n\trdfs:isDefinedBy sh: .\n\nsh:zeroOrMorePath\n\ta rdf:Property ;\n\trdfs:label \"zero or more path\"@en ;\n\trdfs:comment \"The (single) value of this property represents a path that is matched zero or more times.\"@en ;\n\trdfs:range rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:oneOrMorePath\n\ta rdf:Property ;\n\trdfs:label \"one or more path\"@en ;\n\trdfs:comment \"The (single) value of this property represents a path that is matched one or more times.\"@en ;\n\trdfs:range rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:zeroOrOnePath\n\ta rdf:Property ;\n\trdfs:label \"zero or one path\"@en ;\n\trdfs:comment \"The (single) value of this property represents a path that is matched zero or one times.\"@en ;\n\trdfs:range rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\n\n# Parameters metamodel --------------------------------------------------------\n\nsh:Parameterizable\n\ta rdfs:Class ;\n\trdfs:label \"Parameterizable\"@en ;\n\trdfs:comment \"Superclass of components that can take parameters, especially functions and constraint components.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:parameter\n\ta rdf:Property ;\n\trdfs:label \"parameter\"@en ;\n\trdfs:comment \"The parameters of a function or constraint component.\"@en ;\n\trdfs:domain sh:Parameterizable ;\n\trdfs:range sh:Parameter ;\n\trdfs:isDefinedBy sh: .\n\nsh:labelTemplate\n\ta rdf:Property ;\n\trdfs:label \"label template\"@en ;\n\trdfs:comment \"Outlines how human-readable labels of instances of the associated Parameterizable shall be produced. The values can contain {?paramName} as placeholders for the actual values of the given parameter.\"@en ;\n\trdfs:domain sh:Parameterizable ;\n\t# range: xsd:string or rdf:langString\n\trdfs:isDefinedBy sh: .\n\nsh:Parameter\n\ta rdfs:Class ;\n\trdfs:label \"Parameter\"@en ;\n\trdfs:comment \"The class of parameter declarations, consisting of a path predicate and (possibly) information about allowed value type, cardinality and other characteristics.\"@en ;\n\trdfs:subClassOf sh:PropertyShape ;\n\trdfs:isDefinedBy sh: .\n\nsh:optional\n\ta rdf:Property ;\n\trdfs:label \"optional\"@en ;\n\trdfs:comment \"Indicates whether a parameter is optional.\"@en ;\n\trdfs:domain sh:Parameter ;\n\trdfs:range xsd:boolean ;\n\trdfs:isDefinedBy sh: .\n\n\n# Constraint components metamodel ---------------------------------------------\n\nsh:ConstraintComponent\n\ta rdfs:Class ;\n\trdfs:label \"Constraint Component\"@en ;\n\trdfs:comment \"The class of constraint components.\"@en ;\n\trdfs:subClassOf sh:Parameterizable ;\n\trdfs:isDefinedBy sh: .\n\nsh:validator\n\ta rdf:Property ;\n\trdfs:label \"validator\"@en ;\n\trdfs:comment \"The validator(s) used to evaluate constraints of either node or property shapes.\"@en ;\n\trdfs:domain sh:ConstraintComponent ;\n\trdfs:range sh:Validator ;\n\trdfs:isDefinedBy sh: .\n\nsh:nodeValidator\n\ta rdf:Property ;\n\trdfs:label \"shape validator\"@en ;\n\trdfs:comment \"The validator(s) used to evaluate a constraint in the context of a node shape.\"@en ;\n\trdfs:domain sh:ConstraintComponent ;\n\trdfs:range sh:Validator ;\n\trdfs:isDefinedBy sh: .\n\nsh:propertyValidator\n\ta rdf:Property ;\n\trdfs:label \"property validator\"@en ;\n\trdfs:comment \"The validator(s) used to evaluate a constraint in the context of a property shape.\"@en ;\n\trdfs:domain sh:ConstraintComponent ;\n\trdfs:range sh:Validator ;\n\trdfs:isDefinedBy sh: .\n\nsh:Validator\n\ta rdfs:Class ;\n\trdfs:label \"Validator\"@en ;\n\trdfs:comment \"The class of validators, which provide instructions on how to process a constraint definition. This class serves as base class for the SPARQL-based validators and other possible implementations.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLAskValidator\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL ASK Validator\"@en ;\n\trdfs:comment \"The class of validators based on SPARQL ASK queries. The queries are evaluated for each value node and are supposed to return true if the given node conforms.\"@en ;\n\trdfs:subClassOf sh:Validator ;\n\trdfs:subClassOf sh:SPARQLAskExecutable ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLSelectValidator\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL SELECT Validator\"@en ;\n\trdfs:comment \"The class of validators based on SPARQL SELECT queries. The queries are evaluated for each focus node and are supposed to produce bindings for all focus nodes that do not conform.\"@en ;\n\trdfs:subClassOf sh:Validator ;\n\trdfs:subClassOf sh:SPARQLSelectExecutable ;\n\trdfs:isDefinedBy sh: .\n\n\n# Library of Core Constraint Components and their properties ------------------\n\nsh:AndConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"And Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to test whether a value node conforms to all members of a provided list of shapes.\"@en ;\n\tsh:parameter sh:AndConstraintComponent-and ;\n\trdfs:isDefinedBy sh: .\n\nsh:AndConstraintComponent-and\n\ta sh:Parameter ;\n\tsh:path sh:and ;\n\trdfs:isDefinedBy sh: .\n\nsh:and\n\ta rdf:Property ;\n\trdfs:label \"and\"@en ;\n\trdfs:comment \"RDF list of shapes to validate the value nodes against.\"@en ;\n\trdfs:range rdf:List ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:ClassConstraintComponent \n\ta sh:ConstraintComponent ;\n\trdfs:label \"Class Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that each value node is an instance of a given type.\"@en ;\n\tsh:parameter sh:ClassConstraintComponent-class ;\n\trdfs:isDefinedBy sh: .\n\nsh:ClassConstraintComponent-class\n\ta sh:Parameter ;\n\tsh:path sh:class ;\n\tsh:nodeKind sh:IRI ;\n\trdfs:isDefinedBy sh: .\n\nsh:class\n\ta rdf:Property ;\n\trdfs:label \"class\"@en ;\n\trdfs:comment \"The type that all value nodes must have.\"@en ;\n\trdfs:range rdfs:Class ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:ClosedConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Closed Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to indicate that focus nodes must only have values for those properties that have been explicitly enumerated via sh:property/sh:path.\"@en ;\n\tsh:parameter sh:ClosedConstraintComponent-closed ;\n\tsh:parameter sh:ClosedConstraintComponent-ignoredProperties ;\n\trdfs:isDefinedBy sh: .\n\nsh:ClosedConstraintComponent-closed\n\ta sh:Parameter ; \n\tsh:path sh:closed ;\n\tsh:datatype xsd:boolean ;\n\trdfs:isDefinedBy sh: .\n\nsh:ClosedConstraintComponent-ignoredProperties\n\ta sh:Parameter ;\n\tsh:path sh:ignoredProperties ;\n\tsh:optional true ;\n\trdfs:isDefinedBy sh: .\n\nsh:closed\n\ta rdf:Property ;\n\trdfs:label \"closed\"@en ;\n\trdfs:comment \"If set to true then the shape is closed.\"@en ;\n\trdfs:range xsd:boolean ;\n\trdfs:isDefinedBy sh: .\n\nsh:ignoredProperties\n\ta rdf:Property ;\n\trdfs:label \"ignored properties\"@en ;\n\trdfs:comment \"An optional RDF list of properties that are also permitted in addition to those explicitly enumerated via sh:property/sh:path.\"@en ;\n\trdfs:range rdf:List ; # members: rdf:Property\n\trdfs:isDefinedBy sh: .\n\n\nsh:DatatypeConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Datatype Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the datatype of all value nodes.\"@en ;\n\tsh:parameter sh:DatatypeConstraintComponent-datatype ;\n\trdfs:isDefinedBy sh: .\n\nsh:DatatypeConstraintComponent-datatype\n\ta sh:Parameter ;\n\tsh:path sh:datatype ;\n\tsh:nodeKind sh:IRI ;\n\tsh:maxCount 1 ;\n\trdfs:isDefinedBy sh: .\n\nsh:datatype\n\ta rdf:Property ;\n\trdfs:label \"datatype\"@en ;\n\trdfs:comment \"Specifies an RDF datatype that all value nodes must have.\"@en ;\n\trdfs:range rdfs:Datatype ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:DisjointConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Disjoint Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that the set of value nodes is disjoint with the the set of nodes that have the focus node as subject and the value of a given property as predicate.\"@en ;\n\tsh:parameter sh:DisjointConstraintComponent-disjoint ;\n\trdfs:isDefinedBy sh: .\n\nsh:DisjointConstraintComponent-disjoint\n\ta sh:Parameter ;\n\tsh:path sh:disjoint ;\n\tsh:nodeKind sh:IRI ;\n\trdfs:isDefinedBy sh: .\n\nsh:disjoint\n\ta rdf:Property ;\n\trdfs:label \"disjoint\"@en ;\n\trdfs:comment \"Specifies a property where the set of values must be disjoint with the value nodes.\"@en ;\n\trdfs:range rdf:Property ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:EqualsConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Equals Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that the set of value nodes is equal to the set of nodes that have the focus node as subject and the value of a given property as predicate.\"@en ;\n\tsh:parameter sh:EqualsConstraintComponent-equals ;\n\trdfs:isDefinedBy sh: .\n\nsh:EqualsConstraintComponent-equals\n\ta sh:Parameter ;\n\tsh:path sh:equals ;\n\tsh:nodeKind sh:IRI ;\n\trdfs:isDefinedBy sh: .\n\nsh:equals\n\ta rdf:Property ;\n\trdfs:label \"equals\"@en ;\n\trdfs:comment \"Specifies a property that must have the same values as the value nodes.\"@en ;\n\trdfs:range rdf:Property ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:HasValueConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Has-value Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that one of the value nodes is a given RDF node.\"@en ;\n\tsh:parameter sh:HasValueConstraintComponent-hasValue ;\n\trdfs:isDefinedBy sh: .\n\nsh:HasValueConstraintComponent-hasValue\n\ta sh:Parameter ;\n\tsh:path sh:hasValue ;\n\trdfs:isDefinedBy sh: .\n\nsh:hasValue\n\ta rdf:Property ;\n\trdfs:label \"has value\"@en ;\n\trdfs:comment \"Specifies a value that must be among the value nodes.\"@en ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:InConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"In Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to exclusively enumerate the permitted value nodes.\"@en ;\n\tsh:parameter sh:InConstraintComponent-in ;\n\trdfs:isDefinedBy sh: .\n\nsh:InConstraintComponent-in\n\ta sh:Parameter ;\n\tsh:path sh:in ;\n\tsh:maxCount 1 ;\n\trdfs:isDefinedBy sh: .\n\nsh:in\n\ta rdf:Property ;\n\trdfs:label \"in\"@en ;\n\trdfs:comment \"Specifies a list of allowed values so that each value node must be among the members of the given list.\"@en ;\n\trdfs:range rdf:List ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:LanguageInConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Language-in Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to enumerate language tags that all value nodes must have.\"@en ;\n\tsh:parameter sh:LanguageInConstraintComponent-languageIn ;\n\trdfs:isDefinedBy sh: .\n\nsh:LanguageInConstraintComponent-languageIn\n\ta sh:Parameter ;\n\tsh:path sh:languageIn ;\n\tsh:maxCount 1 ;\n\trdfs:isDefinedBy sh: .\n\nsh:languageIn\n\ta rdf:Property ;\n\trdfs:label \"language in\"@en ;\n\trdfs:comment \"Specifies a list of language tags that all value nodes must have.\"@en ;\n\trdfs:range rdf:List ; # members: xsd:string\n\trdfs:isDefinedBy sh: .\n\n\nsh:LessThanConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Less-than Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that each value node is smaller than all the nodes that have the focus node as subject and the value of a given property as predicate.\"@en ;\n\tsh:parameter sh:LessThanConstraintComponent-lessThan ;\n\trdfs:isDefinedBy sh: .\n\nsh:LessThanConstraintComponent-lessThan\n\ta sh:Parameter ;\n\tsh:path sh:lessThan ;\n\tsh:nodeKind sh:IRI ;\n\trdfs:isDefinedBy sh: .\n\nsh:lessThan\n\ta rdf:Property ;\n\trdfs:label \"less than\"@en ;\n\trdfs:comment \"Specifies a property that must have smaller values than the value nodes.\"@en ;\n\trdfs:range rdf:Property ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:LessThanOrEqualsConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Less-than-or-equals Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that every value node is smaller than all the nodes that have the focus node as subject and the value of a given property as predicate.\"@en ;\n\tsh:parameter sh:LessThanOrEqualsConstraintComponent-lessThanOrEquals ;\n\trdfs:isDefinedBy sh: .\n\nsh:LessThanOrEqualsConstraintComponent-lessThanOrEquals\n\ta sh:Parameter ;\n\tsh:path sh:lessThanOrEquals ;\n\tsh:nodeKind sh:IRI ;\n\trdfs:isDefinedBy sh: .\n\nsh:lessThanOrEquals\n\ta rdf:Property ;\n\trdfs:label \"less than or equals\"@en ;\n\trdfs:comment \"Specifies a property that must have smaller or equal values than the value nodes.\"@en ;\n\trdfs:range rdf:Property ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:MaxCountConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Max-count Constraint ConstraintComponentomponent\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the maximum number of value nodes.\"@en ;\n\tsh:parameter sh:MaxCountConstraintComponent-maxCount ;\n\trdfs:isDefinedBy sh: .\n\nsh:MaxCountConstraintComponent-maxCount\n\ta sh:Parameter ;\n\tsh:path sh:maxCount ;\n\tsh:datatype xsd:integer ;\n\tsh:maxCount 1 ;\n\trdfs:isDefinedBy sh: .\n\nsh:maxCount\n\ta rdf:Property ;\n\trdfs:label \"max count\"@en ;\n\trdfs:comment \"Specifies the maximum number of values in the set of value nodes.\"@en ;\n\trdfs:range xsd:integer ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:MaxExclusiveConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Max-exclusive Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the range of value nodes with a maximum exclusive value.\"@en ;\n\tsh:parameter sh:MaxExclusiveConstraintComponent-maxExclusive ;\n\trdfs:isDefinedBy sh: .\n\nsh:MaxExclusiveConstraintComponent-maxExclusive\n\ta sh:Parameter ;\n\tsh:path sh:maxExclusive ;\n\tsh:maxCount 1 ;\n\tsh:nodeKind sh:Literal ;\n\trdfs:isDefinedBy sh: .\n\nsh:maxExclusive\n\ta rdf:Property ;\n\trdfs:label \"max exclusive\"@en ;\n\trdfs:comment \"Specifies the maximum exclusive value of each value node.\"@en ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:MaxInclusiveConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Max-inclusive Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the range of value nodes with a maximum inclusive value.\"@en ;\n\tsh:parameter sh:MaxInclusiveConstraintComponent-maxInclusive ;\n\trdfs:isDefinedBy sh: .\n\nsh:MaxInclusiveConstraintComponent-maxInclusive\n\ta sh:Parameter ;\n\tsh:path sh:maxInclusive ;\n\tsh:maxCount 1 ;\n\tsh:nodeKind sh:Literal ;\n\trdfs:isDefinedBy sh: .\n\nsh:maxInclusive\n\ta rdf:Property ;\n\trdfs:label \"max inclusive\"@en ;\n\trdfs:comment \"Specifies the maximum inclusive value of each value node.\"@en ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:MaxLengthConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Max-length Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the maximum string length of value nodes.\"@en ;\n\tsh:parameter sh:MaxLengthConstraintComponent-maxLength ;\n\trdfs:isDefinedBy sh: .\n\nsh:MaxLengthConstraintComponent-maxLength\n\ta sh:Parameter ;\n\tsh:path sh:maxLength ;\n\tsh:datatype xsd:integer ;\n\tsh:maxCount 1 ;\n\trdfs:isDefinedBy sh: .\n\nsh:maxLength\n\ta rdf:Property ;\n\trdfs:label \"max length\"@en ;\n\trdfs:comment \"Specifies the maximum string length of each value node.\"@en ;\n\trdfs:range xsd:integer ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:MinCountConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Min-count Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the minimum number of value nodes.\"@en ;\n\tsh:parameter sh:MinCountConstraintComponent-minCount ;\n\trdfs:isDefinedBy sh: .\n\nsh:MinCountConstraintComponent-minCount\n\ta sh:Parameter ;\n\tsh:path sh:minCount ;\n\tsh:datatype xsd:integer ;\n\tsh:maxCount 1 ;\n\trdfs:isDefinedBy sh: .\n\nsh:minCount\n\ta rdf:Property ;\n\trdfs:label \"min count\"@en ;\n\trdfs:comment \"Specifies the minimum number of values in the set of value nodes.\"@en ;\n\trdfs:range xsd:integer ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:MinExclusiveConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Min-exclusive Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the range of value nodes with a minimum exclusive value.\"@en ;\n\tsh:parameter sh:MinExclusiveConstraintComponent-minExclusive ;\n\trdfs:isDefinedBy sh: .\n\nsh:MinExclusiveConstraintComponent-minExclusive\n\ta sh:Parameter ;\n\tsh:path sh:minExclusive ;\n\tsh:maxCount 1 ;\n\tsh:nodeKind sh:Literal ;\n\trdfs:isDefinedBy sh: .\n\nsh:minExclusive\n\ta rdf:Property ;\n\trdfs:label \"min exclusive\"@en ;\n\trdfs:comment \"Specifies the minimum exclusive value of each value node.\"@en ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:MinInclusiveConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Min-inclusive Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the range of value nodes with a minimum inclusive value.\"@en ;\n\tsh:parameter sh:MinInclusiveConstraintComponent-minInclusive ;\n\trdfs:isDefinedBy sh: .\n\nsh:MinInclusiveConstraintComponent-minInclusive\n\ta sh:Parameter ;\n\tsh:path sh:minInclusive ;\n\tsh:maxCount 1 ;\n\tsh:nodeKind sh:Literal ;\n\trdfs:isDefinedBy sh: .\n\nsh:minInclusive\n\ta rdf:Property ;\n\trdfs:label \"min inclusive\"@en ;\n\trdfs:comment \"Specifies the minimum inclusive value of each value node.\"@en ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:MinLengthConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Min-length Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the minimum string length of value nodes.\"@en ;\n\tsh:parameter sh:MinLengthConstraintComponent-minLength ;\n\trdfs:isDefinedBy sh: .\n\nsh:MinLengthConstraintComponent-minLength\n\ta sh:Parameter ;\n\tsh:path sh:minLength ;\n\tsh:datatype xsd:integer ;\n\tsh:maxCount 1 ;\n\trdfs:isDefinedBy sh: .\n\nsh:minLength\n\ta rdf:Property ;\n\trdfs:label \"min length\"@en ;\n\trdfs:comment \"Specifies the minimum string length of each value node.\"@en ;\n\trdfs:range xsd:integer ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:NodeConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Node Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that all value nodes conform to the given node shape.\"@en ;\n\tsh:parameter sh:NodeConstraintComponent-node ;\n\trdfs:isDefinedBy sh: .\n\nsh:NodeConstraintComponent-node\n\ta sh:Parameter ;\n\tsh:path sh:node ;\n\trdfs:isDefinedBy sh: .\n\nsh:node\n\ta rdf:Property ;\n\trdfs:label \"node\"@en ;\n\trdfs:comment \"Specifies the node shape that all value nodes must conform to.\"@en ;\n\trdfs:range sh:NodeShape ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:NodeKindConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Node-kind Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the RDF node kind of each value node.\"@en ;\n\tsh:parameter sh:NodeKindConstraintComponent-nodeKind ;\n\trdfs:isDefinedBy sh: .\n\nsh:NodeKindConstraintComponent-nodeKind\n\ta sh:Parameter ;\n\tsh:path sh:nodeKind ;\n\tsh:in ( sh:BlankNode sh:IRI sh:Literal sh:BlankNodeOrIRI sh:BlankNodeOrLiteral sh:IRIOrLiteral ) ;\n\tsh:maxCount 1 ;\n\trdfs:isDefinedBy sh: .\n\nsh:nodeKind\n\ta rdf:Property ;\n\trdfs:label \"node kind\"@en ;\n\trdfs:comment \"Specifies the node kind (e.g. IRI or literal) each value node.\"@en ;\n\trdfs:range sh:NodeKind ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:NotConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Not Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that value nodes do not conform to a given shape.\"@en ;\n\tsh:parameter sh:NotConstraintComponent-not ;\n\trdfs:isDefinedBy sh: .\n\nsh:NotConstraintComponent-not\n\ta sh:Parameter ;\n\tsh:path sh:not ;\n\trdfs:isDefinedBy sh: .\n\nsh:not\n\ta rdf:Property ;\n\trdfs:label \"not\"@en ;\n\trdfs:comment \"Specifies a shape that the value nodes must not conform to.\"@en ;\n\trdfs:range sh:Shape ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:OrConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Or Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the value nodes so that they conform to at least one out of several provided shapes.\"@en ;\n\tsh:parameter sh:OrConstraintComponent-or ;\n\trdfs:isDefinedBy sh: .\n\nsh:OrConstraintComponent-or\n\ta sh:Parameter ;\n\tsh:path sh:or ;\n\trdfs:isDefinedBy sh: .\n\nsh:or\n\ta rdf:Property ;\n\trdfs:label \"or\"@en ;\n\trdfs:comment \"Specifies a list of shapes so that the value nodes must conform to at least one of the shapes.\"@en ;\n\trdfs:range rdf:List ; # members: sh:Shape ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:PatternConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Pattern Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that every value node matches a given regular expression.\"@en ;\n\tsh:parameter sh:PatternConstraintComponent-pattern ;\n\tsh:parameter sh:PatternConstraintComponent-flags ;\n\trdfs:isDefinedBy sh: .\n\nsh:PatternConstraintComponent-pattern\n\ta sh:Parameter ;\n\tsh:path sh:pattern ;\n\tsh:datatype xsd:string ;\n\trdfs:isDefinedBy sh: .\n\nsh:PatternConstraintComponent-flags\n\ta sh:Parameter ;\n\tsh:path sh:flags ;\n\tsh:datatype xsd:string ;\n\tsh:optional true ;\n\trdfs:isDefinedBy sh: .\n\nsh:flags\n\ta rdf:Property ;\n\trdfs:label \"flags\"@en ;\n\trdfs:comment \"An optional flag to be used with regular expression pattern matching.\"@en ;\n\trdfs:range xsd:string ;\n\trdfs:isDefinedBy sh: .\n\nsh:pattern\n\ta rdf:Property ;\n\trdfs:label \"pattern\"@en ;\n\trdfs:comment \"Specifies a regular expression pattern that the string representations of the value nodes must match.\"@en ;\n\trdfs:range xsd:string ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:PropertyConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Property Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that all value nodes conform to the given property shape.\"@en ;\n\tsh:parameter sh:PropertyConstraintComponent-property ;\n\trdfs:isDefinedBy sh: .\n\nsh:PropertyConstraintComponent-property\n\ta sh:Parameter ;\n\tsh:path sh:property ;\n\trdfs:isDefinedBy sh: .\n\nsh:property\n\ta rdf:Property ;\n\trdfs:label \"property\"@en ;\n\trdfs:comment \"Links a shape to its property shapes.\"@en ;\n\trdfs:domain sh:Shape ;\n\trdfs:range sh:PropertyShape ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:QualifiedMaxCountConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Qualified-max-count Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that a specified maximum number of value nodes conforms to a given shape.\"@en ;\n\tsh:parameter sh:QualifiedMaxCountConstraintComponent-qualifiedMaxCount ;\n\tsh:parameter sh:QualifiedMaxCountConstraintComponent-qualifiedValueShape ;\n\tsh:parameter sh:QualifiedMaxCountConstraintComponent-qualifiedValueShapesDisjoint ;\n\trdfs:isDefinedBy sh: .\n\nsh:QualifiedMaxCountConstraintComponent-qualifiedMaxCount\n\ta sh:Parameter ;\n\tsh:path sh:qualifiedMaxCount ;\n\tsh:datatype xsd:integer ;\n\trdfs:isDefinedBy sh: .\n\nsh:QualifiedMaxCountConstraintComponent-qualifiedValueShape\n\ta sh:Parameter ;\n\tsh:path sh:qualifiedValueShape ;\n\trdfs:isDefinedBy sh: .\n\nsh:QualifiedMaxCountConstraintComponent-qualifiedValueShapesDisjoint\n\ta sh:Parameter ;\n\tsh:path sh:qualifiedValueShapesDisjoint ;\n\tsh:datatype xsd:boolean ;\n\tsh:optional true ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:QualifiedMinCountConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Qualified-min-count Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that a specified minimum number of value nodes conforms to a given shape.\"@en ;\n\tsh:parameter sh:QualifiedMinCountConstraintComponent-qualifiedMinCount ;\n\tsh:parameter sh:QualifiedMinCountConstraintComponent-qualifiedValueShape ;\n\tsh:parameter sh:QualifiedMinCountConstraintComponent-qualifiedValueShapesDisjoint ;\n\trdfs:isDefinedBy sh: .\n\nsh:QualifiedMinCountConstraintComponent-qualifiedMinCount\n\ta sh:Parameter ;\n\tsh:path sh:qualifiedMinCount ;\n\tsh:datatype xsd:integer ;\n\trdfs:isDefinedBy sh: .\n\nsh:QualifiedMinCountConstraintComponent-qualifiedValueShape\n\ta sh:Parameter ;\n\tsh:path sh:qualifiedValueShape ;\n\trdfs:isDefinedBy sh: .\n\nsh:QualifiedMinCountConstraintComponent-qualifiedValueShapesDisjoint\n\ta sh:Parameter ;\n\tsh:path sh:qualifiedValueShapesDisjoint ;\n\tsh:datatype xsd:boolean ;\n\tsh:optional true ;\n\trdfs:isDefinedBy sh: .\n\nsh:qualifiedMaxCount\n\ta rdf:Property ;\n\trdfs:label \"qualified max count\"@en ;\n\trdfs:comment \"The maximum number of value nodes that can conform to the shape.\"@en ;\n\trdfs:range xsd:integer ;\n\trdfs:isDefinedBy sh: .\n\nsh:qualifiedMinCount\n\ta rdf:Property ;\n\trdfs:label \"qualified min count\"@en ;\n\trdfs:comment \"The minimum number of value nodes that must conform to the shape.\"@en ;\n\trdfs:range xsd:integer ;\n\trdfs:isDefinedBy sh: .\n\nsh:qualifiedValueShape\n\ta rdf:Property ;\n\trdfs:label \"qualified value shape\"@en ;\n\trdfs:comment \"The shape that a specified number of values must conform to.\"@en ;\n\trdfs:range sh:Shape ;\n\trdfs:isDefinedBy sh: .\n\t\nsh:qualifiedValueShapesDisjoint\n\ta rdf:Property ;\n\trdfs:label \"qualified value shapes disjoint\"@en ;\n\trdfs:comment \"Can be used to mark the qualified value shape to be disjoint with its sibling shapes.\"@en ;\n\trdfs:range xsd:boolean ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:UniqueLangConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Unique-languages Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to specify that no pair of value nodes may use the same language tag.\"@en ;\n\tsh:parameter sh:UniqueLangConstraintComponent-uniqueLang ;\n\trdfs:isDefinedBy sh: .\n\nsh:UniqueLangConstraintComponent-uniqueLang\n\ta sh:Parameter ;\n\tsh:path sh:uniqueLang ;\n\tsh:datatype xsd:boolean ;\n\tsh:maxCount 1 ;\n\trdfs:isDefinedBy sh: .\n\nsh:uniqueLang\n\ta rdf:Property ;\n\trdfs:label \"unique languages\"@en ;\n\trdfs:comment \"Specifies whether all node values must have a unique (or no) language tag.\"@en ;\n\trdfs:range xsd:boolean ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:XoneConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Exactly one Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the value nodes so that they conform to exactly one out of several provided shapes.\"@en ;\n\tsh:parameter sh:XoneConstraintComponent-xone ;\n\trdfs:isDefinedBy sh: .\n\nsh:XoneConstraintComponent-xone\n\ta sh:Parameter ;\n\tsh:path sh:xone ;\n\trdfs:isDefinedBy sh: .\n\nsh:xone\n\ta rdf:Property ;\n\trdfs:label \"exactly one\"@en ;\n\trdfs:comment \"Specifies a list of shapes so that the value nodes must conform to exactly one of the shapes.\"@en ;\n\trdfs:range rdf:List ; # members: sh:Shape ;\n\trdfs:isDefinedBy sh: .\n\n\n# General SPARQL execution support --------------------------------------------\n\nsh:SPARQLExecutable\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL Executable\"@en ;\n\trdfs:comment \"The class of resources that encapsulate a SPARQL query.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLAskExecutable\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL ASK Executable\"@en ;\n\trdfs:comment \"The class of SPARQL executables that are based on an ASK query.\"@en ;\n\trdfs:subClassOf sh:SPARQLExecutable ;\n\trdfs:isDefinedBy sh: .\n\nsh:ask\n\ta rdf:Property ;\n\trdfs:label \"ask\"@en ;\n\trdfs:comment \"The SPARQL ASK query to execute.\"@en ;\n\trdfs:domain sh:SPARQLAskExecutable ;\n\trdfs:range xsd:string ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLConstructExecutable\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL CONSTRUCT Executable\"@en ;\n\trdfs:comment \"The class of SPARQL executables that are based on a CONSTRUCT query.\"@en ;\n\trdfs:subClassOf sh:SPARQLExecutable ;\n\trdfs:isDefinedBy sh: .\n\nsh:construct\n\ta rdf:Property ;\n\trdfs:label \"construct\"@en ;\n\trdfs:comment \"The SPARQL CONSTRUCT query to execute.\"@en ;\n\trdfs:domain sh:SPARQLConstructExecutable ;\n\trdfs:range xsd:string ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLSelectExecutable\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL SELECT Executable\"@en ;\n\trdfs:comment \"The class of SPARQL executables based on a SELECT query.\"@en ;\n\trdfs:subClassOf sh:SPARQLExecutable ;\n\trdfs:isDefinedBy sh: .\n\nsh:select\n\ta rdf:Property ;\n\trdfs:label \"select\"@en ;\n\trdfs:comment \"The SPARQL SELECT query to execute.\"@en ;\n\trdfs:range xsd:string ;\n\trdfs:domain sh:SPARQLSelectExecutable ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLUpdateExecutable\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL UPDATE Executable\"@en ;\n\trdfs:comment \"The class of SPARQL executables based on a SPARQL UPDATE.\"@en ;\n\trdfs:subClassOf sh:SPARQLExecutable ;\n\trdfs:isDefinedBy sh: .\n\nsh:update\n\ta rdf:Property ;\n\trdfs:label \"update\"@en ;\n\trdfs:comment \"The SPARQL UPDATE to execute.\"@en ;\n\trdfs:domain sh:SPARQLUpdateExecutable ;\n\trdfs:range xsd:string ;\n\trdfs:isDefinedBy sh: .\n\nsh:prefixes\n\ta rdf:Property ;\n\trdfs:label \"prefixes\"@en ;\n\trdfs:comment \"The prefixes that shall be applied before parsing the associated SPARQL query.\"@en ;\n\trdfs:domain sh:SPARQLExecutable ;\n\trdfs:range owl:Ontology ;\n\trdfs:isDefinedBy sh: .\n\nsh:PrefixDeclaration\n\ta rdfs:Class ;\n\trdfs:label \"Prefix Declaration\"@en ;\n\trdfs:comment \"The class of prefix declarations, consisting of pairs of a prefix with a namespace.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:declare\n\ta rdf:Property ;\n\trdfs:label \"declare\"@en ;\n\trdfs:comment \"Links a resource with its namespace prefix declarations.\"@en ;\n\trdfs:domain owl:Ontology ;\n\trdfs:range sh:PrefixDeclaration ;\n\trdfs:isDefinedBy sh: .\n\nsh:prefix\n\ta rdf:Property ;\n\trdfs:label \"prefix\"@en ;\n\trdfs:comment \"The prefix of a prefix declaration.\"@en ;\n\trdfs:domain sh:PrefixDeclaration ;\n\trdfs:range xsd:string ;\n\trdfs:isDefinedBy sh: .\n\nsh:namespace\n\ta rdf:Property ;\n\trdfs:label \"namespace\"@en ;\n\trdfs:comment \"The namespace associated with a prefix in a prefix declaration.\"@en ;\n\trdfs:domain sh:PrefixDeclaration ;\n\trdfs:range xsd:anyURI ;\n\trdfs:isDefinedBy sh: .\n\t\n\n# SPARQL-based Constraints support --------------------------------------------\n\nsh:SPARQLConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"SPARQL Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to define constraints based on SPARQL queries.\"@en ;\n\tsh:parameter sh:SPARQLConstraintComponent-sparql ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLConstraintComponent-sparql\n\ta sh:Parameter ;\n\tsh:path sh:sparql ;\n\trdfs:isDefinedBy sh: .\n\nsh:sparql\n\ta rdf:Property ;\n\trdfs:label \"constraint (in SPARQL)\"@en ;\n\trdfs:comment \"Links a shape with SPARQL constraints.\"@en ;\n\trdfs:domain sh:Shape ;\n\trdfs:range sh:SPARQLConstraint ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLConstraint\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL Constraint\"@en ;\n\trdfs:comment \"The class of constraints based on SPARQL SELECT queries.\"@en ;\n\trdfs:subClassOf sh:SPARQLSelectExecutable ;\n\trdfs:isDefinedBy sh: .\n\n\n# Non-validating constraint properties ----------------------------------------\n\nsh:defaultValue\n\ta rdf:Property ;\n\trdfs:label \"default value\"@en ;\n\trdfs:comment \"A default value for a property, for example for user interface tools to pre-populate input fields.\"@en ;\n\trdfs:domain sh:PropertyShape ;\n\trdfs:isDefinedBy sh: .\n\nsh:description\n\ta rdf:Property ;\n\trdfs:label \"description\"@en ;\n\trdfs:comment \"Human-readable descriptions for the property in the context of the surrounding shape.\"@en ;\n\trdfs:domain sh:PropertyShape ;\n\t# range: xsd:string or rdf:langString\n\trdfs:isDefinedBy sh: .\n\nsh:group\n\ta rdf:Property ;\n\trdfs:label \"group\"@en ;\n\trdfs:comment \"Can be used to link to a property group to indicate that a property shape belongs to a group of related property shapes.\"@en ;\n\trdfs:domain sh:PropertyShape ;\n\trdfs:range sh:PropertyGroup ;\n\trdfs:isDefinedBy sh: .\n\nsh:name\n\ta rdf:Property ;\n\trdfs:label \"name\"@en ;\n\trdfs:comment \"Human-readable labels for the property in the context of the surrounding shape.\"@en ;\n\trdfs:domain sh:PropertyShape ;\n\t# range: xsd:string or rdf:langString\n\trdfs:isDefinedBy sh: .\n\nsh:order\n\ta rdf:Property ;\n\trdfs:label \"order\"@en ;\n\trdfs:comment \"Specifies the relative order of this compared to its siblings. For example use 0 for the first, 1 for the second.\"@en ;\n\t# range: xsd:decimal or xsd:integer ;\n\trdfs:isDefinedBy sh: .\n\nsh:PropertyGroup\n\ta rdfs:Class ;\n\trdfs:label \"Property Group\"@en ;\n\trdfs:comment \"Instances of this class represent groups of property shapes that belong together.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\n\n# -----------------------------------------------------------------------------\n# SHACL ADVANCED FEATURES -----------------------------------------------------\n# -----------------------------------------------------------------------------\n\t\n\n# Advanced Target vocabulary --------------------------------------------------\n\nsh:target\n\ta rdf:Property ;\n\trdfs:label \"target\"@en ;\n\trdfs:comment \"Links a shape to a target specified by an extension language, for example instances of sh:SPARQLTarget.\"@en ;\n\trdfs:domain sh:Shape ;\n\trdfs:range sh:Target ;\n\trdfs:isDefinedBy sh: .\n\nsh:Target\n\ta rdfs:Class ;\n\trdfs:label \"Target\"@en ;\n\trdfs:comment \"The base class of targets such as those based on SPARQL queries.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:TargetType\n\ta rdfs:Class ;\n\trdfs:label \"Target Type\"@en ;\n\trdfs:comment \"The (meta) class for parameterizable targets.\tInstances of this are instantiated as values of the sh:target property.\"@en ;\n\trdfs:subClassOf rdfs:Class ;\n\trdfs:subClassOf sh:Parameterizable ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLTarget\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL Target\"@en ;\n\trdfs:comment \"The class of targets that are based on SPARQL queries.\"@en ;\n\trdfs:subClassOf sh:Target ;\n\trdfs:subClassOf sh:SPARQLAskExecutable ;\n\trdfs:subClassOf sh:SPARQLSelectExecutable ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLTargetType\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL Target Type\"@en ;\n\trdfs:comment \"The (meta) class for parameterizable targets that are based on SPARQL queries.\"@en ;\n\trdfs:subClassOf sh:TargetType ;\n\trdfs:subClassOf sh:SPARQLAskExecutable ;\n\trdfs:subClassOf sh:SPARQLSelectExecutable ;\n\trdfs:isDefinedBy sh: .\n\n\n# Functions Vocabulary --------------------------------------------------------\n\nsh:Function\n\ta rdfs:Class ;\n\trdfs:label \"Function\"@en ;\n\trdfs:comment \"The class of SHACL functions.\"@en ;\n\trdfs:subClassOf sh:Parameterizable ;\n\trdfs:isDefinedBy sh: .\n\nsh:returnType\n\ta rdf:Property ;\n\trdfs:label \"return type\"@en ;\n\trdfs:comment \"The expected type of values returned by the associated function.\"@en ;\n\trdfs:domain sh:Function ;\n\trdfs:range rdfs:Class ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLFunction\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL Function\"@en ;\n\trdfs:comment \"A function backed by a SPARQL query - either ASK or SELECT.\"@en ;\n\trdfs:subClassOf sh:Function ;\n\trdfs:subClassOf sh:SPARQLAskExecutable ;\n\trdfs:subClassOf sh:SPARQLSelectExecutable ;\n\trdfs:isDefinedBy sh: .\n\n\n# Result Annotations ----------------------------------------------------------\n\nsh:resultAnnotation\n\ta rdf:Property ;\n\trdfs:label \"result annotation\"@en ;\n\trdfs:comment \"Links a SPARQL validator with zero or more sh:ResultAnnotation instances, defining how to derive additional result properties based on the variables of the SELECT query.\"@en ;\n\trdfs:domain sh:SPARQLSelectValidator ;\n\trdfs:range sh:ResultAnnotation ;\n\trdfs:isDefinedBy sh: .\n\nsh:ResultAnnotation\n\ta rdfs:Class ;\n\trdfs:label \"Result Annotation\"@en ;\n\trdfs:comment \"A class of result annotations, which define the rules to derive the values of a given annotation property as extra values for a validation result.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:annotationProperty\n\ta rdf:Property ;\n\trdfs:label \"annotation property\"@en ;\n\trdfs:comment \"The annotation property that shall be set.\"@en ;\n\trdfs:domain sh:ResultAnnotation ;\n\trdfs:range rdf:Property ;\n\trdfs:isDefinedBy sh: .\n\nsh:annotationValue\n\ta rdf:Property ;\n\trdfs:label \"annotation value\"@en ;\n\trdfs:comment \"The (default) values of the annotation property.\"@en ;\n\trdfs:domain sh:ResultAnnotation ;\n\trdfs:isDefinedBy sh: .\n\nsh:annotationVarName\n\ta rdf:Property ;\n\trdfs:label \"annotation variable name\"@en ;\n\trdfs:comment \"The name of the SPARQL variable from the SELECT clause that shall be used for the values.\"@en ;\n\trdfs:domain sh:ResultAnnotation ;\n\trdfs:range xsd:string ;\n\trdfs:isDefinedBy sh: .\n\n\t\n# Node Expressions ------------------------------------------------------------\n\nsh:this\n\ta rdfs:Resource ;\n\trdfs:label \"this\"@en ;\n\trdfs:comment \"A node expression that represents the current focus node.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:filterShape\n\ta rdf:Property ;\n\trdfs:label \"filter shape\"@en ;\n\trdfs:comment \"The shape that all input nodes of the expression need to conform to.\"@en ;\n\trdfs:range sh:Shape ;\n\trdfs:isDefinedBy sh: .\n\nsh:nodes\n\ta rdf:Property ;\n\trdfs:label \"nodes\"@en ;\n\trdfs:comment \"The node expression producing the input nodes of a filter shape expression.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:intersection\n\ta rdf:Property ;\n\trdfs:label \"intersection\"@en ;\n\trdfs:comment \"A list of node expressions that shall be intersected.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:union\n\ta rdf:Property ;\n\trdfs:label \"union\"@en ;\n\trdfs:comment \"A list of node expressions that shall be used together.\"@en ;\n\trdfs:isDefinedBy sh: .\n\n\n# Expression Constraints ------------------------------------------------------\n\nsh:ExpressionConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Expression Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that a given node expression produces true for all value nodes.\"@en ;\n\tsh:parameter sh:ExpressionConstraintComponent-expression ;\n\trdfs:isDefinedBy sh: .\n\nsh:ExpressionConstraintComponent-expression\n\ta sh:Parameter ;\n\tsh:path sh:expression ;\n\trdfs:isDefinedBy sh: .\n\nsh:expression\n\ta rdf:Property ;\n\trdfs:label \"expression\"@en ;\n\trdfs:comment \"The node expression that must return true for the value nodes.\"@en ;\n\trdfs:isDefinedBy sh: .\n\n\n# Rules -----------------------------------------------------------------------\n\nsh:Rule\n\ta rdfs:Class ;\n\trdfs:label \"Rule\"@en ;\n\trdfs:comment \"The class of SHACL rules. Never instantiated directly.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:rule\n\ta rdf:Property ;\n\trdfs:label \"rule\"@en ;\n\trdfs:comment \"The rules linked to a shape.\"@en ;\n\trdfs:domain sh:Shape ;\n\trdfs:range sh:Rule ;\n\trdfs:isDefinedBy sh: .\n\nsh:condition\n\ta rdf:Property ;\n\trdfs:label \"condition\"@en ;\n\trdfs:comment \"The shapes that the focus nodes need to conform to before a rule is executed on them.\"@en ;\n\trdfs:domain sh:Rule ;\n\trdfs:range sh:Shape ;\n\trdfs:isDefinedBy sh: .\n\nsh:TripleRule\n\ta rdfs:Class ;\n\trdfs:label \"Triple Rule\"@en ;\n\trdfs:comment \"A rule based on triple (subject, predicate, object) pattern.\"@en ;\n\trdfs:subClassOf sh:Rule ;\n\trdfs:isDefinedBy sh: .\n\nsh:subject\n\ta rdf:Property ;\n\trdfs:label \"subject\"@en ;\n\trdfs:comment \"An expression producing the resources that shall be inferred as subjects.\"@en ;\n\trdfs:domain sh:TripleRule ;\n\trdfs:isDefinedBy sh: .\n\nsh:predicate\n\ta rdf:Property ;\n\trdfs:label \"predicate\"@en ;\n\trdfs:comment \"An expression producing the properties that shall be inferred as predicates.\"@en ;\n\trdfs:domain sh:TripleRule ;\n\trdfs:isDefinedBy sh: .\n\nsh:object\n\ta rdf:Property ;\n\trdfs:label \"object\"@en ;\n\trdfs:comment \"An expression producing the nodes that shall be inferred as objects.\"@en ;\n\trdfs:domain sh:TripleRule ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLRule\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL CONSTRUCT Rule\"@en ;\n\trdfs:comment \"The class of SHACL rules based on SPARQL CONSTRUCT queries.\"@en ;\n\trdfs:subClassOf sh:Rule ;\n\trdfs:subClassOf sh:SPARQLConstructExecutable ;\n\trdfs:isDefinedBy sh: .\n\n\n# SHACL-JS --------------------------------------------------------------------\n\nsh:JSExecutable\n\ta rdfs:Class ;\n\trdfs:label \"JavaScript Executable\"@en ;\n\trdfs:comment \"Abstract base class of resources that declare an executable JavaScript.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:JSTarget\n\ta rdfs:Class ;\n\trdfs:label \"JavaScript Target\"@en ;\n\trdfs:comment \"The class of targets that are based on JavaScript functions.\"@en ;\n\trdfs:subClassOf sh:Target ;\n\trdfs:subClassOf sh:JSExecutable ;\n\trdfs:isDefinedBy sh: .\n\nsh:JSTargetType\n\ta rdfs:Class ;\n\trdfs:label \"JavaScript Target Type\"@en ;\n\trdfs:comment \"The (meta) class for parameterizable targets that are based on JavaScript functions.\"@en ;\n\trdfs:subClassOf sh:TargetType ;\n\trdfs:subClassOf sh:JSExecutable ;\n\trdfs:isDefinedBy sh: .\n\nsh:JSConstraint\n\ta rdfs:Class ;\n\trdfs:label \"JavaScript Constraint\"@en ;\n\trdfs:comment \"The class of constraints backed by a JavaScript function.\"@en ;\n\trdfs:subClassOf sh:JSExecutable ;\n\trdfs:isDefinedBy sh: .\n\t\nsh:JSConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"JavaScript Constraint Component\"@en ;\n\trdfs:comment \"A constraint component with the parameter sh:js linking to a sh:JSConstraint containing a sh:script.\"@en ;\n \tsh:parameter sh:JSConstraint-js ;\n\trdfs:isDefinedBy sh: .\n \nsh:JSConstraint-js\n\ta sh:Parameter ;\n\tsh:path sh:js ;\n\trdfs:isDefinedBy sh: .\n\t\nsh:js\n\ta rdf:Property ;\n\trdfs:label \"JavaScript constraint\"@en ;\n\trdfs:comment \"Constraints expressed in JavaScript.\" ;\n \trdfs:range sh:JSConstraint ;\n\trdfs:isDefinedBy sh: .\n\nsh:jsFunctionName\n\ta rdf:Property ;\n\trdfs:label \"JavaScript function name\"@en ;\n\trdfs:comment \"The name of the JavaScript function to execute.\"@en ;\n\trdfs:domain sh:JSExecutable ;\n\trdfs:range xsd:string ;\n\trdfs:isDefinedBy sh: .\n\nsh:jsLibrary\n\ta rdf:Property ;\n\trdfs:label \"JavaScript library\"@en ;\n \trdfs:comment \"Declares which JavaScript libraries are needed to execute this.\"@en ;\n\trdfs:range sh:JSLibrary ;\n\trdfs:isDefinedBy sh: .\n\nsh:jsLibraryURL\n\ta rdf:Property ;\n\trdfs:label \"JavaScript library URL\"@en ;\n\trdfs:comment \"Declares the URLs of a JavaScript library. This should be the absolute URL of a JavaScript file. Implementations may redirect those to local files.\"@en ;\n\trdfs:domain sh:JSLibrary ;\n\trdfs:range xsd:anyURI ;\n\trdfs:isDefinedBy sh: .\n\t\nsh:JSFunction\n\ta rdfs:Class ;\n \trdfs:label \"JavaScript Function\"@en ;\n\trdfs:comment \"The class of SHACL functions that execute a JavaScript function when called.\"@en ;\n\trdfs:subClassOf sh:Function ;\n\trdfs:subClassOf sh:JSExecutable ;\n\trdfs:isDefinedBy sh: .\n\nsh:JSLibrary\n\ta rdfs:Class ;\n\trdfs:label \"JavaScript Library\"@en ;\n\trdfs:comment \"Represents a JavaScript library, typically identified by one or more URLs of files to include.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:JSRule\n\ta rdfs:Class ;\n\trdfs:label \"JavaScript Rule\"@en ;\n\trdfs:comment \"The class of SHACL rules expressed using JavaScript.\"@en ;\n\trdfs:subClassOf sh:JSExecutable ;\n\trdfs:subClassOf sh:Rule ;\n\trdfs:isDefinedBy sh: .\n\nsh:JSValidator\n\ta rdfs:Class ;\n \trdfs:label \"JavaScript Validator\"@en ;\n\trdfs:comment \"A SHACL validator based on JavaScript. This can be used to declare SHACL constraint components that perform JavaScript-based validation when used.\"@en ;\n \trdfs:subClassOf sh:JSExecutable ;\n \trdfs:subClassOf sh:Validator ;\n \trdfs:isDefinedBy sh: .\n`;\nexports.skos_xl = `@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n@prefix dct: <http://purl.org/dc/terms/> .\n@prefix owl: <http://www.w3.org/2002/07/owl#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n@prefix skos: <http://www.w3.org/2004/02/skos/core#> .\n\n<http://www.w3.org/2008/05/skos-xl> a owl:Ontology ;\n\tdct:creator \"Alistair Miles\" , \"Sean Bechhofer\" ;\n\trdfs:seeAlso <http://www.w3.org/2008/05/skos> ;\n\towl:imports <http://www.w3.org/2004/02/skos/core> ;\n\tdct:title \"SKOS XL Vocabulary\"@en ;\n\tdct:contributor \"Participants in W3C's Semantic Web Deployment Working Group.\" ;\n\tdct:description \"An RDF vocabulary extending SKOS and allowing the description and linking of lexical entities.\"@en .\n\n<http://www.w3.org/2008/05/skos-xl#Label> rdfs:label \"Label\"@en ;\n\trdfs:isDefinedBy <http://www.w3.org/2008/05/skos-xl> ;\n\tskos:definition \"A special class of lexical entities.\"@en ;\n\ta owl:Class ;\n\towl:disjointWith skos:Concept , skos:Collection , skos:ConceptScheme ;\n\trdfs:subClassOf _:node17168m7qhx2 .\n\n_:node17168m7qhx2 a owl:Restriction ;\n\towl:onProperty <http://www.w3.org/2008/05/skos-xl#literalForm> ;\n\towl:cardinality \"1\"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger> .\n\n<http://www.w3.org/2008/05/skos-xl#literalForm> rdfs:label \"literal form\"@en ;\n\trdfs:isDefinedBy <http://www.w3.org/2008/05/skos-xl> ;\n\tskos:definition \"The property skosxl:literalForm is used to give the literal form of an skosxl:Label.\"@en ;\n\trdfs:comment \"If two instances of the class skosxl:Label have the same literal form, they are not necessarily the same resource.\"@en ;\n\ta owl:DatatypeProperty ;\n\trdfs:domain <http://www.w3.org/2008/05/skos-xl#Label> ;\n\trdfs:comment \"The range of skosxl:literalForm is the class of RDF plain literals.\"@en ;\n\ta rdf:Property .\n\n<http://www.w3.org/2008/05/skos-xl#prefLabel> rdfs:label \"preferred label\"@en ;\n\trdfs:isDefinedBy <http://www.w3.org/2008/05/skos-xl> ;\n\tskos:definition \"The property skosxl:prefLabel is used to associate an skosxl:Label with a skos:Concept. The property is analogous to skos:prefLabel.\"@en ;\n\trdfs:seeAlso skos:prefLabel ;\n\ta owl:ObjectProperty ;\n\trdfs:range <http://www.w3.org/2008/05/skos-xl#Label> ;\n\trdfs:comment \"If C skosxl:prefLabel L and L skosxl:literalForm V, then X skos:prefLabel V.\"@en ;\n\ta rdf:Property .\n\n<http://www.w3.org/2008/05/skos-xl#altLabel> rdfs:label \"alternative label\"@en ;\n\trdfs:isDefinedBy <http://www.w3.org/2008/05/skos-xl> ;\n\tskos:definition \"The property skosxl:altLabel is used to associate an skosxl:Label with a skos:Concept. The property is analogous to skos:altLabel.\"@en ;\n\trdfs:seeAlso skos:altLabel ;\n\ta owl:ObjectProperty ;\n\trdfs:range <http://www.w3.org/2008/05/skos-xl#Label> ;\n\trdfs:comment \"If C skosxl:altLabel L and L skosxl:literalForm V, then X skos:altLabel V.\"@en ;\n\ta rdf:Property .\n\n<http://www.w3.org/2008/05/skos-xl#hiddenLabel> rdfs:label \"hidden label\"@en ;\n\trdfs:isDefinedBy <http://www.w3.org/2008/05/skos-xl> ;\n\tskos:definition \"The property skosxl:hiddenLabel is used to associate an skosxl:Label with a skos:Concept. The property is analogous to skos:hiddenLabel.\"@en ;\n\trdfs:seeAlso skos:hiddenLabel ;\n\ta owl:ObjectProperty ;\n\trdfs:range <http://www.w3.org/2008/05/skos-xl#Label> ;\n\trdfs:comment \"If C skosxl:hiddenLabel L and L skosxl:literalForm V, then C skos:hiddenLabel V.\"@en ;\n\ta rdf:Property .\n\n<http://www.w3.org/2008/05/skos-xl#labelRelation> rdfs:label \"label relation\"@en ;\n\trdfs:isDefinedBy <http://www.w3.org/2008/05/skos-xl> ;\n\tskos:definition \"The property skosxl:labelRelation is used for representing binary ('direct') relations between instances of the class skosxl:Label.\"@en ;\n\tskos:scopeNote \"skosxl:labelRelation is not intended to be used directly, but rather as the basis for a design pattern which can be refined for more specific labeling scenarios.\"@en ;\n\ta owl:ObjectProperty ;\n\trdfs:domain <http://www.w3.org/2008/05/skos-xl#Label> ;\n\trdfs:range <http://www.w3.org/2008/05/skos-xl#Label> ;\n\ta owl:SymmetricProperty , rdf:Property .\n`;\nexports.skos = `@prefix owl: <http://www.w3.org/2002/07/owl#> .\n@prefix dc: <http://purl.org/dc/terms/> .\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n@prefix skos: <http://www.w3.org/2004/02/skos/core#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n\n<http://www.w3.org/2004/02/skos/core>\n a owl:Ontology ;\n dc:title \"SKOS Vocabulary\"@en ;\n dc:contributor \"Dave Beckett\", \"Nikki Rogers\", \"Participants in W3C's Semantic Web Deployment Working Group.\" ;\n dc:description \"An RDF vocabulary for describing the basic structure and content of concept schemes such as thesauri, classification schemes, subject heading lists, taxonomies, 'folksonomies', other types of controlled vocabulary, and also concept schemes embedded in glossaries and terminologies.\"@en ;\n dc:creator \"Alistair Miles\", \"Sean Bechhofer\" ;\n rdfs:seeAlso <http://www.w3.org/TR/skos-reference/> .\n\nskos:Concept\n rdfs:label \"Concept\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"An idea or notion; a unit of thought.\"@en ;\n a owl:Class .\n\nskos:ConceptScheme\n rdfs:label \"Concept Scheme\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"A set of concepts, optionally including statements about semantic relationships between those concepts.\"@en ;\n skos:scopeNote \"A concept scheme may be defined to include concepts from different sources.\"@en ;\n skos:example \"Thesauri, classification schemes, subject heading lists, taxonomies, 'folksonomies', and other types of controlled vocabulary are all examples of concept schemes. Concept schemes are also embedded in glossaries and terminologies.\"@en ;\n a owl:Class ;\n owl:disjointWith skos:Concept .\n\nskos:Collection\n rdfs:label \"Collection\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"A meaningful collection of concepts.\"@en ;\n skos:scopeNote \"Labelled collections can be used where you would like a set of concepts to be displayed under a 'node label' in the hierarchy.\"@en ;\n a owl:Class ;\n owl:disjointWith skos:Concept, skos:ConceptScheme .\n\nskos:OrderedCollection\n rdfs:label \"Ordered Collection\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"An ordered collection of concepts, where both the grouping and the ordering are meaningful.\"@en ;\n skos:scopeNote \"Ordered collections can be used where you would like a set of concepts to be displayed in a specific order, and optionally under a 'node label'.\"@en ;\n a owl:Class ;\n rdfs:subClassOf skos:Collection .\n\nskos:inScheme\n rdfs:label \"is in scheme\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"Relates a resource (for example a concept) to a concept scheme in which it is included.\"@en ;\n skos:scopeNote \"A concept may be a member of more than one concept scheme.\"@en ;\n a owl:ObjectProperty, rdf:Property ;\n rdfs:range skos:ConceptScheme .\n\nskos:hasTopConcept\n rdfs:label \"has top concept\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"Relates, by convention, a concept scheme to a concept which is topmost in the broader/narrower concept hierarchies for that scheme, providing an entry point to these hierarchies.\"@en ;\n a owl:ObjectProperty, rdf:Property ;\n rdfs:domain skos:ConceptScheme ;\n rdfs:range skos:Concept ;\n owl:inverseOf skos:topConceptOf .\n\nskos:topConceptOf\n rdfs:label \"is top concept in scheme\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"Relates a concept to the concept scheme that it is a top level concept of.\"@en ;\n a owl:ObjectProperty, rdf:Property ;\n rdfs:subPropertyOf skos:inScheme ;\n owl:inverseOf skos:hasTopConcept ;\n rdfs:domain skos:Concept ;\n rdfs:range skos:ConceptScheme .\n\nskos:prefLabel\n rdfs:label \"preferred label\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"The preferred lexical label for a resource, in a given language.\"@en ;\n a owl:AnnotationProperty, rdf:Property ;\n rdfs:subPropertyOf rdfs:label ;\n rdfs:comment \"A resource has no more than one value of skos:prefLabel per language tag, and no more than one value of skos:prefLabel without language tag.\"@en, \"The range of skos:prefLabel is the class of RDF plain literals.\"@en, \"\"\"skos:prefLabel, skos:altLabel and skos:hiddenLabel are pairwise\n disjoint properties.\"\"\"@en .\n\nskos:altLabel\n rdfs:label \"alternative label\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"An alternative lexical label for a resource.\"@en ;\n skos:example \"Acronyms, abbreviations, spelling variants, and irregular plural/singular forms may be included among the alternative labels for a concept. Mis-spelled terms are normally included as hidden labels (see skos:hiddenLabel).\"@en ;\n a owl:AnnotationProperty, rdf:Property ;\n rdfs:subPropertyOf rdfs:label ;\n rdfs:comment \"The range of skos:altLabel is the class of RDF plain literals.\"@en, \"skos:prefLabel, skos:altLabel and skos:hiddenLabel are pairwise disjoint properties.\"@en .\n\nskos:hiddenLabel\n rdfs:label \"hidden label\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"A lexical label for a resource that should be hidden when generating visual displays of the resource, but should still be accessible to free text search operations.\"@en ;\n a owl:AnnotationProperty, rdf:Property ;\n rdfs:subPropertyOf rdfs:label ;\n rdfs:comment \"The range of skos:hiddenLabel is the class of RDF plain literals.\"@en, \"skos:prefLabel, skos:altLabel and skos:hiddenLabel are pairwise disjoint properties.\"@en .\n\nskos:notation\n rdfs:label \"notation\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"A notation, also known as classification code, is a string of characters such as 'T58.5' or '303.4833' used to uniquely identify a concept within the scope of a given concept scheme.\"@en ;\n skos:scopeNote \"By convention, skos:notation is used with a typed literal in the object position of the triple.\"@en ;\n a owl:DatatypeProperty, rdf:Property .\n\nskos:note\n rdfs:label \"note\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"A general note, for any purpose.\"@en ;\n skos:scopeNote \"This property may be used directly, or as a super-property for more specific note types.\"@en ;\n a owl:AnnotationProperty, rdf:Property .\n\nskos:changeNote\n rdfs:label \"change note\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"A note about a modification to a concept.\"@en ;\n a owl:AnnotationProperty, rdf:Property ;\n rdfs:subPropertyOf skos:note .\n\nskos:definition\n rdfs:label \"definition\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"A statement or formal explanation of the meaning of a concept.\"@en ;\n a owl:AnnotationProperty, rdf:Property ;\n rdfs:subPropertyOf skos:note .\n\nskos:editorialNote\n rdfs:label \"editorial note\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"A note for an editor, translator or maintainer of the vocabulary.\"@en ;\n a owl:AnnotationProperty, rdf:Property ;\n rdfs:subPropertyOf skos:note .\n\nskos:example\n rdfs:label \"example\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"An example of the use of a concept.\"@en ;\n a owl:AnnotationProperty, rdf:Property ;\n rdfs:subPropertyOf skos:note .\n\nskos:historyNote\n rdfs:label \"history note\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"A note about the past state/use/meaning of a concept.\"@en ;\n a owl:AnnotationProperty, rdf:Property ;\n rdfs:subPropertyOf skos:note .\n\nskos:scopeNote\n rdfs:label \"scope note\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"A note that helps to clarify the meaning and/or the use of a concept.\"@en ;\n a owl:AnnotationProperty, rdf:Property ;\n rdfs:subPropertyOf skos:note .\n\nskos:semanticRelation\n rdfs:label \"is in semantic relation with\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"Links a concept to a concept related by meaning.\"@en ;\n skos:scopeNote \"This property should not be used directly, but as a super-property for all properties denoting a relationship of meaning between concepts.\"@en ;\n a owl:ObjectProperty, rdf:Property ;\n rdfs:domain skos:Concept ;\n rdfs:range skos:Concept .\n\nskos:broader\n rdfs:label \"has broader\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"Relates a concept to a concept that is more general in meaning.\"@en ;\n rdfs:comment \"Broader concepts are typically rendered as parents in a concept hierarchy (tree).\"@en ;\n skos:scopeNote \"By convention, skos:broader is only used to assert an immediate (i.e. direct) hierarchical link between two conceptual resources.\"@en ;\n a owl:ObjectProperty, rdf:Property ;\n rdfs:subPropertyOf skos:broaderTransitive ;\n owl:inverseOf skos:narrower .\n\nskos:narrower\n rdfs:label \"has narrower\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"Relates a concept to a concept that is more specific in meaning.\"@en ;\n skos:scopeNote \"By convention, skos:broader is only used to assert an immediate (i.e. direct) hierarchical link between two conceptual resources.\"@en ;\n rdfs:comment \"Narrower concepts are typically rendered as children in a concept hierarchy (tree).\"@en ;\n a owl:ObjectProperty, rdf:Property ;\n rdfs:subPropertyOf skos:narrowerTransitive ;\n owl:inverseOf skos:broader .\n\nskos:related\n rdfs:label \"has related\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"Relates a concept to a concept with which there is an associative semantic relationship.\"@en ;\n a owl:ObjectProperty, owl:SymmetricProperty, rdf:Property ;\n rdfs:subPropertyOf skos:semanticRelation ;\n rdfs:comment \"skos:related is disjoint with skos:broaderTransitive\"@en .\n\nskos:broaderTransitive\n rdfs:label \"has broader transitive\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"skos:broaderTransitive is a transitive superproperty of skos:broader.\" ;\n skos:scopeNote \"By convention, skos:broaderTransitive is not used to make assertions. Rather, the properties can be used to draw inferences about the transitive closure of the hierarchical relation, which is useful e.g. when implementing a simple query expansion algorithm in a search application.\"@en ;\n a owl:ObjectProperty, owl:TransitiveProperty, rdf:Property ;\n rdfs:subPropertyOf skos:semanticRelation ;\n owl:inverseOf skos:narrowerTransitive .\n\nskos:narrowerTransitive\n rdfs:label \"has narrower transitive\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"skos:narrowerTransitive is a transitive superproperty of skos:narrower.\" ;\n skos:scopeNote \"By convention, skos:narrowerTransitive is not used to make assertions. Rather, the properties can be used to draw inferences about the transitive closure of the hierarchical relation, which is useful e.g. when implementing a simple query expansion algorithm in a search application.\"@en ;\n a owl:ObjectProperty, owl:TransitiveProperty, rdf:Property ;\n rdfs:subPropertyOf skos:semanticRelation ;\n owl:inverseOf skos:broaderTransitive .\n\nskos:member\n rdfs:label \"has member\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"Relates a collection to one of its members.\"@en ;\n a owl:ObjectProperty, rdf:Property ;\n rdfs:domain skos:Collection ;\n rdfs:range [\n a owl:Class ;\n owl:unionOf (\n skos:Concept\n skos:Collection\n )\n ] .\n\nskos:memberList\n rdfs:label \"has member list\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"Relates an ordered collection to the RDF list containing its members.\"@en ;\n a owl:ObjectProperty, owl:FunctionalProperty, rdf:Property ;\n rdfs:domain skos:OrderedCollection ;\n rdfs:range rdf:List ;\n rdfs:comment \"\"\"For any resource, every item in the list given as the value of the\n skos:memberList property is also a value of the skos:member property.\"\"\"@en .\n\nskos:mappingRelation\n rdfs:label \"is in mapping relation with\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"Relates two concepts coming, by convention, from different schemes, and that have comparable meanings\"@en ;\n rdfs:comment \"These concept mapping relations mirror semantic relations, and the data model defined below is similar (with the exception of skos:exactMatch) to the data model defined for semantic relations. A distinct vocabulary is provided for concept mapping relations, to provide a convenient way to differentiate links within a concept scheme from links between concept schemes. However, this pattern of usage is not a formal requirement of the SKOS data model, and relies on informal definitions of best practice.\"@en ;\n a owl:ObjectProperty, rdf:Property ;\n rdfs:subPropertyOf skos:semanticRelation .\n\nskos:broadMatch\n rdfs:label \"has broader match\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"skos:broadMatch is used to state a hierarchical mapping link between two conceptual resources in different concept schemes.\"@en ;\n a owl:ObjectProperty, rdf:Property ;\n rdfs:subPropertyOf skos:mappingRelation, skos:broader ;\n owl:inverseOf skos:narrowMatch .\n\nskos:narrowMatch\n rdfs:label \"has narrower match\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"skos:narrowMatch is used to state a hierarchical mapping link between two conceptual resources in different concept schemes.\"@en ;\n a owl:ObjectProperty, rdf:Property ;\n rdfs:subPropertyOf skos:mappingRelation, skos:narrower ;\n owl:inverseOf skos:broadMatch .\n\nskos:relatedMatch\n rdfs:label \"has related match\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"skos:relatedMatch is used to state an associative mapping link between two conceptual resources in different concept schemes.\"@en ;\n a owl:ObjectProperty, owl:SymmetricProperty, rdf:Property ;\n rdfs:subPropertyOf skos:mappingRelation, skos:related .\n\nskos:exactMatch\n rdfs:label \"has exact match\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"skos:exactMatch is used to link two concepts, indicating a high degree of confidence that the concepts can be used interchangeably across a wide range of information retrieval applications. skos:exactMatch is a transitive property, and is a sub-property of skos:closeMatch.\"@en ;\n a owl:ObjectProperty, owl:SymmetricProperty, owl:TransitiveProperty, rdf:Property ;\n rdfs:subPropertyOf skos:closeMatch ;\n rdfs:comment \"skos:exactMatch is disjoint with each of the properties skos:broadMatch and skos:relatedMatch.\"@en .\n\nskos:closeMatch\n rdfs:label \"has close match\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"skos:closeMatch is used to link two concepts that are sufficiently similar that they can be used interchangeably in some information retrieval applications. In order to avoid the possibility of 'compound errors' when combining mappings across more than two concept schemes, skos:closeMatch is not declared to be a transitive property.\"@en ;\n a owl:ObjectProperty, owl:SymmetricProperty, rdf:Property ;\n rdfs:subPropertyOf skos:mappingRelation .`;\nexports.xsd = `@prefix owl: <http://www.w3.org/2002/07/owl#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .\n@prefix vann: <http://purl.org/vocab/vann/> .\n\nxsd: a owl:Ontology ;\n rdfs:label \"W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes\" ;\n rdfs:seeAlso <https://www.w3.org/TR/xmlschema11-2/#built-in-primitive-datatypes> .\n\nxsd:anyURI a rdfs:Datatype ;\n rdfs:comment \"anyURI represents an Internationalized Resource Identifier Reference (IRI). An anyURI value can be absolute or relative, and may have an optional fragment identifier (i.e., it may be an IRI Reference). This type should be used when the value fulfills the role of an IRI, as defined in [RFC 3987] or its successor(s) in the IETF Standards Track.\" .\n\nxsd:base64Binary a rdfs:Datatype ;\n rdfs:comment \"base64Binary represents arbitrary Base64-encoded binary data. For base64Binary data the entire binary stream is encoded using the Base64 Encoding defined in [RFC 3548], which is derived from the encoding described in [RFC 2045].\" .\n\nxsd:boolean a rdfs:Datatype ;\n rdfs:comment \"boolean represents the values of two-valued logic.\" .\n\nxsd:byte a rdfs:Datatype ;\n rdfs:comment \"byte is ·derived· from short by setting the value of ·maxInclusive· to be 127 and ·minInclusive· to be -128. The ·base type· of byte is short.\" .\n\nxsd:date a rdfs:Datatype ;\n rdfs:comment \"date represents top-open intervals of exactly one day in length on the timelines of dateTime, beginning on the beginning moment of each day, up to but not including the beginning moment of the next day). For non-timezoned values, the top-open intervals disjointly cover the non-timezoned timeline, one per day. For timezoned values, the intervals begin at every minute and therefore overlap.\" .\n\nxsd:dateTime a rdfs:Datatype ;\n rdfs:comment \"dateTime represents instants of time, optionally marked with a particular time zone offset. Values representing the same instant but having different time zone offsets are equal but not identical.\" .\n\nxsd:decimal a rdfs:Datatype ;\n rdfs:comment \"decimal represents a subset of the real numbers, which can be represented by decimal numerals. The ·value space· of decimal is the set of numbers that can be obtained by dividing an integer by a non-negative power of ten, i.e., expressible as i / 10n where i and n are integers and n ≥ 0. Precision is not reflected in this value space; the number 2.0 is not distinct from the number 2.00. The order relation on decimal is the order relation on real numbers, restricted to this subset.\" .\n\nxsd:double a rdfs:Datatype ;\n rdfs:comment \"The double datatype is patterned after the IEEE double-precision 64-bit floating point datatype [IEEE 754-2008]. Each floating point datatype has a value space that is a subset of the rational numbers. Floating point numbers are often used to approximate arbitrary real numbers.\" .\n\nxsd:duration a rdfs:Datatype ;\n rdfs:comment \"duration is a datatype that represents durations of time. The concept of duration being captured is drawn from those of [ISO 8601], specifically durations without fixed endpoints.\" .\n\nxsd:float a rdfs:Datatype ;\n rdfs:comment \"The float datatype is patterned after the IEEE single-precision 32-bit floating point datatype [IEEE 754-2008]. Its value space is a subset of the rational numbers. Floating point numbers are often used to approximate arbitrary real numbers.\" .\n\nxsd:int a rdfs:Datatype ;\n rdfs:comment \"int is ·derived· from long by setting the value of ·maxInclusive· to be 2147483647 and ·minInclusive· to be -2147483648. The ·base type· of int is long.\" .\n\nxsd:integer a rdfs:Datatype ;\n rdfs:comment \"integer is ·derived· from decimal by fixing the value of ·fractionDigits· to be 0 and disallowing the trailing decimal point. This results in the standard mathematical concept of the integer numbers. The ·value space· of integer is the infinite set {...,-2,-1,0,1,2,...}. The ·base type· of integer is decimal.\" .\n\nxsd:long a rdfs:Datatype ;\n rdfs:comment \"long is ·derived· from integer by setting the value of ·maxInclusive· to be 9223372036854775807 and ·minInclusive· to be -9223372036854775808. The ·base type· of long is integer.\" .\n\nxsd:negativeInteger a rdfs:Datatype ;\n rdfs:comment \"negativeInteger is ·derived· from nonPositiveInteger by setting the value of ·maxInclusive· to be -1. This results in the standard mathematical concept of the negative integers. The ·value space· of negativeInteger is the infinite set {...,-2,-1}. The ·base type· of negativeInteger is nonPositiveInteger.\" .\n\nxsd:nonNegativeInteger a rdfs:Datatype .\n\nxsd:nonPositiveInteger a rdfs:Datatype ;\n rdfs:comment \"nonPositiveInteger is ·derived· from integer by setting the value of ·maxInclusive· to be 0. This results in the standard mathematical concept of the non-positive integers. The ·value space· of nonPositiveInteger is the infinite set {...,-2,-1,0}. The ·base type· of nonPositiveInteger is integer.\" .\n\nxsd:positiveInteger a rdfs:Datatype ;\n rdfs:comment \"nonNegativeInteger is ·derived· from integer by setting the value of ·minInclusive· to be 0. This results in the standard mathematical concept of the non-negative integers. The ·value space· of nonNegativeInteger is the infinite set {0,1,2,...}. The ·base type· of nonNegativeInteger is integer.\" .\n\nxsd:short a rdfs:Datatype ;\n rdfs:comment \"short is ·derived· from int by setting the value of ·maxInclusive· to be 32767 and ·minInclusive· to be -32768. The ·base type· of short is int.\" .\n\nxsd:string a rdfs:Datatype ;\n rdfs:comment \"The string datatype represents character strings in XML.\" .\n\nxsd:time a rdfs:Datatype ;\n rdfs:comment \"time represents instants of time that recur at the same point in each calendar day, or that occur in some arbitrary calendar day.\" .\n\nxsd:unsignedInt a rdfs:Datatype ;\n rdfs:comment \"unsignedInt is ·derived· from unsignedLong by setting the value of ·maxInclusive· to be 4294967295. The ·base type· of unsignedInt is unsignedLong.\" .\n\nxsd:unsignedShort a rdfs:Datatype ;\n rdfs:comment \"unsignedShort is ·derived· from unsignedInt by setting the value of ·maxInclusive· to be 65535. The ·base type· of unsignedShort is unsignedInt.\" .\n\nxsd:unsingedLong a rdfs:Datatype ;\n rdfs:comment \"unsignedLong is ·derived· from nonNegativeInteger by setting the value of ·maxInclusive· to be 18446744073709551615. The ·base type· of unsignedLong is nonNegativeInteger.\" .\n\nxsd:usignedByte a rdfs:Datatype ;\n rdfs:comment \"unsignedByte is ·derived· from unsignedShort by setting the value of ·maxInclusive· to be 255. The ·base type· of unsignedByte is unsignedShort.\" .`;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/ontologies/src.ts?");
|
|
1175
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.xsd = exports.skos = exports.skos_xl = exports.sh = exports.rdfs = exports.rdfa = exports.rdf = exports.owl = exports.dcat = void 0;\nexports.dcat = `@prefix adms: <http://www.w3.org/ns/adms#> .\n@prefix bibo: <http://purl.org/ontology/bibo/> .\n@prefix dcat: <http://www.w3.org/ns/dcat#> .\n@prefix dcterms: <http://purl.org/dc/terms/> .\n@prefix dctype: <http://purl.org/dc/dcmitype/> .\n@prefix foaf: <http://xmlns.com/foaf/0.1/> .\n@prefix org: <http://www.w3.org/ns/org#> .\n@prefix owl: <http://www.w3.org/2002/07/owl#> .\n@prefix prov: <http://www.w3.org/ns/prov#> .\n@prefix pav: <http://purl.org/pav/> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n@prefix sdo: <http://schema.org/> .\n@prefix skos: <http://www.w3.org/2004/02/skos/core#> .\n@prefix vann: <http://purl.org/vocab/vann/> .\n@prefix vcard: <http://www.w3.org/2006/vcard/ns#> .\n@prefix xhv: <http://www.w3.org/1999/xhtml/vocab#> .\n@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .\n\n<http://www.w3.org/ns/dcat>\n a owl:Ontology ;\n adms:versionNotes \"Esta es una copia del vocabulario DCAT 3 disponible en https://www.w3.org/ns/dcat.ttl\"@es ;\n adms:versionNotes \"This is an updated copy of the DCAT 3 vocabulary, taken from https://www.w3.org/ns/dcat.ttl\"@en ;\n adms:versionNotes \"Dette er en opdateret kopi af DCAT 3 som er tilgænglig på https://www.w3.org/ns/dcat.ttl\"@da ;\n adms:versionNotes \"Questa è una copia aggiornata del vocabolario DCAT 3 disponibile in https://www.w3.org/ns/dcat.ttl\"@it ;\n adms:versionNotes \"Toto je aktualizovaná kopie slovníku DCAT 3, převzatá z https://www.w3.org/ns/dcat.ttl\"@cs ;\n bibo:editor [\n a foaf:Person ;\n foaf:homepage <https://w3id.org/people/ralbertoni/> ;\n foaf:name \"Riccardo Albertoni\" ;\n rdfs:seeAlso <https://orcid.org/0000-0001-5648-2713> ;\n ] ;\n bibo:editor [\n a foaf:Person ;\n foaf:name \"David Browning\" ;\n ] ;\n bibo:editor [\n a foaf:Person ;\n foaf:name \"Simon J D Cox\" ;\n foaf:workInfoHomepage <http://people.csiro.au/Simon-Cox> ;\n org:memberOf [\n foaf:homepage <https://www.csiro.au> ;\n foaf:name \"Commonwealth Scientific and Industrial Research Organisation\" ;\n ] ;\n rdfs:seeAlso <https://orcid.org/0000-0002-3884-3420> ;\n ] ;\n bibo:editor [\n a foaf:Person ;\n foaf:homepage <https://agbeltran.github.io> ;\n foaf:name \"Alejandra Gonzalez-Beltran\" ;\n org:memberOf [\n foaf:homepage <http://stfc.ac.uk> ;\n foaf:name \"Science and Technology Facilities Council, UK\" ;\n ] ;\n rdfs:seeAlso <https://orcid.org/0000-0003-3499-8262> ;\n ] ;\n bibo:editor [\n a foaf:Person ;\n foaf:name \"Andrea Perego\" ;\n rdfs:seeAlso <https://orcid.org/0000-0001-9300-2694> ;\n ] ;\n bibo:editor [\n a foaf:Person ;\n foaf:name \"Peter Winstanley\" ;\n ] ;\n bibo:translator [\n a foaf:Person ;\n foaf:homepage <http://www.asahi-net.or.jp/~ax2s-kmtn/> ;\n foaf:name \"Shuji Kamitsuna\" ;\n ] ;\n bibo:translator [\n a foaf:Person ;\n foaf:homepage <https://jakub.klímek.com/> ;\n foaf:name \"Jakub Klímek\" ;\n rdfs:seeAlso <https://jakub.klímek.com/#me> ;\n ] ;\n bibo:translator [\n a foaf:Person ;\n foaf:name \"Fadi Maali\" ;\n org:memberOf [\n foaf:homepage <http://www.deri.ie/> ;\n foaf:name \"DERI, NUI Galway\" ;\n ] ;\n ] ;\n bibo:translator [\n a foaf:Person ;\n foaf:name \"Anna Odgaard Ingram\" ;\n ] ;\n bibo:translator [\n a foaf:Person ;\n foaf:name \"Vassilios Peristeras\" ;\n org:memberOf [\n foaf:homepage <http://ec.europa.eu/dgs/informatics/> ;\n foaf:name \"European Commission, DG DIGIT\" ;\n ] ;\n ] ;\n dcat:hasCurrentVersion <http://www.w3.org/ns/dcat3> ;\n dcat:hasVersion <http://www.w3.org/ns/dcat2014> ;\n dcat:hasVersion <http://www.w3.org/ns/dcat2> ;\n dcat:hasVersion <http://www.w3.org/ns/dcat3> ;\n dcat:previousVersion <http://www.w3.org/ns/dcat2> ;\n dcat:version \"3\" ;\n dcterms:contributor [\n a foaf:Person ;\n foaf:homepage <http://makxdekkers.com/> ;\n foaf:name \"Makx Dekkers\" ;\n rdfs:seeAlso <http://makxdekkers.com/makxdekkers.rdf#me> ;\n ] ;\n dcterms:created \"2020-12-17\"^^xsd:date ;\n dcterms:creator <https://www.w3.org/groups/wg/dx> ;\n dcterms:description \"DCAT es un vocabulario RDF diseñado para facilitar la interoperabilidad entre catálogos de datos publicados en la Web. Utilizando DCAT para describir datos disponibles en catálogos se aumenta la posibilidad de que sean descubiertos y se permite que las aplicaciones consuman fácilmente los metadatos de varios catálogos.\"@es ;\n dcterms:description \"DCAT est un vocabulaire développé pour faciliter l'interopérabilité entre les jeux de données publiées sur le Web. En utilisant DCAT pour décrire les jeux de données dans les catalogues de données, les fournisseurs de données facilitent leur découverte et permettent que les applications consomment facilement les métadonnées de plusieurs catalogues. Il permet de plus la publication décentralisée des catalogues et facilite la recherche fédérée des données entre plusieurs sites. Les métadonnées DCAT aggrégées peuvent servir comme un manifeste pour faciliter la préservation digitale des ressources. DCAT est définie à l'adresse http://www.w3.org/TR/vocab-dcat/. Toute différence entre ce document normatif et le présent vocabulaire est une erreur dans le vocabulaire.\"@fr ;\n dcterms:description \"DCAT is an RDF vocabulary designed to facilitate interoperability between data catalogs published on the Web. By using DCAT to describe datasets in data catalogs, publishers increase discoverability and enable applications easily to consume metadata from multiple catalogs. It further enables decentralized publishing of catalogs and facilitates federated dataset search across sites. Aggregated DCAT metadata can serve as a manifest file to facilitate digital preservation. DCAT is defined at http://www.w3.org/TR/vocab-dcat/. Any variance between that normative document and this schema is an error in this schema.\"@en ;\n dcterms:description \"DCAT je RDF slovník navržený pro zprostředkování interoperability mezi datovými katalogy publikovanými na Webu. Poskytovatelé dat používáním slovníku DCAT pro popis datových sad v datových katalozích zvyšují jejich dohledatelnost a umožňují aplikacím konzumovat metadata z více katalogů. Dále je umožňena decentralizovaná publikace katalogů a federované dotazování na datové sady napříč katalogy. Agregovaná DCAT metadata mohou také sloužit jako průvodka umožňující digitální uchování informace. DCAT je definován na http://www.w3.org/TR/vocab-dcat/. Jakýkoliv nesoulad mezi odkazovaným dokumentem a tímto schématem je chybou v tomto schématu.\"@cs ;\n dcterms:description \"DCAT è un vocabolario RDF progettato per facilitare l'interoperabilità tra i cataloghi di dati pubblicati nel Web. Utilizzando DCAT per descrivere i dataset nei cataloghi di dati, i fornitori migliorano la capacità di individuazione dei dati e abilitano le applicazioni al consumo di dati provenienti da cataloghi differenti. DCAT permette di decentralizzare la pubblicazione di cataloghi e facilita la ricerca federata dei dataset. L'aggregazione dei metadati federati può fungere da file manifesto per facilitare la conservazione digitale. DCAT è definito all'indirizzo http://www.w3.org/TR/vocab-dcat/. Qualsiasi scostamento tra tale definizione normativa e questo schema è da considerarsi un errore di questo schema.\"@it ;\n dcterms:description \"DCATは、ウェブ上で公開されたデータ・カタログ間の相互運用性の促進を目的とするRDFの語彙です。このドキュメントでは、その利用のために、スキーマを定義し、例を提供します。データ・カタログ内のデータセットを記述するためにDCATを用いると、公開者が、発見可能性を増加させ、アプリケーションが複数のカタログのメタデータを容易に利用できるようになります。さらに、カタログの分散公開を可能にし、複数のサイトにまたがるデータセットの統合検索を促進します。集約されたDCATメタデータは、ディジタル保存を促進するためのマニフェスト・ファイルとして使用できます。\"@ja ;\n dcterms:description \"Το DCAT είναι ένα RDF λεξιλόγιο που σχεδιάσθηκε για να κάνει εφικτή τη διαλειτουργικότητα μεταξύ καταλόγων δεδομένων στον Παγκόσμιο Ιστό. Χρησιμοποιώντας το DCAT για την περιγραφή συνόλων δεδομένων, οι εκδότες αυτών αυξάνουν την ανακαλυψιμότητα και επιτρέπουν στις εφαρμογές την εύκολη κατανάλωση μεταδεδομένων από πολλαπλούς καταλόγους. Επιπλέον, δίνει τη δυνατότητα για αποκεντρωμένη έκδοση και διάθεση καταλόγων και επιτρέπει δυνατότητες ενοποιημένης αναζήτησης μεταξύ διαφορετικών πηγών. Συγκεντρωτικά μεταδεδομένα που έχουν περιγραφεί με το DCAT μπορούν να χρησιμοποιηθούν σαν ένα δηλωτικό αρχείο (manifest file) ώστε να διευκολύνουν την ψηφιακή συντήρηση.\"@el ;\n dcterms:description \"هي أنطولوجية تسهل تبادل البيانات بين مختلف الفهارس على الوب. استخدام هذه الأنطولوجية يساعد على اكتشاف قوائم البيانات المنشورة على الوب و يمكن التطبيقات المختلفة من الاستفادة أتوماتيكيا من البيانات المتاحة من مختلف الفهارس.\"@ar ;\n dcterms:description \"DCAT er et RDF-vokabular som har til formål at understøtte interoperabilitet mellem datakataloger udgivet på nettet. Ved at anvende DCAT til at beskrive datasæt i datakataloger, kan udgivere øge findbarhed og gøre det gøre det lettere for applikationer at anvende metadata fra forskellige kataloger. Derudover understøttes decentraliseret udstilling af kataloger og fødererede datasætsøgninger på tværs af websider. Aggregerede DCAT-metadata kan fungere som fortegnelsesfiler der kan understøtte digital bevaring. DCAT er defineret på http://www.w3.org/TR/vocab-dcat/. Enhver forskel mellem det normative dokument og dette schema er en fejl i dette schema.\"@da ;\n# TO BE ADDED BEFORE PUBLICATION IN W3C SPACE\n# dcterms:issued \"\"^^xsd:date ;\n dcterms:license <https://creativecommons.org/licenses/by/4.0/> ;\n dcterms:modified \"2020-11-30\"^^xsd:date ;\n dcterms:modified \"2021-03-09\"^^xsd:date ;\n dcterms:modified \"2021-04-08\"^^xsd:date ;\n dcterms:modified \"2021-06-23\"^^xsd:date ;\n dcterms:modified \"2021-09-27\"^^xsd:date ;\n dcterms:modified \"2022-03-22\"^^xsd:date ;\n dcterms:modified \"2022-05-23\"^^xsd:date ;\n dcterms:modified \"2023-01-05\"^^xsd:date ;\n dcterms:publisher [\n a org:Organization;\n foaf:homepage <https://www.w3.org/>;\n foaf:name \"World Wide Web Consortium (W3C)\";\n rdfs:seeAlso <https://www.wikidata.org/entity/Q37033>;\n ] ;\n dcterms:title \"El vocabulario de catálogo de datos\"@es ;\n dcterms:title \"Il vocabolario del catalogo dei dati\"@it ;\n dcterms:title \"Le vocabulaire des catalogues de données\"@fr ;\n dcterms:title \"Slovník pro datové katalogy\"@cs ;\n dcterms:title \"The data catalog vocabulary\"@en ;\n dcterms:title \"Το λεξιλόγιο των καταλόγων δεδομένων\"@el ;\n dcterms:title \"أنطولوجية فهارس قوائم البيانات\"@ar ;\n dcterms:title \"データ・カタログ語彙(DCAT)\"@ja ;\n dcterms:title \"Datakatalogvokabular\"@da ;\n foaf:depiction <https://www.w3.org/TR/vocab-dcat-3/images/dcat-all-attributes.svg> ;\n owl:backwardCompatibleWith <http://www.w3.org/ns/dcat2> ;\n owl:backwardCompatibleWith <http://www.w3.org/ns/dcat2014> ;\n owl:imports dcterms: ;\n owl:imports <http://www.w3.org/2004/02/skos/core> ;\n owl:imports <http://www.w3.org/ns/prov-o#> ;\n owl:priorVersion <http://www.w3.org/ns/dcat2> ;\n owl:versionInfo \"3\" ;\n owl:versionIRI <http://www.w3.org/ns/dcat3> ;\n rdfs:comment \"DCAT es un vocabulario RDF diseñado para facilitar la interoperabilidad entre catálogos de datos publicados en la Web. Utilizando DCAT para describir datos disponibles en catálogos se aumenta la posibilidad de que sean descubiertos y se permite que las aplicaciones consuman fácilmente los metadatos de varios catálogos.\"@es ;\n rdfs:comment \"DCAT est un vocabulaire développé pour faciliter l'interopérabilité entre les jeux de données publiées sur le Web. En utilisant DCAT pour décrire les jeux de données dans les catalogues de données, les fournisseurs de données facilitent leur découverte et permettent que les applications consomment facilement les métadonnées de plusieurs catalogues. Il permet de plus la publication décentralisée des catalogues et facilite la recherche fédérée des données entre plusieurs sites. Les métadonnées DCAT aggrégées peuvent servir comme un manifeste pour faciliter la préservation digitale des ressources. DCAT est définie à l'adresse http://www.w3.org/TR/vocab-dcat/. Toute différence entre ce document normatif et le présent vocabulaire est une erreur dans le vocabulaire.\"@fr ;\n rdfs:comment \"DCAT is an RDF vocabulary designed to facilitate interoperability between data catalogs published on the Web. By using DCAT to describe datasets in data catalogs, publishers increase discoverability and enable applications easily to consume metadata from multiple catalogs. It further enables decentralized publishing of catalogs and facilitates federated dataset search across sites. Aggregated DCAT metadata can serve as a manifest file to facilitate digital preservation. DCAT is defined at http://www.w3.org/TR/vocab-dcat/. Any variance between that normative document and this schema is an error in this schema.\"@en ;\n rdfs:comment \"DCAT je RDF slovník navržený pro zprostředkování interoperability mezi datovými katalogy publikovanými na Webu. Poskytovatelé dat používáním slovníku DCAT pro popis datových sad v datových katalozích zvyšují jejich dohledatelnost a umožňují aplikacím konzumovat metadata z více katalogů. Dále je umožňena decentralizovaná publikace katalogů a federované dotazování na datové sady napříč katalogy. Agregovaná DCAT metadata mohou také sloužit jako průvodka umožňující digitální uchování informace. DCAT je definován na http://www.w3.org/TR/vocab-dcat/. Jakýkoliv nesoulad mezi odkazovaným dokumentem a tímto schématem je chybou v tomto schématu.\"@cs ;\n rdfs:comment \"DCAT è un vocabolario RDF progettato per facilitare l'interoperabilità tra i cataloghi di dati pubblicati nel Web. Utilizzando DCAT per descrivere i dataset nei cataloghi di dati, i fornitori migliorano la capacità di individuazione dei dati e abilitano le applicazioni al consumo di dati provenienti da cataloghi differenti. DCAT permette di decentralizzare la pubblicazione di cataloghi e facilita la ricerca federata dei dataset. L'aggregazione dei metadati federati può fungere da file manifesto per facilitare la conservazione digitale. DCAT è definito all'indirizzo http://www.w3.org/TR/vocab-dcat/. Qualsiasi scostamento tra tale definizione normativa e questo schema è da considerarsi un errore di questo schema.\"@it ;\n rdfs:comment \"DCATは、ウェブ上で公開されたデータ・カタログ間の相互運用性の促進を目的とするRDFの語彙です。このドキュメントでは、その利用のために、スキーマを定義し、例を提供します。データ・カタログ内のデータセットを記述するためにDCATを用いると、公開者が、発見可能性を増加させ、アプリケーションが複数のカタログのメタデータを容易に利用できるようになります。さらに、カタログの分散公開を可能にし、複数のサイトにまたがるデータセットの統合検索を促進します。集約されたDCATメタデータは、ディジタル保存を促進するためのマニフェスト・ファイルとして使用できます。\"@ja ;\n rdfs:comment \"Το DCAT είναι ένα RDF λεξιλόγιο που σχεδιάσθηκε για να κάνει εφικτή τη διαλειτουργικότητα μεταξύ καταλόγων δεδομένων στον Παγκόσμιο Ιστό. Χρησιμοποιώντας το DCAT για την περιγραφή συνόλων δεδομένων, οι εκδότες αυτών αυξάνουν την ανακαλυψιμότητα και επιτρέπουν στις εφαρμογές την εύκολη κατανάλωση μεταδεδομένων από πολλαπλούς καταλόγους. Επιπλέον, δίνει τη δυνατότητα για αποκεντρωμένη έκδοση και διάθεση καταλόγων και επιτρέπει δυνατότητες ενοποιημένης αναζήτησης μεταξύ διαφορετικών πηγών. Συγκεντρωτικά μεταδεδομένα που έχουν περιγραφεί με το DCAT μπορούν να χρησιμοποιηθούν σαν ένα δηλωτικό αρχείο (manifest file) ώστε να διευκολύνουν την ψηφιακή συντήρηση.\"@el ;\n rdfs:comment \"هي أنطولوجية تسهل تبادل البيانات بين مختلف الفهارس على الوب. استخدام هذه الأنطولوجية يساعد على اكتشاف قوائم البيانات المنشورة على الوب و يمكن التطبيقات المختلفة من الاستفادة أتوماتيكيا من البيانات المتاحة من مختلف الفهارس.\"@ar ;\n rdfs:comment \"DCAT er et RDF-vokabular som har til formål at understøtte interoperabilitet mellem datakataloger udgivet på nettet. Ved at anvende DCAT til at beskrive datasæt i datakataloger, kan udgivere øge findbarhed og gøre det gøre det lettere for applikationer at anvende metadata fra forskellige kataloger. Derudover understøttes decentraliseret udstilling af kataloger og fødererede datasætsøgninger på tværs af websider. Aggregerede DCAT-metadata kan fungere som fortegnelsesfiler der kan understøtte digital bevaring. DCAT er defineret på http://www.w3.org/TR/vocab-dcat/. Enhver forskel mellem det normative dokument og dette schema er en fejl i dette schema.\"@da ;\n rdfs:label \"El vocabulario de catálogo de datos\"@es ;\n rdfs:label \"Il vocabolario del catalogo dei dati\"@it ;\n rdfs:label \"Le vocabulaire des jeux de données\"@fr ;\n rdfs:label \"Slovník pro datové katalogy\"@cs ;\n rdfs:label \"The data catalog vocabulary\"@en ;\n rdfs:label \"Το λεξιλόγιο των καταλόγων δεδομένων\"@el ;\n rdfs:label \"أنطولوجية فهارس قوائم البيانات\"@ar ;\n rdfs:label \"データ・カタログ語彙(DCAT)\"@ja ;\n rdfs:label \"Datakatalogvokabular\"@da ;\n skos:editorialNote \"English language definitions updated in this revision in line with ED. Multilingual text unevenly updated.\"@en ;\n vann:preferredNamespacePrefix \"dcat\" ;\n vann:preferredNamespaceUri \"http://www.w3.org/ns/dcat#\" ;\n.\ndcat:Catalog\n a rdfs:Class ;\n a owl:Class ;\n rdfs:comment \"A curated collection of metadata about resources (e.g., datasets and data services in the context of a data catalog).\"@en ;\n rdfs:comment \"Una colección curada de metadatos sobre recursos (por ejemplo, conjuntos de datos y servicios de datos en el contexto de un catálogo de datos).\"@es ;\n rdfs:comment \"Una raccolta curata di metadati sulle risorse (ad es. sui dataset e relativi servizi nel contesto di cataloghi di dati).\"@it ;\n rdfs:comment \"Une collection élaborée de métadonnées sur les jeux de données\"@fr ;\n rdfs:comment \"Řízená kolekce metadat o datových sadách a datových službách\"@cs ;\n rdfs:comment \"Μια επιμελημένη συλλογή μεταδεδομένων περί συνόλων δεδομένων\"@el ;\n rdfs:comment \"مجموعة من توصيفات قوائم البيانات\"@ar ;\n rdfs:comment \"データ・カタログは、データセットに関するキュレートされたメタデータの集合です。\"@ja ;\n rdfs:comment \"En udvalgt og arrangeret samling af metadata om ressourcer (fx datasæt og datatjenester i kontekst af et datakatalog). \"@da ;\n rdfs:isDefinedBy <http://www.w3.org/TR/vocab-dcat/> ;\n rdfs:label \"Catalog\"@en ;\n rdfs:label \"Catalogo\"@it ;\n rdfs:label \"Catalogue\"@fr ;\n rdfs:label \"Catálogo\"@es ;\n rdfs:label \"Katalog\"@cs ;\n rdfs:label \"Κατάλογος\"@el ;\n rdfs:label \"فهرس قوائم البيانات\"@ar ;\n rdfs:label \"カタログ\"@ja ;\n rdfs:label \"Katalog\"@da ;\n rdfs:subClassOf dcat:Dataset ;\n skos:definition \"A curated collection of metadata about resources.\"@en ;\n skos:definition \"Una colección curada de metadatos sobre recursos.\"@es ;\n skos:definition \"Una raccolta curata di metadati sulle risorse.\"@it ;\n skos:definition \"Une collection élaborée de métadonnées sur les jeux de données.\"@fr ;\n skos:definition \"Řízená kolekce metadat o datových sadách a datových službách.\"@cs ;\n skos:definition \"Μια επιμελημένη συλλογή μεταδεδομένων περί συνόλων δεδομένων.\"@el ;\n skos:definition \"مجموعة من توصيفات قوائم البيانات\"@ar ;\n skos:definition \"データ・カタログは、データセットに関するキュレートされたメタデータの集合です。\"@ja ;\n skos:definition \"En samling af metadata om ressourcer.\"@da ;\n skos:editorialNote \"Multilingual text not completelly updated. Translations for skos:scopeNote and definitions to doublecheck.\"@en ;\n skos:scopeNote \"A web-based data catalog is typically represented as a single instance of this class.\"@en ;\n skos:scopeNote \"Normalmente, un catalogo di dati nel web viene rappresentato come una singola istanza di questa classe.\"@it ;\n skos:scopeNote \"Normalmente, un catálogo de datos disponible en la web se representa como una única instancia de esta clase.\"@es ;\n skos:scopeNote \"Webový datový katalog je typicky reprezentován jako jedna instance této třídy.\"@cs ;\n skos:scopeNote \"Συνήθως, ένας κατάλογος δεδομένων στον Παγκόσμιο Ιστό αναπαρίσταται ως ένα στιγμιότυπο αυτής της κλάσης.\"@el ;\n skos:scopeNote \"通常、ウェブ・ベースのデータ・カタログは、このクラスの1つのインスタンスとして表わされます。\"@ja ;\n skos:scopeNote \"Et webbaseret datakatalog repræsenteres typisk ved en enkelt instans af denne klasse.\"@da ;\n skos:scopeNote \"Datasets and data services are examples of resources in the context of a data catalog.\"@en ;\n.\ndcat:CatalogRecord\n a rdfs:Class ;\n a owl:Class ;\n rdfs:comment \"1つのデータセットを記述したデータ・カタログ内のレコード。\"@ja ;\n rdfs:comment \"A record in a data catalog, describing the registration of a single dataset or data service.\"@en ;\n rdfs:comment \"Un record in un catalogo di dati che descrive un singolo dataset o servizio di dati.\"@it ;\n rdfs:comment \"Un registre du catalogue ou une entrée du catalogue, décrivant un seul jeu de données.\"@fr ;\n rdfs:comment \"Un registro en un catálogo de datos que describe un solo conjunto de datos o un servicio de datos.\"@es ;\n rdfs:comment \"Záznam v datovém katalogu popisující jednu datovou sadu či datovou službu.\"@cs ;\n rdfs:comment \"Μία καταγραφή ενός καταλόγου, η οποία περιγράφει ένα συγκεκριμένο σύνολο δεδομένων.\"@el ;\n rdfs:comment \"En post i et datakatalog der beskriver registreringen af et enkelt datasæt eller en datatjeneste.\"@da ;\n rdfs:isDefinedBy <http://www.w3.org/TR/vocab-dcat/> ;\n rdfs:label \"Catalog Record\"@en ;\n rdfs:label \"Katalogizační záznam\"@cs ;\n rdfs:label \"Record di catalogo\"@it ;\n rdfs:label \"Registre du catalogue\"@fr ;\n rdfs:label \"Registro del catálogo\"@es ;\n rdfs:label \"Καταγραφή καταλόγου\"@el ;\n rdfs:label \"سجل\"@ar ;\n rdfs:label \"カタログ・レコード\"@ja ;\n rdfs:label \"Katalogpost\"@da ;\n rdfs:subClassOf [\n a owl:Restriction ;\n owl:allValuesFrom dcat:Resource ;\n owl:onProperty foaf:primaryTopic ;\n ] ;\n rdfs:subClassOf [\n a owl:Restriction ;\n owl:cardinality \"1\"^^xsd:nonNegativeInteger ;\n owl:onProperty foaf:primaryTopic ;\n ] ;\n skos:definition \"1つのデータセットを記述したデータ・カタログ内のレコード。\"@ja ;\n skos:definition \"A record in a data catalog, describing the registration of a single dataset or data service.\"@en ;\n skos:definition \"Un record in un catalogo di dati che descrive un singolo dataset o servizio di dati.\"@it ;\n skos:definition \"Un registre du catalogue ou une entrée du catalogue, décrivant un seul jeu de données.\"@fr ;\n skos:definition \"Un registro en un catálogo de datos que describe un solo conjunto de datos o un servicio de datos.\"@es ;\n skos:definition \"Záznam v datovém katalogu popisující jednu datovou sadu či datovou službu.\"@cs ;\n skos:definition \"Μία καταγραφή ενός καταλόγου, η οποία περιγράφει ένα συγκεκριμένο σύνολο δεδομένων.\"@el ;\n skos:definition \"En post i et datakatalog der beskriver registreringen af et enkelt datasæt eller en datatjeneste.\"@da ;\n skos:editorialNote \"English definition updated in this revision. Multilingual text not yet updated except the Spanish one and the Czech one and Italian one.\"@en ;\n skos:scopeNote \"C'est une classe facultative et tous les catalogues ne l'utiliseront pas. Cette classe existe pour les catalogues\tayant une distinction entre les métadonnées sur le jeu de données et les métadonnées sur une entrée du jeu de données dans le catalogue.\"@fr ;\n skos:scopeNote \"Esta clase es opcional y no todos los catálogos la utilizarán. Esta clase existe para catálogos que hacen una distinción entre los metadatos acerca de un conjunto de datos o un servicio de datos y los metadatos acerca de una entrada en ese conjunto de datos en el catálogo. Por ejemplo, la propiedad sobre la fecha de la publicación de los datos refleja la fecha en que la información fue originalmente publicada, mientras que la fecha de publicación del registro del catálogo es la fecha en que los datos se agregaron al mismo. En caso en que ambas fechas fueran diferentes, o en que sólo la fecha de publicación del registro del catálogo estuviera disponible, sólo debe especificarse en el registro del catálogo. Tengan en cuenta que la ontología PROV de W3C permite describir otra información sobre la proveniencia de los datos, como por ejemplo detalles del proceso y de los agentes involucrados en algún cambio específico a los datos.\"@es ;\n skos:scopeNote \"Questa classe è opzionale e non tutti i cataloghi la utilizzeranno. Esiste per cataloghi in cui si opera una distinzione tra i metadati relativi al dataset ed i metadati relativi alla gestione del dataset nel catalogo. Ad esempio, la proprietà per indicare la data di pubblicazione del dataset rifletterà la data in cui l'informazione è stata originariamente messa a disposizione dalla casa editrice, mentre la data di pubblicazione per il record nel catalogo rifletterà la data in cui il dataset è stato aggiunto al catalogo. Nei casi dove solo quest'ultima sia nota, si utilizzerà esclusivamente la data di pubblicazione relativa al record del catalogo. Si noti che l'Ontologia W3C PROV permette di descrivere ulteriori informazioni sulla provenienza, quali i dettagli del processo, la procedura e l'agente coinvolto in una particolare modifica di un dataset.\"@it ;\n skos:scopeNote \"Tato třída je volitelná a ne všechny katalogy ji využijí. Existuje pro katalogy, ve kterých se rozlišují metadata datové sady či datové služby a metadata o záznamu o datové sadě či datové službě v katalogu. Například datum publikace datové sady odráží datum, kdy byla datová sada původně zveřejněna poskytovatelem dat, zatímco datum publikace katalogizačního záznamu je datum zanesení datové sady do katalogu. V případech kdy se obě data liší, nebo je známo jen to druhé, by mělo být specifikováno jen datum publikace katalogizačního záznamu. Všimněte si, že ontologie W3C PROV umožňuje popsat další informace o původu jako například podrobnosti o procesu konkrétní změny datové sady a jeho účastnících.\"@cs ;\n skos:scopeNote \"This class is optional and not all catalogs will use it. It exists for catalogs where a distinction is made between metadata about a dataset or data service and metadata about the entry for the dataset or data service in the catalog. For example, the publication date property of the dataset reflects the date when the information was originally made available by the publishing agency, while the publication date of the catalog record is the date when the dataset was added to the catalog. In cases where both dates differ, or where only the latter is known, the publication date should only be specified for the catalog record. Notice that the W3C PROV Ontology allows describing further provenance information such as the details of the process and the agent involved in a particular change to a dataset.\"@en ;\n skos:scopeNote \"Αυτή η κλάση είναι προαιρετική και δεν χρησιμοποιείται από όλους τους καταλόγους. Υπάρχει για τις περιπτώσεις καταλόγων όπου γίνεται διαχωρισμός μεταξύ των μεταδεδομένων για το σύνολο των δεδομένων και των μεταδεδομένων για την καταγραφή του συνόλου δεδομένων εντός του καταλόγου. Για παράδειγμα, η ιδιότητα της ημερομηνίας δημοσίευσης του συνόλου δεδομένων δείχνει την ημερομηνία κατά την οποία οι πληροφορίες έγιναν διαθέσιμες από τον φορέα δημοσίευσης, ενώ η ημερομηνία δημοσίευσης της καταγραφής του καταλόγου δείχνει την ημερομηνία που το σύνολο δεδομένων προστέθηκε στον κατάλογο. Σε περιπτώσεις που οι δύο ημερομηνίες διαφέρουν, ή που μόνο η τελευταία είναι γνωστή, η ημερομηνία δημοσίευσης θα πρέπει να δίνεται για την καταγραφή του καταλόγου. Να σημειωθεί πως η οντολογία W3C PROV επιτρέπει την περιγραφή επιπλέον πληροφοριών ιστορικού όπως λεπτομέρειες για τη διαδικασία και τον δράστη που εμπλέκονται σε μία συγκεκριμένη αλλαγή εντός του συνόλου δεδομένων.\"@el ;\n skos:scopeNote \"このクラスはオプションで、すべてのカタログがそれを用いるとは限りません。これは、データセットに関するメタデータとカタログ内のデータセットのエントリーに関するメタデータとで区別が行われるカタログのために存在しています。例えば、データセットの公開日プロパティーは、公開機関が情報を最初に利用可能とした日付を示しますが、カタログ・レコードの公開日は、データセットがカタログに追加された日付です。両方の日付が異っていたり、後者だけが分かっている場合は、カタログ・レコードに対してのみ公開日を指定すべきです。W3CのPROVオントロジー[prov-o]を用いれば、データセットに対する特定の変更に関連するプロセスやエージェントの詳細などの、さらに詳しい来歴情報の記述が可能となることに注意してください。\"@ja ;\n skos:scopeNote \"Denne klasse er valgfri og ikke alle kataloger vil anvende denne klasse. Den kan anvendes i de kataloger hvor der skelnes mellem metadata om datasættet eller datatjenesten og metadata om selve posten til registreringen af datasættet eller datatjenesten i kataloget. Udgivelsesdatoen for datasættet afspejler for eksempel den dato hvor informationerne oprindeligt blev gjort tilgængelige af udgiveren, hvorimod udgivelsesdatoen for katalogposten er den dato hvor datasættet blev føjet til kataloget. I de tilfælde hvor de to datoer er forskellige eller hvor blot sidstnævnte er kendt, bør udgivelsesdatoen kun angives for katalogposten. Bemærk at W3Cs PROV ontologi gør til muligt at tilføje yderligere proveniensoplysninger eksempelvis om processen eller aktøren involveret i en given ændring af datasættet.\"@da;\n.\ndcat:DataService\n a rdfs:Class ;\n a owl:Class ;\n rdfs:comment \"A site or end-point providing operations related to the discovery of, access to, or processing functions on, data or related resources.\"@en ;\n rdfs:comment \"Umístění či přístupový bod poskytující operace související s hledáním, přistupem k, či výkonem funkcí na datech či souvisejících zdrojích.\"@cs ;\n rdfs:comment \"Un sitio o end-point que provee operaciones relacionadas a funciones de descubrimiento, acceso, o procesamiento de datos o recursos relacionados.\"@es ;\n rdfs:comment \"Un sito o end-point che fornisce operazioni relative alla scoperta, all'accesso o all'elaborazione di funzioni su dati o risorse correlate.\"@it ;\n rdfs:comment \"Et websted eller endpoint der udstiller operationer relateret til opdagelse af, adgang til eller behandlende funktioner på data eller relaterede ressourcer.\"@da ;\n rdfs:label \"Data service\"@en ;\n rdfs:label \"Servizio di dati\"@it ;\n rdfs:label \"Servicio de datos\"@es ;\n rdfs:label \"Datatjeneste\"@da ;\n rdfs:subClassOf dctype:Service ;\n rdfs:subClassOf dcat:Resource ;\n skos:altLabel \"Dataservice\"@da ;\n skos:changeNote \"New class added in DCAT 2.\"@en ;\n skos:changeNote \"Nová třída přidaná ve verzi DCAT 2.\"@cs ;\n skos:changeNote \"Nueva clase añadida en DCAT 2.\"@es ;\n skos:changeNote \"Nuova classe aggiunta in DCAT 2.\"@it ;\n skos:changeNote \"Ny klasse tilføjet i DCAT 2.\"@da ;\n skos:definition \"A site or end-point providing operations related to the discovery of, access to, or processing functions on, data or related resources.\"@en ;\n skos:definition \"Umístění či přístupový bod poskytující operace související s hledáním, přistupem k, či výkonem funkcí na datech či souvisejících zdrojích.\"@cs ;\n skos:definition \"Un sitio o end-point que provee operaciones relacionadas a funciones de descubrimiento, acceso, o procesamiento de datos o recursos relacionados.\"@es ;\n skos:definition \"Un sito o end-point che fornisce operazioni relative alla scoperta, all'accesso o all'elaborazione di funzioni su dati o risorse correlate.\"@it ;\n skos:definition \"Et site eller endpoint der udstiller operationer relateret til opdagelse af, adgang til eller behandlende funktioner på data eller relaterede ressourcer.\"@da ;\n skos:scopeNote \"Druh služby může být indikován vlastností dcterms:type. Její hodnota může být z řízeného slovníku, kterým je například slovník typů prostorových datových služeb INSPIRE.\"@cs ;\n skos:scopeNote \"El tipo de servicio puede indicarse usando la propiedad dcterms:type. Su valor puede provenir de un vocabulario controlado, como por ejemplo el vocabulario de servicios de datos espaciales de INSPIRE.\"@es ;\n skos:scopeNote \"If a dcat:DataService is bound to one or more specified Datasets, they are indicated by the dcat:servesDataset property.\"@en ;\n skos:scopeNote \"Il tipo di servizio può essere indicato usando la proprietà dcterms:type. Il suo valore può essere preso da un vocabolario controllato come il vocabolario dei tipi di servizi per dati spaziali di INSPIRE.\"@it ;\n skos:scopeNote \"Pokud je dcat:DataService navázána na jednu či více Datových sad, jsou tyto indikovány vlstností dcat:servesDataset.\"@cs ;\n skos:scopeNote \"Se un dcat:DataService è associato a uno o più Dataset specificati, questi sono indicati dalla proprietà dcat:serveDataset.\"@it ;\n skos:scopeNote \"Si un dcat:DataService está asociado con uno o más conjuntos de datos especificados, dichos conjuntos de datos pueden indicarse con la propiedad dcat:servesDataset.\"@es ;\n skos:scopeNote \"The kind of service can be indicated using the dcterms:type property. Its value may be taken from a controlled vocabulary such as the INSPIRE spatial data service type vocabulary.\"@en ;\n skos:scopeNote \"Datatjenestetypen kan indikeres ved hjælp af egenskaben dcterms:type. Værdien kan tages fra kontrollerede udfaldsrum såsom INSPIRE spatial data service vocabulary.\"@da ;\n skos:scopeNote \"Hvis en dcat:DataService er bundet til en eller flere specifikke datasæt kan dette indikeres ved hjælp af egenskaben dcat:servesDataset. \"@da ;\n.\ndcat:Dataset\n a rdfs:Class ;\n a owl:Class ;\n rdfs:comment \"1つのエージェントによって公開またはキュレートされ、1つ以上の形式でアクセスまたはダウンロードできるデータの集合。\"@ja ;\n rdfs:comment \"A collection of data, published or curated by a single source, and available for access or download in one or more representations.\"@en ;\n rdfs:comment \"Kolekce dat poskytovaná či řízená jedním zdrojem, která je k dispozici pro přístup či stažení v jednom či více formátech.\"@cs ;\n rdfs:comment \"Raccolta di dati, pubblicati o curati da un'unica fonte, disponibili per l'accesso o il download in uno o più formati.\"@it ;\n rdfs:comment \"Una colección de datos, publicados o conservados por una única fuente, y disponibles para ser accedidos o descargados en uno o más formatos.\"@es ;\n rdfs:comment \"Une collection de données, publiée ou élaborée par une seule source, et disponible pour accès ou téléchargement dans un ou plusieurs formats.\"@fr ;\n rdfs:comment \"Μία συλλογή από δεδομένα, δημοσιευμένη ή επιμελημένη από μία και μόνο πηγή, διαθέσιμη δε προς πρόσβαση ή μεταφόρτωση σε μία ή περισσότερες μορφές.\"@el ;\n rdfs:comment \"قائمة بيانات منشورة أو مجموعة من قبل مصدر ما و متاح الوصول إليها أو تحميلها\"@ar ;\n rdfs:comment \"En samling af data, udgivet eller udvalgt og arrangeret af en enkelt kilde og som er til råde for adgang til eller download af i en eller flere repræsentationer.\"@da ;\n rdfs:isDefinedBy <http://www.w3.org/TR/vocab-dcat/> ;\n rdfs:label \"Conjunto de datos\"@es ;\n rdfs:label \"Dataset\"@en ;\n rdfs:label \"Dataset\"@it ;\n rdfs:label \"Datová sada\"@cs ;\n rdfs:label \"Jeu de données\"@fr ;\n rdfs:label \"Σύνολο Δεδομένων\"@el ;\n rdfs:label \"قائمة بيانات\"@ar ;\n rdfs:label \"データセット\"@ja ;\n rdfs:label \"Datasæt\"@da ;\n rdfs:subClassOf dcat:Resource ;\n skos:altLabel \"Datasamling\"@da ;\n skos:editorialNote \"2020-03-16 A new scopenote added and need to be translated\"@en ;\n skos:changeNote \"2018-02 - odstraněno tvrzení o podtřídě dctype:Dataset, jelikož rozsah dcat:Dataset zahrnuje několik dalších typů ze slovníku dctype.\"@cs ;\n skos:changeNote \"2018-02 - se eliminó el axioma de subclase con dctype:Dataset porque el alcance de dcat:Dataset incluye muchos otros tipos del vocabulario dctype.\"@es ;\n skos:changeNote \"2018-02 - subclass of dctype:Dataset removed because scope of dcat:Dataset includes several other types from the dctype vocabulary.\"@en ;\n skos:changeNote \"2018-02 - sottoclasse di dctype:Dataset rimosso perché l'ambito di dcat:Dataset include diversi altri tipi dal vocabolario dctype.\"@it ;\n skos:changeNote \"2018-02 - subklasse af dctype:Dataset fjernet da scope af dcat:Dataset omfatter flere forskellige typer fra dctype-vokabularet.\"@da ;\n skos:definition \"1つのエージェントによって公開またはキュレートされ、1つ以上の形式でアクセスまたはダウンロードできるデータの集合。\"@ja ;\n skos:definition \"A collection of data, published or curated by a single source, and available for access or download in one or more representations.\"@en ;\n skos:definition \"Kolekce dat poskytovaná či řízená jedním zdrojem, která je k dispozici pro přístup či stažení v jednom či více formátech.\"@cs ;\n skos:definition \"Raccolta di dati, pubblicati o curati da un'unica fonte, disponibili per l'accesso o il download in uno o più formati.\"@it ;\n skos:definition \"Una colección de datos, publicados o conservados por una única fuente, y disponibles para ser accedidos o descargados en uno o más formatos.\"@es ;\n skos:definition \"Une collection de données, publiée ou élaborée par une seule source, et disponible pour accès ou téléchargement dans un ou plusieurs formats.\"@fr ;\n skos:definition \"Μία συλλογή από δεδομένα, δημοσιευμένη ή επιμελημένη από μία και μόνο πηγή, διαθέσιμη δε προς πρόσβαση ή μεταφόρτωση σε μία ή περισσότερες μορφές.\"@el ;\n skos:definition \"قائمة بيانات منشورة أو مجموعة من قبل مصدر ما و متاح الوصول إليها أو تحميلها\"@ar ;\n skos:definition \"En samling a data, udgivet eller udvalgt og arrangeret af en enkelt kilde og som der er adgang til i en eller flere repræsentationer.\"@da ;\n skos:scopeNote \"Cette classe représente le jeu de données publié par le fournisseur de données. Dans les cas où une distinction est nécessaire entre le jeu de donénes et son entrée dans le catalogue, la classe registre de données peut être utilisée pour ce dernier.\"@fr ;\n skos:scopeNote \"Esta clase representa el conjunto de datos publicados. En los casos donde es necesario distinguir entre el conjunto de datos y su entrada en el catálogo de datos, se debe utilizar la clase 'registro del catálogo'.\"@es ;\n skos:scopeNote \"Questa classe rappresenta il dataset come pubblicato dall’editore. Nel caso in cui sia necessario operare una distinzione fra i metadati originali del dataset e il record dei metadati ad esso associato nel catalogo (ad esempio, per distinguere la data di modifica del dataset da quella del dataset nel catalogo) si può impiegare la classe catalog record.\"@it ;\n skos:scopeNote \"Tato třída reprezentuje datovou sadu tak, jak je publikována poskytovatelem dat. V případě potřeby rozlišení datové sady a jejího katalogizačního záznamu (jelikož metadata jako datum modifikace se mohou lišit) pro něj může být použita třída 'katalogizační záznam'.\"@cs ;\n skos:scopeNote \"This class describes the conceptual dataset. One or more representations might be available, with differing schematic layouts and formats or serializations.\"@en ;\n skos:scopeNote \"Questa classe descrive il dataset dal punto di vista concettuale. Possono essere disponibili una o più rappresentazioni, con diversi layout e formati schematici o serializzazioni.\"@it ;\n skos:scopeNote \"This class represents the actual dataset as published by the dataset provider. In cases where a distinction between the actual dataset and its entry in the catalog is necessary (because metadata such as modification date and maintainer might differ), the catalog record class can be used for the latter.\"@en ;\n skos:scopeNote \"Η κλάση αυτή αναπαριστά το σύνολο δεδομένων αυτό καθ'εαυτό, όπως έχει δημοσιευθεί από τον εκδότη. Σε περιπτώσεις όπου είναι απαραίτητος ο διαχωρισμός μεταξύ του συνόλου δεδομένων και της καταγραφής αυτού στον κατάλογο (γιατί μεταδεδομένα όπως η ημερομηνία αλλαγής και ο συντηρητής μπορεί να διαφέρουν) η κλάση της καταγραφής καταλόγου μπορεί να χρησιμοποιηθεί για το τελευταίο.\"@el ;\n skos:scopeNote \"このクラスは、データセットの公開者が公開する実際のデータセットを表わします。カタログ内の実際のデータセットとそのエントリーとの区別が必要な場合(修正日と維持者などのメタデータが異なるかもしれないので)は、後者にcatalog recordというクラスを使用できます。\"@ja ;\n skos:scopeNote \"The notion of dataset in DCAT is broad and inclusive, with the intention of accommodating resource types arising from all communities. Data comes in many forms including numbers, text, pixels, imagery, sound and other multi-media, and potentially other types, any of which might be collected into a dataset.\"@en ;\n skos:scopeNote \"Denne klasse repræsenterer det konkrete datasæt som det udgives af datasætleverandøren. I de tilfælde hvor det er nødvendigt at skelne mellem det konkrete datasæt og dets registrering i kataloget (fordi metadata såsom ændringsdato og vedligeholder er forskellige), så kan klassen katalogpost anvendes. \"@da ;\n skos:scopeNote \"Denne klasse beskriver det konceptuelle datasæt. En eller flere repræsentationer kan være tilgængelige med forskellige skematiske opsætninger, formater eller serialiseringer.\"@da ;\n.\ndcat:DatasetSeries\n a rdfs:Class ;\n a owl:Class ;\n rdfs:comment \"A collection of datasets that are published separately, but share some characteristics that group them.\"@en ;\n rdfs:comment \"Una collezione di dataset che sono pubblicati separatamente, ma che condividono caratteristiche che li rendono parte di uno stesso gruppo.\"@it ;\n rdfs:comment \"Una colección de conjuntos de datos publicados por separado, pero que comparten características que los agrupan.\"@es ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-3/> ;\n rdfs:label \"Dataset series\"@en ;\n rdfs:label \"Serie de conjuntos de datos\"@es ;\n rdfs:label \"Serie di dataset\"@it ;\n rdfs:subClassOf dcat:Dataset ;\n skos:editorialNote \"2022-05-08 Added to ttl file with annotations in English, Spanish and Italian, except notes that are in other languages too.\"@en ;\n skos:changeNote \"New class added in DCAT 3.\"@en ;\n skos:changeNote \"Nueva clase agregada en DCAT 3.\"@es ;\n skos:changeNote \"Nová třída přidaná ve verzi DCAT 3\"@cs ;\n skos:changeNote \"Nuova classe aggiunta in DCAT 3\"@it ;\n skos:changeNote \"Ny klasse tilføjet i DCAT 3\"@da ;\n skos:definition \"A collection of datasets that are published separately, but share some common characteristics that groups them.\"@en ;\n skos:definition \"Una collezione di dataset che sono pubblicati separatamente, ma che condividono caratteristiche che li rendono parte di uno stesso gruppo.\"@it ;\n skos:definition \"Una colección de conjuntos de datos publicados por separado, pero que comparten características comunes que los agrupan.\"@es ;\n skos:scopeNote \"Common scenarios for dataset series include: time series composed of periodically released subsets; map-series composed of items of the same type or theme but with differing spatial footprints.\"@en ;\n skos:scopeNote \"Algunos escenarios comunes para series de conjuntos de datos son: series temporales compuestas de subconjuntos de datos publicados periódicamente; series de mapas compuestos de elementos del mismo tipo o tema pero con distintas huellas espaciales.\"@es ;\n skos:scopeNote \"Scenari tipici per l'uso di serie di dataset: serie temporali costituite di dataset pubblicati regolarmente; serie di mappe costituite da elementi dello stesso tipo o tematica ma relative a differenti aree geografiche.\"@it ;\n skos:scopeNote \"Dataset series can be also soft-typed via property dcterms:type as in the approach used in [GeoDCAT-AP], and adopted in [DCAT-AP-IT] and [GeoDCAT-AP-IT]).\"@en ;\n skos:scopeNote \"También puede asignarse un tipo a las series de datos usando la propiedad dcterms:type como se hace en [GeoDCAT-AP], y adoptado en [DCAT-AP-IT] y [GeoDCAT-AP-IT]).\"@es ;\n skos:scopeNote \"Le serie di dati possono anche essere denotate come tali usando la proprietà dcterms:type, secondo l'approccio usato in [GeoDCAT-AP], e adottato in [DCAT-AP-IT] e [GeoDCAT-AP-IT]).\"@it ;\n.\ndcat:Distribution\n a rdfs:Class ;\n a owl:Class ;\n rdfs:comment \"A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above).\"@en ;\n rdfs:comment \"Konkrétní reprezentace datové sady. Datová sada může být dostupná v různých serializacích, které se mohou navzájem lišit různými způsoby, mimo jiné přirozeným jazykem, media-typem či formátem, schematickou organizací, časovým a prostorovým rozlišením, úrovní detailu či profily (které mohou specifikovat některé či všechny tyto rozdíly).\"@cs ;\n rdfs:comment \"Rappresenta una forma disponibile e specifica del dataset. Ciascun dataset può essere disponibile in forme differenti, che possono rappresentare formati diversi o diversi punti di accesso per un dataset. Esempi di distribuzioni sono un file CSV scaricabile, una API o un RSS feed.\"@it ;\n rdfs:comment \"Représente une forme spécifique d'un jeu de données. Caque jeu de données peut être disponible sous différentes formes, celles-ci pouvant représenter différents formats du jeu de données ou différents endpoint. Des exemples de distribution sont des fichirs CSV, des API ou des flux RSS.\"@fr ;\n rdfs:comment \"Una representación específica de los datos. Cada conjunto de datos puede estar disponible en formas diferentes, las cuáles pueden variar en distintas formas, incluyendo el idioma, 'media-type' o formato, organización esquemática, resolución temporal y espacial, nivel de detalle o perfiles (que pueden especificar cualquiera o todas las diferencias anteriores).\"@es ;\n rdfs:comment \"Αναπαριστά μία συγκεκριμένη διαθέσιμη μορφή ενός συνόλου δεδομένων. Κάθε σύνολο δεδομενων μπορεί να είναι διαθέσιμο σε διαφορετικές μορφές, οι μορφές αυτές μπορεί να αναπαριστούν διαφορετικές μορφές αρχείων ή διαφορετικά σημεία διάθεσης. Παραδείγματα διανομών συμπεριλαμβάνουν ένα μεταφορτώσιμο αρχείο μορφής CSV, ένα API ή ένα RSS feed.\"@el ;\n rdfs:comment \"شكل محدد لقائمة البيانات يمكن الوصول إليه. قائمة بيانات ما يمكن أن تكون متاحه باشكال و أنواع متعددة. ملف يمكن تحميله أو واجهة برمجية يمكن من خلالها الوصول إلى البيانات هي أمثلة على ذلك.\"@ar ;\n rdfs:comment \"データセットの特定の利用可能な形式を表わします。各データセットは、異なる形式で利用できることがあり、これらの形式は、データセットの異なる形式や、異なるエンドポイントを表わす可能性があります。配信の例には、ダウンロード可能なCSVファイル、API、RSSフィードが含まれます。\"@ja ;\n rdfs:comment \"En specifik repræsentation af et datasæt. Et datasæt kan være tilgængelig i mange serialiseringer der kan variere på forskellige vis, herunder sprog, medietype eller format, systemorganisering, tidslig- og geografisk opløsning, detaljeringsniveau eller profiler (der kan specificere en eller flere af ovenstående).\"@da ;\n rdfs:isDefinedBy <http://www.w3.org/TR/vocab-dcat/> ;\n rdfs:label \"Distribuce\"@cs ;\n rdfs:label \"Distribución\"@es ;\n rdfs:label \"Distribution\"@en ;\n rdfs:label \"Distribution\"@fr ;\n rdfs:label \"Distribuzione\"@it ;\n rdfs:label \"Διανομή\"@el ;\n rdfs:label \"التوزيع\"@ar ;\n rdfs:label \"配信\"@ja ;\n rdfs:label \"Distribution\"@da ;\n skos:altLabel \"Datadistribution\"@da ;\n skos:altLabel \"Datarepræsentation\"@da ;\n skos:altLabel \"Datamanifestation\"@da ;\n skos:altLabel \"Dataudstilling\"@da ;\n skos:definition \"A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above).\"@en ;\n skos:definition \"Konkrétní reprezentace datové sady. Datová sada může být dostupná v různých serializacích, které se mohou navzájem lišit různými způsoby, mimo jiné přirozeným jazykem, media-typem či formátem, schematickou organizací, časovým a prostorovým rozlišením, úrovní detailu či profily (které mohou specifikovat některé či všechny tyto rozdíly).\"@cs ;\n skos:definition \"Rappresenta una forma disponibile e specifica del dataset. Ciascun dataset può essere disponibile in forme differenti, che possono rappresentare formati diversi o diversi punti di accesso per un dataset. Esempi di distribuzioni sono un file CSV scaricabile, una API o un RSS feed.\"@it ;\n skos:definition \"Représente une forme spécifique d'un jeu de données. Caque jeu de données peut être disponible sous différentes formes, celles-ci pouvant représenter différents formats du jeu de données ou différents endpoint. Des exemples de distribution sont des fichirs CSV, des API ou des flux RSS.\"@fr ;\n skos:definition \"Una representación específica de los datos. Cada conjunto de datos puede estar disponible en formas diferentes, las cuáles pueden variar en distintas formas, incluyendo el idioma, 'media-type' o formato, organización esquemática, resolución temporal y espacial, nivel de detalle o perfiles (que pueden especificar cualquiera o todas las diferencias anteriores).\"@es ;\n skos:definition \"Αναπαριστά μία συγκεκριμένη διαθέσιμη μορφή ενός συνόλου δεδομένων. Κάθε σύνολο δεδομενων μπορεί να είναι διαθέσιμο σε διαφορετικές μορφές, οι μορφές αυτές μπορεί να αναπαριστούν διαφορετικές μορφές αρχείων ή διαφορετικά σημεία διάθεσης. Παραδείγματα διανομών συμπεριλαμβάνουν ένα μεταφορτώσιμο αρχείο μορφής CSV, ένα API ή ένα RSS feed.\"@el ;\n skos:definition \"شكل محدد لقائمة البيانات يمكن الوصول إليه. قائمة بيانات ما يمكن أن تكون متاحه باشكال و أنواع متعددة. ملف يمكن تحميله أو واجهة برمجية يمكن من خلالها الوصول إلى البيانات هي أمثلة على ذلك.\"@ar ;\n skos:definition \"データセットの特定の利用可能な形式を表わします。各データセットは、異なる形式で利用できることがあり、これらの形式は、データセットの異なる形式や、異なるエンドポイントを表わす可能性があります。配信の例には、ダウンロード可能なCSVファイル、API、RSSフィードが含まれます。\"@ja ;\n skos:definition \"En specifik repræsentation af et datasæt. Et datasæt kan være tilgængelig i mange serialiseringer der kan variere på forskellige vis, herunder sprog, medietype eller format, systemorganisering, tidslig- og geografisk opløsning, detaljeringsniveau eller profiler (der kan specificere en eller flere af ovenstående).\"@da ;\n skos:scopeNote \"Ceci représente une disponibilité générale du jeu de données, et implique qu'il n'existe pas d'information sur la méthode d'accès réelle des données, par exple, si c'est un lien de téléchargement direct ou à travers une page Web.\"@fr ;\n skos:scopeNote \"Esta clase representa una disponibilidad general de un conjunto de datos, e implica que no existe información acerca del método de acceso real a los datos, i.e., si es un enlace de descarga directa o a través de una página Web.\"@es ;\n skos:scopeNote \"Questa classe rappresenta una disponibilità generale di un dataset e non implica alcuna informazione sul metodo di accesso effettivo ai dati, ad esempio se si tratta di un accesso a download diretto, API, o attraverso una pagina Web. L'utilizzo della proprietà dcat:downloadURL indica distribuzioni direttamente scaricabili.\"@it ;\n skos:scopeNote \"This represents a general availability of a dataset it implies no information about the actual access method of the data, i.e. whether by direct download, API, or through a Web page. The use of dcat:downloadURL property indicates directly downloadable distributions.\"@en ;\n skos:scopeNote \"Toto popisuje obecnou dostupnost datové sady. Neimplikuje žádnou informaci o skutečné metodě přístupu k datům, tj. zda jsou přímo ke stažení, skrze API či přes webovou stránku. Použití vlastnosti dcat:downloadURL indikuje přímo stažitelné distribuce.\"@cs ;\n skos:scopeNote \"Αυτό αναπαριστά μία γενική διαθεσιμότητα ενός συνόλου δεδομένων και δεν υπονοεί τίποτα περί του πραγματικού τρόπου πρόσβασης στα δεδομένα, αν είναι άμεσα μεταφορτώσιμα, μέσω API ή μέσω μίας ιστοσελίδας. Η χρήση της ιδιότητας dcat:downloadURL δείχνει μόνο άμεσα μεταφορτώσιμες διανομές.\"@el ;\n skos:scopeNote \"これは、データセットの一般的な利用可能性を表わし、データの実際のアクセス方式に関する情報(つまり、直接ダウンロードなのか、APIなのか、ウェブページを介したものなのか)を意味しません。dcat:downloadURLプロパティーの使用は、直接ダウンロード可能な配信を意味します。\"@ja ;\n skos:scopeNote \"Denne klasse repræsenterer datasættets overordnede tilgængelighed og giver ikke oplysninger om hvilken metode der kan anvendes til at få adgang til data, dvs. om adgang til datasættet realiseres ved direkte download, API eller via et websted. Anvendelsen af egenskaben dcat:downloadURL indikerer at distributionen kan downloades direkte.\"@da ;\n.\ndcat:Relationship\n a owl:Class ;\n a rdfs:Class ;\n rdfs:comment \"An association class for attaching additional information to a relationship between DCAT Resources.\"@en ;\n rdfs:comment \"Asociační třída pro připojení dodatečných informací ke vztahu mezi zdroji DCAT.\"@cs ;\n rdfs:comment \"Una clase de asociación para adjuntar información adicional a una relación entre recursos DCAT.\"@es ;\n rdfs:comment \"Una classe di associazione per il collegamento di informazioni aggiuntive a una relazione tra le risorse DCAT.\"@it ;\n rdfs:comment \"En associationsklasse til brug for tilknytning af yderligere information til en relation mellem DCAT-ressourcer.\"@da ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-2/> ;\n rdfs:label \"Relación\"@es ;\n rdfs:label \"Relationship\"@en ;\n rdfs:label \"Relazione\"@it ;\n rdfs:label \"Vztah\"@cs ;\n rdfs:label \"Relation\"@da ;\n skos:changeNote \"New class added in DCAT 2\"@en ;\n skos:changeNote \"Nová třída přidaná ve verzi DCAT 2\"@cs ;\n skos:changeNote \"Nueva clase añadida en DCAT 2\"@es ;\n skos:changeNote \"Nuova classe aggiunta in DCAT 2\"@it ;\n skos:changeNote \"Ny klasse i DCAT 2\"@da ;\n skos:definition \"An association class for attaching additional information to a relationship between DCAT Resources.\"@en ;\n skos:definition \"Asociační třída pro připojení dodatečných informací ke vztahu mezi zdroji DCAT.\"@cs ;\n skos:definition \"Una clase de asociación para adjuntar información adicional a una relación entre recursos DCAT.\"@es ;\n skos:definition \"Una classe di associazione per il collegamento di informazioni aggiuntive a una relazione tra le risorse DCAT.\"@it ;\n skos:definition \"En associationsklasse til brug for tilknytning af yderligere information til en relation mellem DCAT-ressourcer.\"@da ;\n skos:scopeNote \"Používá se pro charakterizaci vztahu mezi datovými sadami a případně i jinými zdroji, kde druh vztahu je sice znám, ale není přiměřeně charakterizován standardními vlastnostmi slovníku Dublin Core (dcterms:hasPart, dcterms:isPartOf, dcterms:conformsTo, dcterms:isFormatOf, dcterms:hasFormat, dcterms:isVersionOf, dcterms:hasVersion, dcterms:replaces, dcterms:isReplacedBy, dcterms:references, dcterms:isReferencedBy, dcterms:requires, dcterms:isRequiredBy) či vlastnostmi slovníku PROV-O (prov:wasDerivedFrom, prov:wasInfluencedBy, prov:wasQuotedFrom, prov:wasRevisionOf, prov:hadPrimarySource, prov:alternateOf, prov:specializationOf).\"@cs ;\n skos:scopeNote \"Se usa para caracterizar la relación entre conjuntos de datos, y potencialmente otros recursos, donde la naturaleza de la relación se conoce pero no está caracterizada adecuadamente con propiedades del estándar 'Dublin Core' (dcterms:hasPart, dcterms:isPartOf, dcterms:conformsTo, dcterms:isFormatOf, dcterms:hasFormat, dcterms:isVersionOf, dcterms:hasVersion, dcterms:replaces, dcterms:isReplacedBy, dcterms:references, dcterms:isReferencedBy, dcterms:requires, dcterms:isRequiredBy) or PROV-O properties (prov:wasDerivedFrom, prov:wasInfluencedBy, prov:wasQuotedFrom, prov:wasRevisionOf, prov:hadPrimarySource, prov:alternateOf, prov:specializationOf).\"@es ;\n skos:scopeNote \"Use to characterize a relationship between datasets, and potentially other resources, where the nature of the relationship is known but is not adequately characterized by the standard Dublin Core properties (dcterms:hasPart, dcterms:isPartOf, dcterms:conformsTo, dcterms:isFormatOf, dcterms:hasFormat, dcterms:isVersionOf, dcterms:hasVersion, dcterms:replaces, dcterms:isReplacedBy, dcterms:references, dcterms:isReferencedBy, dcterms:requires, dcterms:isRequiredBy) or PROV-O properties (prov:wasDerivedFrom, prov:wasInfluencedBy, prov:wasQuotedFrom, prov:wasRevisionOf, prov:hadPrimarySource, prov:alternateOf, prov:specializationOf).\"@en ;\n skos:scopeNote \"Viene utilizzato per caratterizzare la relazione tra insiemi di dati, e potenzialmente altri tipi di risorse, nei casi in cui la natura della relazione è nota ma non adeguatamente caratterizzata dalle proprietà dello standard 'Dublin Core' (dcterms:hasPart, dcterms:isPartOf, dcterms:conformsTo, dcterms:isFormatOf, dcterms:hasFormat, dcterms:isVersionOf, dcterms:hasVersion, dcterms:replaces, dcterms:isReplacedBy, dcterms:references, dcterms:isReferencedBy, dcterms:require, dcterms:isRequiredBy) o dalle propietà fornite da PROV-O (prov:wasDerivedFrom, prov:wasInfluencedBy, prov:wasQuotedFrom, prov:wasRevisionOf, prov: hadPrimarySource, prov:alternateOf, prov:specializationOf).\"@it ;\n skos:scopeNote \"Anvendes til at karakterisere en relation mellem datasæt, og potentielt andre ressourcer, hvor relationen er kendt men ikke tilstrækkeligt beskrevet af de standardiserede egenskaber i Dublin Core (dcterms:hasPart, dcterms:isPartOf, dcterms:conformsTo, dcterms:isFormatOf, dcterms:hasFormat, dcterms:isVersionOf, dcterms:hasVersion, dcterms:replaces, dcterms:isReplacedBy, dcterms:references, dcterms:isReferencedBy, dcterms:requires, dcterms:isRequiredBy) eller PROV-O-egenskaber (prov:wasDerivedFrom, prov:wasInfluencedBy, prov:wasQuotedFrom, prov:wasRevisionOf, prov:hadPrimarySource, prov:alternateOf, prov:specializationOf).\"@da ;\n.\ndcat:Resource\n a owl:Class ;\n a rdfs:Class ;\n rdfs:comment \"Recurso publicado o curado por un agente único.\"@es ;\n rdfs:comment \"Resource published or curated by a single agent.\"@en ;\n rdfs:comment \"Risorsa pubblicata o curata da un singolo agente.\"@it ;\n rdfs:comment \"Zdroj publikovaný či řízený jediným činitelem.\"@cs ;\n rdfs:comment \"Ressource udgivet eller udvalgt og arrangeret af en enkelt aktør.\"@da ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-2/> ;\n rdfs:label \"Catalogued resource\"@en ;\n rdfs:label \"Katalogizovaný zdroj\"@cs ;\n rdfs:label \"Recurso catalogado\"@es ;\n rdfs:label \"Risorsa catalogata\"@it ;\n rdfs:label \"Katalogiseret ressource\"@da ;\n skos:editorialNote \"2020-08-23 Scopenote updated and needs to be translated\"@en ;\n skos:changeNote \"New class added in DCAT 2\"@en ;\n skos:changeNote \"Nová třída přidaná ve verzi DCAT 2\"@cs ;\n skos:changeNote \"Nueva clase agregada en DCAT 2\"@es ;\n skos:changeNote \"Nuova classe aggiunta in DCAT 2\"@it ;\n skos:changeNote \"Ny klasse i DCAT 2\"@da ;\n skos:definition \"Recurso publicado o curado por un agente único.\"@es ;\n skos:definition \"Resource published or curated by a single agent.\"@en ;\n skos:definition \"Risorsa pubblicata o curata da un singolo agente.\"@it ;\n skos:definition \"Zdroj publikovaný či řízený jediným činitelem.\"@cs ;\n skos:definition \"Ressource udgivet eller udvalgt og arrangeret af en enkelt aktør.\"@da ;\n skos:scopeNote \"La clase de todos los recursos catalogados, la superclase de dcat:Dataset, dcat:DataService, dcat:Catalog y cualquier otro miembro de un dcat:Catalog. Esta clase tiene propiedades comunes a todos los recursos catalogados, incluyendo conjuntos de datos y servicios de datos. Se recomienda fuertemente que se use una clase más específica. Cuando se describe un recurso que no es un dcat:Dataset o dcat:DataService, se recomienda crear una sub-clase apropiada de dcat:Resource, o usar dcat:Resource con la propiedad dcterms:type to indicar el tipo específico.\"@es ;\n skos:scopeNote \"La classe di tutte le risorse catalogate, la Superclasse di dcat:Dataset, dcat:DataService, dcat:Catalog e qualsiasi altro membro di dcat:Catalog. Questa classe porta proprietà comuni a tutte le risorse catalogate, inclusi set di dati e servizi dati. Si raccomanda vivamente di utilizzare una sottoclasse più specifica. Quando si descrive una risorsa che non è un dcat:Dataset o dcat:DataService, si raccomanda di creare una sottoclasse di dcat:Resource appropriata, o utilizzare dcat:Resource con la proprietà dcterms:type per indicare il tipo specifico.\"@it ;\n skos:scopeNote \"The class of all catalogued resources, the Superclass of dcat:Dataset, dcat:DataService, dcat:Catalog and any other member of a dcat:Catalog. This class carries properties common to all catalogued resources, including datasets and data services. The instances of this class SHOULD be included in a catalog. The instances of this class SHOULD be included in a catalog. It is strongly recommended to use a more specific sub-class. When describing a resource which is not a dcat:Dataset or dcat:DataService, it is recommended to create a suitable sub-class of dcat:Resource, or use dcat:Resource with the dcterms:type property to indicate the specific type.\"@en ;\n skos:scopeNote \"Třída všech katalogizovaných zdrojů, nadtřída dcat:Dataset, dcat:DataService, dcat:Catalog a všech ostatních členů dcat:Catalog. Tato třída nese vlastnosti společné všem katalogizovaným zdrojům včetně datových sad a datových služeb. Je silně doporučeno používat specifičtější podtřídy, pokud je to možné. Při popisu zdroje, který není ani dcat:Dataset, ani dcat:DataService se doporučuje vytvořit odpovídající podtřídu dcat:Resrouce a nebo použít dcat:Resource s vlastností dcterms:type pro určení konkrétního typu.\"@cs ;\n skos:scopeNote \"dcat:Resource es un punto de extensión que permite la definición de cualquier tipo de catálogo. Se pueden definir subclases adicionales en perfil de DCAT o una aplicación para catálogos de otro tipo de recursos.\"@es ;\n skos:scopeNote \"dcat:Resource is an extension point that enables the definition of any kind of catalog. Additional subclasses may be defined in a DCAT profile or application for catalogs of other kinds of resources.\"@en ;\n skos:scopeNote \"dcat:Resource je bod pro rozšíření umožňující definici různých druhů katalogů. Další podtřídy lze definovat v profilech DCAT či aplikacích pro katalogy zdrojů jiných druhů.\"@cs ;\n skos:scopeNote \"dcat:Resource è un punto di estensione che consente la definizione di qualsiasi tipo di catalogo. Sottoclassi aggiuntive possono essere definite in un profilo DCAT o in un'applicazione per cataloghi di altri tipi di risorse.\"@it ;\n skos:scopeNote \"Klassen for alle katalogiserede ressourcer, den overordnede klasse for dcat:Dataset, dcat:DataService, dcat:Catalog og enhvert medlem af et dcat:Catalog. Denne klasse bærer egenskaber der gælder alle katalogiserede ressourcer, herunder dataset og datatjenester. Det anbefales kraftigt at mere specifikke subklasser oprettes. Når der beskrives ressourcer der ikke er dcat:Dataset eller dcat:DataService, anbefales det at oprette passende subklasser af dcat:Resource eller at dcat:Resource anvendes sammen med egenskaben dcterms:type til opmærkning med en specifik typeangivelse.\"@da ;\n skos:scopeNote \"dcat:Resource er et udvidelsespunkt der tillader oprettelsen af enhver type af kataloger. Yderligere subklasser kan defineres i en DCAT-profil eller i en applikation til kataloger med andre typer af ressourcer.\"@da ;\n.\ndcat:Role\n a owl:Class ;\n a rdfs:Class ;\n rdfs:comment \"A role is the function of a resource or agent with respect to another resource, in the context of resource attribution or resource relationships.\"@en ;\n rdfs:comment \"Role je funkce zdroje či agenta ve vztahu k jinému zdroji, v kontextu přiřazení zdrojů či vztahů mezi zdroji.\"@cs ;\n rdfs:comment \"Un rol es la función de un recurso o agente con respecto a otro recuros, en el contexto de atribución del recurso o de las relaciones entre recursos.\"@es ;\n rdfs:comment \"Un ruolo è la funzione di una risorsa o di un agente rispetto ad un'altra risorsa, nel contesto dell'attribuzione delle risorse o delle relazioni tra risorse.\"@it ;\n rdfs:comment \"En rolle er den funktion en ressource eller aktør har i forhold til en anden ressource, i forbindelse med ressourcekreditering eller ressourcerelationer.\"@da ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-2/> ;\n rdfs:label \"Rol\"@es ;\n rdfs:label \"Role\"@cs ;\n rdfs:label \"Role\"@en ;\n rdfs:label \"Ruolo\"@it ;\n rdfs:label \"Rolle\"@da ;\n rdfs:seeAlso dcat:hadRole ;\n rdfs:subClassOf skos:Concept ;\n skos:changeNote \"New class added in DCAT 2\"@en ;\n skos:changeNote \"Nueva clase agregada en DCAT 2\"@es ;\n skos:changeNote \"Nová třída přidaná ve verzi DCAT 2\"@cs ;\n skos:changeNote \"Nuova classe aggiunta in DCAT 2\"@it ;\n skos:changeNote \"Ny klasse tilføjet i DCAT 2\"@da ;\n skos:definition \"A role is the function of a resource or agent with respect to another resource, in the context of resource attribution or resource relationships.\"@en ;\n skos:definition \"Role je funkce zdroje či agenta ve vztahu k jinému zdroji, v kontextu přiřazení zdrojů či vztahů mezi zdroji.\"@cs ;\n skos:definition \"Un rol es la función de un recurso o agente con respecto a otro recuros, en el contexto de atribución del recurso o de las relaciones entre recursos.\"@es ;\n skos:definition \"Un ruolo è la funzione di una risorsa o di un agente rispetto ad un'altra risorsa, nel contesto dell'attribuzione delle risorse o delle relazioni tra risorse.\"@it ;\n skos:definition \"En rolle er den funktion en ressource eller aktør har i forhold til en anden ressource, i forbindelse med ressourcekreditering eller ressourcerelationer.\"@da ;\n skos:editorialNote \"Incluída en DCAT para complementar prov:Role (cuyo uso está limitado a roles en el contexto de una actividad, ya que es el rango es prov:hadRole).\"@es ;\n skos:editorialNote \"Introdotta in DCAT per completare prov:Role (il cui uso è limitato ai ruoli nel contesto di un'attività, in conseguenza alla definizione del codominio di prov:hadRole).\"@it ;\n skos:editorialNote \"Introduced into DCAT to complement prov:Role (whose use is limited to roles in the context of an activity, as the range of prov:hadRole).\"@en ;\n skos:editorialNote \"Přidáno do DCAT pro doplnění třídy prov:Role (jejíž užití je omezeno na role v kontextu aktivit, jakožto obor hodnot vlastnosti prov:hadRole).\"@cs ;\n skos:editorialNote \"Introduceret i DCAT for at supplere prov:Role (hvis anvendelse er begrænset til roller i forbindelse med en aktivitet, som er rækkevidde for prov:hadRole).\"@da ;\n skos:scopeNote \"Použito v kvalifikovaném přiřazení pro specifikaci role Agenta ve vztahu k Entitě. Je doporučeno množinu hodnot spravovat jako řízený slovník rolí agentů, jako například http://registry.it.csiro.au/def/isotc211/CI_RoleCode.\"@cs ;\n skos:scopeNote \"Použito v kvalifikovaném vztahu pro specifikaci role Entity ve vztahu k jiné Entitě. Je doporučeno množinu hodnot spravovat jako řízený slovník rolí entit, jako například ISO 19115 DS_AssociationTypeCode http://registry.it.csiro.au/def/isotc211/DS_AssociationTypeCode, IANA Registry of Link Relations https://www.iana.org/assignments/link-relation, DataCite metadata schema, či MARC relators https://id.loc.gov/vocabulary/relators.\"@cs ;\n skos:scopeNote \"Se usa en una atribución cualificada para especificar el rol de un Agente con respecto a una Entidad. Se recomienda que los valores se administren como un vocabulario controlado de roles de agente, como por ejemplo http://registry.it.csiro.au/def/isotc211/CI_RoleCode.\"@es ;\n skos:scopeNote \"Se usa en una relación cualificada para especificar el rol de una Entidad con respecto a otra Entidad. Se recomienda que los valores se administren como los valores de un vocabulario controlado de roles de entidad como por ejemplo: ISO 19115 DS_AssociationTypeCode http://registry.it.csiro.au/def/isotc211/DS_AssociationTypeCode; IANA Registry of Link Relations https://www.iana.org/assignments/link-relation; el esquema de metadatos de DataCite; MARC relators https://id.loc.gov/vocabulary/relators.\"@es ;\n skos:scopeNote \"Used in a qualified-attribution to specify the role of an Agent with respect to an Entity. It is recommended that the values be managed as a controlled vocabulary of agent roles, such as http://registry.it.csiro.au/def/isotc211/CI_RoleCode.\"@en ;\n skos:scopeNote \"Used in a qualified-relation to specify the role of an Entity with respect to another Entity. It is recommended that the values be managed as a controlled vocabulary of entity roles such as: ISO 19115 DS_AssociationTypeCode http://registry.it.csiro.au/def/isotc211/DS_AssociationTypeCode; IANA Registry of Link Relations https://www.iana.org/assignments/link-relation; DataCite metadata schema; MARC relators https://id.loc.gov/vocabulary/relators.\"@en ;\n skos:scopeNote \"Utilizzato in un'attribuzione qualificata per specificare il ruolo di un agente rispetto a un'entità. Si consiglia di attribuire i valori considerando un vocabolario controllato dei ruoli dell'agente, ad esempio http://registry.it.csiro.au/def/isotc211/CI_RoleCode.\"@it ;\n skos:scopeNote \"Utilizzato in una relazione qualificata per specificare il ruolo di un'entità rispetto a un'altra entità. Si raccomanda che il valore sia preso da un vocabolario controllato di ruoli di entità come ISO 19115 DS_AssociationTypeCode http://registry.it.csiro.au/def/isotc211/DS_AssociationTypeCode, IANA Registry of Link Relations https://www.iana.org/assignments/link-relation, DataCite metadata schema, o MARC relators https://id.loc.gov/vocabulary/relators.\"@it ;\n skos:scopeNote \"Anvendes i forbindelse med kvalificerede krediteringer til at angive aktørens rolle i forhold til en entitet. Det anbefales at værdierne styres som et kontrolleret udfaldsrum med aktørroller, såsom http://registry.it.csiro.au/def/isotc211/CI_RoleCode.\"@da ;\n skos:scopeNote \"Anvendes i forbindelse med kvalificerede relationer til at specificere en entitets rolle i forhold til en anden entitet. Det anbefales at værdierne styres med et kontrolleret udfaldsrum for for entitetsroller såsom: ISO 19115 DS_AssociationTypeCode http://registry.it.csiro.au/def/isotc211/DS_AssociationTypeCode; IANA Registry of Link Relations https://www.iana.org/assignments/link-relation; DataCite metadata schema; MARC relators https://id.loc.gov/vocabulary/relators.\"@da ;\n.\n\ndcat:accessService\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"A site or end-point that gives access to the distribution of the dataset.\"@en ;\n rdfs:comment \"Umístění či přístupový bod zpřístupňující distribuci datové sady.\"@cs ;\n rdfs:comment \"Un sitio o end-point que da acceso a la distribución de un conjunto de datos.\"@es ;\n rdfs:comment \"Un sito o end-point che dà accesso alla distribuzione del set di dati.\"@it ;\n rdfs:comment \"Et websted eller endpoint der giver adgang til en repræsentation af datasættet.\"@da ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-2/> ;\n rdfs:label \"data access service\"@en ;\n rdfs:label \"servicio de acceso de datos\"@es ;\n rdfs:label \"servizio di accesso ai dati\"@it ;\n rdfs:label \"služba pro přístup k datům\"@cs ;\n rdfs:label \"dataadgangstjeneste\"@da ;\n rdfs:range dcat:DataService ;\n skos:changeNote \"New property added in DCAT 2.\"@en ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 2.\"@cs ;\n skos:changeNote \"Nueva propiedad agregada en DCAT 2.\"@es ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 2.\"@it ;\n skos:changeNote \"Ny egenskab tilføjet i DCAT 2.\"@da ;\n skos:definition \"A site or end-point that gives access to the distribution of the dataset.\"@en ;\n skos:definition \"Umístění či přístupový bod zpřístupňující distribuci datové sady.\"@cs ;\n skos:definition \"Un sitio o end-point que da acceso a la distribución de un conjunto de datos.\"@es ;\n skos:definition \"Un sito o end-point che dà accesso alla distribuzione del set di dati.\"@it ;\n skos:definition \"Et websted eller endpoint der giver adgang til en repræsentation af datasættet.\"@da ;\n.\ndcat:accessURL\n a rdf:Property ;\n a owl:ObjectProperty ;\n owl:propertyChainAxiom (\n dcat:accessService\n dcat:endpointURL\n ) ;\n rdfs:comment \"A URL of a resource that gives access to a distribution of the dataset. E.g. landing page, feed, SPARQL endpoint. Use for all cases except a simple download link, in which case downloadURL is preferred.\"@en ;\n rdfs:comment \"Ceci peut être tout type d'URL qui donne accès à une distribution du jeu de données. Par exemple, un lien à une page HTML contenant un lien au jeu de données, un Flux RSS, un point d'accès SPARQL. Utilisez le lorsque votre catalogue ne contient pas d'information sur quoi il est ou quand ce n'est pas téléchargeable.\"@fr ;\n rdfs:comment \"Puede ser cualquier tipo de URL que de acceso a una distribución del conjunto de datos, e.g., página de destino, descarga, URL feed, punto de acceso SPARQL. Esta propriedad se debe usar cuando su catálogo de datos no tiene información sobre donde está o cuando no se puede descargar.\"@es ;\n rdfs:comment \"URL zdroje, přes které je přístupná distribuce datové sady. Příkladem může být vstupní stránka, RSS kanál či SPARQL endpoint. Použijte ve všech případech kromě URL souboru ke stažení, pro které je lepší použít dcat:downloadURL.\"@cs ;\n rdfs:comment \"Un URL di una risorsa che consente di accedere a una distribuzione del set di dati. Per esempio, pagina di destinazione, feed, endpoint SPARQL. Da utilizzare per tutti i casi, tranne quando si tratta di un semplice link per il download nel qual caso è preferito downloadURL.\"@it ;\n rdfs:comment \"Μπορεί να είναι οποιουδήποτε είδους URL που δίνει πρόσβαση στη διανομή ενός συνόλου δεδομένων. Π.χ. ιστοσελίδα αρχικής πρόσβασης, μεταφόρτωση, feed URL, σημείο διάθεσης SPARQL. Να χρησιμοποιείται όταν ο κατάλογος δεν περιέχει πληροφορίες εαν πρόκειται ή όχι για μεταφορτώσιμο αρχείο.\"@el ;\n rdfs:comment \"أي رابط يتيح الوصول إلى البيانات. إذا كان الرابط هو ربط مباشر لملف يمكن تحميله استخدم الخاصية downloadURL\"@ar ;\n rdfs:comment \"データセットの配信にアクセス権を与えるランディング・ページ、フィード、SPARQLエンドポイント、その他の種類の資源。\"@ja ;\n rdfs:comment \"En URL for en ressource som giver adgang til en repræsentation af datsættet. Fx destinationsside, feed, SPARQL-endpoint. Anvendes i alle sammenhænge undtagen til angivelse af et simpelt download link hvor anvendelse af egenskaben downloadURL foretrækkes.\"@da ;\n rdfs:domain dcat:Distribution ;\n rdfs:isDefinedBy <http://www.w3.org/TR/vocab-dcat/> ;\n rdfs:label \"URL d'accès\"@fr ;\n rdfs:label \"URL de acceso\"@es ;\n rdfs:label \"URL πρόσβασης\"@el ;\n rdfs:label \"access address\"@en ;\n rdfs:label \"indirizzo di accesso\"@it ;\n rdfs:label \"přístupová adresa\"@cs ;\n rdfs:label \"رابط وصول\"@ar ;\n rdfs:label \"アクセスURL\"@ja ;\n rdfs:label \"adgangsadresse\"@da ;\n rdfs:range rdfs:Resource ;\n skos:altLabel \"adgangsURL\"@da ;\n skos:definition \"A URL of a resource that gives access to a distribution of the dataset. E.g. landing page, feed, SPARQL endpoint. Use for all cases except a simple download link, in which case downloadURL is preferred.\"@en ;\n skos:definition \"Ceci peut être tout type d'URL qui donne accès à une distribution du jeu de données. Par exemple, un lien à une page HTML contenant un lien au jeu de données, un Flux RSS, un point d'accès SPARQL. Utilisez le lorsque votre catalogue ne contient pas d'information sur quoi il est ou quand ce n'est pas téléchargeable.\"@fr ;\n skos:definition \"Puede ser cualquier tipo de URL que de acceso a una distribución del conjunto de datos, e.g., página de destino, descarga, URL feed, punto de acceso SPARQL. Esta propriedad se debe usar cuando su catálogo de datos no tiene información sobre donde está o cuando no se puede descargar.\"@es ;\n skos:definition \"URL zdroje, přes které je přístupná distribuce datové sady. Příkladem může být vstupní stránka, RSS kanál či SPARQL endpoint. Použijte ve všech případech kromě URL souboru ke stažení, pro které je lepší použít dcat:downloadURL.\"@cs ;\n skos:definition \"Un URL di una risorsa che consente di accedere a una distribuzione del set di dati. Per esempio, pagina di destinazione, feed, endpoint SPARQL. Da utilizzare per tutti i casi, tranne quando si tratta di un semplice link per il download nel qual caso è preferito downloadURL.\"@it ;\n skos:definition \"Μπορεί να είναι οποιουδήποτε είδους URL που δίνει πρόσβαση στη διανομή ενός συνόλου δεδομένων. Π.χ. ιστοσελίδα αρχικής πρόσβασης, μεταφόρτωση, feed URL, σημείο διάθεσης SPARQL. Να χρησιμοποιείται όταν ο κατάλογος δεν περιέχει πληροφορίες εαν πρόκειται ή όχι για μεταφορτώσιμο αρχείο.\"@el ;\n skos:definition \"أي رابط يتيح الوصول إلى البيانات. إذا كان الرابط هو ربط مباشر لملف يمكن تحميله استخدم الخاصية downloadURL\"@ar ;\n skos:definition \"データセットの配信にアクセス権を与えるランディング・ページ、フィード、SPARQLエンドポイント、その他の種類の資源。\"@ja ;\n skos:definition \"En URL for en ressource som giver adgang til en repræsentation af datsættet. Fx destinationsside, feed, SPARQL-endpoint. Anvendes i alle sammenhænge undtagen til angivelse af et simpelt download link hvor anvendelse af egenskaben downloadURL foretrækkes.\"@da ;\n skos:editorialNote \"Status: English Definition text modified by DCAT revision team, updated Italian and Czech translation provided, translations for other languages pending.\"@en ;\n skos:editorialNote \"rdfs:label, rdfs:comment and skos:scopeNote have been modified. Non-english versions except for Italian must be updated.\"@en ;\n skos:scopeNote \"El rango es una URL. Si la distribución es accesible solamente través de una página de destino (es decir, si no se conoce una URL de descarga directa), entonces el enlance a la página de destino debe ser duplicado como accessURL en la distribución.\"@es ;\n skos:scopeNote \"If the distribution(s) are accessible only through a landing page (i.e. direct download URLs are not known), then the landing page link should be duplicated as accessURL on a distribution.\"@en ;\n skos:scopeNote \"La valeur est une URL. Si la distribution est accessible seulement au travers d'une page d'atterrissage (c-à-dire on n'ignore une URL de téléchargement direct), alors le lien à la page d'atterrissage doit être dupliqué comee accessURL sur la distribution.\"@fr ;\n skos:scopeNote \"Pokud jsou distribuce přístupné pouze přes vstupní stránku (tj. URL pro přímé stažení nejsou známa), pak by URL přístupové stránky mělo být duplikováno ve vlastnosti distribuce accessURL.\"@cs ;\n skos:scopeNote \"Se le distribuzioni sono accessibili solo attraverso una pagina web (ad esempio, gli URL per il download diretto non sono noti), allora il link della pagina web deve essere duplicato come accessURL sulla distribuzione.\"@it ;\n skos:scopeNote \"Η τιμή είναι ένα URL. Αν η/οι διανομή/ές είναι προσβάσιμη/ες μόνο μέσω μίας ιστοσελίδας αρχικής πρόσβασης (δηλαδή αν δεν υπάρχουν γνωστές διευθύνσεις άμεσης μεταφόρτωσης), τότε ο σύνδεσμος της ιστοσελίδας αρχικής πρόσβασης πρέπει να αναπαραχθεί ως accessURL σε μία διανομή.\"@el ;\n skos:scopeNote \"確実にダウンロードでない場合や、ダウンロードかどうかが不明である場合は、downloadURLではなく、accessURLを用いてください。ランディング・ページを通じてしか配信にアクセスできない場合(つまり、直接的なダウンロードURLが不明)は、配信におけるaccessURLとしてランディング・ページのリンクをコピーすべきです(SHOULD)。\"@ja ;\n skos:scopeNote \"Hvis en eller flere distributioner kun er tilgængelige via en destinationsside (dvs. en URL til direkte download er ikke kendt), så bør destinationssidelinket gentages som adgangsadresse for distributionen.\"@da ;\n.\ndcat:bbox\n a rdf:Property ;\n a owl:DatatypeProperty ;\n rdfs:domain dcterms:Location ;\n rdfs:comment \"El cuadro delimitador geográfico para un recurso.\"@es ;\n rdfs:comment \"Ohraničení geografické oblasti zdroje.\"@cs ;\n rdfs:comment \"The geographic bounding box of a spatial thing [SDW-BP].\"@en ;\n rdfs:comment \"Il riquadro di delimitazione geografica di una risorsa.\"@it ;\n rdfs:comment \"Den geografiske omskrevne firkant af en ressource.\"@da ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-2/> ;\n rdfs:label \"bounding box\"@en ;\n rdfs:label \"quadro di delimitazione\"@it ;\n rdfs:label \"cuadro delimitador\"@es ;\n rdfs:label \"ohraničení oblasti\"@cs ;\n rdfs:label \"bounding box\"@da ;\n rdfs:range rdfs:Literal ;\n skos:changeNote \"New property added in DCAT 2.\"@en ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 2.\"@it ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 2.\"@cs ;\n skos:changeNote \"Propiedad nueva agregada en DCAT 2.\"@es ;\n skos:changeNote \"Ny egenskab tilføjet i DCAT 2.\"@da ;\n skos:definition \"El cuadro delimitador geográfico para un recurso.\"@es ;\n skos:definition \"Ohraničení geografické oblasti zdroje.\"@cs ;\n skos:definition \"The geographic bounding box of a spatial thing [SDW-BP].\"@en ;\n skos:definition \"Il riquadro di delimitazione geografica di una risorsa.\"@it ;\n skos:definition \"Den geografiske omskrevne firkant af en ressource.\"@da ;\n skos:editorialNote \"English language definitions and comments updated in this revision in line with ED. Multilingual text unevenly updated.\"@en ;\n skos:scopeNote \"El rango de esta propiedad es intencionalmente genérico con el propósito de permitir distintas codificaciones geométricas. Por ejemplo, la geometría puede ser codificada como WKT (geosparql:wktLiteral [GeoSPARQL]) o [GML] (geosparql:asGML [GeoSPARQL]).\"@es ;\n skos:scopeNote \"Obor hodnot této vlastnosti je úmyslně obecný, aby umožnil různé kódování geometrií. Geometrie by kupříkladu mohla být kódována jako WKT (geosparql:wktLiteral [GeoSPARQL]) či [GML] (geosparql:asGML [GeoSPARQL]).\"@cs ;\n skos:scopeNote \"The range of this property (rdfs:Literal) is intentionally generic, with the purpose of allowing different geometry literal encodings. E.g., the geometry could be encoded as a WKT literal (geosparql:wktLiteral [GeoSPARQL]).\"@en ;\n skos:scopeNote \"Il range di questa proprietà (rdfs:Literal) è volutamente generica, con lo scopo di consentire diverse codifiche geometriche letterali. Ad esempio, la geometria potrebbe essere codificata con un letterale WKT (geosparql:wktLiteral [GeoSPARQL]) o [GML] (geosparql:asGML [GeoSPARQL]).\"@it ;\n skos:scopeNote \"Rækkevidden for denne egenskab er bevidst generisk defineret med det formål at tillade forskellige kodninger af geometrier. Geometrien kan eksempelvis repræsenteres som WKT (geosparql:asWKT [GeoSPARQL]) eller [GML] (geosparql:asGML [GeoSPARQL]).\"@da ;\n.\ndcat:byteSize\n a rdf:Property ;\n a owl:DatatypeProperty ;\n rdfs:comment \"El tamaño de una distribución en bytes.\"@es ;\n rdfs:comment \"La dimensione di una distribuzione in byte.\"@it ;\n rdfs:comment \"La taille de la distribution en octects\"@fr ;\n rdfs:comment \"The size of a distribution in bytes.\"@en ;\n rdfs:comment \"Velikost distribuce v bajtech.\"@cs ;\n rdfs:comment \"Το μέγεθος μιας διανομής σε bytes.\"@el ;\n rdfs:comment \"الحجم بالبايتات \"@ar ;\n rdfs:comment \"バイトによる配信のサイズ。\"@ja ;\n rdfs:comment \"Størrelsen af en distributionen angivet i bytes.\"@da ;\n rdfs:domain dcat:Distribution ;\n rdfs:isDefinedBy <http://www.w3.org/TR/vocab-dcat/> ;\n rdfs:label \"byte size\"@en ;\n rdfs:label \"dimensione in byte\"@it ;\n rdfs:label \"taille en octects\"@fr ;\n rdfs:label \"tamaño en bytes\"@es ;\n rdfs:label \"velikost v bajtech\"@cs ;\n rdfs:label \"μέγεθος σε bytes\"@el ;\n rdfs:label \"الحجم بالبايت\"@ar ;\n rdfs:label \"バイト・サイズ\"@ja ;\n rdfs:label \"bytestørrelse\"@da ;\n rdfs:range rdfs:Literal ;\n skos:definition \"El tamaño de una distribución en bytes.\"@es ;\n skos:definition \"La dimensione di una distribuzione in byte.\"@it ;\n skos:definition \"La taille de la distribution en octects.\"@fr ;\n skos:definition \"The size of a distribution in bytes.\"@en ;\n skos:definition \"Velikost distribuce v bajtech.\"@cs ;\n skos:definition \"Το μέγεθος μιας διανομής σε bytes.\"@el ;\n skos:definition \"الحجم بالبايتات \"@ar ;\n skos:definition \"バイトによる配信のサイズ。\"@ja ;\n skos:definition \"Størrelsen af en distribution angivet i bytes.\"@da ;\n skos:scopeNote \"El tamaño en bytes puede ser aproximado cuando se desconoce el tamaño exacto. El valor literal de dcat:byteSize debe tener tipo 'xsd:decimal'.\"@es ;\n skos:scopeNote \"La dimensione in byte può essere approssimata quando non si conosce la dimensione precisa. Il valore di dcat:byteSize dovrebbe essere espresso come un xsd:decimal.\"@it ;\n skos:scopeNote \"La taille en octects peut être approximative lorsque l'on ignore la taille réelle. La valeur littérale de dcat:byteSize doit être de type xsd:decimal.\"@fr ;\n skos:scopeNote \"The size in bytes can be approximated when the precise size is not known. The literal value of dcat:byteSize should by typed as xsd:decimal.\"@en ;\n skos:scopeNote \"Velikost v bajtech může být přibližná, pokud její přesná hodnota není známa. Literál s hodnotou dcat:byteSize by měl mít datový typ xsd:decimal.\"@cs ;\n skos:scopeNote \"Το μέγεθος σε bytes μπορεί να προσεγγιστεί όταν η ακριβής τιμή δεν είναι γνωστή. Η τιμή της dcat:byteSize θα πρέπει να δίνεται με τύπο δεδομένων xsd:decimal.\"@el ;\n skos:scopeNote \"الحجم يمكن أن يكون تقريبي إذا كان الحجم الدقيق غير معروف\"@ar ;\n skos:scopeNote \"正確なサイズが不明である場合、サイズは、バイトによる近似値を示すことができます。\"@ja ;\n skos:scopeNote \"Bytestørrelsen kan approximeres hvis den præcise størrelse ikke er kendt. Værdien af dcat:byteSize bør angives som xsd:decimal.\"@da ;\n.\ndcat:catalog\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"A catalog that is listed in the catalog.\"@en ;\n rdfs:comment \"Katalog, jehož obsah je v kontextu tohoto katalogu zajímavý.\"@cs ;\n rdfs:comment \"Un catalogo i cui contenuti sono di interesse nel contesto di questo catalogo.\"@it ;\n rdfs:comment \"Un catálogo cuyo contenido es de interés en el contexto del catálogo que está siendo descripto.\"@es ;\n rdfs:comment \"Et katalog hvis indhold er relevant i forhold til det aktuelle katalog.\"@da ;\n rdfs:domain dcat:Catalog ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-2/> ;\n rdfs:label \"catalog\"@en ;\n rdfs:label \"catalogo\"@it ;\n rdfs:label \"catálogo\"@es ;\n rdfs:label \"katalog\"@cs ;\n rdfs:label \"katalog\"@da ;\n rdfs:range dcat:Catalog ;\n rdfs:subPropertyOf dcat:resource ;\n skos:altLabel \"har delkatalog\"@da ;\n skos:altLabel \"has catalog\"@en;\n skos:changeNote \"New property added in DCAT 2.\"@en ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 2.\"@cs ;\n skos:changeNote \"Nueva propiedad agregada en DCAT 2.\"@es ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 2.\"@it ;\n skos:definition \"A catalog that is listed in the catalog.\"@en ;\n skos:definition \"Katalog, jehož obsah je v kontextu tohoto katalogu zajímavý.\"@cs ;\n skos:definition \"Un catalogo i cui contenuti sono di interesse nel contesto di questo catalogo.\"@it ;\n skos:definition \"Un catálogo cuyo contenido es de interés en el contexto del catálogo que está siendo descripto.\"@es ;\n skos:definition \"Et katalog hvis indhold er relevant i forhold til det aktuelle katalog.\"@da ;\n skos:editorialNote \"Status: English Definition text modified by DCAT 3 revision team, translations pending.\"@en ;\n.\ndcat:centroid\n a rdf:Property ;\n a owl:DatatypeProperty ;\n rdfs:comment \"El centro geográfico (centroide) de un recurso.\"@es ;\n rdfs:comment \"Geografický střed (centroid) zdroje.\"@cs ;\n rdfs:comment \"The geographic center (centroid) of a spatial thing [SDW-BP].\"@en ;\n rdfs:comment \"Il centro geografico (centroide) di una risorsa.\"@it ;\n rdfs:comment \"Det geometrisk tyngdepunkt (centroid) for en ressource.\"@da ;\n rdfs:domain dcterms:Location ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-2/> ;\n rdfs:label \"centroid\"@cs ;\n rdfs:label \"centroid\"@en ;\n rdfs:label \"centroide\"@it ;\n rdfs:label \"centroide\"@es ;\n rdfs:label \"geometrisk tyngdepunkt\"@da ;\n rdfs:range rdfs:Literal ;\n skos:altLabel \"centroide\"@da ;\n skos:changeNote \"New property added in DCAT 2.\"@en ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 2.\"@it ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 2.\"@cs ;\n skos:changeNote \"Nueva propiedad agregada en DCAT 2.\"@es ;\n skos:changeNote \"Ny egenskab tilføjet i DCAT 2.\"@da ;\n skos:definition \"El centro geográfico (centroide) de un recurso.\"@es ;\n skos:definition \"Geografický střed (centroid) zdroje.\"@cs ;\n skos:definition \"The geographic center (centroid) of a spatial thing [SDW-BP].\"@en ;\n skos:definition \"Il centro geografico (centroide) di una risorsa.\"@it ;\n skos:definition \"Det geometrisk tyngdepunkt (centroid) for en ressource.\"@da ;\n skos:editorialNote \"English language definitions and comments updated in this revision in line with ED. Multilingual text unevenly updated.\"@en ;\n skos:scopeNote \"El rango de esta propiedad es intencionalmente genérico con el objetivo de permitir distintas codificaciones geométricas. Por ejemplo, la geometría puede codificarse como WKT (geosparql:wktLiteral [GeoSPARQL]) o [GML] (geosparql:asGML [GeoSPARQL]).\"@es ;\n skos:scopeNote \"Obor hodnot této vlastnosti je úmyslně obecný, aby umožnil různé kódování geometrií. Geometrie by kupříkladu mohla být kódována jako WKT (geosparql:wktLiteral [GeoSPARQL]) či [GML] (geosparql:asGML [GeoSPARQL]).\"@cs ;\n skos:scopeNote \"The range of this property (rdfs:Literal) is intentionally generic, with the purpose of allowing different geometry literal encodings. E.g., the geometry could be encoded as a WKT literal (geosparql:wktLiteral [GeoSPARQL]).\"@en ;\n skos:scopeNote \"Il range di questa proprietà (rdfs:Literal) è volutamente generica, con lo scopo di consentire diverse codifiche geometriche letterali. Ad esempio, la geometria potrebbe essere codificata con un letterale WKT (geosparql:wktLiteral [GeoSPARQL]) o [GML] (geosparql:asGML [GeoSPARQL]).\"@it ;\n skos:scopeNote \"Rækkevidden for denne egenskab er bevidst generisk definere med det formål at tillade forskellige geokodninger. Geometrien kan eksempelvis repræsenteres som WKT (geosparql:asWKT [GeoSPARQL]) eller [GML] (geosparql:asGML [GeoSPARQL]).\"@da ;\n.\ndcat:compressFormat\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"El formato de la distribución en el que los datos están en forma comprimida, e.g. para reducir el tamaño del archivo a bajar.\"@es ;\n rdfs:comment \"Formát komprese souboru, ve kterém jsou data poskytována v komprimované podobě, např. ke snížení velikosti souboru ke stažení.\"@cs ;\n rdfs:comment \"Il formato di compressione della distribuzione nel quale i dati sono in forma compressa, ad es. per ridurre le dimensioni del file da scaricare.\"@it ;\n rdfs:comment \"The compression format of the distribution in which the data is contained in a compressed form, e.g. to reduce the size of the downloadable file.\"@en ;\n rdfs:comment \"Kompressionsformatet for distributionen som indeholder data i et komprimeret format, fx for at reducere størrelsen af downloadfilen.\"@da ;\n rdfs:domain dcat:Distribution ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-2/> ;\n rdfs:label \"compression format\"@en ;\n rdfs:label \"formato de compresión\"@es ;\n rdfs:label \"formato di compressione\"@it ;\n rdfs:label \"formát komprese\"@cs ;\n rdfs:label \"kompressionsformat\"@da ;\n rdfs:range dcterms:MediaType ;\n rdfs:subPropertyOf dcterms:format ;\n skos:changeNote \"New property added in DCAT 2.\"@en ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 2.\"@cs ;\n skos:changeNote \"Nueva propiedad agregada en DCAT 2.\"@es ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 2.\"@it ;\n skos:changeNote \"Ny egenskab tilføjet i DCAT 2.\"@da ;\n skos:definition \"El formato de la distribución en el que los datos están en forma comprimida, e.g. para reducir el tamaño del archivo a bajar.\"@es ;\n skos:definition \"Formát komprese souboru, ve kterém jsou data poskytována v komprimované podobě, např. ke snížení velikosti souboru ke stažení.\"@cs ;\n skos:definition \"Il formato di compressione della distribuzione nel quale i dati sono in forma compressa, ad es. per ridurre le dimensioni del file da scaricare.\"@it ;\n skos:definition \"The compression format of the distribution in which the data is contained in a compressed form, e.g. to reduce the size of the downloadable file.\"@en ;\n skos:definition \"Kompressionsformatet for distributionen som indeholder data i et komprimeret format, fx for at reducere størrelsen af downloadfilen.\"@da ;\n skos:scopeNote \"Esta propiedad se debe usar cuando los archivos de la distribución están comprimidos, por ejemplo en un archivo ZIP. El formato DEBERÍA expresarse usando un 'media type', tales como los definidos en el registro IANA de 'media types' https://www.iana.org/assignments/media-types/, si está disponibles.\"@es ;\n skos:scopeNote \"Questa proprietà deve essere utilizzata quando i file nella distribuzione sono compressi, ad es. in un file ZIP. Il formato DOVREBBE essere espresso usando un tipo di media come definito dal registro dei tipi di media IANA https://www.iana.org/assignments/media-types/, se disponibile.\"@it ;\n skos:scopeNote \"Tato vlastnost se použije, když jsou soubory v distribuci komprimovány, např. v ZIP souboru. Formát BY MĚL být vyjádřen pomocí typu média definovaného v registru IANA https://www.iana.org/assignments/media-types/, pokud existuje.\"@cs ;\n skos:scopeNote \"This property is to be used when the files in the distribution are compressed, e.g. in a ZIP file. The format SHOULD be expressed using a media type as defined by IANA media types registry https://www.iana.org/assignments/media-types/, if available.\"@en ;\n skos:scopeNote \"Denne egenskab kan anvendes når filerne i en distribution er blevet komprimeret, fx i en ZIP-fil. Formatet BØR udtrykkes ved en medietype som defineret i 'IANA media types registry', hvis der optræder en relevant medietype dér: https://www.iana.org/assignments/media-types/.\"@da ;\n.\ndcat:contactPoint\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"Información relevante de contacto para el recurso catalogado. Se recomienda el uso de vCard.\"@es ;\n rdfs:comment \"Informazioni di contatto rilevanti per la risorsa catalogata. Si raccomanda l'uso di vCard.\"@it ;\n rdfs:comment \"Relevant contact information for the catalogued resource. Use of vCard is recommended.\"@en ;\n rdfs:comment \"Relevantní kontaktní informace pro katalogizovaný zdroj. Doporučuje se použít slovník VCard.\"@cs ;\n rdfs:comment \"Relie un jeu de données à une information de contact utile en utilisant VCard.\"@fr ;\n rdfs:comment \"Συνδέει ένα σύνολο δεδομένων με ένα σχετικό σημείο επικοινωνίας, μέσω VCard.\"@el ;\n rdfs:comment \"تربط قائمة البيانات بعنوان اتصال موصف باستخدام VCard\"@ar ;\n rdfs:comment \"データセットを、VCardを用いて提供されている適切な連絡先情報にリンクします。\"@ja ;\n rdfs:comment \"Relevante kontaktoplysninger for den katalogiserede ressource. Anvendelse af vCard anbefales.\"@da ;\n rdfs:isDefinedBy <http://www.w3.org/TR/vocab-dcat/> ;\n rdfs:label \"Punto de contacto\"@es ;\n rdfs:label \"contact point\"@en ;\n rdfs:label \"kontaktní bod\"@cs ;\n rdfs:label \"point de contact\"@fr ;\n rdfs:label \"punto di contatto\"@it ;\n rdfs:label \"σημείο επικοινωνίας\"@el ;\n rdfs:label \"عنوان اتصال\"@ar ;\n rdfs:label \"窓口\"@ja ;\n rdfs:label \"kontaktpunkt\"@da ;\n rdfs:range vcard:Kind ;\n skos:definition \"Información relevante de contacto para el recurso catalogado. Se recomienda el uso de vCard.\"@es ;\n skos:definition \"Informazioni di contatto rilevanti per la risorsa catalogata. Si raccomanda l'uso di vCard.\"@it ;\n skos:definition \"Relevant contact information for the catalogued resource. Use of vCard is recommended.\"@en ;\n skos:definition \"Relevantní kontaktní informace pro katalogizovaný zdroj. Doporučuje se použít slovník VCard.\"@cs ;\n skos:definition \"Relie un jeu de données à une information de contact utile en utilisant VCard.\"@fr ;\n skos:definition \"Συνδέει ένα σύνολο δεδομένων με ένα σχετικό σημείο επικοινωνίας, μέσω VCard.\"@el ;\n skos:definition \"تربط قائمة البيانات بعنوان اتصال موصف باستخدام VCard\"@ar ;\n skos:definition \"データセットを、VCardを用いて提供されている適切な連絡先情報にリンクします。\"@ja ;\n skos:definition \"Relevante kontaktoplysninger for den katalogiserede ressource. Anvendelse af vCard anbefales.\"@da ;\n skos:editorialNote \"Status: English Definition text modified by DCAT revision team, Italian, Spanish and Czech translations provided, other translations pending.\"@en ;\n.\ndcat:dataset\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"A dataset that is listed in the catalog.\"@en ;\n rdfs:comment \"Kolekce dat, která je katalogizována v katalogu.\"@cs ;\n rdfs:comment \"Relie un catalogue à un jeu de données faisant partie de ce catalogue.\"@fr ;\n rdfs:comment \"Un conjunto de datos que se lista en el catálogo.\"@es ;\n rdfs:comment \"Una raccolta di dati che è elencata nel catalogo.\"@it ;\n rdfs:comment \"Συνδέει έναν κατάλογο με ένα σύνολο δεδομένων το οποίο ανήκει στον εν λόγω κατάλογο.\"@el ;\n rdfs:comment \"تربط الفهرس بقائمة بيانات ضمنه\"@ar ;\n rdfs:comment \"カタログの一部であるデータセット。\"@ja ;\n rdfs:comment \"En samling af data som er opført i kataloget.\"@da ;\n rdfs:domain dcat:Catalog ;\n rdfs:isDefinedBy <http://www.w3.org/TR/vocab-dcat/> ;\n rdfs:label \"conjunto de datos\"@es ;\n rdfs:label \"dataset\"@en ;\n rdfs:label \"dataset\"@it ;\n rdfs:label \"datová sada\"@cs ;\n rdfs:label \"jeu de données\"@fr ;\n rdfs:label \"σύνολο δεδομένων\"@el ;\n rdfs:label \"قائمة بيانات\"@ar ;\n rdfs:label \"データセット\"@ja ;\n rdfs:label \"datasæt\"@da ;\n rdfs:range dcat:Dataset ;\n rdfs:subPropertyOf dcat:resource ;\n skos:altLabel \"har datasæt\"@da ;\n skos:altLabel \"datasamling\"@da ;\n skos:altLabel \"has dataset\"@en;\n skos:definition \"A dataset that is listed in the catalog.\"@en ;\n skos:definition \"Kolekce dat, která je katalogizována v katalogu.\"@cs ;\n skos:definition \"Relie un catalogue à un jeu de données faisant partie de ce catalogue.\"@fr ;\n skos:definition \"Un conjunto de datos que se lista en el catálogo.\"@es ;\n skos:definition \"Una raccolta di dati che è elencata nel catalogo.\"@it ;\n skos:definition \"Συνδέει έναν κατάλογο με ένα σύνολο δεδομένων το οποίο ανήκει στον εν λόγω κατάλογο.\"@el ;\n skos:definition \"تربط الفهرس بقائمة بيانات ضمنه\"@ar ;\n skos:definition \"カタログの一部であるデータセット。\"@ja ;\n skos:definition \"En samling af data som er opført i kataloget.\"@da ;\n skos:editorialNote \"Status: English Definition text modified by DCAT 3 revision team, translations pending.\"@en ;\n.\ndcat:distribution\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"An available distribution of the dataset.\"@en ;\n rdfs:comment \"Connecte un jeu de données à des distributions disponibles.\"@fr ;\n rdfs:comment \"Dostupná distribuce datové sady.\"@cs ;\n rdfs:comment \"Una distribución disponible del conjunto de datos.\"@es ;\n rdfs:comment \"Una distribuzione disponibile per il set di dati.\"@it ;\n rdfs:comment \"Συνδέει ένα σύνολο δεδομένων με μία από τις διαθέσιμες διανομές του.\"@el ;\n rdfs:comment \"تربط قائمة البيانات بطريقة أو بشكل يسمح الوصول الى البيانات\"@ar ;\n rdfs:comment \"データセットを、その利用可能な配信に接続します。\"@ja ;\n rdfs:comment \"En tilgængelig repræsentation af datasættet.\"@da ;\n rdfs:domain dcat:Dataset ;\n rdfs:isDefinedBy <http://www.w3.org/TR/vocab-dcat/> ;\n rdfs:label \"distribuce\"@cs ;\n rdfs:label \"distribución\"@es ;\n rdfs:label \"distribution\"@en ;\n rdfs:label \"distribution\"@fr ;\n rdfs:label \"distribuzione\"@it ;\n rdfs:label \"distribution\"@da ;\n skos:altLabel \"har distribution\"@da ;\n skos:altLabel \"has distribution\"@en ;\n rdfs:label \"διανομή\"@el ;\n rdfs:label \"توزيع\"@ar ;\n rdfs:label \"データセット配信\"@ja ;\n rdfs:range dcat:Distribution ;\n rdfs:subPropertyOf dcterms:relation ;\n skos:definition \"An available distribution of the dataset.\"@en ;\n skos:definition \"Connecte un jeu de données à des distributions disponibles.\"@fr ;\n skos:definition \"Dostupná distribuce datové sady.\"@cs ;\n skos:definition \"Una distribución disponible del conjunto de datos.\"@es ;\n skos:definition \"Una distribuzione disponibile per il set di dati.\"@it ;\n skos:definition \"Συνδέει ένα σύνολο δεδομένων με μία από τις διαθέσιμες διανομές του.\"@el ;\n skos:definition \"تربط قائمة البيانات بطريقة أو بشكل يسمح الوصول الى البيانات\"@ar ;\n skos:definition \"データセットを、その利用可能な配信に接続します。\"@ja ;\n skos:definition \"En tilgængelig repræsentation af datasættet.\"@da ;\n skos:editorialNote \"Status: English Definition text modified by DCAT revision team, translations pending (except for Italian, Spanish and Czech).\"@en ;\n.\n\ndcat:downloadURL\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"Ceci est un lien direct à un fichier téléchargeable en un format donnée. Exple fichier CSV ou RDF. Le format est décrit par les propriétés de distribution dcterms:format et/ou dcat:mediaType.\"@fr ;\n rdfs:comment \"La URL de un archivo descargable en el formato dato. Por ejemplo, archivo CSV o archivo RDF. El formato se describe con las propiedades de la distribución dcterms:format y/o dcat:mediaType.\"@es ;\n rdfs:comment \"Questo è un link diretto al file scaricabile in un dato formato. E.g. un file CSV o un file RDF. Il formato è descritto dal dcterms:format e/o dal dcat:mediaType della distribuzione.\"@it ;\n rdfs:comment \"The URL of the downloadable file in a given format. E.g. CSV file or RDF file. The format is indicated by the distribution's dcterms:format and/or dcat:mediaType.\"@en ;\n rdfs:comment \"URL souboru ke stažení v daném formátu, například CSV nebo RDF soubor. Formát je popsán vlastností distribuce dcterms:format a/nebo dcat:mediaType.\"@cs ;\n rdfs:comment \"dcat:downloadURLはdcat:accessURLの特定の形式です。しかし、DCATプロファイルが非ダウンロード・ロケーションに対してのみaccessURLを用いる場合には、より強い分離を課すことを望む可能性があるため、この含意を強化しないように、DCATは、dcat:downloadURLをdcat:accessURLのサブプロパティーであると定義しません。\"@ja ;\n rdfs:comment \"Είναι ένας σύνδεσμος άμεσης μεταφόρτωσης ενός αρχείου σε μια δεδομένη μορφή. Π.χ. ένα αρχείο CSV ή RDF. Η μορφη αρχείου περιγράφεται από τις ιδιότητες dcterms:format ή/και dcat:mediaType της διανομής.\"@el ;\n rdfs:comment \"رابط مباشر لملف يمكن تحميله. نوع الملف يتم توصيفه باستخدام الخاصية dcterms:format dcat:mediaType \"@ar ;\n rdfs:comment \"URL til fil der kan downloades i et bestemt format. Fx en CSV-fil eller en RDF-fil. Formatet for distributionen angives ved hjælp af egenskaberne dcterms:format og/eller dcat:mediaType.\"@da ;\n rdfs:domain dcat:Distribution ;\n rdfs:isDefinedBy <http://www.w3.org/TR/vocab-dcat/> ;\n rdfs:label \"URL de descarga\"@es ;\n rdfs:label \"URL de téléchargement\"@fr ;\n rdfs:label \"URL di scarico\"@it ;\n rdfs:label \"URL souboru ke stažení\"@cs ;\n rdfs:label \"URL μεταφόρτωσης\"@el ;\n rdfs:label \"download URL\"@en ;\n rdfs:label \"رابط تحميل\"@ar ;\n rdfs:label \"ダウンロードURL\"@ja ;\n rdfs:label \"downloadURL\"@da ;\n rdfs:range rdfs:Resource ;\n skos:definition \"Ceci est un lien direct à un fichier téléchargeable en un format donnée. Exple fichier CSV ou RDF. Le format est décrit par les propriétés de distribution dcterms:format et/ou dcat:mediaType.\"@fr ;\n skos:definition \"La URL de un archivo descargable en el formato dato. Por ejemplo, archivo CSV o archivo RDF. El formato se describe con las propiedades de la distribución dcterms:format y/o dcat:mediaType.\"@es ;\n skos:definition \"Questo è un link diretto al file scaricabile in un dato formato. E.g. un file CSV o un file RDF. Il formato è descritto dal dcterms:format e/o dal dcat:mediaType della distribuzione.\"@it ;\n skos:definition \"The URL of the downloadable file in a given format. E.g. CSV file or RDF file. The format is indicated by the distribution's dcterms:format and/or dcat:mediaType.\"@en ;\n skos:definition \"URL souboru ke stažení v daném formátu, například CSV nebo RDF soubor. Formát je popsán vlastností distribuce dcterms:format a/nebo dcat:mediaType.\"@cs ;\n skos:definition \"dcat:downloadURLはdcat:accessURLの特定の形式です。しかし、DCATプロファイルが非ダウンロード・ロケーションに対してのみaccessURLを用いる場合には、より強い分離を課すことを望む可能性があるため、この含意を強化しないように、DCATは、dcat:downloadURLをdcat:accessURLのサブプロパティーであると定義しません。\"@ja ;\n skos:definition \"Είναι ένας σύνδεσμος άμεσης μεταφόρτωσης ενός αρχείου σε μια δεδομένη μορφή. Π.χ. ένα αρχείο CSV ή RDF. Η μορφη αρχείου περιγράφεται από τις ιδιότητες dcterms:format ή/και dcat:mediaType της διανομής.\"@el ;\n skos:definition \"URL til fil der kan downloades i et bestemt format. Fx en CSV-fil eller en RDF-fil. Formatet for distributionen angives ved hjælp af egenskaberne dcterms:format og/eller dcat:mediaType.\"@da ;\n skos:definition \"رابط مباشر لملف يمكن تحميله. نوع الملف يتم توصيفه باستخدام الخاصية dcterms:format dcat:mediaType \"@ar ;\n skos:editorialNote \"Status: English Definition text modified by DCAT revision team, Italian, Spanish and Czech translation updated, other translations pending.\"@en ;\n skos:editorialNote \"rdfs:label, rdfs:comment and/or skos:scopeNote have been modified. Non-english versions must be updated.\"@en ;\n skos:scopeNote \"El valor es una URL.\"@es ;\n skos:scopeNote \"La valeur est une URL.\"@fr ;\n skos:scopeNote \"dcat:downloadURL BY MĚLA být použita pro adresu, ze které je distribuce přímo přístupná, typicky skrze požadavek HTTP Get.\"@cs ;\n skos:scopeNote \"dcat:downloadURL DOVREBBE essere utilizzato per l'indirizzo a cui questa distribuzione è disponibile direttamente, in genere attraverso una richiesta Get HTTP.\"@it ;\n skos:scopeNote \"dcat:downloadURL SHOULD be used for the address at which this distribution is available directly, typically through a HTTP Get request.\"@en ;\n skos:scopeNote \"Η τιμή είναι ένα URL.\"@el ;\n skos:scopeNote \"dcat:downloadURL BØR anvendes til angivelse af den adresse hvor distributionen er tilgængelig direkte, typisk gennem et HTTP Get request.\"@da ;\n.\ndcat:endDate\n a rdf:Property ;\n a owl:DatatypeProperty ;\n rdfs:comment \"El fin del período.\"@es ;\n rdfs:comment \"Konec doby trvání.\"@cs ;\n rdfs:comment \"The end of the period.\"@en ;\n rdfs:comment \"La fine del periodo.\"@it ;\n rdfs:comment \"Slutningen på perioden.\"@da ;\n rdfs:domain dcterms:PeriodOfTime ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-2/> ;\n rdfs:label \"datum konce\"@cs ;\n rdfs:label \"end date\"@en ;\n rdfs:label \"data di fine\"@it ;\n rdfs:label \"fecha final\"@es ;\n rdfs:label \"slutdato\"@da ;\n rdfs:range rdfs:Literal ;\n skos:altLabel \"sluttidspunkt\"@da ;\n skos:changeNote \"New property added in DCAT 2.\"@en ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 2.\"@it ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 2.\"@cs ;\n skos:changeNote \"Nueva propiedad agregada en DCAT 2.\"@es ;\n skos:changeNote \"Ny egenskab i DCAT 2.\"@da ;\n skos:definition \"El fin del período.\"@es ;\n skos:definition \"Konec doby trvání.\"@cs ;\n skos:definition \"The end of the period.\"@en ;\n skos:definition \"La fine del periodo.\"@it ;\n skos:definition \"Slutningen på perioden.\"@da ;\n skos:scopeNote \"El rango de esta propiedad es intencionalmente genérico con el propósito de permitir distintos niveles de precisión temporal para especificar el fin del período. Por ejemplo, puede expresarse como una fecha (xsd:date), una fecha y un tiempo (xsd:dateTime), o un año (xsd:gYear).\"@es ;\n skos:scopeNote \"Obor hodnot této vlastnosti je úmyslně obecný, aby umožnil různé úrovně časového rozlišení pro specifikaci konce doby trvání. Ten může být kupříkladu vyjádřen datumem (xsd:date), datumem a časem (xsd:dateTime) či rokem (xsd:gYear).\"@cs ;\n skos:scopeNote \"The range of this property is intentionally generic, with the purpose of allowing different level of temporal precision for specifying the end of a period. E.g., it can be expressed with a date (xsd:date), a date and time (xsd:dateTime), or a year (xsd:gYear).\"@en ;\n skos:scopeNote \"La range di questa proprietà è volutamente generico, con lo scopo di consentire diversi livelli di precisione temporale per specificare la fine di un periodo. Ad esempio, può essere espresso con una data (xsd:date), una data e un'ora (xsd:dateTime), o un anno (xsd:gYear).\"@it ;\n skos:scopeNote \"Rækkeviden for denne egenskab er bevidst generisk defineret med det formål at tillade forskellige niveauer af tidslig præcision ifm. angivelse af slutdatoen for en periode. Den kan eksempelvis udtrykkes som en dato (xsd:date), en dato og et tidspunkt (xsd:dateTime), eller et årstal (xsd:gYear).\"@da ;\n.\ndcat:endpointDescription\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"A description of the service end-point, including its operations, parameters etc.\"@en ;\n rdfs:comment \"Popis přístupového bodu služby včetně operací, parametrů apod.\"@cs ;\n rdfs:comment \"Una descripción del end-point del servicio, incluyendo sus operaciones, parámetros, etc.\"@es ;\n rdfs:comment \"Una descrizione dell'endpoint del servizio, incluse le sue operazioni, parametri, ecc.\"@it ;\n rdfs:comment \"En beskrivelse af det pågældende tjenesteendpoint, inklusiv dets operationer, parametre etc.\"@da ;\n rdfs:domain dcat:DataService ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-2/> ;\n rdfs:label \"descripción del end-point del servicio\"@es ;\n rdfs:label \"description of service end-point\"@en ;\n rdfs:label \"descrizione dell'endpoint del servizio\"@it ;\n rdfs:label \"popis přístupového bodu služby\"@cs ;\n rdfs:label \"endpointbeskrivelse\"@da ;\n skos:changeNote \"New property in DCAT 2.\"@en ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 2.\"@cs ;\n skos:changeNote \"Nueva propiedad agregada en DCAT 2.\"@en ;\n skos:changeNote \"Nuova proprietà in DCAT 2.\"@it ;\n skos:changeNote \"Ny egenskab i DCAT 2.\"@da ;\n skos:definition \"A description of the service end-point, including its operations, parameters etc.\"@en ;\n skos:definition \"Popis přístupového bodu služby včetně operací, parametrů apod.\"@cs ;\n skos:definition \"Una descripción del end-point del servicio, incluyendo sus operaciones, parámetros, etc..\"@es ;\n skos:definition \"Una descrizione dell'endpoint del servizio, incluse le sue operazioni, parametri, ecc.\"@it ;\n skos:definition \"En beskrivelse af det pågældende tjenesteendpoint, inklusiv dets operationer, parametre etc.\"@da ;\n skos:scopeNote \"An endpoint description may be expressed in a machine-readable form, such as an OpenAPI (Swagger) description, an OGC GetCapabilities response, a SPARQL Service Description, an OpenSearch or WSDL document, a Hydra API description, else in text or some other informal mode if a formal representation is not possible.\"@en ;\n skos:scopeNote \"La descripción del endpoint brinda detalles específicos de la instancia del endpoint, mientras que dcterms:conformsTo se usa para indicar el estándar general o especificación que implementa el endpoint.\"@es ;\n skos:scopeNote \"La descrizione dell'endpoint fornisce dettagli specifici dell'istanza dell'endpoint reale, mentre dcterms:conformsTo viene utilizzato per indicare lo standard o le specifiche implementate dall'endpoint.\"@it ;\n skos:scopeNote \"Popis přístupového bodu dává specifické detaily jeho konkrétní instance, zatímco dcterms:conformsTo indikuje obecný standard či specifikaci kterou přístupový bod implementuje.\"@cs ;\n skos:scopeNote \"Popis přístupového bodu může být vyjádřen ve strojově čitelné formě, například jako popis OpenAPI (Swagger), odpověď služby OGC getCapabilities, pomocí slovníku SPARQL Service Description, jako OpenSearch či WSDL document, jako popis API dle slovníku Hydra, a nebo textově nebo jiným neformálním způsobem, pokud není možno použít formální reprezentaci.\"@cs ;\n skos:scopeNote \"The endpoint description gives specific details of the actual endpoint instance, while dcterms:conformsTo is used to indicate the general standard or specification that the endpoint implements.\"@en ;\n skos:scopeNote \"Una descripción del endpoint del servicio puede expresarse en un formato que la máquina puede interpretar, tal como una descripción basada en OpenAPI (Swagger), una respuesta OGC GetCapabilities, una descripción de un servicio SPARQL, un documento OpenSearch o WSDL, una descripción con la Hydra API, o en texto u otro modo informal si la representación formal no es posible.\"@es ;\n skos:scopeNote \"Una descrizione dell'endpoint può essere espressa in un formato leggibile dalla macchina, come una descrizione OpenAPI (Swagger), una risposta GetCapabilities OGC, una descrizione del servizio SPARQL, un documento OpenSearch o WSDL, una descrizione API Hydra, o con del testo o qualche altra modalità informale se una rappresentazione formale non è possibile.\"@it ;\n skos:scopeNote \"En beskrivelse af et endpoint kan udtrykkes i et maskinlæsbart format, såsom OpenAPI (Swagger)-beskrivelser, et OGC GetCapabilities svar, en SPARQL tjenestebeskrivelse, en OpenSearch- eller et WSDL-dokument, en Hydra-API-beskrivelse, eller i tekstformat eller i et andet uformelt format, hvis en formel repræsentation ikke er mulig.\"@da ;\n skos:scopeNote \"Endpointbeskrivelsen giver specifikke oplysninger om den konkrete endpointinstans, mens dcterms:conformsTo anvendes til at indikere den overordnede standard eller specifikation som endpointet er i overensstemmelse med.\"@da ;\n.\ndcat:endpointURL\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"Kořenové umístění nebo hlavní přístupový bod služby (IRI přístupné přes Web).\"@cs ;\n rdfs:comment \"La locazione principale o l'endpoint primario del servizio (un IRI risolvibile via web).\"@it ;\n rdfs:comment \"La posición raíz o end-point principal del servicio (una IRI web).\"@es ;\n rdfs:comment \"The root location or primary endpoint of the service (a web-resolvable IRI).\"@en ;\n rdfs:comment \"Rodplaceringen eller det primære endpoint for en tjeneste (en web-resolverbar IRI).\"@da ;\n rdfs:domain dcat:DataService ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-2/> ;\n rdfs:label \"end-point del servicio\"@es ;\n rdfs:label \"end-point del servizio\"@it ;\n rdfs:label \"přístupový bod služby\"@cs ;\n rdfs:label \"service end-point\"@en ;\n rdfs:label \"tjenesteendpoint\"@da ;\n rdfs:range rdfs:Resource ;\n skos:changeNote \"New property in DCAT 2.\"@en ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 2.\"@cs ;\n skos:changeNote \"Nueva propiedad agregada en DCAT 2.\"@es ;\n skos:changeNote \"Nuova proprietà in DCAT 2.\"@it ;\n skos:definition \"Kořenové umístění nebo hlavní přístupový bod služby (IRI přístupné přes Web).\"@cs ;\n skos:definition \"La locazione principale o l'endpoint primario del servizio (un IRI risolvibile via web).\"@it ;\n skos:definition \"La posición raíz o end-point principal del servicio (una IRI web).\"@es ;\n skos:definition \"The root location or primary endpoint of the service (a web-resolvable IRI).\"@en ;\n skos:definition \"Rodplaceringen eller det primære endpoint for en tjeneste (en web-resolverbar IRI).\"@da ;\n.\ndcat:first\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"The first resource in an ordered collection or series of resources, to which the current resource belongs.\"@en ;\n rdfs:comment \"El primer recurso en una colección ordenada o serie de recursos, al que el recurso pertenece.\"@es ;\n rdfs:comment \"La prima risorsa in una collezione ordinata o in una serie di risorse, di cui la risorsa fa parte.\"@it ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-3/> ;\n rdfs:label \"first\"@en ;\n rdfs:label \"primero\"@es ;\n rdfs:label \"primo\"@it ;\n rdfs:subPropertyOf xhv:first ;\n skos:changeNote \"New property added in DCAT 3.\"@en ;\n skos:changeNote \"Nueva propiedad agregada in DCAT 3.\"@es ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 3.\"@cs ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 3.\"@it ;\n skos:changeNote \"Ny egenskab tilføjet i DCAT 3.\"@da ;\n skos:definition \"The first resource in an ordered collection or series of resources, to which the current resource belongs.\"@en ;\n skos:definition \"El primer recurso en una colección ordenada o serie de recursos, al que el recurso pertenece.\"@es ;\n skos:definition \"La prima risorsa in una collezione ordinata o in una serie di risorse, di cui la risorsa fa parte.\"@it ;\n skos:scopeNote \"In DCAT this property is used for resources belonging to a dcat:DatasetSeries.\"@en ;\n skos:scopeNote \"En DCAT esta propiedad se usa para recursos que pertenecen a una dcat:DatasetSeries.\"@es ;\n skos:scopeNote \"In DCAT questa proprietà è usata per risorse che fanno parte di una dcat:DatasetSeries.\"@it ;\n.\ndcat:hasCurrentVersion\n a rdf:Property ;\n a owl:ObjectProperty ;\n owl:equivalentProperty pav:hasCurrentVersion ;\n rdfs:subPropertyOf pav:hasVersion ;\n rdfs:comment \"This resource has a more specific, versioned resource with equivalent content [PAV].\"@en ;\n rdfs:comment \"Este recurso es más específico y versionado con contenido equivalente [PAV].\"@es ;\n rdfs:comment \"Per questa risorsa esiste una risorsa più specifica e versionata, ma con lo stesso contenuto.\"@it ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-3/> ;\n rdfs:label \"has current version\"@en ;\n rdfs:label \"tiene versión actual\"@es ;\n rdfs:label \"ha versione attuale\"@it ;\n skos:changeNote \"New property added in DCAT 3.\"@en ;\n skos:changeNote \"Nueva propiedad agregada in DCAT 3.\"@es ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 3.\"@cs ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 3.\"@it ;\n skos:changeNote \"Ny egenskab tilføjet i DCAT 3.\"@da ;\n skos:definition \"This resource has a more specific, versioned resource with equivalent content [PAV].\"@en ;\n skos:definition \"Este recurso es más específico y versionado con contenido equivalente [PAV].\"@es ;\n skos:definition \"Per questa risorsa esiste una risorsa più specifica e versionata, ma con lo stesso contenuto.\"@it ;\n skos:scopeNote \"This property is intended for relating a non-versioned or abstract resource to a single snapshot that can be used as a permalink to indicate the current version of the content [PAV].\"@en ;\n skos:scopeNote \"Esta propepiedad está destinada a relacionar un recurso no versionado o abstracto con una versión instantánea que puede usarse como un enlace permanente a la versión actual del recurso [PAV].\"@es ;\n skos:scopeNote \"Questa proprietà è usata per correlare una risorsa non versionata o astratta a un suo specifico snapshot che può essere usato come permalink per indicare la versione attuale del suo contenuto.\"@it ;\n skos:scopeNote \"The notion of version used by this property is limited to versions resulting from revisions occurring to a resource as part of its life-cycle.\"@en ;\n skos:scopeNote \"La noción de versión que se usa en esta propiedad está limitada a las versiones que resultan de revisiones de un recurso como parte de su ciclo de vida.\"@es ;\n skos:scopeNote \"La nozione di versione usata da questa proprietà è limitata a versioni risultanti da revisioni a cui una risorsa è soggetta nel suo ciclo di vita.\"@it ;\n.\ndcat:hasVersion\n a rdf:Property ;\n a owl:ObjectProperty ;\n owl:equivalentProperty pav:hasVersion ;\n rdfs:comment \"This resource has a more specific, versioned resource [PAV].\"@en ;\n rdfs:comment \"Este recurso tiene una versión específica.\"@es ;\n rdfs:comment \"Per questa risorsa esiste una risorsa più specifica e versionata.\"@it ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-3/> ;\n rdfs:label \"has version\"@en ;\n rdfs:label \"tiene versión\"@es ;\n rdfs:label \"ha versione\"@it ;\n rdfs:subPropertyOf dcterms:hasVersion ;\n rdfs:subPropertyOf prov:generalizationOf ;\n skos:changeNote \"New property added in DCAT 3.\"@en ;\n skos:changeNote \"Nueva propiedad agregada in DCAT 3.\"@es ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 3.\"@cs ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 3.\"@it ;\n skos:changeNote \"Ny egenskab tilføjet i DCAT 3.\"@da ;\n skos:definition \"This resource has a more specific, versioned resource [PAV].\"@en ;\n skos:definition \"Este recurso tiene una versión específica.\"@es ;\n skos:definition \"Per questa risorsa esiste una risorsa più specifica e versionata.\"@it ;\n skos:scopeNote \"This property is intended for relating a non-versioned or abstract resource to several versioned resources, e.g., snapshots [PAV].\"@en ;\n skos:scopeNote \"Esta propiedad se utiliza para relacionar un recurso abstracto o no versionado de un recurso con varias versiones del recuros; por ejemplo, versiones intastáneas.\"@es ;\n skos:scopeNote \"Questa proprietà è usata per correlare una risorsa non versionata o astratta a differenti risorse versionate, ad es., i relativi snapshot.\"@it ;\n skos:scopeNote \"The notion of version used by this property is limited to versions resulting from revisions occurring to a resource as part of its life-cycle. Therefore, its semantics is more specific than its super-property dcterms:hasVersion, which makes use of a broader notion of version, including editions and adaptations.\"@en ;\n skos:scopeNote \"La noción de versión que se usa en esta propiedad está limitada a las versiones que resultan de revisiones de un recurso como parte de su ciclo de vida. Por lo tanto, su semántica es más específica que su super-propiedad dcterns:hasVersion, la cuál hace uso de la noción más amplia de versión, incluyendo ediciones y adaptaciones.\"@es ;\n skos:scopeNote \"La nozione di versione usata da questa proprietà è limitata a versioni risultanti da revisioni a cui una risorsa è soggetta nel suo ciclo di vita. Quindi la sua semantica è più specifica di quella della sua super-proprietà dcterms:hasVersion, che utilizza una nozione di versione più ampia, e include, ad es., edizioni e adattamenti.\"@it ;\n.\ndcat:hadRole\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"Funkce entity či agenta ve vztahu k jiné entitě či zdroji.\"@cs ;\n rdfs:comment \"La función de una entidad o agente con respecto a otra entidad o recurso.\"@es ;\n rdfs:comment \"La funzione di un'entità o un agente rispetto ad un'altra entità o risorsa.\"@it ;\n rdfs:comment \"The function of an entity or agent with respect to another entity or resource.\"@en ;\n rdfs:comment \"Den funktion en entitet eller aktør har i forhold til en anden ressource.\"@da ;\n rdfs:domain [\n a owl:Class ;\n owl:unionOf (\n prov:Attribution\n dcat:Relationship\n ) ;\n ] ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-2/> ;\n rdfs:label \"haRuolo\"@it ;\n rdfs:label \"hadRole\"@en ;\n rdfs:label \"sehraná role\"@cs ;\n rdfs:label \"tiene rol\"@it ;\n rdfs:label \"havde rolle\"@da ;\n rdfs:range dcat:Role ;\n skos:changeNote \"New property added in DCAT 2.\"@en ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 2.\"@cs ;\n skos:changeNote \"Nueva propiedad agregada en DCAT 2.\"@es ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 2.\"@it ;\n skos:definition \"Funkce entity či agenta ve vztahu k jiné entitě či zdroji.\"@cs ;\n skos:definition \"La función de una entidad o agente con respecto a otra entidad o recurso.\"@es ;\n skos:definition \"La funzione di un'entità o un agente rispetto ad un'altra entità o risorsa.\"@it ;\n skos:definition \"The function of an entity or agent with respect to another entity or resource.\"@en ;\n skos:definition \"Den funktion en entitet eller aktør har i forhold til en anden ressource.\"@da ;\n skos:editorialNote \"Agregada en DCAT para complementar prov:hadRole (cuyo uso está limitado a roles en el contexto de una actividad, con dominio prov:Association.\"@es ;\n skos:editorialNote \"Introdotta in DCAT per completare prov:hadRole (il cui uso è limitato ai ruoli nel contesto di un'attività, con il dominio di prov:Association.\"@it ;\n skos:editorialNote \"Introduced into DCAT to complement prov:hadRole (whose use is limited to roles in the context of an activity, with the domain of prov:Association.\"@en ;\n skos:editorialNote \"Přidáno do DCAT pro doplnění vlastnosti prov:hadRole (jejíž užití je omezeno na role v kontextu aktivity, s definičním oborem prov:Association).\"@cs ;\n skos:editorialNote \"Introduceret i DCAT for at supplere prov:hadRole (hvis anvendelse er begrænset til roller i forbindelse med en aktivitet med domænet prov:Association).\"@da ;\n skos:scopeNote \"May be used in a qualified-attribution to specify the role of an Agent with respect to an Entity. It is recommended that the value be taken from a controlled vocabulary of agent roles, such as http://registry.it.csiro.au/def/isotc211/CI_RoleCode.\"@en ;\n skos:scopeNote \"May be used in a qualified-relation to specify the role of an Entity with respect to another Entity. It is recommended that the value be taken from a controlled vocabulary of entity roles such as: ISO 19115 DS_AssociationTypeCode http://registry.it.csiro.au/def/isotc211/DS_AssociationTypeCode; IANA Registry of Link Relations https://www.iana.org/assignments/link-relation; DataCite metadata schema; MARC relators https://id.loc.gov/vocabulary/relators.\"@en ;\n skos:scopeNote \"Může být použito v kvalifikovaném přiřazení pro specifikaci role Agenta ve vztahu k Entitě. Je doporučeno hodnotu vybrat z řízeného slovníku rolí agentů, jako například http://registry.it.csiro.au/def/isotc211/CI_RoleCode.\"@cs ;\n skos:scopeNote \"Může být použito v kvalifikovaném vztahu pro specifikaci role Entity ve vztahu k jiné Entitě. Je doporučeno použít hodnotu z řízeného slovníku rolí entit, jako například ISO 19115 DS_AssociationTypeCode http://registry.it.csiro.au/def/isotc211/DS_AssociationTypeCode, IANA Registry of Link Relations https://www.iana.org/assignments/link-relation, DataCite metadata schema, MARC relators https://id.loc.gov/vocabulary/relators.\"@cs ;\n skos:scopeNote \"Puede usarse en una atribución cualificada para especificar el rol de un Agente con respecto a una Entidad. Se recomienda que el valor sea de un vocabulario controlado de roles de agentes, como por ejemplo http://registry.it.csiro.au/def/isotc211/CI_RoleCode.\"@es ;\n skos:scopeNote \"Puede usarse en una atribución cualificada para especificar el rol de una Entidad con respecto a otra Entidad. Se recomienda que su valor se tome de un vocabulario controlado de roles de entidades como por ejemplo: ISO 19115 DS_AssociationTypeCode http://registry.it.csiro.au/def/isotc211/DS_AssociationTypeCode; IANA Registry of Link Relations https://www.iana.org/assignments/link-relation; esquema de metadatos de DataCite; MARC relators https://id.loc.gov/vocabulary/relators.\"@es ;\n skos:scopeNote \"Può essere utilizzata in una relazione qualificata per specificare il ruolo di un'entità rispetto a un'altra entità. Si raccomanda che il valore sia preso da un vocabolario controllato di ruoli di entità come ISO 19115 DS_AssociationTypeCode http://registry.it.csiro.au/def/isotc211/DS_AssociationTypeCode, IANA Registry of Link Relations https://www.iana.org/assignments/link-relation, DataCite metadata schema, o MARC relators https://id.loc.gov/vocabulary/relators.\"@it ;\n skos:scopeNote \"Può essere utilizzato in un'attribuzione qualificata per specificare il ruolo di un agente rispetto a un'entità. Si raccomanda che il valore sia preso da un vocabolario controllato di ruoli di agente, come ad esempio http://registry.it.csiro.au/def/isotc211/CI_RoleCode.\"@it ;\n skos:scopeNote \"Kan vendes ved kvalificerede krediteringer til at angive en aktørs rolle i forhold en entitet. Det anbefales at værdierne styres som et kontrolleret udfaldsrum med aktørroller, såsom http://registry.it.csiro.au/def/isotc211/CI_RoleCode.\"@da ;\n.\ndcat:isDistributionOf owl:inverseOf dcat:distribution ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-3/> ;\n skos:changeNote \"New property added in DCAT 3.\"@en ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 3.\"@cs ;\n skos:changeNote \"Nueva propiedad agregada en DCAT 3.\"@es ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 3.\"@it ;\n skos:scopeNote \"This property MAY be used only in addition to its inverse, and it MUST NOT be used to replace it.\"@en ;\n skos:scopeNote \"Esta propiedad inversa PUEDE usarse sólo en combinación con su inversa, y NO PUEDE utilizarse en su reemplazo.\"@es ;\n skos:scopeNote \"Questa proprietà PUÒ essere usata solo insieme alla sua inversa, e NON DEVE essere usata per sostituirla.\"@it ;\n.\ndcat:isVersionOf owl:inverseOf dcat:hasVersion ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-3/> ;\n skos:changeNote \"New property added in DCAT 3.\"@en ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 3.\"@cs ;\n skos:changeNote \"Nueva propiedad agregada en DCAT 3.\"@es ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 3.\"@it ;\n skos:scopeNote \"This property MAY be used only in addition to its inverse, and it MUST NOT be used to replace it.\"@en ;\n skos:scopeNote \"Esta propiedad inversa PUEDE usarse sólo en combinación con su inversa, y NO PUEDE utilizarse en su reemplazo.\"@es ;\n skos:scopeNote \"Questa proprietà PUÒ essere usata solo insieme alla sua inversa, e NON DEVE essere usata per sostituirla.\"@it ;\n.\ndcat:inCatalog owl:inverseOf dcat:resource ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-3/> ;\n skos:changeNote \"New property added in DCAT 3.\"@en ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 3.\"@cs ;\n skos:changeNote \"Nueva propiedad agregada en DCAT 3.\"@es ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 3.\"@it ;\n skos:scopeNote \"This property MAY be used only in addition to its inverse, and it MUST NOT be used to replace it.\"@en ;\n skos:scopeNote \"Esta propiedad inversa PUEDE usarse sólo en combinación con su inversa, y NO PUEDE utilizarse en su reemplazo.\"@es ;\n skos:scopeNote \"Questa proprietà PUÒ essere usata solo insieme alla sua inversa, e NON DEVE essere usata per sostituirla.\"@it ;\n.\ndcat:inSeries\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"A dataset series of which the dataset is part.\"@en ;\n rdfs:comment \"Una serie de conjuntos de datos del cuál un conjunto de datos es parte.\"@es ;\n rdfs:comment \"Una serie di dataset di cui questo dataset fa parte.\"@it ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-3/> ;\n rdfs:label \"in series\"@en ;\n rdfs:label \"en serie\"@es ;\n rdfs:label \"in serie\"@it ;\n rdfs:subPropertyOf dcterms:isPartOf ;\n skos:changeNote \"New property added in DCAT 3.\"@en ;\n skos:changeNote \"Nueva propiedad agregada in DCAT 3.\"@es ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 3.\"@cs ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 3.\"@it ;\n skos:changeNote \"Ny egenskab tilføjet i DCAT 3.\"@da ;\n skos:definition \"A dataset series of which the dataset is part.\"@en ;\n skos:definition \"Una serie de conjuntos de datos del cuál un conjunto de datos es parte.\"@es ;\n skos:definition \"Una serie di dataset di cui questo dataset fa parte.\"@it ;\n.\ndcat:keyword\n a rdf:Property ;\n a owl:DatatypeProperty ;\n rdfs:comment \"A keyword or tag describing a resource.\"@en ;\n rdfs:comment \"Klíčové slovo nebo značka popisující zdroj.\"@cs ;\n rdfs:comment \"Un mot-clé ou étiquette décrivant une ressource.\"@fr ;\n rdfs:comment \"Una palabra clave o etiqueta que describe un recurso.\"@es ;\n rdfs:comment \"Una parola chiave o un'etichetta per descrivere la risorsa.\"@it ;\n rdfs:comment \"Μία λέξη-κλειδί ή μία ετικέτα που περιγράφει το σύνολο δεδομένων.\"@el ;\n rdfs:comment \"كلمة مفتاحيه توصف قائمة البيانات\"@ar ;\n rdfs:comment \"データセットを記述しているキーワードまたはタグ。\"@ja ;\n rdfs:comment \"Et nøgleord eller tag til beskrivelse af en ressource.\"@da ;\n rdfs:isDefinedBy <http://www.w3.org/TR/vocab-dcat/> ;\n rdfs:label \"keyword\"@en ;\n rdfs:label \"klíčové slovo\"@cs ;\n rdfs:label \"mot-clés \"@fr ;\n rdfs:label \"palabra clave\"@es ;\n rdfs:label \"parola chiave\"@it ;\n rdfs:label \"λέξη-κλειδί\"@el ;\n rdfs:label \"كلمة مفتاحية \"@ar ;\n rdfs:label \"キーワード/タグ\"@ja ;\n rdfs:label \"nøgleord\"@da ;\n rdfs:range rdfs:Literal ;\n skos:definition \"A keyword or tag describing a resource.\"@en ;\n skos:definition \"Klíčové slovo nebo značka popisující zdroj.\"@cs ;\n skos:definition \"Un mot-clé ou étiquette décrivant une ressource.\"@fr ;\n skos:definition \"Una palabra clave o etiqueta que describe un recurso.\"@es ;\n skos:definition \"Una parola chiave o un'etichetta per descrivere la risorsa.\"@it ;\n skos:definition \"Μία λέξη-κλειδί ή μία ετικέτα που περιγράφει το σύνολο δεδομένων.\"@el ;\n skos:definition \"كلمة مفتاحيه توصف قائمة البيانات\"@ar ;\n skos:definition \"データセットを記述しているキーワードまたはタグ。\"@ja ;\n skos:definition \"Et nøgleord eller tag til beskrivelse af en ressource.\"@da ;\n.\ndcat:landingPage\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"A Web page that can be navigated to in a Web browser to gain access to the catalog, a dataset, its distributions and/or additional information.\"@en ;\n rdfs:comment \"Una pagina web che può essere navigata per ottenere l'accesso al catalogo, ad un dataset, alle distribuzioni del dataset e/o ad informazioni addizionali.\"@it ;\n rdfs:comment \"Una página web que puede ser visitada en un explorador Web para tener acceso el catálogo, un conjunto de datos, sus distribuciones y/o información adicional.\"@es ;\n rdfs:comment \"Une page Web accessible par un navigateur Web donnant accès au catalogue, un jeu de données, ses distributions et/ou des informations additionnelles.\"@fr ;\n rdfs:comment \"Webová stránka, na kterou lze pro získání přístupu ke katalogu, datové sadě, jejím distribucím a/nebo dalším informacím přistoupit webovým prohlížečem.\"@cs ;\n rdfs:comment \"Μία ιστοσελίδα πλοηγίσιμη μέσω ενός φυλλομετρητή (Web browser) που δίνει πρόσβαση στο σύνολο δεδομένων, τις διανομές αυτού ή/και επιπρόσθετες πληροφορίες.\"@el ;\n rdfs:comment \"صفحة وب يمكن من خلالها الوصول الى قائمة البيانات أو إلى معلومات إضافية متعلقة بها \"@ar ;\n rdfs:comment \"データセット、その配信および(または)追加情報にアクセスするためにウエブ・ブラウザでナビゲートできるウェブページ。\"@ja ;\n rdfs:comment \"En webside som der kan navigeres til i en webbrowser for at få adgang til kataloget, et datasæt, dets distributioner og/eller yderligere information.\"@da ;\n rdfs:isDefinedBy <http://www.w3.org/TR/vocab-dcat/> ;\n rdfs:label \"landing page\"@en ;\n rdfs:label \"page d'atterrissage\"@fr ;\n rdfs:label \"pagina di destinazione\"@it ;\n rdfs:label \"página de destino\"@es ;\n rdfs:label \"vstupní stránka\"@cs ;\n rdfs:label \"ιστοσελίδα αρχικής πρόσβασης\"@el ;\n rdfs:label \"صفحة وصول\"@ar ;\n rdfs:label \"ランディング・ページ\"@ja ;\n rdfs:label \"destinationsside\"@da ;\n rdfs:range foaf:Document ;\n rdfs:subPropertyOf foaf:page ;\n skos:definition \"A Web page that can be navigated to in a Web browser to gain access to the catalog, a dataset, its distributions and/or additional information.\"@en ;\n skos:definition \"Una pagina web che può essere navigata per ottenere l'accesso al catalogo, ad un dataset, alle distribuzioni del dataset e/o ad informazioni addizionali.\"@it ;\n skos:definition \"Una página web que puede ser visitada en un explorador Web para tener acceso el catálogo, un conjunto de datos, sus distribuciones y/o información adicional.\"@es ;\n skos:definition \"Une page Web accessible par un navigateur Web donnant accès au catalogue, un jeu de données, ses distributions et/ou des informations additionnelles.\"@fr ;\n skos:definition \"Webová stránka, na kterou lze pro získání přístupu ke katalogu, datové sadě, jejím distribucím a/nebo dalším informacím přistoupit webovým prohlížečem.\"@cs ;\n skos:definition \"Μία ιστοσελίδα πλοηγίσιμη μέσω ενός φυλλομετρητή (Web browser) που δίνει πρόσβαση στο σύνολο δεδομένων, τις διανομές αυτού ή/και επιπρόσθετες πληροφορίες.\"@el ;\n skos:definition \"صفحة وب يمكن من خلالها الوصول الى قائمة البيانات أو إلى معلومات إضافية متعلقة بها \"@ar ;\n skos:definition \"データセット、その配信および(または)追加情報にアクセスするためにウエブ・ブラウザでナビゲートできるウェブページ。\"@ja ;\n skos:definition \"En webside som en webbrowser kan navigeres til for at få adgang til kataloget, et datasæt, dets distritbutioner og/eller yderligere information.\"@da ;\n skos:scopeNote \"If the distribution(s) are accessible only through a landing page (i.e. direct download URLs are not known), then the landing page link should be duplicated as accessURL on a distribution.\"@en ;\n skos:scopeNote \"Pokud je distribuce dostupná pouze přes vstupní stránku, t.j. přímý URL odkaz ke stažení není znám, URL přístupové stránky by mělo být duplikováno ve vlastnosti distribuce accessURL.\"@cs ;\n skos:scopeNote \"Se la distribuzione è accessibile solo attraverso una pagina di destinazione (cioè, un URL di download diretto non è noto), il link alla pagina di destinazione deve essere duplicato come accessURL sulla distribuzione.\"@it ;\n skos:scopeNote \"Si la distribución es accesible solamente través de una página de aterrizaje (i.e., no se conoce una URL de descarga directa), entonces el enlance a la página de aterrizaje debe ser duplicado como accessURL sobre la distribución.\"@es ;\n skos:scopeNote \"Si la distribution est seulement accessible à travers une page d'atterrissage (exple. pas de connaissance d'URLS de téléchargement direct ), alors le lien de la page d'atterrissage doit être dupliqué comme accessURL sur la distribution.\"@fr ;\n skos:scopeNote \"Αν η/οι διανομή/ές είναι προσβάσιμη/ες μόνο μέσω μίας ιστοσελίδας αρχικής πρόσβασης (δηλαδή αν δεν υπάρχουν γνωστές διευθύνσεις άμεσης μεταφόρτωσης), τότε ο σύνδεσμος της ιστοσελίδας αρχικής πρόσβασης πρέπει να αναπαραχθεί ως accessURL σε μία διανομή.\"@el ;\n skos:scopeNote \"ランディング・ページを通じてしか配信にアクセスできない場合(つまり、直接的なダウンロードURLが不明)には、配信におけるaccessURLとしてランディング・ページのリンクをコピーすべきです(SHOULD)。\"@ja ;\n skos:scopeNote \"Hvis en eller flere distributioner kun er tilgængelige via en destinationsside (dvs. en URL til direkte download er ikke kendt), så bør destinationssidelinket gentages som adgangsadresse for en distribution.\"@da ;\n.\ndcat:last\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"The last resource in an ordered collection or series of resources, to which the current resource belongs.\"@en ;\n rdfs:comment \"El último recurso en una colección ordenada o serie de recursos, al que el recurso pertenece.\"@es ;\n rdfs:comment \"L'ultima risorsa in una collezione ordinata o in una serie di risorse, di cui la risorsa fa parte.\"@it ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-3/> ;\n rdfs:label \"last\"@en ;\n rdfs:label \"último\"@es ;\n rdfs:label \"ultimo\"@it ;\n rdfs:subPropertyOf xhv:last ;\n skos:changeNote \"New property added in DCAT 3.\"@en ;\n skos:changeNote \"Nueva propiedad agregada in DCAT 3.\"@es ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 3.\"@cs ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 3.\"@it ;\n skos:changeNote \"Ny egenskab tilføjet i DCAT 3.\"@da ;\n skos:definition \"The last resource in an ordered collection or series of resources, to which the current resource belongs.\"@en ;\n skos:definition \"El último recurso en una colección ordenada o serie de recursos, al que el recurso pertenece.\"@es ;\n skos:definition \"L'ultima risorsa in una collezione ordinata o in una serie di risorse, di cui la risorsa fa parte.\"@it ;\n skos:scopeNote \"In DCAT this property is used for resources belonging to a dcat:DatasetSeries.\"@en ;\n skos:scopeNote \"En DCAT esta propiedad se usa para recursos que pertenecen a una dcat:DatasetSeries.\"@es ;\n skos:scopeNote \"In DCAT questa proprietà è usata per risorse che fanno parte di una dcat:DatasetSeries.\"@it ;\n.\ndcat:mediaType\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"Cette propriété doit être utilisée quand c'est définit le type de média de la distribution en IANA, sinon dcterms:format DOIT être utilisé avec différentes valeurs.\"@fr ;\n rdfs:comment \"Esta propiedad debe ser usada cuando está definido el tipo de media de la distribución en IANA, de otra manera dcterms:format puede ser utilizado con diferentes valores\"@es ;\n rdfs:comment \"Il tipo di media della distribuzione come definito da IANA\"@it ;\n rdfs:comment \"The media type of the distribution as defined by IANA\"@en ;\n rdfs:comment \"Typ média distribuce definovaný v IANA.\"@cs ;\n rdfs:comment \"Η ιδιότητα αυτή ΘΑ ΠΡΕΠΕΙ να χρησιμοποιείται όταν ο τύπος μέσου μίας διανομής είναι ορισμένος στο IANA, αλλιώς η ιδιότητα dcterms:format ΔΥΝΑΤΑΙ να χρησιμοποιηθεί με διαφορετικές τιμές.\"@el ;\n rdfs:comment \"يجب استخدام هذه الخاصية إذا كان نوع الملف معرف ضمن IANA\"@ar ;\n rdfs:comment \"このプロパティーは、配信のメディア・タイプがIANAで定義されているときに使用すべきで(SHOULD)、そうでない場合には、dcterms:formatを様々な値と共に使用できます(MAY)。\"@ja ;\n rdfs:comment \"Medietypen for distributionen som den er defineret af IANA.\"@da ;\n rdfs:domain dcat:Distribution ;\n rdfs:isDefinedBy <http://www.w3.org/TR/vocab-dcat/> ;\n rdfs:label \"media type\"@en ;\n rdfs:label \"tipo de media\"@es ;\n rdfs:label \"tipo di media\"@it ;\n rdfs:label \"typ média\"@cs ;\n rdfs:label \"type de média\"@fr ;\n rdfs:label \"τύπος μέσου\"@el ;\n rdfs:label \"نوع الميديا\"@ar ;\n rdfs:label \"メディア・タイプ\"@ja ;\n rdfs:label \"medietype\"@da ;\n rdfs:range dcterms:MediaType ;\n rdfs:subPropertyOf dcterms:format ;\n skos:changeNote \"Obor hodnot dcat:mediaType byl zúžen v této revizi DCAT.\"@cs ;\n skos:changeNote \"The range of dcat:mediaType has been tightened as part of the revision of DCAT.\"@en ;\n skos:changeNote \"Il range di dcat:mediaType è stato ristretto come parte della revisione di DCAT.\"@it ;\n skos:definition \"Cette propriété doit être utilisée quand c'est définit le type de média de la distribution en IANA, sinon dcterms:format DOIT être utilisé avec différentes valeurs.\"@fr ;\n skos:definition \"Esta propiedad debe ser usada cuando está definido el tipo de media de la distribución en IANA, de otra manera dcterms:format puede ser utilizado con diferentes valores.\"@es ;\n skos:definition \"Il tipo di media della distribuzione come definito da IANA.\"@it ;\n skos:definition \"The media type of the distribution as defined by IANA.\"@en ;\n skos:definition \"Typ média distribuce definovaný v IANA.\"@cs ;\n skos:definition \"Η ιδιότητα αυτή ΘΑ ΠΡΕΠΕΙ να χρησιμοποιείται όταν ο τύπος μέσου μίας διανομής είναι ορισμένος στο IANA, αλλιώς η ιδιότητα dcterms:format ΔΥΝΑΤΑΙ να χρησιμοποιηθεί με διαφορετικές τιμές.\"@el ;\n skos:definition \"يجب استخدام هذه الخاصية إذا كان نوع الملف معرف ضمن IANA\"@ar ;\n skos:definition \"このプロパティーは、配信のメディア・タイプがIANAで定義されているときに使用すべきで(SHOULD)、そうでない場合には、dcterms:formatを様々な値と共に使用できます(MAY)。\"@ja ;\n skos:definition \"Medietypen for distributionen som den er defineret af IANA.\"@da ;\n skos:editorialNote \"Status: English Definition text modified by DCAT revision team, Italian and Czech translation provided, other translations pending. Note some inconsistency on def vs. usage.\"@en ;\n skos:scopeNote \"Esta propiedad DEBERÍA usarse cuando el 'media type' de la distribución está definido en el registro IANA de 'media types' https://www.iana.org/assignments/media-types/, de lo contrario, dcterms:format PUEDE usarse con distintos valores.\"@es ;\n skos:scopeNote \"Questa proprietà DEVE essere usata quando il tipo di media della distribuzione è definito nel registro dei tipi di media IANA https://www.iana.org/assignments/media-types/, altrimenti dcterms:format PUO 'essere usato con differenti valori.\"@it ;\n skos:scopeNote \"Tato vlastnost BY MĚLA být použita, je-li typ média distribuce definován v registru IANA https://www.iana.org/assignments/media-types/. V ostatních případech MŮŽE být použita vlastnost dcterms:format s jinými hodnotami.\"@cs ;\n skos:scopeNote \"This property SHOULD be used when the media type of the distribution is defined in the IANA media types registry https://www.iana.org/assignments/media-types/, otherwise dcterms:format MAY be used with different values.\"@en ;\n skos:scopeNote \"Denne egenskab BØR anvendes hvis distributionens medietype optræder i 'IANA media types registry' https://www.iana.org/assignments/media-types/, ellers KAN egenskaben dcterms:format anvendes med et andet udfaldsrum.\"@da ;\n.\ndcat:next owl:inverseOf dcat:prev ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-3/> ;\n skos:changeNote \"New property added in DCAT 3.\"@en ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 3.\"@cs ;\n skos:changeNote \"Nueva propiedad agregada en DCAT 3.\"@es ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 3.\"@it ;\n skos:scopeNote \"This property MAY be used only in addition to its inverse, and it MUST NOT be used to replace it.\"@en ;\n skos:scopeNote \"Esta propiedad inversa PUEDE usarse sólo en combinación con su inversa, y NO PUEDE utilizarse en su reemplazo.\"@es ;\n skos:scopeNote \"Questa proprietà PUÒ essere usata solo insieme alla sua inversa, e NON DEVE essere usata per sostituirla.\"@it ;\n.\ndcat:nextVersion owl:inverseOf dcat:previousVersion ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-3/> ;\n skos:changeNote \"New property added in DCAT 3.\"@en ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 3.\"@cs ;\n skos:changeNote \"Nueva propiedad agregada en DCAT 3.\"@es ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 3.\"@it ;\n skos:scopeNote \"This property MAY be used only in addition to its inverse, and it MUST NOT be used to replace it.\"@en ;\n skos:scopeNote \"Esta propiedad inversa PUEDE usarse sólo en combinación con su inversa, y NO PUEDE utilizarse en su reemplazo.\"@es ;\n skos:scopeNote \"Questa proprietà PUÒ essere usata solo insieme alla sua inversa, e NON DEVE essere usata per sostituirla.\"@it ;\n.\ndcat:packageFormat\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"Balíčkový formát souboru, ve kterém je jeden či více souborů seskupeno dohromady, např. aby bylo možné stáhnout sadu souvisejících souborů naráz.\"@cs ;\n rdfs:comment \"El formato del archivo en que se agrupan uno o más archivos de datos, e.g. para permitir que un conjunto de archivos relacionados se bajen juntos.\"@es ;\n rdfs:comment \"Il formato di impacchettamento della distribuzione in cui uno o più file di dati sono raggruppati insieme, ad es. per abilitare un insieme di file correlati da scaricare insieme.\"@it ;\n rdfs:comment \"The package format of the distribution in which one or more data files are grouped together, e.g. to enable a set of related files to be downloaded together.\"@en ;\n rdfs:comment \"Format til pakning af data med henblik på distribution af en eller flere relaterede datafiler der samles til en enhed med henblik på samlet distribution. \"@da ;\n rdfs:domain dcat:Distribution ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-2/> ;\n rdfs:label \"formato de empaquetado\"@es ;\n rdfs:label \"formato di impacchettamento\"@it ;\n rdfs:label \"formát balíčku\"@cs ;\n rdfs:label \"packaging format\"@en ;\n rdfs:label \"pakkeformat\"@da ;\n rdfs:range dcterms:MediaType ;\n rdfs:subPropertyOf dcterms:format ;\n skos:changeNote \"New property added in DCAT 2.\"@en ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 2.\"@cs ;\n skos:changeNote \"Nueva propiedad agregada en DCAT 2.\"@es ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 2.\"@it ;\n skos:changeNote \"Ny egenskab tilføjet i DCAT 2.\"@da ;\n skos:definition \"Balíčkový formát souboru, ve kterém je jeden či více souborů seskupeno dohromady, např. aby bylo možné stáhnout sadu souvisejících souborů naráz.\"@cs ;\n skos:definition \"El formato del archivo en que se agrupan uno o más archivos de datos, e.g. para permitir que un conjunto de archivos relacionados se bajen juntos.\"@es ;\n skos:definition \"Il formato di impacchettamento della distribuzione in cui uno o più file di dati sono raggruppati insieme, ad es. per abilitare un insieme di file correlati da scaricare insieme.\"@it ;\n skos:definition \"The package format of the distribution in which one or more data files are grouped together, e.g. to enable a set of related files to be downloaded together.\"@en ;\n skos:scopeNote \"Esta propiedad se debe usar cuando los archivos de la distribución están empaquetados, por ejemplo en un archivo TAR, Frictionless Data Package o Bagit. El formato DEBERÍA expresarse usando un 'media type', tales como los definidos en el registro IANA de 'media types' https://www.iana.org/assignments/media-types/, si está disponibles.\"@es ;\n skos:scopeNote \"Questa proprietà deve essere utilizzata quando i file nella distribuzione sono impacchettati, ad esempio in un file TAR, Frictionless Data Package o Bagit. Il formato DOVREBBE essere espresso utilizzando un tipo di supporto come definito dal registro dei tipi di media IANA https://www.iana.org/assignments/media-types/, se disponibili.\"@it ;\n skos:scopeNote \"Tato vlastnost se použije, když jsou soubory v distribuci zabaleny, např. v souboru TAR, v balíčku Frictionless Data Package nebo v souboru Bagit. Formát BY MĚL být vyjádřen pomocí typu média definovaného v registru IANA https://www.iana.org/assignments/media-types/, pokud existuje.\"@cs ;\n skos:scopeNote \"This property to be used when the files in the distribution are packaged, e.g. in a TAR file, a Frictionless Data Package or a Bagit file. The format SHOULD be expressed using a media type as defined by IANA media types registry https://www.iana.org/assignments/media-types/, if available.\"@en ;\n skos:scopeNote \"Denne egenskab kan anvendes hvis filerne i en distribution er pakket, fx i en TAR-fil, en Frictionless Data Package eller en Bagit-fil. Formatet BØR udtrykkes ved en medietype som defineret i 'IANA media types registry', hvis der optræder en relevant medietype dér: https://www.iana.org/assignments/media-types/.\"@da ;\n.\ndcat:prev\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"The previous resource (before the current one) in an ordered collection or series of resources.\"@en ;\n rdfs:comment \"La risorsa precedente a quella attuale in una collezione ordinata o in una serie di risorse.\"@it ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-3/> ;\n rdfs:label \"previous\"@en ;\n rdfs:label \"previo\"@es ;\n rdfs:label \"precedente\"@it ;\n rdfs:subPropertyOf xhv:prev ;\n skos:changeNote \"New property added in DCAT 3.\"@en ;\n skos:changeNote \"Nueva propiedad agregada in DCAT 3.\"@es ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 3.\"@cs ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 3.\"@it ;\n skos:changeNote \"Ny egenskab tilføjet i DCAT 3.\"@da ;\n skos:definition \"The previous resource (before the current one) in an ordered collection or series of resources.\"@en ;\n skos:definition \"La risorsa precedente a quella attuale in una collezione ordinata o in una serie di risorse.\"@it ;\n skos:scopeNote \"In DCAT this property is used for resources belonging to a dcat:DatasetSeries.\"@en ;\n skos:scopeNote \"En DCAT esta propiedad se usa para recursos que pertenecen a una dcat:DatasetSeries.\"@es ;\n skos:scopeNote \"In DCAT questa proprietà è usata per risorse che fanno parte di una dcat:DatasetSeries.\"@it ;\n skos:scopeNote \"It is important to note that this property is different from dcat:previousVersion, as it does not denote a previous version of the same resource, but a distinct resource immediately preceding the current one in an ordered collection of resources.\"@en ;\n skos:scopeNote \"È importante notare che questa proprietà è diversa da dcat:previousVersion, dato che non indica una versione precedente della stessa risorsa, ma una risorsa distinta che precede immediatamente quella attuale in una collezione ordinata di risorse.\"@it ;\n.\ndcat:previousVersion\n a rdf:Property ;\n a owl:ObjectProperty ;\n owl:equivalentProperty pav:previousVersion ;\n rdfs:comment \"The previous version of a resource in a lineage [PAV].\"@en ;\n rdfs:comment \"La versione precedente di una risorsa.\"@it ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-3/> ;\n rdfs:label \"previous version\"@en ;\n rdfs:label \"versión anterior\"@es ;\n rdfs:label \"versione precedente\"@it ;\n rdfs:subPropertyOf prov:wasRevisionOf ;\n skos:definition \"The previous version of a resource in a lineage [PAV].\"@en ;\n skos:definition \"La versione precedente di una risorsa.\"@it ;\n skos:scopeNote \"This property is meant to be used to specify a version chain, consisting of snapshots of a resource.\"@en ;\n skos:scopeNote \"Questa proprietà è usata per specificare una catena di versioni, costituita da snapshot di una risorsa.\"@it ;\n skos:scopeNote \"The notion of version used by this property is limited to versions resulting from revisions occurring to a resource as part of its life-cycle. One of the typical cases here is representing the history of the versions of a dataset that have been released over time.\"@en ;\n skos:scopeNote \"La nozione di versione usata da questa proprietà è limitata a versioni risultanti da revisioni a cui una risorsa è soggetta nel suo ciclo di vita. Uno dei casi tipici è la rappresentazione della storia delle versioni di un dataset, che sono state pubblicate nel corso del tempo.\"@it ;\n skos:changeNote \"New property added in DCAT 3.\"@en ;\n skos:changeNote \"Nueva propiedad agregada in DCAT 3.\"@es ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 3.\"@cs ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 3.\"@it ;\n skos:changeNote \"Ny egenskab tilføjet i DCAT 3.\"@da ;\n.\ndcat:qualifiedRelation\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"Enlace a una descripción de la relación con otro recurso.\"@es ;\n rdfs:comment \"Link a una descrizione di una relazione con un'altra risorsa.\"@it ;\n rdfs:comment \"Link to a description of a relationship with another resource.\"@en ;\n rdfs:comment \"Odkaz na popis vztahu s jiným zdrojem.\"@cs ;\n rdfs:comment \"Reference til en beskrivelse af en relation til en anden ressource.\"@da ;\n rdfs:domain dcat:Resource ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-2/> ;\n rdfs:label \"kvalifikovaný vztah\"@cs ;\n rdfs:label \"qualified relation\"@en ;\n rdfs:label \"relación calificada\"@es ;\n rdfs:label \"relazione qualificata\"@it ;\n rdfs:label \"Kvalificeret relation\"@da ;\n rdfs:range dcat:Relationship ;\n skos:changeNote \"New property added in DCAT 2.\"@en ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 2.\"@cs ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 2.\"@it ;\n skos:changeNote \"Propiedad nueva añadida en DCAT 2.\"@es ;\n skos:changeNote \"Ny egenskab tilføjet i DCAT 2.\"@da ;\n skos:definition \"Enlace a una descripción de la relación con otro recurso.\"@es ;\n skos:definition \"Link a una descrizione di una relazione con un'altra risorsa.\"@it ;\n skos:definition \"Link to a description of a relationship with another resource.\"@en ;\n skos:definition \"Odkaz na popis vztahu s jiným zdrojem.\"@cs ;\n skos:definition \"Reference til en beskrivelse af en relation til en anden ressource.\"@da ;\n skos:editorialNote \"Introdotta in DCAT per integrare le altre relazioni qualificate di PROV.\"@it ;\n skos:editorialNote \"Introduced into DCAT to complement the other PROV qualified relations. \"@en ;\n skos:editorialNote \"Přidáno do DCAT k doplnění jiných kvalifikovaných vztahů ze slovníku PROV.\"@cs ;\n skos:editorialNote \"Se incluyó en DCAT para complementar las relaciones calificadas disponibles en PROV.\"@es ;\n skos:editorialNote \"Introduceret i DCAT med henblik på at supplere de øvrige kvalificerede relationer fra PROV. \"@da ;\n skos:scopeNote \"Použito pro odkazování na jiný zdroj, kde druh vztahu je znám, ale neodpovídá standardním vlastnostem ze slovníku Dublin Core (dcterms:hasPart, dcterms:isPartOf, dcterms:conformsTo, dcterms:isFormatOf, dcterms:hasFormat, dcterms:isVersionOf, dcterms:hasVersion, dcterms:replaces, dcterms:isReplacedBy, dcterms:references, dcterms:isReferencedBy, dcterms:requires, dcterms:isRequiredBy) či slovníku PROV-O (prov:wasDerivedFrom, prov:wasInfluencedBy, prov:wasQuotedFrom, prov:wasRevisionOf, prov:hadPrimarySource, prov:alternateOf, prov:specializationOf).\"@cs ;\n skos:scopeNote \"Se usa para asociar con otro recurso para el cuál la naturaleza de la relación es conocida pero no es ninguna de las propiedades que provee el estándar Dublin Core (dcterms:hasPart, dcterms:isPartOf, dcterms:conformsTo, dcterms:isFormatOf, dcterms:hasFormat, dcterms:isVersionOf, dcterms:hasVersion, dcterms:replaces, dcterms:isReplacedBy, dcterms:references, dcterms:isReferencedBy, dcterms:requires, dcterms:isRequiredBy) or PROV-O properties (prov:wasDerivedFrom, prov:wasInfluencedBy, prov:wasQuotedFrom, prov:wasRevisionOf, prov:hadPrimarySource, prov:alternateOf, prov:specializationOf).\"@es ;\n skos:scopeNote \"Used to link to another resource where the nature of the relationship is known but does not match one of the standard Dublin Core properties (dcterms:hasPart, dcterms:isPartOf, dcterms:conformsTo, dcterms:isFormatOf, dcterms:hasFormat, dcterms:isVersionOf, dcterms:hasVersion, dcterms:replaces, dcterms:isReplacedBy, dcterms:references, dcterms:isReferencedBy, dcterms:requires, dcterms:isRequiredBy) or PROV-O properties (prov:wasDerivedFrom, prov:wasInfluencedBy, prov:wasQuotedFrom, prov:wasRevisionOf, prov:hadPrimarySource, prov:alternateOf, prov:specializationOf).\"@en ;\n skos:scopeNote \"Viene utilizzato per associarsi a un'altra risorsa nei casi per i quali la natura della relazione è nota ma non è alcuna delle proprietà fornite dallo standard Dublin Core (dcterms:hasPart, dcterms:isPartOf, dcterms:conformsTo, dcterms:isFormatOf, dcterms:hasFormat , dcterms:isVersionOf, dcterms:hasVersion, dcterms:replaces, dcterms:isReplacedBy, dcterms:references, dcterms:isReferencedBy, dcterms:require, dcterms:isRequiredBy) o dalle proprietà fornite da PROV-O (prov:wasDerivedFrom, prov:wasInfluencedBy, prov:wasQuotedFrom , prov:wasRevisionOf, prov:hadPrimarySource, prov:alternateOf, prov:specializationOf).\"@it ;\n skos:scopeNote \"Anvendes til at referere til en anden ressource hvor relationens betydning er kendt men ikke matcher en af de standardiserede egenskaber fra Dublin Core (dcterms:hasPart, dcterms:isPartOf, dcterms:conformsTo, dcterms:isFormatOf, dcterms:hasFormat, dcterms:isVersionOf, dcterms:hasVersion, dcterms:replaces, dcterms:isReplacedBy, dcterms:references, dcterms:isReferencedBy, dcterms:requires, dcterms:isRequiredBy) eller PROV-O-egenskaber (prov:wasDerivedFrom, prov:wasInfluencedBy, prov:wasQuotedFrom, prov:wasRevisionOf, prov:hadPrimarySource, prov:alternateOf, prov:specializationOf).\"@da ;\n.\ndcat:record\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"A record describing the registration of a single dataset or data service that is part of the catalog.\"@en ;\n rdfs:comment \"Describe la registración de un conjunto de datos o un servicio de datos en el catálogo.\"@es ;\n rdfs:comment \"Propojuje katalog a jeho záznamy.\"@cs ;\n rdfs:comment \"Relie un catalogue à ses registres.\"@fr ;\n rdfs:comment \"Un record che descrive la registrazione di un singolo set di dati o di un servizio dati che fa parte del catalogo.\"@it ;\n rdfs:comment \"Záznam popisující registraci jedné datové sady či datové služby jakožto součásti katalogu.\"@cs ;\n rdfs:comment \"Συνδέει έναν κατάλογο με τις καταγραφές του.\"@el ;\n rdfs:comment \"تربط الفهرس بسجل ضمنه\"@ar ;\n rdfs:comment \"カタログの一部であるカタログ・レコード。\"@ja ;\n rdfs:comment \"En post der beskriver registreringen af et enkelt datasæt eller en datatjeneste som er opført i kataloget.\"@da ;\n rdfs:domain dcat:Catalog ;\n rdfs:isDefinedBy <http://www.w3.org/TR/vocab-dcat/> ;\n rdfs:label \"record\"@en ;\n rdfs:label \"record\"@it ;\n rdfs:label \"registre\"@fr ;\n rdfs:label \"registro\"@es ;\n rdfs:label \"záznam\"@cs ;\n rdfs:label \"καταγραφή\"@el ;\n rdfs:label \"سجل\"@ar ;\n rdfs:label \"カタログ・レコード\"@ja ;\n rdfs:label \"post\"@da ;\n rdfs:range dcat:CatalogRecord ;\n skos:altLabel \"har post\"@da ;\n skos:definition \"A record describing the registration of a single dataset or data service that is part of the catalog.\"@en ;\n skos:definition \"Describe la registración de un conjunto de datos o un servicio de datos en el catálogo.\"@es ;\n skos:definition \"Propojuje katalog a jeho záznamy.\"@cs ;\n skos:definition \"Relie un catalogue à ses registres.\"@fr ;\n skos:definition \"Un record che descrive la registrazione di un singolo set di dati o di un servizio dati che fa parte del catalogo.\"@it ;\n skos:definition \"Záznam popisující registraci jedné datové sady či datové služby jakožto součásti katalogu.\"@cs ;\n skos:definition \"Συνδέει έναν κατάλογο με τις καταγραφές του.\"@el ;\n skos:definition \"تربط الفهرس بسجل ضمنه\"@ar ;\n skos:definition \"カタログの一部であるカタログ・レコード。\"@ja ;\n skos:definition \"En post der beskriver registreringen af et enkelt datasæt eller en datatjeneste som er opført i kataloget.\"@da ;\n skos:editorialNote \"Status: English, Italian, Spanish and Czech Definitions modified by DCAT revision team, other translations pending.\"@en ;\n.\ndcat:resource\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"A resource that is listed in the catalog.\"@en ;\n rdfs:comment \"Una risorsa elencata nel catalogo.\"@it ;\n rdfs:domain dcat:Catalog ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-3/> ;\n rdfs:label \"resource\"@en ;\n rdfs:label \"risorsa\"@it ;\n rdfs:range dcat:Resource ;\n rdfs:subPropertyOf dcterms:hasPart ;\n skos:changeNote \"New property added in DCAT 3.\"@en ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 3.\"@cs ;\n skos:changeNote \"Nueva propiedad agregada en DCAT 3.\"@es ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 3.\"@it ;\n skos:definition \"A resource that is listed in the catalog.\"@en ;\n skos:definition \"Una risorsa elencata nel catalogo.\"@it ;\n skos:editorialNote \"Status: English Definition text modified by DCAT 3 revision team, translations pending.\"@en ;\n skos:scopeNote \"This is the most general predicate for membership of a catalog. Use of a more specific sub-property is recommended when available.\"@en ;\n skos:scopeNote \"Questo è il predicate più generale per indicare l'appartenenza di una risorsa a un catalogo. Si raccomanda l'uso di una proprietà più specifica, quando disponibile.\"@it ;\n skos:scopeNote \"See also:\tSub-properties of dcat:resource in particular dcat:dataset, dcat:catalog, dcat:service.\"@en ;\n skos:scopeNote \"Vd. anche: Le sottoproprietà di dcat:resource, in particolare: dcat:dataset, dcat:catalog, dcat:service.\"@it ;\n.\ndcat:seriesMember owl:inverseOf dcat:inSeries ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-3/> ;\n skos:scopeNote \"This property MAY be used only in addition to its inverse, and it MUST NOT be used to replace it.\"@en ;\n skos:scopeNote \"Esta propiedad inversa PUEDE usarse sólo en combinación con su inversa, y NO PUEDE utilizarse en su reemplazo.\"@es ;\n skos:scopeNote \"Questa proprietà PUÒ essere usata solo insieme alla sua inversa, e NON DEVE essere usata per sostituirla.\"@it ;\n skos:changeNote \"New property added in DCAT 3.\"@en ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 3.\"@cs ;\n skos:changeNote \"Nueva propiedad agregada en DCAT 3.\"@es ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 3.\"@it ;\n.\ndcat:servesDataset\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"A collection of data that this DataService can distribute.\"@en ;\n rdfs:comment \"Kolekce dat, kterou je tato Datová služba schopna poskytnout.\"@cs ;\n rdfs:comment \"Una colección de datos que este Servicio de Datos puede distribuir.\"@es ;\n rdfs:comment \"Una raccolta di dati che questo DataService può distribuire.\"@it ;\n rdfs:comment \"En samling af data som denne datatjeneste kan distribuere.\"@da ;\n rdfs:domain dcat:DataService ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-2/> ;\n rdfs:label \"poskytuje datovou sadu\"@cs ;\n rdfs:label \"provee conjunto de datos\"@es ;\n rdfs:label \"serve set di dati\"@it ;\n rdfs:label \"serves dataset\"@en ;\n rdfs:label \"datatjeneste for datasæt\"@da ;\n rdfs:range dcat:Dataset ;\n skos:altLabel \"distribuerer\"@da ;\n skos:altLabel \"udstiller\"@da ;\n skos:altLabel \"ekspederer\"@da ;\n skos:changeNote \"New property in DCAT 2.\"@en ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 2.\"@cs ;\n skos:changeNote \"Nueva propiedad agregada en DCAT 2.\"@es ;\n skos:changeNote \"Nuova proprietà in DCAT 2.\"@it ;\n skos:definition \"A collection of data that this DataService can distribute.\"@en ;\n skos:definition \"Kolekce dat, kterou je tato Datová služba schopna poskytnout.\"@cs ;\n skos:definition \"Una colección de datos que este Servicio de Datos puede distribuir.\"@es ;\n skos:definition \"Una raccolta di dati che questo DataService può distribuire.\"@it ;\n skos:definition \"En samling af data som denne datatjeneste kan distribuere.\"@da ;\n.\ndcat:service\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"A service that is listed in the catalog.\"@en ;\n rdfs:comment \"Umístění či přístupový bod registrovaný v katalogu.\"@cs ;\n rdfs:comment \"Un sitio o 'endpoint' que está listado en el catálogo.\"@es ;\n rdfs:comment \"Un sito o endpoint elencato nel catalogo.\"@it ;\n rdfs:comment \"Et websted eller et endpoint som er opført i kataloget.\"@da ;\n rdfs:domain dcat:Catalog ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-2/> ;\n rdfs:label \"service\"@en ;\n rdfs:label \"servicio\"@es ;\n rdfs:label \"servizio\"@it ;\n rdfs:label \"služba\"@cs ;\n rdfs:label \"datatjeneste\"@da ;\n rdfs:range dcat:DataService ;\n rdfs:subPropertyOf dcat:resource ;\n skos:altLabel \"har datatjeneste\"@da ;\n skos:altLabel \"has service\"@en ;\n skos:changeNote \"New property added in DCAT 2.\"@en ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 2.\"@cs ;\n skos:changeNote \"Nueva propiedad añadida en DCAT 2.\"@es ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 2.\"@it ;\n skos:definition \"A service that is listed in the catalog.\"@en ;\n skos:definition \"Umístění či přístupový bod registrovaný v katalogu.\"@cs ;\n skos:definition \"Un sitio o 'endpoint' que está listado en el catálogo.\"@es ;\n skos:definition \"Un sito o endpoint elencato nel catalogo.\"@it ;\n skos:definition \"Et websted eller et endpoint som er opført i kataloget.\"@da ;\n skos:editorialNote \"Status: English Definition text modified by DCAT 3 revision team, translations pending.\"@en ;\n.\ndcat:spatialResolutionInMeters\n a rdf:Property ;\n a owl:DatatypeProperty ;\n rdfs:comment \"minimum spatial separation resolvable in a dataset, measured in meters.\"@en-US ;\n rdfs:comment \"minimum spatial separation resolvable in a dataset, measured in metres.\"@en-GB ;\n rdfs:comment \"minimální prostorový rozestup rozeznatelný v datové sadě, měřeno v metrech.\"@cs ;\n rdfs:comment \"mínima separacíon espacial disponible en un conjunto de datos, medida en metros.\"@es ;\n rdfs:comment \"separazione spaziale minima risolvibile in un set di dati, misurata in metri.\"@it ;\n rdfs:comment \"mindste geografiske afstand som kan erkendes i et datasæt, målt i meter.\"@da ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-2/> ;\n rdfs:label \"prostorové rozlišení (metry)\"@cs ;\n rdfs:label \"resolución espacial (metros)\"@es ;\n rdfs:label \"risoluzione spaziale (metri)\"@it ;\n rdfs:label \"spatial resolution (meters)\"@en-US ;\n rdfs:label \"spatial resolution (metres)\"@en-GB ;\n rdfs:label \"geografisk opløsning (meter)\"@da ;\n rdfs:range xsd:decimal ;\n skos:changeNote \"New property added in DCAT 2.\"@en ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 2.\"@cs ;\n skos:changeNote \"Nueva propiedad añadida en DCAT 2.\"@es ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 2.\"@it ;\n skos:changeNote \"Ny genskab tilføjet i DCAT 2.\"@da ;\n skos:definition \"minimum spatial separation resolvable in a dataset, measured in meters.\"@en-US ;\n skos:definition \"minimum spatial separation resolvable in a dataset, measured in metres.\"@en-GB ;\n skos:definition \"minimální prostorový rozestup rozeznatelný v datové sadě, měřeno v metrech.\"@cs ;\n skos:definition \"mínima separacíon espacial disponible en un conjunto de datos, medida en metros.\"@es ;\n skos:definition \"separazione spaziale minima risolvibile in un set di dati, misurata in metri.\"@it ;\n skos:definition \"mindste geografiske afstand som kan resolveres i et datasæt, målt i meter.\"@da ;\n skos:editorialNote \"Might appear in the description of a Dataset or a Distribution, so no domain is specified.\"@en ;\n skos:editorialNote \"Může se vyskytnout v popisu Datové sady nebo Distribuce, takže nebyl specifikován definiční obor.\"@cs ;\n skos:editorialNote \"Kan optræde i forbindelse med beskrivelse af datasættet eller datasætditributionen, så der er ikke angivet et domæne for egenskaben.\"@da ;\n skos:scopeNote \"Alternative spatial resolutions might be provided as different dataset distributions.\"@en ;\n skos:scopeNote \"Distintas distribuciones de un conjunto de datos pueden tener resoluciones espaciales diferentes.\"@es ;\n skos:scopeNote \"If the dataset is an image or grid this should correspond to the spacing of items. For other kinds of spatial dataset, this property will usually indicate the smallest distance between items in the dataset.\"@en ;\n skos:scopeNote \"Pokud je datová sada obraz či mřížka, měla by tato vlastnost odpovídat rozestupu položek. Pro ostatní druhy prostorových datových sad bude tato vlastnost obvykle indikovat nejmenší vzdálenost mezi položkami této datové sady.\"@cs ;\n skos:scopeNote \"Risoluzioni spaziali alternative possono essere fornite come diverse distribuzioni di set di dati.\"@it ;\n skos:scopeNote \"Různá prostorová rozlišení mohou být poskytována jako různé distribuce datové sady.\"@cs ;\n skos:scopeNote \"Se il set di dati è un'immagine o una griglia, questo dovrebbe corrispondere alla spaziatura degli elementi. Per altri tipi di set di dati spaziali, questa proprietà di solito indica la distanza minima tra gli elementi nel set di dati.\"@it ;\n skos:scopeNote \"Si el conjunto de datos es una imágen o grilla, esta propiedad corresponde al espaciado de los elementos. Para otro tipo de conjunto de datos espaciales, esta propieda usualmente indica la menor distancia entre los elementos de dichos datos.\"@es ;\n skos:scopeNote \"Alternative geografiske opløsninger kan leveres som forskellige datasætdistributioner.\"@da ;\n skos:scopeNote \"Hvis datasættet udgøres af et billede eller et grid, så bør dette svare til afstanden mellem elementerne. For andre typer af spatiale datasæt, vil denne egenskab typisk indikere den mindste afstand mellem elementerne i datasættet.\"@da ;\n.\ndcat:startDate\n a rdf:Property ;\n a owl:DatatypeProperty ;\n rdfs:domain dcterms:PeriodOfTime ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-2/> ;\n rdfs:label \"datum začátku\"@cs ;\n rdfs:label \"start date\"@en ;\n rdfs:label \"data di inizio\"@it ;\n rdfs:label \"startdato\"@da ;\n rdfs:range rdfs:Literal ;\n skos:altLabel \"starttidspunkt\"@da ;\n skos:changeNote \"New property added in DCAT 2.\"@en ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 2.\"@it ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 2.\"@cs ;\n skos:changeNote \"Nueva propiedad agregada en DCAT 2.\"@es ;\n skos:changeNote \"Ny egenskab tilføjet i DCAT 2.\"@da ;\n skos:definition \"El comienzo del período\"@es ;\n skos:definition \"The start of the period\"@en ;\n skos:definition \"L'inizio del periodo\"@it ;\n skos:definition \"Začátek doby trvání\"@cs ;\n skos:definition \"Start på perioden.\"@da ;\n skos:scopeNote \"El rango de esta propiedad es intencionalmente genérico con el propósito de permitir distintos niveles de precisión temporal para especificar el comienzo de un período. Por ejemplo, puede expresarse como una fecha (xsd:date), una fecha y un tiempo (xsd:dateTime), o un año (xsd:gYear).\"@es ;\n skos:scopeNote \"Obor hodnot této vlastnosti je úmyslně obecný, aby umožnil různé úrovně časového rozlišení pro specifikaci začátku doby trvání. Ten může být kupříkladu vyjádřen datumem (xsd:date), datumem a časem (xsd:dateTime) či rokem (xsd:gYear).\"@cs ;\n skos:scopeNote \"The range of this property is intentionally generic, with the purpose of allowing different level of temporal precision for specifying the start of a period. E.g., it can be expressed with a date (xsd:date), a date and time (xsd:dateTime), or a year (xsd:gYear).\"@en ;\n skos:scopeNote \"Il range di questa proprietà è volutamente generico, con lo scopo di consentire diversi livelli di precisione temporale per specificare l'inizio di un periodo. Ad esempio, può essere espresso con una data (xsd:date), una data e un'ora (xsd:dateTime), o un anno (xsd:gYear).\"@it ;\n skos:scopeNote \"Rækkeviden for denne egenskab er bevidst generisk defineret med det formål at tillade forskellige niveauer af tidslig præcision ifm. angivelse af startdatoen for en periode. Den kan eksempelvis udtrykkes som en dato (xsd:date), en dato og et tidspunkt (xsd:dateTime), eller et årstal (xsd:gYear).\"@da ;\n.\ndcat:temporalResolution\n a rdf:Property ;\n a owl:DatatypeProperty ;\n rdfs:comment \"minimum time period resolvable in a dataset.\"@en ;\n rdfs:comment \"minimální doba trvání rozlišitelná v datové sadě.\"@cs ;\n rdfs:comment \"periodo di tempo minimo risolvibile in un set di dati.\"@it ;\n rdfs:comment \"período de tiempo mínimo en el conjunto de datos.\"@es ;\n rdfs:comment \"mindste tidsperiode der kan resolveres i datasættet.\"@da ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-2/> ;\n rdfs:label \"resolución temporal\"@es ;\n rdfs:label \"risoluzione temporale\"@it ;\n rdfs:label \"temporal resolution\"@en ;\n rdfs:label \"časové rozlišení\"@cs ;\n rdfs:label \"tidslig opløsning\"@da ;\n rdfs:range xsd:duration ;\n skos:changeNote \"New property added in DCAT 2.\"@en ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 2.\"@cs ;\n skos:changeNote \"Nueva propiedad añadida en DCAT 2.\"@es ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 2.\"@it ;\n skos:definition \"minimum time period resolvable in a dataset.\"@en ;\n skos:definition \"minimální doba trvání rozlišitelná v datové sadě.\"@cs ;\n skos:definition \"periodo di tempo minimo risolvibile in un set di dati.\"@it ;\n skos:definition \"período de tiempo mínimo en el conjunto de datos.\"@es ;\n skos:definition \"mindste tidsperiode der kan resolveres i datasættet.\"@da ;\n skos:editorialNote \"Might appear in the description of a Dataset or a Distribution, so no domain is specified.\"@en ;\n skos:editorialNote \"Může se vyskytnout v popisu Datové sady nebo Distribuce, takže nebyl specifikován definiční obor.\"@cs ;\n skos:editorialNote \"Kan optræde i forbindelse med beskrivelse af datasættet eller datasætditributionen, så der er ikke angivet et domæne for egenskaben.\"@da ;\n skos:scopeNote \"Alternative temporal resolutions might be provided as different dataset distributions.\"@en ;\n skos:scopeNote \"Distintas distribuciones del conjunto de datos pueden tener resoluciones temporales diferentes.\"@es ;\n skos:scopeNote \"If the dataset is a time-series this should correspond to the spacing of items in the series. For other kinds of dataset, this property will usually indicate the smallest time difference between items in the dataset.\"@en ;\n skos:scopeNote \"Pokud je datová sada časovou řadou, měla by tato vlastnost odpovídat rozestupu položek v řadě. Pro ostatní druhy datových sad bude tato vlastnost obvykle indikovat nejmenší časovou vzdálenost mezi položkami této datové sady.\"@cs ;\n skos:scopeNote \"Risoluzioni temporali alternative potrebbero essere fornite come diverse distribuzioni di set di dati.\"@it ;\n skos:scopeNote \"Různá časová rozlišení mohou být poskytována jako různé distribuce datové sady.\"@cs ;\n skos:scopeNote \"Se il set di dati è una serie temporale, questo dovrebbe corrispondere alla spaziatura degli elementi della serie. Per altri tipi di set di dati, questa proprietà di solito indica la più piccola differenza di tempo tra gli elementi nel set di dati.\"@it ;\n skos:scopeNote \"Si el conjunto de datos es una serie temporal, debe corresponder al espaciado de los elementos de la serie. Para otro tipo de conjuntos de datos, esta propiedad indicará usualmente la menor diferencia de tiempo entre elementos en el dataset.\"@es ;\n skos:scopeNote \"Alternative tidslige opløsninger kan leveres som forskellige datasætdistributioner.\"@da ;\n skos:scopeNote \"Hvis datasættet er en tidsserie, så bør denne egenskab svare til afstanden mellem elementerne i tidsserien. For andre typer af datasæt indikerer denne egenskab den mindste tidsforskel mellem elementer i datasættet.\"@da ;\n.\ndcat:theme\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"A main category of the resource. A resource can have multiple themes.\"@en ;\n rdfs:comment \"Hlavní téma zdroje. Zdroj může mít více témat.\"@cs ;\n rdfs:comment \"La categoria principale della risorsa. Una risorsa può avere più temi.\"@it ;\n rdfs:comment \"La categoría principal del recurso. Un recurso puede tener varios temas.\"@es ;\n rdfs:comment \"La catégorie principale de la ressource. Une ressource peut avoir plusieurs thèmes.\"@fr ;\n rdfs:comment \"Η κύρια κατηγορία του συνόλου δεδομένων. Ένα σύνολο δεδομένων δύναται να έχει πολλαπλά θέματα.\"@el ;\n rdfs:comment \"التصنيف الرئيسي لقائمة البيانات. قائمة البيانات يمكن أن تملك أكثر من تصنيف رئيسي واحد.\"@ar ;\n rdfs:comment \"データセットの主要カテゴリー。データセットは複数のテーマを持つことができます。\"@ja ;\n rdfs:comment \"Et centralt emne for ressourcen. En ressource kan have flere centrale emner.\"@da ;\n rdfs:isDefinedBy <http://www.w3.org/TR/vocab-dcat/> ;\n rdfs:label \"tema\"@es ;\n rdfs:label \"tema\"@it ;\n rdfs:label \"theme\"@en ;\n rdfs:label \"thème\"@fr ;\n rdfs:label \"téma\"@cs ;\n rdfs:label \"Θέμα\"@el ;\n rdfs:label \"التصنيف\"@ar ;\n rdfs:label \"テーマ/カテゴリー\"@ja ;\n rdfs:label \"emne\"@da ;\n rdfs:subPropertyOf dcterms:subject ;\n skos:altLabel \"tema\"@da ;\n skos:definition \"A main category of the resource. A resource can have multiple themes.\"@en ;\n skos:definition \"Hlavní téma zdroje. Zdroj může mít více témat.\"@cs ;\n skos:definition \"La categoria principale della risorsa. Una risorsa può avere più temi.\"@it ;\n skos:definition \"La categoría principal del recurso. Un recurso puede tener varios temas.\"@es ;\n skos:definition \"La catégorie principale de la ressource. Une ressource peut avoir plusieurs thèmes.\"@fr ;\n skos:definition \"Η κύρια κατηγορία του συνόλου δεδομένων. Ένα σύνολο δεδομένων δύναται να έχει πολλαπλά θέματα.\"@el ;\n skos:definition \"التصنيف الرئيسي لقائمة البيانات. قائمة البيانات يمكن أن تملك أكثر من تصنيف رئيسي واحد.\"@ar ;\n skos:definition \"データセットの主要カテゴリー。データセットは複数のテーマを持つことができます。\"@ja ;\n skos:definition \"Et centralt emne for ressourcen. En ressource kan have flere centrale emner.\"@da ;\n skos:editorialNote \"Status: English Definition text modified by DCAT revision team, all except for Italian and Czech translations are pending. Scope note has changed and its translations should be updated\"@en ;\n skos:scopeNote \"El conjunto de skos:Concepts utilizados para categorizar los recursos están organizados en un skos:ConceptScheme que describe todas las categorías y sus relaciones en el catálogo.\"@es ;\n skos:scopeNote \"Il set di concetti skos usati per categorizzare le risorse sono organizzati in skos:ConceptScheme che descrive tutte le categorie e le loro relazioni nel catalogo.\"@it ;\n skos:scopeNote \"Sada instancí třídy skos:Concept použitá pro kategorizaci zdrojů je organizována do schématu konceptů skos:ConceptScheme, které popisuje všechny kategorie v katalogu a jejich vztahy.\"@cs ;\n skos:scopeNote \"The set of themes used to categorize the resources are organized in a skos:ConceptScheme, skos:Collection, owl:Ontology or similar, describing all the categories and their relations in the catalog.\"@en ;\n skos:scopeNote \"Un ensemble de skos:Concepts utilisés pour catégoriser les ressources sont organisés en un skos:ConceptScheme décrivant toutes les catégories et ses relations dans le catalogue.\"@fr ;\n skos:scopeNote \"Το σετ των skos:Concepts που χρησιμοποιείται για να κατηγοριοποιήσει τα σύνολα δεδομένων είναι οργανωμένο εντός ενός skos:ConceptScheme που περιγράφει όλες τις κατηγορίες και τις σχέσεις αυτών στον κατάλογο.\"@el ;\n skos:scopeNote \"データセットを分類するために用いられるskos:Conceptの集合は、カタログのすべてのカテゴリーとそれらの関係を記述しているskos:ConceptSchemeで組織化されます。\"@ja ;\n skos:scopeNote \"Samlingen af begreber (skos:Concept) der anvendes til at emneinddele ressourcer organiseres i et begrebssystem (skos:ConceptScheme) som beskriver alle emnerne og deres relationer i kataloget.\"@da ;\n.\ndcat:themeTaxonomy\n a rdf:Property ;\n a owl:ObjectProperty ;\n rdfs:comment \"El sistema de organización del conocimiento utilizado para clasificar conjuntos de datos de catálogos.\"@es ;\n rdfs:comment \"Il sistema di organizzazione della conoscenza (KOS) usato per classificare i dataset del catalogo.\"@it ;\n rdfs:comment \"Le systhème d'ogranisation de connaissances utilisé pour classifier les jeux de données du catalogue.\"@fr ;\n rdfs:comment \"Systém organizace znalostí (KOS) použitý pro klasifikaci datových sad v katalogu.\"@cs ;\n rdfs:comment \"The knowledge organization system (KOS) used to classify catalog's datasets.\"@en ;\n rdfs:comment \"Το σύστημα οργάνωσης γνώσης που χρησιμοποιείται για την κατηγοριοποίηση των συνόλων δεδομένων του καταλόγου.\"@el ;\n rdfs:comment \"لائحة التصنيفات المستخدمه لتصنيف قوائم البيانات ضمن الفهرس\"@ar ;\n rdfs:comment \"カタログのデータセットを分類するために用いられる知識組織化体系(KOS;knowledge organization system)。\"@ja ;\n rdfs:comment \"Vidensorganiseringssystem (KOS) som anvendes til at klassificere datasæt i kataloget.\"@da ;\n rdfs:domain dcat:Catalog ;\n rdfs:isDefinedBy <http://www.w3.org/TR/vocab-dcat/> ;\n rdfs:label \"tassonomia dei temi\"@it ;\n rdfs:label \"taxonomie de thèmes\"@fr ;\n rdfs:label \"taxonomie témat\"@cs ;\n rdfs:label \"taxonomía de temas\"@es ;\n rdfs:label \"theme taxonomy\"@en ;\n rdfs:label \"Ταξινομία θεματικών κατηγοριών.\"@el ;\n rdfs:label \"قائمة التصنيفات\"@ar ;\n rdfs:label \"テーマ\"@ja ;\n rdfs:label \"emnetaksonomi\"@da ;\n rdfs:range rdfs:Resource ;\n sdo:rangeIncludes owl:Ontology ;\n sdo:rangeIncludes skos:Collection ;\n sdo:rangeIncludes skos:ConceptScheme ;\n skos:altLabel \"temataksonomi\"@da ;\n skos:definition \"El sistema de organización del conocimiento utilizado para clasificar conjuntos de datos de catálogos.\"@es ;\n skos:definition \"Il sistema di organizzazione della conoscenza (KOS) usato per classificare i dataset del catalogo.\"@it ;\n skos:definition \"Le systhème d'ogranisation de connaissances utilisé pour classifier les jeux de données du catalogue.\"@fr ;\n skos:definition \"Systém organizace znalostí (KOS) použitý pro klasifikaci datových sad v katalogu.\"@cs ;\n skos:definition \"The knowledge organization system (KOS) used to classify catalog's datasets.\"@en ;\n skos:definition \"Το σύστημα οργάνωσης γνώσης που χρησιμοποιείται για την κατηγοριοποίηση των συνόλων δεδομένων του καταλόγου.\"@el ;\n skos:definition \"لائحة التصنيفات المستخدمه لتصنيف قوائم البيانات ضمن الفهرس\"@ar ;\n skos:definition \"カタログのデータセットを分類するために用いられる知識組織化体系(KOS;knowledge organization system)。\"@ja ;\n skos:definition \"Vidensorganiseringssystem (KOS) som anvendes til at klassificere datasæt i kataloget.\"@da ;\n skos:scopeNote \"It is recommended that the taxonomy is organized in a skos:ConceptScheme, skos:Collection, owl:Ontology or similar, which allows each member to be denoted by an IRI and published as linked-data.\"@en ;\n skos:scopeNote \"Si raccomanda che la tassonomia sia organizzata in uno skos:ConceptScheme, skos:Collection, owl:Ontology o simili, che permette ad ogni membro di essere indicato da un IRI e pubblicato come linked-data.\"@it ;\n skos:scopeNote \"Je doporučeno, aby byla taxonomie vyjádřena jako skos:ConceptScheme, skos:Collection, owl:Ontology nebo podobné, aby mohla být každá položka identifikována pomocí IRI a publikována jako propojená data.\"@cs ;\n skos:scopeNote \"Se recomienda que la taxonomía se organice como un skos:ConceptScheme, skos:Collection, owl:Ontology o similar, los cuáles permiten que cada miembro se denote con una IRI y se publique como datos enlazados.\"@es ;\n skos:scopeNote \"Det anbefales at taksonomien organiseres i et skos:ConceptScheme, skos:Collection, owl:Ontology eller lignende, som giver mulighed for at ethvert medlem af taksonomien kan forsynes med en IRI og udgives som linked-data.\"@da ;\n.\ndcat:version\n a rdf:Property ;\n a owl:DatatypeProperty ;\n owl:equivalentProperty pav:version ;\n rdfs:comment \"The version indicator (name or identifier) of a resource.\"@en ;\n rdfs:comment \"El indicador de versión (nombre o identificador) del recurso.\"@es ;\n rdfs:comment \"L'indicatore di versione (un nome o un identificatore) di una risorsa.\"@it ;\n rdfs:isDefinedBy <https://www.w3.org/TR/vocab-dcat-3/> ;\n rdfs:label \"version\"@en ;\n rdfs:label \"versión\"@es ;\n rdfs:label \"versione\"@it ;\n skos:changeNote \"New property added in DCAT 3.\"@en ;\n skos:changeNote \"Nueva propiedad agregada in DCAT 3.\"@es ;\n skos:changeNote \"Nová vlastnost přidaná ve verzi DCAT 3.\"@cs ;\n skos:changeNote \"Nuova proprietà aggiunta in DCAT 3.\"@it ;\n skos:changeNote \"Ny egenskab tilføjet i DCAT 3.\"@da ;\n skos:definition \"The version indicator (name or identifier) of a resource.\"@en ;\n skos:definition \"El indicador de versión (nombre o identificador) del recurso.\"@es ;\n skos:definition \"L'indicatore di versione (un nome o un identificatore) di una risorsa\"@it ;\n skos:scopeNote \"DCAT does not prescribe how a version name / identifier should be specified, and refers for guidance to [DWBP]'s Best Practice 7: Provide a version indicator.\"@en ;\n skos:scopeNote \"DCAT no prescribe cómo especificar el nombre or identificador de una versión, y como guía sugiere leer las práctica 7 en [DWBP] sobre cómo proveer un indicador de versión\"@es ;\n skos:scopeNote \"DCAT non prescrive come un nome o identificatore di versione dovrebbe essere specificato, e fa riferimento alle linee guida indicate in [DWBP] Best Practice 7: Provide a version indicator.\"@it ;\n.\nfoaf:homepage\n a owl:ObjectProperty ;\n rdfs:comment \"This axiom needed so that Protege loads DCAT 3 without errors.\"@en ;\n rdfs:comment \"Este axioma se necesita de manera que Protege cargue DCAT3 sin problemas.\"@es ;\n.\nfoaf:primaryTopic\n a owl:ObjectProperty ;\n rdfs:comment \"This axiom needed so that Protege loads DCAT 3 without errors.\"@en;\n rdfs:comment \"Este axioma se necesita de manera que Protege cargue DCAT 3 sin problemas.\"@es ;\n.\n`;\nexports.owl = `@prefix dc: <http://purl.org/dc/elements/1.1/> .\n@prefix grddl: <http://www.w3.org/2003/g/data-view#> .\n@prefix owl: <http://www.w3.org/2002/07/owl#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n@prefix xml: <http://www.w3.org/XML/1998/namespace> .\n@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .\n\n<http://www.w3.org/2002/07/owl#> a owl:Ontology ;\n dc:title \"The OWL 2 Schema vocabulary (OWL 2)\" ;\n rdfs:comment \"\"\"\n This ontology partially describes the built-in classes and\n properties that together form the basis of the RDF/XML syntax of OWL 2.\n The content of this ontology is based on Tables 6.1 and 6.2\n in Section 6.4 of the OWL 2 RDF-Based Semantics specification,\n available at http://www.w3.org/TR/owl2-rdf-based-semantics/.\n Please note that those tables do not include the different annotations\n (labels, comments and rdfs:isDefinedBy links) used in this file.\n Also note that the descriptions provided in this ontology do not\n provide a complete and correct formal description of either the syntax\n or the semantics of the introduced terms (please see the OWL 2\n recommendations for the complete and normative specifications).\n Furthermore, the information provided by this ontology may be\n misleading if not used with care. This ontology SHOULD NOT be imported\n into OWL ontologies. Importing this file into an OWL 2 DL ontology\n will cause it to become an OWL 2 Full ontology and may have other,\n unexpected, consequences.\n \"\"\" ;\n rdfs:isDefinedBy\n <http://www.w3.org/TR/owl2-mapping-to-rdf/>,\n <http://www.w3.org/TR/owl2-rdf-based-semantics/>,\n <http://www.w3.org/TR/owl2-syntax/> ;\n rdfs:seeAlso <http://www.w3.org/TR/owl2-rdf-based-semantics/#table-axiomatic-classes>,\n <http://www.w3.org/TR/owl2-rdf-based-semantics/#table-axiomatic-properties> ;\n owl:imports <http://www.w3.org/2000/01/rdf-schema> ;\n owl:versionIRI <http://www.w3.org/2002/07/owl> ;\n owl:versionInfo \"$Date: 2009/11/15 10:54:12 $\" ;\n grddl:namespaceTransformation <http://dev.w3.org/cvsweb/2009/owl-grddl/owx2rdf.xsl> . \n\n\nowl:AllDifferent a rdfs:Class ;\n rdfs:label \"AllDifferent\" ;\n rdfs:comment \"The class of collections of pairwise different individuals.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdfs:Resource . \n\nowl:AllDisjointClasses a rdfs:Class ;\n rdfs:label \"AllDisjointClasses\" ;\n rdfs:comment \"The class of collections of pairwise disjoint classes.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdfs:Resource . \n\nowl:AllDisjointProperties a rdfs:Class ;\n rdfs:label \"AllDisjointProperties\" ;\n rdfs:comment \"The class of collections of pairwise disjoint properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdfs:Resource . \n\nowl:Annotation a rdfs:Class ;\n rdfs:label \"Annotation\" ;\n rdfs:comment \"The class of annotated annotations for which the RDF serialization consists of an annotated subject, predicate and object.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdfs:Resource . \n\nowl:AnnotationProperty a rdfs:Class ;\n rdfs:label \"AnnotationProperty\" ;\n rdfs:comment \"The class of annotation properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdf:Property .\n\nowl:AsymmetricProperty a rdfs:Class ;\n rdfs:label \"AsymmetricProperty\" ;\n rdfs:comment \"The class of asymmetric properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf owl:ObjectProperty . \n\nowl:Axiom a rdfs:Class ;\n rdfs:label \"Axiom\" ;\n rdfs:comment \"The class of annotated axioms for which the RDF serialization consists of an annotated subject, predicate and object.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdfs:Resource . \n\nowl:Class a rdfs:Class ;\n rdfs:label \"Class\" ;\n rdfs:comment \"The class of OWL classes.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdfs:Class . \n\nowl:DataRange a rdfs:Class ;\n rdfs:label \"DataRange\" ;\n rdfs:comment \"The class of OWL data ranges, which are special kinds of datatypes. Note: The use of the IRI owl:DataRange has been deprecated as of OWL 2. The IRI rdfs:Datatype SHOULD be used instead.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdfs:Datatype . \n\nowl:DatatypeProperty a rdfs:Class ;\n rdfs:label \"DatatypeProperty\" ;\n rdfs:comment \"The class of data properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdf:Property . \n\nowl:DeprecatedClass a rdfs:Class ;\n rdfs:label \"DeprecatedClass\" ;\n rdfs:comment \"The class of deprecated classes.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdfs:Class . \n\nowl:DeprecatedProperty a rdfs:Class ;\n rdfs:label \"DeprecatedProperty\" ;\n rdfs:comment \"The class of deprecated properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdf:Property . \n\nowl:FunctionalProperty a rdfs:Class ;\n rdfs:label \"FunctionalProperty\" ;\n rdfs:comment \"The class of functional properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdf:Property . \n\nowl:InverseFunctionalProperty a rdfs:Class ;\n rdfs:label \"InverseFunctionalProperty\" ;\n rdfs:comment \"The class of inverse-functional properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf owl:ObjectProperty . \n\nowl:IrreflexiveProperty a rdfs:Class ;\n rdfs:label \"IrreflexiveProperty\" ;\n rdfs:comment \"The class of irreflexive properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf owl:ObjectProperty . \n\nowl:NamedIndividual a rdfs:Class ;\n rdfs:label \"NamedIndividual\" ;\n rdfs:comment \"The class of named individuals.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf owl:Thing . \n\nowl:NegativePropertyAssertion a rdfs:Class ;\n rdfs:label \"NegativePropertyAssertion\" ;\n rdfs:comment \"The class of negative property assertions.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdfs:Resource . \n\nowl:Nothing a owl:Class ;\n rdfs:label \"Nothing\" ;\n rdfs:comment \"This is the empty class.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf owl:Thing . \n\nowl:ObjectProperty a rdfs:Class ;\n rdfs:label \"ObjectProperty\" ;\n rdfs:comment \"The class of object properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdf:Property . \n\nowl:Ontology a rdfs:Class ;\n rdfs:label \"Ontology\" ;\n rdfs:comment \"The class of ontologies.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdfs:Resource . \n\nowl:OntologyProperty a rdfs:Class ;\n rdfs:label \"OntologyProperty\" ;\n rdfs:comment \"The class of ontology properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf rdf:Property . \n\nowl:ReflexiveProperty a rdfs:Class ;\n rdfs:label \"ReflexiveProperty\" ;\n rdfs:comment \"The class of reflexive properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf owl:ObjectProperty . \n\nowl:Restriction a rdfs:Class ;\n rdfs:label \"Restriction\" ;\n rdfs:comment \"The class of property restrictions.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf owl:Class . \n\nowl:SymmetricProperty a rdfs:Class ;\n rdfs:label \"SymmetricProperty\" ;\n rdfs:comment \"The class of symmetric properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf owl:ObjectProperty . \n\nowl:TransitiveProperty a rdfs:Class ;\n rdfs:label \"TransitiveProperty\" ;\n rdfs:comment \"The class of transitive properties.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:subClassOf owl:ObjectProperty . \n\nowl:Thing a owl:Class ;\n rdfs:label \"Thing\" ;\n rdfs:comment \"The class of OWL individuals.\" ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> .\n \nowl:allValuesFrom a rdf:Property ;\n rdfs:label \"allValuesFrom\" ;\n rdfs:comment \"The property that determines the class that a universal property restriction refers to.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Class . \n\nowl:annotatedProperty a rdf:Property ;\n rdfs:label \"annotatedProperty\" ;\n rdfs:comment \"The property that determines the predicate of an annotated axiom or annotated annotation.\" ;\n rdfs:domain rdfs:Resource ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Resource . \n\nowl:annotatedSource a rdf:Property ;\n rdfs:label \"annotatedSource\" ;\n rdfs:comment \"The property that determines the subject of an annotated axiom or annotated annotation.\" ;\n rdfs:domain rdfs:Resource ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Resource . \n\nowl:annotatedTarget a rdf:Property ;\n rdfs:label \"annotatedTarget\" ;\n rdfs:comment \"The property that determines the object of an annotated axiom or annotated annotation.\" ;\n rdfs:domain rdfs:Resource ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Resource . \n\nowl:assertionProperty a rdf:Property ;\n rdfs:label \"assertionProperty\" ;\n rdfs:comment \"The property that determines the predicate of a negative property assertion.\" ;\n rdfs:domain owl:NegativePropertyAssertion ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:Property . \n\nowl:backwardCompatibleWith a owl:AnnotationProperty, owl:OntologyProperty ;\n rdfs:label \"backwardCompatibleWith\" ;\n rdfs:comment \"The annotation property that indicates that a given ontology is backward compatible with another ontology.\" ;\n rdfs:domain owl:Ontology ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Ontology . \n\nowl:bottomDataProperty a owl:DatatypeProperty ;\n rdfs:label \"bottomDataProperty\" ;\n rdfs:comment \"The data property that does not relate any individual to any data value.\" ;\n rdfs:domain owl:Thing ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Literal . \n\nowl:bottomObjectProperty a owl:ObjectProperty ;\n rdfs:label \"bottomObjectProperty\" ;\n rdfs:comment \"The object property that does not relate any two individuals.\" ;\n rdfs:domain owl:Thing ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Thing . \n\nowl:cardinality a rdf:Property ;\n rdfs:label \"cardinality\" ;\n rdfs:comment \"The property that determines the cardinality of an exact cardinality restriction.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range xsd:nonNegativeInteger . \n\nowl:complementOf a rdf:Property ;\n rdfs:label \"complementOf\" ;\n rdfs:comment \"The property that determines that a given class is the complement of another class.\" ;\n rdfs:domain owl:Class ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Class . \n\nowl:datatypeComplementOf a rdf:Property ;\n rdfs:label \"datatypeComplementOf\" ;\n rdfs:comment \"The property that determines that a given data range is the complement of another data range with respect to the data domain.\" ;\n rdfs:domain rdfs:Datatype ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Datatype . \n\nowl:deprecated a owl:AnnotationProperty ;\n rdfs:label \"deprecated\" ;\n rdfs:comment \"The annotation property that indicates that a given entity has been deprecated.\" ;\n rdfs:domain rdfs:Resource ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Resource . \n\nowl:differentFrom a rdf:Property ;\n rdfs:label \"differentFrom\" ;\n rdfs:comment \"The property that determines that two given individuals are different.\" ;\n rdfs:domain owl:Thing ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Thing . \n\nowl:disjointUnionOf a rdf:Property ;\n rdfs:label \"disjointUnionOf\" ;\n rdfs:comment \"The property that determines that a given class is equivalent to the disjoint union of a collection of other classes.\" ;\n rdfs:domain owl:Class ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:List . \n\nowl:disjointWith a rdf:Property ;\n rdfs:label \"disjointWith\" ;\n rdfs:comment \"The property that determines that two given classes are disjoint.\" ;\n rdfs:domain owl:Class ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Class . \n\nowl:distinctMembers a rdf:Property ;\n rdfs:label \"distinctMembers\" ;\n rdfs:comment \"The property that determines the collection of pairwise different individuals in a owl:AllDifferent axiom.\" ;\n rdfs:domain owl:AllDifferent ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:List . \n\nowl:equivalentClass a rdf:Property ;\n rdfs:label \"equivalentClass\" ;\n rdfs:comment \"The property that determines that two given classes are equivalent, and that is used to specify datatype definitions.\" ;\n rdfs:domain rdfs:Class ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Class . \n\nowl:equivalentProperty a rdf:Property ;\n rdfs:label \"equivalentProperty\" ;\n rdfs:comment \"The property that determines that two given properties are equivalent.\" ;\n rdfs:domain rdf:Property ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:Property . \n\nowl:hasKey a rdf:Property ;\n rdfs:label \"hasKey\" ;\n rdfs:comment \"The property that determines the collection of properties that jointly build a key.\" ;\n rdfs:domain owl:Class ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:List . \n\nowl:hasSelf a rdf:Property ;\n rdfs:label \"hasSelf\" ;\n rdfs:comment \"The property that determines the property that a self restriction refers to.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Resource . \n\nowl:hasValue a rdf:Property ;\n rdfs:label \"hasValue\" ;\n rdfs:comment \"The property that determines the individual that a has-value restriction refers to.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Resource . \n\nowl:imports a owl:OntologyProperty ;\n rdfs:label \"imports\" ;\n rdfs:comment \"The property that is used for importing other ontologies into a given ontology.\" ;\n rdfs:domain owl:Ontology ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Ontology . \n\nowl:incompatibleWith a owl:AnnotationProperty, owl:OntologyProperty ;\n rdfs:label \"incompatibleWith\" ;\n rdfs:comment \"The annotation property that indicates that a given ontology is incompatible with another ontology.\" ;\n rdfs:domain owl:Ontology ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Ontology . \n\nowl:intersectionOf a rdf:Property ;\n rdfs:label \"intersectionOf\" ;\n rdfs:comment \"The property that determines the collection of classes or data ranges that build an intersection.\" ;\n rdfs:domain rdfs:Class ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:List . \n\nowl:inverseOf a rdf:Property ;\n rdfs:label \"inverseOf\" ;\n rdfs:comment \"The property that determines that two given properties are inverse.\" ;\n rdfs:domain owl:ObjectProperty ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:ObjectProperty . \n\nowl:maxCardinality a rdf:Property ;\n rdfs:label \"maxCardinality\" ;\n rdfs:comment \"The property that determines the cardinality of a maximum cardinality restriction.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range xsd:nonNegativeInteger . \n\nowl:maxQualifiedCardinality a rdf:Property ;\n rdfs:label \"maxQualifiedCardinality\" ;\n rdfs:comment \"The property that determines the cardinality of a maximum qualified cardinality restriction.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range xsd:nonNegativeInteger . \n\nowl:members a rdf:Property ;\n rdfs:label \"members\" ;\n rdfs:comment \"The property that determines the collection of members in either a owl:AllDifferent, owl:AllDisjointClasses or owl:AllDisjointProperties axiom.\" ;\n rdfs:domain rdfs:Resource ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:List . \n\nowl:minCardinality a rdf:Property ;\n rdfs:label \"minCardinality\" ;\n rdfs:comment \"The property that determines the cardinality of a minimum cardinality restriction.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range xsd:nonNegativeInteger . \n\nowl:minQualifiedCardinality a rdf:Property ;\n rdfs:label \"minQualifiedCardinality\" ;\n rdfs:comment \"The property that determines the cardinality of a minimum qualified cardinality restriction.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range xsd:nonNegativeInteger . \n\nowl:onClass a rdf:Property ;\n rdfs:label \"onClass\" ;\n rdfs:comment \"The property that determines the class that a qualified object cardinality restriction refers to.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Class . \n\nowl:onDataRange a rdf:Property ;\n rdfs:label \"onDataRange\" ;\n rdfs:comment \"The property that determines the data range that a qualified data cardinality restriction refers to.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Datatype . \n\nowl:onDatatype a rdf:Property ;\n rdfs:label \"onDatatype\" ;\n rdfs:comment \"The property that determines the datatype that a datatype restriction refers to.\" ;\n rdfs:domain rdfs:Datatype ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Datatype . \n\nowl:oneOf a rdf:Property ;\n rdfs:label \"oneOf\" ;\n rdfs:comment \"The property that determines the collection of individuals or data values that build an enumeration.\" ;\n rdfs:domain rdfs:Class ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:List . \n\nowl:onProperties a rdf:Property ;\n rdfs:label \"onProperties\" ;\n rdfs:comment \"The property that determines the n-tuple of properties that a property restriction on an n-ary data range refers to.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:List .\n\nowl:onProperty a rdf:Property ;\n rdfs:label \"onProperty\" ;\n rdfs:comment \"The property that determines the property that a property restriction refers to.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:Property . \n\nowl:priorVersion a owl:AnnotationProperty, owl:OntologyProperty ;\n rdfs:label \"priorVersion\" ;\n rdfs:comment \"The annotation property that indicates the predecessor ontology of a given ontology.\" ;\n rdfs:domain owl:Ontology ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Ontology . \n\nowl:propertyChainAxiom a rdf:Property ;\n rdfs:label \"propertyChainAxiom\" ;\n rdfs:comment \"The property that determines the n-tuple of properties that build a sub property chain of a given property.\" ;\n rdfs:domain owl:ObjectProperty ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:List . \n\nowl:propertyDisjointWith a rdf:Property ;\n rdfs:label \"propertyDisjointWith\" ;\n rdfs:comment \"The property that determines that two given properties are disjoint.\" ;\n rdfs:domain rdf:Property ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:Property . \n\nowl:qualifiedCardinality a rdf:Property ;\n rdfs:label \"qualifiedCardinality\" ;\n rdfs:comment \"The property that determines the cardinality of an exact qualified cardinality restriction.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range xsd:nonNegativeInteger . \n\nowl:sameAs a rdf:Property ;\n rdfs:label \"sameAs\" ;\n rdfs:comment \"The property that determines that two given individuals are equal.\" ;\n rdfs:domain owl:Thing ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Thing . \n\nowl:someValuesFrom a rdf:Property ;\n rdfs:label \"someValuesFrom\" ;\n rdfs:comment \"The property that determines the class that an existential property restriction refers to.\" ;\n rdfs:domain owl:Restriction ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Class . \n\nowl:sourceIndividual a rdf:Property ;\n rdfs:label \"sourceIndividual\" ;\n rdfs:comment \"The property that determines the subject of a negative property assertion.\" ;\n rdfs:domain owl:NegativePropertyAssertion ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Thing . \n\nowl:targetIndividual a rdf:Property ;\n rdfs:label \"targetIndividual\" ;\n rdfs:comment \"The property that determines the object of a negative object property assertion.\" ;\n rdfs:domain owl:NegativePropertyAssertion ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Thing . \n\nowl:targetValue a rdf:Property ;\n rdfs:label \"targetValue\" ;\n rdfs:comment \"The property that determines the value of a negative data property assertion.\" ;\n rdfs:domain owl:NegativePropertyAssertion ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Literal . \n\nowl:topDataProperty a owl:DatatypeProperty ;\n rdfs:label \"topDataProperty\" ;\n rdfs:comment \"The data property that relates every individual to every data value.\" ;\n rdfs:domain owl:Thing ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Literal . \n\nowl:topObjectProperty a owl:ObjectProperty ;\n rdfs:label \"topObjectProperty\" ;\n rdfs:comment \"The object property that relates every two individuals.\" ;\n rdfs:domain owl:Thing ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Thing . \n\nowl:unionOf a rdf:Property ;\n rdfs:label \"unionOf\" ;\n rdfs:comment \"The property that determines the collection of classes or data ranges that build a union.\" ;\n rdfs:domain rdfs:Class ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:List . \n\nowl:versionInfo a owl:AnnotationProperty ;\n rdfs:label \"versionInfo\" ;\n rdfs:comment \"The annotation property that provides version information for an ontology or another OWL construct.\" ;\n rdfs:domain rdfs:Resource ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdfs:Resource .\n \nowl:versionIRI a owl:OntologyProperty ;\n rdfs:label \"versionIRI\" ;\n rdfs:comment \"The property that identifies the version IRI of an ontology.\" ;\n rdfs:domain owl:Ontology ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range owl:Ontology . \n\nowl:withRestrictions a rdf:Property ;\n rdfs:label \"withRestrictions\" ;\n rdfs:comment \"The property that determines the collection of facet-value pairs that define a datatype restriction.\" ;\n rdfs:domain rdfs:Datatype ;\n rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;\n rdfs:range rdf:List .\n `;\nexports.rdf = `@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n@prefix owl: <http://www.w3.org/2002/07/owl#> .\n@prefix dc: <http://purl.org/dc/elements/1.1/> .\n\n<http://www.w3.org/1999/02/22-rdf-syntax-ns#> a owl:Ontology ;\n\tdc:title \"The RDF Concepts Vocabulary (RDF)\" ;\n\tdc:date \"2019-12-16\" ;\n\tdc:description \"This is the RDF Schema for the RDF vocabulary terms in the RDF Namespace, defined in RDF 1.1 Concepts.\" .\n\nrdf:HTML a rdfs:Datatype ;\n\trdfs:subClassOf rdfs:Literal ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:seeAlso <http://www.w3.org/TR/rdf11-concepts/#section-html> ;\n\trdfs:label \"HTML\" ;\n\trdfs:comment \"The datatype of RDF literals storing fragments of HTML content\" .\n\nrdf:langString a rdfs:Datatype ;\n\trdfs:subClassOf rdfs:Literal ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:seeAlso <http://www.w3.org/TR/rdf11-concepts/#section-Graph-Literal> ;\n\trdfs:label \"langString\" ;\n\trdfs:comment \"The datatype of language-tagged string values\" .\n\nrdf:PlainLiteral a rdfs:Datatype ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:subClassOf rdfs:Literal ;\n\trdfs:seeAlso <http://www.w3.org/TR/rdf-plain-literal/> ;\n\trdfs:label \"PlainLiteral\" ;\n\trdfs:comment \"The class of plain (i.e. untyped) literal values, as used in RIF and OWL 2\" .\n\nrdf:type a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"type\" ;\n\trdfs:comment \"The subject is an instance of a class.\" ;\n\trdfs:range rdfs:Class ;\n\trdfs:domain rdfs:Resource .\n\nrdf:Property a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"Property\" ;\n\trdfs:comment \"The class of RDF properties.\" ;\n\trdfs:subClassOf rdfs:Resource .\n\nrdf:Statement a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"Statement\" ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:comment \"The class of RDF statements.\" .\n\nrdf:subject a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"subject\" ;\n\trdfs:comment \"The subject of the subject RDF statement.\" ;\n\trdfs:domain rdf:Statement ;\n\trdfs:range rdfs:Resource .\n\nrdf:predicate a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"predicate\" ;\n\trdfs:comment \"The predicate of the subject RDF statement.\" ;\n\trdfs:domain rdf:Statement ;\n\trdfs:range rdfs:Resource .\n\nrdf:object a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"object\" ;\n\trdfs:comment \"The object of the subject RDF statement.\" ;\n\trdfs:domain rdf:Statement ;\n\trdfs:range rdfs:Resource .\n\nrdf:Bag a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"Bag\" ;\n\trdfs:comment \"The class of unordered containers.\" ;\n\trdfs:subClassOf rdfs:Container .\n\nrdf:Seq a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"Seq\" ;\n\trdfs:comment \"The class of ordered containers.\" ;\n\trdfs:subClassOf rdfs:Container .\n\nrdf:Alt a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"Alt\" ;\n\trdfs:comment \"The class of containers of alternatives.\" ;\n\trdfs:subClassOf rdfs:Container .\n\nrdf:value a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"value\" ;\n\trdfs:comment \"Idiomatic property used for structured values.\" ;\n\trdfs:domain rdfs:Resource ;\n\trdfs:range rdfs:Resource .\n\nrdf:List a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"List\" ;\n\trdfs:comment \"The class of RDF Lists.\" ;\n\trdfs:subClassOf rdfs:Resource .\n\nrdf:nil a rdf:List ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"nil\" ;\n\trdfs:comment \"The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it.\" .\n\nrdf:first a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"first\" ;\n\trdfs:comment \"The first item in the subject RDF list.\" ;\n\trdfs:domain rdf:List ;\n\trdfs:range rdfs:Resource .\n\nrdf:rest a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"rest\" ;\n\trdfs:comment \"The rest of the subject RDF list after the first item.\" ;\n\trdfs:domain rdf:List ;\n\trdfs:range rdf:List .\n\nrdf:XMLLiteral a rdfs:Datatype ;\n\trdfs:subClassOf rdfs:Literal ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:label \"XMLLiteral\" ;\n\trdfs:comment \"The datatype of XML literal values.\" .\n\nrdf:JSON a rdfs:Datatype ;\n\trdfs:label \"JSON\" ;\n\trdfs:comment \"The datatype of RDF literals storing JSON content.\" ;\n\trdfs:subClassOf rdfs:Literal ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:seeAlso <https://www.w3.org/TR/json-ld11/#the-rdf-json-datatype> .\n\nrdf:CompoundLiteral a rdfs:Class ;\n\trdfs:label \"CompoundLiteral\" ;\n\trdfs:comment \"A class representing a compound literal.\" ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:seeAlso <https://www.w3.org/TR/json-ld11/#the-rdf-compoundliteral-class-and-the-rdf-language-and-rdf-direction-properties> .\n\nrdf:language a rdf:Property ;\n\trdfs:label \"language\" ;\n\trdfs:comment \"The language component of a CompoundLiteral.\" ;\n\trdfs:domain rdf:CompoundLiteral ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:seeAlso <https://www.w3.org/TR/json-ld11/#the-rdf-compoundliteral-class-and-the-rdf-language-and-rdf-direction-properties> .\n\nrdf:direction a rdf:Property ;\n\trdfs:label \"direction\" ;\n\trdfs:comment \"The base direction component of a CompoundLiteral.\" ;\n\trdfs:domain rdf:CompoundLiteral ;\n\trdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;\n\trdfs:seeAlso <https://www.w3.org/TR/json-ld11/#the-rdf-compoundliteral-class-and-the-rdf-language-and-rdf-direction-properties> .\n`;\nexports.rdfa = `@prefix dcterms: <http://purl.org/dc/terms/> .\n@prefix foaf: <http://xmlns.com/foaf/0.1/> .\n@prefix owl: <http://www.w3.org/2002/07/owl#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n@prefix rdfa: <http://www.w3.org/ns/rdfa#> .\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .\n\nrdfa:PGClass a rdfs:Class,\n owl:Class;\n dcterms:description \"is the top level class of the hierarchy\" .\n\nrdfa:Pattern a rdfs:Class,\n owl:Class;\n dcterms:description \"Class to identify an (RDF) resource whose properties are to be copied to another resource\" .\n\nrdfa:PrefixOrTermMapping a rdfs:Class,\n owl:Class;\n dcterms:description \"is the top level class for prefix or term mappings\" .\n\nrdfa: a owl:Ontology;\n dcterms:creator <http://www.ivan-herman.net/foaf#me>;\n dcterms:date \"2013-01-18\";\n dcterms:description \"This document describes the RDFa Vocabulary for Term and Prefix Assignment. The Vocabulary is used to modify RDFa 1.1 processing behavior.\";\n dcterms:publisher <http://www.w3.org/data#W3C>;\n dcterms:title \"RDFa Vocabulary for Term and Prefix Assignment, and for Processor Graph Reporting\";\n rdfs:isDefinedBy <http://www.w3.org/TR/rdfa-core/#s_initialcontexts>;\n owl:versionInfo \"$Date: 2013-03-11 07:54:23 $\" .\n\nrdfa:DocumentError dcterms:description \"error condition; to be used when the document fails to be fully processed as a result of non-conformant host language markup\";\n rdfs:subClassOf rdfa:Error .\n\nrdfa:Info dcterms:description \"is the class for all informations\";\n rdfs:subClassOf rdfa:PGClass .\n\nrdfa:PrefixRedefinition dcterms:description \"warning; to be used when a prefix, either from the initial context or inherited from an ancestor node, is redefined in an element\";\n rdfs:subClassOf rdfa:Warning .\n\nrdfa:UnresolvedCURIE dcterms:description \"warning; to be used when a CURIE prefix fails to be resolved\";\n rdfs:subClassOf rdfa:Warning .\n\nrdfa:UnresolvedTerm dcterms:description \"warning; to be used when a Term fails to be resolved\";\n rdfs:subClassOf rdfa:Warning .\n\nrdfa:VocabReferenceError dcterms:description \"warning; to be used when the value of a @vocab attribute cannot be dereferenced, hence the vocabulary expansion cannot be completed\";\n rdfs:subClassOf rdfa:Warning .\n\nrdfa:context a rdf:Property,\n owl:ObjectProperty;\n dcterms:description \"provides extra context for the error, eg, http response, an XPointer/XPath information, or simply the URI that created the error\";\n rdfs:domain rdfa:PGClass .\n\nrdfa:copy a rdf:Property,\n owl:ObjectProperty;\n dcterms:description \"identifies the resource (i.e., pattern) whose properties and values should be copied to replace the current triple (retaining the subject of the triple).\" .\n\nrdfa:prefix a rdf:Property,\n owl:DatatypeProperty;\n dcterms:description \"defines a prefix mapping for a URI; the value is supposed to be a NMTOKEN\";\n rdfs:domain rdfa:PrefixMapping .\n\nrdfa:term a rdf:Property,\n owl:DatatypeProperty;\n dcterms:description \"defines a term mapping for a URI; the value is supposed to be a NMTOKEN\";\n rdfs:domain rdfa:TermMapping .\n\nrdfa:uri a rdf:Property,\n owl:DatatypeProperty;\n dcterms:description \"defines the URI for either a prefix or a term mapping; the value is supposed to be an absolute URI\";\n rdfs:domain rdfa:PrefixOrTermMapping .\n\nrdfa:usesVocabulary a rdf:Property,\n owl:ObjectProperty;\n dcterms:description \"\"\"provides a relationship between the host document and a vocabulary\n\tdefined using the @vocab facility of RDFa1.1\"\"\" .\n\nrdfa:vocabulary a rdf:Property,\n owl:DatatypeProperty;\n dcterms:description \"defines an absolute URI to be used as a default vocabulary; the value is can be any string; for documentation purposes it is advised to use the string 'true' or 'True'.\" .\n\n<http://www.ivan-herman.net/foaf#me> a foaf:Person;\n rdfs:seeAlso <http://www.ivan-herman.net/foaf>;\n foaf:mbox <mailto:ivan@w3.org>;\n foaf:name \"Ivan Herman\";\n foaf:title \"Semantic Web Activity Lead\";\n foaf:workplaceHomepage <http://www.w3.org> .\n\nrdfa:Error dcterms:description \"is the class for all error conditions\";\n rdfs:subClassOf rdfa:PGClass .\n\nrdfa:PrefixMapping dcterms:description \"is the class for prefix mappings\";\n rdfs:subClassOf rdfa:PrefixOrTermMapping .\n\nrdfa:TermMapping dcterms:description \"is the class for term mappings\";\n rdfs:subClassOf rdfa:PrefixOrTermMapping .\n\nrdfa:Warning dcterms:description \"is the class for all warnings\";\n rdfs:subClassOf rdfa:PGClass .\n\n\n`;\nexports.rdfs = `@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n@prefix owl: <http://www.w3.org/2002/07/owl#> .\n@prefix dc: <http://purl.org/dc/elements/1.1/> .\n\n<http://www.w3.org/2000/01/rdf-schema#> a owl:Ontology ;\n\tdc:title \"The RDF Schema vocabulary (RDFS)\" .\n\nrdfs:Resource a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"Resource\" ;\n\trdfs:comment \"The class resource, everything.\" .\n\nrdfs:Class a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"Class\" ;\n\trdfs:comment \"The class of classes.\" ;\n\trdfs:subClassOf rdfs:Resource .\n\nrdfs:subClassOf a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"subClassOf\" ;\n\trdfs:comment \"The subject is a subclass of a class.\" ;\n\trdfs:range rdfs:Class ;\n\trdfs:domain rdfs:Class .\n\nrdfs:subPropertyOf a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"subPropertyOf\" ;\n\trdfs:comment \"The subject is a subproperty of a property.\" ;\n\trdfs:range rdf:Property ;\n\trdfs:domain rdf:Property .\n\nrdfs:comment a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"comment\" ;\n\trdfs:comment \"A description of the subject resource.\" ;\n\trdfs:domain rdfs:Resource ;\n\trdfs:range rdfs:Literal .\n\nrdfs:label a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"label\" ;\n\trdfs:comment \"A human-readable name for the subject.\" ;\n\trdfs:domain rdfs:Resource ;\n\trdfs:range rdfs:Literal .\n\nrdfs:domain a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"domain\" ;\n\trdfs:comment \"A domain of the subject property.\" ;\n\trdfs:range rdfs:Class ;\n\trdfs:domain rdf:Property .\n\nrdfs:range a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"range\" ;\n\trdfs:comment \"A range of the subject property.\" ;\n\trdfs:range rdfs:Class ;\n\trdfs:domain rdf:Property .\n\nrdfs:seeAlso a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"seeAlso\" ;\n\trdfs:comment \"Further information about the subject resource.\" ;\n\trdfs:range rdfs:Resource ;\n\trdfs:domain rdfs:Resource .\n\nrdfs:isDefinedBy a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:subPropertyOf rdfs:seeAlso ;\n\trdfs:label \"isDefinedBy\" ;\n\trdfs:comment \"The defininition of the subject resource.\" ;\n\trdfs:range rdfs:Resource ;\n\trdfs:domain rdfs:Resource .\n\nrdfs:Literal a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"Literal\" ;\n\trdfs:comment \"The class of literal values, eg. textual strings and integers.\" ;\n\trdfs:subClassOf rdfs:Resource .\n\nrdfs:Container a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"Container\" ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:comment \"The class of RDF containers.\" .\n\nrdfs:ContainerMembershipProperty a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"ContainerMembershipProperty\" ;\n\trdfs:comment \"\"\"The class of container membership properties, rdf:_1, rdf:_2, ...,\n all of which are sub-properties of 'member'.\"\"\" ;\n\trdfs:subClassOf rdf:Property .\n\nrdfs:member a rdf:Property ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"member\" ;\n\trdfs:comment \"A member of the subject resource.\" ;\n\trdfs:domain rdfs:Resource ;\n\trdfs:range rdfs:Resource .\n\nrdfs:Datatype a rdfs:Class ;\n\trdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;\n\trdfs:label \"Datatype\" ;\n\trdfs:comment \"The class of RDF datatypes.\" ;\n\trdfs:subClassOf rdfs:Class .\n\n<http://www.w3.org/2000/01/rdf-schema#> rdfs:seeAlso <http://www.w3.org/2000/01/rdf-schema-more> .\n`;\nexports.sh = `# W3C Shapes Constraint Language (SHACL) Vocabulary\n# Version from 2017-07-20\n\n@prefix owl: <http://www.w3.org/2002/07/owl#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .\n@prefix sh: <http://www.w3.org/ns/shacl#> .\n\nsh:\n\ta owl:Ontology ;\n\trdfs:label \"W3C Shapes Constraint Language (SHACL) Vocabulary\"@en ;\n\trdfs:comment \"This vocabulary defines terms used in SHACL, the W3C Shapes Constraint Language.\"@en ;\n\tsh:declare [\n\t\tsh:prefix \"sh\" ;\n\t\tsh:namespace \"http://www.w3.org/ns/shacl#\" ;\n\t] ;\n\tsh:suggestedShapesGraph <http://www.w3.org/ns/shacl-shacl#> .\n\n\n# Shapes vocabulary -----------------------------------------------------------\n\nsh:Shape\n\ta rdfs:Class ;\n\trdfs:label \"Shape\"@en ;\n\trdfs:comment \"A shape is a collection of constraints that may be targeted for certain nodes.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:NodeShape\n\ta rdfs:Class ;\n\trdfs:label \"Node Shape\"@en ;\n\trdfs:comment \"A node shape is a shape that specifies constraint that need to be met with respect to focus nodes.\"@en ;\n\trdfs:subClassOf sh:Shape ;\n\trdfs:isDefinedBy sh: .\n\nsh:PropertyShape\n\ta rdfs:Class ;\n\trdfs:label \"Property Shape\"@en ;\n\trdfs:comment \"A property shape is a shape that specifies constraints on the values of a focus node for a given property or path.\"@en ;\n\trdfs:subClassOf sh:Shape ;\n\trdfs:isDefinedBy sh: .\n\nsh:deactivated\n\ta rdf:Property ;\n\trdfs:label \"deactivated\"@en ;\n\trdfs:comment \"If set to true then all nodes conform to this.\"@en ;\n\t# rdfs:domain sh:Shape or sh:SPARQLConstraint\n\trdfs:range xsd:boolean ;\n\trdfs:isDefinedBy sh: .\n\nsh:targetClass \n\ta rdf:Property ;\n\trdfs:label \"target class\"@en ;\n\trdfs:comment \"Links a shape to a class, indicating that all instances of the class must conform to the shape.\"@en ;\n\trdfs:domain sh:Shape ;\n\trdfs:range rdfs:Class ;\n\trdfs:isDefinedBy sh: .\n\nsh:targetNode \n\ta rdf:Property ;\n\trdfs:label \"target node\"@en ;\n\trdfs:comment \"Links a shape to individual nodes, indicating that these nodes must conform to the shape.\"@en ;\n\trdfs:domain sh:Shape ;\n\trdfs:isDefinedBy sh: .\n\nsh:targetObjectsOf\n\ta rdf:Property ;\n\trdfs:label \"target objects of\"@en ;\n\trdfs:comment \"Links a shape to a property, indicating that all all objects of triples that have the given property as their predicate must conform to the shape.\"@en ;\n\trdfs:domain sh:Shape ;\n\trdfs:range rdf:Property ;\n\trdfs:isDefinedBy sh: .\n\nsh:targetSubjectsOf\n\ta rdf:Property ;\n\trdfs:label \"target subjects of\"@en ;\n\trdfs:comment \"Links a shape to a property, indicating that all subjects of triples that have the given property as their predicate must conform to the shape.\"@en ;\n\trdfs:domain sh:Shape ;\n\trdfs:range rdf:Property ;\n\trdfs:isDefinedBy sh: .\n\nsh:message\n\ta rdf:Property ;\n\t# domain: sh:Shape or sh:SPARQLConstraint or sh:SPARQLSelectValidator or sh:SPARQLAskValidator\n\t# range: xsd:string or rdf:langString\n\trdfs:label \"message\"@en ;\n\trdfs:comment \"A human-readable message (possibly with placeholders for variables) explaining the cause of the result.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:severity\n\ta rdf:Property ;\n\trdfs:label \"severity\"@en ;\n\trdfs:comment \"Defines the severity that validation results produced by a shape must have. Defaults to sh:Violation.\"@en ;\n\trdfs:domain sh:Shape ;\n\trdfs:range sh:Severity ;\n\trdfs:isDefinedBy sh: .\n\n\n# Node kind vocabulary --------------------------------------------------------\n\nsh:NodeKind\n\ta rdfs:Class ;\n\trdfs:label \"Node Kind\"@en ;\n\trdfs:comment \"The class of all node kinds, including sh:BlankNode, sh:IRI, sh:Literal or the combinations of these: sh:BlankNodeOrIRI, sh:BlankNodeOrLiteral, sh:IRIOrLiteral.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:BlankNode\n\ta sh:NodeKind ;\n\trdfs:label \"Blank Node\"@en ;\n\trdfs:comment \"The node kind of all blank nodes.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:BlankNodeOrIRI\n\ta sh:NodeKind ;\n\trdfs:label \"Blank Node or IRI\"@en ;\n\trdfs:comment \"The node kind of all blank nodes or IRIs.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:BlankNodeOrLiteral\n\ta sh:NodeKind ;\n\trdfs:label \"Blank Node or Literal\"@en ;\n\trdfs:comment \"The node kind of all blank nodes or literals.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:IRI\n\ta sh:NodeKind ;\n\trdfs:label \"IRI\"@en ;\n\trdfs:comment \"The node kind of all IRIs.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:IRIOrLiteral\n\ta sh:NodeKind ;\n\trdfs:label \"IRI or Literal\"@en ;\n\trdfs:comment \"The node kind of all IRIs or literals.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:Literal\n\ta sh:NodeKind ;\n\trdfs:label \"Literal\"@en ;\n\trdfs:comment \"The node kind of all literals.\"@en ;\n\trdfs:isDefinedBy sh: .\n\n\n# Results vocabulary ----------------------------------------------------------\n\nsh:ValidationReport\n\ta rdfs:Class ;\n\trdfs:label \"Validation Report\"@en ;\n\trdfs:comment \"The class of SHACL validation reports.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:conforms\n\ta rdf:Property ;\n\trdfs:label \"conforms\"@en ;\n\trdfs:comment \"True if the validation did not produce any validation results, and false otherwise.\"@en ;\n\trdfs:domain sh:ValidationReport ;\n\trdfs:range xsd:boolean ;\n\trdfs:isDefinedBy sh: .\n\nsh:result\n\ta rdf:Property ;\n\trdfs:label \"result\"@en ;\n\trdfs:comment \"The validation results contained in a validation report.\"@en ;\n\trdfs:domain sh:ValidationReport ;\n\trdfs:range sh:ValidationResult ;\n\trdfs:isDefinedBy sh: .\n\nsh:shapesGraphWellFormed\n\ta rdf:Property ;\n\trdfs:label \"shapes graph well-formed\"@en ;\n\trdfs:comment \"If true then the validation engine was certain that the shapes graph has passed all SHACL syntax requirements during the validation process.\"@en ;\n\trdfs:domain sh:ValidationReport ;\n\trdfs:range xsd:boolean ;\n\trdfs:isDefinedBy sh: .\n\nsh:AbstractResult\n\ta rdfs:Class ;\n\trdfs:label \"Abstract Result\"@en ;\n\trdfs:comment \"The base class of validation results, typically not instantiated directly.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:ValidationResult\n\ta rdfs:Class ;\n\trdfs:label \"Validation Result\"@en ;\n\trdfs:comment \"The class of validation results.\"@en ;\n\trdfs:subClassOf sh:AbstractResult ;\n\trdfs:isDefinedBy sh: .\n\nsh:Severity\n\ta rdfs:Class ;\n\trdfs:label \"Severity\"@en ;\n\trdfs:comment \"The class of validation result severity levels, including violation and warning levels.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:Info\n\ta sh:Severity ;\n\trdfs:label \"Info\"@en ;\n\trdfs:comment \"The severity for an informational validation result.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:Violation\n\ta sh:Severity ;\n\trdfs:label \"Violation\"@en ;\n\trdfs:comment \"The severity for a violation validation result.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:Warning\n\ta sh:Severity ;\n\trdfs:label \"Warning\"@en ;\n\trdfs:comment \"The severity for a warning validation result.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:detail\n\ta rdf:Property ;\n\trdfs:label \"detail\"@en ;\n\trdfs:comment \"Links a result with other results that provide more details, for example to describe violations against nested shapes.\"@en ;\n\trdfs:domain sh:AbstractResult ;\n\trdfs:range sh:AbstractResult ;\n\trdfs:isDefinedBy sh: .\n\nsh:focusNode\n\ta rdf:Property ;\n\trdfs:label \"focus node\"@en ;\n\trdfs:comment \"The focus node that was validated when the result was produced.\"@en ;\n\trdfs:domain sh:AbstractResult ;\n\trdfs:isDefinedBy sh: .\n\nsh:resultMessage\n\ta rdf:Property ;\n\trdfs:label \"result message\"@en ;\n\trdfs:comment \"Human-readable messages explaining the cause of the result.\"@en ;\n\trdfs:domain sh:AbstractResult ;\n\t# range: xsd:string or rdf:langString\n\trdfs:isDefinedBy sh: .\n\nsh:resultPath\n\ta rdf:Property ;\n\trdfs:label \"result path\"@en ;\n\trdfs:comment \"The path of a validation result, based on the path of the validated property shape.\"@en ;\n\trdfs:domain sh:AbstractResult ;\n\trdfs:range rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:resultSeverity\n\ta rdf:Property ;\n\trdfs:label \"result severity\"@en ;\n\trdfs:comment \"The severity of the result, e.g. warning.\"@en ;\n\trdfs:domain sh:AbstractResult ;\n\trdfs:range sh:Severity ;\n\trdfs:isDefinedBy sh: .\n\nsh:sourceConstraint\n\ta rdf:Property ;\n\trdfs:label \"source constraint\"@en ;\n\trdfs:comment \"The constraint that was validated when the result was produced.\"@en ;\n\trdfs:domain sh:AbstractResult ;\n\trdfs:isDefinedBy sh: .\n\nsh:sourceShape\n\ta rdf:Property ;\n\trdfs:label \"source shape\"@en ;\n\trdfs:comment \"The shape that is was validated when the result was produced.\"@en ;\n\trdfs:domain sh:AbstractResult ;\n\trdfs:range sh:Shape ;\n\trdfs:isDefinedBy sh: .\n\nsh:sourceConstraintComponent\n\ta rdf:Property ;\n\trdfs:label \"source Constraint Component\"@en ;\n\trdfs:comment \"The constraint component that is the source of the result.\"@en ;\n\trdfs:domain sh:AbstractResult ;\n\trdfs:range sh:ConstraintComponent ;\n\trdfs:isDefinedBy sh: .\n\nsh:value\n\ta rdf:Property ;\n\trdfs:label \"value\"@en ;\n\trdfs:comment \"An RDF node that has caused the result.\"@en ;\n\trdfs:domain sh:AbstractResult ;\n\trdfs:isDefinedBy sh: .\n\n\t\n# Graph properties ------------------------------------------------------------\n\nsh:shapesGraph\n\ta rdf:Property ;\n\trdfs:label \"shapes graph\"@en ;\n\trdfs:comment \"Shapes graphs that should be used when validating this data graph.\"@en ;\n\trdfs:domain owl:Ontology ;\n\trdfs:range owl:Ontology ;\n\trdfs:isDefinedBy sh: .\n\nsh:suggestedShapesGraph\n\ta rdf:Property ;\n\trdfs:label \"suggested shapes graph\"@en ;\n\trdfs:comment \"Suggested shapes graphs for this ontology. The values of this property may be used in the absence of specific sh:shapesGraph statements.\"@en ;\n\trdfs:domain owl:Ontology ;\n\trdfs:range owl:Ontology ;\n\trdfs:isDefinedBy sh: .\n\nsh:entailment\n\ta rdf:Property ;\n\trdfs:label \"entailment\"@en ;\n\trdfs:comment \"An entailment regime that indicates what kind of inferencing is required by a shapes graph.\"@en ;\n\trdfs:domain owl:Ontology ;\n\trdfs:range rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\n\n# Path vocabulary -------------------------------------------------------------\n\nsh:path\n\ta rdf:Property ;\n\trdfs:label \"path\"@en ;\n\trdfs:comment \"Specifies the property path of a property shape.\"@en ;\n\trdfs:domain sh:PropertyShape ;\n\trdfs:range rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:inversePath\n\ta rdf:Property ;\n\trdfs:label \"inverse path\"@en ;\n\trdfs:comment \"The (single) value of this property represents an inverse path (object to subject).\"@en ;\n\trdfs:range rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:alternativePath\n\ta rdf:Property ;\n\trdfs:label \"alternative path\"@en ;\n\trdfs:comment \"The (single) value of this property must be a list of path elements, representing the elements of alternative paths.\"@en ;\n\trdfs:range rdf:List ;\n\trdfs:isDefinedBy sh: .\n\nsh:zeroOrMorePath\n\ta rdf:Property ;\n\trdfs:label \"zero or more path\"@en ;\n\trdfs:comment \"The (single) value of this property represents a path that is matched zero or more times.\"@en ;\n\trdfs:range rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:oneOrMorePath\n\ta rdf:Property ;\n\trdfs:label \"one or more path\"@en ;\n\trdfs:comment \"The (single) value of this property represents a path that is matched one or more times.\"@en ;\n\trdfs:range rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:zeroOrOnePath\n\ta rdf:Property ;\n\trdfs:label \"zero or one path\"@en ;\n\trdfs:comment \"The (single) value of this property represents a path that is matched zero or one times.\"@en ;\n\trdfs:range rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\n\n# Parameters metamodel --------------------------------------------------------\n\nsh:Parameterizable\n\ta rdfs:Class ;\n\trdfs:label \"Parameterizable\"@en ;\n\trdfs:comment \"Superclass of components that can take parameters, especially functions and constraint components.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:parameter\n\ta rdf:Property ;\n\trdfs:label \"parameter\"@en ;\n\trdfs:comment \"The parameters of a function or constraint component.\"@en ;\n\trdfs:domain sh:Parameterizable ;\n\trdfs:range sh:Parameter ;\n\trdfs:isDefinedBy sh: .\n\nsh:labelTemplate\n\ta rdf:Property ;\n\trdfs:label \"label template\"@en ;\n\trdfs:comment \"Outlines how human-readable labels of instances of the associated Parameterizable shall be produced. The values can contain {?paramName} as placeholders for the actual values of the given parameter.\"@en ;\n\trdfs:domain sh:Parameterizable ;\n\t# range: xsd:string or rdf:langString\n\trdfs:isDefinedBy sh: .\n\nsh:Parameter\n\ta rdfs:Class ;\n\trdfs:label \"Parameter\"@en ;\n\trdfs:comment \"The class of parameter declarations, consisting of a path predicate and (possibly) information about allowed value type, cardinality and other characteristics.\"@en ;\n\trdfs:subClassOf sh:PropertyShape ;\n\trdfs:isDefinedBy sh: .\n\nsh:optional\n\ta rdf:Property ;\n\trdfs:label \"optional\"@en ;\n\trdfs:comment \"Indicates whether a parameter is optional.\"@en ;\n\trdfs:domain sh:Parameter ;\n\trdfs:range xsd:boolean ;\n\trdfs:isDefinedBy sh: .\n\n\n# Constraint components metamodel ---------------------------------------------\n\nsh:ConstraintComponent\n\ta rdfs:Class ;\n\trdfs:label \"Constraint Component\"@en ;\n\trdfs:comment \"The class of constraint components.\"@en ;\n\trdfs:subClassOf sh:Parameterizable ;\n\trdfs:isDefinedBy sh: .\n\nsh:validator\n\ta rdf:Property ;\n\trdfs:label \"validator\"@en ;\n\trdfs:comment \"The validator(s) used to evaluate constraints of either node or property shapes.\"@en ;\n\trdfs:domain sh:ConstraintComponent ;\n\trdfs:range sh:Validator ;\n\trdfs:isDefinedBy sh: .\n\nsh:nodeValidator\n\ta rdf:Property ;\n\trdfs:label \"shape validator\"@en ;\n\trdfs:comment \"The validator(s) used to evaluate a constraint in the context of a node shape.\"@en ;\n\trdfs:domain sh:ConstraintComponent ;\n\trdfs:range sh:Validator ;\n\trdfs:isDefinedBy sh: .\n\nsh:propertyValidator\n\ta rdf:Property ;\n\trdfs:label \"property validator\"@en ;\n\trdfs:comment \"The validator(s) used to evaluate a constraint in the context of a property shape.\"@en ;\n\trdfs:domain sh:ConstraintComponent ;\n\trdfs:range sh:Validator ;\n\trdfs:isDefinedBy sh: .\n\nsh:Validator\n\ta rdfs:Class ;\n\trdfs:label \"Validator\"@en ;\n\trdfs:comment \"The class of validators, which provide instructions on how to process a constraint definition. This class serves as base class for the SPARQL-based validators and other possible implementations.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLAskValidator\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL ASK Validator\"@en ;\n\trdfs:comment \"The class of validators based on SPARQL ASK queries. The queries are evaluated for each value node and are supposed to return true if the given node conforms.\"@en ;\n\trdfs:subClassOf sh:Validator ;\n\trdfs:subClassOf sh:SPARQLAskExecutable ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLSelectValidator\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL SELECT Validator\"@en ;\n\trdfs:comment \"The class of validators based on SPARQL SELECT queries. The queries are evaluated for each focus node and are supposed to produce bindings for all focus nodes that do not conform.\"@en ;\n\trdfs:subClassOf sh:Validator ;\n\trdfs:subClassOf sh:SPARQLSelectExecutable ;\n\trdfs:isDefinedBy sh: .\n\n\n# Library of Core Constraint Components and their properties ------------------\n\nsh:AndConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"And Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to test whether a value node conforms to all members of a provided list of shapes.\"@en ;\n\tsh:parameter sh:AndConstraintComponent-and ;\n\trdfs:isDefinedBy sh: .\n\nsh:AndConstraintComponent-and\n\ta sh:Parameter ;\n\tsh:path sh:and ;\n\trdfs:isDefinedBy sh: .\n\nsh:and\n\ta rdf:Property ;\n\trdfs:label \"and\"@en ;\n\trdfs:comment \"RDF list of shapes to validate the value nodes against.\"@en ;\n\trdfs:range rdf:List ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:ClassConstraintComponent \n\ta sh:ConstraintComponent ;\n\trdfs:label \"Class Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that each value node is an instance of a given type.\"@en ;\n\tsh:parameter sh:ClassConstraintComponent-class ;\n\trdfs:isDefinedBy sh: .\n\nsh:ClassConstraintComponent-class\n\ta sh:Parameter ;\n\tsh:path sh:class ;\n\tsh:nodeKind sh:IRI ;\n\trdfs:isDefinedBy sh: .\n\nsh:class\n\ta rdf:Property ;\n\trdfs:label \"class\"@en ;\n\trdfs:comment \"The type that all value nodes must have.\"@en ;\n\trdfs:range rdfs:Class ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:ClosedConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Closed Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to indicate that focus nodes must only have values for those properties that have been explicitly enumerated via sh:property/sh:path.\"@en ;\n\tsh:parameter sh:ClosedConstraintComponent-closed ;\n\tsh:parameter sh:ClosedConstraintComponent-ignoredProperties ;\n\trdfs:isDefinedBy sh: .\n\nsh:ClosedConstraintComponent-closed\n\ta sh:Parameter ; \n\tsh:path sh:closed ;\n\tsh:datatype xsd:boolean ;\n\trdfs:isDefinedBy sh: .\n\nsh:ClosedConstraintComponent-ignoredProperties\n\ta sh:Parameter ;\n\tsh:path sh:ignoredProperties ;\n\tsh:optional true ;\n\trdfs:isDefinedBy sh: .\n\nsh:closed\n\ta rdf:Property ;\n\trdfs:label \"closed\"@en ;\n\trdfs:comment \"If set to true then the shape is closed.\"@en ;\n\trdfs:range xsd:boolean ;\n\trdfs:isDefinedBy sh: .\n\nsh:ignoredProperties\n\ta rdf:Property ;\n\trdfs:label \"ignored properties\"@en ;\n\trdfs:comment \"An optional RDF list of properties that are also permitted in addition to those explicitly enumerated via sh:property/sh:path.\"@en ;\n\trdfs:range rdf:List ; # members: rdf:Property\n\trdfs:isDefinedBy sh: .\n\n\nsh:DatatypeConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Datatype Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the datatype of all value nodes.\"@en ;\n\tsh:parameter sh:DatatypeConstraintComponent-datatype ;\n\trdfs:isDefinedBy sh: .\n\nsh:DatatypeConstraintComponent-datatype\n\ta sh:Parameter ;\n\tsh:path sh:datatype ;\n\tsh:nodeKind sh:IRI ;\n\tsh:maxCount 1 ;\n\trdfs:isDefinedBy sh: .\n\nsh:datatype\n\ta rdf:Property ;\n\trdfs:label \"datatype\"@en ;\n\trdfs:comment \"Specifies an RDF datatype that all value nodes must have.\"@en ;\n\trdfs:range rdfs:Datatype ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:DisjointConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Disjoint Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that the set of value nodes is disjoint with the the set of nodes that have the focus node as subject and the value of a given property as predicate.\"@en ;\n\tsh:parameter sh:DisjointConstraintComponent-disjoint ;\n\trdfs:isDefinedBy sh: .\n\nsh:DisjointConstraintComponent-disjoint\n\ta sh:Parameter ;\n\tsh:path sh:disjoint ;\n\tsh:nodeKind sh:IRI ;\n\trdfs:isDefinedBy sh: .\n\nsh:disjoint\n\ta rdf:Property ;\n\trdfs:label \"disjoint\"@en ;\n\trdfs:comment \"Specifies a property where the set of values must be disjoint with the value nodes.\"@en ;\n\trdfs:range rdf:Property ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:EqualsConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Equals Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that the set of value nodes is equal to the set of nodes that have the focus node as subject and the value of a given property as predicate.\"@en ;\n\tsh:parameter sh:EqualsConstraintComponent-equals ;\n\trdfs:isDefinedBy sh: .\n\nsh:EqualsConstraintComponent-equals\n\ta sh:Parameter ;\n\tsh:path sh:equals ;\n\tsh:nodeKind sh:IRI ;\n\trdfs:isDefinedBy sh: .\n\nsh:equals\n\ta rdf:Property ;\n\trdfs:label \"equals\"@en ;\n\trdfs:comment \"Specifies a property that must have the same values as the value nodes.\"@en ;\n\trdfs:range rdf:Property ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:HasValueConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Has-value Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that one of the value nodes is a given RDF node.\"@en ;\n\tsh:parameter sh:HasValueConstraintComponent-hasValue ;\n\trdfs:isDefinedBy sh: .\n\nsh:HasValueConstraintComponent-hasValue\n\ta sh:Parameter ;\n\tsh:path sh:hasValue ;\n\trdfs:isDefinedBy sh: .\n\nsh:hasValue\n\ta rdf:Property ;\n\trdfs:label \"has value\"@en ;\n\trdfs:comment \"Specifies a value that must be among the value nodes.\"@en ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:InConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"In Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to exclusively enumerate the permitted value nodes.\"@en ;\n\tsh:parameter sh:InConstraintComponent-in ;\n\trdfs:isDefinedBy sh: .\n\nsh:InConstraintComponent-in\n\ta sh:Parameter ;\n\tsh:path sh:in ;\n\tsh:maxCount 1 ;\n\trdfs:isDefinedBy sh: .\n\nsh:in\n\ta rdf:Property ;\n\trdfs:label \"in\"@en ;\n\trdfs:comment \"Specifies a list of allowed values so that each value node must be among the members of the given list.\"@en ;\n\trdfs:range rdf:List ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:LanguageInConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Language-in Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to enumerate language tags that all value nodes must have.\"@en ;\n\tsh:parameter sh:LanguageInConstraintComponent-languageIn ;\n\trdfs:isDefinedBy sh: .\n\nsh:LanguageInConstraintComponent-languageIn\n\ta sh:Parameter ;\n\tsh:path sh:languageIn ;\n\tsh:maxCount 1 ;\n\trdfs:isDefinedBy sh: .\n\nsh:languageIn\n\ta rdf:Property ;\n\trdfs:label \"language in\"@en ;\n\trdfs:comment \"Specifies a list of language tags that all value nodes must have.\"@en ;\n\trdfs:range rdf:List ; # members: xsd:string\n\trdfs:isDefinedBy sh: .\n\n\nsh:LessThanConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Less-than Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that each value node is smaller than all the nodes that have the focus node as subject and the value of a given property as predicate.\"@en ;\n\tsh:parameter sh:LessThanConstraintComponent-lessThan ;\n\trdfs:isDefinedBy sh: .\n\nsh:LessThanConstraintComponent-lessThan\n\ta sh:Parameter ;\n\tsh:path sh:lessThan ;\n\tsh:nodeKind sh:IRI ;\n\trdfs:isDefinedBy sh: .\n\nsh:lessThan\n\ta rdf:Property ;\n\trdfs:label \"less than\"@en ;\n\trdfs:comment \"Specifies a property that must have smaller values than the value nodes.\"@en ;\n\trdfs:range rdf:Property ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:LessThanOrEqualsConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Less-than-or-equals Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that every value node is smaller than all the nodes that have the focus node as subject and the value of a given property as predicate.\"@en ;\n\tsh:parameter sh:LessThanOrEqualsConstraintComponent-lessThanOrEquals ;\n\trdfs:isDefinedBy sh: .\n\nsh:LessThanOrEqualsConstraintComponent-lessThanOrEquals\n\ta sh:Parameter ;\n\tsh:path sh:lessThanOrEquals ;\n\tsh:nodeKind sh:IRI ;\n\trdfs:isDefinedBy sh: .\n\nsh:lessThanOrEquals\n\ta rdf:Property ;\n\trdfs:label \"less than or equals\"@en ;\n\trdfs:comment \"Specifies a property that must have smaller or equal values than the value nodes.\"@en ;\n\trdfs:range rdf:Property ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:MaxCountConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Max-count Constraint ConstraintComponentomponent\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the maximum number of value nodes.\"@en ;\n\tsh:parameter sh:MaxCountConstraintComponent-maxCount ;\n\trdfs:isDefinedBy sh: .\n\nsh:MaxCountConstraintComponent-maxCount\n\ta sh:Parameter ;\n\tsh:path sh:maxCount ;\n\tsh:datatype xsd:integer ;\n\tsh:maxCount 1 ;\n\trdfs:isDefinedBy sh: .\n\nsh:maxCount\n\ta rdf:Property ;\n\trdfs:label \"max count\"@en ;\n\trdfs:comment \"Specifies the maximum number of values in the set of value nodes.\"@en ;\n\trdfs:range xsd:integer ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:MaxExclusiveConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Max-exclusive Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the range of value nodes with a maximum exclusive value.\"@en ;\n\tsh:parameter sh:MaxExclusiveConstraintComponent-maxExclusive ;\n\trdfs:isDefinedBy sh: .\n\nsh:MaxExclusiveConstraintComponent-maxExclusive\n\ta sh:Parameter ;\n\tsh:path sh:maxExclusive ;\n\tsh:maxCount 1 ;\n\tsh:nodeKind sh:Literal ;\n\trdfs:isDefinedBy sh: .\n\nsh:maxExclusive\n\ta rdf:Property ;\n\trdfs:label \"max exclusive\"@en ;\n\trdfs:comment \"Specifies the maximum exclusive value of each value node.\"@en ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:MaxInclusiveConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Max-inclusive Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the range of value nodes with a maximum inclusive value.\"@en ;\n\tsh:parameter sh:MaxInclusiveConstraintComponent-maxInclusive ;\n\trdfs:isDefinedBy sh: .\n\nsh:MaxInclusiveConstraintComponent-maxInclusive\n\ta sh:Parameter ;\n\tsh:path sh:maxInclusive ;\n\tsh:maxCount 1 ;\n\tsh:nodeKind sh:Literal ;\n\trdfs:isDefinedBy sh: .\n\nsh:maxInclusive\n\ta rdf:Property ;\n\trdfs:label \"max inclusive\"@en ;\n\trdfs:comment \"Specifies the maximum inclusive value of each value node.\"@en ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:MaxLengthConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Max-length Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the maximum string length of value nodes.\"@en ;\n\tsh:parameter sh:MaxLengthConstraintComponent-maxLength ;\n\trdfs:isDefinedBy sh: .\n\nsh:MaxLengthConstraintComponent-maxLength\n\ta sh:Parameter ;\n\tsh:path sh:maxLength ;\n\tsh:datatype xsd:integer ;\n\tsh:maxCount 1 ;\n\trdfs:isDefinedBy sh: .\n\nsh:maxLength\n\ta rdf:Property ;\n\trdfs:label \"max length\"@en ;\n\trdfs:comment \"Specifies the maximum string length of each value node.\"@en ;\n\trdfs:range xsd:integer ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:MinCountConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Min-count Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the minimum number of value nodes.\"@en ;\n\tsh:parameter sh:MinCountConstraintComponent-minCount ;\n\trdfs:isDefinedBy sh: .\n\nsh:MinCountConstraintComponent-minCount\n\ta sh:Parameter ;\n\tsh:path sh:minCount ;\n\tsh:datatype xsd:integer ;\n\tsh:maxCount 1 ;\n\trdfs:isDefinedBy sh: .\n\nsh:minCount\n\ta rdf:Property ;\n\trdfs:label \"min count\"@en ;\n\trdfs:comment \"Specifies the minimum number of values in the set of value nodes.\"@en ;\n\trdfs:range xsd:integer ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:MinExclusiveConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Min-exclusive Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the range of value nodes with a minimum exclusive value.\"@en ;\n\tsh:parameter sh:MinExclusiveConstraintComponent-minExclusive ;\n\trdfs:isDefinedBy sh: .\n\nsh:MinExclusiveConstraintComponent-minExclusive\n\ta sh:Parameter ;\n\tsh:path sh:minExclusive ;\n\tsh:maxCount 1 ;\n\tsh:nodeKind sh:Literal ;\n\trdfs:isDefinedBy sh: .\n\nsh:minExclusive\n\ta rdf:Property ;\n\trdfs:label \"min exclusive\"@en ;\n\trdfs:comment \"Specifies the minimum exclusive value of each value node.\"@en ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:MinInclusiveConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Min-inclusive Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the range of value nodes with a minimum inclusive value.\"@en ;\n\tsh:parameter sh:MinInclusiveConstraintComponent-minInclusive ;\n\trdfs:isDefinedBy sh: .\n\nsh:MinInclusiveConstraintComponent-minInclusive\n\ta sh:Parameter ;\n\tsh:path sh:minInclusive ;\n\tsh:maxCount 1 ;\n\tsh:nodeKind sh:Literal ;\n\trdfs:isDefinedBy sh: .\n\nsh:minInclusive\n\ta rdf:Property ;\n\trdfs:label \"min inclusive\"@en ;\n\trdfs:comment \"Specifies the minimum inclusive value of each value node.\"@en ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:MinLengthConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Min-length Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the minimum string length of value nodes.\"@en ;\n\tsh:parameter sh:MinLengthConstraintComponent-minLength ;\n\trdfs:isDefinedBy sh: .\n\nsh:MinLengthConstraintComponent-minLength\n\ta sh:Parameter ;\n\tsh:path sh:minLength ;\n\tsh:datatype xsd:integer ;\n\tsh:maxCount 1 ;\n\trdfs:isDefinedBy sh: .\n\nsh:minLength\n\ta rdf:Property ;\n\trdfs:label \"min length\"@en ;\n\trdfs:comment \"Specifies the minimum string length of each value node.\"@en ;\n\trdfs:range xsd:integer ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:NodeConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Node Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that all value nodes conform to the given node shape.\"@en ;\n\tsh:parameter sh:NodeConstraintComponent-node ;\n\trdfs:isDefinedBy sh: .\n\nsh:NodeConstraintComponent-node\n\ta sh:Parameter ;\n\tsh:path sh:node ;\n\trdfs:isDefinedBy sh: .\n\nsh:node\n\ta rdf:Property ;\n\trdfs:label \"node\"@en ;\n\trdfs:comment \"Specifies the node shape that all value nodes must conform to.\"@en ;\n\trdfs:range sh:NodeShape ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:NodeKindConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Node-kind Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the RDF node kind of each value node.\"@en ;\n\tsh:parameter sh:NodeKindConstraintComponent-nodeKind ;\n\trdfs:isDefinedBy sh: .\n\nsh:NodeKindConstraintComponent-nodeKind\n\ta sh:Parameter ;\n\tsh:path sh:nodeKind ;\n\tsh:in ( sh:BlankNode sh:IRI sh:Literal sh:BlankNodeOrIRI sh:BlankNodeOrLiteral sh:IRIOrLiteral ) ;\n\tsh:maxCount 1 ;\n\trdfs:isDefinedBy sh: .\n\nsh:nodeKind\n\ta rdf:Property ;\n\trdfs:label \"node kind\"@en ;\n\trdfs:comment \"Specifies the node kind (e.g. IRI or literal) each value node.\"@en ;\n\trdfs:range sh:NodeKind ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:NotConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Not Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that value nodes do not conform to a given shape.\"@en ;\n\tsh:parameter sh:NotConstraintComponent-not ;\n\trdfs:isDefinedBy sh: .\n\nsh:NotConstraintComponent-not\n\ta sh:Parameter ;\n\tsh:path sh:not ;\n\trdfs:isDefinedBy sh: .\n\nsh:not\n\ta rdf:Property ;\n\trdfs:label \"not\"@en ;\n\trdfs:comment \"Specifies a shape that the value nodes must not conform to.\"@en ;\n\trdfs:range sh:Shape ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:OrConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Or Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the value nodes so that they conform to at least one out of several provided shapes.\"@en ;\n\tsh:parameter sh:OrConstraintComponent-or ;\n\trdfs:isDefinedBy sh: .\n\nsh:OrConstraintComponent-or\n\ta sh:Parameter ;\n\tsh:path sh:or ;\n\trdfs:isDefinedBy sh: .\n\nsh:or\n\ta rdf:Property ;\n\trdfs:label \"or\"@en ;\n\trdfs:comment \"Specifies a list of shapes so that the value nodes must conform to at least one of the shapes.\"@en ;\n\trdfs:range rdf:List ; # members: sh:Shape ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:PatternConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Pattern Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that every value node matches a given regular expression.\"@en ;\n\tsh:parameter sh:PatternConstraintComponent-pattern ;\n\tsh:parameter sh:PatternConstraintComponent-flags ;\n\trdfs:isDefinedBy sh: .\n\nsh:PatternConstraintComponent-pattern\n\ta sh:Parameter ;\n\tsh:path sh:pattern ;\n\tsh:datatype xsd:string ;\n\trdfs:isDefinedBy sh: .\n\nsh:PatternConstraintComponent-flags\n\ta sh:Parameter ;\n\tsh:path sh:flags ;\n\tsh:datatype xsd:string ;\n\tsh:optional true ;\n\trdfs:isDefinedBy sh: .\n\nsh:flags\n\ta rdf:Property ;\n\trdfs:label \"flags\"@en ;\n\trdfs:comment \"An optional flag to be used with regular expression pattern matching.\"@en ;\n\trdfs:range xsd:string ;\n\trdfs:isDefinedBy sh: .\n\nsh:pattern\n\ta rdf:Property ;\n\trdfs:label \"pattern\"@en ;\n\trdfs:comment \"Specifies a regular expression pattern that the string representations of the value nodes must match.\"@en ;\n\trdfs:range xsd:string ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:PropertyConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Property Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that all value nodes conform to the given property shape.\"@en ;\n\tsh:parameter sh:PropertyConstraintComponent-property ;\n\trdfs:isDefinedBy sh: .\n\nsh:PropertyConstraintComponent-property\n\ta sh:Parameter ;\n\tsh:path sh:property ;\n\trdfs:isDefinedBy sh: .\n\nsh:property\n\ta rdf:Property ;\n\trdfs:label \"property\"@en ;\n\trdfs:comment \"Links a shape to its property shapes.\"@en ;\n\trdfs:domain sh:Shape ;\n\trdfs:range sh:PropertyShape ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:QualifiedMaxCountConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Qualified-max-count Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that a specified maximum number of value nodes conforms to a given shape.\"@en ;\n\tsh:parameter sh:QualifiedMaxCountConstraintComponent-qualifiedMaxCount ;\n\tsh:parameter sh:QualifiedMaxCountConstraintComponent-qualifiedValueShape ;\n\tsh:parameter sh:QualifiedMaxCountConstraintComponent-qualifiedValueShapesDisjoint ;\n\trdfs:isDefinedBy sh: .\n\nsh:QualifiedMaxCountConstraintComponent-qualifiedMaxCount\n\ta sh:Parameter ;\n\tsh:path sh:qualifiedMaxCount ;\n\tsh:datatype xsd:integer ;\n\trdfs:isDefinedBy sh: .\n\nsh:QualifiedMaxCountConstraintComponent-qualifiedValueShape\n\ta sh:Parameter ;\n\tsh:path sh:qualifiedValueShape ;\n\trdfs:isDefinedBy sh: .\n\nsh:QualifiedMaxCountConstraintComponent-qualifiedValueShapesDisjoint\n\ta sh:Parameter ;\n\tsh:path sh:qualifiedValueShapesDisjoint ;\n\tsh:datatype xsd:boolean ;\n\tsh:optional true ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:QualifiedMinCountConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Qualified-min-count Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that a specified minimum number of value nodes conforms to a given shape.\"@en ;\n\tsh:parameter sh:QualifiedMinCountConstraintComponent-qualifiedMinCount ;\n\tsh:parameter sh:QualifiedMinCountConstraintComponent-qualifiedValueShape ;\n\tsh:parameter sh:QualifiedMinCountConstraintComponent-qualifiedValueShapesDisjoint ;\n\trdfs:isDefinedBy sh: .\n\nsh:QualifiedMinCountConstraintComponent-qualifiedMinCount\n\ta sh:Parameter ;\n\tsh:path sh:qualifiedMinCount ;\n\tsh:datatype xsd:integer ;\n\trdfs:isDefinedBy sh: .\n\nsh:QualifiedMinCountConstraintComponent-qualifiedValueShape\n\ta sh:Parameter ;\n\tsh:path sh:qualifiedValueShape ;\n\trdfs:isDefinedBy sh: .\n\nsh:QualifiedMinCountConstraintComponent-qualifiedValueShapesDisjoint\n\ta sh:Parameter ;\n\tsh:path sh:qualifiedValueShapesDisjoint ;\n\tsh:datatype xsd:boolean ;\n\tsh:optional true ;\n\trdfs:isDefinedBy sh: .\n\nsh:qualifiedMaxCount\n\ta rdf:Property ;\n\trdfs:label \"qualified max count\"@en ;\n\trdfs:comment \"The maximum number of value nodes that can conform to the shape.\"@en ;\n\trdfs:range xsd:integer ;\n\trdfs:isDefinedBy sh: .\n\nsh:qualifiedMinCount\n\ta rdf:Property ;\n\trdfs:label \"qualified min count\"@en ;\n\trdfs:comment \"The minimum number of value nodes that must conform to the shape.\"@en ;\n\trdfs:range xsd:integer ;\n\trdfs:isDefinedBy sh: .\n\nsh:qualifiedValueShape\n\ta rdf:Property ;\n\trdfs:label \"qualified value shape\"@en ;\n\trdfs:comment \"The shape that a specified number of values must conform to.\"@en ;\n\trdfs:range sh:Shape ;\n\trdfs:isDefinedBy sh: .\n\t\nsh:qualifiedValueShapesDisjoint\n\ta rdf:Property ;\n\trdfs:label \"qualified value shapes disjoint\"@en ;\n\trdfs:comment \"Can be used to mark the qualified value shape to be disjoint with its sibling shapes.\"@en ;\n\trdfs:range xsd:boolean ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:UniqueLangConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Unique-languages Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to specify that no pair of value nodes may use the same language tag.\"@en ;\n\tsh:parameter sh:UniqueLangConstraintComponent-uniqueLang ;\n\trdfs:isDefinedBy sh: .\n\nsh:UniqueLangConstraintComponent-uniqueLang\n\ta sh:Parameter ;\n\tsh:path sh:uniqueLang ;\n\tsh:datatype xsd:boolean ;\n\tsh:maxCount 1 ;\n\trdfs:isDefinedBy sh: .\n\nsh:uniqueLang\n\ta rdf:Property ;\n\trdfs:label \"unique languages\"@en ;\n\trdfs:comment \"Specifies whether all node values must have a unique (or no) language tag.\"@en ;\n\trdfs:range xsd:boolean ;\n\trdfs:isDefinedBy sh: .\n\n\nsh:XoneConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Exactly one Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to restrict the value nodes so that they conform to exactly one out of several provided shapes.\"@en ;\n\tsh:parameter sh:XoneConstraintComponent-xone ;\n\trdfs:isDefinedBy sh: .\n\nsh:XoneConstraintComponent-xone\n\ta sh:Parameter ;\n\tsh:path sh:xone ;\n\trdfs:isDefinedBy sh: .\n\nsh:xone\n\ta rdf:Property ;\n\trdfs:label \"exactly one\"@en ;\n\trdfs:comment \"Specifies a list of shapes so that the value nodes must conform to exactly one of the shapes.\"@en ;\n\trdfs:range rdf:List ; # members: sh:Shape ;\n\trdfs:isDefinedBy sh: .\n\n\n# General SPARQL execution support --------------------------------------------\n\nsh:SPARQLExecutable\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL Executable\"@en ;\n\trdfs:comment \"The class of resources that encapsulate a SPARQL query.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLAskExecutable\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL ASK Executable\"@en ;\n\trdfs:comment \"The class of SPARQL executables that are based on an ASK query.\"@en ;\n\trdfs:subClassOf sh:SPARQLExecutable ;\n\trdfs:isDefinedBy sh: .\n\nsh:ask\n\ta rdf:Property ;\n\trdfs:label \"ask\"@en ;\n\trdfs:comment \"The SPARQL ASK query to execute.\"@en ;\n\trdfs:domain sh:SPARQLAskExecutable ;\n\trdfs:range xsd:string ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLConstructExecutable\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL CONSTRUCT Executable\"@en ;\n\trdfs:comment \"The class of SPARQL executables that are based on a CONSTRUCT query.\"@en ;\n\trdfs:subClassOf sh:SPARQLExecutable ;\n\trdfs:isDefinedBy sh: .\n\nsh:construct\n\ta rdf:Property ;\n\trdfs:label \"construct\"@en ;\n\trdfs:comment \"The SPARQL CONSTRUCT query to execute.\"@en ;\n\trdfs:domain sh:SPARQLConstructExecutable ;\n\trdfs:range xsd:string ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLSelectExecutable\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL SELECT Executable\"@en ;\n\trdfs:comment \"The class of SPARQL executables based on a SELECT query.\"@en ;\n\trdfs:subClassOf sh:SPARQLExecutable ;\n\trdfs:isDefinedBy sh: .\n\nsh:select\n\ta rdf:Property ;\n\trdfs:label \"select\"@en ;\n\trdfs:comment \"The SPARQL SELECT query to execute.\"@en ;\n\trdfs:range xsd:string ;\n\trdfs:domain sh:SPARQLSelectExecutable ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLUpdateExecutable\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL UPDATE Executable\"@en ;\n\trdfs:comment \"The class of SPARQL executables based on a SPARQL UPDATE.\"@en ;\n\trdfs:subClassOf sh:SPARQLExecutable ;\n\trdfs:isDefinedBy sh: .\n\nsh:update\n\ta rdf:Property ;\n\trdfs:label \"update\"@en ;\n\trdfs:comment \"The SPARQL UPDATE to execute.\"@en ;\n\trdfs:domain sh:SPARQLUpdateExecutable ;\n\trdfs:range xsd:string ;\n\trdfs:isDefinedBy sh: .\n\nsh:prefixes\n\ta rdf:Property ;\n\trdfs:label \"prefixes\"@en ;\n\trdfs:comment \"The prefixes that shall be applied before parsing the associated SPARQL query.\"@en ;\n\trdfs:domain sh:SPARQLExecutable ;\n\trdfs:range owl:Ontology ;\n\trdfs:isDefinedBy sh: .\n\nsh:PrefixDeclaration\n\ta rdfs:Class ;\n\trdfs:label \"Prefix Declaration\"@en ;\n\trdfs:comment \"The class of prefix declarations, consisting of pairs of a prefix with a namespace.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:declare\n\ta rdf:Property ;\n\trdfs:label \"declare\"@en ;\n\trdfs:comment \"Links a resource with its namespace prefix declarations.\"@en ;\n\trdfs:domain owl:Ontology ;\n\trdfs:range sh:PrefixDeclaration ;\n\trdfs:isDefinedBy sh: .\n\nsh:prefix\n\ta rdf:Property ;\n\trdfs:label \"prefix\"@en ;\n\trdfs:comment \"The prefix of a prefix declaration.\"@en ;\n\trdfs:domain sh:PrefixDeclaration ;\n\trdfs:range xsd:string ;\n\trdfs:isDefinedBy sh: .\n\nsh:namespace\n\ta rdf:Property ;\n\trdfs:label \"namespace\"@en ;\n\trdfs:comment \"The namespace associated with a prefix in a prefix declaration.\"@en ;\n\trdfs:domain sh:PrefixDeclaration ;\n\trdfs:range xsd:anyURI ;\n\trdfs:isDefinedBy sh: .\n\t\n\n# SPARQL-based Constraints support --------------------------------------------\n\nsh:SPARQLConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"SPARQL Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to define constraints based on SPARQL queries.\"@en ;\n\tsh:parameter sh:SPARQLConstraintComponent-sparql ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLConstraintComponent-sparql\n\ta sh:Parameter ;\n\tsh:path sh:sparql ;\n\trdfs:isDefinedBy sh: .\n\nsh:sparql\n\ta rdf:Property ;\n\trdfs:label \"constraint (in SPARQL)\"@en ;\n\trdfs:comment \"Links a shape with SPARQL constraints.\"@en ;\n\trdfs:domain sh:Shape ;\n\trdfs:range sh:SPARQLConstraint ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLConstraint\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL Constraint\"@en ;\n\trdfs:comment \"The class of constraints based on SPARQL SELECT queries.\"@en ;\n\trdfs:subClassOf sh:SPARQLSelectExecutable ;\n\trdfs:isDefinedBy sh: .\n\n\n# Non-validating constraint properties ----------------------------------------\n\nsh:defaultValue\n\ta rdf:Property ;\n\trdfs:label \"default value\"@en ;\n\trdfs:comment \"A default value for a property, for example for user interface tools to pre-populate input fields.\"@en ;\n\trdfs:domain sh:PropertyShape ;\n\trdfs:isDefinedBy sh: .\n\nsh:description\n\ta rdf:Property ;\n\trdfs:label \"description\"@en ;\n\trdfs:comment \"Human-readable descriptions for the property in the context of the surrounding shape.\"@en ;\n\trdfs:domain sh:PropertyShape ;\n\t# range: xsd:string or rdf:langString\n\trdfs:isDefinedBy sh: .\n\nsh:group\n\ta rdf:Property ;\n\trdfs:label \"group\"@en ;\n\trdfs:comment \"Can be used to link to a property group to indicate that a property shape belongs to a group of related property shapes.\"@en ;\n\trdfs:domain sh:PropertyShape ;\n\trdfs:range sh:PropertyGroup ;\n\trdfs:isDefinedBy sh: .\n\nsh:name\n\ta rdf:Property ;\n\trdfs:label \"name\"@en ;\n\trdfs:comment \"Human-readable labels for the property in the context of the surrounding shape.\"@en ;\n\trdfs:domain sh:PropertyShape ;\n\t# range: xsd:string or rdf:langString\n\trdfs:isDefinedBy sh: .\n\nsh:order\n\ta rdf:Property ;\n\trdfs:label \"order\"@en ;\n\trdfs:comment \"Specifies the relative order of this compared to its siblings. For example use 0 for the first, 1 for the second.\"@en ;\n\t# range: xsd:decimal or xsd:integer ;\n\trdfs:isDefinedBy sh: .\n\nsh:PropertyGroup\n\ta rdfs:Class ;\n\trdfs:label \"Property Group\"@en ;\n\trdfs:comment \"Instances of this class represent groups of property shapes that belong together.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\n\n# -----------------------------------------------------------------------------\n# SHACL ADVANCED FEATURES -----------------------------------------------------\n# -----------------------------------------------------------------------------\n\t\n\n# Advanced Target vocabulary --------------------------------------------------\n\nsh:target\n\ta rdf:Property ;\n\trdfs:label \"target\"@en ;\n\trdfs:comment \"Links a shape to a target specified by an extension language, for example instances of sh:SPARQLTarget.\"@en ;\n\trdfs:domain sh:Shape ;\n\trdfs:range sh:Target ;\n\trdfs:isDefinedBy sh: .\n\nsh:Target\n\ta rdfs:Class ;\n\trdfs:label \"Target\"@en ;\n\trdfs:comment \"The base class of targets such as those based on SPARQL queries.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:TargetType\n\ta rdfs:Class ;\n\trdfs:label \"Target Type\"@en ;\n\trdfs:comment \"The (meta) class for parameterizable targets.\tInstances of this are instantiated as values of the sh:target property.\"@en ;\n\trdfs:subClassOf rdfs:Class ;\n\trdfs:subClassOf sh:Parameterizable ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLTarget\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL Target\"@en ;\n\trdfs:comment \"The class of targets that are based on SPARQL queries.\"@en ;\n\trdfs:subClassOf sh:Target ;\n\trdfs:subClassOf sh:SPARQLAskExecutable ;\n\trdfs:subClassOf sh:SPARQLSelectExecutable ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLTargetType\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL Target Type\"@en ;\n\trdfs:comment \"The (meta) class for parameterizable targets that are based on SPARQL queries.\"@en ;\n\trdfs:subClassOf sh:TargetType ;\n\trdfs:subClassOf sh:SPARQLAskExecutable ;\n\trdfs:subClassOf sh:SPARQLSelectExecutable ;\n\trdfs:isDefinedBy sh: .\n\n\n# Functions Vocabulary --------------------------------------------------------\n\nsh:Function\n\ta rdfs:Class ;\n\trdfs:label \"Function\"@en ;\n\trdfs:comment \"The class of SHACL functions.\"@en ;\n\trdfs:subClassOf sh:Parameterizable ;\n\trdfs:isDefinedBy sh: .\n\nsh:returnType\n\ta rdf:Property ;\n\trdfs:label \"return type\"@en ;\n\trdfs:comment \"The expected type of values returned by the associated function.\"@en ;\n\trdfs:domain sh:Function ;\n\trdfs:range rdfs:Class ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLFunction\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL Function\"@en ;\n\trdfs:comment \"A function backed by a SPARQL query - either ASK or SELECT.\"@en ;\n\trdfs:subClassOf sh:Function ;\n\trdfs:subClassOf sh:SPARQLAskExecutable ;\n\trdfs:subClassOf sh:SPARQLSelectExecutable ;\n\trdfs:isDefinedBy sh: .\n\n\n# Result Annotations ----------------------------------------------------------\n\nsh:resultAnnotation\n\ta rdf:Property ;\n\trdfs:label \"result annotation\"@en ;\n\trdfs:comment \"Links a SPARQL validator with zero or more sh:ResultAnnotation instances, defining how to derive additional result properties based on the variables of the SELECT query.\"@en ;\n\trdfs:domain sh:SPARQLSelectValidator ;\n\trdfs:range sh:ResultAnnotation ;\n\trdfs:isDefinedBy sh: .\n\nsh:ResultAnnotation\n\ta rdfs:Class ;\n\trdfs:label \"Result Annotation\"@en ;\n\trdfs:comment \"A class of result annotations, which define the rules to derive the values of a given annotation property as extra values for a validation result.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:annotationProperty\n\ta rdf:Property ;\n\trdfs:label \"annotation property\"@en ;\n\trdfs:comment \"The annotation property that shall be set.\"@en ;\n\trdfs:domain sh:ResultAnnotation ;\n\trdfs:range rdf:Property ;\n\trdfs:isDefinedBy sh: .\n\nsh:annotationValue\n\ta rdf:Property ;\n\trdfs:label \"annotation value\"@en ;\n\trdfs:comment \"The (default) values of the annotation property.\"@en ;\n\trdfs:domain sh:ResultAnnotation ;\n\trdfs:isDefinedBy sh: .\n\nsh:annotationVarName\n\ta rdf:Property ;\n\trdfs:label \"annotation variable name\"@en ;\n\trdfs:comment \"The name of the SPARQL variable from the SELECT clause that shall be used for the values.\"@en ;\n\trdfs:domain sh:ResultAnnotation ;\n\trdfs:range xsd:string ;\n\trdfs:isDefinedBy sh: .\n\n\t\n# Node Expressions ------------------------------------------------------------\n\nsh:this\n\ta rdfs:Resource ;\n\trdfs:label \"this\"@en ;\n\trdfs:comment \"A node expression that represents the current focus node.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:filterShape\n\ta rdf:Property ;\n\trdfs:label \"filter shape\"@en ;\n\trdfs:comment \"The shape that all input nodes of the expression need to conform to.\"@en ;\n\trdfs:range sh:Shape ;\n\trdfs:isDefinedBy sh: .\n\nsh:nodes\n\ta rdf:Property ;\n\trdfs:label \"nodes\"@en ;\n\trdfs:comment \"The node expression producing the input nodes of a filter shape expression.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:intersection\n\ta rdf:Property ;\n\trdfs:label \"intersection\"@en ;\n\trdfs:comment \"A list of node expressions that shall be intersected.\"@en ;\n\trdfs:isDefinedBy sh: .\n\nsh:union\n\ta rdf:Property ;\n\trdfs:label \"union\"@en ;\n\trdfs:comment \"A list of node expressions that shall be used together.\"@en ;\n\trdfs:isDefinedBy sh: .\n\n\n# Expression Constraints ------------------------------------------------------\n\nsh:ExpressionConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"Expression Constraint Component\"@en ;\n\trdfs:comment \"A constraint component that can be used to verify that a given node expression produces true for all value nodes.\"@en ;\n\tsh:parameter sh:ExpressionConstraintComponent-expression ;\n\trdfs:isDefinedBy sh: .\n\nsh:ExpressionConstraintComponent-expression\n\ta sh:Parameter ;\n\tsh:path sh:expression ;\n\trdfs:isDefinedBy sh: .\n\nsh:expression\n\ta rdf:Property ;\n\trdfs:label \"expression\"@en ;\n\trdfs:comment \"The node expression that must return true for the value nodes.\"@en ;\n\trdfs:isDefinedBy sh: .\n\n\n# Rules -----------------------------------------------------------------------\n\nsh:Rule\n\ta rdfs:Class ;\n\trdfs:label \"Rule\"@en ;\n\trdfs:comment \"The class of SHACL rules. Never instantiated directly.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:rule\n\ta rdf:Property ;\n\trdfs:label \"rule\"@en ;\n\trdfs:comment \"The rules linked to a shape.\"@en ;\n\trdfs:domain sh:Shape ;\n\trdfs:range sh:Rule ;\n\trdfs:isDefinedBy sh: .\n\nsh:condition\n\ta rdf:Property ;\n\trdfs:label \"condition\"@en ;\n\trdfs:comment \"The shapes that the focus nodes need to conform to before a rule is executed on them.\"@en ;\n\trdfs:domain sh:Rule ;\n\trdfs:range sh:Shape ;\n\trdfs:isDefinedBy sh: .\n\nsh:TripleRule\n\ta rdfs:Class ;\n\trdfs:label \"Triple Rule\"@en ;\n\trdfs:comment \"A rule based on triple (subject, predicate, object) pattern.\"@en ;\n\trdfs:subClassOf sh:Rule ;\n\trdfs:isDefinedBy sh: .\n\nsh:subject\n\ta rdf:Property ;\n\trdfs:label \"subject\"@en ;\n\trdfs:comment \"An expression producing the resources that shall be inferred as subjects.\"@en ;\n\trdfs:domain sh:TripleRule ;\n\trdfs:isDefinedBy sh: .\n\nsh:predicate\n\ta rdf:Property ;\n\trdfs:label \"predicate\"@en ;\n\trdfs:comment \"An expression producing the properties that shall be inferred as predicates.\"@en ;\n\trdfs:domain sh:TripleRule ;\n\trdfs:isDefinedBy sh: .\n\nsh:object\n\ta rdf:Property ;\n\trdfs:label \"object\"@en ;\n\trdfs:comment \"An expression producing the nodes that shall be inferred as objects.\"@en ;\n\trdfs:domain sh:TripleRule ;\n\trdfs:isDefinedBy sh: .\n\nsh:SPARQLRule\n\ta rdfs:Class ;\n\trdfs:label \"SPARQL CONSTRUCT Rule\"@en ;\n\trdfs:comment \"The class of SHACL rules based on SPARQL CONSTRUCT queries.\"@en ;\n\trdfs:subClassOf sh:Rule ;\n\trdfs:subClassOf sh:SPARQLConstructExecutable ;\n\trdfs:isDefinedBy sh: .\n\n\n# SHACL-JS --------------------------------------------------------------------\n\nsh:JSExecutable\n\ta rdfs:Class ;\n\trdfs:label \"JavaScript Executable\"@en ;\n\trdfs:comment \"Abstract base class of resources that declare an executable JavaScript.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:JSTarget\n\ta rdfs:Class ;\n\trdfs:label \"JavaScript Target\"@en ;\n\trdfs:comment \"The class of targets that are based on JavaScript functions.\"@en ;\n\trdfs:subClassOf sh:Target ;\n\trdfs:subClassOf sh:JSExecutable ;\n\trdfs:isDefinedBy sh: .\n\nsh:JSTargetType\n\ta rdfs:Class ;\n\trdfs:label \"JavaScript Target Type\"@en ;\n\trdfs:comment \"The (meta) class for parameterizable targets that are based on JavaScript functions.\"@en ;\n\trdfs:subClassOf sh:TargetType ;\n\trdfs:subClassOf sh:JSExecutable ;\n\trdfs:isDefinedBy sh: .\n\nsh:JSConstraint\n\ta rdfs:Class ;\n\trdfs:label \"JavaScript Constraint\"@en ;\n\trdfs:comment \"The class of constraints backed by a JavaScript function.\"@en ;\n\trdfs:subClassOf sh:JSExecutable ;\n\trdfs:isDefinedBy sh: .\n\t\nsh:JSConstraintComponent\n\ta sh:ConstraintComponent ;\n\trdfs:label \"JavaScript Constraint Component\"@en ;\n\trdfs:comment \"A constraint component with the parameter sh:js linking to a sh:JSConstraint containing a sh:script.\"@en ;\n \tsh:parameter sh:JSConstraint-js ;\n\trdfs:isDefinedBy sh: .\n \nsh:JSConstraint-js\n\ta sh:Parameter ;\n\tsh:path sh:js ;\n\trdfs:isDefinedBy sh: .\n\t\nsh:js\n\ta rdf:Property ;\n\trdfs:label \"JavaScript constraint\"@en ;\n\trdfs:comment \"Constraints expressed in JavaScript.\" ;\n \trdfs:range sh:JSConstraint ;\n\trdfs:isDefinedBy sh: .\n\nsh:jsFunctionName\n\ta rdf:Property ;\n\trdfs:label \"JavaScript function name\"@en ;\n\trdfs:comment \"The name of the JavaScript function to execute.\"@en ;\n\trdfs:domain sh:JSExecutable ;\n\trdfs:range xsd:string ;\n\trdfs:isDefinedBy sh: .\n\nsh:jsLibrary\n\ta rdf:Property ;\n\trdfs:label \"JavaScript library\"@en ;\n \trdfs:comment \"Declares which JavaScript libraries are needed to execute this.\"@en ;\n\trdfs:range sh:JSLibrary ;\n\trdfs:isDefinedBy sh: .\n\nsh:jsLibraryURL\n\ta rdf:Property ;\n\trdfs:label \"JavaScript library URL\"@en ;\n\trdfs:comment \"Declares the URLs of a JavaScript library. This should be the absolute URL of a JavaScript file. Implementations may redirect those to local files.\"@en ;\n\trdfs:domain sh:JSLibrary ;\n\trdfs:range xsd:anyURI ;\n\trdfs:isDefinedBy sh: .\n\t\nsh:JSFunction\n\ta rdfs:Class ;\n \trdfs:label \"JavaScript Function\"@en ;\n\trdfs:comment \"The class of SHACL functions that execute a JavaScript function when called.\"@en ;\n\trdfs:subClassOf sh:Function ;\n\trdfs:subClassOf sh:JSExecutable ;\n\trdfs:isDefinedBy sh: .\n\nsh:JSLibrary\n\ta rdfs:Class ;\n\trdfs:label \"JavaScript Library\"@en ;\n\trdfs:comment \"Represents a JavaScript library, typically identified by one or more URLs of files to include.\"@en ;\n\trdfs:subClassOf rdfs:Resource ;\n\trdfs:isDefinedBy sh: .\n\nsh:JSRule\n\ta rdfs:Class ;\n\trdfs:label \"JavaScript Rule\"@en ;\n\trdfs:comment \"The class of SHACL rules expressed using JavaScript.\"@en ;\n\trdfs:subClassOf sh:JSExecutable ;\n\trdfs:subClassOf sh:Rule ;\n\trdfs:isDefinedBy sh: .\n\nsh:JSValidator\n\ta rdfs:Class ;\n \trdfs:label \"JavaScript Validator\"@en ;\n\trdfs:comment \"A SHACL validator based on JavaScript. This can be used to declare SHACL constraint components that perform JavaScript-based validation when used.\"@en ;\n \trdfs:subClassOf sh:JSExecutable ;\n \trdfs:subClassOf sh:Validator ;\n \trdfs:isDefinedBy sh: .\n`;\nexports.skos_xl = `@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n@prefix dct: <http://purl.org/dc/terms/> .\n@prefix owl: <http://www.w3.org/2002/07/owl#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n@prefix skos: <http://www.w3.org/2004/02/skos/core#> .\n\n<http://www.w3.org/2008/05/skos-xl> a owl:Ontology ;\n\tdct:creator \"Alistair Miles\" , \"Sean Bechhofer\" ;\n\trdfs:seeAlso <http://www.w3.org/2008/05/skos> ;\n\towl:imports <http://www.w3.org/2004/02/skos/core> ;\n\tdct:title \"SKOS XL Vocabulary\"@en ;\n\tdct:contributor \"Participants in W3C's Semantic Web Deployment Working Group.\" ;\n\tdct:description \"An RDF vocabulary extending SKOS and allowing the description and linking of lexical entities.\"@en .\n\n<http://www.w3.org/2008/05/skos-xl#Label> rdfs:label \"Label\"@en ;\n\trdfs:isDefinedBy <http://www.w3.org/2008/05/skos-xl> ;\n\tskos:definition \"A special class of lexical entities.\"@en ;\n\ta owl:Class ;\n\towl:disjointWith skos:Concept , skos:Collection , skos:ConceptScheme ;\n\trdfs:subClassOf _:node17168m7qhx2 .\n\n_:node17168m7qhx2 a owl:Restriction ;\n\towl:onProperty <http://www.w3.org/2008/05/skos-xl#literalForm> ;\n\towl:cardinality \"1\"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger> .\n\n<http://www.w3.org/2008/05/skos-xl#literalForm> rdfs:label \"literal form\"@en ;\n\trdfs:isDefinedBy <http://www.w3.org/2008/05/skos-xl> ;\n\tskos:definition \"The property skosxl:literalForm is used to give the literal form of an skosxl:Label.\"@en ;\n\trdfs:comment \"If two instances of the class skosxl:Label have the same literal form, they are not necessarily the same resource.\"@en ;\n\ta owl:DatatypeProperty ;\n\trdfs:domain <http://www.w3.org/2008/05/skos-xl#Label> ;\n\trdfs:comment \"The range of skosxl:literalForm is the class of RDF plain literals.\"@en ;\n\ta rdf:Property .\n\n<http://www.w3.org/2008/05/skos-xl#prefLabel> rdfs:label \"preferred label\"@en ;\n\trdfs:isDefinedBy <http://www.w3.org/2008/05/skos-xl> ;\n\tskos:definition \"The property skosxl:prefLabel is used to associate an skosxl:Label with a skos:Concept. The property is analogous to skos:prefLabel.\"@en ;\n\trdfs:seeAlso skos:prefLabel ;\n\ta owl:ObjectProperty ;\n\trdfs:range <http://www.w3.org/2008/05/skos-xl#Label> ;\n\trdfs:comment \"If C skosxl:prefLabel L and L skosxl:literalForm V, then X skos:prefLabel V.\"@en ;\n\ta rdf:Property .\n\n<http://www.w3.org/2008/05/skos-xl#altLabel> rdfs:label \"alternative label\"@en ;\n\trdfs:isDefinedBy <http://www.w3.org/2008/05/skos-xl> ;\n\tskos:definition \"The property skosxl:altLabel is used to associate an skosxl:Label with a skos:Concept. The property is analogous to skos:altLabel.\"@en ;\n\trdfs:seeAlso skos:altLabel ;\n\ta owl:ObjectProperty ;\n\trdfs:range <http://www.w3.org/2008/05/skos-xl#Label> ;\n\trdfs:comment \"If C skosxl:altLabel L and L skosxl:literalForm V, then X skos:altLabel V.\"@en ;\n\ta rdf:Property .\n\n<http://www.w3.org/2008/05/skos-xl#hiddenLabel> rdfs:label \"hidden label\"@en ;\n\trdfs:isDefinedBy <http://www.w3.org/2008/05/skos-xl> ;\n\tskos:definition \"The property skosxl:hiddenLabel is used to associate an skosxl:Label with a skos:Concept. The property is analogous to skos:hiddenLabel.\"@en ;\n\trdfs:seeAlso skos:hiddenLabel ;\n\ta owl:ObjectProperty ;\n\trdfs:range <http://www.w3.org/2008/05/skos-xl#Label> ;\n\trdfs:comment \"If C skosxl:hiddenLabel L and L skosxl:literalForm V, then C skos:hiddenLabel V.\"@en ;\n\ta rdf:Property .\n\n<http://www.w3.org/2008/05/skos-xl#labelRelation> rdfs:label \"label relation\"@en ;\n\trdfs:isDefinedBy <http://www.w3.org/2008/05/skos-xl> ;\n\tskos:definition \"The property skosxl:labelRelation is used for representing binary ('direct') relations between instances of the class skosxl:Label.\"@en ;\n\tskos:scopeNote \"skosxl:labelRelation is not intended to be used directly, but rather as the basis for a design pattern which can be refined for more specific labeling scenarios.\"@en ;\n\ta owl:ObjectProperty ;\n\trdfs:domain <http://www.w3.org/2008/05/skos-xl#Label> ;\n\trdfs:range <http://www.w3.org/2008/05/skos-xl#Label> ;\n\ta owl:SymmetricProperty , rdf:Property .\n`;\nexports.skos = `@prefix owl: <http://www.w3.org/2002/07/owl#> .\n@prefix dc: <http://purl.org/dc/terms/> .\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n@prefix skos: <http://www.w3.org/2004/02/skos/core#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n\n<http://www.w3.org/2004/02/skos/core>\n a owl:Ontology ;\n dc:title \"SKOS Vocabulary\"@en ;\n dc:contributor \"Dave Beckett\", \"Nikki Rogers\", \"Participants in W3C's Semantic Web Deployment Working Group.\" ;\n dc:description \"An RDF vocabulary for describing the basic structure and content of concept schemes such as thesauri, classification schemes, subject heading lists, taxonomies, 'folksonomies', other types of controlled vocabulary, and also concept schemes embedded in glossaries and terminologies.\"@en ;\n dc:creator \"Alistair Miles\", \"Sean Bechhofer\" ;\n rdfs:seeAlso <http://www.w3.org/TR/skos-reference/> .\n\nskos:Concept\n rdfs:label \"Concept\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"An idea or notion; a unit of thought.\"@en ;\n a owl:Class .\n\nskos:ConceptScheme\n rdfs:label \"Concept Scheme\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"A set of concepts, optionally including statements about semantic relationships between those concepts.\"@en ;\n skos:scopeNote \"A concept scheme may be defined to include concepts from different sources.\"@en ;\n skos:example \"Thesauri, classification schemes, subject heading lists, taxonomies, 'folksonomies', and other types of controlled vocabulary are all examples of concept schemes. Concept schemes are also embedded in glossaries and terminologies.\"@en ;\n a owl:Class ;\n owl:disjointWith skos:Concept .\n\nskos:Collection\n rdfs:label \"Collection\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"A meaningful collection of concepts.\"@en ;\n skos:scopeNote \"Labelled collections can be used where you would like a set of concepts to be displayed under a 'node label' in the hierarchy.\"@en ;\n a owl:Class ;\n owl:disjointWith skos:Concept, skos:ConceptScheme .\n\nskos:OrderedCollection\n rdfs:label \"Ordered Collection\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"An ordered collection of concepts, where both the grouping and the ordering are meaningful.\"@en ;\n skos:scopeNote \"Ordered collections can be used where you would like a set of concepts to be displayed in a specific order, and optionally under a 'node label'.\"@en ;\n a owl:Class ;\n rdfs:subClassOf skos:Collection .\n\nskos:inScheme\n rdfs:label \"is in scheme\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"Relates a resource (for example a concept) to a concept scheme in which it is included.\"@en ;\n skos:scopeNote \"A concept may be a member of more than one concept scheme.\"@en ;\n a owl:ObjectProperty, rdf:Property ;\n rdfs:range skos:ConceptScheme .\n\nskos:hasTopConcept\n rdfs:label \"has top concept\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"Relates, by convention, a concept scheme to a concept which is topmost in the broader/narrower concept hierarchies for that scheme, providing an entry point to these hierarchies.\"@en ;\n a owl:ObjectProperty, rdf:Property ;\n rdfs:domain skos:ConceptScheme ;\n rdfs:range skos:Concept ;\n owl:inverseOf skos:topConceptOf .\n\nskos:topConceptOf\n rdfs:label \"is top concept in scheme\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"Relates a concept to the concept scheme that it is a top level concept of.\"@en ;\n a owl:ObjectProperty, rdf:Property ;\n rdfs:subPropertyOf skos:inScheme ;\n owl:inverseOf skos:hasTopConcept ;\n rdfs:domain skos:Concept ;\n rdfs:range skos:ConceptScheme .\n\nskos:prefLabel\n rdfs:label \"preferred label\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"The preferred lexical label for a resource, in a given language.\"@en ;\n a owl:AnnotationProperty, rdf:Property ;\n rdfs:subPropertyOf rdfs:label ;\n rdfs:comment \"A resource has no more than one value of skos:prefLabel per language tag, and no more than one value of skos:prefLabel without language tag.\"@en, \"The range of skos:prefLabel is the class of RDF plain literals.\"@en, \"\"\"skos:prefLabel, skos:altLabel and skos:hiddenLabel are pairwise\n disjoint properties.\"\"\"@en .\n\nskos:altLabel\n rdfs:label \"alternative label\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"An alternative lexical label for a resource.\"@en ;\n skos:example \"Acronyms, abbreviations, spelling variants, and irregular plural/singular forms may be included among the alternative labels for a concept. Mis-spelled terms are normally included as hidden labels (see skos:hiddenLabel).\"@en ;\n a owl:AnnotationProperty, rdf:Property ;\n rdfs:subPropertyOf rdfs:label ;\n rdfs:comment \"The range of skos:altLabel is the class of RDF plain literals.\"@en, \"skos:prefLabel, skos:altLabel and skos:hiddenLabel are pairwise disjoint properties.\"@en .\n\nskos:hiddenLabel\n rdfs:label \"hidden label\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"A lexical label for a resource that should be hidden when generating visual displays of the resource, but should still be accessible to free text search operations.\"@en ;\n a owl:AnnotationProperty, rdf:Property ;\n rdfs:subPropertyOf rdfs:label ;\n rdfs:comment \"The range of skos:hiddenLabel is the class of RDF plain literals.\"@en, \"skos:prefLabel, skos:altLabel and skos:hiddenLabel are pairwise disjoint properties.\"@en .\n\nskos:notation\n rdfs:label \"notation\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"A notation, also known as classification code, is a string of characters such as 'T58.5' or '303.4833' used to uniquely identify a concept within the scope of a given concept scheme.\"@en ;\n skos:scopeNote \"By convention, skos:notation is used with a typed literal in the object position of the triple.\"@en ;\n a owl:DatatypeProperty, rdf:Property .\n\nskos:note\n rdfs:label \"note\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"A general note, for any purpose.\"@en ;\n skos:scopeNote \"This property may be used directly, or as a super-property for more specific note types.\"@en ;\n a owl:AnnotationProperty, rdf:Property .\n\nskos:changeNote\n rdfs:label \"change note\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"A note about a modification to a concept.\"@en ;\n a owl:AnnotationProperty, rdf:Property ;\n rdfs:subPropertyOf skos:note .\n\nskos:definition\n rdfs:label \"definition\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"A statement or formal explanation of the meaning of a concept.\"@en ;\n a owl:AnnotationProperty, rdf:Property ;\n rdfs:subPropertyOf skos:note .\n\nskos:editorialNote\n rdfs:label \"editorial note\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"A note for an editor, translator or maintainer of the vocabulary.\"@en ;\n a owl:AnnotationProperty, rdf:Property ;\n rdfs:subPropertyOf skos:note .\n\nskos:example\n rdfs:label \"example\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"An example of the use of a concept.\"@en ;\n a owl:AnnotationProperty, rdf:Property ;\n rdfs:subPropertyOf skos:note .\n\nskos:historyNote\n rdfs:label \"history note\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"A note about the past state/use/meaning of a concept.\"@en ;\n a owl:AnnotationProperty, rdf:Property ;\n rdfs:subPropertyOf skos:note .\n\nskos:scopeNote\n rdfs:label \"scope note\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"A note that helps to clarify the meaning and/or the use of a concept.\"@en ;\n a owl:AnnotationProperty, rdf:Property ;\n rdfs:subPropertyOf skos:note .\n\nskos:semanticRelation\n rdfs:label \"is in semantic relation with\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"Links a concept to a concept related by meaning.\"@en ;\n skos:scopeNote \"This property should not be used directly, but as a super-property for all properties denoting a relationship of meaning between concepts.\"@en ;\n a owl:ObjectProperty, rdf:Property ;\n rdfs:domain skos:Concept ;\n rdfs:range skos:Concept .\n\nskos:broader\n rdfs:label \"has broader\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"Relates a concept to a concept that is more general in meaning.\"@en ;\n rdfs:comment \"Broader concepts are typically rendered as parents in a concept hierarchy (tree).\"@en ;\n skos:scopeNote \"By convention, skos:broader is only used to assert an immediate (i.e. direct) hierarchical link between two conceptual resources.\"@en ;\n a owl:ObjectProperty, rdf:Property ;\n rdfs:subPropertyOf skos:broaderTransitive ;\n owl:inverseOf skos:narrower .\n\nskos:narrower\n rdfs:label \"has narrower\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"Relates a concept to a concept that is more specific in meaning.\"@en ;\n skos:scopeNote \"By convention, skos:broader is only used to assert an immediate (i.e. direct) hierarchical link between two conceptual resources.\"@en ;\n rdfs:comment \"Narrower concepts are typically rendered as children in a concept hierarchy (tree).\"@en ;\n a owl:ObjectProperty, rdf:Property ;\n rdfs:subPropertyOf skos:narrowerTransitive ;\n owl:inverseOf skos:broader .\n\nskos:related\n rdfs:label \"has related\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"Relates a concept to a concept with which there is an associative semantic relationship.\"@en ;\n a owl:ObjectProperty, owl:SymmetricProperty, rdf:Property ;\n rdfs:subPropertyOf skos:semanticRelation ;\n rdfs:comment \"skos:related is disjoint with skos:broaderTransitive\"@en .\n\nskos:broaderTransitive\n rdfs:label \"has broader transitive\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"skos:broaderTransitive is a transitive superproperty of skos:broader.\" ;\n skos:scopeNote \"By convention, skos:broaderTransitive is not used to make assertions. Rather, the properties can be used to draw inferences about the transitive closure of the hierarchical relation, which is useful e.g. when implementing a simple query expansion algorithm in a search application.\"@en ;\n a owl:ObjectProperty, owl:TransitiveProperty, rdf:Property ;\n rdfs:subPropertyOf skos:semanticRelation ;\n owl:inverseOf skos:narrowerTransitive .\n\nskos:narrowerTransitive\n rdfs:label \"has narrower transitive\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"skos:narrowerTransitive is a transitive superproperty of skos:narrower.\" ;\n skos:scopeNote \"By convention, skos:narrowerTransitive is not used to make assertions. Rather, the properties can be used to draw inferences about the transitive closure of the hierarchical relation, which is useful e.g. when implementing a simple query expansion algorithm in a search application.\"@en ;\n a owl:ObjectProperty, owl:TransitiveProperty, rdf:Property ;\n rdfs:subPropertyOf skos:semanticRelation ;\n owl:inverseOf skos:broaderTransitive .\n\nskos:member\n rdfs:label \"has member\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"Relates a collection to one of its members.\"@en ;\n a owl:ObjectProperty, rdf:Property ;\n rdfs:domain skos:Collection ;\n rdfs:range [\n a owl:Class ;\n owl:unionOf (\n skos:Concept\n skos:Collection\n )\n ] .\n\nskos:memberList\n rdfs:label \"has member list\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"Relates an ordered collection to the RDF list containing its members.\"@en ;\n a owl:ObjectProperty, owl:FunctionalProperty, rdf:Property ;\n rdfs:domain skos:OrderedCollection ;\n rdfs:range rdf:List ;\n rdfs:comment \"\"\"For any resource, every item in the list given as the value of the\n skos:memberList property is also a value of the skos:member property.\"\"\"@en .\n\nskos:mappingRelation\n rdfs:label \"is in mapping relation with\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"Relates two concepts coming, by convention, from different schemes, and that have comparable meanings\"@en ;\n rdfs:comment \"These concept mapping relations mirror semantic relations, and the data model defined below is similar (with the exception of skos:exactMatch) to the data model defined for semantic relations. A distinct vocabulary is provided for concept mapping relations, to provide a convenient way to differentiate links within a concept scheme from links between concept schemes. However, this pattern of usage is not a formal requirement of the SKOS data model, and relies on informal definitions of best practice.\"@en ;\n a owl:ObjectProperty, rdf:Property ;\n rdfs:subPropertyOf skos:semanticRelation .\n\nskos:broadMatch\n rdfs:label \"has broader match\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"skos:broadMatch is used to state a hierarchical mapping link between two conceptual resources in different concept schemes.\"@en ;\n a owl:ObjectProperty, rdf:Property ;\n rdfs:subPropertyOf skos:mappingRelation, skos:broader ;\n owl:inverseOf skos:narrowMatch .\n\nskos:narrowMatch\n rdfs:label \"has narrower match\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"skos:narrowMatch is used to state a hierarchical mapping link between two conceptual resources in different concept schemes.\"@en ;\n a owl:ObjectProperty, rdf:Property ;\n rdfs:subPropertyOf skos:mappingRelation, skos:narrower ;\n owl:inverseOf skos:broadMatch .\n\nskos:relatedMatch\n rdfs:label \"has related match\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"skos:relatedMatch is used to state an associative mapping link between two conceptual resources in different concept schemes.\"@en ;\n a owl:ObjectProperty, owl:SymmetricProperty, rdf:Property ;\n rdfs:subPropertyOf skos:mappingRelation, skos:related .\n\nskos:exactMatch\n rdfs:label \"has exact match\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"skos:exactMatch is used to link two concepts, indicating a high degree of confidence that the concepts can be used interchangeably across a wide range of information retrieval applications. skos:exactMatch is a transitive property, and is a sub-property of skos:closeMatch.\"@en ;\n a owl:ObjectProperty, owl:SymmetricProperty, owl:TransitiveProperty, rdf:Property ;\n rdfs:subPropertyOf skos:closeMatch ;\n rdfs:comment \"skos:exactMatch is disjoint with each of the properties skos:broadMatch and skos:relatedMatch.\"@en .\n\nskos:closeMatch\n rdfs:label \"has close match\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> ;\n skos:definition \"skos:closeMatch is used to link two concepts that are sufficiently similar that they can be used interchangeably in some information retrieval applications. In order to avoid the possibility of 'compound errors' when combining mappings across more than two concept schemes, skos:closeMatch is not declared to be a transitive property.\"@en ;\n a owl:ObjectProperty, owl:SymmetricProperty, rdf:Property ;\n rdfs:subPropertyOf skos:mappingRelation .`;\nexports.xsd = `@prefix owl: <http://www.w3.org/2002/07/owl#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .\n@prefix vann: <http://purl.org/vocab/vann/> .\n\nxsd: a owl:Ontology ;\n rdfs:label \"W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes\" ;\n rdfs:seeAlso <https://www.w3.org/TR/xmlschema11-2/#built-in-primitive-datatypes> .\n\nxsd:anyURI a rdfs:Datatype ;\n rdfs:comment \"anyURI represents an Internationalized Resource Identifier Reference (IRI). An anyURI value can be absolute or relative, and may have an optional fragment identifier (i.e., it may be an IRI Reference). This type should be used when the value fulfills the role of an IRI, as defined in [RFC 3987] or its successor(s) in the IETF Standards Track.\" .\n\nxsd:base64Binary a rdfs:Datatype ;\n rdfs:comment \"base64Binary represents arbitrary Base64-encoded binary data. For base64Binary data the entire binary stream is encoded using the Base64 Encoding defined in [RFC 3548], which is derived from the encoding described in [RFC 2045].\" .\n\nxsd:boolean a rdfs:Datatype ;\n rdfs:comment \"boolean represents the values of two-valued logic.\" .\n\nxsd:byte a rdfs:Datatype ;\n rdfs:comment \"byte is ·derived· from short by setting the value of ·maxInclusive· to be 127 and ·minInclusive· to be -128. The ·base type· of byte is short.\" .\n\nxsd:date a rdfs:Datatype ;\n rdfs:comment \"date represents top-open intervals of exactly one day in length on the timelines of dateTime, beginning on the beginning moment of each day, up to but not including the beginning moment of the next day). For non-timezoned values, the top-open intervals disjointly cover the non-timezoned timeline, one per day. For timezoned values, the intervals begin at every minute and therefore overlap.\" .\n\nxsd:dateTime a rdfs:Datatype ;\n rdfs:comment \"dateTime represents instants of time, optionally marked with a particular time zone offset. Values representing the same instant but having different time zone offsets are equal but not identical.\" .\n\nxsd:decimal a rdfs:Datatype ;\n rdfs:comment \"decimal represents a subset of the real numbers, which can be represented by decimal numerals. The ·value space· of decimal is the set of numbers that can be obtained by dividing an integer by a non-negative power of ten, i.e., expressible as i / 10n where i and n are integers and n ≥ 0. Precision is not reflected in this value space; the number 2.0 is not distinct from the number 2.00. The order relation on decimal is the order relation on real numbers, restricted to this subset.\" .\n\nxsd:double a rdfs:Datatype ;\n rdfs:comment \"The double datatype is patterned after the IEEE double-precision 64-bit floating point datatype [IEEE 754-2008]. Each floating point datatype has a value space that is a subset of the rational numbers. Floating point numbers are often used to approximate arbitrary real numbers.\" .\n\nxsd:duration a rdfs:Datatype ;\n rdfs:comment \"duration is a datatype that represents durations of time. The concept of duration being captured is drawn from those of [ISO 8601], specifically durations without fixed endpoints.\" .\n\nxsd:float a rdfs:Datatype ;\n rdfs:comment \"The float datatype is patterned after the IEEE single-precision 32-bit floating point datatype [IEEE 754-2008]. Its value space is a subset of the rational numbers. Floating point numbers are often used to approximate arbitrary real numbers.\" .\n\nxsd:int a rdfs:Datatype ;\n rdfs:comment \"int is ·derived· from long by setting the value of ·maxInclusive· to be 2147483647 and ·minInclusive· to be -2147483648. The ·base type· of int is long.\" .\n\nxsd:integer a rdfs:Datatype ;\n rdfs:comment \"integer is ·derived· from decimal by fixing the value of ·fractionDigits· to be 0 and disallowing the trailing decimal point. This results in the standard mathematical concept of the integer numbers. The ·value space· of integer is the infinite set {...,-2,-1,0,1,2,...}. The ·base type· of integer is decimal.\" .\n\nxsd:long a rdfs:Datatype ;\n rdfs:comment \"long is ·derived· from integer by setting the value of ·maxInclusive· to be 9223372036854775807 and ·minInclusive· to be -9223372036854775808. The ·base type· of long is integer.\" .\n\nxsd:negativeInteger a rdfs:Datatype ;\n rdfs:comment \"negativeInteger is ·derived· from nonPositiveInteger by setting the value of ·maxInclusive· to be -1. This results in the standard mathematical concept of the negative integers. The ·value space· of negativeInteger is the infinite set {...,-2,-1}. The ·base type· of negativeInteger is nonPositiveInteger.\" .\n\nxsd:nonNegativeInteger a rdfs:Datatype .\n\nxsd:nonPositiveInteger a rdfs:Datatype ;\n rdfs:comment \"nonPositiveInteger is ·derived· from integer by setting the value of ·maxInclusive· to be 0. This results in the standard mathematical concept of the non-positive integers. The ·value space· of nonPositiveInteger is the infinite set {...,-2,-1,0}. The ·base type· of nonPositiveInteger is integer.\" .\n\nxsd:positiveInteger a rdfs:Datatype ;\n rdfs:comment \"nonNegativeInteger is ·derived· from integer by setting the value of ·minInclusive· to be 0. This results in the standard mathematical concept of the non-negative integers. The ·value space· of nonNegativeInteger is the infinite set {0,1,2,...}. The ·base type· of nonNegativeInteger is integer.\" .\n\nxsd:short a rdfs:Datatype ;\n rdfs:comment \"short is ·derived· from int by setting the value of ·maxInclusive· to be 32767 and ·minInclusive· to be -32768. The ·base type· of short is int.\" .\n\nxsd:string a rdfs:Datatype ;\n rdfs:comment \"The string datatype represents character strings in XML.\" .\n\nxsd:time a rdfs:Datatype ;\n rdfs:comment \"time represents instants of time that recur at the same point in each calendar day, or that occur in some arbitrary calendar day.\" .\n\nxsd:unsignedInt a rdfs:Datatype ;\n rdfs:comment \"unsignedInt is ·derived· from unsignedLong by setting the value of ·maxInclusive· to be 4294967295. The ·base type· of unsignedInt is unsignedLong.\" .\n\nxsd:unsignedShort a rdfs:Datatype ;\n rdfs:comment \"unsignedShort is ·derived· from unsignedInt by setting the value of ·maxInclusive· to be 65535. The ·base type· of unsignedShort is unsignedInt.\" .\n\nxsd:unsingedLong a rdfs:Datatype ;\n rdfs:comment \"unsignedLong is ·derived· from nonNegativeInteger by setting the value of ·maxInclusive· to be 18446744073709551615. The ·base type· of unsignedLong is nonNegativeInteger.\" .\n\nxsd:usignedByte a rdfs:Datatype ;\n rdfs:comment \"unsignedByte is ·derived· from unsignedShort by setting the value of ·maxInclusive· to be 255. The ·base type· of unsignedByte is unsignedShort.\" .`;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/ontologies/src.ts?");
|
|
834
1176
|
|
|
835
1177
|
/***/ }),
|
|
836
1178
|
|
|
@@ -841,7 +1183,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
841
1183
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
842
1184
|
|
|
843
1185
|
"use strict";
|
|
844
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.xsd = exports._xsd = exports.XSD = exports._XSD = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\n/** Namespace URI of the XSD vocabulary. */\nexports._XSD = 'http://www.w3.org/2001/XMLSchema#';\nexports.XSD = {\n /** anyURI represents an Internationalized Resource Identifier Reference (IRI). An anyURI value can be absolute or relative, and may have an optional fragment identifier (i.e., it may be an IRI Reference). This type should be used when the value fulfills the role of an IRI, as defined in [RFC 3987] or its successor(s) in the IETF Standards Track. */\n 'anyURI': 'http://www.w3.org/2001/XMLSchema#anyURI',\n /** base64Binary represents arbitrary Base64-encoded binary data. For base64Binary data the entire binary stream is encoded using the Base64 Encoding defined in [RFC 3548], which is derived from the encoding described in [RFC 2045]. */\n 'base64Binary': 'http://www.w3.org/2001/XMLSchema#base64Binary',\n /** boolean represents the values of two-valued logic. */\n 'boolean': 'http://www.w3.org/2001/XMLSchema#boolean',\n /** byte is ·derived· from short by setting the value of ·maxInclusive· to be 127 and ·minInclusive· to be -128. The ·base type· of byte is short. */\n 'byte': 'http://www.w3.org/2001/XMLSchema#byte',\n /** date represents top-open intervals of exactly one day in length on the timelines of dateTime, beginning on the beginning moment of each day, up to but not including the beginning moment of the next day). For non-timezoned values, the top-open intervals disjointly cover the non-timezoned timeline, one per day. For timezoned values, the intervals begin at every minute and therefore overlap. */\n 'date': 'http://www.w3.org/2001/XMLSchema#date',\n /** dateTime represents instants of time, optionally marked with a particular time zone offset. Values representing the same instant but having different time zone offsets are equal but not identical. */\n 'dateTime': 'http://www.w3.org/2001/XMLSchema#dateTime',\n /** decimal represents a subset of the real numbers, which can be represented by decimal numerals. The ·value space· of decimal is the set of numbers that can be obtained by dividing an integer by a non-negative power of ten, i.e., expressible as i / 10n where i and n are integers and n ≥ 0. Precision is not reflected in this value space; the number 2.0 is not distinct from the number 2.00. The order relation on decimal is the order relation on real numbers, restricted to this subset. */\n 'decimal': 'http://www.w3.org/2001/XMLSchema#decimal',\n /** The double datatype is patterned after the IEEE double-precision 64-bit floating point datatype [IEEE 754-2008]. Each floating point datatype has a value space that is a subset of the rational numbers. Floating point numbers are often used to approximate arbitrary real numbers. */\n 'double': 'http://www.w3.org/2001/XMLSchema#double',\n /** duration is a datatype that represents durations of time. The concept of duration being captured is drawn from those of [ISO 8601], specifically durations without fixed endpoints. */\n 'duration': 'http://www.w3.org/2001/XMLSchema#duration',\n /** The float datatype is patterned after the IEEE single-precision 32-bit floating point datatype [IEEE 754-2008]. Its value space is a subset of the rational numbers. Floating point numbers are often used to approximate arbitrary real numbers. */\n 'float': 'http://www.w3.org/2001/XMLSchema#float',\n /** int is ·derived· from long by setting the value of ·maxInclusive· to be 2147483647 and ·minInclusive· to be -2147483648. The ·base type· of int is long. */\n 'int': 'http://www.w3.org/2001/XMLSchema#int',\n /** integer is ·derived· from decimal by fixing the value of ·fractionDigits· to be 0 and disallowing the trailing decimal point. This results in the standard mathematical concept of the integer numbers. The ·value space· of integer is the infinite set {...,-2,-1,0,1,2,...}. The ·base type· of integer is decimal. */\n 'integer': 'http://www.w3.org/2001/XMLSchema#integer',\n /** long is ·derived· from integer by setting the value of ·maxInclusive· to be 9223372036854775807 and ·minInclusive· to be -9223372036854775808. The ·base type· of long is integer. */\n 'long': 'http://www.w3.org/2001/XMLSchema#long',\n /** negativeInteger is ·derived· from nonPositiveInteger by setting the value of ·maxInclusive· to be -1. This results in the standard mathematical concept of the negative integers. The ·value space· of negativeInteger is the infinite set {...,-2,-1}. The ·base type· of negativeInteger is nonPositiveInteger. */\n 'negativeInteger': 'http://www.w3.org/2001/XMLSchema#negativeInteger',\n 'nonNegativeInteger': 'http://www.w3.org/2001/XMLSchema#nonNegativeInteger',\n /** nonPositiveInteger is ·derived· from integer by setting the value of ·maxInclusive· to be 0. This results in the standard mathematical concept of the non-positive integers. The ·value space· of nonPositiveInteger is the infinite set {...,-2,-1,0}. The ·base type· of nonPositiveInteger is integer. */\n 'nonPositiveInteger': 'http://www.w3.org/2001/XMLSchema#nonPositiveInteger',\n /** nonNegativeInteger is ·derived· from integer by setting the value of ·minInclusive· to be 0. This results in the standard mathematical concept of the non-negative integers. The ·value space· of nonNegativeInteger is the infinite set {0,1,2,...}. The ·base type· of nonNegativeInteger is integer. */\n 'positiveInteger': 'http://www.w3.org/2001/XMLSchema#positiveInteger',\n /** short is ·derived· from int by setting the value of ·maxInclusive· to be 32767 and ·minInclusive· to be -32768. The ·base type· of short is int. */\n 'short': 'http://www.w3.org/2001/XMLSchema#short',\n /** The string datatype represents character strings in XML. */\n 'string': 'http://www.w3.org/2001/XMLSchema#string',\n /** time represents instants of time that recur at the same point in each calendar day, or that occur in some arbitrary calendar day. */\n 'time': 'http://www.w3.org/2001/XMLSchema#time',\n /** unsignedInt is ·derived· from unsignedLong by setting the value of ·maxInclusive· to be 4294967295. The ·base type· of unsignedInt is unsignedLong. */\n 'unsignedInt': 'http://www.w3.org/2001/XMLSchema#unsignedInt',\n /** unsignedShort is ·derived· from unsignedInt by setting the value of ·maxInclusive· to be 65535. The ·base type· of unsignedShort is unsignedInt. */\n 'unsignedShort': 'http://www.w3.org/2001/XMLSchema#unsignedShort',\n /** unsignedLong is ·derived· from nonNegativeInteger by setting the value of ·maxInclusive· to be 18446744073709551615. The ·base type· of unsignedLong is nonNegativeInteger. */\n 'unsingedLong': 'http://www.w3.org/2001/XMLSchema#unsingedLong',\n /** unsignedByte is ·derived· from unsignedShort by setting the value of ·maxInclusive· to be 255. The ·base type· of unsignedByte is unsignedShort. */\n 'usignedByte': 'http://www.w3.org/2001/XMLSchema#usignedByte',\n};\n/** Namespace URI of the xsd vocabulary. */\nexports._xsd = new n3.NamedNode('http://www.w3.org/2001/XMLSchema#');\nexports.xsd = {\n /** anyURI represents an Internationalized Resource Identifier Reference (IRI). An anyURI value can be absolute or relative, and may have an optional fragment identifier (i.e., it may be an IRI Reference). This type should be used when the value fulfills the role of an IRI, as defined in [RFC 3987] or its successor(s) in the IETF Standards Track. */\n 'anyURI': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#anyURI'),\n /** base64Binary represents arbitrary Base64-encoded binary data. For base64Binary data the entire binary stream is encoded using the Base64 Encoding defined in [RFC 3548], which is derived from the encoding described in [RFC 2045]. */\n 'base64Binary': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#base64Binary'),\n /** boolean represents the values of two-valued logic. */\n 'boolean': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#boolean'),\n /** byte is ·derived· from short by setting the value of ·maxInclusive· to be 127 and ·minInclusive· to be -128. The ·base type· of byte is short. */\n 'byte': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#byte'),\n /** date represents top-open intervals of exactly one day in length on the timelines of dateTime, beginning on the beginning moment of each day, up to but not including the beginning moment of the next day). For non-timezoned values, the top-open intervals disjointly cover the non-timezoned timeline, one per day. For timezoned values, the intervals begin at every minute and therefore overlap. */\n 'date': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#date'),\n /** dateTime represents instants of time, optionally marked with a particular time zone offset. Values representing the same instant but having different time zone offsets are equal but not identical. */\n 'dateTime': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#dateTime'),\n /** decimal represents a subset of the real numbers, which can be represented by decimal numerals. The ·value space· of decimal is the set of numbers that can be obtained by dividing an integer by a non-negative power of ten, i.e., expressible as i / 10n where i and n are integers and n ≥ 0. Precision is not reflected in this value space; the number 2.0 is not distinct from the number 2.00. The order relation on decimal is the order relation on real numbers, restricted to this subset. */\n 'decimal': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#decimal'),\n /** The double datatype is patterned after the IEEE double-precision 64-bit floating point datatype [IEEE 754-2008]. Each floating point datatype has a value space that is a subset of the rational numbers. Floating point numbers are often used to approximate arbitrary real numbers. */\n 'double': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#double'),\n /** duration is a datatype that represents durations of time. The concept of duration being captured is drawn from those of [ISO 8601], specifically durations without fixed endpoints. */\n 'duration': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#duration'),\n /** The float datatype is patterned after the IEEE single-precision 32-bit floating point datatype [IEEE 754-2008]. Its value space is a subset of the rational numbers. Floating point numbers are often used to approximate arbitrary real numbers. */\n 'float': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#float'),\n /** int is ·derived· from long by setting the value of ·maxInclusive· to be 2147483647 and ·minInclusive· to be -2147483648. The ·base type· of int is long. */\n 'int': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#int'),\n /** integer is ·derived· from decimal by fixing the value of ·fractionDigits· to be 0 and disallowing the trailing decimal point. This results in the standard mathematical concept of the integer numbers. The ·value space· of integer is the infinite set {...,-2,-1,0,1,2,...}. The ·base type· of integer is decimal. */\n 'integer': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#integer'),\n /** long is ·derived· from integer by setting the value of ·maxInclusive· to be 9223372036854775807 and ·minInclusive· to be -9223372036854775808. The ·base type· of long is integer. */\n 'long': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#long'),\n /** negativeInteger is ·derived· from nonPositiveInteger by setting the value of ·maxInclusive· to be -1. This results in the standard mathematical concept of the negative integers. The ·value space· of negativeInteger is the infinite set {...,-2,-1}. The ·base type· of negativeInteger is nonPositiveInteger. */\n 'negativeInteger': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#negativeInteger'),\n 'nonNegativeInteger': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#nonNegativeInteger'),\n /** nonPositiveInteger is ·derived· from integer by setting the value of ·maxInclusive· to be 0. This results in the standard mathematical concept of the non-positive integers. The ·value space· of nonPositiveInteger is the infinite set {...,-2,-1,0}. The ·base type· of nonPositiveInteger is integer. */\n 'nonPositiveInteger': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#nonPositiveInteger'),\n /** nonNegativeInteger is ·derived· from integer by setting the value of ·minInclusive· to be 0. This results in the standard mathematical concept of the non-negative integers. The ·value space· of nonNegativeInteger is the infinite set {0,1,2,...}. The ·base type· of nonNegativeInteger is integer. */\n 'positiveInteger': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#positiveInteger'),\n /** short is ·derived· from int by setting the value of ·maxInclusive· to be 32767 and ·minInclusive· to be -32768. The ·base type· of short is int. */\n 'short': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#short'),\n /** The string datatype represents character strings in XML. */\n 'string': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#string'),\n /** time represents instants of time that recur at the same point in each calendar day, or that occur in some arbitrary calendar day. */\n 'time': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#time'),\n /** unsignedInt is ·derived· from unsignedLong by setting the value of ·maxInclusive· to be 4294967295. The ·base type· of unsignedInt is unsignedLong. */\n 'unsignedInt': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#unsignedInt'),\n /** unsignedShort is ·derived· from unsignedInt by setting the value of ·maxInclusive· to be 65535. The ·base type· of unsignedShort is unsignedInt. */\n 'unsignedShort': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#unsignedShort'),\n /** unsignedLong is ·derived· from nonNegativeInteger by setting the value of ·maxInclusive· to be 18446744073709551615. The ·base type· of unsignedLong is nonNegativeInteger. */\n 'unsingedLong': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#unsingedLong'),\n /** unsignedByte is ·derived· from unsignedShort by setting the value of ·maxInclusive· to be 255. The ·base type· of unsignedByte is unsignedShort. */\n 'usignedByte': new n3.NamedNode('http://www.w3.org/2001/XMLSchema#usignedByte'),\n};\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/ontologies/xsd.ts?");
|
|
1186
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.xsd = exports._xsd = exports.XSD = exports._XSD = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst { namedNode } = n3.DataFactory;\n/** Namespace URI of the XSD vocabulary. */\nexports._XSD = 'http://www.w3.org/2001/XMLSchema#';\nexports.XSD = {\n /** anyURI represents an Internationalized Resource Identifier Reference (IRI). An anyURI value can be absolute or relative, and may have an optional fragment identifier (i.e., it may be an IRI Reference). This type should be used when the value fulfills the role of an IRI, as defined in [RFC 3987] or its successor(s) in the IETF Standards Track. */\n 'anyURI': 'http://www.w3.org/2001/XMLSchema#anyURI',\n /** base64Binary represents arbitrary Base64-encoded binary data. For base64Binary data the entire binary stream is encoded using the Base64 Encoding defined in [RFC 3548], which is derived from the encoding described in [RFC 2045]. */\n 'base64Binary': 'http://www.w3.org/2001/XMLSchema#base64Binary',\n /** boolean represents the values of two-valued logic. */\n 'boolean': 'http://www.w3.org/2001/XMLSchema#boolean',\n /** byte is ·derived· from short by setting the value of ·maxInclusive· to be 127 and ·minInclusive· to be -128. The ·base type· of byte is short. */\n 'byte': 'http://www.w3.org/2001/XMLSchema#byte',\n /** date represents top-open intervals of exactly one day in length on the timelines of dateTime, beginning on the beginning moment of each day, up to but not including the beginning moment of the next day). For non-timezoned values, the top-open intervals disjointly cover the non-timezoned timeline, one per day. For timezoned values, the intervals begin at every minute and therefore overlap. */\n 'date': 'http://www.w3.org/2001/XMLSchema#date',\n /** dateTime represents instants of time, optionally marked with a particular time zone offset. Values representing the same instant but having different time zone offsets are equal but not identical. */\n 'dateTime': 'http://www.w3.org/2001/XMLSchema#dateTime',\n /** decimal represents a subset of the real numbers, which can be represented by decimal numerals. The ·value space· of decimal is the set of numbers that can be obtained by dividing an integer by a non-negative power of ten, i.e., expressible as i / 10n where i and n are integers and n ≥ 0. Precision is not reflected in this value space; the number 2.0 is not distinct from the number 2.00. The order relation on decimal is the order relation on real numbers, restricted to this subset. */\n 'decimal': 'http://www.w3.org/2001/XMLSchema#decimal',\n /** The double datatype is patterned after the IEEE double-precision 64-bit floating point datatype [IEEE 754-2008]. Each floating point datatype has a value space that is a subset of the rational numbers. Floating point numbers are often used to approximate arbitrary real numbers. */\n 'double': 'http://www.w3.org/2001/XMLSchema#double',\n /** duration is a datatype that represents durations of time. The concept of duration being captured is drawn from those of [ISO 8601], specifically durations without fixed endpoints. */\n 'duration': 'http://www.w3.org/2001/XMLSchema#duration',\n /** The float datatype is patterned after the IEEE single-precision 32-bit floating point datatype [IEEE 754-2008]. Its value space is a subset of the rational numbers. Floating point numbers are often used to approximate arbitrary real numbers. */\n 'float': 'http://www.w3.org/2001/XMLSchema#float',\n /** int is ·derived· from long by setting the value of ·maxInclusive· to be 2147483647 and ·minInclusive· to be -2147483648. The ·base type· of int is long. */\n 'int': 'http://www.w3.org/2001/XMLSchema#int',\n /** integer is ·derived· from decimal by fixing the value of ·fractionDigits· to be 0 and disallowing the trailing decimal point. This results in the standard mathematical concept of the integer numbers. The ·value space· of integer is the infinite set {...,-2,-1,0,1,2,...}. The ·base type· of integer is decimal. */\n 'integer': 'http://www.w3.org/2001/XMLSchema#integer',\n /** long is ·derived· from integer by setting the value of ·maxInclusive· to be 9223372036854775807 and ·minInclusive· to be -9223372036854775808. The ·base type· of long is integer. */\n 'long': 'http://www.w3.org/2001/XMLSchema#long',\n /** negativeInteger is ·derived· from nonPositiveInteger by setting the value of ·maxInclusive· to be -1. This results in the standard mathematical concept of the negative integers. The ·value space· of negativeInteger is the infinite set {...,-2,-1}. The ·base type· of negativeInteger is nonPositiveInteger. */\n 'negativeInteger': 'http://www.w3.org/2001/XMLSchema#negativeInteger',\n 'nonNegativeInteger': 'http://www.w3.org/2001/XMLSchema#nonNegativeInteger',\n /** nonPositiveInteger is ·derived· from integer by setting the value of ·maxInclusive· to be 0. This results in the standard mathematical concept of the non-positive integers. The ·value space· of nonPositiveInteger is the infinite set {...,-2,-1,0}. The ·base type· of nonPositiveInteger is integer. */\n 'nonPositiveInteger': 'http://www.w3.org/2001/XMLSchema#nonPositiveInteger',\n /** nonNegativeInteger is ·derived· from integer by setting the value of ·minInclusive· to be 0. This results in the standard mathematical concept of the non-negative integers. The ·value space· of nonNegativeInteger is the infinite set {0,1,2,...}. The ·base type· of nonNegativeInteger is integer. */\n 'positiveInteger': 'http://www.w3.org/2001/XMLSchema#positiveInteger',\n /** short is ·derived· from int by setting the value of ·maxInclusive· to be 32767 and ·minInclusive· to be -32768. The ·base type· of short is int. */\n 'short': 'http://www.w3.org/2001/XMLSchema#short',\n /** The string datatype represents character strings in XML. */\n 'string': 'http://www.w3.org/2001/XMLSchema#string',\n /** time represents instants of time that recur at the same point in each calendar day, or that occur in some arbitrary calendar day. */\n 'time': 'http://www.w3.org/2001/XMLSchema#time',\n /** unsignedInt is ·derived· from unsignedLong by setting the value of ·maxInclusive· to be 4294967295. The ·base type· of unsignedInt is unsignedLong. */\n 'unsignedInt': 'http://www.w3.org/2001/XMLSchema#unsignedInt',\n /** unsignedShort is ·derived· from unsignedInt by setting the value of ·maxInclusive· to be 65535. The ·base type· of unsignedShort is unsignedInt. */\n 'unsignedShort': 'http://www.w3.org/2001/XMLSchema#unsignedShort',\n /** unsignedLong is ·derived· from nonNegativeInteger by setting the value of ·maxInclusive· to be 18446744073709551615. The ·base type· of unsignedLong is nonNegativeInteger. */\n 'unsingedLong': 'http://www.w3.org/2001/XMLSchema#unsingedLong',\n /** unsignedByte is ·derived· from unsignedShort by setting the value of ·maxInclusive· to be 255. The ·base type· of unsignedByte is unsignedShort. */\n 'usignedByte': 'http://www.w3.org/2001/XMLSchema#usignedByte',\n};\n/** Namespace URI of the xsd vocabulary. */\nexports._xsd = namedNode('http://www.w3.org/2001/XMLSchema#');\nexports.xsd = {\n /** anyURI represents an Internationalized Resource Identifier Reference (IRI). An anyURI value can be absolute or relative, and may have an optional fragment identifier (i.e., it may be an IRI Reference). This type should be used when the value fulfills the role of an IRI, as defined in [RFC 3987] or its successor(s) in the IETF Standards Track. */\n 'anyURI': namedNode('http://www.w3.org/2001/XMLSchema#anyURI'),\n /** base64Binary represents arbitrary Base64-encoded binary data. For base64Binary data the entire binary stream is encoded using the Base64 Encoding defined in [RFC 3548], which is derived from the encoding described in [RFC 2045]. */\n 'base64Binary': namedNode('http://www.w3.org/2001/XMLSchema#base64Binary'),\n /** boolean represents the values of two-valued logic. */\n 'boolean': namedNode('http://www.w3.org/2001/XMLSchema#boolean'),\n /** byte is ·derived· from short by setting the value of ·maxInclusive· to be 127 and ·minInclusive· to be -128. The ·base type· of byte is short. */\n 'byte': namedNode('http://www.w3.org/2001/XMLSchema#byte'),\n /** date represents top-open intervals of exactly one day in length on the timelines of dateTime, beginning on the beginning moment of each day, up to but not including the beginning moment of the next day). For non-timezoned values, the top-open intervals disjointly cover the non-timezoned timeline, one per day. For timezoned values, the intervals begin at every minute and therefore overlap. */\n 'date': namedNode('http://www.w3.org/2001/XMLSchema#date'),\n /** dateTime represents instants of time, optionally marked with a particular time zone offset. Values representing the same instant but having different time zone offsets are equal but not identical. */\n 'dateTime': namedNode('http://www.w3.org/2001/XMLSchema#dateTime'),\n /** decimal represents a subset of the real numbers, which can be represented by decimal numerals. The ·value space· of decimal is the set of numbers that can be obtained by dividing an integer by a non-negative power of ten, i.e., expressible as i / 10n where i and n are integers and n ≥ 0. Precision is not reflected in this value space; the number 2.0 is not distinct from the number 2.00. The order relation on decimal is the order relation on real numbers, restricted to this subset. */\n 'decimal': namedNode('http://www.w3.org/2001/XMLSchema#decimal'),\n /** The double datatype is patterned after the IEEE double-precision 64-bit floating point datatype [IEEE 754-2008]. Each floating point datatype has a value space that is a subset of the rational numbers. Floating point numbers are often used to approximate arbitrary real numbers. */\n 'double': namedNode('http://www.w3.org/2001/XMLSchema#double'),\n /** duration is a datatype that represents durations of time. The concept of duration being captured is drawn from those of [ISO 8601], specifically durations without fixed endpoints. */\n 'duration': namedNode('http://www.w3.org/2001/XMLSchema#duration'),\n /** The float datatype is patterned after the IEEE single-precision 32-bit floating point datatype [IEEE 754-2008]. Its value space is a subset of the rational numbers. Floating point numbers are often used to approximate arbitrary real numbers. */\n 'float': namedNode('http://www.w3.org/2001/XMLSchema#float'),\n /** int is ·derived· from long by setting the value of ·maxInclusive· to be 2147483647 and ·minInclusive· to be -2147483648. The ·base type· of int is long. */\n 'int': namedNode('http://www.w3.org/2001/XMLSchema#int'),\n /** integer is ·derived· from decimal by fixing the value of ·fractionDigits· to be 0 and disallowing the trailing decimal point. This results in the standard mathematical concept of the integer numbers. The ·value space· of integer is the infinite set {...,-2,-1,0,1,2,...}. The ·base type· of integer is decimal. */\n 'integer': namedNode('http://www.w3.org/2001/XMLSchema#integer'),\n /** long is ·derived· from integer by setting the value of ·maxInclusive· to be 9223372036854775807 and ·minInclusive· to be -9223372036854775808. The ·base type· of long is integer. */\n 'long': namedNode('http://www.w3.org/2001/XMLSchema#long'),\n /** negativeInteger is ·derived· from nonPositiveInteger by setting the value of ·maxInclusive· to be -1. This results in the standard mathematical concept of the negative integers. The ·value space· of negativeInteger is the infinite set {...,-2,-1}. The ·base type· of negativeInteger is nonPositiveInteger. */\n 'negativeInteger': namedNode('http://www.w3.org/2001/XMLSchema#negativeInteger'),\n 'nonNegativeInteger': namedNode('http://www.w3.org/2001/XMLSchema#nonNegativeInteger'),\n /** nonPositiveInteger is ·derived· from integer by setting the value of ·maxInclusive· to be 0. This results in the standard mathematical concept of the non-positive integers. The ·value space· of nonPositiveInteger is the infinite set {...,-2,-1,0}. The ·base type· of nonPositiveInteger is integer. */\n 'nonPositiveInteger': namedNode('http://www.w3.org/2001/XMLSchema#nonPositiveInteger'),\n /** nonNegativeInteger is ·derived· from integer by setting the value of ·minInclusive· to be 0. This results in the standard mathematical concept of the non-negative integers. The ·value space· of nonNegativeInteger is the infinite set {0,1,2,...}. The ·base type· of nonNegativeInteger is integer. */\n 'positiveInteger': namedNode('http://www.w3.org/2001/XMLSchema#positiveInteger'),\n /** short is ·derived· from int by setting the value of ·maxInclusive· to be 32767 and ·minInclusive· to be -32768. The ·base type· of short is int. */\n 'short': namedNode('http://www.w3.org/2001/XMLSchema#short'),\n /** The string datatype represents character strings in XML. */\n 'string': namedNode('http://www.w3.org/2001/XMLSchema#string'),\n /** time represents instants of time that recur at the same point in each calendar day, or that occur in some arbitrary calendar day. */\n 'time': namedNode('http://www.w3.org/2001/XMLSchema#time'),\n /** unsignedInt is ·derived· from unsignedLong by setting the value of ·maxInclusive· to be 4294967295. The ·base type· of unsignedInt is unsignedLong. */\n 'unsignedInt': namedNode('http://www.w3.org/2001/XMLSchema#unsignedInt'),\n /** unsignedShort is ·derived· from unsignedInt by setting the value of ·maxInclusive· to be 65535. The ·base type· of unsignedShort is unsignedInt. */\n 'unsignedShort': namedNode('http://www.w3.org/2001/XMLSchema#unsignedShort'),\n /** unsignedLong is ·derived· from nonNegativeInteger by setting the value of ·maxInclusive· to be 18446744073709551615. The ·base type· of unsignedLong is nonNegativeInteger. */\n 'unsingedLong': namedNode('http://www.w3.org/2001/XMLSchema#unsingedLong'),\n /** unsignedByte is ·derived· from unsignedShort by setting the value of ·maxInclusive· to be 255. The ·base type· of unsignedByte is unsignedShort. */\n 'usignedByte': namedNode('http://www.w3.org/2001/XMLSchema#usignedByte'),\n};\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/ontologies/xsd.ts?");
|
|
845
1187
|
|
|
846
1188
|
/***/ }),
|
|
847
1189
|
|
|
@@ -852,7 +1194,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
852
1194
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
853
1195
|
|
|
854
1196
|
"use strict";
|
|
855
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ClassRepository = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst ontologies_1 = __webpack_require__(/*! ../ontologies */ \"./src/ontologies/index.ts\");\nconst concept_repository_1 = __webpack_require__(/*! ./concept-repository */ \"./src/rdf/concept-repository.ts\");\n/**\n * A repository for retrieving classes from graphs.\n */\nclass ClassRepository extends concept_repository_1.ConceptRepository {\n constructor(store) { super(store); }\n /**\n * Get all classes in the repository.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param options Optional query parameters.\n * @returns A list of all classes in the repository.\n */\n getClasses(graphUris, options) {\n const result = new Set();\n for (let q of this.store.match(graphUris, null, ontologies_1.rdf.type, ontologies_1.rdfs.Class, options?.includeInferred)) {\n if (!this.skip(graphUris, q.subject, options)) {\n result.add(q.subject.value);\n }\n }\n return Array.from(result);\n }\n /**\n * Get the super classes of a given class.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param subjectUri URI of a class.\n * @param options Optional query parameters.\n * @returns An array of super classes of the given class, an empty array if the class has no super classes.\n */\n getSuperClasses(graphUris, subjectUri, options) {\n const result = new Set();\n const s = n3.DataFactory.namedNode(subjectUri);\n for (let q of this.store.match(graphUris, s, ontologies_1.rdfs.subClassOf, null, options?.includeInferred)) {\n if (!this.skip(graphUris, q.object, options)) {\n result.add(q.object.value);\n }\n }\n return Array.from(result);\n }\n /**\n * Get the first discovered path from a given class to a root class.\n * @param subjectUri URI of a class.\n * @returns A string array containing the first path that is found from the given class to a root class.\n */\n getRootClassPath(graphUris, subjectUri, options) {\n return this._getRootClassPath(graphUris, subjectUri, [], new Set(), options);\n }\n /**\n * Recursively find the first path from a given class to a root class.\n * @param subjectUri URI of a class.\n * @param path The current class path.\n * @param backtrack Set of URIs that have already been visited.\n * @returns The first path that is found from the given class to a root class.\n */\n _getRootClassPath(graphUris, subjectUri, path, backtrack, options) {\n const superClasses = this.getSuperClasses(graphUris, subjectUri, options);\n for (let o of superClasses.filter(o => !backtrack.has(o))) {\n return this._getRootClassPath(graphUris, o, [...path, o], backtrack, options);\n }\n return path;\n }\n /**\n * Indicate if there are sub classes of a given class.\n * @param subjectUri URI of a class.\n * @returns true if the class has sub classes, false otherwise.\n */\n hasSubClasses(graphUris, subjectUri, options) {\n const o = n3.DataFactory.namedNode(subjectUri);\n for (let q of this.store.match(graphUris, null, ontologies_1.rdfs.subClassOf, o)) {\n if (!this.skip(graphUris, q.subject, options)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Get the sub classes of a given class or all root classes.\n * @param subjectUri URI of a class or undefined to get all root classes.\n * @returns An array of sub classes of the given class, an empty array if the class has no sub classes.\n */\n getSubClasses(graphUris, subjectUri, options) {\n if (subjectUri) {\n const result = new Set();\n const o = n3.DataFactory.namedNode(subjectUri);\n for (let q of this.store.match(graphUris, null, ontologies_1.rdfs.subClassOf, o, options?.includeInferred)) {\n if (!this.skip(graphUris, q.subject, options)) {\n result.add(q.subject.value);\n }\n }\n return Array.from(result);\n }\n else {\n return this.getRootClasses(graphUris, options);\n }\n }\n /**\n * Recursively traverse all sub classes of a given class and invoke a callback.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param superClass The super class to start the traversal from.\n * @param callback A function to call for each sub class. If the function returns `false`, the traversal stops.\n * @param options Optional query parameters.\n * @param visited A set of visited URIs.\n * @returns `true` if the traversal was completed, `false` if it was stopped by the callback.\n */\n _traverseSubClasses(graphUris, superClass, callback, options, visited = new Set()) {\n // Enumerate all sub classes of the given super class.\n for (let q of this.store.match(graphUris, null, ontologies_1.rdfs.subClassOf, superClass, options?.includeInferred)) {\n // If it is not skipped and has not been visited yet, we call the callback function.\n if (!this.skip(graphUris, q.subject, options) && !visited.has(q.subject.value)) {\n visited.add(q.subject.value);\n // If the callback returns false, we stop the traversal.\n if (callback(q.subject)) {\n this._traverseSubClasses(graphUris, q.subject, callback, options, visited);\n }\n else {\n return false;\n }\n }\n }\n return true;\n }\n /**\n * Get all sub classes of a given class, including indirect sub classes.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param subjectUri URI of a class.\n * @param options Optional query parameters.\n * @returns An array of all sub classes of the given class.\n */\n getAllSubClasses(graphUris, subjectUri, options) {\n const result = new Set();\n this._traverseSubClasses(graphUris, n3.DataFactory.namedNode(subjectUri), s => { result.add(s.value); return true; }, options);\n return Array.from(result);\n }\n /**\n * Indicate if there are instances of a given class or any of its sub classes.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param typeUri URI of the class.\n * @param options Optional query parameters.\n * @returns `true` if the class has instances, `false` otherwise.\n */\n hasSubjectsOfType(graphUris, typeUri, options) {\n // TODO: Optimize implementation.\n return this.getSubjectsOfType(graphUris, typeUri, options).length > 0;\n }\n /**\n * Get all subjects of a given class in the repository.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param typeUri URI of the class.\n * @param options Optional query parameters.\n * @returns A list of all shapes in the repository.\n */\n getSubjectsOfType(graphUris, typeUri, options) {\n const result = new Set();\n if (options?.includeSubTypes === false) {\n // 1. Get all subclasses of the given type from the repository -> ClassRepository.\n const subclasses = new Set(this.getAllSubClasses(graphUris, typeUri));\n // 2. Then get all triples that have a rdf:type predicate.\n // a) if the object matches the given type, add it to the result.\n // b) if the object is a subclass of the given type, remove it from the result.\n const filtered = new Set();\n for (let q of this.store.match(graphUris, null, ontologies_1.rdf.type, null, options?.includeInferred)) {\n if (q.object.value == typeUri && !this.skip(graphUris, q.subject, options)) {\n result.add(q.subject.value);\n }\n else if (subclasses.has(q.object.value)) {\n filtered.add(q.subject.value);\n }\n }\n return Array.from(result).filter(x => !filtered.has(x));\n }\n else {\n // TODO: This does not explicitly check the sub classes. Implement a unit test.\n for (let q of this.store.match(graphUris, null, ontologies_1.rdf.type, new n3.NamedNode(typeUri), options?.includeInferred)) {\n if (!this.skip(graphUris, q.subject, options)) {\n result.add(q.subject.value);\n }\n }\n return Array.from(result);\n }\n }\n /**\n * Indicate if a given class is direct or indirect (inferred) sub class of another class.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param subjectUri URI of the sub class.\n * @param classUri URI of the super class.\n * @param options Optional query parameters.\n * @returns `true` if the class is a sub class of the other class, false otherwise.\n */\n isSubClassOf(graphUris, subjectUri, classUri, options) {\n return this.getRootClassPath(graphUris, subjectUri, options).includes(classUri);\n }\n /**\n * Indicate if a given class is the intersection of classes.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param subjectUri URI of a class.\n * @returns `true` if the class is the intersection of classes, `false` otherwise.\n */\n isIntersectionOfClasses(graphUris, subjectUri) {\n const s = n3.DataFactory.namedNode(subjectUri);\n if (this._isIntersectionOfClasses(graphUris, s)) {\n return true;\n }\n // Note: The intersection must be defined in the original graphs, so inference is not required.\n for (let q of this.store.match(graphUris, s, ontologies_1.owl.equivalentClass, null, false)) {\n if (this._isIntersectionOfClasses(graphUris, q.object)) {\n return true;\n }\n }\n return false;\n }\n _isIntersectionOfClasses(graphUris, subject) {\n if (subject instanceof n3.BlankNode || subject instanceof n3.NamedNode) {\n for (let _ of this.store.match(graphUris, subject, ontologies_1.owl.intersectionOf, null, false)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Indicate if a given class is a (disjoint) union of classes.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param subjectUri URI of a class.\n * @returns `true` if the class is a (disjoint) union of classes, `false` otherwise.\n */\n isUnionOfClasses(graphUris, subjectUri) {\n const s = n3.DataFactory.namedNode(subjectUri);\n if (this._isUnionOfClasses(graphUris, s)) {\n return true;\n }\n // Note: The union must be defined in the original graphs, so inference is not required.\n for (let q of this.store.match(graphUris, s, ontologies_1.owl.equivalentClass, null, false)) {\n if (this._isUnionOfClasses(graphUris, q.object)) {\n return true;\n }\n }\n return false;\n }\n _isUnionOfClasses(graphUris, subject) {\n if (subject instanceof n3.BlankNode || subject instanceof n3.NamedNode) {\n for (let _ of this.store.match(graphUris, subject, ontologies_1.owl.unionOf, null, false)) {\n return true;\n }\n for (let _ of this.store.match(graphUris, subject, ontologies_1.owl.disjointUnionOf, null, false)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Get all classes from the repository that have no super classes.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param options Optional query parameters.\n * @returns An array of root classes in the repository.\n */\n getRootClasses(graphUris, options) {\n const result = new Set();\n const classes = new Set(this.getClasses(graphUris, options));\n for (let c of classes) {\n let hasSuperClass = false;\n for (let q of this.store.match(graphUris, new n3.NamedNode(c), ontologies_1.rdfs.subClassOf, null, options?.includeInferred)) {\n const includeReferenced = options?.includeReferenced ?? false;\n const skip = this.skip(graphUris, q.object, options);\n // Do not skip the super property if it is only referenced and the includeReferenced option is set.\n if (q.object.termType != \"NamedNode\" || skip && (!includeReferenced || includeReferenced && this.hasSubject(graphUris, q.object.value))) {\n continue;\n }\n hasSuperClass = true;\n // If we have a super property that is not in the list of properties and not excluded by the options, we add it to the result.\n if (!classes.has(q.object.value)) {\n result.add(q.object.value);\n }\n break;\n }\n if (!hasSuperClass) {\n result.add(c);\n }\n }\n return Array.from(result);\n }\n /**\n * Indicate if there is an equivalent class of a given class.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param subjectUri URI of a class.\n * @param options Optional query parameters.\n * @returns `true` if the class has an equivalent class, `false` otherwise.\n */\n hasEquivalentClass(graphUris, subjectUri, options) {\n const s = n3.DataFactory.namedNode(subjectUri);\n // The OWL resoner will assert the equivalent class relationship in both directions.\n for (let _ of this.store.match(graphUris, s, ontologies_1.owl.equivalentClass, null, options?.includeInferred)) {\n return true;\n }\n return false;\n }\n /**\n * Indicate if a given class has at least one individual defined for it or for one of its sub classes.\n * @param graphUris Graph URIs to search in, undefined for the default graph.\n * @param classUri URI of a class.\n * @param options Optional query parameters.\n * @returns `true` if the class has individuals, `false` otherwise.\n */\n hasIndividuals(graphUris, classUri, options) {\n const s = n3.DataFactory.namedNode(classUri);\n for (let q of this.store.match(graphUris, null, ontologies_1.rdf.type, s, options?.includeInferred)) {\n if (!this.skip(graphUris, q.subject, options)) {\n return true;\n }\n }\n for (let c of this.getSubClasses(graphUris, classUri, options)) {\n if (this.hasIndividuals(graphUris, c)) {\n return true;\n }\n }\n return false;\n }\n}\nexports.ClassRepository = ClassRepository;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/rdf/class-repository.ts?");
|
|
1197
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ClassRepository = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst ontologies_1 = __webpack_require__(/*! ../ontologies */ \"./src/ontologies/index.ts\");\nconst concept_repository_1 = __webpack_require__(/*! ./concept-repository */ \"./src/rdf/concept-repository.ts\");\nconst { namedNode } = n3.DataFactory;\n/**\n * A repository for retrieving classes from graphs.\n */\nclass ClassRepository extends concept_repository_1.ConceptRepository {\n constructor(store) { super(store); }\n /**\n * Get all classes in the repository.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param options Optional query parameters.\n * @returns A list of all classes in the repository.\n */\n getClasses(graphUris, options) {\n const result = new Set();\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.rdf.type, ontologies_1.rdfs.Class, options?.includeInferred)) {\n if (!this.skip(graphUris, q.subject, options)) {\n result.add(q.subject.value);\n }\n }\n return Array.from(result);\n }\n /**\n * Get the super classes of a given class.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param subjectUri URI of a class.\n * @param options Optional query parameters.\n * @returns An array of super classes of the given class, an empty array if the class has no super classes.\n */\n getSuperClasses(graphUris, subjectUri, options) {\n const result = new Set();\n const s = namedNode(subjectUri);\n for (let q of this.store.matchAll(graphUris, s, ontologies_1.rdfs.subClassOf, null, options?.includeInferred)) {\n if (!this.skip(graphUris, q.object, options)) {\n result.add(q.object.value);\n }\n }\n return Array.from(result);\n }\n /**\n * Get the first discovered path from a given class to a root class.\n * @param subjectUri URI of a class.\n * @returns A string array containing the first path that is found from the given class to a root class.\n */\n getRootClassPath(graphUris, subjectUri, options) {\n return this._getRootClassPath(graphUris, subjectUri, [], new Set(), options);\n }\n /**\n * Recursively find the first path from a given class to a root class.\n * @param subjectUri URI of a class.\n * @param path The current class path.\n * @param backtrack Set of URIs that have already been visited.\n * @returns The first path that is found from the given class to a root class.\n */\n _getRootClassPath(graphUris, subjectUri, path, backtrack, options) {\n const superClasses = this.getSuperClasses(graphUris, subjectUri, options);\n for (let o of superClasses.filter(o => !backtrack.has(o))) {\n return this._getRootClassPath(graphUris, o, [...path, o], backtrack, options);\n }\n return path;\n }\n /**\n * Indicate if there are sub classes of a given class.\n * @param subjectUri URI of a class.\n * @returns true if the class has sub classes, false otherwise.\n */\n hasSubClasses(graphUris, subjectUri, options) {\n const o = namedNode(subjectUri);\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.rdfs.subClassOf, o)) {\n if (!this.skip(graphUris, q.subject, options)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Get the sub classes of a given class or all root classes.\n * @param subjectUri URI of a class or undefined to get all root classes.\n * @returns An array of sub classes of the given class, an empty array if the class has no sub classes.\n */\n getSubClasses(graphUris, subjectUri, options) {\n if (subjectUri) {\n const result = new Set();\n const o = namedNode(subjectUri);\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.rdfs.subClassOf, o, options?.includeInferred)) {\n if (!this.skip(graphUris, q.subject, options)) {\n result.add(q.subject.value);\n }\n }\n return Array.from(result);\n }\n else {\n return this.getRootClasses(graphUris, options);\n }\n }\n /**\n * Recursively traverse all sub classes of a given class and invoke a callback.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param superClass The super class to start the traversal from.\n * @param callback A function to call for each sub class. If the function returns `false`, the traversal stops.\n * @param options Optional query parameters.\n * @param visited A set of visited URIs.\n * @returns `true` if the traversal was completed, `false` if it was stopped by the callback.\n */\n _traverseSubClasses(graphUris, superClass, callback, options, visited = new Set()) {\n // Enumerate all sub classes of the given super class.\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.rdfs.subClassOf, superClass, options?.includeInferred)) {\n // If it is not skipped and has not been visited yet, we call the callback function.\n if (!this.skip(graphUris, q.subject, options) && !visited.has(q.subject.value)) {\n visited.add(q.subject.value);\n // If the callback returns false, we stop the traversal.\n if (callback(q.subject)) {\n this._traverseSubClasses(graphUris, q.subject, callback, options, visited);\n }\n else {\n return false;\n }\n }\n }\n return true;\n }\n /**\n * Get all sub classes of a given class, including indirect sub classes.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param subjectUri URI of a class.\n * @param options Optional query parameters.\n * @returns An array of all sub classes of the given class.\n */\n getAllSubClasses(graphUris, subjectUri, options) {\n const result = new Set();\n this._traverseSubClasses(graphUris, namedNode(subjectUri), s => { result.add(s.value); return true; }, options);\n return Array.from(result);\n }\n /**\n * Indicate if there are instances of a given class or any of its sub classes.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param typeUri URI of the class.\n * @param options Optional query parameters.\n * @returns `true` if the class has instances, `false` otherwise.\n */\n hasSubjectsOfType(graphUris, typeUri, options) {\n // TODO: Optimize implementation.\n return this.getSubjectsOfType(graphUris, typeUri, options).length > 0;\n }\n /**\n * Get all subjects of a given class in the repository.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param typeUri URI of the class.\n * @param options Optional query parameters.\n * @returns A list of all shapes in the repository.\n */\n getSubjectsOfType(graphUris, typeUri, options) {\n const result = new Set();\n if (options?.includeSubTypes === false) {\n // 1. Get all subclasses of the given type from the repository -> ClassRepository.\n const subclasses = new Set(this.getAllSubClasses(graphUris, typeUri));\n // 2. Then get all triples that have a rdf:type predicate.\n // a) if the object matches the given type, add it to the result.\n // b) if the object is a subclass of the given type, remove it from the result.\n const filtered = new Set();\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.rdf.type, null, options?.includeInferred)) {\n if (q.object.value == typeUri && !this.skip(graphUris, q.subject, options)) {\n result.add(q.subject.value);\n }\n else if (subclasses.has(q.object.value)) {\n filtered.add(q.subject.value);\n }\n }\n return Array.from(result).filter(x => !filtered.has(x));\n }\n else {\n // TODO: This does not explicitly check the sub classes. Implement a unit test.\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.rdf.type, namedNode(typeUri), options?.includeInferred)) {\n if (!this.skip(graphUris, q.subject, options)) {\n result.add(q.subject.value);\n }\n }\n return Array.from(result);\n }\n }\n /**\n * Indicate if a given class is direct or indirect (inferred) sub class of another class.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param subjectUri URI of the sub class.\n * @param classUri URI of the super class.\n * @param options Optional query parameters.\n * @returns `true` if the class is a sub class of the other class, false otherwise.\n */\n isSubClassOf(graphUris, subjectUri, classUri, options) {\n return this.getRootClassPath(graphUris, subjectUri, options).includes(classUri);\n }\n /**\n * Indicate if a given class is the intersection of classes.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param subjectUri URI of a class.\n * @returns `true` if the class is the intersection of classes, `false` otherwise.\n */\n isIntersectionOfClasses(graphUris, subjectUri) {\n const s = namedNode(subjectUri);\n if (this._isIntersectionOfClasses(graphUris, s)) {\n return true;\n }\n // Note: The intersection must be defined in the original graphs, so inference is not required.\n for (let q of this.store.matchAll(graphUris, s, ontologies_1.owl.equivalentClass, null, false)) {\n if (this._isIntersectionOfClasses(graphUris, q.object)) {\n return true;\n }\n }\n return false;\n }\n _isIntersectionOfClasses(graphUris, subject) {\n if (subject.termType === \"BlankNode\" || subject.termType === \"NamedNode\") {\n for (let _ of this.store.matchAll(graphUris, subject, ontologies_1.owl.intersectionOf, null, false)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Indicate if a given class is a (disjoint) union of classes.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param subjectUri URI of a class.\n * @returns `true` if the class is a (disjoint) union of classes, `false` otherwise.\n */\n isUnionOfClasses(graphUris, subjectUri) {\n const s = namedNode(subjectUri);\n if (this._isUnionOfClasses(graphUris, s)) {\n return true;\n }\n // Note: The union must be defined in the original graphs, so inference is not required.\n for (let q of this.store.matchAll(graphUris, s, ontologies_1.owl.equivalentClass, null, false)) {\n if (this._isUnionOfClasses(graphUris, q.object)) {\n return true;\n }\n }\n return false;\n }\n _isUnionOfClasses(graphUris, subject) {\n if (subject.termType === \"BlankNode\" || subject.termType === \"NamedNode\") {\n for (let _ of this.store.matchAll(graphUris, subject, ontologies_1.owl.unionOf, null, false)) {\n return true;\n }\n for (let _ of this.store.matchAll(graphUris, subject, ontologies_1.owl.disjointUnionOf, null, false)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Get all classes from the repository that have no super classes.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param options Optional query parameters.\n * @returns An array of root classes in the repository.\n */\n getRootClasses(graphUris, options) {\n const result = new Set();\n const classes = new Set(this.getClasses(graphUris, options));\n for (let c of classes) {\n let hasSuperClass = false;\n for (let q of this.store.matchAll(graphUris, namedNode(c), ontologies_1.rdfs.subClassOf, null, options?.includeInferred)) {\n const includeReferenced = options?.includeReferenced ?? false;\n const skip = this.skip(graphUris, q.object, options);\n // Do not skip the super property if it is only referenced and the includeReferenced option is set.\n if (q.object.termType != \"NamedNode\" || skip && (!includeReferenced || includeReferenced && this.hasSubject(graphUris, q.object.value))) {\n continue;\n }\n hasSuperClass = true;\n // If we have a super property that is not in the list of properties and not excluded by the options, we add it to the result.\n if (!classes.has(q.object.value)) {\n result.add(q.object.value);\n }\n break;\n }\n if (!hasSuperClass) {\n result.add(c);\n }\n }\n return Array.from(result);\n }\n /**\n * Indicate if there is an equivalent class of a given class.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param subjectUri URI of a class.\n * @param options Optional query parameters.\n * @returns `true` if the class has an equivalent class, `false` otherwise.\n */\n hasEquivalentClass(graphUris, subjectUri, options) {\n const s = namedNode(subjectUri);\n // The OWL resoner will assert the equivalent class relationship in both directions.\n for (let _ of this.store.matchAll(graphUris, s, ontologies_1.owl.equivalentClass, null, options?.includeInferred)) {\n return true;\n }\n return false;\n }\n /**\n * Indicate if a given class has at least one individual defined for it or for one of its sub classes.\n * @param graphUris Graph URIs to search in, undefined for the default graph.\n * @param classUri URI of a class.\n * @param options Optional query parameters.\n * @returns `true` if the class has individuals, `false` otherwise.\n */\n hasIndividuals(graphUris, classUri, options) {\n const s = namedNode(classUri);\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.rdf.type, s, options?.includeInferred)) {\n if (!this.skip(graphUris, q.subject, options)) {\n return true;\n }\n }\n for (let c of this.getSubClasses(graphUris, classUri, options)) {\n if (this.hasIndividuals(graphUris, c)) {\n return true;\n }\n }\n return false;\n }\n}\nexports.ClassRepository = ClassRepository;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/rdf/class-repository.ts?");
|
|
856
1198
|
|
|
857
1199
|
/***/ }),
|
|
858
1200
|
|
|
@@ -863,7 +1205,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
863
1205
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
864
1206
|
|
|
865
1207
|
"use strict";
|
|
866
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ConceptRepository = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst resource_repository_1 = __webpack_require__(/*! ./resource-repository */ \"./src/rdf/resource-repository.ts\");\nconst ontologies_1 = __webpack_require__(/*! ../ontologies */ \"./src/ontologies/index.ts\");\nclass ConceptRepository extends resource_repository_1.ResourceRepository {\n /**\n * Get all concepts.\n * @param graphUris URIs of the graphs to search for concepts.\n * @returns A list of URIs of all concepts.\n */\n getConcepts(graphUris) {\n const result = new Set();\n for (let q of this.store.
|
|
1208
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ConceptRepository = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst resource_repository_1 = __webpack_require__(/*! ./resource-repository */ \"./src/rdf/resource-repository.ts\");\nconst ontologies_1 = __webpack_require__(/*! ../ontologies */ \"./src/ontologies/index.ts\");\nclass ConceptRepository extends resource_repository_1.ResourceRepository {\n /**\n * Get all concepts.\n * @param graphUris URIs of the graphs to search for concepts.\n * @returns A list of URIs of all concepts.\n */\n getConcepts(graphUris) {\n const result = new Set();\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.rdf.type, ontologies_1.skos.Concept)) {\n const s = q.subject;\n result.add(s.value);\n }\n return Array.from(result);\n }\n /**\n * Get all concept schemes.\n * @param graphUris URIs of the graphs to search for concepts.\n * @returns A list of URIs of all concepts.\n */\n getConceptSchemes(graphUris) {\n const result = new Set();\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.rdf.type, ontologies_1.skos.ConceptScheme)) {\n const s = q.subject;\n result.add(s.value);\n }\n return Array.from(result);\n }\n /**\n * Get all collections.\n * @param graphUris URI of the graphs to search for collections.\n * @returns A list of URIs of all collections.\n */\n getCollections(graphUris) {\n const result = new Set();\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.rdf.type, ontologies_1.skos.Collection)) {\n const s = q.subject;\n result.add(s.value);\n }\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.rdf.type, ontologies_1.skos.OrderedCollection)) {\n const s = q.subject;\n result.add(s.value);\n }\n return Array.from(result);\n }\n /**\n * Get the members of a collection. This includes both `skos:member` and `skos:memberList` properties.\n * @param graphUris URI of the graphs to search for collections.\n * @param collectionUri URI of a collection.\n * @returns An array of URIs of the members of the collection.\n */\n getCollectionMembers(graphUris, collectionUri) {\n const s = n3.DataFactory.namedNode(collectionUri);\n let result = [];\n for (let q of this.store.matchAll(graphUris, s, ontologies_1.skos.member, null)) {\n result.push(q.object.value);\n }\n for (let q of this.store.matchAll(graphUris, s, ontologies_1.skos.memberList, null)) {\n result = [...result, ...this.store.getListItems(graphUris, q.object.value)];\n }\n return result;\n }\n /**\n * Get the members of a collection. This includes both `skos:member` and `skos:memberList` properties.\n * @param graphUris URI of the graphs to search for collections.\n * @param collectionUri URI of a collection.\n * @returns An array of URIs of the members of the collection.\n */\n hasCollectionMembers(graphUris, collectionUri) {\n const s = n3.DataFactory.namedNode(collectionUri);\n for (let _ of this.store.matchAll(graphUris, s, ontologies_1.skos.member, null)) {\n return true;\n }\n for (let _ of this.store.matchAll(graphUris, s, ontologies_1.skos.memberList, null)) {\n return true;\n }\n return false;\n }\n /**\n * Indicates whether a collection is an ordered collection.\n * @param graphUris URI of the graphs to search for collections.\n * @param collectionUri URI of a collection.\n * @returns `true` if the collection is an ordered collection, `false` otherwise.\n */\n isOrderedCollection(graphUris, collectionUri) {\n const s = n3.DataFactory.namedNode(collectionUri);\n for (let _ of this.store.matchAll(graphUris, s, ontologies_1.rdf.type, ontologies_1.skos.OrderedCollection)) {\n return true;\n }\n return false;\n }\n /**\n * Get all broader concepts of a concept scheme.\n * @param graphUris URIs of the graphs to search for concepts.\n * @param subjectUri URI of a concept scheme.\n */\n getBroaderConcepts(graphUris, subjectUri) {\n const result = new Set();\n const s = n3.DataFactory.namedNode(subjectUri);\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.skos.hasTopConcept, s)) {\n const s = q.subject;\n result.add(s.value);\n }\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.skos.narrower, s)) {\n const s = q.subject;\n result.add(s.value);\n }\n for (let q of this.store.matchAll(graphUris, s, ontologies_1.skos.topConceptOf, null)) {\n const o = q.object;\n result.add(o.value);\n }\n for (let q of this.store.matchAll(graphUris, s, ontologies_1.skos.broader, null)) {\n const o = q.object;\n result.add(o.value);\n }\n return Array.from(result);\n }\n /**\n * Indicates whether a concept has broader concepts.\n * @param graphUris URIs of the graphs to search for concepts.\n * @param subjectUri URI of a concept.\n */\n hasBroaderConcepts(graphUris, subjectUri) {\n return this.getBroaderConcepts(graphUris, subjectUri).length > 0;\n }\n /**\n * Get all narrower concepts of a concept or top concepts of a concept scheme.\n * @param graphUris URIs of the graphs to search for concepts.\n * @param subjectUri URI of a concept or concept scheme.\n */\n getNarrowerConcepts(graphUris, subjectUri) {\n if (subjectUri) {\n const result = new Set();\n const s = n3.DataFactory.namedNode(subjectUri);\n for (let q of this.store.matchAll(graphUris, s, ontologies_1.skos.hasTopConcept, null)) {\n const o = q.object;\n result.add(o.value);\n }\n for (let q of this.store.matchAll(graphUris, s, ontologies_1.skos.narrower, null)) {\n const o = q.object;\n result.add(o.value);\n }\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.skos.topConceptOf, s)) {\n const s = q.subject;\n result.add(s.value);\n }\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.skos.broader, s)) {\n const s = q.subject;\n result.add(s.value);\n }\n return Array.from(result);\n }\n else {\n return this.getConceptSchemes(graphUris);\n }\n }\n /**\n * Indicates whether a concept has narrower concepts.\n * @param graphUris URIs of the graphs to search for concepts.\n * @param subjectUri URI of a concept.\n */\n hasNarrowerConcepts(graphUris, subjectUri) {\n return this.getNarrowerConcepts(graphUris, subjectUri).length > 0;\n }\n /**\n * Indicates whether a concept is a narrower concept of another concept.\n * @param graphUris URIs of the graphs to search for concepts.\n * @param subjectUri URI of a concept.\n * @param broaderUri URI of a broader concept.\n * @returns `true` if the concept is a narrower concept of the broader concept, `false` otherwise.\n */\n isNarrowerConceptOf(graphUris, subjectUri, broaderUri) {\n return this.getConceptSchemePath(graphUris, subjectUri).includes(broaderUri);\n }\n /**\n * Indicates whether a subject is a concept scheme.\n * @param graphUris URIs of the graphs to search for concepts.\n * @param subjectUri URI of a subject.\n * @returns `true` if the subject is a concept scheme, `false` otherwise.\n */\n isConceptScheme(graphUris, subjectUri) {\n if (subjectUri) {\n const s = n3.DataFactory.namedNode(subjectUri);\n for (let _ of this.store.matchAll(graphUris, s, ontologies_1.rdf.type, ontologies_1.skos.ConceptScheme)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Get all broader concepts up to and including a concept scheme.\n * @param graphUris URIs of the graphs to search for concepts.\n * @param subjectUri URI of a concept.\n */\n getConceptSchemePath(graphUris, subjectUri) {\n return this._getConceptSchemePath(graphUris, subjectUri, [], new Set());\n }\n /**\n * Recursively find the first path from a given class to a root class.\n * @param subjectUri URI of a class.\n * @param path The current class path.\n * @param backtrack Set of URIs that have already been visited.\n * @returns The first path that is found from the given class to a root class.\n */\n _getConceptSchemePath(graphUris, subjectUri, path, backtrack) {\n const broaderConcepts = this.getBroaderConcepts(graphUris, subjectUri);\n for (let o of broaderConcepts.filter(o => !backtrack.has(o))) {\n return this._getConceptSchemePath(graphUris, o, [...path, o], backtrack);\n }\n return path;\n }\n}\nexports.ConceptRepository = ConceptRepository;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/rdf/concept-repository.ts?");
|
|
867
1209
|
|
|
868
1210
|
/***/ }),
|
|
869
1211
|
|
|
@@ -885,7 +1227,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\ncons
|
|
|
885
1227
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
886
1228
|
|
|
887
1229
|
"use strict";
|
|
888
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.IndividualRepository = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst ontologies_1 = __webpack_require__(/*! ../ontologies */ \"./src/ontologies/index.ts\");\nconst property_repository_1 = __webpack_require__(/*! ./property-repository */ \"./src/rdf/property-repository.ts\");\n/**\n * A repository for retrieving classes from graphs.\n */\nclass IndividualRepository extends property_repository_1.PropertyRepository {\n constructor(store) { super(store); }\n /**\n * Get all classes that have instances or all types of a specific individual.\n * @param graphUris The graph URIs to search.\n * @param subjectUri The URI of a subject for which to get the types (optional).\n * @param options Options for retrieving the individuals.\n * @returns A list of all individual types, or all types of a specific individual.\n */\n getIndividualTypes(graphUris, subjectUri, options) {\n const result = new Set();\n const subject = subjectUri ?
|
|
1230
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.IndividualRepository = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst ontologies_1 = __webpack_require__(/*! ../ontologies */ \"./src/ontologies/index.ts\");\nconst property_repository_1 = __webpack_require__(/*! ./property-repository */ \"./src/rdf/property-repository.ts\");\nconst { namedNode } = n3.DataFactory;\n/**\n * A repository for retrieving classes from graphs.\n */\nclass IndividualRepository extends property_repository_1.PropertyRepository {\n constructor(store) { super(store); }\n /**\n * Get all classes that have instances or all types of a specific individual.\n * @param graphUris The graph URIs to search.\n * @param subjectUri The URI of a subject for which to get the types (optional).\n * @param options Options for retrieving the individuals.\n * @returns A list of all individual types, or all types of a specific individual.\n */\n getIndividualTypes(graphUris, subjectUri, options) {\n const result = new Set();\n const subject = subjectUri ? namedNode(subjectUri) : null;\n for (const q of this.store.matchAll(graphUris, subject, ontologies_1.rdf.type, ontologies_1.owl.NamedIndividual)) {\n if (this.skip(graphUris, q.subject, options)) {\n continue;\n }\n // Note: We do not include inferred types here.\n for (const p of this.store.matchAll(graphUris, q.subject, ontologies_1.rdf.type, null, false)) {\n if (p.object.equals(ontologies_1.owl.NamedIndividual)) {\n continue;\n }\n result.add(p.object.value);\n }\n }\n return Array.from(result);\n }\n /**\n * Get all individuals in the repository.\n * @param typeUri The type of the individuals to get.\n * @param options Options for retrieving the individuals.\n * @returns A list of all individuals in the repository.\n */\n getIndividuals(graphUris, typeUri, options) {\n const result = new Set();\n for (const q of this.store.matchAll(graphUris, null, ontologies_1.rdf.type, ontologies_1.owl.NamedIndividual)) {\n if (this.skip(graphUris, q.subject, options)) {\n continue;\n }\n if (!typeUri || this.isInstanceOfType(graphUris, q.subject.value, typeUri)) {\n result.add(q.subject.value);\n }\n }\n return Array.from(result);\n }\n /**\n * Indicate if the subject is an instance of the type, or of one of its super types.\n * @param subjectUri URI of the subject.\n * @param typeUri URI of the type to check.\n * @returns true if the subject is an instance of the type, or of one of its super types.\n */\n isInstanceOfType(graphUris, subjectUri, typeUri) {\n const subject = namedNode(subjectUri);\n const type = namedNode(typeUri);\n for (const q of this.store.matchAll(graphUris, subject, ontologies_1.rdf.type, null)) {\n const o = q.object;\n if (o.termType != \"NamedNode\") {\n continue;\n }\n if (o.equals(type) || this.isSubClassOf(graphUris, o.value, type.value)) {\n return true;\n }\n }\n return false;\n }\n}\nexports.IndividualRepository = IndividualRepository;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/rdf/individual-repository.ts?");
|
|
889
1231
|
|
|
890
1232
|
/***/ }),
|
|
891
1233
|
|
|
@@ -951,7 +1293,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
951
1293
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
952
1294
|
|
|
953
1295
|
"use strict";
|
|
954
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.PropertyRepository = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst ontologies_1 = __webpack_require__(/*! ../ontologies */ \"./src/ontologies/index.ts\");\nconst class_repository_1 = __webpack_require__(/*! ./class-repository */ \"./src/rdf/class-repository.ts\");\n/**\n * A repository for retrieving properties from graphs.\n */\nclass PropertyRepository extends class_repository_1.ClassRepository {\n constructor(store) {\n super(store);\n /**\n * The predicate used to indicate the domain of a property.\n */\n this.domainPredicate = ontologies_1.rdfs.domain;\n /**\n * The predicate used to indicate the range of a property.\n */\n this.rangePredicate = ontologies_1.rdfs.range;\n }\n /**\n * Get all properties in the repository.\n * @param options Optional options for retrieving properties.\n * @returns A list of all properties in the repository.\n */\n getProperties(graphUris, options) {\n const result = new Set();\n for (let q of this.store.match(graphUris, null, ontologies_1.rdf.type, ontologies_1.rdf.Property, options?.includeInferred)) {\n if (this.skip(graphUris, q.subject, options)) {\n continue;\n }\n result.add(q.subject.value);\n }\n return Array.from(result);\n }\n /**\n * Get properties of a given type.\n * @param typeUri URI of a property type.\n * @param includeInferred Indicate if properties of a more specific type should be included in the result.\n * @returns A list of properties of the given type.\n */\n getRootPropertiesOfType(graphUris, typeUri, options) {\n const result = new Set();\n const type = new n3.NamedNode(typeUri);\n for (let q of this.store.match(graphUris, null, ontologies_1.rdf.type, type, options?.includeInferred)) {\n if (this.skip(graphUris, q.subject, options)) {\n continue;\n }\n let hasSuperProperty = false;\n for (let q2 of this.store.match(graphUris, q.subject, ontologies_1.rdfs.subPropertyOf, null, options?.includeInferred)) {\n // Note: We have not skipped the property so it is relevant for our result. However, if we want \n // to include referenced properties, then we include the referenced super property instead of the\n // current one.\n if (options?.includeReferenced && !this.hasSubject(graphUris, q2.object.value)) {\n // We must assume that the referenced super property is of the same type as the given type or a super type of it.\n result.add(q2.object.value);\n }\n else if (this.skip(graphUris, q2.object, options)) {\n // If the super property is skipped, then we ignore it.\n continue;\n }\n hasSuperProperty = true;\n break;\n }\n if (hasSuperProperty) {\n continue;\n }\n if (typeUri === ontologies_1.RDF.Property && options?.includeInferred === false) {\n // In the case of rdf:Property, we do not want to include properties that have a more specific type.\n const t = Array.from(this.store.match(graphUris, q.subject, ontologies_1.rdf.type, null, options?.includeInferred)).map(q => q.object.value);\n if (new Set(t).size == 1) {\n result.add(q.subject.value);\n }\n }\n else {\n result.add(q.subject.value);\n }\n }\n return Array.from(result);\n }\n /**\n * Get the super properties of a given property.\n * @param subjectUri URI of a property.\n * @param options Optional options for retrieving properties.\n * @returns An array of super properties of the given property, an empty array if the property has no super properties.\n */\n getSuperProperties(graphUris, subjectUri, options) {\n const result = [];\n const s = n3.DataFactory.namedNode(subjectUri);\n for (let q of this.store.match(graphUris, s, ontologies_1.rdfs.subPropertyOf, null, options?.includeInferred)) {\n if (this.skip(graphUris, q.object, options)) {\n continue;\n }\n result.push(q.object.value);\n }\n return result;\n }\n /**\n * Recursively find the first path from a given property to a root property.\n * @param subjectUri URI of a property.\n * @param path The current property path.\n * @param backtrack Set of URIs that have already been visited.\n * @param options Optional options for retrieving properties.\n * @returns The first path that is found from the given property to a root class.\n */\n _getRootPropertyPath(graphUris, subjectUri, path, backtrack, options) {\n const superClasses = this.getSuperProperties(graphUris, subjectUri, options);\n for (let o of superClasses.filter(o => !backtrack.has(o))) {\n return this._getRootPropertyPath(graphUris, o, [...path, o], backtrack, options);\n }\n return path;\n }\n /**\n * Get the first discovered path from a given property to a root property.\n * @param subjectUri URI of a property.\n * @param options Optional options for retrieving properties.\n * @returns A string array containing the first path that is found from the given property to a root property.\n */\n getRootPropertiesPath(graphUris, subjectUri, options) {\n return this._getRootPropertyPath(graphUris, subjectUri, [], new Set(), options);\n }\n /**\n * Indicate if there are sub properties of a given property.\n * @param subjectUri URI of a property.\n * @param options Optional options for retrieving properties.\n * @returns true if the property has sub properties, false otherwise.\n */\n hasSubProperties(graphUris, subjectUri, options) {\n const o = n3.DataFactory.namedNode(subjectUri);\n for (let q of this.store.match(graphUris, null, ontologies_1.rdfs.subPropertyOf, o, options?.includeInferred)) {\n if (!this.skip(graphUris, q.subject, options)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Get the sub properties of a given property or all root properties.\n * @param subjectUri URI of a property or undefined to get all root properties.\n * @param options Optional options for retrieving properties.\n * @returns An array of sub properties of the given property, an empty array if the property has no sub properties.\n */\n getSubProperties(graphUris, subjectUri, options) {\n if (subjectUri) {\n const result = new Set();\n const o = n3.DataFactory.namedNode(subjectUri);\n for (let q of this.store.match(graphUris, null, ontologies_1.rdfs.subPropertyOf, o, options?.includeInferred)) {\n if (this.skip(graphUris, q.subject, options)) {\n continue;\n }\n result.add(q.subject.value);\n }\n return Array.from(result);\n }\n else {\n return this.getRootProperties(graphUris, options);\n }\n }\n /**\n * Get all properties from the repository that have no super properties.\n * @param options Optional options for retrieving properties.\n * @returns An array of root properties in the repository.\n */\n getRootProperties(graphUris, options) {\n const result = new Set();\n const properties = new Set(this.getProperties(graphUris, options));\n for (let p of properties) {\n let hasSuperProperty = false;\n for (let q of this.store.match(graphUris, new n3.NamedNode(p), ontologies_1.rdfs.subPropertyOf, null, options?.includeInferred)) {\n const includeReferenced = options?.includeReferenced ?? false;\n const skip = this.skip(graphUris, q.object, options);\n // Do not skip the super property if it is only referenced and the includeReferenced option is set.\n if (q.object.termType != \"NamedNode\" || skip && (!includeReferenced || includeReferenced && this.hasSubject(graphUris, q.object.value))) {\n continue;\n }\n hasSuperProperty = true;\n // If we have a super property that is not in the list of properties and not excluded by the options, we add it to the result.\n if (!properties.has(q.object.value)) {\n result.add(q.object.value);\n }\n break;\n }\n if (!hasSuperProperty) {\n result.add(p);\n }\n }\n return Array.from(result);\n }\n /**\n * Indicate if there is an equivalent property of a given property.\n * @param propertyUri URI of a property.\n * @returns true if the property has an equivalent property, false otherwise.\n */\n hasEquivalentProperty(graphUris, propertyUri) {\n const s = n3.DataFactory.namedNode(propertyUri);\n // The OWL resoner will assert the equivalent class relationship in both directions.\n for (let _ of this.store.match(graphUris, s, ontologies_1.owl.equivalentProperty, null)) {\n return true;\n }\n return false;\n }\n /**\n * Get the domain of a given property.\n * @param propertyUri URI of a property.\n * @returns The URI of the domain of the given property. If no domain is specified, rdfs:Resource is returned.\n */\n getDomain(graphUris, propertyUri) {\n const s = n3.DataFactory.namedNode(propertyUri);\n for (let q of this.store.match(graphUris, s, this.domainPredicate, null)) {\n return q.object.value;\n }\n return ontologies_1.rdfs.Resource.value;\n }\n /**\n * Get the range of a given property.\n * @param propertyUri URI of a property.\n * @returns The URI of the range of the given property. If no range is specified, `undefined` is returned.\n */\n getRange(graphUris, propertyUri) {\n const s = n3.DataFactory.namedNode(propertyUri);\n for (let q of this.store.match(graphUris, s, this.rangePredicate, null)) {\n return q.object.value;\n }\n return undefined;\n }\n /**\n * Get all asserted and inferred property types.\n * @param graphUris The URI of the graph or an array of graphs to search for property types.\n * @param options Optional options for retrieving properties.\n * @returns A list of all property types in the repository.\n */\n getPropertyTypes(graphUris, options) {\n const result = new Set();\n const properties = this.getProperties(graphUris, options).map(p => new n3.NamedNode(p));\n for (let p of properties) {\n const types = new Set(Array.from(this.store.match(graphUris, p, ontologies_1.rdf.type, null, false)).map(t => t.object.value));\n if (types.size > 0) {\n for (let t of types) {\n // Do not assert rdf:Property for properties that have multiple types.\n if (t !== ontologies_1.RDF.Property || types.size == 1) {\n result.add(t);\n }\n }\n }\n else {\n // If there are no asserted types, we need to infer rdf:Property.\n result.add(ontologies_1.RDF.Property);\n }\n }\n return Array.from(result);\n }\n}\nexports.PropertyRepository = PropertyRepository;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/rdf/property-repository.ts?");
|
|
1296
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.PropertyRepository = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst ontologies_1 = __webpack_require__(/*! ../ontologies */ \"./src/ontologies/index.ts\");\nconst class_repository_1 = __webpack_require__(/*! ./class-repository */ \"./src/rdf/class-repository.ts\");\nconst { namedNode } = n3.DataFactory;\n/**\n * A repository for retrieving properties from graphs.\n */\nclass PropertyRepository extends class_repository_1.ClassRepository {\n constructor(store) {\n super(store);\n /**\n * The predicate used to indicate the domain of a property.\n */\n this.domainPredicate = ontologies_1.rdfs.domain;\n /**\n * The predicate used to indicate the range of a property.\n */\n this.rangePredicate = ontologies_1.rdfs.range;\n }\n /**\n * Get all properties in the repository.\n * @param options Optional options for retrieving properties.\n * @returns A list of all properties in the repository.\n */\n getProperties(graphUris, options) {\n const result = new Set();\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.rdf.type, ontologies_1.rdf.Property, options?.includeInferred)) {\n if (this.skip(graphUris, q.subject, options)) {\n continue;\n }\n result.add(q.subject.value);\n }\n return Array.from(result);\n }\n /**\n * Get properties of a given type.\n * @param typeUri URI of a property type.\n * @param includeInferred Indicate if properties of a more specific type should be included in the result.\n * @returns A list of properties of the given type.\n */\n getRootPropertiesOfType(graphUris, typeUri, options) {\n const result = new Set();\n const type = namedNode(typeUri);\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.rdf.type, type, options?.includeInferred)) {\n if (this.skip(graphUris, q.subject, options)) {\n continue;\n }\n let hasSuperProperty = false;\n for (let q2 of this.store.matchAll(graphUris, q.subject, ontologies_1.rdfs.subPropertyOf, null, options?.includeInferred)) {\n // Note: We have not skipped the property so it is relevant for our result. However, if we want \n // to include referenced properties, then we include the referenced super property instead of the\n // current one.\n if (options?.includeReferenced && !this.hasSubject(graphUris, q2.object.value)) {\n // We must assume that the referenced super property is of the same type as the given type or a super type of it.\n result.add(q2.object.value);\n }\n else if (this.skip(graphUris, q2.object, options)) {\n // If the super property is skipped, then we ignore it.\n continue;\n }\n hasSuperProperty = true;\n break;\n }\n if (hasSuperProperty) {\n continue;\n }\n if (typeUri === ontologies_1.RDF.Property && options?.includeInferred === false) {\n // In the case of rdf:Property, we do not want to include properties that have a more specific type.\n const t = Array.from(this.store.matchAll(graphUris, q.subject, ontologies_1.rdf.type, null, options?.includeInferred)).map(q => q.object.value);\n if (new Set(t).size == 1) {\n result.add(q.subject.value);\n }\n }\n else {\n result.add(q.subject.value);\n }\n }\n return Array.from(result);\n }\n /**\n * Get the super properties of a given property.\n * @param subjectUri URI of a property.\n * @param options Optional options for retrieving properties.\n * @returns An array of super properties of the given property, an empty array if the property has no super properties.\n */\n getSuperProperties(graphUris, subjectUri, options) {\n const result = [];\n const s = namedNode(subjectUri);\n for (let q of this.store.matchAll(graphUris, s, ontologies_1.rdfs.subPropertyOf, null, options?.includeInferred)) {\n if (this.skip(graphUris, q.object, options)) {\n continue;\n }\n result.push(q.object.value);\n }\n return result;\n }\n /**\n * Recursively find the first path from a given property to a root property.\n * @param subjectUri URI of a property.\n * @param path The current property path.\n * @param backtrack Set of URIs that have already been visited.\n * @param options Optional options for retrieving properties.\n * @returns The first path that is found from the given property to a root class.\n */\n _getRootPropertyPath(graphUris, subjectUri, path, backtrack, options) {\n const superClasses = this.getSuperProperties(graphUris, subjectUri, options);\n for (let o of superClasses.filter(o => !backtrack.has(o))) {\n return this._getRootPropertyPath(graphUris, o, [...path, o], backtrack, options);\n }\n return path;\n }\n /**\n * Get the first discovered path from a given property to a root property.\n * @param subjectUri URI of a property.\n * @param options Optional options for retrieving properties.\n * @returns A string array containing the first path that is found from the given property to a root property.\n */\n getRootPropertiesPath(graphUris, subjectUri, options) {\n return this._getRootPropertyPath(graphUris, subjectUri, [], new Set(), options);\n }\n /**\n * Indicate if there are sub properties of a given property.\n * @param subjectUri URI of a property.\n * @param options Optional options for retrieving properties.\n * @returns true if the property has sub properties, false otherwise.\n */\n hasSubProperties(graphUris, subjectUri, options) {\n const o = namedNode(subjectUri);\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.rdfs.subPropertyOf, o, options?.includeInferred)) {\n if (!this.skip(graphUris, q.subject, options)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Get the sub properties of a given property or all root properties.\n * @param subjectUri URI of a property or undefined to get all root properties.\n * @param options Optional options for retrieving properties.\n * @returns An array of sub properties of the given property, an empty array if the property has no sub properties.\n */\n getSubProperties(graphUris, subjectUri, options) {\n if (subjectUri) {\n const result = new Set();\n const o = namedNode(subjectUri);\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.rdfs.subPropertyOf, o, options?.includeInferred)) {\n if (this.skip(graphUris, q.subject, options)) {\n continue;\n }\n result.add(q.subject.value);\n }\n return Array.from(result);\n }\n else {\n return this.getRootProperties(graphUris, options);\n }\n }\n /**\n * Get all properties from the repository that have no super properties.\n * @param options Optional options for retrieving properties.\n * @returns An array of root properties in the repository.\n */\n getRootProperties(graphUris, options) {\n const result = new Set();\n const properties = new Set(this.getProperties(graphUris, options));\n for (let p of properties) {\n let hasSuperProperty = false;\n for (let q of this.store.matchAll(graphUris, namedNode(p), ontologies_1.rdfs.subPropertyOf, null, options?.includeInferred)) {\n const includeReferenced = options?.includeReferenced ?? false;\n const skip = this.skip(graphUris, q.object, options);\n // Do not skip the super property if it is only referenced and the includeReferenced option is set.\n if (q.object.termType != \"NamedNode\" || skip && (!includeReferenced || includeReferenced && this.hasSubject(graphUris, q.object.value))) {\n continue;\n }\n hasSuperProperty = true;\n // If we have a super property that is not in the list of properties and not excluded by the options, we add it to the result.\n if (!properties.has(q.object.value)) {\n result.add(q.object.value);\n }\n break;\n }\n if (!hasSuperProperty) {\n result.add(p);\n }\n }\n return Array.from(result);\n }\n /**\n * Indicate if there is an equivalent property of a given property.\n * @param propertyUri URI of a property.\n * @returns true if the property has an equivalent property, false otherwise.\n */\n hasEquivalentProperty(graphUris, propertyUri) {\n const s = namedNode(propertyUri);\n // The OWL resoner will assert the equivalent class relationship in both directions.\n for (let _ of this.store.matchAll(graphUris, s, ontologies_1.owl.equivalentProperty, null)) {\n return true;\n }\n return false;\n }\n /**\n * Get the domain of a given property.\n * @param propertyUri URI of a property.\n * @returns The URI of the domain of the given property. If no domain is specified, rdfs:Resource is returned.\n */\n getDomain(graphUris, propertyUri) {\n const s = namedNode(propertyUri);\n for (let q of this.store.matchAll(graphUris, s, this.domainPredicate, null)) {\n return q.object.value;\n }\n return ontologies_1.rdfs.Resource.value;\n }\n /**\n * Get the range of a given property.\n * @param propertyUri URI of a property.\n * @returns The URI of the range of the given property. If no range is specified, `undefined` is returned.\n */\n getRange(graphUris, propertyUri) {\n const s = namedNode(propertyUri);\n for (let q of this.store.matchAll(graphUris, s, this.rangePredicate, null)) {\n return q.object.value;\n }\n return undefined;\n }\n /**\n * Get all asserted and inferred property types.\n * @param graphUris The URI of the graph or an array of graphs to search for property types.\n * @param options Optional options for retrieving properties.\n * @returns A list of all property types in the repository.\n */\n getPropertyTypes(graphUris, options) {\n const result = new Set();\n const properties = this.getProperties(graphUris, options).map(p => namedNode(p));\n for (let p of properties) {\n const types = new Set(Array.from(this.store.matchAll(graphUris, p, ontologies_1.rdf.type, null, false)).map(t => t.object.value));\n if (types.size > 0) {\n for (let t of types) {\n // Do not assert rdf:Property for properties that have multiple types.\n if (t !== ontologies_1.RDF.Property || types.size == 1) {\n result.add(t);\n }\n }\n }\n else {\n // If there are no asserted types, we need to infer rdf:Property.\n result.add(ontologies_1.RDF.Property);\n }\n }\n return Array.from(result);\n }\n}\nexports.PropertyRepository = PropertyRepository;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/rdf/property-repository.ts?");
|
|
955
1297
|
|
|
956
1298
|
/***/ }),
|
|
957
1299
|
|
|
@@ -962,7 +1304,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
962
1304
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
963
1305
|
|
|
964
1306
|
"use strict";
|
|
965
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.OwlReasoner = void 0;\nconst ontologies_1 = __webpack_require__(/*! ../../ontologies */ \"./src/ontologies/index.ts\");\nconst shacl_reasoner_1 = __webpack_require__(/*! ./shacl-reasoner */ \"./src/rdf/reasoners/shacl-reasoner.ts\");\n/**\n * A simple OWL reasoner that expands the graph with inferred triples.\n */\nclass OwlReasoner extends shacl_reasoner_1.ShaclReasoner {\n constructor() {\n super();\n this.restrictions = {};\n }\n afterInference() {\n super.afterInference();\n for (let r of Object.values(this.restrictions)) {\n const p = r.onProperty;\n if (!p)\n continue;\n if (r.onDataRange) {\n this.store.
|
|
1307
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.OwlReasoner = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst ontologies_1 = __webpack_require__(/*! ../../ontologies */ \"./src/ontologies/index.ts\");\nconst shacl_reasoner_1 = __webpack_require__(/*! ./shacl-reasoner */ \"./src/rdf/reasoners/shacl-reasoner.ts\");\nconst { quad } = n3.DataFactory;\n/**\n * A simple OWL reasoner that expands the graph with inferred triples.\n */\nclass OwlReasoner extends shacl_reasoner_1.ShaclReasoner {\n constructor() {\n super();\n this.restrictions = {};\n }\n afterInference() {\n super.afterInference();\n for (let r of Object.values(this.restrictions)) {\n const p = r.onProperty;\n if (!p)\n continue;\n if (r.onDataRange) {\n this.store.add(quad(p, ontologies_1.rdf.type, ontologies_1.owl.DatatypeProperty, this.targetGraph));\n this.store.add(quad(p, ontologies_1.rdfs.range, r.onDataRange, this.targetGraph));\n }\n else if (r.onClass) {\n this.store.add(quad(p, ontologies_1.rdf.type, ontologies_1.owl.ObjectProperty, this.targetGraph));\n this.store.add(quad(p, ontologies_1.rdfs.range, r.onClass, this.targetGraph));\n }\n else if (r.allValuesFrom) {\n this.store.add(quad(p, ontologies_1.rdf.type, ontologies_1.owl.ObjectProperty, this.targetGraph));\n }\n else if (r.someValuesFrom) {\n this.store.add(quad(p, ontologies_1.rdf.type, ontologies_1.owl.ObjectProperty, this.targetGraph));\n }\n }\n this.restrictions = {};\n }\n resetState() {\n super.resetState();\n this.restrictions = {};\n }\n inferClassAxioms(q) {\n super.inferClassAxioms(q);\n let s = q.subject;\n let p = q.predicate;\n let o = q.object.termType != \"Literal\" ? q.object : undefined;\n if (!o) {\n return;\n }\n // See: https://www.w3.org/TR/owl2-profiles/#Reasoning_in_OWL_2_RL_and_RDF_Graphs_using_Rules\n switch (p.value) {\n case ontologies_1.rdf.type.id: {\n if (o.value == ontologies_1.owl.Restriction.id) {\n this.restrictions[s.value] = {};\n }\n return;\n }\n case ontologies_1.owl.equivalentClass.id: {\n this.assertClass(s);\n if (o && !this.isW3CNode(o)) {\n this.assertClass(o);\n }\n // The opposite is also true.\n if (o.termType == \"NamedNode\") {\n this.store.add(quad(o, ontologies_1.owl.equivalentClass, s, this.targetGraph));\n }\n return;\n }\n case ontologies_1.owl.complementOf.id:\n case ontologies_1.owl.disjointWith.id: {\n this.assertClass(s);\n if (o && !this.isW3CNode(o)) {\n this.assertClass(o);\n }\n return;\n }\n case ontologies_1.owl.intersectionOf.id: {\n let equivalentSubjects = [...this.store.match(null, ontologies_1.owl.equivalentClass, s)]\n .map(q => q.subject)\n .filter(q => q.termType == \"NamedNode\");\n // Rule #scm-int\n let classes = this.getListItems(o.value);\n if (!Array.isArray(classes)) {\n this.errors.push({ quad: q, message: `Expected an array of classes for ${o.value}` });\n return;\n }\n for (let c of classes) {\n if (c.termType != \"NamedNode\") {\n continue;\n }\n this.store.add(quad(s, ontologies_1.rdfs.subClassOf, c, this.targetGraph));\n for (let es of equivalentSubjects) {\n this.store.add(quad(es, ontologies_1.rdfs.subClassOf, c, this.targetGraph));\n }\n }\n return;\n }\n case ontologies_1.owl.unionOf.id: {\n let equivalentSubjects = [...this.store.match(null, ontologies_1.owl.equivalentClass, s)]\n .map(q => q.subject)\n .filter(q => q.termType == \"NamedNode\");\n // Rule #scm-uni\n let classes = this.getListItems(o.value);\n if (!Array.isArray(classes)) {\n this.errors.push({ quad: q, message: `Expected an array of classes for ${o.value}` });\n return;\n }\n for (let c of classes) {\n if (c.termType != \"NamedNode\") {\n continue;\n }\n this.store.add(quad(c, ontologies_1.rdfs.subClassOf, s, this.targetGraph));\n for (let es of equivalentSubjects) {\n this.store.add(quad(c, ontologies_1.rdfs.subClassOf, es, this.targetGraph));\n }\n }\n return;\n }\n case ontologies_1.owl.onClass.id: {\n if (o.termType == \"NamedNode\") {\n this.assertClass(o);\n }\n return;\n }\n case ontologies_1.owl.onDataRange.id: {\n if (o.termType == \"NamedNode\") {\n this.store.add(quad(o, ontologies_1.rdf.type, ontologies_1.rdfs.Datatype, this.targetGraph));\n }\n return;\n }\n // Note:\n // e.g. Gist also uses these on xsd:string, so inferring that this is a \n // class is technically true, however, it would lead to undesirable results.\n //\n // case owl.allValuesFrom.id: {\n // if (o.termType == \"NamedNode\") {\n // this.store.add(quad(o, rdf.type, rdfs.Class, this.targetGraph));\n // }\n //\n // return;\n // }\n // case owl.someValuesFrom.id: {\n // if (o.termType == \"NamedNode\") {\n // this.store.add(quad(o, rdf.type, rdfs.Class, this.targetGraph));\n // }\n //\n // break;\n // }\n }\n }\n inferPropertyAxioms(q) {\n super.inferPropertyAxioms(q);\n let s = q.subject;\n let p = q.predicate;\n let o = q.object.termType != \"Literal\" ? q.object : undefined;\n if (!o) {\n return;\n }\n switch (p.value) {\n case ontologies_1.owl.onProperty.id: {\n this.assertProperty(o);\n if (this.restrictions[s.value] && o.termType == \"NamedNode\") {\n this.restrictions[s.value].onProperty = o;\n }\n return;\n }\n case ontologies_1.owl.onClass.id: {\n if (this.restrictions[s.value] && o.termType == \"NamedNode\") {\n this.restrictions[s.value].onClass = o;\n }\n return;\n }\n case ontologies_1.owl.onDataRange.id: {\n if (this.restrictions[s.value] && o.termType == \"NamedNode\") {\n this.restrictions[s.value].onDataRange = o;\n }\n return;\n }\n case ontologies_1.owl.allValuesFrom.id: {\n if (this.restrictions[s.value]) {\n this.restrictions[s.value].allValuesFrom = o;\n }\n return;\n }\n case ontologies_1.owl.someValuesFrom.id: {\n if (this.restrictions[s.value]) {\n this.restrictions[s.value].someValuesFrom = o;\n }\n return;\n }\n case ontologies_1.owl.equivalentProperty.id: {\n this.assertProperty(s);\n this.assertProperty(o);\n // The opposite is also true.\n if (o.termType == \"NamedNode\") {\n this.store.add(quad(o, ontologies_1.owl.equivalentProperty, s, this.targetGraph));\n }\n return;\n }\n case ontologies_1.rdf.type.id: {\n switch (o.value) {\n case ontologies_1.owl.AnnotationProperty.id:\n case ontologies_1.owl.AsymmetricProperty.id:\n case ontologies_1.owl.DatatypeProperty.id:\n case ontologies_1.owl.DeprecatedProperty.id:\n case ontologies_1.owl.FunctionalProperty.id:\n case ontologies_1.owl.InverseFunctionalProperty.id:\n case ontologies_1.owl.IrreflexiveProperty.id:\n case ontologies_1.owl.ObjectProperty.id:\n case ontologies_1.owl.OntologyProperty.id:\n case ontologies_1.owl.ReflexiveProperty.id:\n case ontologies_1.owl.SymmetricProperty.id:\n case ontologies_1.owl.TransitiveProperty.id: {\n this.assertProperty(s);\n }\n }\n return;\n }\n }\n }\n}\nexports.OwlReasoner = OwlReasoner;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/rdf/reasoners/owl-reasoner.ts?");
|
|
966
1308
|
|
|
967
1309
|
/***/ }),
|
|
968
1310
|
|
|
@@ -973,7 +1315,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
973
1315
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
974
1316
|
|
|
975
1317
|
"use strict";
|
|
976
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RdfsReasoner = void 0;\nconst ontologies_1 = __webpack_require__(/*! ../../ontologies */ \"./src/ontologies/index.ts\");\nconst skos_reasoner_1 = __webpack_require__(/*! ./skos-reasoner */ \"./src/rdf/reasoners/skos-reasoner.ts\");\n/**\n * A simple RDFS reasoner that expands the graph with inferred triples.\n */\nclass RdfsReasoner extends skos_reasoner_1.SkosReasoner {\n constructor() {\n super(...arguments);\n this.ontologies = new Set();\n this.classes = new Set();\n this.properties = new Set();\n this.invididuals = new Set();\n }\n isIgnoredNode(term) {\n switch (term.
|
|
1318
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RdfsReasoner = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst ontologies_1 = __webpack_require__(/*! ../../ontologies */ \"./src/ontologies/index.ts\");\nconst skos_reasoner_1 = __webpack_require__(/*! ./skos-reasoner */ \"./src/rdf/reasoners/skos-reasoner.ts\");\nconst { quad } = n3.DataFactory;\n/**\n * A simple RDFS reasoner that expands the graph with inferred triples.\n */\nclass RdfsReasoner extends skos_reasoner_1.SkosReasoner {\n constructor() {\n super(...arguments);\n this.ontologies = new Set();\n this.classes = new Set();\n this.properties = new Set();\n this.invididuals = new Set();\n }\n isIgnoredNode(term) {\n switch (term.value) {\n case ontologies_1.skos.Concept.id:\n case ontologies_1.skos.ConceptScheme.id:\n case ontologies_1.skos.Collection.id:\n case ontologies_1.skos.OrderedCollection.id:\n case ontologies_1.sh.Shape.id:\n case ontologies_1.sh.NodeShape.id:\n case ontologies_1.sh.PropertyShape.id:\n return true;\n default:\n return false;\n }\n }\n isClass(id) {\n return super.isClass(id) ||\n this.classes.has(id) ||\n this.properties.has(id) ||\n this.ontologies.has(id);\n }\n afterInference() {\n super.afterInference();\n // After all axioms have been inferred, add the inferred individuals to the graph.\n const individuals = [...this.invididuals].filter(x => !this.isClass(x.value));\n for (let individual of individuals) {\n this.store.add(quad(individual, ontologies_1.rdf.type, ontologies_1.owl.NamedIndividual, this.targetGraph));\n }\n }\n resetState() {\n this.ontologies.clear();\n this.classes.clear();\n this.properties.clear();\n this.invididuals.clear();\n }\n applyInference(quad) {\n super.applyInference(quad);\n // Treat all named nodes with rdf:type definitions as potential individuals.\n if (quad.subject.termType == \"NamedNode\" && quad.predicate.equals(ontologies_1.rdf.type)) {\n // Only consider individuals that are not of a type that is ignored such as skos:Concept.\n if (!this.isIgnoredNode(quad.object)) {\n this.invididuals.add(quad.subject);\n }\n if (quad.object.value == ontologies_1.owl.Ontology.id) {\n this.ontologies.add(quad.subject.value);\n }\n }\n this.inferClassAxioms(quad);\n this.inferPropertyAxioms(quad);\n }\n assertClass(subject) {\n this.store.add(quad(subject, ontologies_1.rdf.type, ontologies_1.rdfs.Class, this.targetGraph));\n this.classes.add(subject.value);\n }\n inferClassAxioms(q) {\n let s = q.subject;\n let p = q.predicate;\n let o = q.object.termType != \"Literal\" ? q.object : undefined;\n if (!o) {\n return;\n }\n switch (p.value) {\n case ontologies_1.rdf.type.id: {\n if (o.equals(ontologies_1.rdfs.Class)) {\n // No need to infer the class type, as it is already asserted.\n this.classes.add(s.value);\n }\n else if (o.equals(ontologies_1.owl.Class)) {\n this.assertClass(s);\n }\n else if (!this.isW3CNode(o)) {\n this.assertClass(o);\n }\n return;\n }\n case ontologies_1.rdfs.subClassOf.id: {\n this.assertClass(s);\n if (!this.isW3CNode(o)) {\n this.assertClass(o);\n }\n else if (o.equals(ontologies_1.rdfs.Resource)) {\n this.store.add(quad(ontologies_1.rdfs.Resource, ontologies_1.rdf.type, ontologies_1.rdfs.Class, this.targetGraph));\n }\n else if (o.equals(ontologies_1.rdfs.Class)) {\n this.store.add(quad(ontologies_1.rdfs.Class, ontologies_1.rdf.type, ontologies_1.rdfs.Class, this.targetGraph));\n this.store.add(quad(ontologies_1.rdfs.Class, ontologies_1.rdfs.subClassOf, ontologies_1.rdfs.Resource, this.targetGraph));\n }\n else if (o.equals(ontologies_1.rdfs.Datatype)) {\n this.store.add(quad(ontologies_1.rdfs.Datatype, ontologies_1.rdf.type, ontologies_1.rdfs.Class, this.targetGraph));\n this.store.add(quad(ontologies_1.rdfs.Datatype, ontologies_1.rdfs.subClassOf, ontologies_1.rdfs.Class, this.targetGraph));\n }\n else if (o.equals(ontologies_1.owl.Class)) {\n this.store.add(quad(ontologies_1.owl.Class, ontologies_1.rdf.type, ontologies_1.rdfs.Class, this.targetGraph));\n this.store.add(quad(ontologies_1.owl.Class, ontologies_1.rdfs.subClassOf, ontologies_1.rdfs.Class, this.targetGraph));\n }\n return;\n }\n case ontologies_1.rdfs.range.id:\n case ontologies_1.rdfs.domain.id: {\n if (!this.isW3CNode(o)) {\n this.assertClass(o);\n }\n return;\n }\n }\n }\n assertProperty(subject) {\n this.store.add(quad(subject, ontologies_1.rdf.type, ontologies_1.rdf.Property, this.targetGraph));\n this.properties.add(subject.value);\n }\n inferPropertyAxioms(quad) {\n let s = quad.subject;\n let p = quad.predicate;\n let o = quad.object.termType != \"Literal\" ? quad.object : undefined;\n if (!o) {\n return;\n }\n switch (p.value) {\n case ontologies_1.rdf.type.id: {\n if (o.equals(ontologies_1.rdf.Property)) {\n // No need to infer the property type, as it is already asserted.\n this.properties.add(s.value);\n }\n return;\n }\n case ontologies_1.rdfs.range.id:\n case ontologies_1.rdfs.domain.id: {\n this.assertProperty(s);\n return;\n }\n }\n }\n}\nexports.RdfsReasoner = RdfsReasoner;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/rdf/reasoners/rdfs-reasoner.ts?");
|
|
977
1319
|
|
|
978
1320
|
/***/ }),
|
|
979
1321
|
|
|
@@ -984,7 +1326,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
984
1326
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
985
1327
|
|
|
986
1328
|
"use strict";
|
|
987
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ReasonerBase = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst ontologies_1 = __webpack_require__(/*! ../../ontologies */ \"./src/ontologies/index.ts\");\n/**\n * A base class for reasoners that expand graphs with inferred triples.\n */\nclass ReasonerBase {\n constructor() {\n this.store =
|
|
1329
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ReasonerBase = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst rdf_stores_1 = __webpack_require__(/*! rdf-stores */ \"./node_modules/rdf-stores/index.js\");\nconst ontologies_1 = __webpack_require__(/*! ../../ontologies */ \"./src/ontologies/index.ts\");\nconst { namedNode, blankNode } = n3.DataFactory;\n/**\n * A base class for reasoners that expand graphs with inferred triples.\n */\nclass ReasonerBase {\n constructor() {\n /**\n * Appendix to the IRI of a graph that is the result of reasoning over another graph.\n */\n this.inferenceGraphKey = \"inference=mentor\";\n this.store = rdf_stores_1.RdfStore.createDefault().asDataset();\n this.errors = [];\n }\n /**\n * Get the IRI of the graph containing the inferenced triples.\n * @param uri IRI of the graph to be reasoned upon.\n * @returns The IRI of the graph containing the inferenced triples.\n */\n getInferenceGraphUri(uri) {\n // Note: Append the inferenceGraphFragment to any existing fragment id or we create a new one. The reasoning \n // is that when sorting or prefixing IRIs the inference graph will be at the end and sorted after the \n // original IRI and existing prefixes will still work.\n const u = typeof uri === \"string\" ? uri : uri.value;\n const n = u.indexOf('?');\n // If there is no fragment id, then append one.\n const ns = n > -1 ? u + '&' : u + '?';\n // Append the inference graph fragment.\n return ns + this.inferenceGraphKey;\n }\n isInferenceGraphUri(uri) {\n const u = typeof uri === \"string\" ? uri : uri.value;\n return u.endsWith(this.inferenceGraphKey);\n }\n getGraphNode(graph) {\n if (typeof graph === \"string\") {\n return namedNode(graph);\n }\n else {\n return graph;\n }\n }\n isW3CNode(term) {\n return term.value.startsWith(\"http://www.w3.org\");\n }\n /**\n * Get the URIs of ordered list members in the store.\n * @param graphUris Optional graph URI or array of graph URIs to query.\n * @param listUri URI of the list to get the items from.\n * @returns An array of URIs of the items in the list.\n */\n getListItems(listUri) {\n // To do: Fix #10\n const list = listUri.includes(':') ? namedNode(listUri) : blankNode(listUri);\n return this._getListItems(list);\n }\n _getListItems(subject) {\n if (!this.sourceGraph) {\n return [];\n }\n let first = Array.from(this.match(this.sourceGraph, subject, ontologies_1.rdf.first, null));\n if (!first.length) {\n return [];\n }\n const rest = Array.from(this.match(this.sourceGraph, subject, ontologies_1.rdf.rest, null));\n const firstItem = first[0].object;\n const restList = rest[0]?.object;\n if (restList.value === ontologies_1.RDF.nil) {\n return [firstItem];\n }\n else {\n const restItems = this._getListItems(restList);\n return [firstItem, ...restItems];\n }\n }\n /**\n * Query the store for triples matching the given pattern supporting multiple graphs.\n * @param graphUris Optional graph URI or array of graph URIs to query.\n * @param subject A subject URI or null to match any subject.\n * @param predicate A predicate URI or null to match any predicate.\n * @param object An object URI or null to match any object.\n * @todo Refactor and merge with the same method in the Mentor RDF Store class.\n */\n *match(graph, subject, predicate, object) {\n if (graph !== undefined) {\n yield* this.store.match(subject, predicate, object, graph);\n }\n else {\n yield* this.store.match(subject, predicate, object);\n }\n }\n expand(store, sourceGraph, targetGraph) {\n if (!targetGraph) {\n targetGraph = this.getInferenceGraphUri(sourceGraph);\n }\n this.store = store;\n this.sourceGraph = this.getGraphNode(sourceGraph);\n this.targetGraph = this.getGraphNode(targetGraph);\n // Ensure the target graph is empty so this function is idempotent and consistent.\n for (let quad of store.match(null, null, null, this.targetGraph)) {\n store.delete(quad);\n }\n this.beforeInference();\n for (let quad of store.match(null, null, null, this.sourceGraph)) {\n this.applyInference(quad);\n }\n this.afterInference();\n this.resetState();\n return store;\n }\n beforeInference() { }\n afterInference() { }\n resetState() { }\n}\nexports.ReasonerBase = ReasonerBase;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/rdf/reasoners/reasoner.ts?");
|
|
988
1330
|
|
|
989
1331
|
/***/ }),
|
|
990
1332
|
|
|
@@ -995,7 +1337,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
995
1337
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
996
1338
|
|
|
997
1339
|
"use strict";
|
|
998
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ShaclReasoner = void 0;\nconst ontologies_1 = __webpack_require__(/*! ../../ontologies */ \"./src/ontologies/index.ts\");\nconst rdfs_reasoner_1 = __webpack_require__(/*! ./rdfs-reasoner */ \"./src/rdf/reasoners/rdfs-reasoner.ts\");\n/**\n * A simple SKOS reasoner that expands the graph with inferred triples.\n */\nclass ShaclReasoner extends rdfs_reasoner_1.RdfsReasoner {\n constructor() {\n super(...arguments);\n this.classes = new Set();\n }\n isClass(id) {\n return this.classes.has(id) || super.isClass(id);\n }\n applyInference(quad) {\n super.applyInference(quad);\n this.inferShapeAxioms(quad);\n }\n resetState() {\n super.resetState();\n this.classes.clear();\n }\n assertShape(subject, type) {\n this.store.
|
|
1340
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ShaclReasoner = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst ontologies_1 = __webpack_require__(/*! ../../ontologies */ \"./src/ontologies/index.ts\");\nconst rdfs_reasoner_1 = __webpack_require__(/*! ./rdfs-reasoner */ \"./src/rdf/reasoners/rdfs-reasoner.ts\");\nconst { quad } = n3.DataFactory;\n/**\n * A simple SKOS reasoner that expands the graph with inferred triples.\n */\nclass ShaclReasoner extends rdfs_reasoner_1.RdfsReasoner {\n constructor() {\n super(...arguments);\n this.classes = new Set();\n }\n isClass(id) {\n return this.classes.has(id) || super.isClass(id);\n }\n applyInference(quad) {\n super.applyInference(quad);\n this.inferShapeAxioms(quad);\n }\n resetState() {\n super.resetState();\n this.classes.clear();\n }\n assertShape(subject, type) {\n this.store.add(quad(subject, ontologies_1.rdf.type, ontologies_1.sh.Shape, this.targetGraph));\n if (type) {\n this.store.add(quad(subject, ontologies_1.rdf.type, type, this.targetGraph));\n }\n this.classes.add(subject.value);\n }\n assertValidator(subject) {\n this.store.add(quad(subject, ontologies_1.rdf.type, ontologies_1.sh.Validator, this.targetGraph));\n this.classes.add(subject.value);\n }\n assertParameterizable(subject) {\n this.store.add(quad(subject, ontologies_1.rdf.type, ontologies_1.sh.Parameterizable, this.targetGraph));\n this.classes.add(subject.value);\n }\n assertRule(subject) {\n this.store.add(quad(subject, ontologies_1.rdf.type, ontologies_1.sh.Rule, this.targetGraph));\n this.classes.add(subject.value);\n }\n isShapeType(subject) {\n switch (subject.value) {\n case ontologies_1.sh.Shape.id:\n case ontologies_1.sh.NodeShape.id:\n case ontologies_1.sh.PropertyShape.id:\n case ontologies_1.sh.Parameter.id: {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n isRuleType(subject) {\n switch (subject.value) {\n case ontologies_1.sh.Rule.id:\n case ontologies_1.sh.JSRule.id:\n case ontologies_1.sh.SPARQLRule.id:\n case ontologies_1.sh.TripleRule.id: {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n isValidatorType(subject) {\n switch (subject.value) {\n case ontologies_1.sh.Validator.id:\n case ontologies_1.sh.JSValidator.id:\n case ontologies_1.sh.SPARQLAskValidator.id:\n case ontologies_1.sh.SPARQLSelectValidator.id: {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n isParameterizableType(subject) {\n switch (subject.value) {\n case ontologies_1.sh.Parameter.id:\n case ontologies_1.sh.ConstraintComponent.id:\n case ontologies_1.sh.Function.id:\n case ontologies_1.sh.JSFunction.id:\n case ontologies_1.sh.SPARQLFunction.id:\n case ontologies_1.sh.TargetType.id:\n case ontologies_1.sh.JSTargetType.id:\n case ontologies_1.sh.SPARQLTargetType.id: {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n inferShapeAxioms(quad) {\n let s = quad.subject;\n let p = quad.predicate;\n let o = quad.object.termType != \"Literal\" ? quad.object : undefined;\n if (!o) {\n return;\n }\n switch (p.value) {\n case ontologies_1.rdf.type.id: {\n if (o.equals(ontologies_1.sh.Shape) || o.equals(ontologies_1.sh.Parameterizable)) {\n // No need to infer the type, as it is already asserted.\n this.classes.add(s.value);\n }\n else if (this.isShapeType(o)) {\n this.assertShape(s, o);\n }\n else if (this.isParameterizableType(o)) {\n this.assertParameterizable(s);\n }\n else if (this.isValidatorType(o)) {\n this.assertValidator(s);\n }\n else if (this.isRuleType(o)) {\n this.assertRule(s);\n }\n return;\n }\n case ontologies_1.sh.targetClass.value: {\n this.assertShape(s, ontologies_1.sh.NodeShape);\n this.assertClass(o);\n return;\n }\n case ontologies_1.sh.class.value: {\n this.assertShape(s, ontologies_1.sh.PropertyShape);\n this.assertClass(o);\n return;\n }\n case ontologies_1.sh.path.id: {\n this.assertShape(s, ontologies_1.sh.PropertyShape);\n this.assertProperty(o);\n return;\n }\n case ontologies_1.sh.property.id: {\n this.assertShape(s, ontologies_1.sh.NodeShape);\n this.assertShape(o, ontologies_1.sh.PropertyShape);\n return;\n }\n case ontologies_1.sh.parameter.id: {\n this.assertShape(o, ontologies_1.sh.Parameter);\n this.assertParameterizable(s);\n return;\n }\n case ontologies_1.sh.labelTemplate.id: {\n this.assertParameterizable(s);\n return;\n }\n case ontologies_1.sh.validator.id: {\n this.assertValidator(o);\n return;\n }\n case ontologies_1.sh.rule.id: {\n this.assertRule(o);\n return;\n }\n case ontologies_1.sh.subject.value:\n case ontologies_1.sh.predicate.id:\n case ontologies_1.sh.object.id: {\n this.assertRule(s);\n return;\n }\n }\n }\n}\nexports.ShaclReasoner = ShaclReasoner;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/rdf/reasoners/shacl-reasoner.ts?");
|
|
999
1341
|
|
|
1000
1342
|
/***/ }),
|
|
1001
1343
|
|
|
@@ -1006,7 +1348,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
1006
1348
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
1007
1349
|
|
|
1008
1350
|
"use strict";
|
|
1009
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.SkosReasoner = void 0;\nconst ontologies_1 = __webpack_require__(/*! ../../ontologies */ \"./src/ontologies/index.ts\");\nconst reasoner_1 = __webpack_require__(/*! ./reasoner */ \"./src/rdf/reasoners/reasoner.ts\");\n/**\n * A simple SKOS reasoner that expands the graph with inferred triples.\n */\nclass SkosReasoner extends reasoner_1.ReasonerBase {\n constructor() {\n super(...arguments);\n this.concepts = new Set();\n this.conceptSchemes = new Set();\n this.collections = new Set();\n }\n applyInference(quad) {\n this.inferConceptAxioms(quad);\n this.inferCollectionAxioms(quad);\n }\n assertConcept(subject) {\n this.store.
|
|
1351
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.SkosReasoner = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst ontologies_1 = __webpack_require__(/*! ../../ontologies */ \"./src/ontologies/index.ts\");\nconst reasoner_1 = __webpack_require__(/*! ./reasoner */ \"./src/rdf/reasoners/reasoner.ts\");\nconst { quad } = n3.DataFactory;\n/**\n * A simple SKOS reasoner that expands the graph with inferred triples.\n */\nclass SkosReasoner extends reasoner_1.ReasonerBase {\n constructor() {\n super(...arguments);\n this.concepts = new Set();\n this.conceptSchemes = new Set();\n this.collections = new Set();\n }\n applyInference(quad) {\n this.inferConceptAxioms(quad);\n this.inferCollectionAxioms(quad);\n }\n assertConcept(subject) {\n this.store.add(quad(subject, ontologies_1.rdf.type, ontologies_1.skos.Concept, this.targetGraph));\n this.concepts.add(subject.value);\n }\n assertConceptScheme(subject) {\n this.store.add(quad(subject, ontologies_1.rdf.type, ontologies_1.skos.ConceptScheme, this.targetGraph));\n this.conceptSchemes.add(subject.value);\n }\n isClass(id) {\n return this.concepts.has(id) ||\n this.conceptSchemes.has(id) ||\n this.collections.has(id);\n }\n inferConceptAxioms(quad) {\n let s = quad.subject;\n let p = quad.predicate;\n let o = quad.object.termType != \"Literal\" ? quad.object : undefined;\n if (!o) {\n return;\n }\n switch (p.value) {\n case ontologies_1.rdf.type.id: {\n if (o.equals(ontologies_1.skos.Concept)) {\n // No need to infer the type, as it is already asserted.\n this.concepts.add(s.value);\n }\n else if (o.equals(ontologies_1.skos.ConceptScheme)) {\n // No need to infer the type, as it is already asserted.\n this.conceptSchemes.add(s.value);\n }\n return;\n }\n case ontologies_1.skos.inScheme.id: {\n this.assertConcept(s);\n this.assertConceptScheme(o);\n return;\n }\n case ontologies_1.skos.topConceptOf.id: {\n this.assertConcept(s);\n this.assertConceptScheme(o);\n return;\n }\n case ontologies_1.skos.hasTopConcept.id: {\n this.assertConcept(o);\n this.assertConceptScheme(s);\n return;\n }\n }\n }\n assertCollection(subject) {\n this.store.add(quad(subject, ontologies_1.rdf.type, ontologies_1.skos.Collection, this.targetGraph));\n this.collections.add(subject.value);\n }\n assertOrderedCollection(subject) {\n this.store.add(quad(subject, ontologies_1.rdf.type, ontologies_1.skos.OrderedCollection, this.targetGraph));\n // We do not make a distinction between collections and ordered collections here.\n this.collections.add(subject.value);\n }\n inferCollectionAxioms(quad) {\n let s = quad.subject;\n let p = quad.predicate;\n let o = quad.object.termType != \"Literal\" ? quad.object : undefined;\n if (!o) {\n return;\n }\n switch (p.value) {\n case ontologies_1.rdf.type.id: {\n if (o.equals(ontologies_1.skos.Collection)) {\n // No need to infer the type, as it is already asserted.\n this.collections.add(s.value);\n }\n else if (o.equals(ontologies_1.skos.OrderedCollection)) {\n // No need to infer the type, as it is already asserted.\n this.collections.add(s.value);\n }\n return;\n }\n case ontologies_1.skos.member.id: {\n this.assertCollection(s);\n return;\n }\n case ontologies_1.skos.memberList.id: {\n this.assertOrderedCollection(s);\n return;\n }\n }\n }\n}\nexports.SkosReasoner = SkosReasoner;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/rdf/reasoners/skos-reasoner.ts?");
|
|
1010
1352
|
|
|
1011
1353
|
/***/ }),
|
|
1012
1354
|
|
|
@@ -1017,7 +1359,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
1017
1359
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
1018
1360
|
|
|
1019
1361
|
"use strict";
|
|
1020
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ResourceRepository = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst ontologies_1 = __webpack_require__(/*! ../ontologies */ \"./src/ontologies/index.ts\");\nconst uri_1 = __webpack_require__(/*! ./uri */ \"./src/rdf/uri.ts\");\n/**\n * A repository for retrieving resources from graphs.\n */\nclass ResourceRepository {\n constructor(store) {\n this.store = store;\n }\n /**\n * Inidiates if a node should not be included in the result of a definition query.\n * @param graphUris URIs of the graphs to search.\n * @param subject The focus node.\n * @param options Definition query options.\n * @param optionDefaults Custom default values for the query options.\n * @returns\n */\n skip(graphUris, subject, options, optionDefaults = { includeBlankNodes: false, includeReferenced: false }) {\n const opts = { ...optionDefaults, ...options };\n if (!opts.includeBlankNodes && subject.termType
|
|
1362
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ResourceRepository = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst ontologies_1 = __webpack_require__(/*! ../ontologies */ \"./src/ontologies/index.ts\");\nconst uri_1 = __webpack_require__(/*! ./uri */ \"./src/rdf/uri.ts\");\nconst { namedNode, blankNode } = n3.DataFactory;\n/**\n * A repository for retrieving resources from graphs.\n */\nclass ResourceRepository {\n constructor(store) {\n this.store = store;\n }\n /**\n * Inidiates if a node should not be included in the result of a definition query.\n * @param graphUris URIs of the graphs to search.\n * @param subject The focus node.\n * @param options Definition query options.\n * @param optionDefaults Custom default values for the query options.\n * @returns\n */\n skip(graphUris, subject, options, optionDefaults = { includeBlankNodes: false, includeReferenced: false }) {\n const opts = { ...optionDefaults, ...options };\n if (!opts.includeBlankNodes && subject.termType !== \"NamedNode\") {\n // We are only interested in named nodes.\n return true;\n }\n const s = subject;\n if (!opts.includeReferenced && !this.hasSubject(graphUris, subject)) {\n // Skip the node if it is not explicitly defined in the graph as a subject.\n return true;\n }\n if (opts?.definedBy !== undefined) {\n const isDefined = this.isDefinedBy(graphUris, s, opts.definedBy);\n // Do not skip the node if it has a different namespace but is *explicitly* defined by the given URI.\n if (opts.definedBy === null && isDefined || opts.definedBy !== null && !isDefined) {\n return true;\n }\n }\n else if (opts?.notDefinedBy !== undefined) {\n for (const source of opts.notDefinedBy) {\n if (this.isDefinedBy(graphUris, s, source)) {\n return true;\n }\n }\n s;\n }\n return false;\n }\n /**\n * Indicate if a given URI exists as the subject of a triple in the graph.\n * @param graphUris URIs of the graphs to search.\n * @param subjectUri URI of the subject to search for.\n * @returns true if the URI is a subject, false otherwise.\n */\n hasSubject(graphUris, subjectUri) {\n let s;\n if (typeof subjectUri === \"string\") {\n s = namedNode(subjectUri);\n }\n else if (subjectUri.termType !== \"Literal\") {\n s = subjectUri;\n }\n if (s) {\n for (let _ of this.store.matchAll(graphUris, s, null, null, false)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Indicate if a node is explicitly defined by the given URI using the `rdfs:isDefinedBy` property, or implicitly by sharing the same namespace.\n * @param graphUris URIs of the graphs to search.\n * @param node A named node to check if it is defined by the given URI.\n * @param definedBy URI of the vocabulary that defines the resource (rdfs:isDefinedBy). Provide `null` to only return resources that have no `rdfs:isDefinedBy` property.\n * @returns `true` if the node is defined by the given URI, `false` otherwise.\n */\n isDefinedBy(graphUris, node, definedBy) {\n const s = node;\n if (definedBy === null) {\n // If there is no definedBy URI, we assume that the resource is not\n // explicitly defined by any ontology.\n for (let _ of this.store.matchAll(graphUris, s, ontologies_1.rdfs.isDefinedBy, null)) {\n return true;\n }\n }\n else {\n // We assume that a resource is defined by an ontology if it starts with the namespace of the ontology.\n if (node.value.startsWith(definedBy)) {\n return true;\n }\n // If the ontology is something like <http://purl.obolibrary.org/obo/bfo.owl> or <http://www.w3.org/ns/prov#>\n // and the subject is <http://purl.obolibrary.org/obo/BFO_0000001> or <http://www.w3.org/ns/prov#Entity>\n // then we assume that it is defined by the ontology. The OBO case shows that we need to remove the file\n // name in oder to be able to compare the namespace URIs.\n const ontologyNamespace = uri_1.Uri.getNormalizedUri(uri_1.Uri.getNamespaceIri(definedBy));\n const subjectNamespace = uri_1.Uri.getNormalizedUri(uri_1.Uri.getNamespaceIri(node.value));\n if (subjectNamespace === ontologyNamespace) {\n return true;\n }\n const o = namedNode(uri_1.Uri.getNormalizedUri(definedBy));\n // The explicit annotation of the definition source has precedence over heuristic checks.\n for (let q of this.store.matchAll(graphUris, s, ontologies_1.rdfs.isDefinedBy, null)) {\n if (uri_1.Uri.getNormalizedUri(q.object.value) === o.value) {\n return true;\n }\n }\n // A blank node is defined in the namespace if it is the object of a triple that is defined by the URI.\n if (s.termType === \"BlankNode\") {\n for (let q of this.store.matchAll(graphUris, null, null, s, false)) {\n return this.isDefinedBy(graphUris, q.subject, definedBy);\n }\n }\n }\n return false;\n }\n /**\n * Indicate if a resource has a given type in the graph.\n * @param graphUris URIs of the graphs to search.\n * @param subjectUri URI or blank node id of the subject to match.\n * @param typeUri URI of the type to match.\n * @param options Optional query parameters.\n * @returns `true` if the resource has the type, `false` otherwise.\n */\n hasType(graphUris, subjectUri, typeUri, options) {\n const o = namedNode(typeUri);\n for (let _ of this.store.matchAll(graphUris, namedNode(subjectUri), ontologies_1.rdf.type, o, options?.includeInferred)) {\n return true;\n }\n for (let _ of this.store.matchAll(graphUris, blankNode(subjectUri), ontologies_1.rdf.type, o, options?.includeInferred)) {\n return true;\n }\n return false;\n }\n /**\n * Get information about the usage of predicates in the document such as the frequency of use and the use of language tags.\n * @param graphUris URIs of the graphs to search.\n * @param predicateUris URIs of the predicates to match.\n */\n getPredicateUsageStats(graphUris, predicateUris = undefined) {\n const result = {};\n const predicates = predicateUris ? new Set(predicateUris) : undefined;\n for (let q of this.store.matchAll(graphUris, null, null, null, false)) {\n if (predicates && !predicates.has(q.predicate.value)) {\n continue;\n }\n // Create stats for all predicates and add language tags for literals if available.\n let predicateStats = result[q.predicate.value];\n if (!predicateStats) {\n predicateStats = {\n predicateIri: q.predicate.value,\n subjects: new Set(),\n usageFrequency: 0,\n languageTags: {}\n };\n result[q.predicate.value] = predicateStats;\n }\n predicateStats.subjects.add(q.subject.value);\n predicateStats.usageFrequency++;\n if (q.object.termType === \"Literal\") {\n let language = q.object.language;\n if (!predicateStats.languageTags[language]) {\n predicateStats.languageTags[language] = 1;\n }\n else {\n predicateStats.languageTags[language] += 1;\n }\n }\n }\n return result;\n }\n /**\n * Get the language tags used in the object of triples with a given set of predicates.\n * @param graphUris URIs of the graphs to search.\n * @param predicateUris URIs of the predicates to match.\n * @returns An array of language tag statistics, sorted by the number of occurrences in descending order.\n */\n getLanguageTagUsageStats(graphUris) {\n const stats = {};\n for (let q of this.store.matchAll(graphUris, null, null, null, false)) {\n if (q.object.termType === \"Literal\" && q.object.language) {\n const language = q.object.language;\n if (!stats[language]) {\n stats[language] = 1;\n }\n else {\n stats[language] += 1;\n }\n }\n }\n return stats;\n }\n /**\n * Get the most frequently used language tag in the object of triples with a given set of predicates.\n * @param graphUris URIs of the graphs to search.\n */\n getMostFrequentLanguageTag(graphUris) {\n let stats = this.getLanguageTagUsageStats(graphUris);\n let max = 0;\n let primary;\n for (let language in stats) {\n if (stats[language] > max) {\n max = stats[language];\n primary = language;\n }\n }\n return primary;\n }\n}\nexports.ResourceRepository = ResourceRepository;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/rdf/resource-repository.ts?");
|
|
1021
1363
|
|
|
1022
1364
|
/***/ }),
|
|
1023
1365
|
|
|
@@ -1028,7 +1370,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
1028
1370
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
1029
1371
|
|
|
1030
1372
|
"use strict";
|
|
1031
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ShapeRepository = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst ontologies_1 = __webpack_require__(/*! ../ontologies */ \"./src/ontologies/index.ts\");\nconst individual_repository_1 = __webpack_require__(/*! ./individual-repository */ \"./src/rdf/individual-repository.ts\");\n/**\n * A repository for retrieving SHACL shapes from graphs.\n */\nclass ShapeRepository extends individual_repository_1.IndividualRepository {\n constructor(store) { super(store); }\n /**\n * Get all shapes in the repository.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param options Optional query parameters.\n * @returns A list of all shapes in the repository.\n */\n getShapes(graphUris, subjectUri, options) {\n const result = new Set();\n if (!subjectUri) {\n for (let q of this.store.match(graphUris, null, ontologies_1.rdf.type, ontologies_1.sh.Shape, options?.includeInferred)) {\n if (!this.skip(graphUris, q.subject, options)) {\n result.add(q.subject.value);\n }\n }\n }\n else {\n const s = n3.DataFactory.namedNode(subjectUri);\n for (let q of this.store.match(graphUris, s, ontologies_1.rdf.type, ontologies_1.sh.Shape, options?.includeInferred)) {\n if (!this.skip(graphUris, q.subject, options)) {\n result.add(q.subject.value);\n }\n }\n for (let q of this.store.match(graphUris, null, ontologies_1.sh.targetClass, s, options?.includeInferred)) {\n if (!this.skip(graphUris, q.subject, options)) {\n result.add(q.subject.value);\n }\n }\n for (let q of this.store.match(graphUris, null, ontologies_1.sh.path, s, options?.includeInferred)) {\n if (!this.skip(graphUris, q.subject, options)) {\n result.add(q.subject.value);\n }\n }\n }\n return Array.from(result);\n }\n /**\n * Get all shape types in the repository.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param options Optional query parameters.\n * @returns A list of all shape types in the repository.\n */\n getShapeTypes(graphUris, options) {\n const result = new Set();\n for (let q of this.store.match(graphUris, null, ontologies_1.rdf.type, ontologies_1.sh.NodeShape)) {\n if (!this.skip(graphUris, q.subject, options, { includeBlankNodes: true })) {\n result.add(ontologies_1.SH.NodeShape);\n break;\n }\n }\n for (let q of this.store.match(graphUris, null, ontologies_1.rdf.type, ontologies_1.sh.PropertyShape)) {\n if (!this.skip(graphUris, q.subject, options, { includeBlankNodes: true })) {\n result.add(ontologies_1.SH.PropertyShape);\n break;\n }\n }\n return Array.from(result);\n }\n /**\n * Get all validator types in the repository.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param options Optional query parameters.\n * @returns A list of all shape types in the repository.\n */\n getValidatorTypes(graphUris, options) {\n const result = new Set();\n // Get all validators in the repository, including the inferred ones.\n if (this.store.has(graphUris, null, ontologies_1.rdf.type, ontologies_1.sh.Validator, options?.includeInferred)) {\n result.add(ontologies_1.SH.Validator);\n }\n if (this.store.has(graphUris, null, ontologies_1.rdf.type, ontologies_1.sh.JSValidator, false)) {\n result.add(ontologies_1.SH.JSValidator);\n }\n if (this.store.has(graphUris, null, ontologies_1.rdf.type, ontologies_1.sh.SPARQLAskValidator, false)) {\n result.add(ontologies_1.SH.SPARQLAskValidator);\n }\n if (this.store.has(graphUris, null, ontologies_1.rdf.type, ontologies_1.sh.SPARQLSelectValidator, false)) {\n result.add(ontologies_1.SH.SPARQLSelectValidator);\n }\n return Array.from(result);\n }\n /**\n * Get all target classes, nodes or properties of a given shape in the repository.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param shape The URI or blank id of the shape.\n * @param options Optional query parameters.\n * @returns A list of all targeted reesources in the repository.\n */\n getShapeTargets(graphUris, shape, options) {\n const result = new Set();\n // Add the shape definition itself if it is a class.\n for (let q of this.store.match(graphUris, shape, ontologies_1.rdf.type, ontologies_1.rdfs.Class, true)) {\n result.add(q.subject.value);\n }\n for (let q of this.store.match(graphUris, shape, ontologies_1.sh.targetClass, null, options?.includeInferred)) {\n result.add(q.object.value);\n }\n for (let q of this.store.match(graphUris, shape, ontologies_1.sh.targetNode, null, options?.includeInferred)) {\n result.add(q.object.value);\n }\n for (let q of this.store.match(graphUris, shape, ontologies_1.sh.path, null, options?.includeInferred)) {\n result.add(q.object.value);\n }\n return Array.from(result);\n }\n /**\n * Indicate if there are shapes for a subject in the repository.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param subjectUri The URI of the subject.\n * @param options Optional query parameters.\n * @returns `true` if there are shapes for the subject, `false` otherwise.\n */\n hasShapes(graphUris, subjectUri, options) {\n const s = n3.DataFactory.namedNode(subjectUri);\n for (let q of this.store.match(graphUris, s, ontologies_1.rdf.type, ontologies_1.sh.Shape)) {\n if (!this.skip(graphUris, q.subject, options, { includeBlankNodes: true })) {\n return true;\n }\n }\n for (let q of this.store.match(graphUris, null, ontologies_1.sh.targetClass, s)) {\n if (!this.skip(graphUris, q.subject, options, { includeBlankNodes: true })) {\n return true;\n }\n }\n for (let q of this.store.match(graphUris, null, ontologies_1.sh.path, s)) {\n if (!this.skip(graphUris, q.subject, options, { includeBlankNodes: true })) {\n return true;\n }\n }\n return false;\n }\n /**\n * Indicate if there validators defined in the vocabulary.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param options Optional query parameters.\n * @returns A list of all validators in the repository.\n */\n hasValidators(graphUris, options) {\n return this.hasSubjectsOfType(graphUris, ontologies_1.SH.Validator, options);\n }\n /**\n * Get all validators in the repository.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param options Optional query parameters.\n * @returns A list of all validators in the repository.\n */\n getValidators(graphUris, options) {\n return this.getSubjectsOfType(graphUris, ontologies_1.SH.Validator, options);\n }\n /**\n * Indicate if there are rules in the repository.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param subjectUri The URI of the subject.\n * @param options Optional query parameters.\n * @returns `true` if there are rules for the subject, `false` otherwise.\n */\n hasRules(graphUris, options) {\n return this.hasSubjectsOfType(graphUris, ontologies_1.SH.Rule, options);\n }\n /**\n * Get all rules in the repository.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param options Optional query parameters.\n * @returns A list of all rules in the repository.\n */\n getRules(graphUris, options) {\n return this.getSubjectsOfType(graphUris, ontologies_1.SH.Rule, options);\n }\n /**\n * Get the SHACL datatype of a given property.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param subjectUri The URI of the subject.\n * @param options Optional query parameters.\n * @returns A datatype URI on success, `xsd:anyURI` otherwise.\n */\n getDatatype(graphUris, subjectUri, options) {\n for (let q of this.store.match(graphUris, null, ontologies_1.sh.path, n3.DataFactory.namedNode(subjectUri), options?.includeInferred)) {\n for (let x of this.store.match(graphUris, q.subject, ontologies_1.sh.datatype, null, options?.includeInferred)) {\n return x.object.value;\n }\n }\n }\n /**\n * Get the SHACL cardinality constraints of a given property.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param subjectUri The URI of the subject.\n * @param options Optional query parameters.\n * @returns An object with the minimum and maximum cardinalities; values are `-1` if not found.\n */\n getCardinalites(graphUris, subjectUri, options) {\n let minCount = -1;\n let maxCount = -1;\n for (let q of this.store.match(graphUris, null, ontologies_1.sh.path, n3.DataFactory.namedNode(subjectUri), options?.includeInferred)) {\n for (let x of this.store.match(graphUris, q.subject, ontologies_1.sh.minCount, null, options?.includeInferred)) {\n minCount = parseInt(x.object.value);\n break;\n }\n for (let x of this.store.match(graphUris, q.subject, ontologies_1.sh.maxCount, null, options?.includeInferred)) {\n maxCount = parseInt(x.object.value);\n break;\n }\n }\n return { minCount, maxCount };\n }\n /**\n * Get the RDF property path representation of the given SHACL property path. This method parses the SHACL property path and\n * returns the RDF property path as a combination of nodes and strings.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param subject The URI or blank id of the node referred to by sh:path.\n * @param options Optional query parameters.\n * @returns A flattened list of all path components, either as URIs or as strings.\n */\n getPropertyPathTokens(graphUris, subject) {\n const visitedNodes = new Set();\n /**\n * Parse the given subject node and return the path components.\n * @param subject The currently parsed focus node.\n * @param level The nesting level of the current path.\n * @param separator The separator to use to separate path components.\n * @param i The index of the current node in a list.\n * @returns The sub path of the current node.\n */\n const parse = (subject, level, separator = '/', i = 0) => {\n if (visitedNodes.has(subject.value)) {\n return [];\n }\n visitedNodes.add(subject.value);\n if (subject.termType === 'NamedNode') {\n // If we have a terminal node, we add it to the path.\n return [subject];\n }\n else {\n // Determine if we are looking at an item in a collection.\n const first = this.store.match(graphUris, subject, ontologies_1.rdf.first, null, false).next().value;\n if (first) {\n // Note: We increase the nesting level as nested nodes in paths need to be wrapped in parentheses.\n const path = parse(first.object, level + 1);\n const rest = this.store.match(graphUris, subject, ontologies_1.rdf.rest, null, false).next().value;\n if (rest && rest.object.value !== ontologies_1.rdf.nil.id) {\n // The first item of the list sees the complete recursively parsed sub path.\n const tail = parse(rest.object, level, separator, i + 1);\n // If there is no tail we return the current item's path.\n if (tail.length === 0) {\n return path;\n }\n // For nested paths, we wrap the path in parentheses if it contains more than one item.\n if (i === 0 && level > 0) {\n return ['(', ...path, separator, ...tail, ')'];\n }\n else {\n return [...path, separator, ...tail];\n }\n }\n return path;\n }\n else {\n // Blank nodes that are not lists contain SHACL path predicates.\n for (let q of this.store.match(graphUris, subject, null, null, false)) {\n switch (q.predicate.value) {\n case ontologies_1.sh.inversePath.id: {\n return ['^', ...parse(q.object, level)];\n }\n case ontologies_1.sh.zeroOrOnePath.id: {\n return [...parse(q.object, level), '?'];\n }\n case ontologies_1.sh.zeroOrMorePath.id: {\n return [...parse(q.object, level), '*'];\n }\n case ontologies_1.sh.oneOrMorePath.id: {\n return [...parse(q.object, level), '+'];\n }\n case ontologies_1.sh.alternativePath.id: {\n return parse(q.object, level, '|');\n }\n default:\n throw new Error(`Unsupported path predicate: ${q.predicate.value}`);\n }\n }\n throw new Error(`Unsupported path subject: ${subject}`);\n }\n }\n };\n return parse(subject, 0);\n }\n}\nexports.ShapeRepository = ShapeRepository;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/rdf/shape-repository.ts?");
|
|
1373
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ShapeRepository = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst ontologies_1 = __webpack_require__(/*! ../ontologies */ \"./src/ontologies/index.ts\");\nconst individual_repository_1 = __webpack_require__(/*! ./individual-repository */ \"./src/rdf/individual-repository.ts\");\nconst { namedNode } = n3.DataFactory;\n/**\n * A repository for retrieving SHACL shapes from graphs.\n */\nclass ShapeRepository extends individual_repository_1.IndividualRepository {\n constructor(store) { super(store); }\n /**\n * Get all shapes in the repository.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param options Optional query parameters.\n * @returns A list of all shapes in the repository.\n */\n getShapes(graphUris, subjectUri, options) {\n const result = new Set();\n if (!subjectUri) {\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.rdf.type, ontologies_1.sh.Shape, options?.includeInferred)) {\n if (!this.skip(graphUris, q.subject, options)) {\n result.add(q.subject.value);\n }\n }\n }\n else {\n const s = namedNode(subjectUri);\n for (let q of this.store.matchAll(graphUris, s, ontologies_1.rdf.type, ontologies_1.sh.Shape, options?.includeInferred)) {\n if (!this.skip(graphUris, q.subject, options)) {\n result.add(q.subject.value);\n }\n }\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.sh.targetClass, s, options?.includeInferred)) {\n if (!this.skip(graphUris, q.subject, options)) {\n result.add(q.subject.value);\n }\n }\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.sh.path, s, options?.includeInferred)) {\n if (!this.skip(graphUris, q.subject, options)) {\n result.add(q.subject.value);\n }\n }\n }\n return Array.from(result);\n }\n /**\n * Get all shape types in the repository.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param options Optional query parameters.\n * @returns A list of all shape types in the repository.\n */\n getShapeTypes(graphUris, options) {\n const result = new Set();\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.rdf.type, ontologies_1.sh.NodeShape)) {\n if (!this.skip(graphUris, q.subject, options, { includeBlankNodes: true })) {\n result.add(ontologies_1.SH.NodeShape);\n break;\n }\n }\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.rdf.type, ontologies_1.sh.PropertyShape)) {\n if (!this.skip(graphUris, q.subject, options, { includeBlankNodes: true })) {\n result.add(ontologies_1.SH.PropertyShape);\n break;\n }\n }\n return Array.from(result);\n }\n /**\n * Get all validator types in the repository.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param options Optional query parameters.\n * @returns A list of all shape types in the repository.\n */\n getValidatorTypes(graphUris, options) {\n const result = new Set();\n // Get all validators in the repository, including the inferred ones.\n if (this.store.any(graphUris, null, ontologies_1.rdf.type, ontologies_1.sh.Validator, options?.includeInferred)) {\n result.add(ontologies_1.SH.Validator);\n }\n if (this.store.any(graphUris, null, ontologies_1.rdf.type, ontologies_1.sh.JSValidator, false)) {\n result.add(ontologies_1.SH.JSValidator);\n }\n if (this.store.any(graphUris, null, ontologies_1.rdf.type, ontologies_1.sh.SPARQLAskValidator, false)) {\n result.add(ontologies_1.SH.SPARQLAskValidator);\n }\n if (this.store.any(graphUris, null, ontologies_1.rdf.type, ontologies_1.sh.SPARQLSelectValidator, false)) {\n result.add(ontologies_1.SH.SPARQLSelectValidator);\n }\n return Array.from(result);\n }\n /**\n * Get all target classes, nodes or properties of a given shape in the repository.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param shape The URI or blank id of the shape.\n * @param options Optional query parameters.\n * @returns A list of all targeted reesources in the repository.\n */\n getShapeTargets(graphUris, shape, options) {\n const result = new Set();\n // Add the shape definition itself if it is a class.\n for (let q of this.store.matchAll(graphUris, shape, ontologies_1.rdf.type, ontologies_1.rdfs.Class, true)) {\n result.add(q.subject.value);\n }\n for (let q of this.store.matchAll(graphUris, shape, ontologies_1.sh.targetClass, null, options?.includeInferred)) {\n result.add(q.object.value);\n }\n for (let q of this.store.matchAll(graphUris, shape, ontologies_1.sh.targetNode, null, options?.includeInferred)) {\n result.add(q.object.value);\n }\n for (let q of this.store.matchAll(graphUris, shape, ontologies_1.sh.path, null, options?.includeInferred)) {\n result.add(q.object.value);\n }\n return Array.from(result);\n }\n /**\n * Indicate if there are shapes for a subject in the repository.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param subjectUri The URI of the subject.\n * @param options Optional query parameters.\n * @returns `true` if there are shapes for the subject, `false` otherwise.\n */\n hasShapes(graphUris, subjectUri, options) {\n const s = namedNode(subjectUri);\n for (let q of this.store.matchAll(graphUris, s, ontologies_1.rdf.type, ontologies_1.sh.Shape)) {\n if (!this.skip(graphUris, q.subject, options, { includeBlankNodes: true })) {\n return true;\n }\n }\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.sh.targetClass, s)) {\n if (!this.skip(graphUris, q.subject, options, { includeBlankNodes: true })) {\n return true;\n }\n }\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.sh.path, s)) {\n if (!this.skip(graphUris, q.subject, options, { includeBlankNodes: true })) {\n return true;\n }\n }\n return false;\n }\n /**\n * Indicate if there validators defined in the vocabulary.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param options Optional query parameters.\n * @returns A list of all validators in the repository.\n */\n hasValidators(graphUris, options) {\n return this.hasSubjectsOfType(graphUris, ontologies_1.SH.Validator, options);\n }\n /**\n * Get all validators in the repository.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param options Optional query parameters.\n * @returns A list of all validators in the repository.\n */\n getValidators(graphUris, options) {\n return this.getSubjectsOfType(graphUris, ontologies_1.SH.Validator, options);\n }\n /**\n * Indicate if there are rules in the repository.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param subjectUri The URI of the subject.\n * @param options Optional query parameters.\n * @returns `true` if there are rules for the subject, `false` otherwise.\n */\n hasRules(graphUris, options) {\n return this.hasSubjectsOfType(graphUris, ontologies_1.SH.Rule, options);\n }\n /**\n * Get all rules in the repository.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param options Optional query parameters.\n * @returns A list of all rules in the repository.\n */\n getRules(graphUris, options) {\n return this.getSubjectsOfType(graphUris, ontologies_1.SH.Rule, options);\n }\n /**\n * Get the SHACL datatype of a given property.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param subjectUri The URI of the subject.\n * @param options Optional query parameters.\n * @returns A datatype URI on success, `xsd:anyURI` otherwise.\n */\n getDatatype(graphUris, subjectUri, options) {\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.sh.path, namedNode(subjectUri), options?.includeInferred)) {\n for (let x of this.store.matchAll(graphUris, q.subject, ontologies_1.sh.datatype, null, options?.includeInferred)) {\n return x.object.value;\n }\n }\n }\n /**\n * Get the SHACL cardinality constraints of a given property.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param subjectUri The URI of the subject.\n * @param options Optional query parameters.\n * @returns An object with the minimum and maximum cardinalities; values are `-1` if not found.\n */\n getCardinalites(graphUris, subjectUri, options) {\n let minCount = -1;\n let maxCount = -1;\n for (let q of this.store.matchAll(graphUris, null, ontologies_1.sh.path, namedNode(subjectUri), options?.includeInferred)) {\n for (let x of this.store.matchAll(graphUris, q.subject, ontologies_1.sh.minCount, null, options?.includeInferred)) {\n minCount = parseInt(x.object.value);\n break;\n }\n for (let x of this.store.matchAll(graphUris, q.subject, ontologies_1.sh.maxCount, null, options?.includeInferred)) {\n maxCount = parseInt(x.object.value);\n break;\n }\n }\n return { minCount, maxCount };\n }\n /**\n * Get the RDF property path representation of the given SHACL property path. This method parses the SHACL property path and\n * returns the RDF property path as a combination of nodes and strings.\n * @param graphUris URIs of the graphs to search, `undefined` for the default graph.\n * @param subject The URI or blank id of the node referred to by sh:path.\n * @param options Optional query parameters.\n * @returns A flattened list of all path components, either as URIs or as strings.\n */\n getPropertyPathTokens(graphUris, subject) {\n const visitedNodes = new Set();\n /**\n * Parse the given subject node and return the path components.\n * @param subject The currently parsed focus node.\n * @param level The nesting level of the current path.\n * @param separator The separator to use to separate path components.\n * @param i The index of the current node in a list.\n * @returns The sub path of the current node.\n */\n const parse = (subject, level, separator = '/', i = 0) => {\n if (visitedNodes.has(subject.value)) {\n return [];\n }\n visitedNodes.add(subject.value);\n if (subject.termType === 'NamedNode') {\n // If we have a terminal node, we add it to the path.\n return [subject];\n }\n else {\n // Determine if we are looking at an item in a collection.\n const first = this.store.matchAll(graphUris, subject, ontologies_1.rdf.first, null, false).next().value;\n if (first) {\n // Note: We increase the nesting level as nested nodes in paths need to be wrapped in parentheses.\n const path = parse(first.object, level + 1);\n const rest = this.store.matchAll(graphUris, subject, ontologies_1.rdf.rest, null, false).next().value;\n if (rest && rest.object.value !== ontologies_1.rdf.nil.id) {\n // The first item of the list sees the complete recursively parsed sub path.\n const tail = parse(rest.object, level, separator, i + 1);\n // If there is no tail we return the current item's path.\n if (tail.length === 0) {\n return path;\n }\n // For nested paths, we wrap the path in parentheses if it contains more than one item.\n if (i === 0 && level > 0) {\n return ['(', ...path, separator, ...tail, ')'];\n }\n else {\n return [...path, separator, ...tail];\n }\n }\n return path;\n }\n else {\n // Blank nodes that are not lists contain SHACL path predicates.\n for (let q of this.store.matchAll(graphUris, subject, null, null, false)) {\n switch (q.predicate.value) {\n case ontologies_1.sh.inversePath.id: {\n return ['^', ...parse(q.object, level)];\n }\n case ontologies_1.sh.zeroOrOnePath.id: {\n return [...parse(q.object, level), '?'];\n }\n case ontologies_1.sh.zeroOrMorePath.id: {\n return [...parse(q.object, level), '*'];\n }\n case ontologies_1.sh.oneOrMorePath.id: {\n return [...parse(q.object, level), '+'];\n }\n case ontologies_1.sh.alternativePath.id: {\n return parse(q.object, level, '|');\n }\n default:\n throw new Error(`Unsupported path predicate: ${q.predicate.value}`);\n }\n }\n throw new Error(`Unsupported path subject: ${subject}`);\n }\n }\n };\n return parse(subject, 0);\n }\n}\nexports.ShapeRepository = ShapeRepository;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/rdf/shape-repository.ts?");
|
|
1032
1374
|
|
|
1033
1375
|
/***/ }),
|
|
1034
1376
|
|
|
@@ -1039,7 +1381,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
1039
1381
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
1040
1382
|
|
|
1041
1383
|
"use strict";
|
|
1042
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Store = exports.TripleNotFoundError = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst src = tslib_1.__importStar(__webpack_require__(/*! ../ontologies/src */ \"./src/ontologies/src.ts\"));\nconst ontologies_1 = __webpack_require__(/*! ../ontologies */ \"./src/ontologies/index.ts\");\nconst ontologies_2 = __webpack_require__(/*! ../ontologies */ \"./src/ontologies/index.ts\");\nconst rdfxml_streaming_parser_1 = __webpack_require__(/*! rdfxml-streaming-parser */ \"./node_modules/rdfxml-streaming-parser/index.js\");\n/**\n * Indicates an error when a triple is not found in the store.\n */\nclass TripleNotFoundError extends Error {\n /**\n * Create a new instance of the error.\n * @param message The error message.\n */\n constructor(subject, predicate, object) {\n super(`No triple was found matching the pattern: ${subject} ${predicate} ${object}`);\n this.name = \"TripleNotFoundError\";\n }\n}\nexports.TripleNotFoundError = TripleNotFoundError;\n/*\n * A store for RDF triples with support for reasoning.\n */\nclass Store {\n /**\n * Return the number of triples in the store.\n */\n get size() {\n return this._store.size;\n }\n /**\n * Create a new RDF triple store.\n * @param reasoner The reasoner to be used for inference.\n */\n constructor(reasoner) {\n /**\n * The N3 triple store implementation.\n */\n this._store = new n3.Store();\n this.reasoner = reasoner;\n }\n /**\n * Loads a set of W3C Standard ontologies into the store (RDF, RDFA, RDFS, OWL, SKOS, SHACL, XSD).\n */\n async loadFrameworkOntologies() {\n await this.loadFromTurtleStream(src.rdf, ontologies_2._RDF);\n await this.loadFromTurtleStream(src.rdfa, ontologies_2._RDFA);\n await this.loadFromTurtleStream(src.rdfs, ontologies_2._RDFS);\n await this.loadFromTurtleStream(src.owl, ontologies_2._OWL);\n await this.loadFromTurtleStream(src.sh, ontologies_2._SH);\n await this.loadFromTurtleStream(src.skos, ontologies_2._SKOS);\n await this.loadFromTurtleStream(src.xsd, ontologies_2._XSD);\n }\n /**\n * Get the URIs of the graphs in the triple store.\n * @returns An array of graph URIs in no particular order.\n */\n getGraphs() {\n return this._store.getGraphs(null, null, null).map(g => g.id);\n }\n /**\n * Load a set of triples into the store.\n * @param quads An array of quads to be loaded into the store.\n * @param graphUri The target graph URI.\n * @param executeInference Indicates if inference should be executed after loading the triples.\n * @param clearGraph Indicates if the graph should be cleared before loading.\n * @param onQuad A callback function that will be called for each parsed triple.\n */\n _loadQuads(quads, graphUri, executeInference = true, clearGraph = true, onQuad) {\n const graph = new n3.NamedNode(graphUri.replace('\\\\', '\\/'));\n // Only clear the graph once if there had been no errors.\n if (clearGraph) {\n // Note: Using the match method to clear the graph results in an error because the graph is being modified.\n this.deleteGraphs([graphUri]);\n if (this.reasoner) {\n const inferenceGraph = new n3.NamedNode(this.reasoner.getInferenceGraphUri(graphUri));\n this.deleteGraphs([inferenceGraph.value]);\n }\n }\n for (let q of quads) {\n this._store.add(new n3.Quad(q.subject, q.predicate, q.object, graph));\n if (onQuad) {\n onQuad(q);\n }\n }\n if (this.reasoner && executeInference) {\n this.reasoner.expand(this._store, graphUri);\n }\n }\n /**\n * Create an RDF store from N3, Turtle or N-Triples data.\n * @param input Input data or stream in to be parsed.\n * @param graphUri URI of the graph to in which the triples will be created.\n * @param executeInference Indicates if inference should be executed after loading the triples.\n * @param clearGraph Indicates if the graph should be cleared before loading.\n * @param onQuad Callback function that will be called for each parsed triple.\n * @returns A promise that resolves to an RDF store.\n */\n async loadFromTurtleStream(input, graphUri, executeInference = true, clearGraph = true, onQuad) {\n return new Promise((resolve, reject) => {\n let quads = [];\n new n3.Parser({}).parse(input, (error, quad, done) => {\n if (error) {\n reject(error);\n }\n else if (quad) {\n quads.push(quad);\n }\n else if (done) {\n this._loadQuads(quads, graphUri, executeInference, clearGraph, onQuad);\n resolve(this);\n }\n });\n });\n }\n /**\n * Create an RDF store from RDF/XML data.\n * @param input Input data or stream format to be parsed.\n * @param graphUri URI of the graph to in which the triples will be created.\n * @param executeInference Indicates if inference should be executed after loading the triples.\n * @param clearGraph Indicates if the graph should be cleared before loading.\n * @param onQuad Callback function that will be called for each parsed triple.\n * @returns A promise that resolves to an RDF store.\n */\n async loadFromXmlStream(input, graphUri, executeInference = true, clearGraph = true, onQuad) {\n return new Promise((resolve, reject) => {\n let quads = [];\n const parser = new rdfxml_streaming_parser_1.RdfXmlParser();\n if (typeof input === 'string') {\n parser.on('error', (error) => reject(error));\n parser.on('data', (quad) => quads.push(quad));\n parser.on('end', () => {\n this._loadQuads(quads, graphUri, executeInference, clearGraph, onQuad);\n resolve(this);\n });\n parser.write(input);\n parser.end();\n }\n else {\n parser.import(input)\n .on('error', (error) => reject(error))\n .on('data', (quad) => quads.push(quad))\n .on('end', () => {\n this._loadQuads(quads, graphUri, executeInference, clearGraph, onQuad);\n resolve(this);\n });\n }\n });\n }\n /**\n * Write the triples in the store into a string in Turtle format.\n * @param graphUri A graph URI.\n * @returns A string serialization of the triples in the graph in Turtle format.\n */\n async serializeGraph(graphUri, prefixes, format) {\n return new Promise((resolve, reject) => {\n const writer = new n3.Writer({\n format: format || 'Turtle',\n prefixes: prefixes\n });\n for (let q of this._store.match(null, null, null, new n3.NamedNode(graphUri))) {\n writer.addQuad(q.subject, q.predicate, q.object);\n }\n writer.end((error, result) => {\n if (error) {\n reject(error);\n }\n else {\n resolve(result);\n }\n });\n });\n }\n /**\n * Indicates if the store contains triples in a given graph.\n * @param graphUri A graph URI.\n * @returns `true` if the store contains triples in the graph URI, `false` otherwise.\n */\n hasGraph(graphUri) {\n const uri = typeof graphUri === 'string' ? new n3.NamedNode(graphUri) : graphUri;\n for (const _ of this._store.match(null, null, null, uri)) {\n return true;\n }\n return false;\n }\n /**\n * Apply inference to the given graph and store the triples in the associated inference graph.\n * @param graphUri A graph URI.\n */\n executeInference(graphUri) {\n if (this.reasoner) {\n this.reasoner.expand(this._store, graphUri);\n }\n }\n /**\n * Delete named graphs from the store.\n * @param graphUris URIs of the graphs to be deleted.\n */\n deleteGraphs(graphUris) {\n for (let graphUri of graphUris) {\n const g = new n3.NamedNode(graphUri);\n for (let q of this._store.match(null, null, null, g)) {\n this._store.removeQuad(q);\n }\n }\n }\n /**\n * Get the URIs of ordered list members in the store.\n * @param graphUris Optional graph URI or array of graph URIs to query.\n * @param listUri URI of the list to get the items from.\n * @returns An array of URIs of the items in the list.\n */\n getListItems(graphUris, listUri) {\n // To do: Fix #10\n const list = listUri.includes(':') ? new n3.NamedNode(listUri) : new n3.BlankNode(listUri);\n return this._getListItems(graphUris, list).map(t => t.value);\n }\n _getListItems(graphUris, subject) {\n const first = Array.from(this.match(graphUris, subject, ontologies_1.rdf.first, null));\n if (!first.length) {\n return [];\n }\n const rest = Array.from(this.match(graphUris, subject, ontologies_1.rdf.rest, null));\n const firstItem = first[0].object;\n const restList = rest[0]?.object;\n if (restList.value === ontologies_1.RDF.nil) {\n return [firstItem];\n }\n else {\n const restItems = this._getListItems(graphUris, restList);\n return [firstItem, ...restItems];\n }\n }\n /**\n * Query the store for triples matching the given pattern supporting multiple graphs.\n * @param graphUris Optional graph URI or array of graph URIs to query.\n * @param subject A subject URI or null to match any subject.\n * @param predicate A predicate URI or null to match any predicate.\n * @param object An object URI or null to match any object.\n */\n *match(graphUris, subject, predicate, object, includeInferred) {\n if (includeInferred && !this.reasoner) {\n throw new Error('Reasoner is not available to include inferred triples.');\n }\n const s = subject;\n const p = predicate;\n const o = object;\n if (graphUris !== undefined) {\n const graphs = Array.isArray(graphUris) ? graphUris : [graphUris];\n for (let graph of graphs.map(g => new n3.NamedNode(g))) {\n for (let q of this._store.match(s, p, o, graph)) {\n yield q;\n }\n if (includeInferred !== false && this.reasoner) {\n let inferenceGraph = new n3.NamedNode(this.reasoner.getInferenceGraphUri(graph.value));\n for (let q of this._store.match(s, p, o, inferenceGraph)) {\n yield q;\n }\n }\n }\n }\n else {\n yield* this._store.match(s, p, o);\n }\n }\n /**\n * Indicate if there are triples matching the given pattern in the store.\n * @param graphUris Optional graph URI or array of graph URIs to query.\n * @param subject A subject URI or null to match any subject.\n * @param predicate A predicate URI or null to match any predicate.\n * @param object An object URI or null to match any object.\n * @returns `true` if there are triples matching the pattern, `false` otherwise.\n */\n has(graphUris, subject, predicate, object, includeInferred) {\n return this.match(graphUris, subject, predicate, object, includeInferred).next().done === false;\n }\n /**\n * Get the first triple matching the given pattern in the store.\n * @param graphUris Optional graph URI or array of graph URIs to query.\n * @param subject A subject URI or null to match any subject.\n * @param predicate A predicate URI or null to match any predicate.\n * @param object An object URI or null to match any object.\n * @returns The first triple that matches the pattern.\n * @throws {TripleNotFoundError} If no triple is found matching the pattern.\n */\n first(graphUris, subject, predicate, object, includeInferred) {\n const result = this.match(graphUris, subject, predicate, object, includeInferred).next().value;\n if (!result) {\n throw new TripleNotFoundError(subject, predicate, object);\n }\n return result;\n }\n}\nexports.Store = Store;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/rdf/store.ts?");
|
|
1384
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Store = exports.TripleNotFoundError = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst src = tslib_1.__importStar(__webpack_require__(/*! ../ontologies/src */ \"./src/ontologies/src.ts\"));\nconst rdf_stores_1 = __webpack_require__(/*! rdf-stores */ \"./node_modules/rdf-stores/index.js\");\nconst ontologies_1 = __webpack_require__(/*! ../ontologies */ \"./src/ontologies/index.ts\");\nconst ontologies_2 = __webpack_require__(/*! ../ontologies */ \"./src/ontologies/index.ts\");\nconst rdfxml_streaming_parser_1 = __webpack_require__(/*! rdfxml-streaming-parser */ \"./node_modules/rdfxml-streaming-parser/index.js\");\nconst { namedNode, blankNode, quad } = n3.DataFactory;\n/**\n * Indicates an error when a triple is not found in the store.\n */\nclass TripleNotFoundError extends Error {\n /**\n * Create a new instance of the error.\n * @param message The error message.\n */\n constructor(subject, predicate, object) {\n super(`No triple was found matching the pattern: ${subject} ${predicate} ${object}`);\n this.name = \"TripleNotFoundError\";\n }\n}\nexports.TripleNotFoundError = TripleNotFoundError;\n/*\n * A store for RDF triples with support for reasoning.\n */\nclass Store {\n /**\n * Get the number of triples in all graphs of the store.\n */\n get size() {\n return this._ds.size;\n }\n /**\n * Create a new RDF triple store.\n * @param reasoner The reasoner to be used for inference.\n */\n constructor(reasoner) {\n /**\n * The adapted RDF.js triple store implementation.\n *\n * Note: Please do not use this directly, but rather use the `_ds` property to access the dataset.\n */\n this._store = rdf_stores_1.RdfStore.createDefault();\n /**\n * The RDF dataset containing the triples in the store, which should primarily be used\n * for any operations so that the store can be swapped out with a different implementation.\n */\n this._ds = this._store.asDataset();\n this.reasoner = reasoner;\n }\n [Symbol.iterator]() {\n return this._ds[Symbol.iterator]();\n }\n /**\n * Loads a set of W3C Standard ontologies into the store (RDF, RDFA, RDFS, OWL, SKOS, SHACL, XSD).\n */\n async loadFrameworkOntologies() {\n await this.loadFromTurtleStream(src.rdf, ontologies_2._RDF);\n await this.loadFromTurtleStream(src.rdfa, ontologies_2._RDFA);\n await this.loadFromTurtleStream(src.rdfs, ontologies_2._RDFS);\n await this.loadFromTurtleStream(src.owl, ontologies_2._OWL);\n await this.loadFromTurtleStream(src.sh, ontologies_2._SH);\n await this.loadFromTurtleStream(src.skos, ontologies_2._SKOS);\n await this.loadFromTurtleStream(src.xsd, ontologies_2._XSD);\n }\n /**\n * Add a quad to the store. Existing quads with the same subject, predicate, object, and graph will be ignored.\n * @param quad The quad to be added.\n * @returns The store instance.\n */\n add(quad) {\n this._ds.add(quad);\n return this;\n }\n /**\n * Delete a quad from the store.\n * @param quad The quad to be deleted.\n * @returns The store instance.\n */\n delete(quad) {\n this._ds.delete(quad);\n return this;\n }\n /**\n * Indicates if the store contains a specific quad.\n * @param quad The quad to be checked.\n * @returns `true` if the quad is found in the store, `false` otherwise.\n */\n has(quad) {\n return this._ds.has(quad);\n }\n /**\n * Get the URIs of the graphs in the triple store.\n * @returns An array of graph URIs in no particular order.\n */\n getGraphs() {\n const result = new Set();\n for (const q of this._ds.match(null, null, null, null)) {\n result.add(q.graph.value);\n }\n return Array.from(result);\n }\n /**\n * Load a set of triples into the store.\n * @param quads An array of quads to be loaded into the store.\n * @param graphUri The target graph URI.\n * @param executeInference Indicates if inference should be executed after loading the triples.\n * @param clearGraph Indicates if the graph should be cleared before loading.\n * @param onQuad A callback function that will be called for each parsed triple.\n */\n _loadQuads(quads, graphUri, executeInference = true, clearGraph = true, onQuad) {\n const graph = namedNode(graphUri.replace('\\\\', '\\/'));\n // Only clear the graph once if there had been no errors.\n if (clearGraph) {\n // Note: Using the match method to clear the graph results in an error because the graph is being modified.\n this.deleteGraphs([graphUri]);\n if (this.reasoner) {\n const inferenceGraph = namedNode(this.reasoner.getInferenceGraphUri(graphUri));\n this.deleteGraphs([inferenceGraph.value]);\n }\n }\n for (let q of quads) {\n this._ds.add(quad(q.subject, q.predicate, q.object, graph));\n if (onQuad) {\n onQuad(q);\n }\n }\n if (this.reasoner && executeInference) {\n this.reasoner.expand(this._ds, graphUri);\n }\n }\n /**\n * Create an RDF store from N3, Turtle or N-Triples data.\n * @param input Input data or stream in to be parsed.\n * @param graphUri URI of the graph to in which the triples will be created.\n * @param executeInference Indicates if inference should be executed after loading the triples.\n * @param clearGraph Indicates if the graph should be cleared before loading.\n * @param onQuad Callback function that will be called for each parsed triple.\n * @returns A promise that resolves to an RDF store.\n */\n async loadFromTurtleStream(input, graphUri, executeInference = true, clearGraph = true, onQuad) {\n return new Promise((resolve, reject) => {\n let quads = [];\n new n3.Parser({}).parse(input, (error, quad, done) => {\n if (error) {\n reject(error);\n }\n else if (quad) {\n quads.push(quad);\n }\n else if (done) {\n this._loadQuads(quads, graphUri, executeInference, clearGraph, onQuad);\n resolve(this);\n }\n });\n });\n }\n /**\n * Create an RDF store from RDF/XML data.\n * @param input Input data or stream format to be parsed.\n * @param graphUri URI of the graph to in which the triples will be created.\n * @param executeInference Indicates if inference should be executed after loading the triples.\n * @param clearGraph Indicates if the graph should be cleared before loading.\n * @param onQuad Callback function that will be called for each parsed triple.\n * @returns A promise that resolves to an RDF store.\n */\n async loadFromXmlStream(input, graphUri, executeInference = true, clearGraph = true, onQuad) {\n return new Promise((resolve, reject) => {\n let quads = [];\n const parser = new rdfxml_streaming_parser_1.RdfXmlParser();\n if (typeof input === 'string') {\n parser.on('error', (error) => reject(error));\n parser.on('data', (quad) => quads.push(quad));\n parser.on('end', () => {\n this._loadQuads(quads, graphUri, executeInference, clearGraph, onQuad);\n resolve(this);\n });\n parser.write(input);\n parser.end();\n }\n else {\n parser.import(input)\n .on('error', (error) => reject(error))\n .on('data', (quad) => quads.push(quad))\n .on('end', () => {\n this._loadQuads(quads, graphUri, executeInference, clearGraph, onQuad);\n resolve(this);\n });\n }\n });\n }\n /**\n * Write the triples in the store into a string in Turtle format.\n * @param graphUri A graph URI.\n * @returns A string serialization of the triples in the graph in Turtle format.\n */\n async serializeGraph(graphUri, prefixes, format) {\n return new Promise((resolve, reject) => {\n const writer = new n3.Writer({\n format: format || 'Turtle',\n prefixes: prefixes\n });\n for (let q of this._ds.match(null, null, null, namedNode(graphUri))) {\n writer.addQuad(q.subject, q.predicate, q.object);\n }\n writer.end((error, result) => {\n if (error) {\n reject(error);\n }\n else {\n resolve(result);\n }\n });\n });\n }\n /**\n * Indicates if the store contains triples in a given graph.\n * @param graphUri A graph URI.\n * @returns `true` if the store contains triples in the graph URI, `false` otherwise.\n */\n hasGraph(graphUri) {\n const uri = typeof graphUri === 'string' ? namedNode(graphUri) : graphUri;\n for (const _ of this._ds.match(null, null, null, uri)) {\n return true;\n }\n return false;\n }\n /**\n * Apply inference to the given graph and store the triples in the associated inference graph.\n * @param graphUri A graph URI.\n */\n executeInference(graphUri) {\n if (this.reasoner) {\n this.reasoner.expand(this._ds, graphUri);\n }\n }\n /**\n * Delete named graphs from the store.\n * @param graphUris URIs of the graphs to be deleted.\n */\n deleteGraphs(graphUris) {\n for (let graphUri of graphUris) {\n const g = namedNode(graphUri);\n for (let q of this._ds.match(null, null, null, g)) {\n this._ds.delete(q);\n }\n }\n }\n /**\n * Get the URIs of ordered list members in the store.\n * @param graphUris Optional graph URI or array of graph URIs to query.\n * @param listUri URI of the list to get the items from.\n * @returns An array of URIs of the items in the list.\n */\n getListItems(graphUris, listUri) {\n // To do: Fix #10\n const list = listUri.includes(':') ? namedNode(listUri) : blankNode(listUri);\n return this._getListItems(graphUris, list).map(t => t.value);\n }\n _getListItems(graphUris, subject) {\n const first = Array.from(this.matchAll(graphUris, subject, ontologies_1.rdf.first, null));\n if (!first.length) {\n return [];\n }\n const rest = Array.from(this.matchAll(graphUris, subject, ontologies_1.rdf.rest, null));\n const firstItem = first[0].object;\n const restList = rest[0]?.object;\n if (restList.value === ontologies_1.RDF.nil) {\n return [firstItem];\n }\n else {\n const restItems = this._getListItems(graphUris, restList);\n return [firstItem, ...restItems];\n }\n }\n /**\n * Returns the exact cardinality of the quads matching the pattern.\n * @param subject The optional subject.\n * @param predicate The optional predicate.\n * @param object The optional object.\n * @param graph The optional graph.\n */\n countQuads(subject, predicate, object, graph) {\n return this._store.countQuads(subject, predicate, object, graph);\n }\n /**\n * Returns a stream of quads matching the given pattern.\n * @param subject The optional subject.\n * @param predicate The optional predicate.\n * @param object The optional object.\n * @param graph The optional graph.\n * @returns A stream of matching quads.\n */\n match(subject, predicate, object, graph) {\n return this._store.match(subject, predicate, object, graph);\n }\n /**\n * Query the store for triples matching the given pattern supporting multiple graphs.\n * @param graphUris Optional graph URI or array of graph URIs to query.\n * @param subject A subject URI or null to match any subject.\n * @param predicate A predicate URI or null to match any predicate.\n * @param object An object URI or null to match any object.\n */\n *matchAll(graphUris, subject, predicate, object, includeInferred) {\n if (includeInferred && !this.reasoner) {\n throw new Error('Reasoner is not available to include inferred triples.');\n }\n const s = subject;\n const p = predicate;\n const o = object;\n if (graphUris !== undefined) {\n const graphs = Array.isArray(graphUris) ? graphUris : [graphUris];\n for (let graph of graphs.map(g => namedNode(g))) {\n for (let q of this._ds.match(s, p, o, graph)) {\n yield q;\n }\n if (includeInferred !== false && this.reasoner) {\n let inferenceGraph = namedNode(this.reasoner.getInferenceGraphUri(graph.value));\n for (let q of this._ds.match(s, p, o, inferenceGraph)) {\n yield q;\n }\n }\n }\n }\n else {\n yield* this._ds.match(s, p, o);\n }\n }\n /**\n * Indicate if there are triples matching the given pattern in the store.\n * @param graphUris Optional graph URI or array of graph URIs to query.\n * @param subject A subject URI or null to match any subject.\n * @param predicate A predicate URI or null to match any predicate.\n * @param object An object URI or null to match any object.\n * @returns `true` if there are triples matching the pattern, `false` otherwise.\n */\n any(graphUris, subject, predicate, object, includeInferred) {\n return this.matchAll(graphUris, subject, predicate, object, includeInferred).next().done === false;\n }\n /**\n * Get the first triple matching the given pattern in the store.\n * @param graphUris Optional graph URI or array of graph URIs to query.\n * @param subject A subject URI or null to match any subject.\n * @param predicate A predicate URI or null to match any predicate.\n * @param object An object URI or null to match any object.\n * @returns The first triple that matches the pattern.\n * @throws {TripleNotFoundError} If no triple is found matching the pattern.\n */\n first(graphUris, subject, predicate, object, includeInferred) {\n const result = this.matchAll(graphUris, subject, predicate, object, includeInferred).next().value;\n if (!result) {\n throw new TripleNotFoundError(subject, predicate, object);\n }\n return result;\n }\n}\nexports.Store = Store;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/rdf/store.ts?");
|
|
1043
1385
|
|
|
1044
1386
|
/***/ }),
|
|
1045
1387
|
|
|
@@ -1050,7 +1392,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
1050
1392
|
/***/ ((__unused_webpack_module, exports) => {
|
|
1051
1393
|
|
|
1052
1394
|
"use strict";
|
|
1053
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Uri = void 0;\n/**\n * A helper class for working with URI string.\n */\nclass Uri {\n /**\n * Get the portion of a URI after the first occurance of '#' or the last occurance of '/'.\n * @param uri A URI.\n * @returns The label portion of the URI.\n */\n static
|
|
1395
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Uri = void 0;\n/**\n * A helper class for working with URI string.\n */\nclass Uri {\n /**\n * Get the portion of a URI after the first occurance of '#' or the last occurance of '/'.\n * @param uri A URI.\n * @returns The label portion of the URI.\n */\n static getLocalPart(uri) {\n let u = uri;\n let n = u.indexOf('?');\n if (n > -1) {\n u = uri.substring(0, n);\n }\n // If we have namespace URI, return the label of the document or folder.\n if (u.endsWith('/') || u.endsWith('#')) {\n u = u.substring(0, u.length - 1);\n }\n let ns = Uri.getNamespaceIri(u);\n return ns.length < u.length ? u.replace(ns, \"\") : undefined;\n }\n /**\n * Get the portion of a URI after the first occurance of '#' or the last occurance of '/'.\n * @param uri A URI.\n * @returns The namespace portion of the URI.\n */\n static getNamespaceIri(uri) {\n // Remove any query strings from the URI.\n let u = uri;\n let n = u.indexOf('?');\n if (n > -1) {\n u = uri.substring(0, n);\n }\n // Find the first occurance of '#' and return the substring up to that point.\n n = u.indexOf('#');\n if (n > -1) {\n return u.substring(0, n + 1);\n }\n // Find the last occurance of '/' and return the substring up to that point.\n n = u.lastIndexOf('/');\n // Only return the substring if it is not the 'http://' or 'https://' protocol.\n if (n > 8) {\n return u.substring(0, n + 1);\n }\n else {\n return u + \"/\";\n }\n }\n /**\n * Get a transformed version of the URI that can be used as a JSON identifier which only contains letters, numbers and dots.\n * @param uri A URI.\n * @returns A transformed version which only contains letters, numbers and dots.\n */\n static toJsonId(uri) {\n let u = uri.split('//')[1];\n if (u) {\n u = u.replace(/[^a-zA-Z0-9]/g, '.');\n return u.endsWith('.') ? u.slice(0, -1) : u;\n }\n else {\n return undefined;\n }\n }\n /**\n * Get a normalized version of the URI which removes any trailing slashes or hashes.\n * @param uri A URI.\n * @returns A normalized URI.\n */\n static getNormalizedUri(uri) {\n let u = uri.split('?')[0];\n if (u.endsWith('/') || u.endsWith('#')) {\n return u.substring(0, u.length - 1);\n }\n else {\n return u;\n }\n }\n}\nexports.Uri = Uri;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/rdf/uri.ts?");
|
|
1054
1396
|
|
|
1055
1397
|
/***/ }),
|
|
1056
1398
|
|
|
@@ -1061,7 +1403,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
1061
1403
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
1062
1404
|
|
|
1063
1405
|
"use strict";
|
|
1064
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.VocabularyRepository = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst ontologies_1 = __webpack_require__(/*! ../ontologies */ \"./src/ontologies/index.ts\");\nconst uri_1 = __webpack_require__(/*! ./uri */ \"./src/rdf/uri.ts\");\nconst shape_repository_1 = __webpack_require__(/*! ./shape-repository */ \"./src/rdf/shape-repository.ts\");\n/**\n * A repository for retrieving ontologies and ontology concepts from graphs.\n */\nclass VocabularyRepository extends shape_repository_1.ShapeRepository {\n /**\n * Get all concept schemes in the repository.\n * @param graphUris URIs of the graphs to search.\n * @returns A list of all concept schemes in the repository.\n */\n getConceptSchemes(graphUris) {\n const result = new Set();\n for (const q of this.store.
|
|
1406
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.VocabularyRepository = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.mjs\");\nconst n3 = tslib_1.__importStar(__webpack_require__(/*! n3 */ \"./node_modules/n3/src/index.js\"));\nconst ontologies_1 = __webpack_require__(/*! ../ontologies */ \"./src/ontologies/index.ts\");\nconst uri_1 = __webpack_require__(/*! ./uri */ \"./src/rdf/uri.ts\");\nconst shape_repository_1 = __webpack_require__(/*! ./shape-repository */ \"./src/rdf/shape-repository.ts\");\nconst { namedNode } = n3.DataFactory;\n/**\n * A repository for retrieving ontologies and ontology concepts from graphs.\n */\nclass VocabularyRepository extends shape_repository_1.ShapeRepository {\n /**\n * Get all concept schemes in the repository.\n * @param graphUris URIs of the graphs to search.\n * @returns A list of all concept schemes in the repository.\n */\n getConceptSchemes(graphUris) {\n const result = new Set();\n for (const q of this.store.matchAll(graphUris, null, ontologies_1.rdf.type, ontologies_1.skos.ConceptScheme)) {\n const s = q.subject;\n if (s.termType != \"NamedNode\") {\n continue;\n }\n result.add(s.value);\n }\n return Array.from(result);\n }\n /**\n * Indicates whether the repository contains any concept schemes.\n * @param graphUris URIs of the graphs to search.\n * @returns `true` if the repository contains any concept schemes, `false` otherwise.\n */\n hasConceptSchemes(graphUris) {\n return this.getConceptSchemes(graphUris).length > 0;\n }\n /**\n * Get all ontologies in the repository.\n * @param graphUris URIs of the graphs to search.\n * @returns A list of all ontologies in the repository.\n */\n getOntologies(graphUris) {\n const result = new Set();\n for (const q of this.store.matchAll(graphUris, null, ontologies_1.rdf.type, ontologies_1.owl.Ontology)) {\n const s = q.subject;\n if (s.termType != \"NamedNode\") {\n continue;\n }\n result.add(s.value);\n }\n return Array.from(result);\n }\n /**\n * Indicates whether the repository contains any ontology headers.\n * @param graphUris URIs of the graphs to search.\n * @returns `true` if the repository contains any ontology headers, `false` otherwise.\n */\n hasOntologies(graphUris) {\n return this.getOntologies(graphUris).length > 0;\n }\n /**\n * Get the version (owl:versionInfo) of an ontology. If the version is a date, it is returned as a string in the format \"YYYY-MM-DD\".\n * @param graphUris URIs of the graphs to search.\n * @param ontologyUri URI of the ontology.\n * @returns The version of the ontology, or undefined if it is not found.\n */\n getOntologyVersionInfo(graphUris, ontologyUri) {\n const s = namedNode(ontologyUri);\n for (const q of this.store.matchAll(graphUris, s, ontologies_1.owl.versionInfo, null)) {\n // If the version is a date, return it in the format \"YYYY-MM-DD\".\n const match = q.object.value.match(/(\\d{4}[\\/-]\\d{2}[\\/-]\\d{2})/);\n if (match && match.length > 1) {\n return new Date(match[1]).toISOString().substring(0, 10);\n }\n else {\n return q.object.value;\n }\n }\n }\n /**\n * Get the sources of definitions for a given graph. These are ontology definitions\n * or the objects of `rdfs:isDefinedBy` triples. If the rdfs:isDefinedBy object can be\n * matched with an ontology definition, the ontology URI is returned.\n * @param graphUris URIs of the graphs to search.\n * @returns A list of sources of definitions for the given graph.\n */\n getDefinitionSources(graphUris, includeOntologies = false) {\n const result = new Set();\n // Load all ontologies in the graph in a normalized form.\n const ontologies = {};\n // Store the normalized versions of the ontology URI so that we can detect \n // equality even if different namespace seperators ('#' and '/') are used.\n for (let o of this.getOntologies(graphUris)) {\n const uri = uri_1.Uri.getNormalizedUri(o);\n ontologies[uri] = o;\n }\n for (const q of this.store.matchAll(graphUris, null, ontologies_1.rdfs.isDefinedBy, null)) {\n const s = q.subject;\n const o = q.object;\n if (s.termType != \"NamedNode\" || o.termType != \"NamedNode\") {\n continue;\n }\n // Do not include ontologies in the list of sources. However, if there are other\n // terms defined by the object it will be included by subsequent iterations.\n const s_ = uri_1.Uri.getNormalizedUri(s.value);\n const o_ = uri_1.Uri.getNormalizedUri(o.value);\n let isOntology = s_ in ontologies;\n if (!isOntology || includeOntologies) {\n if (o_ in ontologies) {\n result.add(ontologies[o_]);\n }\n else {\n result.add(o.value);\n }\n }\n }\n return Array.from(result);\n }\n}\nexports.VocabularyRepository = VocabularyRepository;\n\n\n//# sourceURL=webpack://@faubulous/mentor-rdf/./src/rdf/vocabulary-repository.ts?");
|
|
1065
1407
|
|
|
1066
1408
|
/***/ })
|
|
1067
1409
|
|
|
@@ -1116,18 +1458,6 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
1116
1458
|
/******/ };
|
|
1117
1459
|
/******/ })();
|
|
1118
1460
|
/******/
|
|
1119
|
-
/******/ /* webpack/runtime/global */
|
|
1120
|
-
/******/ (() => {
|
|
1121
|
-
/******/ __webpack_require__.g = (function() {
|
|
1122
|
-
/******/ if (typeof globalThis === 'object') return globalThis;
|
|
1123
|
-
/******/ try {
|
|
1124
|
-
/******/ return this || new Function('return this')();
|
|
1125
|
-
/******/ } catch (e) {
|
|
1126
|
-
/******/ if (typeof window === 'object') return window;
|
|
1127
|
-
/******/ }
|
|
1128
|
-
/******/ })();
|
|
1129
|
-
/******/ })();
|
|
1130
|
-
/******/
|
|
1131
1461
|
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
1132
1462
|
/******/ (() => {
|
|
1133
1463
|
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|