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

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>
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> 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 ] -> 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 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 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://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 in
> > docker-compose.yml. In your case it would be
> > PROXY_SET_HOST=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> wrote:
> >>>> Okay so it's possible to have servers on same name? We have public
> >>>> server resource.lingsoft.fi serving content, and
> >>>> another server, say 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? 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/<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> 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> 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
> %252F286c384d-cd5c-4887-9b85-94c0c147f709>
> >>>>>> ?p ?o .
> >>>>>>       }
> >>>>>> FROM <http://www.lingsoft.fi/graph/common_insight/>
> >>>>>> WHERE
> >>>>>>       {
> >>>>>> <https%253A%252F%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> 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> 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
> >>>>>>               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
> .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
> >>>>>>               at
> >>>>>> 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> 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
> >>>>

Received on Tuesday, 1 October 2019 15:20:31 UTC