You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Mahmood Ahmad <ma...@telematicus.com> on 2016/11/03 12:34:01 UTC

Adding UUIDs to SPARQL query results

Hi,

[Advanced apologies if this question is out of scope of this list, and advise me the correct forum.]

I am currently using Apache Jena Fuseki 2.4.0 (Windows 10) to upload my project RDF triples into a big soup.

Using the SPARQL CONSTRUCT queries, I am able to query sub-graphs from the big soup and the result is in Turtle format. However, I am looking to add a UUID to every result of my query.

Is it possible to get this done within my CONSTRUCT query, and how? If not, please can you suggest some alternative approaches?

Thanks and regards
Mahmood

====================
Dr Mahmood Ahmad
KTP Associate

School of Computer Science
University of Manchester
and
Telematicus
Newport Street
Macclesfield
SK11 6QJ
United Kingdom

E: Mahmood.Ahmad@telematicus.com<ma...@telematicus.com>
E: Mahmood.ahmad@manchester.ac.uk<ma...@manchester.ac.uk>



RE: Adding UUIDs to SPARQL query results

Posted by Mahmood Ahmad <ma...@telematicus.com>.
It is in fact the case of type-casting, ?snew is bound after type-casting of ?olds is carried properly.

Thanks ever so much for you help.

Best regards
Mahmood

-----Original Message-----
From: Martynas Jusevičius [mailto:martynas@graphity.org] 
Sent: 03 November 2016 16:59
To: users@jena.apache.org
Subject: Re: Adding UUIDs to SPARQL query results

Well, it means your BIND() expression is wrong. Try to deconstruct the string operations step by step.

Type casting seems to be missing: use STR(?olds) to turn string into URI, and in the end use URI(CONCAT(...)) to turn string into URI.

