Re: Safe manipulation of RDF data (from semantic-web)

Compose worked when started with sudo. Now I'm lost with the ports

 >> sudo docker-compose up
Removing proxy_nginx_1
proxy_processor_1 is up-to-date
Recreating 17117cafe8ef_proxy_nginx_1
Attaching to proxy_processor_1, proxy_nginx_1
nginx_1      | envsubst: error while reading "standard input": Is a 
directory
processor_1  | @prefix lm: 
<http://jena.hpl.hp.com/2004/08/location-mapping#> .
processor_1  |
processor_1  | [] lm:mapping
processor_1  |
processor_1  |    [ lm:name "https://www.w3.org/ns/ldt#" 
;                                 lm:altName 
"com/atomgraph/processor/ldt.ttl" ] ,
processor_1  |    [ lm:name "https://www.w3.org/ns/ldt/core/domain#" 
;                     lm:altName "com/atomgraph/processor/c.ttl" ] ,
processor_1  |    [ lm:name "https://www.w3.org/ns/ldt/core/templates#" 
; lm:altName "com/atomgraph/processor/ct.ttl" ] ,
processor_1  |    [ lm:name 
"https://www.w3.org/ns/ldt/named-graphs/templates#" ; lm:altName 
"com/atomgraph/processor/ngt.ttl" ] ,
processor_1  |    [ lm:name 
"https://www.w3.org/ns/ldt/document-hierarchy/domain#" ; lm:altName 
"com/atomgraph/processor/dh.ttl" ] ,
processor_1  |    [ lm:name 
"https://www.w3.org/ns/ldt/topic-hierarchy/templates#" ; lm:altName 
"com/atomgraph/processor/tht.ttl" ] ,
processor_1  |    [ lm:name "http://rdfs.org/sioc/ns#" 
;                                   lm:altName 
"com/atomgraph/processor/sioc.owl" ] ,
processor_1  |    [ lm:name "http://rdfs.org/ns/void#" 
;                                   lm:altName 
"com/atomgraph/processor/void.owl" ] ,
processor_1  |    [ lm:name "http://www.w3.org/2011/http#" 
;                               lm:altName 
"com/atomgraph/processor/http.owl" ] ,
processor_1  |    [ lm:name "http://www.w3.org/2011/http" 
;                                lm:altName 
"com/atomgraph/processor/http.owl" ] ,
processor_1  |    [ lm:name "http://www.w3.org/2011/http-statusCodes#" ; 
lm:altName "com/atomgraph/processor/http-statusCodes.rdf" ] ,
processor_1  |    [ lm:name "http://www.w3.org/2011/http-statusCodes" ; 
lm:altName "com/atomgraph/processor/http-statusCodes.rdf" ] ,
processor_1  |    [ lm:name 
"http://www.w3.org/ns/sparql-service-description#" ; lm:altName 
"com/atomgraph/processor/sparql-service.owl" ] ,
processor_1  |    [ lm:name "http://xmlns.com/foaf/0.1/" 
;                                 lm:altName 
"com/atomgraph/processor/foaf.owl" ] ,
processor_1  |    [ lm:name "http://spinrdf.org/sp#" 
;                                     lm:altName "etc/sp.ttl" ] ,
processor_1  |    [ lm:name "http://spinrdf.org/sp" 
;                                      lm:altName "etc/sp.ttl" ] ,
processor_1  |    [ lm:name "http://spinrdf.org/spin#" 
;                                   lm:altName "etc/spin.ttl" ] ,
processor_1  |    [ lm:name "http://spinrdf.org/spin" 
;                                    lm:altName "etc/spin.ttl" ] ,
processor_1  |    [ lm:name "http://spinrdf.org/spl#" 
;                                    lm:altName "etc/spl.spin.ttl" ] ,
processor_1  |    [ lm:name "http://spinrdf.org/spl" 
;                                     lm:altName "etc/spl.spin.ttl" ]
processor_1  | .@prefix lm: 
<http://jena.hpl.hp.com/2004/08/location-mapping#> .
processor_1  |
processor_1  | [] lm:mapping
processor_1  |
processor_1  |    [ lm:name 
"https://github.com/AtomGraph/Processor/blob/develop/examples/wikidata#" 
; lm:altName "org/wikidata/ldt.ttl" ] ,
processor_1  |    [ lm:name "https://resource.lingsoft.fi/aabb#" ; 
lm:altName "org/wikidata/ldt.ttl" ]
processor_1  | .Listening for transport dt_socket at address: 8000
processor_1  | 02-Oct-2019 10:15:33.204 INFO [main] 
org.apache.catalina.startup.VersionLoggerListener.log Server 
version:        Apache Tomcat/8.0.52
processor_1  | 02-Oct-2019 10:15:33.206 INFO [main] 
org.apache.catalina.startup.VersionLoggerListener.log Server 
built:          Apr 28 2018 16:24:29 UTC
processor_1  | 02-Oct-2019 10:15:33.206 INFO [main] 
org.apache.catalina.startup.VersionLoggerListener.log Server 
number:         8.0.52.0
processor_1  | 02-Oct-2019 10:15:33.207 INFO [main] 
org.apache.catalina.startup.VersionLoggerListener.log OS 
Name:               Linux
processor_1  | 02-Oct-2019 10:15:33.207 INFO [main] 
org.apache.catalina.startup.VersionLoggerListener.log OS 
Version:            4.4.0-148-generic
processor_1  | 02-Oct-2019 10:15:33.207 INFO [main] 
org.apache.catalina.startup.VersionLoggerListener.log 
Architecture:          amd64
processor_1  | 02-Oct-2019 10:15:33.207 INFO [main] 
org.apache.catalina.startup.VersionLoggerListener.log Java 
Home:             /usr/lib/jvm/java-8-openjdk-amd64/jre
processor_1  | 02-Oct-2019 10:15:33.208 INFO [main] 
org.apache.catalina.startup.VersionLoggerListener.log JVM 
Version:           1.8.0_171-8u171-b11-1~deb9u1-b11
processor_1  | 02-Oct-2019 10:15:33.208 INFO [main] 
org.apache.catalina.startup.VersionLoggerListener.log JVM 
Vendor:            Oracle Corporation
processor_1  | 02-Oct-2019 10:15:33.208 INFO [main] 
org.apache.catalina.startup.VersionLoggerListener.log 
CATALINA_BASE:         /usr/local/tomcat
processor_1  | 02-Oct-2019 10:15:33.208 INFO [main] 
org.apache.catalina.startup.VersionLoggerListener.log 
CATALINA_HOME:         /usr/local/tomcat
processor_1  | 02-Oct-2019 10:15:33.209 INFO [main] 
org.apache.catalina.startup.VersionLoggerListener.log Command line 
argument: -Djava.util.logging.config.file=/usr/local/to 
mcat/conf/logging.properties
processor_1  | 02-Oct-2019 10:15:33.209 INFO [main] 
org.apache.catalina.startup.VersionLoggerListener.log Command line 
argument: -Djava.util.logging.manager=org.apache.juli.C lassLoaderLogManager
processor_1  | 02-Oct-2019 10:15:33.210 INFO [main] 
org.apache.catalina.startup.VersionLoggerListener.log Command line 
argument: -Djdk.tls.ephemeralDHKeySize=2048
processor_1  | 02-Oct-2019 10:15:33.210 INFO [main] 
org.apache.catalina.startup.VersionLoggerListener.log Command line 
argument: -Djava.protocol.handler.pkgs=org.apache.catal ina.webresources
processor_1  | 02-Oct-2019 10:15:33.210 INFO [main] 
org.apache.catalina.startup.VersionLoggerListener.log Command line 
argument: -agentlib:jdwp=transport=dt_socket,address=80 
00,server=y,suspend=n
processor_1  | 02-Oct-2019 10:15:33.210 INFO [main] 
org.apache.catalina.startup.VersionLoggerListener.log Command line 
argument: -Dignore.endorsed.dirs=
processor_1  | 02-Oct-2019 10:15:33.211 INFO [main] 
org.apache.catalina.startup.VersionLoggerListener.log Command line 
argument: -Dcatalina.base=/usr/local/tomcat
processor_1  | 02-Oct-2019 10:15:33.211 INFO [main] 
org.apache.catalina.startup.VersionLoggerListener.log Command line 
argument: -Dcatalina.home=/usr/local/tomcat
processor_1  | 02-Oct-2019 10:15:33.212 INFO [main] 
org.apache.catalina.startup.VersionLoggerListener.log Command line 
argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
processor_1  | 02-Oct-2019 10:15:33.212 INFO [main] 
org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR 
based Apache Tomcat Native library 1.2.16 using 
AP                                                                R 
version 1.5.2.
processor_1  | 02-Oct-2019 10:15:33.212 INFO [main] 
org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR 
capabilities: IPv6 [true], sendfile [true], accept filter s [false], 
random [true].
processor_1  | 02-Oct-2019 10:15:33.217 INFO [main] 
org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL 
successfully initialized (OpenSSL 1.1.0f  25 May 2017)
processor_1  | 02-Oct-2019 10:15:33.295 INFO [main] 
org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler 
["http-apr-8080"]
processor_1  | 02-Oct-2019 10:15:33.303 SEVERE [main] 
org.apache.coyote.AbstractProtocol.init Failed to initialize end point 
associated with ProtocolHandler ["http-apr-8080"]
processor_1  |  java.lang.Exception: Socket bind failed: [98] Address 
already in use




