Re: [topbraid-users] SHACL inferred data question

2022-01-26 Thread Holger Knublauch


On 2022-01-27 11:02 am, Carl Burnett wrote:


This helps! I now am able to create more complex sh:values rules that 
re-use the inferred values from a different property shape.


But I am now having some other problems with sh:values. I will 
probably need to move away from generalized examples now and show you 
one of my actual shapes:


concept_schema:Rollup_Concept-includedVideos

  a sh:PropertyShape ;

  sh:path enterprise_schemas:includedVideos ;

  dash:readOnly true ;

  sh:class content_asset_schema:Video ;

  sh:group tosh:InferencesPropertyGroup ;

  sh:name "included videos (SHACL)" ;

  sh:order "4"^^xsd:decimal ;

  sh:values [

  sh:path [

  sh:inversePath [

  sh:alternativePath (

content_asset_schema:level_1

   content_asset_schema:level_2

content_asset_schema:level_3

    ) ;

    ] ;

    ] ;

  sh:filterShape [

  sh:property [

  sh:path content_asset_schema:lifecycle_stage ;

  sh:hasValue supplementary_concept_data:Active_Asset ;

    ] ;

    ] ;

  sh:nodes [

  sh:path enterprise_schemas:includedConcepts ;

    ] ;

    ] ;

.

This shape definition is accepted without errors by EDG’s *values *UI 
widget, which diagrams it like this:


This diagram seems incomplete, though, in two ways:

 1. The right-most box should read *this (Video)*, because I have
specified that sh:class.
 2. My sh:filterShape seems to be ignored.

Sure enough, the values produced by the shape, while respecting my 
*sh:path *and *sh:nodes *statements, seem to ignore the sh:class I 
specified and my sh:filterShape.


What am I doing wrong here?

You're mixing two node expressions into the same top level sh:values 
blank node. Either use sh:filterShape or sh:path but not both. I don't 
know what the chaining is supposed to look like, but if you want the 
values of the upper path to go through the filter shape, try


sh:values [
    sh:filterShape [ ... ] ;
    sh:nodes [
    sh:path [ sh:inversePath [ ... ] ]
    ]
]

See https://w3c.github.io/shacl/shacl-af/#node-expressions-filter-shape 
for the spec - sh:filterShape can only have exactly one sh:nodes as input.


The outer sh:class is unrelated to the sh:values rule and is only used 
for validation purposes, not inferencing.


Holger


*From:* topbraid-users@googlegroups.com 
 *On Behalf Of *Holger Knublauch

*Sent:* Tuesday, January 25, 2022 2:55 PM
*To:* topbraid-users@googlegroups.com
*Subject:* Re: [topbraid-users] SHACL inferred data question

*** External email: use caution ***

On 2022-01-26 3:13 am, cbur...@healthwise.org wrote:

Holger,

I am able to create a second property shape, ex:shape2, that uses
the values from my ex:shape1 in a very simple, non-transformative
way and successfully returns the values of ex:shape1 for ex:shape2:

ex:Class-shape2

  a sh:PropertyShape ;
  sh:path ex:shape2 ;

  sh:class ex:Class

  sh:values [
      sh:path ex:shape1 ;
    ] ;
.

But the moment I try to introduce any more complexity, my
sh:values statement stops returning any results. For example, I tried:

  sh:values [
    sh:path ( ex:shape1 skos:broader ) ;
    ]

Right, complex path expressions don't work in that case. This would 
have required a much more complex implementation that would hook into 
the SPARQL-like path execution. Doable in principle, just not 
implemented yet.


The alternative to the above is to use nested sh:path expressions, try 
something like


sh:values [
    sh:path skos:broader ;
    sh:nodes [
    sh:path ex:shape1 ;
    ]
]

This is based on the optional second argument (sh:nodes) that 
https://w3c.github.io/shacl/shacl-af/#node-expressions-path 
 
takes and would first get all values of ex:shape1 and then get the 
broader values of those. I believe this corresponds to your chained 
path expression.


Hope this works, didn't test... :)

Holger

and got back no values for ex:shape2. (All of the values returned
for ex:shape1 have broader concepts, although they are defined in
a different EDG asset collection.)

What am I doing wrong?

thanks,

Carl

On Thursday, January 20, 2022 at 5:01:18 PM UTC-8 Holger Knublauch
wrote:

On 2022-01-21 10:54 am, cbur...@healthwise.org wrote:

Thanks, Holger. My need in this case isn't to query
inferred data using SPARQL or GraphQL, but rather to reuse
the inferred data as an input for another EDG property
  

RE: [topbraid-users] SHACL inferred data question

2022-01-26 Thread Carl Burnett
This helps! I now am able to create more complex sh:values rules that re-use 
the inferred values from a different property shape.

But I am now having some other problems with sh:values. I will probably need to 
move away from generalized examples now and show you one of my actual shapes:

concept_schema:Rollup_Concept-includedVideos
  a sh:PropertyShape ;
  sh:path enterprise_schemas:includedVideos ;
  dash:readOnly true ;
  sh:class content_asset_schema:Video ;
  sh:group tosh:InferencesPropertyGroup ;
  sh:name "included videos (SHACL)" ;
  sh:order "4"^^xsd:decimal ;
  sh:values [
  sh:path [
  sh:inversePath [
  sh:alternativePath (
  content_asset_schema:level_1
  content_asset_schema:level_2
  content_asset_schema:level_3
) ;
] ;
] ;
  sh:filterShape [
  sh:property [
  sh:path content_asset_schema:lifecycle_stage ;
  sh:hasValue supplementary_concept_data:Active_Asset ;
] ;
] ;
  sh:nodes [
  sh:path enterprise_schemas:includedConcepts ;
] ;
] ;
.

This shape definition is accepted without errors by EDG's values UI widget, 
which diagrams it like this:
[cid:image001.png@01D812D5.4AFF9EF0]

This diagram seems incomplete, though, in two ways:

  1.  The right-most box should read this (Video), because I have specified 
that sh:class.
  2.  My sh:filterShape seems to be ignored.

Sure enough, the values produced by the shape, while respecting my sh:path and 
sh:nodes statements, seem to ignore the sh:class I specified and my 
sh:filterShape.

What am I doing wrong here?


From: topbraid-users@googlegroups.com  On 
Behalf Of Holger Knublauch
Sent: Tuesday, January 25, 2022 2:55 PM
To: topbraid-users@googlegroups.com
Subject: Re: [topbraid-users] SHACL inferred data question


*** External email: use caution ***


On 2022-01-26 3:13 am, cbur...@healthwise.org 
wrote:
Holger,

I am able to create a second property shape, ex:shape2, that uses the values 
from my ex:shape1 in a very simple, non-transformative way and successfully 
returns the values of ex:shape1 for ex:shape2:

ex:Class-shape2
  a sh:PropertyShape ;
  sh:path ex:shape2 ;
  sh:class ex:Class
  sh:values [
  sh:path ex:shape1 ;
] ;
.

But the moment I try to introduce any more complexity, my sh:values statement 
stops returning any results. For example, I tried:

  sh:values [
sh:path ( ex:shape1 skos:broader ) ;
]

Right, complex path expressions don't work in that case. This would have 
required a much more complex implementation that would hook into the 
SPARQL-like path execution. Doable in principle, just not implemented yet.

The alternative to the above is to use nested sh:path expressions, try 
something like

sh:values [
sh:path skos:broader ;
sh:nodes [
sh:path ex:shape1 ;
]
]

This is based on the optional second argument (sh:nodes) that 
https://w3c.github.io/shacl/shacl-af/#node-expressions-path
 takes and would first get all values of ex:shape1 and then get the broader 
values of those. I believe this corresponds to your chained path expression.

Hope this works, didn't test... :)

Holger



and got back no values for ex:shape2. (All of the values returned for ex:shape1 
have broader concepts, although they are defined in a different EDG asset 
collection.)

What am I doing wrong?

thanks,
Carl
On Thursday, January 20, 2022 at 5:01:18 PM UTC-8 Holger Knublauch wrote:


On 2022-01-21 10:54 am, cbur...@healthwise.org wrote:
Thanks, Holger. My need in this case isn't to query inferred data using SPARQL 
or GraphQL, but rather to reuse the inferred data as an input for another EDG 
property shape with another sh:values rule in it. I think I'm hearing that 
that's not possible.

That scenario IS possible. You just need to use a path node expression, see


https://w3c.github.io/shacl/shacl-af/#node-expressions-path

So if ex:prop1 is inferred then you can reference it in the sh:values rule of 
another property using [ sh:path ex:prop1 ] and it will compute that 