On Thu, Nov 3, 2016 at 5:54 PM, Mahmood Ahmad <ma...@telematicus.com> wrote:
> Thanks. The snew column is empty as a result of the SELECT statement, so ?snew is not bound.
>
> Any remedy for this?
>
> -----Original Message-----
> From: Martynas Jusevičius [mailto:martynas@graphity.org]
> Sent: 03 November 2016 16:45
> To: users@jena.apache.org
> Subject: Re: Adding UUIDs to SPARQL query results
>
> Try a SELECT first and see what values you get:
>
> SELECT *
> WHERE
>  {
>    ?olds a owl:NamedIndividual, skos:Concept ;
>       ?p ?o .
>    BIND(CONCAT(CONCAT(STRBEFORE(?olds, "#"), "#"), STRUUID()) AS ?snew) .
> }
>
> If ?snew is not bound to any values, it will not generate any triples in CONSTRUCT.
>
> On Thu, Nov 3, 2016 at 5:42 PM, Mahmood Ahmad <ma...@telematicus.com> wrote:
>> Thanks, but this wouldn't generate any results either:
>>
>>  CONSTRUCT {
>>    ?snew a owl:NamedIndividual, skos:Concept ;
>>      ?p ?o .
>>  }
>>  WHERE
>>  {
>>    ?olds a owl:NamedIndividual, skos:Concept ;
>>       ?p ?o .
>>    BIND(CONCAT(CONCAT(STRBEFORE(?olds, "#"), "#"), STRUUID()) AS ?snew) .
>> }
>>
>> -----Original Message-----
>> From: Martynas Jusevičius [mailto:martynas@graphity.org]
>> Sent: 03 November 2016 16:32
>> To: users@jena.apache.org
>> Subject: Re: Adding UUIDs to SPARQL query results
>>
>> You have to use ?snew variable instead of ?olds in the CONSTRUCT template, otherwise it will have no effect:
>>
>> CONSTRUCT {
>>   ?snew a owl:NamedIndividual, skos:Concept ;
>>     ?p ?o .
>> }
>>
>> On Thu, Nov 3, 2016 at 5:28 PM, Mahmood Ahmad <ma...@telematicus.com> wrote:
>>> Many thanks. I have been trying this but seem to miss some trick:
>>>
>>> From my CONSTRUCT query:
>>>
>>> PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX xsd:
>>> <http://www.w3.org/2001/XMLSchema#>
>>> PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
>>> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
>>> prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
>>> PREFIX www: <http://xyz.com#>
>>>
>>> CONSTRUCT {
>>>   ?s a owl:NamedIndividual, skos:Concept ;
>>>     ?p ?o .
>>> }
>>> WHERE
>>> {
>>>   ?s a owl:NamedIndividual, skos:Concept ;
>>>      ?p ?o .
>>> }
>>>
>>> I get results of the following type (summarised because of file size).
>>> www:Some_Identifier
>>>         a                skos:Concept , owl:NamedIndividual ;
>>>         ?p ?o .
>>>
>>> I need to replace 'Some_Identifier' with a UUID generated by the STRUUID() function. For this purpose I append the bind statement in a new CONSTRUCT query as follow:
>>>
>>> CONSTRUCT {
>>>   ?olds a owl:NamedIndividual, skos:Concept ;
>>>     ?p ?o .
>>> }
>>> WHERE
>>> {
>>>   ?olds a owl:NamedIndividual, skos:Concept ;
>>>      ?p ?o .
>>>   BIND(CONCAT(CONCAT(STRBEFORE(?olds, "#"), "#"), STRUUID()) AS ?snew) .
>>> }
>>>
>>>
>>> But this does not change anything. It looks as if I expect the variable ?olds as a string whereas it is not. How can then I use the BIND() function correctly to obtain this?
>>>
>>> One way may be to use STR(www:) and concatenate it with STRUUID(), but how to place this in the sub-graph?
>>>
>>> Any idea, I'll appreciate.
>>>
>>> Regards
>>> Mahmood
>>>
>>> -----Original Message-----
>>> From: Martynas Jusevičius [mailto:martynas@graphity.org]
>>> Sent: 03 November 2016 12:36
>>> To: users@jena.apache.org
>>> Subject: Re: Adding UUIDs to SPARQL query results
>>>
>>> Use BIND() with UUID() or STRUUID().
>>>
>>> https://www.w3.org/TR/2012/WD-sparql11-query-20120724/#func-uuid
>>> https://www.w3.org/TR/2012/WD-sparql11-query-20120724/#func-struuid
>>>
>>> On Thu, Nov 3, 2016 at 1:34 PM, Mahmood Ahmad <ma...@telematicus.com> wrote:
>>>> Hi,
>>>>
>>>> [Advanced apologies if this question is out of scope of this list, 
>>>> and advise me the correct forum.]
>>>>
>>>> I am currently using Apache Jena Fuseki 2.4.0 (Windows 10) to upload my project RDF triples into a big soup.
>>>>
>>>> Using the SPARQL CONSTRUCT queries, I am able to query sub-graphs from the big soup and the result is in Turtle format. However, I am looking to add a UUID to every result of my query.
>>>>
>>>> Is it possible to get this done within my CONSTRUCT query, and how? If not, please can you suggest some alternative approaches?
>>>>
>>>> Thanks and regards
>>>> Mahmood
>>>>
>>>> ====================
>>>> Dr Mahmood Ahmad
>>>> KTP Associate
>>>>
>>>> School of Computer Science
>>>> University of Manchester
>>>> and
>>>> Telematicus
>>>> Newport Street
>>>> Macclesfield
>>>> SK11 6QJ
>>>> United Kingdom
>>>>
>>>> E:
>>>> Mahmood.Ahmad@telematicus.com<ma...@telematicus.com>
>>>> E:
>>>> Mahmood.ahmad@manchester.ac.uk<mailto:Mahmood.ahmad@manchester.ac.u
>>>> k
>>>> >
>>>>
>>>>

Re: Adding UUIDs to SPARQL query results

Posted by Martynas Jusevičius <ma...@graphity.org>.
Well, it means your BIND() expression is wrong. Try to deconstruct the
string operations step by step.

Type casting seems to be missing: use STR(?olds) to turn string into
URI, and in the end use URI(CONCAT(...)) to turn string into URI.

