In our national modelling team the questions were raised how to best map owl:equivalentClass to SHACL.
Some ideas:
1- related to sh:node (details unclear) (from https://spinrdf.org/shacl-and-owl.html)
2- owl:equivalentClass is just syntactic sugar for:
-- rdfs:subClassOf in 2 directions
(ok but how to describe it from one shape-side?)
3-procedural: shacl-af rule to explicitly code in 2 directions the instantiation
An other issue:
How to deal with more complex variants like:
ex1:Class1 (when property p=p1) equivalent to ex2:ClassY or even:
ex1:Class1 (when property p=p1) equivalent to ex2:ClassZ (when property q=q1)
we can always fall back to skos:related...but we want to have some more semantics.....
thx for advice, Michel
|
|||||||||||||||||
|
exPerson a owl:Class;rdfs:subClassOf [ owl:onProperty ex:parent;owl:allValuesFrom ex:Person].ex:Alice a ex:Person;ex:parent ex:Bob.
exPerson a owl:Class;owl:equivalentClass [ owl:onProperty ex:parent;owl:allValuesFrom ex:Person].ex:Alice a ex:Person;ex:parent ex:Bob.
ex:Alice ex:parent ex:Bob.
ex:Alice ex:parent ex:Bob.ex:Bob a ex:Person.
On Apr 14, 2020, at 9:11 AM, 'Bohms, H.M. (Michel)' via TopBraid Suite Users <topbrai...@googlegroups.com> wrote:
In our national modelling team the questions were raised how to best map owl:equivalentClass to SHACL.Some ideas:1- related to sh:node (details unclear) (from https://spinrdf.org/shacl-and-owl.html)2- owl:equivalentClass is just syntactic sugar for:-- rdfs:subClassOf in 2 directions(ok but how to describe it from one shape-side?)3-procedural: shacl-af rule to explicitly code in 2 directions the instantiationAn other issue:How to deal with more complex variants like:ex1:Class1 (when property p=p1) equivalent to ex2:ClassY or even:ex1:Class1 (when property p=p1) equivalent to ex2:ClassZ (when property q=q1)we can always fall back to skos:related...but we want to have some more semantics.....thx for advice, Michel
Dr. ir. H.M. (Michel) Böhms
Senior Data Scientist
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.
--
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/f3f543e565de44f7930fa4626182e25b%40tno.nl.
To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/3A29746B-1D96-4708-B3CB-9050666D17F0%40topquadrant.com.
On Apr 14, 2020, at 10:57 AM, dprice <dpr...@topquadrant.com> wrote:In addition to what Irene said about question 3 and OWL restrictions, I will note that in the very simple case of question 2 where it’s useful when mapping between two shapes graphs/ontologies:In TopBraid Composer, the RDFS inference default is “on” for SHACL engine and the rdfs:subClassOf inferences are made prior to the validation happening (i.e. it works as expected if subClassOf is stated in both directions). I expect that would be true for at least some other SHACL engines too.
exPerson a owl:Class;rdfs:subClassOf [ owl:onProperty ex:parent;owl:allValuesFrom ex:Person].
_:b1 a owl:Restriction;
rdfs:subClassOf ex:Person.
exPerson a owl:Class;owl:equivalentClass [ owl:onProperty ex:parent;owl:allValuesFrom ex:Person].
To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/C3316663-2D24-4A69-B2FB-1041ADA7BC33%40topquadrant.com.
Hi Irene, David
Thx, I had been reading this example about 10 times to understand (indeed allvaluesfrom being “at least” not “only” ).
Another thing I have been chewing on: the simple case and especially the remarks by David wrt RDFS-entailment.
My original (very) simple case was: I have two ontologies with different name space and I want to relate concepts from one to the other saying that they are the same. In owl I use owl:equivalentClass and the question was how best in shacl.
I like your split in three cases:
1. Inference like in owl now in shacl (like triple construct)
2. Checking like OWL does (although always compromised by CWA nature as you indicated
3. Stronger checking that might be better reflect what you want in CWA fashion: ie allvaluesfrom: “at least” becomes “only”)
I am a bit in doubt about option 2, it always seems compromised (?) and chances are that you actually want 3. So I most like the split in choice 1 and 3.
Now about the simple case.
ex1:ClassX owl:equivalentClass ex2:ClassY (so no restrictions involved)
Or even simpler:
ex:ClassX owl:equivalentClass ex:ClassY
Or even simpler:
ex:ClassX rdfs:subClassOf ex:ClassY AND
ex:ClassY rdfs:subClassOf ex:ClassX
Let’s focus on the first only:
ex:ClassX rdfs:subClassOf ex:ClassY
Is it true that I could apply your three options here too? (even now that no restrictions apply) like:
Option 1: Inference
1a: do nothing in shacl, assume a priori RDFS-entailment
1b: In SHACL AF: tripleconstruct self/rdf:type/ClassY
Option 2: SHACL SHAPE: sh:property (path rdf:type, sh:hasValue ex:ClassY)
Option 3: SHACL SHAPE: sh:property (path rdf:type, sh:in (ex:ClassY, ...... fixed list, maybe all classes in ont)
Do I understand the mails between you and David right that they were about option 1a or 1b?
(David: a, you: b)
In case of option 1b, 2 and 3: could you then actually delete the rdfs:subClassOf clauses in your shacl code (leaving only rdfs class definitions? Well ...assuming there are similar decisions for rdfs:subPropertyOf). Or is the pure owa treatment/inference with of rdfs:subClassOf always a reason to leave it in anyway?
Or....am I talking complete nonsense now 😊
Thx a lot, Michel
|
|
|
--
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/1C55ABD7-96C4-4797-B34C-E4D62D7E2796%40topquadrant.com.
Oeps I made mistake in order, right below:
Hi Irene, David
Thx, I had been reading this example about 10 times to understand (indeed allvaluesfrom being “at least” not “only” ).
Another thing I have been chewing on: the simple case and especially the remarks by David wrt RDFS-entailment.
My original (very) simple case was: I have two ontologies with different name space and I want to relate concepts from one to the other saying that they are the same. In owl I use owl:equivalentClass and the question was how best in shacl.
I like your split in three cases:
1. Inference like in owl now in shacl (like triple construct)
2. Checking the OWL Restriction in owl meaning (although always compromised by CWA nature as you indicated
3. Stronger checking that might be better reflect what you want in CWA fashion: ie allvaluesfrom: “at least” becomes “only”)
I am a bit in doubt about option 2, it always seems compromised (?) and chances are that you actually want 3. So I most like the split in choice 1 and 3.
Now about the simple case.
ex1:ClassX owl:equivalentClass ex2:ClassY (so no restrictions involved)
Or even simpler:
ex:ClassX owl:equivalentClass ex:ClassY
Or even simpler:
ex:ClassX rdfs:subClassOf ex:ClassY AND
ex:ClassY rdfs:subClassOf ex:ClassX
Let’s focus on the first only:
ex:ClassX rdfs:subClassOf ex:ClassY
Is it true that I could apply your three options here too? (even now that no restrictions apply) like:
Option 1: Inference
1a: do nothing in shacl, assume a priori RDFS-entailment
1b: In SHACL AF: tripleconstruct self/rdf:type/ClassY
Option 2: SHACL SHAPE: sh:property (path rdf:type, sh:in (ex:ClassY, ...... fixed list, maybe all classes in ont)
Option 3: SHACL SHAPE: sh:property (path rdf:type, sh:hasValue ex:ClassY)
To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/0b356c65369349c5a9ddd2d3e0506226%40tno.nl.
To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/6a785a0e258d4073ae6e86f84a755b8d%40tno.nl.
Thx
One of the profiles we use for our cen standard smls is (RDFS+SHACL)
So in a sense if equivalence is relevant here we already model with “2 x rdfs:subClassOf”.
Wrt par. 1.5: guess it is ok to assume rdfs-entailment for most shacl processors (so that my shacl af rule for doing the same is obsolete/already taken care of). Would only be relevant when RDFS-entailment is “OFF”.
The sentence:
“SHACL uses the RDF and RDFS vocabularies, but full RDFS inferencing is not required.”
Is a bit unclear: full RDFS inf. is not required does that mean that some limited form IS required? Or can there be no rdfs-entailm. at all? And what is “full”/”limited”? Etc.
I am unsure whether my scenarios for CHECKING (not inferencing) the rdfs:subClassOf relations could be relevant
Thx for this whole rdfs/shacl discussion, I learned a lot,
Michel
|
|
To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/10778D05-3066-4EC7-AEAE-753CC6836D3C%40topquadrant.com.
On Apr 15, 2020, at 3:03 PM, 'Bohms, H.M. (Michel)' via TopBraid Suite Users <topbrai...@googlegroups.com> wrote:
ThxOne of the profiles we use for our cen standard smls is (RDFS+SHACL)So in a sense if equivalence is relevant here we already model with “2 x rdfs:subClassOf”.Wrt par. 1.5: guess it is ok to assume rdfs-entailment for most shacl processors (so that my shacl af rule for doing the same is obsolete/already taken care of). Would only be relevant when RDFS-entailment is “OFF”.The sentence:“SHACL uses the RDF and RDFS vocabularies, but full RDFS inferencing is not required.”Is a bit unclear: full RDFS inf. is not required does that mean that some limited form IS required? Or can there be no rdfs-entailm. at all? And what is “full”/”limited”? Etc.I am unsure whether my scenarios for CHECKING (not inferencing) the rdfs:subClassOf relations could be relevant
Thx for this whole rdfs/shacl discussion, I learned a lot,Michel
Dr. ir. H.M. (Michel) Böhms
Senior Data Scientist
To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/34d529f9e9d6450e95e036cea94c344e%40tno.nl.