You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@rya.apache.org by "Maxim Kolchin (JIRA)" <ji...@apache.org> on 2018/04/26 15:21:00 UTC

[jira] [Commented] (RYA-492) Add language support to Literals

    [ https://issues.apache.org/jira/browse/RYA-492?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16454386#comment-16454386 ] 

Maxim Kolchin commented on RYA-492:
-----------------------------------

We're also affected by this issue. Our stacktrace:


{code:java}
java.lang.IllegalArgumentException: datatype rdf:langString requires a language tag
rya_1        |     at org.eclipse.rdf4j.model.impl.SimpleLiteral.<init>(SimpleLiteral.java:99)
rya_1        |     at org.eclipse.rdf4j.model.impl.AbstractValueFactory.createLiteral(AbstractValueFactory.java:118)
rya_1        |     at org.apache.rya.api.resolver.RyaToRdfConversions.convertLiteral(RyaToRdfConversions.java:52)
rya_1        |     at org.apache.rya.api.resolver.RyaToRdfConversions.convertValue(RyaToRdfConversions.java:59)
rya_1        |     at org.apache.rya.api.resolver.RyaToRdfConversions.convertStatement(RyaToRdfConversions.java:72)
rya_1        |     at org.apache.rya.api.persist.utils.RyaDAOHelper$2.next(RyaDAOHelper.java:157)
rya_1        |     at org.apache.rya.api.persist.utils.RyaDAOHelper$2.next(RyaDAOHelper.java:124)
rya_1        |     at org.eclipse.rdf4j.common.iteration.ConvertingIteration.next(ConvertingIteration.java:91)
rya_1        |     at org.eclipse.rdf4j.common.iteration.ConvertingIteration.next(ConvertingIteration.java:91)
rya_1        |     at org.eclipse.rdf4j.common.iteration.IterationWrapper.next(IterationWrapper.java:91)
rya_1        |     at org.eclipse.rdf4j.common.iteration.LimitIteration.next(LimitIteration.java:88)
rya_1        |     at org.apache.rya.rdftriplestore.RdfCloudTripleStoreConnection$1.next(RdfCloudTripleStoreConnection.java:419)
rya_1        |     at org.apache.rya.rdftriplestore.RdfCloudTripleStoreConnection$1.next(RdfCloudTripleStoreConnection.java:410)
rya_1        |     at org.eclipse.rdf4j.common.iteration.IterationWrapper.next(IterationWrapper.java:91)
rya_1        |     at org.eclipse.rdf4j.common.iteration.IterationWrapper.next(IterationWrapper.java:91)
rya_1        |     at org.eclipse.rdf4j.query.QueryResults.report(QueryResults.java:257)
rya_1        |     at org.eclipse.rdf4j.repository.sail.SailTupleQuery.evaluate(SailTupleQuery.java:94)
rya_1        |     at org.apache.cloud.rdf.web.sail.RdfController.performQuery(RdfController.java:213)
rya_1        |     at org.apache.cloud.rdf.web.sail.RdfController.queryRdf(RdfController.java:151)
rya_1        |     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
rya_1        |     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
rya_1        |     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
rya_1        |     at java.lang.reflect.Method.invoke(Method.java:498)
rya_1        |     at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
rya_1        |     at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:440)
rya_1        |     at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:428)
rya_1        |     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:933)
rya_1        |     at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:867)
rya_1        |     at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953)
rya_1        |     at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:855)
rya_1        |     at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
rya_1        |     at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829)
rya_1        |     at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
rya_1        |     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
rya_1        |     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
rya_1        |     at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
rya_1        |     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
rya_1        |     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
rya_1        |     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
rya_1        |     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94)
rya_1        |     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
rya_1        |     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
rya_1        |     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
rya_1        |     at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
rya_1        |     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
rya_1        |     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)
rya_1        |     at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1132)
rya_1        |     at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
rya_1        |     at org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:2464)
rya_1        |     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
rya_1        |     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
rya_1        |     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
rya_1        |     at java.lang.Thread.run(Thread.java:748)

