I am working on a project where I need to publish an RDF content in json-ld
format via web service endpoint . I am Apache jena to read rdf from the
datasource and using apache jena jsonld library to translate rdf into
jsonld string. The RDf I am trying to translate contains customized
datatypes. For some reason jena-jsonld causes a number format exception
while translating RDF with customized datatypes.

Here is the example of RDF in turtle format, I am trying to translate:

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "25013-4"^^fhir:code ;
                                 fhir:Coding.display   "Views"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "37897-6"^^fhir:code ;
                                 fhir:Coding.display   "View AP"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "13825-5"^^fhir:code ;
                                 fhir:Coding.display
"Arsenic.inorganic/Creatinine"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "16795-7"^^fhir:code ;
                                 fhir:Coding.display   "Echovirus
Ab"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "7614-1"^^fhir:code ;
                                 fhir:Coding.display   "Pitosporium
basophil bound Ab"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "12852-0"^^fhir:code ;
                                 fhir:Coding.display   "Bovine inner
ear Ag"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "47491-6"^^fhir:code ;
                                 fhir:Coding.display   "Streptococcus
pneumoniae 22 Ab.IgG^1st specimen"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "38464-4"^^fhir:code ;
                                 fhir:Coding.display   "Juniperus
sabinoides Ab.IgE"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "22428-7"^^fhir:code ;
                                 fhir:Coding.display   "Mycoplasma sp
Ab"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "13829-7"^^fhir:code ;
                                 fhir:Coding.display
"Copper/Creatinine"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "39475-9"^^fhir:code ;
                                 fhir:Coding.display
"Dimenhydrinate"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "51411-7"^^fhir:code ;
                                 fhir:Coding.display   "Environmental
stressors panel"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "73004-4"^^fhir:code ;
                                 fhir:Coding.display   "Levofloxacin
induced neutrophil Ab.IgG"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "6095-4"^^fhir:code ;
                                 fhir:Coding.display
"Dermatophagoides farinae Ab.IgE"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "22136-6"^^fhir:code ;
                                 fhir:Coding.display   "Borrelia
burgdorferi Ab.IgM"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "30874-2"^^fhir:code ;
                                 fhir:Coding.display
"Multisection"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "61170-7"^^fhir:code ;
                                 fhir:Coding.display   "Hepatitis B
virus codon M250V"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "36952-0"^^fhir:code ;
                                 fhir:Coding.display
"Multisection^WO contrast"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "17778-2"^^fhir:code ;
                                 fhir:Coding.display   "Zinc"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "21030-2"^^fhir:code ;
                                 fhir:Coding.display   "Reagin
Ab"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "12513-8"^^fhir:code ;
                                 fhir:Coding.display
"Bicarbonate"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "44444-8"^^fhir:code ;
                                 fhir:Coding.display   "Bartonella sp
Ab.IgM"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

[ a                            fhir:CodeableConcept ;
  fhir:CodeableConcept.coding  [ a                     fhir:Coding ;
                                 fhir:Coding.code      "51549-4"^^fhir:code ;
                                 fhir:Coding.display   "Pigeon feather
Ab.IgG"^^fhir:string ;
                                 fhir:Coding.system
"http://loinc.org/v2.46"^^fhir:uri ;
                                 fhir:Coding.valueSet
<http://hl7.org/fhir/vs/fhir.diagnostic-requests>
                               ]
] .

Below is the exception system is throwing while translating RDf.

 java.lang.NumberFormatException: For input string: "61170-7" -
org.apache.felix.log.LogException: java.lang.RuntimeException:
java.lang.NumberFormatException: For input string: "61170-7"
        at 
com.github.jsonldjava.core.RDFDataset$Node.toObject(RDFDataset.java:214)
        at com.github.jsonldjava.core.JsonLdApi.fromRDF(JsonLdApi.java:1842)
        at 
com.github.jsonldjava.jena.JsonLDWriter.serialize(JsonLDWriter.java:103)
        at com.github.jsonldjava.jena.JsonLDWriter.write(JsonLDWriter.java:71)
        at 
