The root of is that the command line --namegraph does not make sure URIs are resolved and it looks like it used to.

Oddly, if you don't use PREFIX :<.> it is hard to tell as the base URI is used to create table items and so relative URIs reappear.

Doing

SELECT ?s ?p ?o ?g (str(?g) As ?G) {...}

shows the URI string without abbreviation.

    Andy

On 10/07/18 13:06, ajs6f wrote:
Some RDF serializations, like Turtle, can declare a base for relative URIs.
Since you are using Turtle (based on the .ttl extensions shown in your 
filenames) perhaps this can serve you:

https://www.w3.org/TR/turtle/#relative-iri

ajs6f

On Jul 9, 2018, at 5:51 PM, Michal Rohacek <[email protected]> wrote:

Hi there,
thank you for your quick support!

I changed all the URIs to absolute URIs (full file path in format
"file:///C:/path/to/file/ds-ng-1.ttl") and now it works - in windows cmd,
as well as in Java code.

My question is, is this the only way for me to execute this kind of
queries, or is there a solution which makes me able to use the "relative"
URIs in cases like this one? Is there any fix to force the program to
expand the URI or whatever - simply, for me, to be able to use these
features like it is being used in the tutorial?

Just because this :
sparql.bat --graph dft.ttl --namedgraph 1.ttl --namedgraph 2.ttl --query
q.rq

is much more compact and tidy like this one:
sparql.bat --graph dft.ttl --namedgraph
file:///C:/very/long/and/awful/path/to/file/1.ttl --namedgraph
file:///C:/very/long/and/awful/path/to/file/2.ttl --query q.rq

Thank you in advance.
Michal

2018-07-09 22:42 GMT+02:00 Andy Seaborne <[email protected]>:

Michal,

It looks like the use of "--namedgraph" isn't expanding the URI

In "--namedgraph ds-ng-1.ttl", "ds-ng-1.ttl" isn't an absolute URI and it
isn't being expanded. If it had, it would be file:///whatever/ds-ng-1.ttl
and because <.> is really <file:///whatever/> it would be abbreviated.

A work aroung is to use file://$PWD/ds-ng-1.ttl (Linux, MacOS) or the
Windows equivalent.

When a query is parsed,  GRAPH :ds-ng-1.ttl is expanded.

You might find it helpful to try the queries without "PREFIX  : <.>" so
the full URIs are printed.

If you get FILE in the --namedgraph FILE to be the absolute URI (same
characters) then the abbreviation should work.

    Andy


On 08/07/18 22:57, michal.r.256 wrote:

Good evening,
I am trying to get through the tutorial (I am beginner) and I am
experiencing unexpected behavior of these queries (even if Im copypasting
the tutorials):
Here is the link to referenced tutorial page:
https://jena.apache.org/tutorials/sparql_datasets.html

First attempt, this query works fine:

PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX : <.>

SELECT *
{ ?s ?p ?o }

Results:

----------------------------------------------------------------------
| s            | p       | o                                         |
======================================================================
| :ds-ng-2.ttl | dc:date | "2005-09-22T05:53:05+01:00"^^xsd:dateTime |
| :ds-ng-1.ttl | dc:date | "2005-07-14T03:18:56+01:00"^^xsd:dateTime |
----------------------------------------------------------------------

Second, this works pretty good too:

PREFIX  xsd:    <http://www.w3.org/2001/XMLSchema#>
PREFIX  dc:     <http://purl.org/dc/elements/1.1/>
PREFIX  :       <.>

SELECT *
{
     { ?s ?p ?o } UNION { GRAPH ?g { ?s ?p ?o } }
}

Results not absolutely the same (the referenced named graph names are not
exactly the same in the first and the third column (the colon missing and
the <> instead), and I was not able to change this, although I was trying
pretty hard as I thought that there could be the cause of my issue)

------------------------------------------------------------
---------------------------------
| s            | p        | o                                         |
g                   |
============================================================
=================================
| :ds-ng-2.ttl | dc:date  | "2005-09-22T05:53:05+01:00"^^xsd:dateTime |
                   |
| :ds-ng-1.ttl | dc:date  | "2005-07-14T03:18:56+01:00"^^xsd:dateTime |
                   |
| _:b0         | dc:title | "Harry Potter and the Chamber of Secrets" |
<ds-ng-1.ttl> |
| _:b1         | dc:title | "Harry Potter and the Philospher's Stone" |
<ds-ng-1.ttl> |
| _:b2         | dc:title | "Harry Potter and the Sorcerer's Stone"   |
<ds-ng-2.ttl> |
| _:b3         | dc:title | "Harry Potter and the Chamber of Secrets" |
<ds-ng-2.ttl> |
------------------------------------------------------------
---------------------------------

Now, this query is the first that doesnt work at all:

PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX : <.>

SELECT ?title
{
   GRAPH :ds-ng-2.ttl
     { ?b dc:title ?title }
}

Results are blank all the time:
---------
| title |
=========
---------

Same result with this query:

PREFIX  xsd:    <http://www.w3.org/2001/XMLSchema#>
PREFIX  dc:     <http://purl.org/dc/elements/1.1/>
PREFIX  :       <.>

SELECT ?date ?title
{
   ?g dc:date ?date . FILTER (?date > "2005-08-01T00:00:00Z"^^xsd:dateTime
)
   GRAPH ?g
       { ?b dc:title ?title }
}

I have tried many things I googled out (but no exact solution for this
problem) and nothing worked, I have no idea what could be wrong.

Thanks for every support.



Reply via email to