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:[email protected]] Sent: 03 November 2016 16:45 To: [email protected] 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 <[email protected]> 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:[email protected]] > Sent: 03 November 2016 16:32 > To: [email protected] > 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 <[email protected]> > 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:[email protected]] >> Sent: 03 November 2016 12:36 >> To: [email protected] >> 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 >> <[email protected]> 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: >>> [email protected]<mailto:[email protected]> >>> E: >>> [email protected]<mailto:[email protected] >>> > >>> >>>
