[jira] [Commented] (JENA-2130) GSP. Graph Store Protocol client using java.net.http

2021-07-09 Thread Andy Seaborne (Jira)


[ 
https://issues.apache.org/jira/browse/JENA-2130?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17378216#comment-17378216
 ] 

Andy Seaborne commented on JENA-2130:
-

See the title of this JIRA. It is a class, {{GSP}}, with the graph store 
protocol operations.

JENA-2126, JENA-2127, JENA-2128, JENA-2129 are providing other interfaces.

{{RDFConnection}} collects usage together - the operations map 1-1 with the 
next layer down. Setup and context are shared – dataset (local) and HTTP setup 
(remote, authentication). In addition, applications have sequential patterns - 
do this query, make that update operating on the server or database, and 
{{RDFConnection}}  ({{RDFLink}}) provides processing patterns.

 

> GSP. Graph Store Protocol client using java.net.http
> 
>
> Key: JENA-2130
> URL: https://issues.apache.org/jira/browse/JENA-2130
> Project: Apache Jena
>  Issue Type: Improvement
>  Components: ARQ, SPARQL
>Affects Versions: Jena 4.1.0
>Reporter: Andy Seaborne
>Assignee: Andy Seaborne
>Priority: Major
>
> All GSP usage.
> {{DatasetAccessor}} and {{DatasetGraphAccessor}} are already deprecated.
> Normally, GSP will be used via {{RDFConnection}} and {{RDFLink}}.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


Re: [DRAFT] Apache Jena report - 2021-07

2021-07-09 Thread ajs6f
+1, thanks Andy!

Adam

On Fri, Jul 9, 2021, 10:43 AM Andy Seaborne  wrote:

> ## Description:
> The mission of Jena is the creation and maintenance of software related
> to Java framework for building Semantic Web applications
>
> ## Issues:
> There are no issues requiring board attention.
>
> ## Membership Data:
> Apache Jena was founded 2012-04-18 (9 years ago)
> There are currently 18 committers and 14 PMC members in this project.
> The Committer-to-PMC ratio is 9:7.
>
> Community changes, past quarter:
> - No new PMC members. Last addition was Aaron Coburn on 2019-01-22.
> - No new committers. Last addition was Greg Albiston on 2019-07-08.
>
> ## Project Activity:
>
> The project dealt with CVE-2021-33192. The project released 4.1.0
> slightly earlier than the usual cycle bu this was timely for both
> addressing the CVE issue, where there isn't a simple works around in all
> cases, and also tiding-up after the 4.0.0 release. 4.0.0 had some low
> level changes that were not completely transparent to user applications.
>
> The move to requiring Java11 has been smooth.
>
> ## Community Health:
>
> Activity on mailing list and PRs have been quieter. There is no obvious
> specific reason for this. Given the major version change reported last
> report, "quiet" is probably a good thing with a slight reduction in open
> JIRA tickets.
>
> --
>
> The statistics:
>
> dev@jena.apache.org had a 25% decrease in traffic in the past quarter
> (504 emails compared to 671)
>
> p...@jena.apache.org had a 46% decrease in traffic in the past quarter
> (206 emails compared to 381)
>
> us...@jena.apache.org had a 26% decrease in traffic in the past quarter
> (277 emails compared to 374)
>
> 38 issues opened in JIRA, past quarter (-39% change)
> 58 issues closed in JIRA, past quarter (-3% change)
> 172 commits in the past quarter (-29% change)
>


[jira] [Comment Edited] (JENA-2130) GSP. Graph Store Protocol client using java.net.http

2021-07-09 Thread Jira


[ 
https://issues.apache.org/jira/browse/JENA-2130?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17378209#comment-17378209
 ] 

Martynas Jusevičius edited comment on JENA-2130 at 7/9/21, 5:45 PM:


I don't understand why all the protocols are being lumped together under 
{{RDFConnection}} instead of having dedicated interfaces as before? To me 
that's bad OO design.

There is no such thing as "connection" in the RDF world, but there are 
endpoints for different protocols, and their "accessors" or clients or what you 
want to call them.


was (Author: graphity):
I don't understand why all the protocols are being lumped together under 
{{RDFConnection}} instead of having dedicated interfaces as before? To me 
that's bad OO design.

There is no such thing as "connection" in the RDF world, but there are 
endpoints (and their "accessors" or clients or what you want to call them).

