Hi Holger,

Thank you for the tip on QualifiedValueShapeConstraintComponent.  I'm not
deep enough into SHACL to reliably make the best choice.  Time is the best
teacher!

Regarding sh:name...  I was specifically trying to avoid "property
proliferation" as I already have "class proliferation" when capturing the
different types of outputs for the 128 device types in my model.  One of my
perceived benefits of SHACL was to be able to reuse properties but give
each use a different semantic meaning by naming the property shape
accordingly.  This addressed the common OWL use case where the same
property pointed to instances of different classes and it was pertinent to
the user to show them the class of the instance to tell them what they were
seeing.

Prior to today, I thought the forms just pulled the name from sh:name but I
see now that it does something like pulling the first sh:name it encounters
for a specific sh:path and re-uses it.  I noticed this artifact when
looking at more complicated device types that have numerous outputs like a
Flow Controller.  FVNR is a simple case.  Is there a reason that the form
doesn't just display the sh:name to the user, regardless of the property?
I'm trying to determine if the user interface is about to drive the
modeling or if there is some underlying aspect of SHACL that I'm missing.
If it's the former, is there a possibility to re-visit the implementation?
I have 128 classes that have this problem.  (note that it won't take 128
properties to fix it but it is a common modeling pattern in my domains)

Thanks,

Tim


On Tue, Jul 7, 2020 at 8:43 PM Holger Knublauch <[email protected]>
wrote:

> Hi Tim,
>
> if you want to use the same property I think you're rather looking at
>
> https://www.w3.org/TR/shacl/#QualifiedValueShapeConstraintComponent
>
> to say that "one of them needs to be running indicator" and "one of them
> needs to be fault indicator".
>
> But while that would work on a constraint checking level, it will not make
> sense w.r.t. sh:name and the form editor. The label should be the same in
> both cases, which I believe indicates that you're better off introducing
> separate properties.
>
> Holger
>
>
> On 8/07/2020 10:02, Tim Smith wrote:
>
> Hi Holger,
>
> In this case, that is correct.  The FVNR class represents a physical
> device, a type of electric motor starter.  These devices have two outputs,
> a running indicator and a fault indicator.  These outputs are typically
> wired into a Programmable Logic Controller (PLC).  Thus, I've chosen to
> model the outputs as specific types of data elements.  This model is
> intended to be able capture and show lineage for all of the data elements
> produced by devices on a manufacturing line.  This data typically flows
> into a PLC and out into various OT/IT systems.  It will also enable me to
> capture the control loops on the line.
>
> I own the model and am open to better ways of doing it.
>
> Tim
>
> On Tue, Jul 7, 2020 at 7:13 PM Holger Knublauch <[email protected]>
> wrote:
>
>> Hi Tim,
>> are you sure both property shapes are about the same property edg:output?
>> This doesn't look right because they carry different sh:class constraints
>> in both cases.
>>
>> Regards,
>> Holger
>>
>>
>> On 8/07/2020 04:52, Tim Smith wrote:
>>
>> Hi,
>>
>> I am auto-generating classes and property shapes from spreadsheets.  I
>> have an issue where EDG is not displaying the name of the property shape
>> correctly in the declared properties section of a class form.  In the
>> example below, note that Sts_Overload is displayed as the property name in
>> both cases but sh:name contains Sts_Running for the upper entry.  Source
>> code for the class/node shape and property shapes is pasted at the bottom.
>> This is happening for all of my generated classes but does not happen for
>> classes and property shapes I manually create in EDG.
>>
>> Note that when I say generated, I use an insert query in TBC to construct
>> the triples from a spreadsheet and insert them into an empty graph.  The
>> graph containing the triples is then imported into an empty ontology in EDG.
>>
>> I'm baffled as to what is different and I'm hoping another set of eyes
>> will see the problem.  Thanks in advance for your help,
>>
>> Tim
>> [image: image.png]
>> pgont:FVNR
>>   a edg:CustomAssetClass ;
>>   a sh:NodeShape ;
>>   edg:acronym "FVNR" ;
>>   edg:description "To Be Determined" ;
>>   rdfs:isDefinedBy <http://data.pg.com/data/graph/Controls> ;
>>   rdfs:label "FVNR" ;
>>   rdfs:subClassOf pgont:ElectricMotorStarter ;
>>   sh:property pgont:FVNR_Sts_Overload-output ;
>>   sh:property pgont:FVNR_Sts_Running-output ;
>> .
>> pgont:FVNR_Sts_Overload-output
>>   a sh:PropertyShape ;
>>   sh:path edg:output ;
>>   rdfs:isDefinedBy <http://data.pg.com/data/graph/Controls> ;
>>   sh:class pgont:FaultCondition ;
>>   sh:description "FF: Control Overload" ;
>>   sh:group edg:TraceableGroup ;
>>   sh:maxCount 1 ;
>>   sh:name "Sts_Overload" ;
>>   sh:order "25"^^xsd:decimal ;
>> .
>> pgont:FVNR_Sts_Running-output
>>   a sh:PropertyShape ;
>>   sh:path edg:output ;
>>   rdfs:isDefinedBy <http://data.pg.com/data/graph/Controls> ;
>>   sh:class pgont:RunningStatus ;
>>   sh:description "FF: Running Status" ;
>>   sh:group edg:TraceableGroup ;
>>   sh:maxCount 1 ;
>>   sh:name "Sts_Running" ;
>>   sh:order "25"^^xsd:decimal ;
>> .
>> --
>> 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 [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/topbraid-users/CAF0WbnLc5O0h1Q29OB5ZAqPfmYkT0KbrfVkyJmy7z8-iZdqBsA%40mail.gmail.com
>> <https://groups.google.com/d/msgid/topbraid-users/CAF0WbnLc5O0h1Q29OB5ZAqPfmYkT0KbrfVkyJmy7z8-iZdqBsA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> --
>> 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 [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/topbraid-users/f9493d61-59fe-b295-373c-899efeffb5e6%40topquadrant.com
>> <https://groups.google.com/d/msgid/topbraid-users/f9493d61-59fe-b295-373c-899efeffb5e6%40topquadrant.com?utm_medium=email&utm_source=footer>
>> .
>>
> --
> 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 [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/topbraid-users/CAF0Wbn%2BYFYEp-1aMyt6tKB_ajJHBCbjNA2MRZ-xsdXV_FwcRsw%40mail.gmail.com
> <https://groups.google.com/d/msgid/topbraid-users/CAF0Wbn%2BYFYEp-1aMyt6tKB_ajJHBCbjNA2MRZ-xsdXV_FwcRsw%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> --
> 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 [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/topbraid-users/87b2543a-36c1-0dca-6901-30b5faa0b7b3%40topquadrant.com
> <https://groups.google.com/d/msgid/topbraid-users/87b2543a-36c1-0dca-6901-30b5faa0b7b3%40topquadrant.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/topbraid-users/CAF0WbnLigyhpXZEnwUhdccdjURmYKF%2BbrnSb84ReJW1RLEcC%2BA%40mail.gmail.com.

Reply via email to