Re: [topbraid-users] Re: TopBraid 7.1 Announcement

2022-01-26 Thread Marco Neumann
indeed today the process works, thank you Taryn.

Best,
Marco

On Tue, Jan 25, 2022 at 8:01 PM Taryn Madey  wrote:

> Hi Marco. Please try again if it fails.
>
> On Tue, Jan 25, 2022 at 5:37 AM Marco  wrote:
>
>> FYI I have just attempted a down TopBraid 7.1 and have received
>> instructions to download the file by email. But the link in the email
>> points to — Invalid download link —
>>
>> Marco
>>
>>
>>
>> On Thursday, December 9, 2021 at 2:40:50 PM UTC TopQuadrant wrote:
>>
>>> Dear Users,
>>>
>>> TopQuadrant is pleased to announce the release of TopBraid EDG 7.1!
>>>
>>> This release contains a new visualization tool, the EDG Diagram,
>>> available as a new panel that combines the display of model elements with
>>> the display of data.  This release also introduces a new development tool:
>>> TopBraid EDG Studio. Learn more about EDG Studio in this video
>>> . Additionally, there are
>>> also  new features, as well as UX and performance improvements.  These
>>> features and improvements are described in more detail in the release
>>> notes .
>>>
>>> Downloads:
>>> TopBraid Composer Maestro Edition 7.1:
>>> https://www.topquadrant.com/topbraid-composer-install/
>>>
>>> Licensed users of TopBraid EDG can access the enterprise server and EDG
>>> Studio distribution here: http://download.topquadrant.com/live/edg.  If
>>> you are an EDG user, who also utilizes TopBraid Composer for IDE purposes,
>>> please read the FAQ below.
>>>
>>> If you are a TopBraid Composer only user (i.e., your organization does
>>> not use TopBraid EDG), you will continue to use TopBraid Composer.
>>>
>>> For a demo tour of key new features, please watch the webinar: What is
>>> New in TopBraid EDG 7.1?
>>> , that was
>>> presented Tuesday, November 16th, 2021.
>>>
>>> More TopBraid EDG resources include:
>>>
>>>- EDG Product Info
>>>
>>> 
>>>- Webinar Recordings, Slides, Q
>>>
>>>- TopBraid EDG “Quick Grok” Videos
>>>
>>>- White Papers
>>>
>>>
>>> Updated documentation can be found at https://www.topquadrant.com/doc/
>>>
>>> For questions, please do not hesitate to contact us:
>>> Thank you,
>>> The TopBraid Team
>>>
>>> *How is EDG Studio different from EDG?* -EDG Studio is the IDE for EDG.
>>> It can be run on a local machine (and does not require a server
>>> environment). EDG Studio is not a substitute for EDG, but provides
>>> developers a local environment for SWP scripting, data wrangling, and
>>> building and testing enhancements.
>>>
>>> *How is EDG Studio different from TopBraid Composer?* -Previously,
>>> TopBraid Composer offered the option to launch EDG on a local machine. With
>>> EDG Studio, TopBraid Composer and a desktop version of EDG are separated,
>>> enhancing the performance of both.
>>>
>>> *Should I be using TopBraid Composer or EDG Studio to develop
>>> customizations for EDG?* -If your organization is running EDG 7.1 or
>>> higher, you should use EDG Studio. If your organization is running EDG 7.0
>>> or below, you should use TopBraid Composer. Always use the same release of
>>> TopBraid Composer or EDG Studio as your EDG server environment (on premise
>>> or cloud).
>>>
>>> *How does my licensing change?* -One EDG Studio license will be
>>> available to all EDG customers. If you previously purchased TopBraid
>>> Composer licenses, you will receive separate licenses for both TopBraid
>>> Composer 7.1 and EDG Studio 7.1 for each TopBraid Composer license.
>>>
>>> *How do I get my EDG Studio license?* -If you are upgrading to EDG 7.1,
>>> please e-mail support (sup...@topquadrant.com
>>> ) for your EDG Studio license. If you do
>>> not upgrade prior to your next renewal, you will automatically receive EDG
>>> Studio licenses as part of that renewal.
>>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "TopBraid Suite Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to topbraid-users+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/topbraid-users/c7088b6d-660a-4c1a-a290-4cc47b180d2en%40googlegroups.com
>> 
>> .
>>
>
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "TopBraid Suite Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to