org.apache.jena.riot.system.RiotLib$WriterAdapter.write(RiotLib.java:317)
        at org.apache.jena.riot.RDFDataMgr.write$(RDFDataMgr.java:1252)
        at org.apache.jena.riot.RDFDataMgr.write(RDFDataMgr.java:1023)
        at org.apache.jena.riot.RDFDataMgr.write(RDFDataMgr.java:956)
        at 
io.github.semr.commons.util.RDFSerializer.modelToJsonLD(RDFSerializer.java:47)
        at 
io.github.semr.ts.ws.ValueSetsService.listCodeableConcepts(ValueSetsService.java:387)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at 
org.apache.wink.server.internal.handlers.InvokeMethodHandler.handleRequest(InvokeMethodHandler.java:63)
        at 
org.apache.wink.server.handlers.AbstractHandler.handleRequest(AbstractHandler.java:33)
        at 
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at 
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at 
org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
        at 
org.apache.wink.server.internal.handlers.CreateInvocationParametersHandler.handleRequest(CreateInvocationParametersHandler.java:54)
        at 
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at 
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at 
org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
        at 
org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleSubResourceMethod(FindResourceMethodHandler.java:183)
        at 
org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleRequest(FindResourceMethodHandler.java:110)
        at 
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at 
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at 
org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
        at 
org.apache.wink.server.internal.handlers.FindRootResourceHandler.handleRequest(FindRootResourceHandler.java:95)
        at 
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at 
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at 
org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
        at 
org.apache.wink.server.internal.handlers.HeadMethodHandler.handleRequest(HeadMethodHandler.java:53)
        at 
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at 
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at 
org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
        at 
org.apache.wink.server.internal.handlers.OptionsMethodHandler.handleRequest(OptionsMethodHandler.java:46)
        at 
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at 
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at 
org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
        at 
org.apache.wink.server.internal.handlers.SearchResultHandler.handleRequest(SearchResultHandler.java:33)
        at 
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at 
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at 
org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
        at 
org.apache.wink.server.internal.log.ResourceInvocation.handleRequest(ResourceInvocation.java:92)
        at 
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at 
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at 
org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
        at 
org.apache.wink.server.internal.log.Requests.handleRequest(Requests.java:76)
        at 
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at 
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at 
org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
        at 
org.apache.wink.server.handlers.AbstractHandlersChain.run(AbstractHandlersChain.java:48)
        at 
org.apache.wink.server.internal.RequestProcessor.handleRequestWithoutFaultBarrier(RequestProcessor.java:207)
        at 
org.apache.wink.server.internal.RequestProcessor.handleRequest(RequestProcessor.java:154)
        at 
org.apache.wink.server.internal.servlet.RestServlet.service(RestServlet.java:119)
        at 
org.amdatu.web.rest.wink.WinkRestServlet.service(WinkRestServlet.java:89)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at 
org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:96)
        at 
org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:79)
        at 
org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:42)
        at 
org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:49)
        at 
org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
        at 
io.github.semr.auth.ws.ResourceServerFilter.doFilter(ResourceServerFilter.java:123)
        at 
org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:88)
        at 
org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:76)
        at 
org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)
        at 
org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
        at 
org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48)
        at 
org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39)
        at 
org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at 
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:654)
        at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:445)
        at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1044)
        at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:372)
        at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:978)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
        at 
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
        at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
        at org.eclipse.jetty.server.Server.handle(Server.java:369)
        at 
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:486)
        at 
org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:933)
        at 
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:995)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
        at 
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
        at 
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
        at 
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Unknown Source)

I looked into jena-jsonld code on grepcode.com. the value of element
fhir:Coding.code somehow bypasses the regex used by jena-jsonld. Secondly
if the datatype is not of xsd type or native rdf datatypes. it tries to
parse it to number and while parsing it throws this exception.

-- 
Regards,
Syed Ali Raza,
Senior Java Developer, SEMR Project Member
SSRG-Lab, SEECS, NUST
Cell #: +923315225827, Alternative Email : [email protected]

Reply via email to