On Thu, Nov 3, 2016 at 5:54 PM, Mahmood Ahmad
<ma...@telematicus.com> wrote:
> Thanks. The snew column is empty as a result of the SELECT statement, so ?snew is not bound.
>
> Any remedy for this?
>
> -----Original Message-----
> From: Martynas Jusevičius [mailto:martynas@graphity.org]
> Sent: 03 November 2016 16:45
> To: users@jena.apache.org
> Subject: Re: Adding UUIDs to SPARQL query results
>
> Try a SELECT first and see what values you get:
>
> SELECT *
> WHERE
>  {
>    ?olds a owl:NamedIndividual, skos:Concept ;
>       ?p ?o .
>    BIND(CONCAT(CONCAT(STRBEFORE(?olds, "#"), "#"), STRUUID()) AS ?snew) .
> }
>
> If ?snew is not bound to any values, it will not generate any triples in CONSTRUCT.
>
> On Thu, Nov 3, 2016 at 5:42 PM, Mahmood Ahmad <ma...@telematicus.com> wrote:
>> Thanks, but this wouldn't generate any results either:
>>
>>  CONSTRUCT {
>>    ?snew a owl:NamedIndividual, skos:Concept ;
>>      ?p ?o .
>>  }
>>  WHERE
>>  {
>>    ?olds a owl:NamedIndividual, skos:Concept ;
>>       ?p ?o .
>>    BIND(CONCAT(CONCAT(STRBEFORE(?olds, "#"), "#"), STRUUID()) AS ?snew) .
>> }
>>
>> -----Original Message-----
>> From: Martynas Jusevičius [mailto:martynas@graphity.org]
>> Sent: 03 November 2016 16:32
>> To: users@jena.apache.org
>> Subject: Re: Adding UUIDs to SPARQL query results
>>
>> You have to use ?snew variable instead of ?olds in the CONSTRUCT template, otherwise it will have no effect:
>>
>> CONSTRUCT {
>>   ?snew a owl:NamedIndividual, skos:Concept ;
>>     ?p ?o .
>> }
>>
>> On Thu, Nov 3, 2016 at 5:28 PM, Mahmood Ahmad <ma...@telematicus.com> wrote:
>>> Many thanks. I have been trying this but seem to miss some trick:
>>>
>>> From my CONSTRUCT query:
>>>
>>> PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX xsd:
>>> <http://www.w3.org/2001/XMLSchema#>
>>> PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
>>> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
>>> prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
>>> PREFIX www: <http://xyz.com#>
>>>
>>> CONSTRUCT {
>>>   ?s a owl:NamedIndividual, skos:Concept ;
>>>     ?p ?o .
>>> }
>>> WHERE
>>> {
>>>   ?s a owl:NamedIndividual, skos:Concept ;
>>>      ?p ?o .
>>> }
>>>
>>> I get results of the following type (summarised because of file size).
>>> www:Some_Identifier
>>>         a                skos:Concept , owl:NamedIndividual ;
>>>         ?p ?o .
>>>
>>> I need to replace 'Some_Identifier' with a UUID generated by the STRUUID() function. For this purpose I append the bind statement in a new CONSTRUCT query as follow:
>>>
>>> CONSTRUCT {
>>>   ?olds a owl:NamedIndividual, skos:Concept ;
>>>     ?p ?o .
>>> }
>>> WHERE
>>> {
>>>   ?olds a owl:NamedIndividual, skos:Concept ;
>>>      ?p ?o .
>>>   BIND(CONCAT(CONCAT(STRBEFORE(?olds, "#"), "#"), STRUUID()) AS ?snew) .
>>> }
>>>
>>>
>>> But this does not change anything. It looks as if I expect the variable ?olds as a string whereas it is not. How can then I use the BIND() function correctly to obtain this?
>>>
>>> One way may be to use STR(www:) and concatenate it with STRUUID(), but how to place this in the sub-graph?
>>>
>>> Any idea, I'll appreciate.
>>>
>>> Regards
>>> Mahmood
>>>
>>> -----Original Message-----
>>> From: Martynas Jusevičius [mailto:martynas@graphity.org]
>>> Sent: 03 November 2016 12:36
>>> To: users@jena.apache.org
>>> Subject: Re: Adding UUIDs to SPARQL query results
>>>
>>> Use BIND() with UUID() or STRUUID().
>>>
>>> https://www.w3.org/TR/2012/WD-sparql11-query-20120724/#func-uuid
>>> https://www.w3.org/TR/2012/WD-sparql11-query-20120724/#func-struuid
>>>
>>> On Thu, Nov 3, 2016 at 1:34 PM, Mahmood Ahmad <ma...@telematicus.com> wrote:
>>>> Hi,
>>>>
>>>> [Advanced apologies if this question is out of scope of this list,
>>>> and advise me the correct forum.]
>>>>
>>>> I am currently using Apache Jena Fuseki 2.4.0 (Windows 10) to upload my project RDF triples into a big soup.
>>>>
>>>> Using the SPARQL CONSTRUCT queries, I am able to query sub-graphs from the big soup and the result is in Turtle format. However, I am looking to add a UUID to every result of my query.
>>>>
>>>> Is it possible to get this done within my CONSTRUCT query, and how? If not, please can you suggest some alternative approaches?
>>>>
>>>> Thanks and regards
>>>> Mahmood
>>>>
>>>> ====================
>>>> Dr Mahmood Ahmad
>>>> KTP Associate
>>>>
>>>> School of Computer Science
>>>> University of Manchester
>>>> and
>>>> Telematicus
>>>> Newport Street
>>>> Macclesfield
>>>> SK11 6QJ
>>>> United Kingdom
>>>>
>>>> E:
>>>> Mahmood.Ahmad@telematicus.com<ma...@telematicus.com>
>>>> E:
>>>> Mahmood.ahmad@manchester.ac.uk<mailto:Mahmood.ahmad@manchester.ac.uk
>>>> >
>>>>
>>>>