yml:

version: "2"
services:
   processor:
     image: atomgraph/processor
     ports:
       - 8090:8080
       - 8010:8000 # debugger
     environment:
       - JPDA_ADDRESS=8000 # debugger port
       - ENDPOINT="https://semantic-dev.lingsoft.fi/fuseki/ds" # 
hostname equals service name
       - GRAPH_STORE="https://semantic-dev.lingsoft.fi/fuseki/ds" # 
hostname equals service name
       - ONTOLOGY="https://resource.lingsoft.fi/aabb#"
     volumes:
       - 
/home/text/cases/nimisampo/proxy/location-mapping.n3:/usr/local/tomcat/webapps/ROOT/WEB-INF/classes/custom-mapping.n3
       - 
/home/text/cases/nimisampo/proxy/person.ttl:/usr/local/tomcat/webapps/ROOT/WEB-INF/classes/org/wikidata/ldt.ttl
       - 
/home/text/cases/nimisampo/proxy/log4j.properties:/usr/local/tomcat/webapps/ROOT/WEB-INF/classes/log4j.properties
     network_mode: host
   nginx:
     image: nginx
     depends_on:
       - processor
     ports:
       - 8090:80
     environment:
       - PROXY_PASS=http://localhost:8080 # internal Processor URL 
(hostname equals docker-compose service name)
       - PROXY_SET_HOST=https://resource.lingsoft.fi # the hostname set 
on the request URI before it's passed to Processor
     volumes:
       - ./nginx.conf.template:/etc/nginx/nginx.conf.template:ro
     command: /bin/bash -c "envsubst '$$PROXY_PASS $$PROXY_SET_HOST' < 
/etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf && nginx -g 
'daemon off;'"