> GSP. Graph Store Protocol client using java.net.http
> 
>
> Key: JENA-2130
> URL: https://issues.apache.org/jira/browse/JENA-2130
> Project: Apache Jena
>  Issue Type: Improvement
>  Components: ARQ, SPARQL
>Affects Versions: Jena 4.1.0
>Reporter: Andy Seaborne
>Assignee: Andy Seaborne
>Priority: Major
>
> All GSP usage.
> {{DatasetAccessor}} and {{DatasetGraphAccessor}} are already deprecated.
> Normally, GSP will be used via {{RDFConnection}} and {{RDFLink}}.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (JENA-2130) GSP. Graph Store Protocol client using java.net.http

2021-07-09 Thread Jira


[ 
https://issues.apache.org/jira/browse/JENA-2130?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17378209#comment-17378209
 ] 

Martynas Jusevičius commented on JENA-2130:
---

I don't understand why all the protocols are being lumped together under 
{{RDFConnection}} instead of having dedicated interfaces as before? To me 
that's bad OO design.

There is no such thing as "connection" in the RDF world, but there are 
endpoints (and their "accessors" or clients or what you want to call them).

> GSP. Graph Store Protocol client using java.net.http
> 
>
> Key: JENA-2130
> URL: https://issues.apache.org/jira/browse/JENA-2130
> Project: Apache Jena
>  Issue Type: Improvement
>  Components: ARQ, SPARQL
>Affects Versions: Jena 4.1.0
>Reporter: Andy Seaborne
>Assignee: Andy Seaborne
>Priority: Major
>
> All GSP usage.
> {{DatasetAccessor}} and {{DatasetGraphAccessor}} are already deprecated.
> Normally, GSP will be used via {{RDFConnection}} and {{RDFLink}}.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


Re: Evolving HttpClient usage

2021-07-09 Thread Andy Seaborne

Epic JENA-2125 to track this with tickets for each part.

>   ResultSet(resources) - RowSet (Nodes)
>   RDFConnection - RDFLink
>   QueryExecution - QueryExec

Andy

On 28/06/2021 18:00, Andy Seaborne wrote:

Jena currently uses Apache HttpClient v4 for HTTP.
This supports HTTP 1.1.

Apache HttpClient v5 supports HTTP/2 and there is a migration path from 
v4 to new style v5 but the path is not seamless. It is at least package 
renaming followed by API changes.


https://hc.apache.org/httpcomponents-client-5.1.x/migration-guide/index.html 


   and
https://hc.apache.org/httpcomponents-client-5.1.x/migration-guide/migration-to-classic.html 




For most Jena users, there are no application changes needed because 
SPARQL operations are packed up into the Jena APIs. But if an 
application is doing detailed HTTP setup - most importantly,that 
includes authentication - there is going to be a migration impact.


Java11 now has a API java.net.http an all-new way to work with HTTP 
including HTTP/2. (And there are other HTTP clients - I haven't used any 
of those others).



Should we update to java.net.http or Apache HttpClient v5 or other?


Given the JDK has a decent HTTP client, my preference is to switch to 
use java.net.http unless there is a positive reason to use a specific 
external one.


The JDK provided one means dependencies, is always present, and gets 
fixes/improvements (if any) come by updating the JVM used.




And also if HTTP support in Jena is being upgraded ... the code could do 
with some work. Some of it is really old and is showing its age.


Areas:
    RDFConnection,
    SPARQL/HTTP QueryExecution and UpdateProcessor,
    Graph Store Protocol
    SERVICE.

== Improvements

+ Builder style for constructing the more complicated
   (e.g. anything HTTP!)
+ Both Model and Graph / Statement and Triple level APIs
   (Model-level being adapters of Graph level engines)

  ResultSet(resources) - RowSet (Nodes)
  RDFConnection - RDFLink
  QueryExecution - QueryExec
  (not an issue with UpdateProcessor)

+ Deprecation of QueryExecution.setTimeout and setIntialBinding
   (use a builder)
+ Switch to rewrite for initial bindings
   This will work for remote usage which currently is unsupported,
+ Explicit GSP engine - include support for quads operations.

. SERVICE rewrite to use the new classes.