RE: Adding UUIDs to SPARQL query results

Posted by Mahmood Ahmad <ma...@telematicus.com>.
Thanks. The snew column is empty as a result of the SELECT statement, so ?snew is not bound.

Any remedy for this?

-----Original Message-----
From: Martynas Jusevičius [mailto:martynas@graphity.org] 
Sent: 03 November 2016 16:45
To: users@jena.apache.org
Subject: Re: Adding UUIDs to SPARQL query results

Try a SELECT first and see what values you get:

SELECT *
WHERE
 {
   ?olds a owl:NamedIndividual, skos:Concept ;
      ?p ?o .
   BIND(CONCAT(CONCAT(STRBEFORE(?olds, "#"), "#"), STRUUID()) AS ?snew) .
}

If ?snew is not bound to any values, it will not generate any triples in CONSTRUCT.

On Thu, Nov 3, 2016 at 5:42 PM, Mahmood Ahmad <ma...@telematicus.com> wrote:
> Thanks, but this wouldn't generate any results either:
>
>  CONSTRUCT {
>    ?snew a owl:NamedIndividual, skos:Concept ;
>      ?p ?o .
>  }
>  WHERE
>  {
>    ?olds a owl:NamedIndividual, skos:Concept ;
>       ?p ?o .
>    BIND(CONCAT(CONCAT(STRBEFORE(?olds, "#"), "#"), STRUUID()) AS ?snew) .
> }
>
> -----Original Message-----
> From: Martynas Jusevičius [mailto:martynas@graphity.org]
> Sent: 03 November 2016 16:32
> To: users@jena.apache.org
> Subject: Re: Adding UUIDs to SPARQL query results
>
> You have to use ?snew variable instead of ?olds in the CONSTRUCT template, otherwise it will have no effect:
>
> CONSTRUCT {
>   ?snew a owl:NamedIndividual, skos:Concept ;
>     ?p ?o .
> }
>
> On Thu, Nov 3, 2016 at 5:28 PM, Mahmood Ahmad <ma...@telematicus.com> wrote:
>> Many thanks. I have been trying this but seem to miss some trick:
>>
>> From my CONSTRUCT query:
>>
>> PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX xsd:
>> <http://www.w3.org/2001/XMLSchema#>
>> PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
>> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
>> prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
>> PREFIX www: <http://xyz.com#>
>>
>> CONSTRUCT {
>>   ?s a owl:NamedIndividual, skos:Concept ;
>>     ?p ?o .
>> }
>> WHERE
>> {
>>   ?s a owl:NamedIndividual, skos:Concept ;
>>      ?p ?o .
>> }
>>
>> I get results of the following type (summarised because of file size).
>> www:Some_Identifier
>>         a                skos:Concept , owl:NamedIndividual ;
>>         ?p ?o .
>>
>> I need to replace 'Some_Identifier' with a UUID generated by the STRUUID() function. For this purpose I append the bind statement in a new CONSTRUCT query as follow:
>>
>> CONSTRUCT {
>>   ?olds a owl:NamedIndividual, skos:Concept ;
>>     ?p ?o .
>> }
>> WHERE
>> {
>>   ?olds a owl:NamedIndividual, skos:Concept ;
>>      ?p ?o .
>>   BIND(CONCAT(CONCAT(STRBEFORE(?olds, "#"), "#"), STRUUID()) AS ?snew) .
>> }
>>
>>
>> But this does not change anything. It looks as if I expect the variable ?olds as a string whereas it is not. How can then I use the BIND() function correctly to obtain this?
>>
>> One way may be to use STR(www:) and concatenate it with STRUUID(), but how to place this in the sub-graph?
>>
>> Any idea, I'll appreciate.
>>
>> Regards
>> Mahmood
>>
>> -----Original Message-----
>> From: Martynas Jusevičius [mailto:martynas@graphity.org]
>> Sent: 03 November 2016 12:36
>> To: users@jena.apache.org
>> Subject: Re: Adding UUIDs to SPARQL query results
>>
>> Use BIND() with UUID() or STRUUID().
>>
>> https://www.w3.org/TR/2012/WD-sparql11-query-20120724/#func-uuid
>> https://www.w3.org/TR/2012/WD-sparql11-query-20120724/#func-struuid
>>
>> On Thu, Nov 3, 2016 at 1:34 PM, Mahmood Ahmad <ma...@telematicus.com> wrote:
>>> Hi,
>>>
>>> [Advanced apologies if this question is out of scope of this list, 
>>> and advise me the correct forum.]
>>>
>>> I am currently using Apache Jena Fuseki 2.4.0 (Windows 10) to upload my project RDF triples into a big soup.
>>>
>>> Using the SPARQL CONSTRUCT queries, I am able to query sub-graphs from the big soup and the result is in Turtle format. However, I am looking to add a UUID to every result of my query.
>>>
>>> Is it possible to get this done within my CONSTRUCT query, and how? If not, please can you suggest some alternative approaches?
>>>
>>> Thanks and regards
>>> Mahmood
>>>
>>> ====================
>>> Dr Mahmood Ahmad
>>> KTP Associate
>>>
>>> School of Computer Science
>>> University of Manchester
>>> and
>>> Telematicus
>>> Newport Street
>>> Macclesfield
>>> SK11 6QJ
>>> United Kingdom
>>>
>>> E:
>>> Mahmood.Ahmad@telematicus.com<ma...@telematicus.com>
>>> E:
>>> Mahmood.ahmad@manchester.ac.uk<mailto:Mahmood.ahmad@manchester.ac.uk
>>> >
>>>
>>>

