Posted by
jos lehmann on
URL: http://owlready.306.s1.nabble.com/How-general-is-Owlready2-tp2531p2551.html
Hi Jiba
thank you for the Info.
I will have to work further with owlready to understand its pros/cons ratio when used on concrete examples.
Presently I gather that owlready is able to support more expressive versions of OWL than, for instance, a repo like GraphDB.
Regarding the Lexing error, it has to do with the prefix onto. .
Please note that I initially was querying an .owl file and could produce the Lexing error.
After reloading the environment in dataiku, the .owl file could no longer be parsed (see A below). I am not sure why.
So, I loaded an .rdf version of the ontology instead. I got the Lexing error when using prefix onto. (see B-1-) and no error when using PREFIX (see B-2-).
Please let me know if I'm doing something wrong.
Kind regards,
Jos
A
onto_path = []
onto_path.append("/home/dataiku/dss/managed_folders/JOSLIFE/Do1ezEMa")
onto = get_ontology("/home/dataiku/dss/managed_folders/JOSLIFE/Do1ezEMa/trend-ontologyV3--.owl")
onto.load()
OwlReadyOntologyParsingError: OWL/XML parsing error in file /home/dataiku/dss/managed_folders/JOSLIFE/Do1ezEMa/trend-ontologyV3--.owl, line 92, column 37.
B
onto_path = []
onto_path.append("/home/dataiku/dss/managed_folders/JOSLIFE/Do1ezEMa")
onto = get_ontology("/home/dataiku/dss/managed_folders/JOSLIFE/Do1ezEMa/trend-ontologyV3--N.rdf")
onto.load()
-1-
list(default_world.sparql("""
SELECT ?label
WHERE { onto.Turnover rdfs:label ?label . }
"""))
---------------------------------------------------------------------------
LexingError Traceback (most recent call last)
<ipython-input-12-3870767bbedf> in <module>
4 SELECT ?label
5 WHERE { onto.Turnover rdfs:label ?label . }
----> 6 """))
~/dss/code-envs/python/py3-IE-update-1/lib/python3.6/site-packages/owlready2/namespace.py in sparql(self, sparql, params, error_on_undefined_entities)
510 def sparql(self, sparql, params = (), error_on_undefined_entities = True):
511 import owlready2.sparql.main
--> 512 query = self._prepare_sparql(sparql, error_on_undefined_entities)
513 return query.execute(params)
514
~/dss/code-envs/python/py3-IE-update-1/lib/python3.6/site-packages/owlready2/namespace.py in _prepare_sparql(self, sparql, error_on_undefined_entities)
516 def _prepare_sparql(self, sparql, error_on_undefined_entities):
517 import owlready2.sparql.main
--> 518 return owlready2.sparql.main.Translator(self, error_on_undefined_entities).parse(sparql)
519
520 def prepare_sparql(self, sparql, error_on_undefined_entities = True): # lru_cache does not handle optional args
~/dss/code-envs/python/py3-IE-update-1/lib/python3.6/site-packages/owlready2/sparql/main.py in parse(self, sparql)
72 self.escape_mark += "รง"
73 CURRENT_TRANSLATOR.set(self)
---> 74 self.main_query = PARSER.parse(LEXER.lex(sparql))
75
76 sql = ""
~/dss/code-envs/python/py3-IE-update-1/lib/python3.6/site-packages/owlready2/rply.py in parse(self, tokenizer, state)
422 if lookaheadstack: lookahead = lookaheadstack.pop()
423 else:
--> 424 try: lookahead = next(tokenizer)
425 except StopIteration: lookahead = None
426
~/dss/code-envs/python/py3-IE-update-1/lib/python3.6/site-packages/owlready2/rply.py in next(self)
347 return token
348 else:
--> 349 raise LexingError('Lexing error near "%s..."!' % self.s[self.idx : self.idx + 15], self.idx)
350
351 __next__ = next
LexingError: ('Lexing error near "onto.Turnover r..."!', 49)
-2-
list(default_world.sparql("""
PREFIX trdo: <
https://www..../trend-ontology#>
SELECT ?label
WHERE { trdo:Turnover rdfs:label ?label . }
"""))
[['Turnover']]