I have a qualified constraint question.
To define a meronomy (typical hasPart hierarchy) we now use in OWA/OWL:
:Vehicle
a owl:Class ;
rdfs:subClassOf [
a owl:Restriction ;
owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ;
owl:onClass :Engine ;
owl:onProperty :hasPart ;
] .
We explicitly model this mincard=0 to indicate relevance (it is not an obligatory part).
(because we cannot leave the restriction out).
Now my question how does this translate into cwa/shacl?
:VehicleShape
a sh:NodeShape ;
sh:targetClass :Vehicle ;
sh:property [
sh:path :hasPart ;
sh:qualifiedMinCount 0 ;
sh:qualifiedValueShape [
sh:class :Engine ;
] ;
sh:qualifiedMinCount 0 ;
.
Or can I delete the red now?
Similar (example not for decomposition):
sh:property [ sh:path https://w3id.org/nen2660/def#hasInterior ;
sh:qualifiedValueShape [ sh:class https://otl.waternet.nl/def/cff9206f-72ae-4eb8-a671-9c3dd73b62c0 ]
] .
Is it ok to leave minCard/maxCard out?
Personally I guess NOT since I always have to give the actual constraint where the valueshape is ‘just’ the context when to be applied, right?
So I put in minCar = 0 again or is there in shape a smarter way to indicate this “relevance”?
Thx a lot, Michel
|
||||||||||||||||
Michel Böhms
Data Scientist<image001.png>
This message may contain information that is not intended for you. If you are not the addressee or if this message was sent to you by mistake, you are requested to inform the sender and delete the message. TNO accepts no liability for the content of this e-mail, for the manner in which you use it and for damage of any kind resulting from the risks inherent to the electronic transmission of messages.
--
The topics of this mailing list include TopBraid EDG and related technologies such as SHACL.
To post to this group, send email to topbrai...@googlegroups.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 topbraid-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/8f1ba4e23ebe4932bcaff5319933f7d1%40tno.nl.
To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/7D5006D9-9F88-4482-A825-EF3EB4B0B7F2%40topquadrant.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/b5380627-e2e2-4a25-a985-9a27f54149aa%40email.android.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/B4EF38BA-6BD7-487B-ADE3-425A09A6457D%40topquadrant.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/7AB6C76E-D683-4DD5-BAC3-9B5011EF65A8%40topquadrant.com.
One more idea on this.
Would it be better to model the typical decomposition via some union range.
:Vehicle
a owl:Class ;
rdfs:subClassOf [
a owl:Restriction ;
owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ;
owl:onClass :Engine ;
owl:onProperty :hasPart ;
] .
>>>
:Vehicle
a owl:Class ;
rdfs:subClassOf [
a owl:Restriction ;
owl:allValuesFrom owl:unionOf (:Engine, :Chassis, …) ;
owl:onProperty :hasPart ;
] .
???
(similar in shacl, sh:class being a union etc.)
Thx Michel
To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/a494b31e-32a1-4e43-9cc5-34136d2e374b%40email.android.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/b24cd7aba5c94defb458f3fb52145698%40tno.nl.
To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/889C0FF6-3716-4AA5-A070-D2A0B5FAD5DB%40topquadrant.com.
On 13 Nov 2023, at 11:42 pm, 'Bohms, H.M. (Michel)' via TopBraid Suite Users <topbrai...@googlegroups.com> wrote:Too many extra classes that are nonsemantical...would my proposed solution not be more natural?
To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/3341cd83-5795-409f-9939-070f2c7b9780%40email.android.com.
Hi Holger
It is not really one specific model.
The context is CEN TC442/WG4/TG3 EN17632 “Semantic Modelling and Linking” standard, where we want to give recommendations for patterns on how to model with LD/SW-tech.
So we would like to give a guideline on how to model a Meronony (typical typical decomposition) in both OWL/OWA and SHACL/CWA.
In case cardinality constraint are in place (typically minCard=1) the situation is simple:
ex:Bridge
a owl:Class ;
rdfs:subClassOf [
a owl:Restriction ;
owl:onClass ex:Deck ;
owl:onProperty sml:hasPart ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
] .
The issue is in case there is no constraint, like with optional BridgeFurniture.
So my proposal to always add a “closing” restriction like:
ex:Bridge
a owl:Class ;
rdfs:subClassOf [
a owl:Restriction ;
owl:allValuesFrom owl:unionOf (ex:Deck, ex:BridgeFurnuture, …) ;
owl:onProperty sml:hasPart ;
] .
To indicate that the BridgeFurniture is an optional part and all other things not mentioned are not.
Gr Michel
To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/8E3C2DA6-2102-45B2-A906-A56C0AF3335B%40topquadrant.com.