No problem! Streams and Iterators have confused me myself, but luckily Andy
and other folks helped straighten me out.

Andy, you've given a nice list of potential discussions and others have as
well. My meta-question is when do we want to switch to tickets for this
process? I don't want to smother discussion in process, but I find it very
hard to follow a multithreaded discussion over email and I much prefer
breaking things out early to more specifics.

Shall I start capturing (or trying to) ideas, or is it too soon?

ajs6f

On Tue, Nov 19, 2019, 11:49 AM Bögershausen, Merlin Michael <
merlin.boegershau...@rwth-aachen.de> wrote:

> Seems like I've got the wrong feeling from early messages, revisited Andys
> Post missed the "additional provide" part, sorry.
>
> Am 19.11.2019 16:48 schrieb "A. Soroka" <sorok...@gmail.com>:
> I think there may be some confusion here about Streams and Iterators.
> Streams are not and were never intended to be a replacement for or
> equivalent to Iterators. Iterators are a source of elements. There is no
> further complexity. Streams, on the other hand, are pipelines of
> computation which do not begin flowing until a terminal operation is called
> and then the data flows through the pipe without further action from the
> caller.
>
> We should not even consider replacing Iterators with Streams and I did not
> hear anyone suggest it. The suggestion I heard (and which I thoroughly
> support) is to offer Streams alongside Iterators for their intended
> purpose; pipelining computations.
>
> For example, consider a dataset backed by a remote SPARQL connection.
> Suppose stream() is called on a graph from this dataset, and suppose
> limit() is called on that Stream. Then in the right conditions a smart
> implementation could push that limit upstream to become a LIMIT in the
> SPARQL being sent over the wire. That's the real value of all those methods
> on Stream. They aren't merely for developer convenience. A library like our
> Iter would do for that. They are there to provide opportunities to classify
> and manage the computations being pipelined.
>
> So Stream is very useful for its purpose, but not for Iterator's purpose.
> As for crossing module boundaries, I haven't seen any problems with that
> and I'm not sure what the objection actually is. In fact, refusing to
> expose
> Streams at APIs seems to make the whole thing rather pointless.
>
> ajs6f
>
>
> On Tue, Nov 19, 2019, 10:06 AM Merlin Bögershausen <
> merlin.boegershau...@rwth-aachen.de> wrote:
>
> > Hi,
> >
> > To the Stream discussion: Streams should not be passed beyond module
> > borders. In my personal view not even beyond scopes, because the
> > exceptions thrown by an already terminated stream can be misleading.
> > Every user can feel free to use the StreamSupport class whenever the
> > application code uses streams.
> >
> > Another thing, I would like to see a graph view inside Fuseki UI, where
> > the triples are visualized like in
> > <https://www.w3.org/2018/09/rdf-data-viz/>
> > I use such visualization whenever I explain the usage of our graph data
> > model to my colleagues, whenever they have problems to develop SPARQL
> > queries. Also, I feel that it would help our support team to see why
> > the system performs unexpected steps.
> >
> > Merlin
> >
> >
>
>

Reply via email to