Wimmics/corese

RDF format profile test records

NicoRobertIn opened this issue · 1 comments

Is your feature request related to a problem? Please describe.
The output format of the profile tests (the output message when we check if an ontology is, for instance, OWL EL comptaible) is so close to a turtle format RDF graph that a small modification could allow to have a turtle RDF graph that would be stand formatted and reusable by other softwares

Describe the solution you'd like
The error report has this format:

OWL EL not correct: 4 failures

1. Anonymous individuals are not supported

[a owl:NamedIndividual ;
  aPrefix:aSuffix \"a litteral"@en]
    
2. Anonymous individuals are not supported

<https://another.linl/AConcept> a anotherPrefix:AnotherTerm ;
    anotherPrefix:anotherSuffix [ a owl:NamedIndividual ;
        <https://aLast.link/anotherSuffix> ]

It is just missing some dots at the end of statements and a small structuration of the report to have a full formatted turtle RDF graph format. An alignment with an existing ontology like EARL would be highly appreciated

Describe alternatives you've considered
An external parsing is possible but this is obviously relying on the actual structure of the report that can eventually change in future CORESE versions for a reason or another, and giving the responsability to CORESE of structuring its own reports would be great

Otherwise would it be possible to have directly two arrays, one containing the error messages and one for their related turtle data snippets, instead of a string that aggregates everything, which requires to parse the data afterwards?

Example:

Instead of haveing the string

"""
OWL EL not correct: 4 failures

1. Anonymous individuals are not supported

[a owl:NamedIndividual ;
  aPrefix:aSuffix \"a litteral"@en]
    
2. Anonymous individuals are not supported

<https://another.linl/AConcept> a anotherPrefix:AnotherTerm ;
    anotherPrefix:anotherSuffix [ a owl:NamedIndividual ;
        <https://aLast.link/anotherSuffix> ]
"""

It would be very handy to have this data to process:

[
"Anonymous individuals are not supported",
"Anonymous individuals are not supported"
]

[
"""
[a owl:NamedIndividual ;
  aPrefix:aSuffix \"a litteral"@en]
""",
"""
<https://another.linl/AConcept> a anotherPrefix:AnotherTerm ;
    anotherPrefix:anotherSuffix [ a owl:NamedIndividual ;
        <https://aLast.link/anotherSuffix> ]
"""
]