Open yoavnash opened 4 years ago
Thanks for the error messages. QUDT has been developed using the TopQuadrant suite of ontology editing tools. However, you aren't the first person to note that Protege gives errors when loading QUDT. I will try to spend a little time to better understand what it is that Protege is complaining about.
related: https://github.com/ESIPFed/sweet/issues/84, https://github.com/owlcs/owlapi/issues/571
I got the QUDT ttl files to load in Protege without all the bogus error classes by :
Since protege rewrites all the triples in different order, I can't tell what if any changes were actually made in the .ttl files when saved... - git diff shows the whole file being different.
Thanks so much for diagnosing the problem here! It's good to know the root cause. Interesting that the imports must be local... We will discuss.
When I load the unit ontology into Protege 5.5 I get many errors but I don't know how to interpret them in terms of cause. I see that the offending QUDT class, property, or instance is subclassed off a Protege Error Class. The scant Protege documentation says to look at the usage of the Error Class to find out what the problem is but I am not finding any help there.
In order to fix these errors I need to be able to understand what these errors really mean. When @smrgeoinfo says he downlopaded the dtype and vaem graphs, how was it that he decided this was necessary when the downloaded version would have the same content as the networked version? When he says he created catalog files in the schema and vocab directories, what was the reasoning behind that and what errors did this action resolve? It seems that he had issues with non-local imports, and I have run into this kind of problem in the past but I would like to hear what the problem was perhaps more than the solution.
By the way, how long did it take to perform step #3? I could see this taking quite some time. Once I find out what the problems are we can discuss whether and how to resolve them.
My experience is that Protégé throws these a lot for (a) owl:Restriction classes, where (b) Dublin Core is involved, which is 'RDF' and not very good OWL. Protégé is very much an OWL tool, and requires OWL consistency, while TopBraid is more RDF/RDFS oriented.
And as @smrgeoinfo points out, the RDF serialiser in TopBraid writes the file in a different order to OWL-API which is used by Protege so it is difficult to run diffs. If you want to use GitHub diffs, then you need to choose one of these as the local standard, and rewrite the file using the locally preferred tool first. It could probably be automated with a pre-receive hook, but I don't have the skill to do that.
Hi I have a potentially related or similar error from opening qudt-s: http://qudt.org/schema/qudt/ in Protege 5.5 from the url and then trying to execute HermiT reasoner on it:
ERROR 17:24:34 An error occurred during reasoning: Non-simple property '<http://qudt.org/schema/qudt/isScalingOf>' or its inverse appears in the cardinality restriction 'ObjectMaxCardinality(1 <http://qudt.org/schema/qudt/isScalingOf> owl:Thing)'..
java.lang.IllegalArgumentException: Non-simple property '<http://qudt.org/schema/qudt/isScalingOf>' or its inverse appears in the cardinality restriction 'ObjectMaxCardinality(1 <http://qudt.org/schema/qudt/isScalingOf> owl:Thing)'.
at org.semanticweb.HermiT.structural.ObjectPropertyInclusionManager.rewriteAxioms(ObjectPropertyInclusionManager.java:125) ~[na:na]
at org.semanticweb.HermiT.structural.OWLClausification.preprocessAndClausify(OWLClausification.java:161) ~[na:na]
at org.semanticweb.HermiT.Reasoner.loadOntology(Reasoner.java:211) ~[na:na]
at org.semanticweb.HermiT.Reasoner.<init>(Reasoner.java:202) ~[na:na]
at org.semanticweb.HermiT.Reasoner.<init>(Reasoner.java:176) ~[na:na]
at org.semanticweb.HermiT.ReasonerFactory.createHermiTOWLReasoner(ReasonerFactory.java:51) ~[na:na]
at org.semanticweb.HermiT.ReasonerFactory.createReasoner(ReasonerFactory.java:19) ~[na:na]
at org.protege.editor.owl.model.inference.ReasonerUtilities.createReasoner(ReasonerUtilities.java:20) ~[na:na]
at org.protege.editor.owl.model.inference.OWLReasonerManagerImpl$ClassificationRunner.ensureRunningReasonerInitialized(OWLReasonerManagerImpl.java:428) ~[na:na]
at org.protege.editor.owl.model.inference.OWLReasonerManagerImpl$ClassificationRunner.run(OWLReasonerManagerImpl.java:386) ~[na:na]
at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_121]
Basically I like to evaluate which OWL profile QUDT is belonging to. @steveraysteveray did you play around with different OWL-DL reasoners so far?
As it happens, I'm using the SHACL version of QUDT in another project where we use the OWL2 RL profile. I'm currently working through some issues that came up regarding the implications of owl:sameAs that seems to be replicating what I thought were annotation properties, and thus violating some cardinality constraints of 1. Having said that, QUDT doesn't "belong" to any OWL profile, at least not intentionally!
Another protege user here. I tried opening the QuantityKind vocabulary but got these errors when reasoning with Pellet:
Reason for inconsistency: Literal value "QUDT Dimension Vectors is a vocabulary that extends QUDT Quantity Kinds with properties that support dimensional analysis. There is one dimension vector for each of the system\'s base quantity kinds. The vector\'s magnitude determines the exponent of the base dimension for the referenced quantity kind
"^^HTML does not belong to datatype string
What I did is deleted the rdf:html data type and this error was removed.
Reason for inconsistency: Individual http://qudt.org/vocab/quantitykind/SoundExposureLevel has more than 1 values for property http://qudt.org/schema/qudt/latexDefinition violating the cardinality restriction
I deleted from the the SoundExposureLevel
individual the data property latexDefinition
but I still got the error. So I also deleted its other data property symbol
and now it works.
Do you have any other suggestion on how the vocabulary could be loaded correctly for reasoning?
I tried only loading the qudt schema directly over the URL http://qudt.org/2.1/schema/qudt
with protege and reasoning works but with the vocabulary QuantityKinds Im having these problems.
We are looking into this. Thanks for pointing this out.
So far the problem I mentioned in the previous https://github.com/qudt/qudt-public-repo/issues/62#issuecomment-1781813198 now works fine with Pellet in Protege 5.50 :)
When I try to open the unit ontology with Protégé 5.5, I get the following errors:
Am I doing something wrong?