This may be a problem in OWL API, but just tracking here for now. Run these commands on the latest MONDO release:
curl -L -O 'http://purl.obolibrary.org/obo/mondo/releases/2023-07-03/mondo.owl' riot --validate mondo.owl # outputs some warnings about URN format in SWRL variables, but not fatal robot convert -i mondo.owl -o mondo.ttl riot --validate mondo.ttl # 15:17:40 ERROR riot :: [line: 212732, col: 100] Unrecognized (expected an RDF Term): [SEMICOLON]
The problem section of the file looks like this:
### http://purl.obolibrary.org/obo/MONDO_0000290 obo:MONDO_0000290 rdf:type owl:Class ; owl:equivalentClass [ owl:intersectionOf ( obo:MONDO_0005550 _:genid24281 rdf:type owl:Restriction ; owl:onProperty obo:RO_0014001 ; owl:someValuesFrom obo:NCBITaxon_5763 ) ; rdf:type owl:Class ] ; rdfs:subClassOf obo:MONDO_0002428 , obo:MONDO_0020067 , _:genid24281 ; obo:IAO_0000115 "A infectious disease involving the Naegleria fowleri." ; terms:conformsTo <http://purl.obolibrary.org/obo/mondo/patterns/infectious_disease_by_agent.yaml> ; oboInOwl:hasDbXref "DOID:0050242" , "GARD:0009554" , "MESH:C535275" , "SCTID:721816008" , "UMLS:C0300934" , "UMLS:C4303098" ; oboInOwl:hasExactSynonym "Naegleria fowleri infection" ; oboInOwl:hasRelatedSynonym "infections, Naegleria fowleri" ; oboInOwl:id "MONDO:0000290" ; oboInOwl:inSubset mondo:mondo_rare , mondo:rare ; rdfs:label "primary amebic meningoencephalitis" ; skos:exactMatch <http://identifiers.org/mesh/C535275> , <http://identifiers.org/snomedct/721816008> , <http://linkedlifedata.com/resource/umls/id/C0300934> , <http://linkedlifedata.com/resource/umls/id/C4303098> , obo:DOID_0050242 . _:genid24281 rdf:type owl:Restriction ; owl:onProperty obo:RO_0014001 ; owl:someValuesFrom obo:NCBITaxon_5763 .
In the intersection list you would expect the existential restriction to be enclosed in [ ]
, but instead there is a blank node ID _:genid24281
followed by invalid inline properties. The blank node ID is reused twice below, which it should not be (OWL is supposed to use fresh blank nodes for reference to a class expression). That's fine in turtle, but might suggest the source of the error.
Based on the type of expression, it's possible this is somehow related to robot relax
.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4