QCR vs. non-QCR

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

QCR vs. non-QCR

Aqualung
[nabble did not post my previous message correctly, which is why I am resending it via email]

Does Protege still allow non-qualified cardinality restrictions? I have the following Turtle bit:
  test:A rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty test:isIssuedBy ;
    ] ;
This amounts in Manchester syntax to 
test:A rdfs:subClassOf [test:isIssuedBy exactly 1]
Interestingly, Protege construes this as 
test:A rdfs:subClassOf [test:isIssuedBy exactly 1 owl:Thing]
The problem is that the property
test:isIssuedBy
 has a certain well-specified range, range that is not 
owl:Thing
 (though certainly included in it). Why is it that Protege turns my emphatically non-QCR into a QCR?  

--
"People think that I must be a very strange person. This is not correct. I have the heart of a small boy. It is in a glass jar on my desk." -- Stephen King

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: QCR vs. non-QCR

Matthew Horridge-2
Administrator
Hi,

[nabble did not post my previous message correctly, which is why I am resending it via email]

Does Protege still allow non-qualified cardinality restrictions? I have the following Turtle bit:
  test:A rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty test:isIssuedBy ;
    ] ;
This amounts in Manchester syntax to 
test:A rdfs:subClassOf [test:isIssuedBy exactly 1]
Interestingly, Protege construes this as 
test:A rdfs:subClassOf [test:isIssuedBy exactly 1 owl:Thing]

"test:isIssuedBy exactly 1 owl:Thing"

and

"test:isIssuedBy exactly 1"

are equivalent.  In the second one, owl:Thing is implicit.  See the OWL 2 guide for more information on this:


The problem is that the property
test:isIssuedBy
 has a certain well-specified range, range that is not 
owl:Thing
There’s no problem from a semantic point of view with this.  Nothing is “cancelled out” by saying this or is “incompatible” or inconsistent with any other range statements in the ontology, whatever they may be.  Say the range is “ClsA” – the intersection of owl:Thing and ClsA is ClsA.  Hence “owl:Thing and ClsA” is equivalent to “ClsA”.

 (though certainly included in it). Why is it that Protege turns my emphatically non-QCR into a QCR?  

Under the hood, Protege cannot distinguish between the two when the filler is owl:Thing.  However, some concrete syntaxes do make a distinction – any RDF based syntax does.  Is this distinction important for you?

Cheers,

Matthew



_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user