Re: How general is Owlready2?

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']]