From 8da5c68f8ee98a2b17141a6cb30d2398bd5cda71 Mon Sep 17 00:00:00 2001
From: Jacopo Scazzosi Source interface
+ interface Range { + attribute gt? Term; + attribute gte? Term; + attribute lt? Term; + attribute lte? Term; + }; ++
+ A Range is an object that defines a gamut of values by declaring the + gamut's own inclusive or exclusive boundaries. +
++ [Constructor, + Constructor(ConstructorOptions options)] + interface RangeSource { + Stream<Quad> match( + optional Term|Range[]|Range? subject, + optional Term|Range[]|Range? predicate, + optional Term|Range[]|Range? object, + optional Term|Range[]|Range? graph + ); + Boolean test(Term term, Range range); + }; ++
+ A RangeSource is a {{Source}} with added support for range-based + matching of quad Term(s). +
++ match() Returns a stream that processes all quads matching + the pattern, the latter defined using a mix of Term(s) and {{Range}}(s). + test() Returns `true` when the provided Term falls within + the specified {{Range}}. +
++ When matching using {{Range}} object, instances may elect to + test whether a given Term falls within a specified {{Range}} based on + the logical values of the Term and the {{Range}} boundaries as opposed + to their literal values. A numerical Term, such as a literal Term + having the `xsd:integer` datatype, might be tested against similarly + defined {{Range}} boundaries based on their position on the spectrum of + real numbers rather than based on the lexicographical ordering of their + literal forms. Instances may allows this behaviour to be + enabled/disabled via an appropriate option passed to their constructors. +
++ The presence of the `test()` method may be used to evaluate + whether a {{Source}} instance is also a {{RangeSource}}. +
+