- HttpOp : Direct use of java.net.http covers the complex cases so
   this class can be smaller and focused on the common cases.
   (I doubt it's used much directly)

+ Utilities: HttpRDF, AsyncHttpRDF, HttpOp
   AsyncHttpRDF should at least cover async GET so apps can
   gather data from several places in parallel.

== Migration

If we leave the old code for SPARQL execution (QueryEngineHTTP and 
HttpQuery) in-place, with Apache HttpClient4, apply copious deprecations
then, mostly, we have less sudden change. We then remove in a couple of 
releases time.


Deprecate all QueryExecutionFactory.sparqlService, createServiceRequest 
and refer to (new) QueryExecutionHTTPBuilder


Deprecate of QueryExecution.setTimeout and setIntialBindings - they 
should not be where they are.


Update documentation

== Improvements

Code:

   https://github.com/afs/jena-http

which at the moment needs a custom Jena build because of misc cleanup 
and things found while writing jena-http and not PR'ed to Jena.


Using a different HttpClient should not be too difficult as it 
internally encapsulates HttpClient usage. But a switchable HttpClient 
isn't so easy and also not invisible to users because of authentication 
setup is implementation-specific. We can't abstract authentication 
without significant costs in support and maintenance to the project.


     Andy


[jira] [Created] (JENA-2131) RDFLink - Graph/Node version of RDFConnection.

2021-07-09 Thread Andy Seaborne (Jira)
Andy Seaborne created JENA-2131:
---

 Summary: RDFLink - Graph/Node version of RDFConnection.
 Key: JENA-2131
 URL: https://issues.apache.org/jira/browse/JENA-2131
 Project: Apache Jena
  Issue Type: Improvement
  Components: SPARQL
Affects Versions: Jena 4.1.0
Reporter: Andy Seaborne
Assignee: Andy Seaborne


Convert the machinery to {{RDFConnection}} to the SPI level and make 
{{RDFConnection}} an adapter to map from SPI to API.




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (JENA-2130) GSP. Graph Store Protocol client using java.net.http

2021-07-09 Thread Andy Seaborne (Jira)
Andy Seaborne created JENA-2130:
---

 Summary: GSP. Graph Store Protocol client using java.net.http
 Key: JENA-2130
 URL: https://issues.apache.org/jira/browse/JENA-2130
 Project: Apache Jena
  Issue Type: Improvement
  Components: ARQ, SPARQL
Affects Versions: Jena 4.1.0
Reporter: Andy Seaborne
Assignee: Andy Seaborne


All GSP usage.

{{DatasetAccessor}} and {{DatasetGraphAccessor}} are already deprecated.

Normally, GSP will be used via {{RDFConnection}} and {{RDFLink}}.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (JENA-2129) QueryExecHTTP, UpdateExecHTTP: Remote SPARQL execution.

2021-07-09 Thread Andy Seaborne (Jira)
Andy Seaborne created JENA-2129:
---

 Summary: QueryExecHTTP,  UpdateExecHTTP: Remote SPARQL execution.
 Key: JENA-2129
 URL: https://issues.apache.org/jira/browse/JENA-2129
 Project: Apache Jena
  Issue Type: Improvement
  Components: ARQ, SPARQL
Affects Versions: Jena 4.1.0
Reporter: Andy Seaborne
Assignee: Andy Seaborne


HTTP operations for JENA-2128.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (JENA-2128) QueryExec, UpdateExec. SPI versions of QueryExection and UpdateProcessor.

2021-07-09 Thread Andy Seaborne (Jira)
Andy Seaborne created JENA-2128:
---

 Summary: QueryExec, UpdateExec. SPI versions of QueryExection and 
UpdateProcessor.
 Key: JENA-2128
 URL: https://issues.apache.org/jira/browse/JENA-2128
 Project: Apache Jena
  Issue Type: Improvement
  Components: ARQ, SPARQL
Affects Versions: Jena 4.1.0
Reporter: Andy Seaborne
Assignee: Andy Seaborne


(This JIRA for local usage)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (JENA-2127) RowSet: Binding/Node version of SPARQL result set.

2021-07-09 Thread Andy Seaborne (Jira)
Andy Seaborne created JENA-2127:
---

 Summary: RowSet: Binding/Node version of SPARQL result set.
 Key: JENA-2127
 URL: https://issues.apache.org/jira/browse/JENA-2127
 Project: Apache Jena
  Issue Type: Improvement
  Components: ARQ, SPARQL
Affects Versions: Jena 4.1.0
Reporter: Andy Seaborne
Assignee: Andy Seaborne


The existing {{ResultSet}} has both {{Resource}} (mostly) and {{Node}}, via 
{{Binding}}, operations.

{{RowSet}} is the {{Node}} and {{Binding}} only SPARQL result set.

{{ResultSet}} can migrate to be {{Resource}} by deprecating {{nextBinding}}.




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (JENA-2126) org.apache.jena.http: Base layer HTTP operations

2021-07-09 Thread Andy Seaborne (Jira)


 [ 
https://issues.apache.org/jira/browse/JENA-2126?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andy Seaborne reassigned JENA-2126:
---

Assignee: Andy Seaborne

> org.apache.jena.http: Base layer HTTP operations
> 
>
> Key: JENA-2126
> URL: https://issues.apache.org/jira/browse/JENA-2126
> Project: Apache Jena
>  Issue Type: Improvement
>Reporter: Andy Seaborne
>Assignee: Andy Seaborne
>Priority: Major
>
> Replacement for HttpOp, using the java.net.http package.
> * HttpOp (rewritten) - packaged up convenience GET/POST/PUT/PATCH
> * HttpRDF  - RDF use of HttpOp, not including GSP naming.
> * AsyncHttpRDF - asynchronous version of HttpOp



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (JENA-2126) org.apache.jena.http: Base layer HTTP operations

2021-07-09 Thread Andy Seaborne (Jira)
Andy Seaborne created JENA-2126:
---

 Summary: org.apache.jena.http: Base layer HTTP operations
 Key: JENA-2126
 URL: https://issues.apache.org/jira/browse/JENA-2126
 Project: Apache Jena
  Issue Type: Improvement
Reporter: Andy Seaborne


Replacement for HttpOp, using the java.net.http package.

* HttpOp (rewritten) - packaged up convenience GET/POST/PUT/PATCH
* HttpRDF  - RDF use of HttpOp, not including GSP naming.
* AsyncHttpRDF - asynchronous version of HttpOp



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (JENA-2125) Consistent architecture for SPI and API SPARQL operations. JDK HttpClient.

2021-07-09 Thread Andy Seaborne (Jira)
Andy Seaborne created JENA-2125:
---

 Summary: Consistent architecture for SPI and API SPARQL 
operations. JDK HttpClient.
 Key: JENA-2125
 URL: https://issues.apache.org/jira/browse/JENA-2125
 Project: Apache Jena
  Issue Type: Epic
  Components: SPARQL, ARQ, RDF HTTP, RIOT
Affects Versions: Jena 4.1.0
Reporter: Andy Seaborne
Assignee: Andy Seaborne


This ticket covers:

* Introduce graph/triple/node versions of query execution
* Use adapters to go from SPI to API (QueryExecution etc)
* Similarly for RDFConnection: implment as SPI and have adapters to API
* Implementation remote operations based on java.net.http.HttpClient
* GSP client




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[DRAFT] Apache Jena report - 2021-07

2021-07-09 Thread Andy Seaborne

## Description:
The mission of Jena is the creation and maintenance of software related 
to Java framework for building Semantic Web applications


## Issues:
There are no issues requiring board attention.

## Membership Data:
Apache Jena was founded 2012-04-18 (9 years ago)
There are currently 18 committers and 14 PMC members in this project.
The Committer-to-PMC ratio is 9:7.

Community changes, past quarter:
- No new PMC members. Last addition was Aaron Coburn on 2019-01-22.
- No new committers. Last addition was Greg Albiston on 2019-07-08.

## Project Activity:

The project dealt with CVE-2021-33192. The project released 4.1.0 
slightly earlier than the usual cycle bu this was timely for both 
addressing the CVE issue, where there isn't a simple works around in all 
cases, and also tiding-up after the 4.0.0 release. 4.0.0 had some low 
level changes that were not completely transparent to user applications.


The move to requiring Java11 has been smooth.

## Community Health:

Activity on mailing list and PRs have been quieter. There is no obvious 
specific reason for this. Given the major version change reported last 
report, "quiet" is probably a good thing with a slight reduction in open 
JIRA tickets.


--

The statistics:

dev@jena.apache.org had a 25% decrease in traffic in the past quarter 
(504 emails compared to 671)


p...@jena.apache.org had a 46% decrease in traffic in the past quarter 
(206 emails compared to 381)


us...@jena.apache.org had a 26% decrease in traffic in the past quarter 
(277 emails compared to 374)


38 issues opened in JIRA, past quarter (-39% change)
58 issues closed in JIRA, past quarter (-3% change)
172 commits in the past quarter (-29% change)