- From: Mikael Pesonen <mikael.pesonen@lingsoft.fi>
- Date: Wed, 2 Oct 2019 12:14:20 +0300
- To: Martynas Jusevičius <martynas@atomgraph.com>
- Cc: public-declarative-apps@w3.org
- Message-ID: <f1624206-6aa1-e2f4-27da-f1d10daa2e5c@lingsoft.fi>
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) > >>>>>> at > >>>>>> > com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) > >>>>>> at > >>>>>> > com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) > >>>>>> at > >>>>>> > com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542) > >>>>>> at > >>>>>> > com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473) > >>>>>> at > >>>>>> > com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419) > >>>>>> at > >>>>>> > com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409) > >>>>>> at > >>>>>> > com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409) > >>>>>> at > >>>>>> > com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558) > >>>>>> at > >>>>>> > com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733) > >>>>>> at > javax.servlet.http.HttpServlet.service(HttpServlet.java:729) > >>>>>> at > >>>>>> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) > >>>>>> at > >>>>>> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) > >>>>>> at > >>>>>> > org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) > >>>>>> at > >>>>>> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) > >>>>>> at > >>>>>> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) > >>>>>> at > >>>>>> > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) > >>>>>> at > >>>>>> > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94) > >>>>>> at > >>>>>> > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496) > >>>>>> at > >>>>>> > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) > >>>>>> at > >>>>>> > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) > >>>>>> at > >>>>>> > org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620) > >>>>>> at > >>>>>> > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) > >>>>>> at > >>>>>> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502) > >>>>>> at > >>>>>> > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1156) > >>>>>> at > >>>>>> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684) > >>>>>> at > >>>>>> org.apache.tomcat.util.net > <http://org.apache.tomcat.util.net>.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:2464) > >>>>>> at > >>>>>> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > >>>>>> at > >>>>>> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > >>>>>> at > >>>>>> > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) > >>>>>> at java.lang.Thread.run(Thread.java:748) > >>>>>> Caused by: java.net.UnknownHostException: > query.wikidata.org <http://query.wikidata.org> > >>>>>> at > >>>>>> java.net > <http://java.net>.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184) > >>>>>> at > java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) > >>>>>> at java.net.Socket.connect(Socket.java:589) > >>>>>> at > sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:673) > >>>>>> at > >>>>>> > sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173) > >>>>>> at > sun.net.NetworkClient.doConnect(NetworkClient.java:180) > >>>>>> at > sun.net.www.http.HttpClient.openServer(HttpClient.java:463) > >>>>>> at > sun.net.www.http.HttpClient.openServer(HttpClient.java:558) > >>>>>> at > >>>>>> > sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264) > >>>>>> at > sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367) > >>>>>> at > >>>>>> > sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191) > >>>>>> at > >>>>>> > sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1156) > >>>>>> at > >>>>>> > sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1050) > >>>>>> at > >>>>>> > sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177) > >>>>>> at > >>>>>> > sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1564) > >>>>>> at > >>>>>> > sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492) > >>>>>> at > >>>>>> > java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480) > >>>>>> at > >>>>>> > sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:347) > >>>>>> at > >>>>>> > com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:253) > >>>>>> at > >>>>>> > com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:153) > >>>>>> ... 53 more > >>>>>> > >>>>>> > >>>>>> > >>>>>> On 18/09/2019 16:12, Martynas Jusevičius wrote: > >>>>>> > >>>>>> Oops, I pointed you to the wrong mapping file - one that is > already > >>>>>> built-in. Sorry about that. > >>>>>> > >>>>>> This is the location-mapping.n3 for the Wikidata example: > >>>>>> > https://raw.githubusercontent.com/AtomGraph/Processor/master/examples/location-mapping.n3 > >>>>>> > >>>>>> I think if you use this one, all should be good. Fingers > crossed. > >>>>>> > >>>>>> On Wed, Sep 18, 2019 at 3:09 PM Mikael Pesonen > >>>>>> <mikael.pesonen@lingsoft.fi > <mailto:mikael.pesonen@lingsoft.fi>> wrote: > >>>>>> > >>>>>> Mapping file was indeed html... So now got a bit further: > >>>>>> > >>>>>> 18-Sep-2019 13:06:13.088 WARNING [localhost-startStop-1] > >>>>>> > org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom > >>>>>> Creation of SecureRandom instance for session ID generation > using > >>>>>> [SHA1PRNG] took [285,439] milliseconds. > >>>>>> 18-Sep-2019 13:06:13.122 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 > >>>>>> 286,901 ms > >>>>>> 18-Sep-2019 13:06:13.125 INFO [main] > >>>>>> org.apache.coyote.AbstractProtocol.start Starting > ProtocolHandler > >>>>>> ["http-apr-8080"] > >>>>>> 18-Sep-2019 13:06:13.134 INFO [main] > >>>>>> org.apache.coyote.AbstractProtocol.start Starting > ProtocolHandler > >>>>>> ["ajp-apr-8009"] > >>>>>> 18-Sep-2019 13:06:13.137 INFO [main] > >>>>>> org.apache.catalina.startup.Catalina.start Server startup > in 286945 ms > >>>>>> 18-Sep-2019 13:06:13.280 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:06:13,435 DEBUG Jena:189 - Jena initialization > >>>>>> 13:06:13,603 DEBUG FileManager:157 - Add location: LocatorFile > >>>>>> 13:06:13,604 DEBUG FileManager:157 - Add location: > ClassLoaderLocator > >>>>>> 13:06:13,607 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:06:13,607 DEBUG FileManager:157 - Add location: LocatorFile > >>>>>> 13:06:13,608 DEBUG FileManager:157 - Add location: LocatorURL > >>>>>> 13:06:13,609 DEBUG FileManager:157 - Add location: > ClassLoaderLocator > >>>>>> 13:06:13,614 DEBUG StreamManager:142 - Found: > location-mapping.n3 > >>>>>> (ClassLoaderLocator) > >>>>>> 13:06:13,993 DEBUG JenaIOEnvironment:119 - Mapping: > >>>>>> http://www.w3.org/2011/http => com/atomgraph/processor/http.owl > >>>>>> 13:06:13,993 DEBUG JenaIOEnvironment:119 - Mapping: > >>>>>> https://www.w3.org/ns/ldt# => com/atomgraph/processor/ldt.ttl > >>>>>> 13:06:13,994 DEBUG JenaIOEnvironment:119 - Mapping: > >>>>>> http://rdfs.org/ns/void# => com/atomgraph/processor/void.owl > >>>>>> 13:06:13,994 DEBUG JenaIOEnvironment:119 - Mapping: > >>>>>> http://rdfs.org/ns/void# => com/atomgraph/processor/void.owl > >>>>>> 13:06:13,995 DEBUG JenaIOEnvironment:119 - Mapping: > >>>>>> http://xmlns.com/foaf/0.1/ => com/atomgraph/processor/foaf.owl > >>>>>> 13:06:13,995 DEBUG JenaIOEnvironment:119 - Mapping: > >>>>>> http://xmlns.com/foaf/0.1/ => com/atomgraph/processor/foaf.owl > >>>>>> 13:06:13,995 DEBUG JenaIOEnvironment:119 - Mapping: > >>>>>> http://www.w3.org/2011/http-statusCodes => > >>>>>> com/atomgraph/processor/http-statusCodes.rdf > >>>>>> 13:06:13,996 DEBUG JenaIOEnvironment:119 - Mapping: > >>>>>> http://spinrdf.org/spin# => etc/spin.ttl > >>>>>> 13:06:13,997 DEBUG JenaIOEnvironment:119 - Mapping: > >>>>>> https://www.w3.org/ns/ldt/core/templates# => > com/atomgraph/processor/ct.ttl > >>>>>> 13:06:13,997 DEBUG JenaIOEnvironment:119 - Mapping: > >>>>>> http://www.w3.org/2011/http => com/atomgraph/processor/http.owl > >>>>>> 13:06:13,998 DEBUG JenaIOEnvironment:119 - Mapping: > >>>>>> http://www.w3.org/2011/http-statusCodes => > >>>>>> com/atomgraph/processor/http-statusCodes.rdf > >>>>>> 13:06:13,998 DEBUG JenaIOEnvironment:119 - Mapping: > >>>>>> https://www.w3.org/ns/ldt/core/templates# => > com/atomgraph/processor/ct.ttl > >>>> > -- 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 09:14:54 UTC