lodlive / lodview Goto Github PK
View Code? Open in Web Editor NEWIRI dereferencer, RDF to HTML
Home Page: http://lodview.it
License: MIT License
IRI dereferencer, RDF to HTML
Home Page: http://lodview.it
License: MIT License
I cloned LodView from the master branch (commit 5e02268) and it does not load any inverse relations even though the text message "loading inverse relations" is shown in the bottom. I am debugging it in Eclipse Neon.1a using the run-jetty-run plugin.
I have the following breakpoints and not one of them stops:
ResourceBuilder.buildInverseResource()
(both of them)
LinkedResource.resourceInverses()
(both of them)
conf.ttl states that there is an option to choose colors randomly or to assign color by class. Is it also possible to assign color by prefix?
For example, resources under http://dbpedia.org/resource/
should have a different color then resources under http://dbpedia.org/ontology/
.
If it does not exist yet I propose it as a new feature.
This could also be implemented by allowing regular expressions for "colors by class", e.g.:
<http://dbpedia.org/ontology/.*> conf:hasColorPair "#c3a116-#ac8c13".
I think this code
for (String key : conf.getColorPairMatcher().keySet())
{
for (TripleBean tripleBean : m)
{
if (tripleBean.getValue().equals(key))
{
colorPair = conf.getColorPairMatcher().get(key);
return colorPair;
}
}
}
can be optimized like this:
for (TripleBean tripleBean : m)
{
colorPair = conf.getColorPairMatcher().get(tripleBean.getValue());
if(colorPair!=null) return colorPair;
}
assuming that the map does not contain null
values,
to integrate skin features provided by https://github.com/linkeddatacenter/app-lodview
Is it possible? Do you see any drawback?
Using the current master branch, the docker container uses more than 500 MB of RAM even at the start when nothing is happening:
$ docker build -t lodview .
$ docker run --network=host --privileged -d lodview
$ docker stats
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
413bd2f64fca sweet_leavitt 0.00% 529.5MiB / 15.42GiB 3.35% 0B / 0B 57.6MB / 0B 36
Output of top from within the container:
top - 09:03:30 up 51 min, 0 users, load average: 0.87, 0.95, 0.73
Tasks: 3 total, 1 running, 2 sleeping, 0 stopped, 0 zombie
%Cpu(s): 7.9 us, 2.1 sy, 0.0 ni, 89.8 id, 0.0 wa, 0.1 hi, 0.1 si, 0.0 st
MiB Mem : 15791.6 total, 7311.0 free, 3588.6 used, 4892.0 buff/cache
MiB Swap: 16384.0 total, 16384.0 free, 0.0 used. 9873.9 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 1 0 8060128 536560 20060 S 0.3 3.3 0:13.90 java
47 root 1 0 5756 3604 3108 S 0.0 0.0 0:00.08 bash
59 root 1 0 9768 3368 2844 R 0.0 0.0 0:00.01 top
# java -XX:+PrintFlagsFinal -version | grep -E "UseContainerSupport | InitialRAMPercentage | MaxRAMPercentage | MinRAMPercentage"
double InitialRAMPercentage = 1.562500 {product}
double MaxRAMPercentage = 25.000000 {product}
double MinRAMPercentage = 50.000000 {product}
bool UseContainerSupport = true {product}
# jinfo 1 | grep "VM flags"
Non-default VM flags: -XX:CICompilerCount=4 -XX:InitialHeapSize=260046848 -XX:MaxHeapSize=4139778048 -XX:MaxNewSize=1379926016 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=86507520 -XX:OldSize=173539328 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:+UseParallelGC
Is there a way to reduce the usage?
For easier integration of pull requests, it would be useful to have automatic checks to make sure it at least compiles with a GitHub action.
Is there a way to override the entries of config.ttl using environment variables?
This is the preferred way when deploying as a docker container.
The container description of https://hub.docker.com/r/linkeddatacenter/lodview mentions environment variables but they don't have any effect in my testing via docker compose.
Version: a4d390a
Steps that will reproduce the problem?
What is the expected result?
HTTP/1.1 303 See Other
Location: http://example.org/id/about.html
What happens instead?
HTTP/1.1 303 See Other
Location: http://localhost:8080/about.html
Possible workaround:
Disable conf:httpRedirectSuffix and all works fine.
When in conf.ttl
I use:
conf:endpoint <https://obchodní-rejstřík.stirdata.opendata.cz/sparql>;
I get a 500 and the UnknownHostException in the log. Punycoding the URL in the config manually works.
conf:endpoint <https://xn--obchodn-rejstk-6lbg94p.stirdata.opendata.cz/sparql>;
Log:
[2021-04-01 15:15:29] [info] HttpException: java.net.UnknownHostException: obchodní-rejstřík.stirdata.opendata.cz: Unexpected error making the query: java.net.UnknownHostException: obchodní-rejstřík.stirdata.opendata.cz
[2021-04-01 15:15:29] [info] #011at com.hp.hpl.jena.sparql.engine.http.HttpQuery.rewrap(HttpQuery.java:417)
[2021-04-01 15:15:29] [info] #011at com.hp.hpl.jena.sparql.engine.http.HttpQuery.execGet(HttpQuery.java:358)
[2021-04-01 15:15:29] [info] #011at com.hp.hpl.jena.sparql.engine.http.HttpQuery.exec(HttpQuery.java:295)
[2021-04-01 15:15:29] [info] #011at com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP.execResultSetInner(QueryEngineHTTP.java:346)
[2021-04-01 15:15:29] [info] #011at com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP.execSelect(QueryEngineHTTP.java:338)
[2021-04-01 15:15:29] [info] #011at org.dvcama.lodview.endpoint.SPARQLEndPoint.moreThenOneQuery(SPARQLEndPoint.java:76)
[2021-04-01 15:15:29] [info] #011at org.dvcama.lodview.endpoint.SPARQLEndPoint.moreThenOneQuery(SPARQLEndPoint.java:138)
[2021-04-01 15:15:29] [info] message repeated 2 times: [ #011at org.dvcama.lodview.endpoint.SPARQLEndPoint.moreThenOneQuery(SPARQLEndPoint.java:138)]
[2021-04-01 15:15:29] [info] #011at org.dvcama.lodview.endpoint.SPARQLEndPoint.doQuery(SPARQLEndPoint.java:49)
[2021-04-01 15:15:29] [info] #011at org.dvcama.lodview.endpoint.SPARQLEndPoint.doQuery(SPARQLEndPoint.java:148)
[2021-04-01 15:15:29] [info] #011at org.dvcama.lodview.builder.ResourceBuilder.buildHtmlResource(ResourceBuilder.java:65)
[2021-04-01 15:15:29] [info] #011at org.dvcama.lodview.builder.ResourceBuilder.buildHtmlResource(ResourceBuilder.java:35)
[2021-04-01 15:15:29] [info] #011at org.dvcama.lodview.controllers.ResourceController.htmlResource(ResourceController.java:245)
[2021-04-01 15:15:29] [info] #011at org.dvcama.lodview.controllers.ResourceController.resource(ResourceController.java:224)
[2021-04-01 15:15:29] [info] #011at org.dvcama.lodview.controllers.ResourceController.resourceController(ResourceController.java:81)
[2021-04-01 15:15:29] [info] #011at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[2021-04-01 15:15:29] [info] #011at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
[2021-04-01 15:15:29] [info] #011at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[2021-04-01 15:15:29] [info] #011at java.base/java.lang.reflect.Method.invoke(Method.java:564)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:222)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:814)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:737)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:969)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:860)
[2021-04-01 15:15:29] [info] #011at javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845)
[2021-04-01 15:15:29] [info] #011at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
[2021-04-01 15:15:29] [info] #011at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
[2021-04-01 15:15:29] [info] #011at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
[2021-04-01 15:15:29] [info] #011at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
[2021-04-01 15:15:29] [info] #011at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
[2021-04-01 15:15:29] [info] #011at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589)
[2021-04-01 15:15:29] [info] #011at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
[2021-04-01 15:15:29] [info] #011at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
[2021-04-01 15:15:29] [info] #011at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
[2021-04-01 15:15:29] [info] #011at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
[2021-04-01 15:15:29] [info] #011at java.base/java.lang.Thread.run(Thread.java:832)
[2021-04-01 15:15:29] [info] Caused by: java.net.UnknownHostException: obchodní-rejstřík.stirdata.opendata.cz
[2021-04-01 15:15:29] [info] #011at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:800)
[2021-04-01 15:15:29] [info] #011at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1507)
[2021-04-01 15:15:29] [info] #011at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1366)
[2021-04-01 15:15:29] [info] #011at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1300)
[2021-04-01 15:15:29] [info] #011at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45)
[2021-04-01 15:15:29] [info] #011at org.apache.http.impl.conn.DefaultClientConnectionOperator.resolveHostname(DefaultClientConnectionOperator.java:278)
[2021-04-01 15:15:29] [info] #011at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:162)
[2021-04-01 15:15:29] [info] #011at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
[2021-04-01 15:15:29] [info] #011at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:643)
[2021-04-01 15:15:29] [info] #011at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)
[2021-04-01 15:15:29] [info] #011at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
[2021-04-01 15:15:29] [info] #011at org.apache.http.impl.client.DecompressingHttpClient.execute(DecompressingHttpClient.java:137)
[2021-04-01 15:15:29] [info] #011at org.apache.http.impl.client.DecompressingHttpClient.execute(DecompressingHttpClient.java:118)
[2021-04-01 15:15:29] [info] #011at org.apache.jena.riot.web.HttpOp.exec(HttpOp.java:1108)
[2021-04-01 15:15:29] [info] #011at org.apache.jena.riot.web.HttpOp.execHttpGet(HttpOp.java:385)
[2021-04-01 15:15:29] [info] #011at org.apache.jena.riot.web.HttpOp.execHttpGet(HttpOp.java:447)
[2021-04-01 15:15:29] [info] #011at com.hp.hpl.jena.sparql.engine.http.HttpQuery.execGet(HttpQuery.java:346)
[2021-04-01 15:15:29] [info] #011... 57 more
[2021-04-01 15:15:29] [info] java.lang.Exception: connection refused
[2021-04-01 15:15:29] [info] #011at org.dvcama.lodview.endpoint.SPARQLEndPoint.moreThenOneQuery(SPARQLEndPoint.java:141)
[2021-04-01 15:15:29] [info] #011at org.dvcama.lodview.endpoint.SPARQLEndPoint.moreThenOneQuery(SPARQLEndPoint.java:138)
[2021-04-01 15:15:29] [info] message repeated 2 times: [ #011at org.dvcama.lodview.endpoint.SPARQLEndPoint.moreThenOneQuery(SPARQLEndPoint.java:138)]
[2021-04-01 15:15:29] [info] #011at org.dvcama.lodview.endpoint.SPARQLEndPoint.doQuery(SPARQLEndPoint.java:49)
[2021-04-01 15:15:29] [info] #011at org.dvcama.lodview.endpoint.SPARQLEndPoint.doQuery(SPARQLEndPoint.java:148)
[2021-04-01 15:15:29] [info] #011at org.dvcama.lodview.builder.ResourceBuilder.buildHtmlResource(ResourceBuilder.java:65)
[2021-04-01 15:15:29] [info] #011at org.dvcama.lodview.builder.ResourceBuilder.buildHtmlResource(ResourceBuilder.java:35)
[2021-04-01 15:15:29] [info] #011at org.dvcama.lodview.controllers.ResourceController.htmlResource(ResourceController.java:245)
[2021-04-01 15:15:29] [info] #011at org.dvcama.lodview.controllers.ResourceController.resource(ResourceController.java:224)
[2021-04-01 15:15:29] [info] #011at org.dvcama.lodview.controllers.ResourceController.resourceController(ResourceController.java:81)
[2021-04-01 15:15:29] [info] #011at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[2021-04-01 15:15:29] [info] #011at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
[2021-04-01 15:15:29] [info] #011at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[2021-04-01 15:15:29] [info] #011at java.base/java.lang.reflect.Method.invoke(Method.java:564)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:222)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:814)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:737)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:969)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:860)
[2021-04-01 15:15:29] [info] #011at javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845)
[2021-04-01 15:15:29] [info] #011at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
[2021-04-01 15:15:29] [info] #011at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)
[2021-04-01 15:15:29] [info] #011at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
[2021-04-01 15:15:29] [info] #011at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
[2021-04-01 15:15:29] [info] #011at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
[2021-04-01 15:15:29] [info] #011at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
[2021-04-01 15:15:29] [info] #011at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
[2021-04-01 15:15:29] [info] #011at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589)
[2021-04-01 15:15:29] [info] #011at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
[2021-04-01 15:15:29] [info] #011at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
[2021-04-01 15:15:29] [info] #011at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
[2021-04-01 15:15:29] [info] #011at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
[2021-04-01 15:15:29] [info] #011at java.base/java.lang.Thread.run(Thread.java:832)
[2021-04-01 15:15:29] [info] error on connection refused -- https://obchodní-rejstřík.stirdata.opendata.cz/zdroj/registrované-osoby/03483142/STATUTARNI_ORGAN/2014-10-14 -- https://obchodní-rejstřík.stirdata.opendata.cz/sparql
in xml serialization "xml:base" attribute is missing!
Description: ELException when opening HTML rendering
Version: a4d390a on Wildfly 9.0.1
Steps that will reproduce the problem?
What is the expected result?
The web site
What happens instead?
Caused by: javax.el.ELException: Error Parsing: ${results.getTitle().replaceAll("\\n"," ").replaceAll("\'","´")}
in /WEB-INF/views/resource.jsp
Possible workaround:
Edit line 181 and remove the second replaceAll
Any additional information:
TODO: manage shape representation.
We are using the wkt:asWKT property to describe the polygon of our spatial objects. It would be great if these polygons would be shown by LodView instead of only GPS coordinate spatial objects.
I would (technically) be able to extend the widget myself and contribute it to this project, but I'm not sure yet if I can find the time.
First, thank you for this awesome application. Our users at the SNIK project are very impressed at how clean it looks.
However, our user base consists of both English and German speakers. Is it possible to save the language preference on a per-user basis so that an English speaker can choose to sees English labels preferably and a German speaker the German literals, in case both exists? I know there is this option to select between different literal languages but after reload it resets and this also applies to the title.
Hi there. Congrats on such great work!
Can you help me deploying it using Docker?
How can I configure the instance? Are there envvars?
Thanks
Hi,
first let me thank you for this great tool!
I'd like to ask you whether you ever plan to open-source the features that the lodview.it service has and the version on Github does not, mainly "the browsing of any resource published using a SPARQL endpoint or published according to the rules of the web of data (aka content negotiation and RDF)".
_The reasoning behind my question is that in our school project we needed a tool to display remote resource in a pleasing way (at least in the early stages, before we will work with our local copies our our published resource) and also add some buttons that would link back to our application from the displayed concept (e.g. to accept the displayed result as the one chosen by the user).
Based on the demo at lodview.it we decided to go with LodView. Only to realize later that this functionality is seemingly not available or even has been stripped away. (We should have read the README.md more carefully.) Although we eventually managed to crudely adapt the LodView to our needs in our fork, its reliance on global static configuration in determining the resource to display is less than ideal.
Hi,
Actually I do not know if it is a real issue.
Suppose that you want to dereferenciate an IRI like
http://example.org/data#resource1
According to this RFC #resource1 is sent to the server after the page has been loaded.
In fact using default configuration when accessing to http://example.org/data#resource1 LodView shows information realated to http://example.org/data because it does not receive #resource1
Is there any way to overcome this issue?
Thank you
Luigi
there is a bug in 303 redirection of resource described by complex IRI, right now it is possible to avoid the problem commenting this parameter
conf:httpRedirectSuffix "/html";
in the configuration file
Pretty nice work! One question: currently almost no tool is under active development that allows the documentation of an ontology analog to JavaDoc. There are a hand full, but most of them are either not working anymore or offer a rather ugly UI. What I'm currently using is http://www.essepuntato.it/lode and I'd love to see similar features (e.g. embedding images, describing properties, ...) in LodView. Any plans?
I use multiple title properties and I want LodView to always prioritize a property early in the list to one later in the list. For example, in the example below, it should always use rdfs:label when present and only fall back on skos.prefLabel when that is not available.
conf:titleProperties dc:title , dcterms:title, rdfs:label , skos:prefLabel, skos:altLabel
As you can see on the screenshot below, the skos:altLabel is used as title even though the rdfs:label value is present. To further complicate the issue, this error does not always occur and is thus hard to confirm. When it is shown correctly, even reloading multiple times does not show the error, maybe it is cached.
When a triple store contains a value with datatype xsd:gYearMonth LodView produces an error, example [1] . The same value is handled correct within the triple store (Virtuoso Open Source), example [2]
Is there a specific library handling the ld+json format, and could it be that it needs updating to a more recent version?
Thanks!
[1] http://data.muziekschatten.nl/som/332000?output=application%2Fld%2Bjson
[2] http://data.muziekschatten.nl/sparql?query=define%20sql%3Adescribe-mode%20%22CBD%22%20%20DESCRIBE%20%3Chttp%3A%2F%2Fdata.muziekschatten.nl%2Fsom%2F332000%3E&output=application%2Fld%2Bjson
Maven can't find the Dotenv class:
[ERROR] /C:/Users/konni/LodView/src/main/java/org/dvcama/lodview/conf/ConfigurationBean.java:[63,17] cannot find symbol
[ERROR] symbol: class Dotenv
[ERROR] location: class org.dvcama.lodview.conf.ConfigurationBean
Importing it with import io.github.cdimascio.dotenv.Dotenv; helps to compile the webapp, but the app doesn't start anyway.
There are still several places, where System.out.println is used, which then aren't configurable using logging configuration files.
ack -l -c "System.out.println"
src/main/java/org/dvcama/lodview/controllers/LinkedResourcesController.java:2
src/main/java/org/dvcama/lodview/controllers/StaticController.java:1
src/main/java/org/dvcama/lodview/controllers/ResourceController.java:9
src/main/java/org/dvcama/lodview/controllers/LodController.java:3
src/main/java/org/dvcama/lodview/controllers/ErrorController.java:4
src/main/java/org/dvcama/lodview/bean/OntologyBean.java:7
src/main/java/org/dvcama/lodview/conf/ConfigurationBean.java:1
src/main/java/org/dvcama/lodview/endpoint/SPARQLEndPoint.java:11
Hi,
I had to change the default query in conf.ttl and had to comment the last 2 UNIONs out because of sudden performance problems of Virtuoso. After updating the several Ubuntu systems LodView became unresponsive for resources containing a certain nr of triples. Resources containing only a few triples were resolved well but more elaborate resources hung the LodView interface.
Apparently the Virtuoso response became too long and generated a 500 error, causing LodView to fail. After simplifying the query this error didn't appear anymore.
I think this is an issue caused by performance reduction of patched Intel based system because of the Meltdown/Spectre flaws. I'm not sure and would like to know if anyone else ran into performance issues after system updates.
tl;dr; When LodView is hung after system update check the default query, it may need simplification.
As show in https://issues.jboss.org/browse/WFLY-3467 and
wildfly/wildfly#5347
to configure UTF-8 URL encoding the parameter url-charset="UTF-8"
has to be added to WildFly. I already added this to https://github.com/dvcama/LodView/wiki/how-to%3A-install-and-configure-%28fast-method%29, however it seems that this is not enough to get LodLive and LodView to get external resources (owl:sameAs) that include special characters.
Nice work. Congratulations. I am impressed of data linkage.
Would it be possible to rewrite the engine into RDF4J-base. I saw the code and it seems it is not too complex for me. What do you think about that?
Hi, lodview.it accepts some extra parameters in the query string of URL (i.e. sparql, IRI, etc.). Is this a feature that works also in gitub distribution?
Without looking into the code myself, we get the following error on http://lodview.it/lodview/?IRI=https%3A%2F%2Fld.geo.admin.ch%2Fboundaries%2Fmunicipality%2F351&sparql=%3C%3E&prefix=https%3A%2F%2Fld.geo.admin.ch%2Fboundaries%2Fmunicipality%2F351
Oops! something went wrong
sorry but content negotiation is not supported by the IRI
https://ld.geo.admin.ch/boundaries/municipality/351
I am able to ask for e.g. text/turtle success fully on the resource. What are the requirements on the resource to be loaded regarding content-neg?
Hi,
I run an instance of LodView on an SSL secured website. The browser warns about mixed content when loading a resource page. Warnings are about fetching content from OpenStreetMap such as http://b.tile.osm.org/8/131/83.png, which connection is insecure.
Is there a solution for this? I tried to change http://b.tile.osm.org/8/131/83.png into https://b.tile.osm.org/8/131/83.png but that didn't work.
Thanks,
Roland
In config.ttl one can specify what SPARQL query to perform for a requested URI. However, when one includes none blank nodes these regular nodes will not be displayed in the regular html view.
fade out the logo
add the link in the footer
See subject
This should not happen : http://www.slf4j.org/codes.html
This prevents deployment on Tomcat.
log4j-over-slf4j is coming from spring-boot-starter, this dependency should probably be excluded.
In order to make the resource view more human-friendly, consider showing the labels for properties for common vocabularies and ontologies.
I get many messages like the following in the developer console of Firefox 98.0b8, how to fix this?
This page is in Quirks Mode. Page layout may be impacted. For Standards Mode use “<!DOCTYPE html>”. Function
This page uses the non standard property “zoom”. Consider using calc() in the relevant property values, or using “transform” along with “transform-origin: 0 0”. Function
XML Parsing Error: not well-formed
Location:
Line Number 1, Column 103: 3
XML Parsing Error: not well-formed
Location:
Line Number 1, Column 103: 7
XML Parsing Error: not well-formed
Location:
Line Number 1, Column 103: 8
XML Parsing Error: not well-formed
Location:
Line Number 1, Column 103:
XML Parsing Error: not well-formed
Location:
Line Number 1, Column 103:
XML Parsing Error: not well-formed
Location:
Line Number 1, Column 103:
XML Parsing Error: not well-formed
Location:
Line Number 1, Column 103:
XML Parsing Error: not well-formed
Location:
Line Number 1, Column 103:
XML Parsing Error: not well-formed
Location:
I just found out that there is a IEEE paper Adapting the LodView RDF Browser for Navigation over the Multilingual Linguistic Linked Open Data Cloud with many improvements, which is published at https://github.com/ManlyMan1/LodView_Cyrillic.
Are you interested in merging that in?
Hi,
Congratulations for the tool, it is amazing and i really liked. I'm using in my data set about idioms however when i wish to open a uri in Russian language, the lodview doesn't recognized the letters. Could you help me? Follows an example with error:
Russian : http://lid.aksw.org/tr/когда_рак_на_горе_свистнет_trans_rus_en
Look as it works for other languages which I've used:
English: http://lid.aksw.org/en/when_pigs_fly_sense
German: http://lid.aksw.org/lodview/de/zwei_fliegen_mit_einer_klappe_schlagen
Portuguese: http://lid.aksw.org/lodview/pt/matar_dois_coelhos_com_uma_cajadada_so
There is a conflict between dependency version of commons codec from spring-boot-starter-integration and Jena
Jena 4.4.0 need commons codec 1.15 but spring-boot-starter-integration 1.1.4.RELEASE force commons codec 1.2
In my use case, with URI like http://....../data_test/-c3d8ff75-bd60-4ef6-b1b9-08bb13bc4b72_attr_ratio_5 query execution failed with a NoClassDefFound murMurHash3 not available in commons codec v1.2
For RAM and CPU constrained environments and some hosting scenarios with unchanging data it would be great to pregenerate the HTML pages to serve them with a simple HTML server. Is this supported or could it be easily implemented in lodview? Or is it better to just crawl it and download it using for example wget? I can help with the implementation either in Java or as a Dockerfile.
please allow https: namespaces too otherwise
com.hp.hpl.jena.query.QueryParseException: Unresolved prefixed name: https:
is (silently) thrown
Right now users, regardless of role can only select Me or My Organization when creating a framework.
LodView has a transitive dependency on log4j 1.2.17 included from Apache Jena 2.13.0, see below.
According to https://logging.apache.org/log4j/1.2/:
A security vulnerability, CVE-2019-17571 has been identified against Log4j 1. Log4j includes a SocketServer that accepts serialized log events and deserializes them without verifying whether the objects are allowed or not. This can provide an attack vector that can be expoited. Since Log4j 1 is no longer maintained this issue will not be fixed. Users are urged to upgrade to Log4j 2.
However it is very important to not use a Jena version that depends on Log4j 2 < 2.15.0, as this suffers from an arguably even worse security vulnerability, see https://logging.apache.org/log4j/2.x/index.html.
The current latest version depends on log4j2 2.14.1. Thus, this current version should thus not be used:
<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>apache-jena-libs</artifactId>
<version>4.3.0</version>
<type>pom</type>
</dependency>
However according to https://github.com/apache/jena/commits/jena-4.3.1, this seems to be fixed in Jena 4.3.1. Thus I will not create a pull request just yet and recommend waiting until Jena 4.3.1 is officially released and available on Maven central and then using that if it doesn't break anything.
$ mvn dependency:tree
[...]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ lodview ---
[WARNING] The artifact xml-apis:xml-apis:jar:2.0.2 has been relocated to xml-apis:xml-apis:jar:1.0.b2
[INFO] lodview:lodview:war:1.2.1-SNAPSHOT
[INFO] +- org.apache.jena:apache-jena-libs:pom:2.13.0:compile
[INFO] | +- org.apache.jena:jena-tdb:jar:1.1.2:compile
[INFO] | | +- org.apache.jena:jena-arq:jar:2.13.0:compile
[INFO] | | | +- org.apache.httpcomponents:httpclient:jar:4.2.6:compile
[INFO] | | | | +- org.apache.httpcomponents:httpcore:jar:4.2.5:compile
[INFO] | | | | \- commons-codec:commons-codec:jar:1.6:compile
[INFO] | | | +- com.github.jsonld-java:jsonld-java:jar:0.5.1:compile
[INFO] | | | | +- com.fasterxml.jackson.core:jackson-core:jar:2.3.3:compile
[INFO] | | | | \- com.fasterxml.jackson.core:jackson-databind:jar:2.3.3:compile
[INFO] | | | | \- com.fasterxml.jackson.core:jackson-annotations:jar:2.3.0:compile
[INFO] | | | +- org.apache.httpcomponents:httpclient-cache:jar:4.2.6:compile
[INFO] | | | +- org.apache.thrift:libthrift:jar:0.9.2:compile
[INFO] | | | \- org.apache.commons:commons-csv:jar:1.0:compile
[INFO] | | \- org.apache.jena:jena-core:jar:2.13.0:compile
[INFO] | | +- org.apache.jena:jena-iri:jar:1.1.2:compile
[INFO] | | \- xerces:xercesImpl:jar:2.11.0:compile
[INFO] | | \- xml-apis:xml-apis:jar:1.4.01:compile
[INFO] | +- org.slf4j:slf4j-log4j12:jar:1.7.6:compile
[INFO] | \- log4j:log4j:jar:1.2.17:compile
[INFO] +- org.springframework:spring-context:jar:4.2.4.RELEASE:compile
[INFO] | +- org.springframework:spring-aop:jar:4.2.4.RELEASE:compile
[INFO] | | \- aopalliance:aopalliance:jar:1.0:compile
[INFO] | +- org.springframework:spring-beans:jar:4.2.4.RELEASE:compile
[INFO] | +- org.springframework:spring-core:jar:4.2.4.RELEASE:compile
[INFO] | \- org.springframework:spring-expression:jar:4.2.4.RELEASE:compile
[INFO] +- org.springframework:spring-webmvc:jar:4.2.4.RELEASE:compile
[INFO] | \- org.springframework:spring-web:jar:4.2.4.RELEASE:compile
[INFO] +- org.slf4j:slf4j-api:jar:1.7.1:compile
[INFO] +- org.slf4j:jcl-over-slf4j:jar:1.7.1:compile
[INFO] +- ch.qos.logback:logback-classic:jar:1.0.7:compile
[INFO] | \- ch.qos.logback:logback-core:jar:1.0.7:compile
[INFO] +- javax.servlet:javax.servlet-api:jar:3.0.1:provided
[INFO] +- javax.servlet.jsp:jsp-api:jar:2.1:provided
[INFO] +- javax.servlet.jsp.jstl:jstl-api:jar:1.2:compile
[INFO] +- org.glassfish.web:jstl-impl:jar:1.2:compile
[INFO] +- org.apache.commons:commons-lang3:jar:3.3.1:compile
[INFO] \- org.springframework.boot:spring-boot-starter-integration:jar:1.1.4.RELEASE:compile
[INFO] +- org.springframework.boot:spring-boot-starter:jar:1.1.4.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot:jar:1.1.4.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-autoconfigure:jar:1.1.4.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-logging:jar:1.1.4.RELEASE:compile
[INFO] | | +- org.slf4j:jul-to-slf4j:jar:1.7.7:compile
[INFO] | | \- org.slf4j:log4j-over-slf4j:jar:1.7.7:compile
[INFO] | \- org.yaml:snakeyaml:jar:1.13:runtime
[INFO] +- org.springframework.boot:spring-boot-starter-aop:jar:1.1.4.RELEASE:compile
[INFO] | +- org.aspectj:aspectjrt:jar:1.8.1:compile
[INFO] | \- org.aspectj:aspectjweaver:jar:1.8.1:compile
[INFO] +- org.springframework:spring-messaging:jar:4.0.6.RELEASE:compile
[INFO] +- org.springframework:spring-tx:jar:4.0.6.RELEASE:compile
[INFO] +- org.springframework.integration:spring-integration-core:jar:4.0.2.RELEASE:compile
[INFO] | \- org.springframework.retry:spring-retry:jar:1.1.0.RELEASE:compile
[INFO] +- org.springframework.integration:spring-integration-file:jar:4.0.2.RELEASE:compile
[INFO] | \- commons-io:commons-io:jar:2.4:compile
[INFO] +- org.springframework.integration:spring-integration-http:jar:4.0.2.RELEASE:compile
[INFO] | \- net.java.dev.rome:rome-fetcher:jar:1.0.0:compile
[INFO] | +- jdom:jdom:jar:1.0:compile
[INFO] | +- net.java.dev.rome:rome:jar:1.0.0:compile
[INFO] | \- commons-httpclient:commons-httpclient:jar:3.0.1:compile
[INFO] +- org.springframework.integration:spring-integration-ip:jar:4.0.2.RELEASE:compile
[INFO] \- org.springframework.integration:spring-integration-stream:jar:4.0.2.RELEASE:compile
[INFO] ------------------------------------------------------------------------
If conf.ttl
contains conf:colorPair conf:byPrefix;
then ConfigurationBean.getRandomColorPair()
will not work, as it returns "conf:byPrefix" as a color string in this case. For me this results in a black background of the starting page.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.