Re: Adding UUIDs to SPARQL query results

Posted by Martynas Jusevičius <ma...@graphity.org>.
Try a SELECT first and see what values you get:

SELECT *
WHERE
 {
   ?olds a owl:NamedIndividual, skos:Concept ;
      ?p ?o .
   BIND(CONCAT(CONCAT(STRBEFORE(?olds, "#"), "#"), STRUUID()) AS ?snew) .
}

If ?snew is not bound to any values, it will not generate any triples
in CONSTRUCT.

On Thu, Nov 3, 2016 at 5:42 PM, Mahmood Ahmad
<ma...@telematicus.com> wrote:
> Thanks, but this wouldn't generate any results either:
>
>  CONSTRUCT {
>    ?snew a owl:NamedIndividual, skos:Concept ;
>      ?p ?o .
>  }
>  WHERE
>  {
>    ?olds a owl:NamedIndividual, skos:Concept ;
>       ?p ?o .
>    BIND(CONCAT(CONCAT(STRBEFORE(?olds, "#"), "#"), STRUUID()) AS ?snew) .
> }
>
> -----Original Message-----
> From: Martynas Jusevičius [mailto:martynas@graphity.org]
> Sent: 03 November 2016 16:32
> To: users@jena.apache.org
> Subject: Re: Adding UUIDs to SPARQL query results
>
> You have to use ?snew variable instead of ?olds in the CONSTRUCT template, otherwise it will have no effect:
>
> CONSTRUCT {
>   ?snew a owl:NamedIndividual, skos:Concept ;
>     ?p ?o .
> }
>
> On Thu, Nov 3, 2016 at 5:28 PM, Mahmood Ahmad <ma...@telematicus.com> wrote:
>> Many thanks. I have been trying this but seem to miss some trick:
>>
>> From my CONSTRUCT query:
>>
>> PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX xsd:
>> <http://www.w3.org/2001/XMLSchema#>
>> PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
>> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
>> prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
>> PREFIX www: <http://xyz.com#>
>>
>> CONSTRUCT {
>>   ?s a owl:NamedIndividual, skos:Concept ;
>>     ?p ?o .
>> }
>> WHERE
>> {
>>   ?s a owl:NamedIndividual, skos:Concept ;
>>      ?p ?o .
>> }
>>
>> I get results of the following type (summarised because of file size).
>> www:Some_Identifier
>>         a                skos:Concept , owl:NamedIndividual ;
>>         ?p ?o .
>>
>> I need to replace 'Some_Identifier' with a UUID generated by the STRUUID() function. For this purpose I append the bind statement in a new CONSTRUCT query as follow:
>>
>> CONSTRUCT {
>>   ?olds a owl:NamedIndividual, skos:Concept ;
>>     ?p ?o .
>> }
>> WHERE
>> {
>>   ?olds a owl:NamedIndividual, skos:Concept ;
>>      ?p ?o .
>>   BIND(CONCAT(CONCAT(STRBEFORE(?olds, "#"), "#"), STRUUID()) AS ?snew) .
>> }
>>
>>
>> But this does not change anything. It looks as if I expect the variable ?olds as a string whereas it is not. How can then I use the BIND() function correctly to obtain this?
>>
>> One way may be to use STR(www:) and concatenate it with STRUUID(), but how to place this in the sub-graph?
>>
>> Any idea, I'll appreciate.
>>
>> Regards
>> Mahmood
>>
>> -----Original Message-----
>> From: Martynas Jusevičius [mailto:martynas@graphity.org]
>> Sent: 03 November 2016 12:36
>> To: users@jena.apache.org
>> Subject: Re: Adding UUIDs to SPARQL query results
>>
>> Use BIND() with UUID() or STRUUID().
>>
>> https://www.w3.org/TR/2012/WD-sparql11-query-20120724/#func-uuid
>> https://www.w3.org/TR/2012/WD-sparql11-query-20120724/#func-struuid
>>
>> On Thu, Nov 3, 2016 at 1:34 PM, Mahmood Ahmad <ma...@telematicus.com> wrote:
>>> Hi,
>>>
>>> [Advanced apologies if this question is out of scope of this list,
>>> and advise me the correct forum.]
>>>
>>> I am currently using Apache Jena Fuseki 2.4.0 (Windows 10) to upload my project RDF triples into a big soup.
>>>
>>> Using the SPARQL CONSTRUCT queries, I am able to query sub-graphs from the big soup and the result is in Turtle format. However, I am looking to add a UUID to every result of my query.
>>>
>>> Is it possible to get this done within my CONSTRUCT query, and how? If not, please can you suggest some alternative approaches?
>>>
>>> Thanks and regards
>>> Mahmood
>>>
>>> ====================
>>> Dr Mahmood Ahmad
>>> KTP Associate
>>>
>>> School of Computer Science
>>> University of Manchester
>>> and
>>> Telematicus
>>> Newport Street
>>> Macclesfield
>>> SK11 6QJ
>>> United Kingdom
>>>
>>> E:
>>> Mahmood.Ahmad@telematicus.com<ma...@telematicus.com>
>>> E:
>>> Mahmood.ahmad@manchester.ac.uk<ma...@manchester.ac.uk>
>>>
>>>

