[ANN] Apache Jena 2.7.1 and Jena Fuseki 0.2.2 releases.
We are pleased to announce Apache Jena 2.7.1, the first Apache release of Jena as a top level project, together with Jena Fuseki 0.2.2. The website for Apache Jena is http://jena.apache.org/ == Mailing lists The new list name is users@jena.apache.org Send email to users-subscr...@jena.apache.org to subscribe. See also: http://jena.apache.org/help_and_support/ == About This Release Download Mirrors: http://www.apache.org/dyn/closer.cgi/jena Master site: http://www.apache.org/dist/jena/ NB change of URL and change of layout of the distribution area = File Downloads The main download files are: binaries/apache-jena-2.7.1.zip binaries/jena-fuseki-0.2.2-distribution.zip .tar.gz forms are also available. These include Jena, ARQ and all dependent jars. = Maven artifacts Jena is also distributed as artifacts available in the maven central repositories. http://repo1.maven.org/maven2/org/apache/jena/ Artifacts in this release: org.apache.jena jena-core 2.7.1 org.apache.jena jena-arq 2.9.1 org.apache.jena jena-iri 0.9.1 org.apache.jena jena-tdb 0.9.1 org.apache.jena jena-parent1 See http://jena.apache.org/download/maven.html The Fuseki release is also in maven. for full details. Release Notes == Jena 2.7.1 + Fix timezone calculation during transition to/from DST. (JENA-247) + Rename c.h.h.j.graph.Query as c.h.h.j.graph.GraphQuery (not related to SPARQL) + remove out-of-date resultSet vocabulary class + icu4j dependency removed (JENA-177) + xml / xmlns namespaces issues on write fixed (JENA-24) == ARQ 2.9.1 + SPARQL 1.1: STRBEFORE and STRAFTER return simple empty string on no match. + Stop multiple SERVICE calls locking Fuseki up (JENA-248) + (internal) DatasetPrefixStorage : change removeFromPrefixMap(String, String, String) to removeFromPrefixMap(String, String) + Changes for BINDINGS (SPARQL 1.1) - align with SPARQL-WG Now called VALUES : slight syntax changes. VALUES can be inline data as part of a query pattern. + Comprehensive support for date/time/durations operations (JENA-235) + Property path syntax revised to align with current SPARQL No {...} forms in SPARQL query engine (available in ARQ language) + Property path semantics revised to align with current SPARQL *, + and ? are connectivity/non-counting + New property path evaluation engine framework. + Bug fix: DISTINCT might not be distinct (JENA-211) + QueryEngineHttp has configuration options (JENA-210) + Add function StrUUID which returns a UUID string (c.f. UUID() for a UUID as a URI of form urn:uuid:) Also available as afn:struuid() and afn:uuid() for strict syntax. + Add UpdateExecutionFactory.createRemote(...) for remote execution of SPARQL Update (JENA-197) + Allow users to specify query parameters in SERVICE Allow the context to include a set of parameters add to SERVICE requests (JENA-195) + SPARQL 1.1: Complete scope tracking of variables (JENA-142) + SPARQL/Trutle alignment: Prefix names can contain ':' unescaped. No escape for ':' + Faster writing of XML and JSON results formats (JENA-178) + Support for SERVICE with additional parameters (JENA-195) == TDB 0.9.1 + (JENA-252) Fix multithreaded interaction transitioning to transactional mode + (JENA-250) Fix lack of sync transitioning to transactional mode + Added tdbloader3 (i.e. a pure Java version of tdbloader2) (JENA-117) + Bug fix: Graph.size() reports '0' for TDB urn:x-arq:UnionGraph (JENA-222) + Bug fix: Illegal UTF-8 could corrupt the node table. Use binary-safe encoder/decoder (JENA-225) + Bug fix: (JENA-230) == Fuseki 0.2.2 + This version picks up bug fixes from TDB and ARQ. This includes problems with concurrent operations.
SPARUL grammar question for ARQ
According to sparql.org this parses: DELETE WHERE { ?s ?p ?o } According to the spec empty brackets are required in the construct template. http://www.w3.org/Submission/SPARQL-Update/#rConstructTemplate Is this an extension for ARQ, or am I mis-reading the grammar? Is there a pedantic parser for the updates that would parse only valid 1.1 syntax for updates (as there is for query) ?
Re: SPARUL grammar question for ARQ
On 18/06/12 20:38, Tim Harsch wrote: According to sparql.org this parses: DELETE WHERE { ?s ?p ?o } According to the spec empty brackets are required in the construct template. http://www.w3.org/Submission/SPARQL-Update/#rConstructTemplate Is this an extension for ARQ, or am I mis-reading the grammar? Is there a pedantic parser for the updates that would parse only valid 1.1 syntax for updates (as there is for query) ? Your reading the wrong spec :-) The ARQ's update parser is pedantic, as you put it, and that is what you get with syntax SPARQL. SPARQL Update - as will become a W3C Recommendation is: http://www.w3.org/TR/sparql11-update/ While the submission was input at the start of the WG process, the resulting language has moved on. One feature added is the DELETE WHERE { ?s ?p ?o } shortcut http://www.w3.org/2009/sparql/docs/update-1.1/Overview.xml#deleteWhere which is equivalent in effect to DELETE { ?s ?p ?o } WHERE { ?s ?p ?o } Andy
Re: SPARUL grammar question for ARQ
Doh, Google did it to me again. I should have noticed it in the URL. thanks, tim From: Andy Seaborne a...@apache.org To: users@jena.apache.org Sent: Monday, June 18, 2012 12:52 PM Subject: Re: SPARUL grammar question for ARQ On 18/06/12 20:38, Tim Harsch wrote: According to sparql.org this parses: DELETE WHERE { ?s ?p ?o } According to the spec empty brackets are required in the construct template. http://www.w3.org/Submission/SPARQL-Update/#rConstructTemplate Is this an extension for ARQ, or am I mis-reading the grammar? Is there a pedantic parser for the updates that would parse only valid 1.1 syntax for updates (as there is for query) ? Your reading the wrong spec :-) The ARQ's update parser is pedantic, as you put it, and that is what you get with syntax SPARQL. SPARQL Update - as will become a W3C Recommendation is: http://www.w3.org/TR/sparql11-update/ While the submission was input at the start of the WG process, the resulting language has moved on. One feature added is the DELETE WHERE { ?s ?p ?o } shortcut http://www.w3.org/2009/sparql/docs/update-1.1/Overview.xml#deleteWhere which is equivalent in effect to DELETE { ?s ?p ?o } WHERE { ?s ?p ?o } Andy
Re: SPARUL grammar question for ARQ
On 18/06/12 21:34, Tim Harsch wrote: Doh, Google did it to me again. I should have noticed it in the URL. Get people to stop clicking on it and the spec will return to being first - they seem to alternate :-) Andy thanks, tim
literals as predicates
Not sure what I am seeing here. Is it OK for literal's to be predicates in this case? 1) Start up Fuseki-0.2.1 incubating 2) load books.ttl 3) run this PREFIX dc: http://purl.org/dc/elements/1.1/ INSERT { ?s ?c 1 } WHERE { ?s dc:title ?c . } 4) run this (notice literal as predicate) - | s | p | o | = | http://example.org/book/book5 | Harry Potter and the Order of the Phoenix | 1 | | http://example.org/book/book5 | http://purl.org/dc/elements/1.1/title | Harry Potter and the Order of the Phoenix | | http://example.org/book/book5 | http://purl.org/dc/elements/1.1/creator | J.K. Rowling | | http://example.org/book/book3 | Harry Potter and the Prisoner Of Azkaban | 1 | | http://example.org/book/book3 | http://purl.org/dc/elements/1.1/title | Harry Potter and the Prisoner Of Azkaban | | http://example.org/book/book3 | http://purl.org/dc/elements/1.1/creator | _:b0| | _:b1| http://www.w3.org/2001/vcard-rdf/3.0#Family | Rowling | | _:b1| http://www.w3.org/2001/vcard-rdf/3.0#Given | Joanna | | http://example.org/book/book1 | Harry Potter and the Philosopher's Stone | 1 | | http://example.org/book/book1 | http://purl.org/dc/elements/1.1/title | Harry Potter and the Philosopher's Stone | | http://example.org/book/book1 | http://purl.org/dc/elements/1.1/creator | J.K. Rowling | | http://example.org/book/book6 | Harry Potter and the Half-Blood Prince | 1 | | http://example.org/book/book6 | http://purl.org/dc/elements/1.1/title | Harry Potter and the Half-Blood Prince| | http://example.org/book/book6 | http://purl.org/dc/elements/1.1/creator | J.K. Rowling | | http://example.org/book/book4 | Harry Potter and the Goblet of Fire | 1 | | http://example.org/book/book4 | http://purl.org/dc/elements/1.1/title | Harry Potter and the Goblet of Fire | | _:b0| http://www.w3.org/2001/vcard-rdf/3.0#FN | J.K. Rowling | | _:b0| http://www.w3.org/2001/vcard-rdf/3.0#N | _:b1| | http://example.org/book/book2 | Harry Potter and the Chamber of Secrets | 1 | | http://example.org/book/book2 | http://purl.org/dc/elements/1.1/title | Harry Potter and the Chamber of Secrets | | http://example.org/book/book2 | http://purl.org/dc/elements/1.1/creator | _:b0| | http://example.org/book/book7 | Harry Potter and the Deathly Hallows | 1 | | http://example.org/book/book7 | http://purl.org/dc/elements/1.1/title | Harry Potter and the Deathly Hallows | | http://example.org/book/book7 | http://purl.org/dc/elements/1.1/creator | J.K. Rowling | -
Re: literals as predicates
Oops forgot to say the query for #4: SELECT * { ?s ?p ?o } From: Tim Harsch harschw...@yahoo.com To: JENA-USERS jena-us...@incubator.apache.org Sent: Monday, June 18, 2012 5:12 PM Subject: literals as predicates Not sure what I am seeing here. Is it OK for literal's to be predicates in this case? 1) Start up Fuseki-0.2.1 incubating 2) load books.ttl 3) run this PREFIX dc: http://purl.org/dc/elements/1.1/ INSERT { ?s ?c 1 } WHERE { ?s dc:title ?c . } 4) run this (notice literal as predicate) - | s | p | o | = | http://example.org/book/book5 | Harry Potter and the Order of the Phoenix | 1 | | http://example.org/book/book5 | http://purl.org/dc/elements/1.1/title | Harry Potter and the Order of the Phoenix | | http://example.org/book/book5 | http://purl.org/dc/elements/1.1/creator | J.K. Rowling | | http://example.org/book/book3 | Harry Potter and the Prisoner Of Azkaban | 1 | | http://example.org/book/book3 | http://purl.org/dc/elements/1.1/title | Harry Potter and the Prisoner Of Azkaban | | http://example.org/book/book3 | http://purl.org/dc/elements/1.1/creator | _:b0 | | _:b1 | http://www.w3.org/2001/vcard-rdf/3.0#Family | Rowling | | _:b1 | http://www.w3.org/2001/vcard-rdf/3.0#Given | Joanna | | http://example.org/book/book1 | Harry Potter and the Philosopher's Stone | 1 | | http://example.org/book/book1 | http://purl.org/dc/elements/1.1/title | Harry Potter and the Philosopher's Stone | | http://example.org/book/book1 | http://purl.org/dc/elements/1.1/creator | J.K. Rowling | | http://example.org/book/book6 | Harry Potter and the Half-Blood Prince | 1 | | http://example.org/book/book6 | http://purl.org/dc/elements/1.1/title | Harry Potter and the Half-Blood Prince | | http://example.org/book/book6 | http://purl.org/dc/elements/1.1/creator | J.K. Rowling | | http://example.org/book/book4 | Harry Potter and the Goblet of Fire | 1 | | http://example.org/book/book4 | http://purl.org/dc/elements/1.1/title | Harry Potter and the Goblet of Fire | | _:b0 | http://www.w3.org/2001/vcard-rdf/3.0#FN | J.K. Rowling | | _:b0 | http://www.w3.org/2001/vcard-rdf/3.0#N | _:b1 | | http://example.org/book/book2 | Harry Potter and the Chamber of Secrets | 1 | | http://example.org/book/book2 | http://purl.org/dc/elements/1.1/title | Harry Potter and the Chamber of Secrets | | http://example.org/book/book2 | http://purl.org/dc/elements/1.1/creator | _:b0 | | http://example.org/book/book7 | Harry Potter and the Deathly Hallows | 1 | | http://example.org/book/book7 | http://purl.org/dc/elements/1.1/title | Harry Potter and the Deathly Hallows | | http://example.org/book/book7 | http://purl.org/dc/elements/1.1/creator | J.K. Rowling | -
Re: literals as predicates
I don't believe that literals are valid as predicates in RDF but also I don't believe TDB enforces any restrictions on what kind of Nodes can be stored. Strictly speaking those should be invalid triples and in principal a SPARQL Update engine should refuse to insert them but I may be interpreting the spec wrong. Andy can probably answer the question better than I can Rob On 6/18/12 5:12 PM, Tim Harsch harschw...@yahoo.com wrote: Not sure what I am seeing here. Is it OK for literal's to be predicates in this case? 1) Start up Fuseki-0.2.1 incubating 2) load books.ttl 3) run this PREFIX dc: http://purl.org/dc/elements/1.1/ INSERT { ?s ?c 1 } WHERE { ?s dc:title ?c . } 4) run this (notice literal as predicate) -- --- | s | p | o | == === | http://example.org/book/book5 | Harry Potter and the Order of the Phoenix | 1 | | http://example.org/book/book5 | http://purl.org/dc/elements/1.1/title | Harry Potter and the Order of the Phoenix | | http://example.org/book/book5 | http://purl.org/dc/elements/1.1/creator | J.K. Rowling | | http://example.org/book/book3 | Harry Potter and the Prisoner Of Azkaban| 1 | | http://example.org/book/book3 | http://purl.org/dc/elements/1.1/title | Harry Potter and the Prisoner Of Azkaban | | http://example.org/book/book3 | http://purl.org/dc/elements/1.1/creator | _:b0 | | _:b1| http://www.w3.org/2001/vcard-rdf/3.0#Family | Rowling | | _:b1| http://www.w3.org/2001/vcard-rdf/3.0#Given | Joanna | | http://example.org/book/book1 | Harry Potter and the Philosopher's Stone| 1 | | http://example.org/book/book1 | http://purl.org/dc/elements/1.1/title | Harry Potter and the Philosopher's Stone | | http://example.org/book/book1 | http://purl.org/dc/elements/1.1/creator | J.K. Rowling | | http://example.org/book/book6 | Harry Potter and the Half-Blood Prince | 1 | | http://example.org/book/book6 | http://purl.org/dc/elements/1.1/title | Harry Potter and the Half-Blood Prince| | http://example.org/book/book6 | http://purl.org/dc/elements/1.1/creator | J.K. Rowling | | http://example.org/book/book4 | Harry Potter and the Goblet of Fire | 1 | | http://example.org/book/book4 | http://purl.org/dc/elements/1.1/title | Harry Potter and the Goblet of Fire | | _:b0| http://www.w3.org/2001/vcard-rdf/3.0#FN | J.K. Rowling | | _:b0| http://www.w3.org/2001/vcard-rdf/3.0#N | _:b1 | | http://example.org/book/book2 | Harry Potter and the Chamber of Secrets | 1 | | http://example.org/book/book2 | http://purl.org/dc/elements/1.1/title | Harry Potter and the Chamber of Secrets | | http://example.org/book/book2 | http://purl.org/dc/elements/1.1/creator | _:b0 | | http://example.org/book/book7 | Harry Potter and the Deathly Hallows| 1 | | http://example.org/book/book7 | http://purl.org/dc/elements/1.1/title | Harry Potter and the Deathly Hallows | | http://example.org/book/book7 | http://purl.org/dc/elements/1.1/creator | J.K. Rowling | -- ---
Fuseki Server Warning Message
HI, I was experiencing with http://localhost:3030/sparql.tpl for updating the tuples and search queries. The Update command is PREFIX owl: http://localhost:3030/ds2/search.owl# PREFIX xsd: http://www.w3.org/2001/XMLSchema# INSERT DATA { http://localhost:3030/ds2/search.owl#name1 owl:hasFirstname Rex ^^ xsd:string; } It is updating the tuples but when I look at the server log I saw lot of warning messages. java -Xmx1200M -jar fuseki-server.jar --update --loc=/TD /ds2 12:32:05 INFO Server :: TDB dataset: directory=/TD 12:32:05 INFO Server :: Dataset path = /ds2 12:32:05 INFO Server :: Fuseki 0.2.3-SNAPSHOT 20120614-0506 12:32:05 INFO Server :: Jetty 7.x.y-SNAPSHOT 12:32:05 INFO Server :: Started 2012/06/19 12:32:05 PDT on port 3030 12:33:13 INFO Fuseki :: [1] POST http://localhost:3030/ds2/update 12:33:13 WARN SPARQL_Update$HttpActionUpdate :: Transaction still active in end Writer - no commit or abort seen (forced abort) 12:33:13 WARN SPARQL_Update$HttpActionUpdate :: Exception in forced abort (trying to continue) com.hp.hpl.jena.tdb.transaction.TDBTransactionException: Transaction has already committed or abortedat com.hp.hpl.jena.tdb.transaction.Transaction.abortTransaction.java:146) at com.hp.hpl.jena.tdb.transaction.DatasetGraphTxn.abort(DatasetGraphTxn.java:45) at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction._abort(DatasetGraphTransaction.java:138) at com.hp.hpl.jena.tdb.migrate.DatasetGraphTrackActive.abort(DatasetGraphTrackActive.java:68) at org.apache.jena.fuseki.servlets.HttpAction.endWrite(HttpAction.java:120) at org.apache.jena.fuseki.servlets.SPARQL_Update.execute(SPARQL_Update.java:239) at org.apache.jena.fuseki.servlets.SPARQL_Update.executeForm(SPARQL_Update.java:226) at org.apache.jena.fuseki.servlets.SPARQL_Update.perform(SPARQL_Update.java:122) at org.apache.jena.fuseki.servlets.SPARQL_ServletBase.doCommon(SPARQL_ServletBase.java:92) at org.apache.jena.fuseki.servlets.SPARQL_Update.doPost(SPARQL_Update.java:78) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:480) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:941) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110) at org.eclipse.jetty.server.Server.handle(Server.java:349) at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441) at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:936) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:801) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:224) at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:50) atorg.eclipse.jetty.server.nio.BlockingChannelConnector$BlockingChannelEndPoint.run(BlockingChannelConnector.java:293) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533) at java.lang.Thread.run(Unknown Source) 12:33:13 INFO Fuseki :: [1] 200 OK My doubt is after updating the tuples, why I was not able to see the updated owl file rather I can see the updated results only through http://localhost:3030/sparql.tpl with SPARQL query. Even after restarting the window and again giving the search query PREFIX owl:http://localhost:3030/ds2/search.owl# SELECT * WHERE { ?Person owl:hasFirstname ?hasFirstname. } I am getting the results with the updated tuples.I am confusing where it is actually storing. Still cannot able to figure out.Or we cannot see these updated tuples physically? Here is my server configuration java -Xmx1200M -jar fuseki-server.jar --update --loc=/TD /ds2, but if I change to (*--loc=./TD*) and give the search query command it will display the tuples present inside search.owl file excluded the tuples added using the browser. Any solution for this. Thanks