From 6b4e16e87940e7afdd0b5bb655e186b36a1a2be2 Mon Sep 17 00:00:00 2001 From: Pano Maria Date: Sat, 9 Nov 2024 07:03:58 +0100 Subject: [PATCH] introduce provided source (#91) --- spec/section/source-vocabulary.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/spec/section/source-vocabulary.md b/spec/section/source-vocabulary.md index 1202dea..f04211a 100644 --- a/spec/section/source-vocabulary.md +++ b/spec/section/source-vocabulary.md @@ -456,3 +456,30 @@ specified by a string Literal. The file's absolute path is `/root/file.xml`. rml:iterator "$"; . + +In some cases, it is useful to describe access to a source that will be programmatically +provided to an RML processor at runtime. +This could, for example, be a byte stream or an already deserialized JSON or XML node. + +For these cases, the `rml:ProvidedSource` can be used. +It is a sub class of `rml:Source` and MUST have: + +* exactly one `rml:sourceIdentifier` property, whose value is a string literal, which +uniquely identifies the source. + +| Property | Domain | Range | +| ------------------------| --------------------- | ---------- | +| `rml:sourceIdentifier` | `rml:ProvidedSource` | `Literal` | + +The following example illustrates a provided source with its unique identifier `myByteStream`: + +
+<#ProvidedSource> a rml:LogicalSource;
+  rml:source [ a rml:ProvidedSource;
+    rml:sourceIdentifier "myByteStream";
+  ];
+.
+
+ +An RML processor MAY offer a mechanism to programmatically provide a data source corresponding to +the `rml:ProvidedSource` description.