RE: Adding UUIDs to SPARQL query results

Posted by Mahmood Ahmad <ma...@telematicus.com>.
Thanks, but this wouldn't generate any results either:

 CONSTRUCT {
   ?snew a owl:NamedIndividual, skos:Concept ;
     ?p ?o .
 }
 WHERE
 {
   ?olds a owl:NamedIndividual, skos:Concept ;
      ?p ?o .
   BIND(CONCAT(CONCAT(STRBEFORE(?olds, "#"), "#"), STRUUID()) AS ?snew) .
}

-----Original Message-----
From: Martynas Jusevičius [mailto:martynas@graphity.org] 
Sent: 03 November 2016 16:32
To: users@jena.apache.org
Subject: Re: Adding UUIDs to SPARQL query results

You have to use ?snew variable instead of ?olds in the CONSTRUCT template, otherwise it will have no effect:

CONSTRUCT {
  ?snew a owl:NamedIndividual, skos:Concept ;
    ?p ?o .
}

On Thu, Nov 3, 2016 at 5:28 PM, Mahmood Ahmad <ma...@telematicus.com> wrote:
> Many thanks. I have been trying this but seem to miss some trick:
>
> From my CONSTRUCT query:
>
> PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX xsd: 
> <http://www.w3.org/2001/XMLSchema#>
> PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
> prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
> PREFIX www: <http://xyz.com#>
>
> CONSTRUCT {
>   ?s a owl:NamedIndividual, skos:Concept ;
>     ?p ?o .
> }
> WHERE
> {
>   ?s a owl:NamedIndividual, skos:Concept ;
>      ?p ?o .
> }
>
> I get results of the following type (summarised because of file size).
> www:Some_Identifier
>         a                skos:Concept , owl:NamedIndividual ;
>         ?p ?o .
>
> I need to replace 'Some_Identifier' with a UUID generated by the STRUUID() function. For this purpose I append the bind statement in a new CONSTRUCT query as follow:
>
> CONSTRUCT {
>   ?olds a owl:NamedIndividual, skos:Concept ;
>     ?p ?o .
> }
> WHERE
> {
>   ?olds a owl:NamedIndividual, skos:Concept ;
>      ?p ?o .
>   BIND(CONCAT(CONCAT(STRBEFORE(?olds, "#"), "#"), STRUUID()) AS ?snew) .
> }
>
>
> But this does not change anything. It looks as if I expect the variable ?olds as a string whereas it is not. How can then I use the BIND() function correctly to obtain this?
>
> One way may be to use STR(www:) and concatenate it with STRUUID(), but how to place this in the sub-graph?
>
> Any idea, I'll appreciate.
>
> Regards
> Mahmood
>
> -----Original Message-----
> From: Martynas Jusevičius [mailto:martynas@graphity.org]
> Sent: 03 November 2016 12:36
> To: users@jena.apache.org
> Subject: Re: Adding UUIDs to SPARQL query results
>
> Use BIND() with UUID() or STRUUID().
>
> https://www.w3.org/TR/2012/WD-sparql11-query-20120724/#func-uuid
> https://www.w3.org/TR/2012/WD-sparql11-query-20120724/#func-struuid
>
> On Thu, Nov 3, 2016 at 1:34 PM, Mahmood Ahmad <ma...@telematicus.com> wrote:
>> Hi,
>>
>> [Advanced apologies if this question is out of scope of this list, 
>> and advise me the correct forum.]
>>
>> I am currently using Apache Jena Fuseki 2.4.0 (Windows 10) to upload my project RDF triples into a big soup.
>>
>> Using the SPARQL CONSTRUCT queries, I am able to query sub-graphs from the big soup and the result is in Turtle format. However, I am looking to add a UUID to every result of my query.
>>
>> Is it possible to get this done within my CONSTRUCT query, and how? If not, please can you suggest some alternative approaches?
>>
>> Thanks and regards
>> Mahmood
>>
>> ====================
>> Dr Mahmood Ahmad
>> KTP Associate
>>
>> School of Computer Science
>> University of Manchester
>> and
>> Telematicus
>> Newport Street
>> Macclesfield
>> SK11 6QJ
>> United Kingdom
>>
>> E: 
>> Mahmood.Ahmad@telematicus.com<ma...@telematicus.com>
>> E:
>> Mahmood.ahmad@manchester.ac.uk<ma...@manchester.ac.uk>
>>
>>

