[jira] [Commented] (JENA-2130) GSP. Graph Store Protocol client using java.net.http
[ 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
+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
[ 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
[ 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
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.
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
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.
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.
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.
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
[ 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
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.
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
## 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)