{code}

> Add language support to Literals
> --------------------------------
>
>                 Key: RYA-492
>                 URL: https://issues.apache.org/jira/browse/RYA-492
>             Project: Rya
>          Issue Type: Bug
>          Components: dao
>    Affects Versions: 4.0.0
>            Reporter: Eric White
>            Priority: Minor
>             Fix For: 4.0.0
>
>
> Processing a file with a language tag fails when trying to creating a Literal.  RDF4J is stricter about creating Literals with type "http://www.w3.org/1999/02/22-rdf-syntax-ns#langString" and fails.
> The following RDF/JSON file fails to process when it tries to create a triple containing a "en" language Literal.
> {code:java}
> {
>   "http://rya.apache.org/ns/" : {
>       "http://rya.apache.org/ns/title/" : [ { "value" : "Bob's Homepage", 
>                                              "type" : "literal", 
>                                              "lang" : "en" } ] 
>   }
> }
> {code}
> This is likely happening when converting to/from Statements/RyaStatements.
> {code:java}
> 2018-04-24 16:26:47,728 ERROR [pool-4-thread-1] mongodb.AbstractMongoIndexer (AbstractMongoIndexer.java:prepareStatementForStorage(178)) - Unable to parse the statement: RyaStatement{subject=RyaType{dataType=http://www.w3.org/2001/XMLSchema#anyURI, data='http://rya.apache.org/ns/'}, predicate=RyaType{dataType=http://www.w3.org/2001/XMLSchema#anyURI, data='http://rya.apache.org/ns/title/'}, object=RyaType{dataType=http://www.w3.org/1999/02/22-rdf-syntax-ns#langString, data='Bob's Homepage'}, context=null, qualifier=null, columnVisibility=U, value=null, timestamp=1524601607671}
> java.lang.IllegalArgumentException: datatype rdf:langString requires a language tag
> 	at org.eclipse.rdf4j.model.impl.SimpleLiteral.<init>(SimpleLiteral.java:99)
> 	at org.eclipse.rdf4j.model.impl.AbstractValueFactory.createLiteral(AbstractValueFactory.java:118)
> 	at org.apache.rya.api.resolver.RyaToRdfConversions.convertLiteral(RyaToRdfConversions.java:52)
> 	at org.apache.rya.api.resolver.RyaToRdfConversions.convertValue(RyaToRdfConversions.java:59)
> 	at org.apache.rya.api.resolver.RyaToRdfConversions.convertStatement(RyaToRdfConversions.java:72)
> 	at org.apache.rya.indexing.mongodb.AbstractMongoIndexer.prepareStatementForStorage(AbstractMongoIndexer.java:171)
> 	at org.apache.rya.indexing.mongodb.AbstractMongoIndexer.storeStatement(AbstractMongoIndexer.java:158)
> 	at org.apache.rya.indexing.mongodb.AbstractMongoIndexer.storeStatement(AbstractMongoIndexer.java:154)
> 	at org.apache.rya.mongodb.MongoDBRyaDAO.add(MongoDBRyaDAO.java:201)
> 	at org.apache.rya.rdftriplestore.RdfCloudTripleStoreConnection.addStatementInternal(RdfCloudTripleStoreConnection.java:177)
> 	at org.eclipse.rdf4j.sail.helpers.AbstractSailConnection.endUpdateInternal(AbstractSailConnection.java:632)
> 	at org.eclipse.rdf4j.sail.helpers.AbstractSailConnection.endUpdate(AbstractSailConnection.java:593)
> 	at org.eclipse.rdf4j.sail.helpers.AbstractSailConnection.flush(AbstractSailConnection.java:386)
> 	at org.eclipse.rdf4j.repository.sail.SailRepositoryConnection.commit(SailRepositoryConnection.java:167)
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)