Re: Adding UUIDs to SPARQL query results

Posted by Martynas Jusevičius <ma...@graphity.org>.
You have to use ?snew variable instead of ?olds in the CONSTRUCT
template, otherwise it will have no effect:

CONSTRUCT {
  ?snew a owl:NamedIndividual, skos:Concept ;
    ?p ?o .
}

On Thu, Nov 3, 2016 at 5:28 PM, Mahmood Ahmad
<ma...@telematicus.com> wrote:
> Many thanks. I have been trying this but seem to miss some trick:
>
> From my CONSTRUCT query:
>
> PREFIX owl: <http://www.w3.org/2002/07/owl#>
> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
> PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
> prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
> PREFIX www: <http://xyz.com#>
>
> CONSTRUCT {
>   ?s a owl:NamedIndividual, skos:Concept ;
>     ?p ?o .
> }
> WHERE
> {
>   ?s a owl:NamedIndividual, skos:Concept ;
>      ?p ?o .
> }
>
> I get results of the following type (summarised because of file size).
> www:Some_Identifier
>         a                skos:Concept , owl:NamedIndividual ;
>         ?p ?o .
>
> I need to replace 'Some_Identifier' with a UUID generated by the STRUUID() function. For this purpose I append the bind statement in a new CONSTRUCT query as follow:
>
> CONSTRUCT {
>   ?olds a owl:NamedIndividual, skos:Concept ;
>     ?p ?o .
> }
> WHERE
> {
>   ?olds a owl:NamedIndividual, skos:Concept ;
>      ?p ?o .
>   BIND(CONCAT(CONCAT(STRBEFORE(?olds, "#"), "#"), STRUUID()) AS ?snew) .
> }
>
>
> But this does not change anything. It looks as if I expect the variable ?olds as a string whereas it is not. How can then I use the BIND() function correctly to obtain this?
>
> One way may be to use STR(www:) and concatenate it with STRUUID(), but how to place this in the sub-graph?
>
> Any idea, I'll appreciate.
>
> Regards
> Mahmood
>
> -----Original Message-----
> From: Martynas Jusevičius [mailto:martynas@graphity.org]
> Sent: 03 November 2016 12:36
> To: users@jena.apache.org
> Subject: Re: Adding UUIDs to SPARQL query results
>
> Use BIND() with UUID() or STRUUID().
>
> https://www.w3.org/TR/2012/WD-sparql11-query-20120724/#func-uuid
> https://www.w3.org/TR/2012/WD-sparql11-query-20120724/#func-struuid
>
> On Thu, Nov 3, 2016 at 1:34 PM, Mahmood Ahmad <ma...@telematicus.com> wrote:
>> Hi,
>>
>> [Advanced apologies if this question is out of scope of this list, and
>> advise me the correct forum.]
>>
>> I am currently using Apache Jena Fuseki 2.4.0 (Windows 10) to upload my project RDF triples into a big soup.
>>
>> Using the SPARQL CONSTRUCT queries, I am able to query sub-graphs from the big soup and the result is in Turtle format. However, I am looking to add a UUID to every result of my query.
>>
>> Is it possible to get this done within my CONSTRUCT query, and how? If not, please can you suggest some alternative approaches?
>>
>> Thanks and regards
>> Mahmood
>>
>> ====================
>> Dr Mahmood Ahmad
>> KTP Associate
>>
>> School of Computer Science
>> University of Manchester
>> and
>> Telematicus
>> Newport Street
>> Macclesfield
>> SK11 6QJ
>> United Kingdom
>>
>> E: Mahmood.Ahmad@telematicus.com<ma...@telematicus.com>
>> E:
>> Mahmood.ahmad@manchester.ac.uk<ma...@manchester.ac.uk>
>>
>>