On 02/10/2019 12:47, Martynas Jusevičius wrote:
> Mikael,
>
> I’ll try to help, but this is getting out of the realm of Processor.
>
> Have you completed the Docker post-installation steps for Linux?
> https://docs.docker.com/install/linux/linux-postinstall/
>
> Also check the suggestions here:
> https://github.com/docker/compose/issues/4181
>
> Regarding the nginx conf, just use the one from the example - it is 
> controlled using the PROXY_PASS/PROXY_SET_HOST variables.
>
> On Wed, 2 Oct 2019 at 11.14, Mikael Pesonen 
> <mikael.pesonen@lingsoft.fi <mailto:mikael.pesonen@lingsoft.fi>> wrote:
>
>
>     I have, see the error messages at the end of my previous message.
>
>
>     On 01/10/2019 18:19, Martynas Jusevičius wrote:
>>     Hi Mikael,
>>
>>     have you installed docker-compose? It’s a separate runtime:
>>     https://docs.docker.com/compose/install/
>>
>>     Also, are you running docker-compose from
>>     the folder where docker-compose.yml file is located?
>>
>>     On Tue, 1 Oct 2019 at 11.47, Mikael Pesonen
>>     <mikael.pesonen@lingsoft.fi <mailto:mikael.pesonen@lingsoft.fi>>
>>     wrote:
>>
>>
>>         Hi Martynas,
>>
>>         I have a compose file now:
>>
>>         version: "2"
>>         services:
>>            processor:
>>              image: atomgraph/processor
>>              ports:
>>                - 8090:8080
>>                - 8010:8000 # debugger
>>              environment:
>>                - JPDA_ADDRESS=8000 # debugger port
>>                - ENDPOINT="https://semantic-dev.lingsoft.fi/fuseki/ds" #
>>         hostname equals service name
>>                -
>>         GRAPH_STORE="https://semantic-dev.lingsoft.fi/fuseki/ds" #
>>         hostname equals service name
>>                - ONTOLOGY="https://resource.lingsoft.fi/aabb#"
>>              volumes:
>>                -
>>         /home/text/cases/nimisampo/proxy/location-mapping.n3:/usr/local/tomcat/webapps/ROOT/WEB-INF/classes/custom-mapping.n3
>>                -
>>         /home/text/cases/nimisampo/proxy/person.ttl:/usr/local/tomcat/webapps/ROOT/WEB-INF/classes/org/wikidata/ldt.ttl
>>                -
>>         /home/text/cases/nimisampo/proxy/log4j.properties:/usr/local/tomcat/webapps/ROOT/WEB-INF/classes/log4j.properties
>>            nginx:
>>              image: nginx
>>              depends_on:
>>                - processor
>>              ports:
>>                - 80:80
>>              environment:
>>                - PROXY_PASS=http://localhost:8080 # internal
>>         Processor URL
>>         (hostname equals docker-compose service name)
>>                - PROXY_SET_HOST=https://resource.lingsoft.fi # the
>>         hostname set
>>         on the request URI before it's passed to Processor
>>              volumes:
>>                - ./nginx.conf.template:/etc/nginx/nginx.conf.template:ro
>>              command: /bin/bash -c "envsubst '$$PROXY_PASS
>>         $$PROXY_SET_HOST' <
>>         /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf &&
>>         nginx -g
>>         'daemon off;'"
>>
>>
>>         Not sure how nginx env should be, but running this results error
>>
>>          >> docker-compose up
>>         ERROR: Couldn't connect to Docker daemon at
>>         http+docker://localunixsocket - is it running?
>>
>>
>>          >> sudo service docker status
>>         ● docker.service - Docker Application Container Engine
>>             Loaded: loaded (/lib/systemd/system/docker.service;
>>         enabled; vendor
>>         preset: enabled)
>>             Active: active (running) since Tue 2019-09-17 16:06:30
>>         EEST; 1 weeks
>>         6 days ago
>>               Docs: https://docs.docker.com
>>           Main PID: 15816 (dockerd)
>>              Tasks: 13
>>             Memory: 610.3M
>>                CPU: 5min 15.038s
>>             CGroup: /system.slice/docker.service
>>                     └─15816 /usr/bin/dockerd -H fd://
>>         --containerd=/run/containerd/containerd.sock
>>
>>         This is probably related to setting up docker but looks like
>>         we have
>>         limited knowledge on that here. Do you have an idea?
>>
>>         Mikael
>>
>>         On 27/09/2019 10:46, Martynas Jusevičius wrote:
>>         > Hi Mikael,
>>         >
>>         > On Tue, Sep 24, 2019 at 11:21 AM Mikael Pesonen
>>         > <mikael.pesonen@lingsoft.fi
>>         <mailto:mikael.pesonen@lingsoft.fi>> wrote:
>>         >
>>         >> On 23/09/2019 23:23, Martynas Jusevičius wrote:
>>         >>> No not exactly. Let me picture the basic setup:
>>         >>>
>>         >>> HTTP client -> [ nginx/localhost:8090 ->
>>         >>> Processor/resource.lingsoft.fi:80
>>         <http://resource.lingsoft.fi:80> ] -> SPARQL endpoint
>>         >>>
>>         >>> You can continue using port 8090 if that is what you
>>         prefer, or you
>>         >>> can choose any different port. But what you have now is
>>         nginx fronting
>>         >>> Processor, just for the purpose of rewriting the URL base to
>>         >>> resource.lingsoft.fi <http://resource.lingsoft.fi> before
>>         Processor receives the request, and that
>>         >>> way making sure that the queries from the LDT ontology
>>         will select
>>         >>> something from your dataset.
>>         >>>
>>         >>> Nothing changes for the outside consumer -- since nginx
>>         and Processor
>>         >>> are both running as Docker containers, they communicate
>>         via the
>>         >>> internal Docker network and the host network is not affected.
>>         >>>
>>         >>> I'm pretty sure nginx can do this, will try tomorrow.
>>         >> Okay thanks for this, forwarded to our tech support.
>>         > I've setup an example as promised. nginx is now a reverse
>>         proxy in
>>         > front of Processor in the Fuseki example:
>>         >
>>         https://github.com/AtomGraph/Processor#default-ontology-and-a-local-sparql-service
>>         >
>>         > Processor is now available on two different hostnames. In
>>         the second
>>         > case the request goes through nginx and the hostname is
>>         rewritten to
>>         > example.org <http://example.org> before the Processor, and
>>         becomes BASE
>>         > <http://example.org/> in queries.
>>         >
>>         > $ curl http://localhost:8080/
>>         > <http://localhost:8080/>
>>         > <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
>>         > <http://xmlns.com/foaf/0.1/Document> .
>>         > <http://localhost:8080/> <http://purl.org/dc/terms/title>
>>         "localhost:8080" .
>>         > <http://localhost:8080/>
>>         <http://purl.org/dc/terms/description> "This
>>         > is an RDF document served by AtomGraph Processor" .
>>         > <http://localhost:8080/>
>>         > <http://www.w3.org/2000/01/rdf-schema#seeAlso>
>>         > <http://localhost:8080/sparql> .
>>         >
>>         > $ curl http://localhost/
>>         > <http://example.org/>
>>         > <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
>>         > <http://xmlns.com/foaf/0.1/Document> .
>>         > <http://example.org/> <http://purl.org/dc/terms/title>
>>         "example.org <http://example.org>" .
>>         > <http://example.org/>
>>         <http://purl.org/dc/terms/description> "This is
>>         > an RDF document served by AtomGraph Processor" .
>>         > <http://example.org/>
>>         <http://www.w3.org/2000/01/rdf-schema#seeAlso>
>>         > <http://example.org/sparql> .
>>         >
>>         > The key configuration is PROXY_SET_HOST=example.org
>>         <http://example.org> in
>>         > docker-compose.yml. In your case it would be
>>         > PROXY_SET_HOST=resource.lingsoft.fi
>>         <http://resource.lingsoft.fi>.
>>         >
>>         >>> Re. parameters, you cannot supply the template URI itself
>>         as a
>>         >>> parameter -- only parameters for whichever template
>>         matches the path
>>         >>> of the request URI by ldt:match. In other words, the URL
>>         is a template
>>         >>> call, with ?this being the default argument, and then any
>>         parameters
>>         >>> from the URL query string.
>>         >>> An example of agent param (basically same as in
>>         Wikidata's example):
>>         >>>
>>         >>> :PersonItem a ldt:Template ;
>>         >>>       rdfs:label "Person template" ;
>>         >>>       ldt:match "/{uuid}" ;
>>         >>>       ldt:param :AgentParam ;
>>         >>>       ldt:query [ a :PersonQueryTemplate ] ;
>>         >>>       rdfs:isDefinedBy : .
>>         >>>
>>         >>> :AgentParam a ldt:Parameter ;
>>         >>>       rdfs:label "Agent parameter" ;
>>         >>>       spl:predicate :agent ; # parameter name in the URL
>>         query string
>>         >>>       spl:valueType rdfs:Resource ;
>>         >>>       spl:optional true ;
>>         >>>       rdfs:isDefinedBy : .
>>         >>>
>>         >>> :PersonQueryTemplate a spin:Template ;
>>         >>>       rdfs:label "Person query template" ;
>>         >>>       spin:constraint :AgentParam ;
>>         >>>       spin:body :PersonQuery ;
>>         >>>       rdfs:isDefinedBy : .
>>         >>>
>>         >>> :PersonQuery a ldt:Query, sp:Construct ;
>>         >>>       rdfs:label "Person query" ;
>>         >>>       sp:text """
>>         >>> CONSTRUCT
>>         >>> {
>>         >>>       ...
>>         >>> }
>>         >>>       """ ;
>>         >>>       rdfs:isDefinedBy : .
>>         >> So in this case, how does the query url look like?
>>         >> https://resource.lingsoft.fi/<uuid> plus something.
>>         > For example:
>>         >
>>         https://resource.lingsoft.fi/c5401732-c75d-4f44-b9d1-4e9e95297d9d?agent=https%3A%2F%2Fresource.lingsoft.fi%2F1ecec683-8df3-4e39-9ecd-64ed5617767a
>>         >
>>         > URL parameter values have to be percent-encoded:
>>         > https://en.wikipedia.org/wiki/Percent-encoding
>>         >
>>         >>
>>         >>> More info on parameters:
>>         >>>
>>         https://github.com/AtomGraph/Processor/wiki/Linked-Data-Templates#parameters
>>         >>>
>>         >>> On Mon, Sep 23, 2019 at 1:56 PM Mikael Pesonen
>>         >>> <mikael.pesonen@lingsoft.fi
>>         <mailto:mikael.pesonen@lingsoft.fi>> wrote:
>>         >>>> Okay so it's possible to have servers on same name? We
>>         have public
>>         >>>> server resource.lingsoft.fi
>>         <http://resource.lingsoft.fi> serving content, and
>>         >>>> another server, say ldt.lingsoft.fi
>>         <http://ldt.lingsoft.fi>, where reverse proxy is redirecting
>>         >>>> calls to AtomGraph at localhost:8090 so that AtomGraph
>>         thinks it's
>>         >>>> running at resource.lingsoft.fi
>>         <http://resource.lingsoft.fi>? I have to test that with our
>>         tech support.
>>         >>>>
>>         >>>> Then there is still the question about passing more than
>>         one parameters.
>>         >>>> So when we make a query
>>         >>>>
>>         >>>> ldt.lingsoft.fi/
>>         <http://ldt.lingsoft.fi/><uuid>?template=entire_person&agent=some_agent
>>         >>>>
>>         >>>> what kind of ontology is needed for the mapping. Could
>>         we please have an
>>         >>>> example of that too?
>>         >>>>
>>         >>>> Mikael
>>         >>>>
>>         >>>>
>>         >>>> On 23/09/2019 13:37, Martynas Jusevičius wrote:
>>         >>>>> Mikael,
>>         >>>>>
>>         >>>>> I agree this is a common use case that needs a
>>         solution, but I don't
>>         >>>>> think the LDT specification is the right place to
>>         address it. More
>>         >>>>> like the Processor documentation.
>>         >>>>>
>>         >>>>> I think the core issue here is information hiding:
>>         >>>>> https://en.wikipedia.org/wiki/Information_hiding
>>         >>>>> You want the Processor to work as if the request is
>>         coming from
>>         >>>>> https://resource.lingsoft.fi/, yet it is really coming from
>>         >>>>> http://localhost:8090/. You want to introduce an
>>         indirection that is
>>         >>>>> hidden from the data consumer.
>>         >>>>>
>>         >>>>> This is very much like having a webapp running on
>>         >>>>> http://localhost:8090/ but wanting to expose it as
>>         http://localhost/,
>>         >>>>> i.e. hiding the port number.
>>         >>>>> What you would normally do is put a reverse proxy
>>         server such as
>>         >>>>> Apache or nginx in front of the webapp that would
>>         rewrite the URL and
>>         >>>>> hide the port from the outside.
>>         >>>>>
>>         >>>>> The same solution applies here. You could have nginx in
>>         front of
>>         >>>>> Processor that rewrites the request URL from
>>         http://localhost:8090/ to
>>         >>>>> https://resource.lingsoft.fi/.
>>         >>>>> I think this is the cleanest approach - one simple
>>         component is
>>         >>>>> introduced and neither Processor nor LDT spec require
>>         changes.
>>         >>>>> More info:
>>         https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/
>>         >>>>>
>>         >>>>> If you want to try this, I can put together a
>>         docker-compose.yml with
>>         >>>>> nginx in front of Processor, using their Docker image:
>>         >>>>> https://hub.docker.com/_/nginx
>>         >>>>>
>>         >>>>> Martynas
>>         >>>>>
>>         >>>>> On Mon, Sep 23, 2019 at 11:35 AM Mikael Pesonen
>>         >>>>> <mikael.pesonen@lingsoft.fi
>>         <mailto:mikael.pesonen@lingsoft.fi>> wrote:
>>         >>>>>> Hi Martynas,
>>         >>>>>>
>>         >>>>>> On 21/09/2019 12:20, Martynas Jusevičius wrote:
>>         >>>>>>
>>         >>>>>> Hi Mikael,
>>         >>>>>>
>>         >>>>>> OK there is quite a bit to unpack here :)
>>         >>>>>>
>>         >>>>>> In relation to your first question, I added such a
>>         paragraph to documentation:
>>         >>>>>>
>>         https://github.com/AtomGraph/Processor/wiki/Linked-Data-Templates#execution
>>         >>>>>>
>>         >>>>>> "Note that the base URI of the RDF dataset in the
>>         SPARQL service needs
>>         >>>>>> to be aligned with the base URI of the Processor
>>         instance. Considering
>>         >>>>>> the example above, the dataset should contain some
>>         >>>>>> http://localhost:8080/-based URIs, otherwise ?this
>>         will never match
>>         >>>>>> any resources and the query results will be empty,
>>         leading to a 404
>>         >>>>>> Not Found response."
>>         >>>>>>
>>         >>>>>> So in your case the Processor base URI is
>>         http://localhost:8090/, but
>>         >>>>>> the issue is the same: the base URI of your dataset is
>>         totally
>>         >>>>>> different: http://resource.lingsoft.fi/.
>>         >>>>>>
>>         >>>>>> ?this URI has to have a direct match in your dataset.
>>         And its value is
>>         >>>>>> the *full* request URI (though without query string),
>>         not a URI
>>         >>>>>> provided in the path as you are attempting.
>>         >>>>>>
>>         >>>>>> In other words, if you want this LDT example to work
>>         on your
>>         >>>>>> http://resource.lingsoft.fi/-based dataset, the
>>         Processor should be
>>         >>>>>> deployed on http://resource.lingsoft.fi/, and then
>>         requests to
>>         >>>>>>
>>         https://resource.lingsoft.fi/286c384d-cd5c-4887-9b85-94c0c147f709
>>         >>>>>> would work.
>>         >>>>>>
>>         >>>>>> This is easier said than done, because you most likely
>>         already have a
>>         >>>>>> system running on that domain.
>>         >>>>>>
>>         >>>>>> You are right, we have this server
>>         https://resource.lingsoft.fi/ running for serving content.
>>         This is probably quite common scenario.
>>         >>>>>>
>>         >>>>>> So what we usually do is "rebase" the
>>         >>>>>> RDF dataset to the base URI of the Processor that we
>>         are testing on.
>>         >>>>>> You could do that by exporting your RDF dataset as
>>         N-Triples or
>>         >>>>>> N-Quads and simply replacing
>>         http://resource.lingsoft.fi/ with
>>         >>>>>> http://localhost:8090/. Put the rebased dataset in a
>>         separate test
>>         >>>>>> triplestore.
>>         >>>>>> Then a request to
>>         >>>>>>
>>         http://localhost:8090/286c384d-cd5c-4887-9b85-94c0c147f709 should
>>         >>>>>> work.
>>         >>>>>>
>>         >>>>>> This seems quite a heavy solution, to keep in sync two
>>         datasets.
>>         >>>>>>
>>         >>>>>> There are workarounds without doing URI rebasing, for
>>         example you
>>         >>>>>> could still request
>>         >>>>>>
>>         http://localhost:8090/286c384d-cd5c-4887-9b85-94c0c147f709
>>         and in the
>>         >>>>>> query do smth like (not tested)
>>         >>>>>>
>>         >>>>>>        BIND (STRAFTER(STR(?this), STR(<>)) AS ?id)
>>         >>>>>>        BIND
>>         (URI(CONCAT("https://resource.lingsoft.fi/", ?id)) AS ?realThis)
>>         >>>>>>
>>         >>>>>> and then use ?realThis in the query instead of ?this.
>>         What this code
>>         >>>>>> does is extract the ID from the request URI by
>>         stripping the
>>         >>>>>> http://localhost:8090/ base URI (which comes from BASE
>>         >>>>>> <http://localhost:8090/>) and concatenating it with
>>         the real base URI
>>         >>>>>> of your dataset, which is <https://resource.lingsoft.fi/>.
>>         >>>>>> This approach is not recommended however, because URIs
>>         are opaque
>>         >>>>>> identifiers, and their contents should not be parsed
>>         in order to
>>         >>>>>> extract information (such as the ID in this case):
>>         >>>>>> https://www.w3.org/DesignIssues/Axioms.html#opaque
>>         >>>>>>
>>         >>>>>> Alternatively, you could have a JAX-RS filter that
>>         changes the base
>>         >>>>>> URI in the UriInfo object. That way the LDT processor
>>         could use a
>>         >>>>>> ?this URI in queries which is different from the real
>>         request URI. But
>>         >>>>>> again, this is more of a hack.
>>         >>>>>>
>>         >>>>>> Since the resource uri is most often used for serving
>>         content, it would seem that LDT spec needs some "official", 
>>         non hack way to handle the calls? One way that comes to mind
>>         is to use URL parameters so that for example call to
>>         >>>>>> https://resource.lingsoft.fi/<uuid>?ldt=person&agent=...
>>         >>>>>> would be parsed at our content server and forwarded to
>>         AtomGraph when ldt parameter is seen. But still LDT would
>>         need to support this in some official way. What do you think?
>>         >>>>>>
>>         >>>>>> Br,
>>         >>>>>> Mikael
>>         >>>>>>
>>         >>>>>>
>>         >>>>>>
>>         >>>>>>
>>         >>>>>>
>>         >>>>>> Lets address the rest of your questions when we have
>>         this figured out.
>>         >>>>>>
>>         >>>>>>
>>         >>>>>> On Fri, Sep 20, 2019 at 12:13 PM Mikael Pesonen
>>         >>>>>> <mikael.pesonen@lingsoft.fi
>>         <mailto:mikael.pesonen@lingsoft.fi>> wrote:
>>         >>>>>>
>>         >>>>>> Thanks, makes more sense now.
>>         >>>>>>
>>         >>>>>> We needed to add parameter --network=host to get
>>         connections to out
>>         >>>>>> local network, but that results a bind error, since we
>>         are already 8080
>>         >>>>>> in use on our servers. We can figure this out here
>>         first...
>>         >>>>>>
>>         >>>>>> But I'm getting the SPARQL query now.
>>         >>>>>>
>>         >>>>>> So my ontology is now:
>>         >>>>>>
>>         >>>>>> @base         <https://resource.lingsoft.fi/aabb> . #
>>         just for testing
>>         >>>>>>
>>         >>>>>> @prefix :     <#> .
>>         >>>>>> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
>>         >>>>>> @prefix owl:  <http://www.w3.org/2002/07/owl#> .
>>         >>>>>> @prefix ldt:  <https://www.w3.org/ns/ldt#> .
>>         >>>>>> @prefix sp:   <http://spinrdf.org/sp#> .
>>         >>>>>> @prefix spl:  <http://spinrdf.org/spl#> .
>>         >>>>>>
>>         >>>>>> : a ldt:Ontology ;
>>         >>>>>>         owl:imports ldt:, sp: ;
>>         >>>>>>         rdfs:label "LDT ontology" .
>>         >>>>>>
>>         >>>>>> :AdminPersonItem a ldt:Template ;
>>         >>>>>>           ldt:match "/{id}" ;
>>         >>>>>>           ldt:query :ConstructAdminPerson ;
>>         >>>>>>  rdfs:isDefinedBy : .
>>         >>>>>>
>>         >>>>>> :ConstructAdminPerson a sp:Construct ;
>>         >>>>>>           sp:text """
>>         >>>>>>           CONSTRUCT
>>         >>>>>>           FROM
>>         <http://www.lingsoft.fi/graph/common_insight/>
>>         >>>>>>           WHERE
>>         >>>>>>           {
>>         >>>>>>               ?this ?p ?o
>>         >>>>>>           }
>>         >>>>>>           """ ;
>>         >>>>>>  rdfs:isDefinedBy : .
>>         >>>>>>
>>         >>>>>> Query URL is
>>         >>>>>>
>>         http://localhost:8090/https%3A%2F%2Fresource.lingsoft.fi%2F286c384d-cd5c-4887-9b85-94c0c147f709
>>         >>>>>>
>>         >>>>>> Resulted SPARQL is
>>         >>>>>>
>>         >>>>>> BASE    <http://localhost:8090/>
>>         >>>>>>
>>         >>>>>> CONSTRUCT
>>         >>>>>>       {
>>         >>>>>> <https%253A%252F%252Fresource.lingsoft.fi
>>         <http://252Fresource.lingsoft.fi>%252F286c384d-cd5c-4887-9b85-94c0c147f709>
>>         >>>>>> ?p ?o .
>>         >>>>>>       }
>>         >>>>>> FROM <http://www.lingsoft.fi/graph/common_insight/>
>>         >>>>>> WHERE
>>         >>>>>>       {
>>         >>>>>> <https%253A%252F%252Fresource.lingsoft.fi
>>         <http://252Fresource.lingsoft.fi>%252F286c384d-cd5c-4887-9b85-94c0c147f709>
>>         >>>>>>                   ?p  ?o
>>         >>>>>>       }
>>         >>>>>>
>>         >>>>>> So resource id is still double encoded. Perhaps I'm
>>         still missing
>>         >>>>>> something about the parameter mapping.
>>         >>>>>>
>>         >>>>>>
>>         >>>>>> So now I'm bit further and know how to ask right
>>         questions :) So we need
>>         >>>>>> to be able to send 3 parameters:
>>         >>>>>>
>>         >>>>>> 1) Resource URL = in this case person's id
>>         >>>>>>
>>         (https://resource.lingsoft.fi/286c384d-cd5c-4887-9b85-94c0c147f709)
>>         >>>>>>
>>         >>>>>> 2) Resource type for selecting correct template/SPARQL
>>         query. in this
>>         >>>>>> case a person.
>>         >>>>>>
>>         >>>>>> 3) Access level: how much details are you allowed the
>>         query of the person.
>>         >>>>>>
>>         >>>>>> So how are these 3 parameters mapped to the ontology
>>         and generated
>>         >>>>>> SPARQL - what kind of modifications are needed for the
>>         request URL and
>>         >>>>>> template ontology? I'm trying to read the examples but
>>         not getting this
>>         >>>>>> still...
>>         >>>>>>
>>         >>>>>> Br,
>>         >>>>>> Mikael
>>         >>>>>>
>>         >>>>>>
>>         >>>>>>
>>         >>>>>>
>>         >>>>>> On 19/09/2019 16:18, Martynas Jusevičius wrote:
>>         >>>>>>
>>         >>>>>> Hi Mikael,
>>         >>>>>>
>>         >>>>>> the -v and -e are docker run options:
>>         >>>>>> https://docs.docker.com/engine/reference/run/
>>         >>>>>> -v specifically mounts a file or folder from the host
>>         to the container
>>         >>>>>> (which is internally Ubuntu in this case):
>>         >>>>>> https://docs.docker.com/storage/bind-mounts/
>>         >>>>>>
>>         >>>>>> ENDPOINT, ONTOLOGY etc. are defined in the Processor's
>>         Dockerfile
>>         >>>>>> and/or entrypoint:
>>         >>>>>>
>>         https://github.com/AtomGraph/Processor/blob/master/Dockerfile
>>         >>>>>>
>>         https://github.com/AtomGraph/Processor/blob/master/entrypoint.sh
>>         >>>>>>
>>         >>>>>> Different Docker images can use ENV variables and
>>         mounts in different
>>         >>>>>> ways and for different purposes. But if you see a
>>         container as a large
>>         >>>>>> function, they usually serve as user inputs.
>>         >>>>>> But Docker and Dockerfiles are large topics on their
>>         own :)
>>         >>>>>>
>>         >>>>>> You could use curl to query an ontology from Fuseki
>>         (most likely a
>>         >>>>>> different instance than ENDPOINT), store it into a
>>         file and then mount
>>         >>>>>> it to Processor. Easy to script something like this in
>>         bash.
>>         >>>>>> We also have a Knowledge Graph management system that
>>         builds on top of
>>         >>>>>> Processor and provides a UI, for general RDF as well
>>         as ontology
>>         >>>>>> editing. But it is not open-source so far -- lets take
>>         it off-list if
>>         >>>>>> it sounds interesting.
>>         >>>>>>
>>         >>>>>> I need to check how GRAPH_STORE is used and whether it
>>         can be made
>>         >>>>>> optional. If you don't have one, just provide a bogus
>>         (but valid) URL
>>         >>>>>> for now, it shouldn't be a problem.
>>         >>>>>>
>>         >>>>>> On Thu, Sep 19, 2019 at 12:08 PM Mikael Pesonen
>>         >>>>>> <mikael.pesonen@lingsoft.fi
>>         <mailto:mikael.pesonen@lingsoft.fi>> wrote:
>>         >>>>>>
>>         >>>>>> Hi,
>>         >>>>>>
>>         >>>>>> already some more questions:
>>         >>>>>>
>>         >>>>>> About docker command line parameters, who defines the
>>         -e and -v command
>>         >>>>>> line parameters? Looking at the document -v displays
>>         the docker version.
>>         >>>>>> -e I'm guessing sets an environment variable but what
>>         -v does? Sets some
>>         >>>>>> input file locations? Couldn't find the document for
>>         those.
>>         >>>>>>
>>         >>>>>> How do I read the template ontologies (any RDF
>>         content) from Fuseki
>>         >>>>>> endpoint instead of a file(s)?
>>         >>>>>>
>>         >>>>>> There are separate environment variables for SPARQL
>>         and GSP endpoints.
>>         >>>>>> Are both required?
>>         >>>>>>
>>         >>>>>> Mikael
>>         >>>>>>
>>         >>>>>>
>>         >>>>>> On 18/09/2019 16:33, Martynas Jusevičius wrote:
>>         >>>>>>
>>         >>>>>> Hurray! Thanks a lot for going through this. If you
>>         have any
>>         >>>>>> suggestions on how to improve the documentation or the
>>         setup, please
>>         >>>>>> let me know.
>>         >>>>>>
>>         >>>>>> Now you have these basic options:
>>         >>>>>> - change ENDPOINT/GRAPH_STORE values to your own
>>         endpoint URLs
>>         >>>>>> - edit wikidata.ttl to change LDT templates (or their
>>         URI templates,
>>         >>>>>> or their queries)
>>         >>>>>>
>>         >>>>>> If you have a public SPARQL endpoint, we can try the
>>         config here.
>>         >>>>>>
>>         >>>>>> Remember that ?this is a "magic" variable in the
>>         queries, which is
>>         >>>>>> bound to the request URI. So in the case of the
>>         example (?this,
>>         >>>>>> <http://localhost:8080/birthdays>), although the
>>         Wikidata query does
>>         >>>>>> not use ?this variable.
>>         >>>>>>
>>         >>>>>> On Wed, Sep 18, 2019 at 3:25 PM Mikael Pesonen
>>         >>>>>> <mikael.pesonen@lingsoft.fi
>>         <mailto:mikael.pesonen@lingsoft.fi>> wrote:
>>         >>>>>>
>>         >>>>>> Okay now it seems to work except for connection to
>>         wikidata as you
>>         >>>>>> mentioned earlier:
>>         >>>>>>
>>         >>>>>> 18-Sep-2019 13:21:43.730 WARNING [localhost-startStop-1]
>>         >>>>>>
>>         org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom
>>         >>>>>> Creation of SecureRandom instance for session ID
>>         generation using
>>         >>>>>> [SHA1PRNG] took [162,901] milliseconds.
>>         >>>>>> 18-Sep-2019 13:21:43.742 INFO [localhost-startStop-1]
>>         >>>>>>
>>         org.apache.catalina.startup.HostConfig.deployDescriptor
>>         Deployment of
>>         >>>>>> configuration descriptor
>>         >>>>>> /usr/local/tomcat/conf/Catalina/localhost/ROOT.xml has
>>         finished in
>>         >>>>>> 164,533 ms
>>         >>>>>> 18-Sep-2019 13:21:43.745 INFO [main]
>>         >>>>>> org.apache.coyote.AbstractProtocol.start Starting
>>         ProtocolHandler
>>         >>>>>> ["http-apr-8080"]
>>         >>>>>> 18-Sep-2019 13:21:43.753 INFO [main]
>>         >>>>>> org.apache.coyote.AbstractProtocol.start Starting
>>         ProtocolHandler
>>         >>>>>> ["ajp-apr-8009"]
>>         >>>>>> 18-Sep-2019 13:21:43.756 INFO [main]
>>         >>>>>> org.apache.catalina.startup.Catalina.start Server
>>         startup in 164576 ms
>>         >>>>>> 18-Sep-2019 13:21:43.918 INFO [http-apr-8080-exec-1]
>>         >>>>>>
>>         com.sun.jersey.server.impl.application.WebApplicationImpl._initiate
>>         >>>>>> Initiating Jersey application, version 'Jersey: 1.19
>>         02/11/2015 03:25 AM'
>>         >>>>>> 13:21:44,148 DEBUG Jena:189 - Jena initialization
>>         >>>>>> 13:21:44,341 DEBUG FileManager:157 - Add location:
>>         LocatorFile
>>         >>>>>> 13:21:44,342 DEBUG FileManager:157 - Add location:
>>         ClassLoaderLocator
>>         >>>>>> 13:21:44,346 DEBUG LocationMapper:152 - Failed to find
>>         configuration:
>>         >>>>>>
>>         file:location-mapping.rdf;file:location-mapping.n3;file:location-mapping.ttl;file:etc/location-mapping.rdf;file:etc/location-mapping.n3;file:etc/location-mapping.ttl
>>         >>>>>> 13:21:44,346 DEBUG FileManager:157 - Add location:
>>         LocatorFile
>>         >>>>>> 13:21:44,348 DEBUG FileManager:157 - Add location:
>>         LocatorURL
>>         >>>>>> 13:21:44,348 DEBUG FileManager:157 - Add location:
>>         ClassLoaderLocator
>>         >>>>>> 13:21:44,354 DEBUG StreamManager:142 - Found:
>>         location-mapping.n3
>>         >>>>>> (ClassLoaderLocator)
>>         >>>>>> 13:21:44,731 DEBUG JenaIOEnvironment:119 - Mapping:
>>         >>>>>> http://www.w3.org/2011/http-statusCodes =>
>>         >>>>>> com/atomgraph/processor/http-statusCodes.rdf
>>         >>>>>> 13:21:44,732 DEBUG JenaIOEnvironment:119 - Mapping:
>>         >>>>>> https://www.w3.org/ns/ldt/named-graphs/templates# =>
>>         >>>>>> com/atomgraph/processor/ngt.ttl
>>         >>>>>> 13:21:44,732 DEBUG JenaIOEnvironment:119 - Mapping:
>>         >>>>>> http://www.w3.org/2011/http# =>
>>         com/atomgraph/processor/http.owl
>>         >>>>>> 13:21:44,733 DEBUG JenaIOEnvironment:119 - Mapping:
>>         >>>>>> http://spinrdf.org/sp => etc/sp.ttl
>>         >>>>>> 13:21:44,733 DEBUG JenaIOEnvironment:119 - Mapping:
>>         >>>>>> https://www.w3.org/ns/ldt# =>
>>         com/atomgraph/processor/ldt.ttl
>>         >>>>>> 13:21:44,733 DEBUG JenaIOEnvironment:119 - Mapping:
>>         >>>>>> http://www.w3.org/2011/http-statusCodes# =>
>>         >>>>>> com/atomgraph/processor/http-statusCodes.rdf
>>         >>>>>> 13:21:44,734 DEBUG JenaIOEnvironment:119 - Mapping:
>>         >>>>>> http://spinrdf.org/sp# => etc/sp.ttl
>>         >>>>>> 13:21:44,734 DEBUG JenaIOEnvironment:119 - Mapping:
>>         >>>>>> https://www.w3.org/ns/ldt/topic-hierarchy/templates# =>
>>         >>>>>> com/atomgraph/processor/tht.ttl
>>         >>>>>> 13:21:44,736 DEBUG JenaIOEnvironment:119 - Mapping:
>>         >>>>>> http://spinrdf.org/spin => etc/spin.ttl
>>         >>>>>> 13:21:44,737 DEBUG JenaIOEnvironment:119 - Mapping:
>>         >>>>>> https://www.w3.org/ns/ldt/core/templates# =>
>>         com/atomgraph/processor/ct.ttl
>>         >>>>>> 13:21:44,737 DEBUG JenaIOEnvironment:119 - Mapping:
>>         >>>>>>
>>         https://github.com/AtomGraph/Processor/blob/develop/examples/wikidata#
>>         >>>>>> => org/wikidata/ldt.ttl
>>         >>>>>> 13:21:44,738 DEBUG JenaIOEnvironment:119 - Mapping:
>>         >>>>>> http://www.w3.org/ns/sparql-service-description# =>
>>         >>>>>> com/atomgraph/processor/sparql-service.owl
>>         >>>>>> 13:21:44,738 DEBUG JenaIOEnvironment:119 - Mapping:
>>         >>>>>> http://rdfs.org/ns/void# =>
>>         com/atomgraph/processor/void.owl
>>         >>>>>> 13:21:44,741 DEBUG JenaIOEnvironment:119 - Mapping:
>>         >>>>>> http://spinrdf.org/spl => etc/spl.spin.ttl
>>         >>>>>> 13:21:44,741 DEBUG JenaIOEnvironment:119 - Mapping:
>>         >>>>>> https://www.w3.org/ns/ldt/document-hierarchy/domain# =>
>>         >>>>>> com/atomgraph/processor/dh.ttl
>>         >>>>>> 13:21:44,741 DEBUG JenaIOEnvironment:119 - Mapping:
>>         >>>>>> http://spinrdf.org/spin# => etc/spin.ttl
>>         >>>>>> 13:21:44,742 DEBUG JenaIOEnvironment:119 - Mapping:
>>         >>>>>> https://www.w3.org/ns/ldt/core/domain# =>
>>         com/atomgraph/processor/c.ttl
>>         >>>>>> 13:21:44,742 DEBUG JenaIOEnvironment:119 - Mapping:
>>         >>>>>> http://www.w3.org/2011/http =>
>>         com/atomgraph/processor/http.owl
>>         >>>>>> 13:21:44,742 DEBUG JenaIOEnvironment:119 - Mapping:
>>         >>>>>> http://xmlns.com/foaf/0.1/ =>
>>         com/atomgraph/processor/foaf.owl
>>         >>>>>> 13:21:44,743 DEBUG JenaIOEnvironment:119 - Mapping:
>>         >>>>>> http://rdfs.org/sioc/ns# =>
>>         com/atomgraph/processor/sioc.owl
>>         >>>>>> 13:21:44,743 DEBUG JenaIOEnvironment:119 - Mapping:
>>         >>>>>> http://spinrdf.org/spl# => etc/spl.spin.ttl
>>         >>>>>> 13:21:44,792 DEBUG info:334 - System architecture: 64 bit
>>         >>>>>> 13:21:44,861 DEBUG FileManager:157 - Add location:
>>         LocatorFile
>>         >>>>>> 13:21:44,862 DEBUG FileManager:157 - Add location:
>>         LocatorURL
>>         >>>>>> 13:21:44,862 DEBUG FileManager:157 - Add location:
>>         ClassLoaderLocator
>>         >>>>>> 13:21:44,863 DEBUG FileManager:527 - Found: ont-policy.rdf
>>         >>>>>> (ClassLoaderLocator)
>>         >>>>>> 13:21:45,083 DEBUG FileManager:157 - Add location:
>>         LocatorFile
>>         >>>>>> 13:21:45,084 DEBUG FileManager:157 - Add location:
>>         ClassLoaderLocator
>>         >>>>>> 13:21:45,084 DEBUG FileManager:527 - Found:
>>         location-mapping.n3
>>         >>>>>> (ClassLoaderLocator)
>>         >>>>>> 13:21:45,104 DEBUG LocationMapper:371 - Mapping:
>>         http://spinrdf.org/spl#
>>         >>>>>> => etc/spl.spin.ttl
>>         >>>>>> 13:21:45,105 DEBUG LocationMapper:371 - Mapping:
>>         >>>>>> http://www.w3.org/2011/http-statusCodes =>
>>         >>>>>> com/atomgraph/processor/http-statusCodes.rdf
>>         >>>>>> 13:21:45,105 DEBUG LocationMapper:371 - Mapping:
>>         >>>>>> http://www.w3.org/2011/http-statusCodes# =>
>>         >>>>>> com/atomgraph/processor/http-statusCodes.rdf
>>         >>>>>> 13:21:45,106 DEBUG LocationMapper:371 - Mapping:
>>         http://spinrdf.org/sp#
>>         >>>>>> => etc/sp.ttl
>>         >>>>>> 13:21:45,106 DEBUG LocationMapper:371 - Mapping:
>>         >>>>>> http://www.w3.org/2011/http# =>
>>         com/atomgraph/processor/http.owl
>>         >>>>>> 13:21:45,107 DEBUG LocationMapper:371 - Mapping:
>>         http://spinrdf.org/spin
>>         >>>>>> => etc/spin.ttl
>>         >>>>>> 13:21:45,107 DEBUG LocationMapper:371 - Mapping:
>>         >>>>>> http://www.w3.org/ns/sparql-service-description# =>
>>         >>>>>> com/atomgraph/processor/sparql-service.owl
>>         >>>>>> 13:21:45,108 DEBUG LocationMapper:371 - Mapping:
>>         >>>>>> https://www.w3.org/ns/ldt/core/domain# =>
>>         com/atomgraph/processor/c.ttl
>>         >>>>>> 13:21:45,108 DEBUG LocationMapper:371 - Mapping:
>>         >>>>>> https://www.w3.org/ns/ldt/document-hierarchy/domain# =>
>>         >>>>>> com/atomgraph/processor/dh.ttl
>>         >>>>>> 13:21:45,108 DEBUG LocationMapper:371 - Mapping:
>>         >>>>>> http://spinrdf.org/spin# => etc/spin.ttl
>>         >>>>>> 13:21:45,109 DEBUG LocationMapper:371 - Mapping:
>>         >>>>>> https://www.w3.org/ns/ldt/core/templates# =>
>>         com/atomgraph/processor/ct.ttl
>>         >>>>>> 13:21:45,109 DEBUG LocationMapper:371 - Mapping:
>>         >>>>>> https://www.w3.org/ns/ldt/topic-hierarchy/templates# =>
>>         >>>>>> com/atomgraph/processor/tht.ttl
>>         >>>>>> 13:21:45,109 DEBUG LocationMapper:371 - Mapping:
>>         >>>>>> http://xmlns.com/foaf/0.1/ =>
>>         com/atomgraph/processor/foaf.owl
>>         >>>>>> 13:21:45,110 DEBUG LocationMapper:371 - Mapping:
>>         >>>>>> https://www.w3.org/ns/ldt# =>
>>         com/atomgraph/processor/ldt.ttl
>>         >>>>>> 13:21:45,110 DEBUG LocationMapper:371 - Mapping:
>>         >>>>>> http://rdfs.org/sioc/ns# =>
>>         com/atomgraph/processor/sioc.owl
>>         >>>>>> 13:21:45,110 DEBUG LocationMapper:371 - Mapping:
>>         >>>>>> http://www.w3.org/2011/http =>
>>         com/atomgraph/processor/http.owl
>>         >>>>>> 13:21:45,111 DEBUG LocationMapper:371 - Mapping:
>>         >>>>>>
>>         https://github.com/AtomGraph/Processor/blob/develop/examples/wikidata#
>>         >>>>>> => org/wikidata/ldt.ttl
>>         >>>>>> 13:21:45,111 DEBUG LocationMapper:371 - Mapping:
>>         http://spinrdf.org/sp
>>         >>>>>> => etc/sp.ttl
>>         >>>>>> 13:21:45,111 DEBUG LocationMapper:371 - Mapping:
>>         http://spinrdf.org/spl
>>         >>>>>> => etc/spl.spin.ttl
>>         >>>>>> 13:21:45,112 DEBUG LocationMapper:371 - Mapping:
>>         >>>>>> http://rdfs.org/ns/void# =>
>>         com/atomgraph/processor/void.owl
>>         >>>>>> 13:21:45,115 DEBUG LocationMapper:371 - Mapping:
>>         >>>>>> https://www.w3.org/ns/ldt/named-graphs/templates# =>
>>         >>>>>> com/atomgraph/processor/ngt.ttl
>>         >>>>>> 13:21:45,774 DEBUG FileManager:157 - Add location:
>>         LocatorFile
>>         >>>>>> 13:21:45,775 DEBUG FileManager:157 - Add location:
>>         LocatorURL
>>         >>>>>> 13:21:45,775 DEBUG FileManager:157 - Add location:
>>         ClassLoaderLocator
>>         >>>>>> 13:21:45,777 DEBUG Application:179 - FileManager.get():
>>         >>>>>> com.atomgraph.core.util.jena.DataManager@dd75c2f
>>         >>>>>> 13:21:45,777 DEBUG Application:182 -
>>         >>>>>> OntDocumentManager.getInstance().getFileManager():
>>         >>>>>> com.atomgraph.core.util.jena.DataManager@dd75c2f
>>         >>>>>> 13:21:45,778 DEBUG OntologyProvider:183 - Loading
>>         sitemap ontology from
>>         >>>>>> URI:
>>         https://github.com/AtomGraph/Processor/blob/develop/examples/wikidata#
>>         >>>>>> 13:21:45,800 DEBUG FileManager:472 - Mapped:
>>         >>>>>>
>>         https://github.com/AtomGraph/Processor/blob/develop/examples/wikidata#
>>         >>>>>> => org/wikidata/ldt.ttl
>>         >>>>>> 13:21:45,801 DEBUG FileManager:324 -
>>         >>>>>>
>>         readModel(model,https://github.com/AtomGraph/Processor/blob/develop/examples/wikidata#)
>>         >>>>>> 13:21:45,801 DEBUG FileManager:340 -
>>         >>>>>>
>>         readModel(model,https://github.com/AtomGraph/Processor/blob/develop/examples/wikidata#,
>>         >>>>>> null)
>>         >>>>>> 13:21:45,802 DEBUG FileManager:472 - Mapped:
>>         >>>>>>
>>         https://github.com/AtomGraph/Processor/blob/develop/examples/wikidata#
>>         >>>>>> => org/wikidata/ldt.ttl
>>         >>>>>> 13:21:45,802 DEBUG FileManager:368 - Map:
>>         >>>>>>
>>         https://github.com/AtomGraph/Processor/blob/develop/examples/wikidata#
>>         >>>>>> => org/wikidata/ldt.ttl
>>         >>>>>> 13:21:45,803 DEBUG FileManager:384 - Syntax guess: TURTLE
>>         >>>>>> 13:21:45,804 DEBUG FileManager:527 - Found:
>>         org/wikidata/ldt.ttl
>>         >>>>>> (ClassLoaderLocator)
>>         >>>>>> 13:21:45,810 DEBUG FileManager:472 - Mapped:
>>         https://www.w3.org/ns/ldt#
>>         >>>>>> => com/atomgraph/processor/ldt.ttl
>>         >>>>>> 13:21:45,811 DEBUG FileManager:324 -
>>         >>>>>> readModel(model,https://www.w3.org/ns/ldt#)
>>         >>>>>> 13:21:45,811 DEBUG FileManager:340 -
>>         >>>>>> readModel(model,https://www.w3.org/ns/ldt#, null)
>>         >>>>>> 13:21:45,811 DEBUG FileManager:472 - Mapped:
>>         https://www.w3.org/ns/ldt#
>>         >>>>>> => com/atomgraph/processor/ldt.ttl
>>         >>>>>> 13:21:45,812 DEBUG FileManager:368 - Map:
>>         https://www.w3.org/ns/ldt# =>
>>         >>>>>> com/atomgraph/processor/ldt.ttl
>>         >>>>>> 13:21:45,812 DEBUG FileManager:384 - Syntax guess: TURTLE
>>         >>>>>> 13:21:45,813 DEBUG FileManager:527 - Found:
>>         >>>>>> com/atomgraph/processor/ldt.ttl (ClassLoaderLocator)
>>         >>>>>> 13:21:45,825 DEBUG FileManager:472 - Mapped:
>>         http://spinrdf.org/sp# =>
>>         >>>>>> etc/sp.ttl
>>         >>>>>> 13:21:45,825 DEBUG FileManager:324 -
>>         readModel(model,http://spinrdf.org/sp#)
>>         >>>>>> 13:21:45,825 DEBUG FileManager:340 -
>>         >>>>>> readModel(model,http://spinrdf.org/sp#, null)
>>         >>>>>> 13:21:45,825 DEBUG FileManager:472 - Mapped:
>>         http://spinrdf.org/sp# =>
>>         >>>>>> etc/sp.ttl
>>         >>>>>> 13:21:45,826 DEBUG FileManager:368 - Map:
>>         http://spinrdf.org/sp# =>
>>         >>>>>> etc/sp.ttl
>>         >>>>>> 13:21:45,826 DEBUG FileManager:384 - Syntax guess: TURTLE
>>         >>>>>> 13:21:45,827 DEBUG FileManager:527 - Found: etc/sp.ttl
>>         (ClassLoaderLocator)
>>         >>>>>> 13:21:45,842 DEBUG FileManager:472 - Mapped:
>>         >>>>>> http://www.w3.org/ns/sparql-service-description# =>
>>         >>>>>> com/atomgraph/processor/sparql-service.owl
>>         >>>>>> 13:21:45,843 DEBUG FileManager:324 -
>>         >>>>>>
>>         readModel(model,http://www.w3.org/ns/sparql-service-description#)
>>         >>>>>> 13:21:45,843 DEBUG FileManager:340 -
>>         >>>>>>
>>         readModel(model,http://www.w3.org/ns/sparql-service-description#,
>>         null)
>>         >>>>>> 13:21:45,843 DEBUG FileManager:472 - Mapped:
>>         >>>>>> http://www.w3.org/ns/sparql-service-description# =>
>>         >>>>>> com/atomgraph/processor/sparql-service.owl
>>         >>>>>> 13:21:45,843 DEBUG FileManager:368 - Map:
>>         >>>>>> http://www.w3.org/ns/sparql-service-description# =>
>>         >>>>>> com/atomgraph/processor/sparql-service.owl
>>         >>>>>> 13:21:45,844 DEBUG FileManager:384 - Syntax guess: RDF/XML
>>         >>>>>> 13:21:45,844 DEBUG FileManager:527 - Found:
>>         >>>>>> com/atomgraph/processor/sparql-service.owl
>>         (ClassLoaderLocator)
>>         >>>>>> 13:21:45,873 DEBUG FileManager:472 - Mapped:
>>         http://spinrdf.org/spin# =>
>>         >>>>>> etc/spin.ttl
>>         >>>>>> 13:21:45,874 DEBUG FileManager:324 -
>>         >>>>>> readModel(model,http://spinrdf.org/spin#)
>>         >>>>>> 13:21:45,874 DEBUG FileManager:340 -
>>         >>>>>> readModel(model,http://spinrdf.org/spin#, null)
>>         >>>>>> 13:21:45,874 DEBUG FileManager:472 - Mapped:
>>         http://spinrdf.org/spin# =>
>>         >>>>>> etc/spin.ttl
>>         >>>>>> 13:21:45,874 DEBUG FileManager:368 - Map:
>>         http://spinrdf.org/spin# =>
>>         >>>>>> etc/spin.ttl
>>         >>>>>> 13:21:45,875 DEBUG FileManager:384 - Syntax guess: TURTLE
>>         >>>>>> 13:21:45,875 DEBUG FileManager:527 - Found: etc/spin.ttl
>>         >>>>>> (ClassLoaderLocator)
>>         >>>>>> 13:21:45,888 DEBUG FileManager:472 - Mapped:
>>         http://spinrdf.org/sp =>
>>         >>>>>> etc/sp.ttl
>>         >>>>>> 13:21:45,889 DEBUG FileManager:324 -
>>         readModel(model,http://spinrdf.org/sp)
>>         >>>>>> 13:21:45,889 DEBUG FileManager:340 -
>>         >>>>>> readModel(model,http://spinrdf.org/sp, null)
>>         >>>>>> 13:21:45,890 DEBUG FileManager:472 - Mapped:
>>         http://spinrdf.org/sp =>
>>         >>>>>> etc/sp.ttl
>>         >>>>>> 13:21:45,890 DEBUG FileManager:368 - Map:
>>         http://spinrdf.org/sp =>
>>         >>>>>> etc/sp.ttl
>>         >>>>>> 13:21:45,891 DEBUG FileManager:384 - Syntax guess: TURTLE
>>         >>>>>> 13:21:45,893 DEBUG FileManager:527 - Found: etc/sp.ttl
>>         (ClassLoaderLocator)
>>         >>>>>> 18-Sep-2019 13:21:45.997 INFO [http-apr-8080-exec-1]
>>         >>>>>>
>>         com.sun.jersey.server.impl.application.DeferredResourceConfig$ApplicationHolder.<init>
>>         >>>>>> Instantiated the Application class
>>         com.atomgraph.server.Application
>>         >>>>>> 13:21:46,388 DEBUG OntologyProvider:183 - Loading
>>         sitemap ontology from
>>         >>>>>> URI:
>>         https://github.com/AtomGraph/Processor/blob/develop/examples/wikidata#
>>         >>>>>> 13:21:46,390 DEBUG OntologyProvider:183 - Loading
>>         sitemap ontology from
>>         >>>>>> URI:
>>         https://github.com/AtomGraph/Processor/blob/develop/examples/wikidata#
>>         >>>>>> 13:21:46,395 DEBUG TemplateMatcher:245 - Path:
>>         /birthdays matched
>>         >>>>>> Template:
>>         >>>>>>
>>         [<https://github.com/AtomGraph/Processor/blob/develop/examples/wikidata#BirthdaysTemplate>:
>>         >>>>>> "/birthdays", 0.0]
>>         >>>>>> 13:21:46,396 DEBUG OntologyProvider:183 - Loading
>>         sitemap ontology from
>>         >>>>>> URI:
>>         https://github.com/AtomGraph/Processor/blob/develop/examples/wikidata#
>>         >>>>>> 13:21:46,398 DEBUG TemplateMatcher:245 - Path:
>>         /birthdays matched
>>         >>>>>> Template:
>>         >>>>>>
>>         [<https://github.com/AtomGraph/Processor/blob/develop/examples/wikidata#BirthdaysTemplate>:
>>         >>>>>> "/birthdays", 0.0]
>>         >>>>>> 13:21:46,399 DEBUG TemplateCallProvider:85 - Building
>>         TemplateCall from
>>         >>>>>> Template
>>         >>>>>>
>>         [<https://github.com/AtomGraph/Processor/blob/develop/examples/wikidata#BirthdaysTemplate>:
>>         >>>>>> "/birthdays", 0.0]
>>         >>>>>> 13:21:46,404 DEBUG ResourceBase:79 - Request URI:
>>         >>>>>> http://localhost:8090/birthdays
>>         >>>>>> 13:21:46,434 DEBUG ResourceBase:166 - Constructing
>>         ResourceBase with
>>         >>>>>> matched Template:
>>         >>>>>>
>>         [<https://github.com/AtomGraph/Processor/blob/develop/examples/wikidata#BirthdaysTemplate>:
>>         >>>>>> "/birthdays", 0.0]
>>         >>>>>> 13:21:46,442 DEBUG SPARQLEndpointBase:80 -
>>         Constructing SPARQLEndpointBase
>>         >>>>>> 13:21:46,455 DEBUG SPARQLEndpointBase:158 - Loading
>>         Dataset using
>>         >>>>>> CONSTRUCT/DESCRIBE query: BASE    <http://localhost:8090/>
>>         >>>>>> PREFIX  bd:   <http://www.bigdata.com/rdf#>
>>         >>>>>> PREFIX  wdt:  <http://www.wikidata.org/prop/direct/>
>>         >>>>>> PREFIX  wikibase: <http://wikiba.se/ontology#>
>>         >>>>>>
>>         >>>>>> CONSTRUCT
>>         >>>>>>         {
>>         >>>>>>           ?entity
>>         >>>>>>
>>         <https://github.com/AtomGraph/Processor/blob/develop/examples/wikidata#year>
>>         >>>>>> ?year .
>>         >>>>>>         }
>>         >>>>>> WHERE
>>         >>>>>>         { SELECT  ?entity ?year
>>         >>>>>>           WHERE
>>         >>>>>>             { BIND(month(now()) AS ?nowMonth)
>>         >>>>>>  BIND(day(now()) AS ?nowDay)
>>         >>>>>>               ?entity wdt:P569  ?date
>>         >>>>>>               FILTER ( ( month(?date) = ?nowMonth ) &&
>>         ( day(?date) = ?nowDay ) )
>>         >>>>>>               SERVICE wikibase:label
>>         >>>>>>                 { bd:serviceParam
>>         >>>>>>    wikibase:language  "en"
>>         >>>>>>                 }
>>         >>>>>>  BIND(year(?date) AS ?year)
>>         >>>>>>             }
>>         >>>>>>           LIMIT   100
>>         >>>>>>         }
>>         >>>>>>
>>         >>>>>> 13:21:46,462 DEBUG SPARQLClient:141 - Remote SPARQL
>>         service
>>         >>>>>>
>>         https://query.wikidata.org/bigdata/namespace/wdq/sparql GET
>>         query:
>>         >>>>>> BASE    <http://localhost:8090/>
>>         >>>>>> PREFIX  bd:   <http://www.bigdata.com/rdf#>
>>         >>>>>> PREFIX  wdt:  <http://www.wikidata.org/prop/direct/>
>>
>>         >>>>>> PREFIX  wikibase: <http://wikiba.se/ontology#>
>>         >>>>>>
>>         >>>>>> CONSTRUCT
>>         >>>>>>         {
>>         >>>>>>           ?entity
>>         >>>>>>
>>         <https://github.com/AtomGraph/Processor/blob/develop/examples/wikidata#year>
>>         >>>>>> ?year .
>>         >>>>>>         }
>>         >>>>>> WHERE
>>         >>>>>>         { SELECT  ?entity ?year
>>         >>>>>>           WHERE
>>         >>>>>>             { BIND(month(now()) AS ?nowMonth)
>>         >>>>>>  BIND(day(now()) AS ?nowDay)
>>         >>>>>>               ?entity wdt:P569  ?date
>>         >>>>>>               FILTER ( ( month(?date) = ?nowMonth ) &&
>>         ( day(?date) = ?nowDay ) )
>>         >>>>>>               SERVICE wikibase:label
>>         >>>>>>                 { bd:serviceParam
>>         >>>>>>    wikibase:language  "en"
>>         >>>>>>                 }
>>         >>>>>>  BIND(year(?date) AS ?year)
>>         >>>>>>             }
>>         >>>>>>           LIMIT   100
>>         >>>>>>         }
>>         >>>>>>
>>         >>>>>> 1 * Client out-bound request
>>         >>>>>> 1 > GET
>>         >>>>>>
>>         https://query.wikidata.org/bigdata/namespace/wdq/sparql?query=BASE%20%20%20%20%3Chttp%3A%2F%2Flocalhost%3A8090%2F%3E%0APREFIX%20%20bd%3A%20%20%20%3Chttp%3A%2F%2Fwww.bigdata.com%2Frdf%23%3E%0APREFIX%20%20wdt%3A%20%20%3Chttp%3A%2F%2Fwww.wikidata.org%2Fprop%2Fdirect%2F%3E%0APREFIX%20%20wikibase%3A%20%3Chttp%3A%2F%2Fwikiba.se%2Fontology%23%3E%0A%0ACONSTRUCT%20%0A%20%20%7B%20%0A%20%20%20%20%3Fentity%20%3Chttps%3A%2F%2Fgithub.com%2FAtomGraph%2FProcessor%2Fblob%2Fdevelop%2Fexamples%2Fwikidata%23year%3E%20%3Fyear%20.%0A%20%20%7D%0AWHERE%0A%20%20%7B%20SELECT%20%20%3Fentity%20%3Fyear%0A%20%20%20%20WHERE%0A%20%20%20%20%20%20%7B%20BIND%28month%28now%28%29%29%20AS%20%3FnowMonth%29%0A%20%20%20%20%20%20%20%20BIND%28day%28now%28%29%29%20AS%20%3FnowDay%29%0A%20%20%20%20%20%20%20%20%3Fentity%20%20wdt%3AP569%20%20%3Fdate%0A%20%20%20%20%20%20%20%20FILTER%20%28%20%28%20month%28%3Fdate%29%20%3D%20%3FnowMonth%20%29%20%26%26%20%28%20day%28%3Fdate%29%20%3D%20%3FnowDay%20%29%20%29%0A%20%20%20%20%20%20%20%20SERVICE%20wikibase%3Alabel%0A%20%20%20%20%20%20%20%20%20%20%7B%20bd%3AserviceParam%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wikibase%3Alanguage%20%20%22en%22%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20BIND%28year%28%3Fdate%29%20AS%20%3Fyear%29%0A%20%20%20%20%20%20%7D%0A%20%20%20%20LIMIT%20%20%20100%0A%20%20%7D%0A
>>         >>>>>> 1 > Accept:
>>         application/n-quads,application/rdf+thrift,text/trig
>>         >>>>>> 18-Sep-2019 13:22:06.781 SEVERE [http-apr-8080-exec-1]
>>         >>>>>>
>>         com.sun.jersey.spi.container.ContainerResponse.mapMappableContainerException
>>         >>>>>> The RuntimeException could not be mapped to a
>>         response, re-throwing to
>>         >>>>>> the HTTP container
>>         >>>>>> com.sun.jersey.api.client.ClientHandlerException:
>>         >>>>>> java.net.UnknownHostException: query.wikidata.org
>>         <http://query.wikidata.org>
>>         >>>>>>               at
>>         >>>>>>
>>         com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:155)
>>         >>>>>>               at
>>         >>>>>>
>>         com.sun.jersey.api.client.filter.LoggingFilter.handle(LoggingFilter.java:217)
>>         >>>>>>               at
>>         com.sun.jersey.api.client.Client.handle(Client.java:652)
>>         >>>>>>               at
>>         >>>>>>
>>         com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
>>         >>>>>>               at
>>         >>>>>>
>>         com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
>>         >>>>>>               at
>>         >>>>>>
>>         com.sun.jersey.api.client.WebResource$Builder.get(WebResource.java:509)
>>         >>>>>>               at
>>         >>>>>>
>>         com.atomgraph.core.client.SPARQLClient.get(SPARQLClient.java:145)
>>         >>>>>>               at
>>         >>>>>>
>>         com.atomgraph.core.client.SPARQLClient.query(SPARQLClient.java:173)
>>         >>>>>>               at
>>         >>>>>>
>>         com.atomgraph.core.model.impl.remote.SPARQLEndpointBase.loadDataset(SPARQLEndpointBase.java:77)
>>         >>>>>>               at
>>         >>>>>>
>>         com.atomgraph.core.model.impl.SPARQLEndpointBase.getResponseBuilder(SPARQLEndpointBase.java:159)
>>         >>>>>>               at
>>         >>>>>>
>>         com.atomgraph.core.model.impl.SPARQLEndpointBase.get(SPARQLEndpointBase.java:88)
>>         >>>>>>               at
>>         >>>>>>
>>         com.atomgraph.core.model.impl.QueriedResourceBase.describe(QueriedResourceBase.java:107)
>>         >>>>>>               at
>>         >>>>>>
>>         com.atomgraph.core.model.impl.QueriedResourceBase.get(QueriedResourceBase.java:122)
>>         >>>>>>               at
>>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         >>>>>>               at
>>         >>>>>>
>>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>         >>>>>>               at
>>         >>>>>>
>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>         >>>>>>               at
>>         java.lang.reflect.Method.invoke(Method.java:498)
>>         >>>>>>               at
>>         >>>>>>
>>         com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
>>         >>>>>>               at
>>         >>>>>>
>>         com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205)
>>         >>>>>>               at
>>         >>>>>>
>>         com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
>>         >>>>>>               at
>>         >>>>>>
>>         com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
>>         >>>>>>               at
>>         >>>>>>
>>         com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:137)
>>         >>>>>>               at
>>         >>>>>>
>>         com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
>>         >>>>>>               at
>>         >>>>>>
>>         com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
>>         >>>>
>>

-- 
Lingsoft - 30 years of Leading Language Management

www.lingsoft.fi

Speech Applications - Language Management - Translation - Reader's and Writer's Tools - Text Tools - E-books and M-books

Mikael Pesonen
System Engineer

e-mail: mikael.pesonen@lingsoft.fi
Tel. +358 2 279 3300

Time zone: GMT+2

Helsinki Office
Eteläranta 10
FI-00130 Helsinki
FINLAND

Turku Office
Kauppiaskatu 5 A
FI-20100 Turku
FINLAND

Received on Wednesday, 2 October 2019 10:19:01 UTC