>  I'm looking for guidance on best practices for modeling the
> following kind of pattern:
> A PowerMeasurementDevice takes measurements of Power.


In my opinion, you haven't said enough about your problem to really give a
good answer to the question. You can model this either with OWL or SHACL.
Actually, you will probably use OWL either way just to model that a
PowerMeasurementDevice is an instance of Device which is probably a
subclass of something else and that producesMeasurements is an object
property. So the real question is: is it better to use OWL alone or OWL +
SHACL?

The standard answer to these kinds of questions is usually: "use OWL for
reasoning and SHACL for constraints" but of course things like the domain
and range of a property (like most things that can be modeled in SHACL) can
be modeled either way, as an axiom for reasoning or as a constraint on
data.

I think what it really comes down to is what kind of data do you have? If
you are creating say an expert system ontology from scratch and are also
going to populate it with rules in SWRL or some other language then
probably OWL alone is better. If you have a lot of existing real world data
which may contain values of producesMeasurements that don't have the
appropriate values for their domain and/or range then you probably want to
use SHACL. Also,  how volatile is your data? If there is constantly new
data coming in (which may not match the constraint) then SHACL is probably
better. If it is relatively static and your data will tend to be well
formed then OWL axioms are probably better.

As you probably know, the issue with using OWL axioms is the first time you
encounter an Individual that doesn't have the proper domain or range then
your entire ontology is inconsistent which means it can't be used for any
reasoning until the bad data is fixed or removed. With SHACL you just get a
report (or some other user defined action) about the bad data but it
doesn't make your entire model inconsistent.

Michael
michaeldebellis.com


On Mon, Oct 12, 2020 at 11:39 AM Steve Ray <[email protected]> wrote:

> This question is directed at anyone in this group who is fluent in
> SHACL. I'm looking for guidance on best practices for modeling the
> following kind of pattern:
>
> A PowerMeasurementDevice takes measurements of Power.
>
> Is it better practice to put a SHACL constraint on the instances of a
> class called PowerMeasurement (that they should be measurements of
> Power), where:
>
> PowerMeasurementDevice producesMeasurements PowerMeasurement .
>
>
> or, should I just define a property shape for PowerMeasurementDevice
> such that the property producesMeasurements has the appropriate
> constraints? In this case, I don't need to create a special class
> called PowerMeasurement.
>
> Any thoughts one way or the other? I'm leaning toward the explicit
> definition of a PowerMeasurement class, but it's more intuition than
> principle.
>
>
> Steve
>
> --
> 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/CAGUep87ZvBUe0urm5V6rxFPJOVpYCzG3Aa0qz7DxFBH-9TR9Wg%40mail.gmail.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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/topbraid-users/CALGFikcT82t%3DeKh6bnEdiL8hkTCoOv89-R5my0WvfKrztTVibg%40mail.gmail.com.

Reply via email to