RE: Adding UUIDs to SPARQL query results

Posted by Mahmood Ahmad <ma...@telematicus.com>.
Many thanks. I have been trying this but seem to miss some trick:

From my CONSTRUCT query:

PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX www: <http://xyz.com#>

CONSTRUCT { 
  ?s a owl:NamedIndividual, skos:Concept ;
    ?p ?o .
}
WHERE 
{ 
  ?s a owl:NamedIndividual, skos:Concept ;
     ?p ?o .
}

I get results of the following type (summarised because of file size).
www:Some_Identifier
        a                skos:Concept , owl:NamedIndividual ;
	?p ?o .

I need to replace 'Some_Identifier' with a UUID generated by the STRUUID() function. For this purpose I append the bind statement in a new CONSTRUCT query as follow:

CONSTRUCT { 
  ?olds a owl:NamedIndividual, skos:Concept ;
    ?p ?o .
}
WHERE 
{ 
  ?olds a owl:NamedIndividual, skos:Concept ;
     ?p ?o .
  BIND(CONCAT(CONCAT(STRBEFORE(?olds, "#"), "#"), STRUUID()) AS ?snew) .
}


But this does not change anything. It looks as if I expect the variable ?olds as a string whereas it is not. How can then I use the BIND() function correctly to obtain this? 

One way may be to use STR(www:) and concatenate it with STRUUID(), but how to place this in the sub-graph?

Any idea, I'll appreciate.

Regards
Mahmood

-----Original Message-----
From: Martynas Jusevičius [mailto:martynas@graphity.org] 
Sent: 03 November 2016 12:36
To: users@jena.apache.org
Subject: Re: Adding UUIDs to SPARQL query results

Use BIND() with UUID() or STRUUID().

https://www.w3.org/TR/2012/WD-sparql11-query-20120724/#func-uuid
https://www.w3.org/TR/2012/WD-sparql11-query-20120724/#func-struuid

On Thu, Nov 3, 2016 at 1:34 PM, Mahmood Ahmad <ma...@telematicus.com> wrote:
> Hi,
>
> [Advanced apologies if this question is out of scope of this list, and 
> advise me the correct forum.]
>
> I am currently using Apache Jena Fuseki 2.4.0 (Windows 10) to upload my project RDF triples into a big soup.
>
> Using the SPARQL CONSTRUCT queries, I am able to query sub-graphs from the big soup and the result is in Turtle format. However, I am looking to add a UUID to every result of my query.
>
> Is it possible to get this done within my CONSTRUCT query, and how? If not, please can you suggest some alternative approaches?
>
> Thanks and regards
> Mahmood
>
> ====================
> Dr Mahmood Ahmad
> KTP Associate
>
> School of Computer Science
> University of Manchester
> and
> Telematicus
> Newport Street
> Macclesfield
> SK11 6QJ
> United Kingdom
>
> E: Mahmood.Ahmad@telematicus.com<ma...@telematicus.com>
> E: 
> Mahmood.ahmad@manchester.ac.uk<ma...@manchester.ac.uk>
>
>

Re: Adding UUIDs to SPARQL query results

Posted by Martynas Jusevičius <ma...@graphity.org>.
Use BIND() with UUID() or STRUUID().

https://www.w3.org/TR/2012/WD-sparql11-query-20120724/#func-uuid
https://www.w3.org/TR/2012/WD-sparql11-query-20120724/#func-struuid

On Thu, Nov 3, 2016 at 1:34 PM, Mahmood Ahmad
<ma...@telematicus.com> wrote:
> Hi,
>
> [Advanced apologies if this question is out of scope of this list, and advise me the correct forum.]
>
> I am currently using Apache Jena Fuseki 2.4.0 (Windows 10) to upload my project RDF triples into a big soup.
>
> Using the SPARQL CONSTRUCT queries, I am able to query sub-graphs from the big soup and the result is in Turtle format. However, I am looking to add a UUID to every result of my query.
>
> Is it possible to get this done within my CONSTRUCT query, and how? If not, please can you suggest some alternative approaches?
>
> Thanks and regards
> Mahmood
>
> ====================
> Dr Mahmood Ahmad
> KTP Associate
>
> School of Computer Science
> University of Manchester
> and
> Telematicus
> Newport Street
> Macclesfield
> SK11 6QJ
> United Kingdom
>
> E: Mahmood.Ahmad@telematicus.com<ma...@telematicus.com>
> E: Mahmood.ahmad@manchester.ac.uk<ma...@manchester.ac.uk>
>
>