Richard,

I am attempting to map ontology terms to new UUID-based URIs, and map
their types as well.

It made me realise that I need a different approach for my query -
with UNIONs instead of joins, so it only generates a single UUID per
solution.

On Sun, Oct 27, 2019 at 10:55 AM Richard Cyganiak <[email protected]> wrote:
>
> Hi Martynas,
>
> I don't quite understand what this query is intended to achieve, but you 
> could try wrapping the contents of the 2nd OPTIONAL into a sub-SELECT.
>
> Richard
>
>
> > On 26 Oct 2019, at 20:43, Martynas Jusevičius <[email protected]> 
> > wrote:
> >
> > Hi,
> >
> > I have this simplified query
> >
> > PREFIX owl: <http://www.w3.org/2002/07/owl#>
> >
> > CONSTRUCT
> > {
> >    ?s <smth> ?ab.
> > }
> > {
> >  BIND (STRUUID() AS ?a)
> >  ?s a owl:Class .
> >  OPTIONAL {
> >    ?s ?p ?o .
> >    BIND (STRUUID() AS ?b)
> >  }
> >  OPTIONAL {
> >    ?x ?y ?z .
> >    BIND (STRUUID() AS ?c)
> >  }
> >  BIND (CONCAT(?a, "/", ?b) AS ?ab)
> >  BIND (CONCAT(?a, "/", ?c) AS ?ac)
> > }
> >
> > What I'm getting is multiple ?ab UUIDs for the same ?s binding:
> >
> > skos:Collection  <http://server/unset-base/smth>
> >
> > "520a2768-dd5e-4a5f-b2a8-09328ad89b3f/8d946969-92f2-4239-bad0-b0c92c606b9e"
> > , 
> > "520a2768-dd5e-4a5f-b2a8-09328ad89b3f/ce7863e0-33b6-47bf-bae3-e85b3e350636"
> > , 
> > "520a2768-dd5e-4a5f-b2a8-09328ad89b3f/b06ece07-cdbb-4196-ae34-f7676f739b55"
> > , 
> > "520a2768-dd5e-4a5f-b2a8-09328ad89b3f/2953ef49-775c-4f52-bdd0-f5b8f0cf82d6"
> > , 
> > "520a2768-dd5e-4a5f-b2a8-09328ad89b3f/0eb8c370-a672-4476-b1fe-f8e9acb93901"
> > , 
> > "520a2768-dd5e-4a5f-b2a8-09328ad89b3f/630bc8cb-30f0-4d87-93d1-0f24c432bc5f"
> > , 
> > "520a2768-dd5e-4a5f-b2a8-09328ad89b3f/f318a7f4-8510-4e42-ad60-18a711e6af0e"
> > , 
> > "520a2768-dd5e-4a5f-b2a8-09328ad89b3f/1d78b7ba-c8f7-42fb-8c72-a2f85732c8a0"
> > , 
> > "520a2768-dd5e-4a5f-b2a8-09328ad89b3f/5b606245-e5c1-4aa7-a98c-36bada0c21ef"
> > , 
> > "520a2768-dd5e-4a5f-b2a8-09328ad89b3f/01148de7-8ebb-4a6f-843f-8664a27e2eee"
> > .
> >
> > I would expect to get only one UUID per ?s. Can the query be
> > reformulated to achieve this?
> > I cannot move ?ab and ?ac inside the patterns next to STRUUID()
> > because ?a is undefined there.
> >
> > Doing SELECT (COUNT(DISTINCT ?ac) AS ?count) returns 11655 results
> > while it only returns 315 on Dydra. I think the difference is related
> > to this issue:
> > https://github.com/w3c/sparql-12/issues/102
> >
> > I ran it on sparql.org over the skos.owl:
> > https://raw.githubusercontent.com/usc-isi-i2/karma-step-by-step/master/preloaded-ontologies/skos.owl
> >
> > Martynas
>

Reply via email to