protegeproject / lucene-search-tab

A Protégé 5 plugin providing a GUI for Lucene search
Other
1 stars 5 forks source link

Add indexing for annotation-within-annotation #8

Open johardi opened 8 years ago

tudorache commented 8 years ago

We need some more clarification. Maybe @fragosog can also jump in.

Consider the following example adapted from the NCIt (same one used for the csv-export):

screen shot 2016-09-27 at 3 05 41 pm

Would you want to be able to specify a search:

(similar to the nested search)

In OWL, it is possible to have arbitrarily nested annotations, so, to solve the indexing and search in a generic way, we would need to support queries like:

?entity.definition.def-source.annotProp1.annotProp2.annotProp3

To implement a proper nested search for annotations-on-annotations, we need to extend the API and the UI quite considerably.

One (hacky) partial solution would be to index the property value together with the annotations, i.e., create a text representation of the value + annotations. This partial solution would probably give results that are not as precise as a proper nested search would be, but it may be enough. However, this partial solution is far from ideal.

Ideally, we should be able to index and search the annotations on any axiom type (not just annotation assertions).

fragosog commented 8 years ago

Yes, we'd like to be able to do a search along the lines that you describe in there: get all the definitions where the def-source = 'NCI'. I think it's a natural for a nested search.

So the issue of deeply nested annotations, like i mentioned in https://github.com/protegeproject/csv-export-plugin/issues/1, seems to be an edge case at the moment, and since Protege doesn't support them in the UI, i'm not certain that we need to support them in searches as people wouldn't be creating them.

I agree, we should support annotations on other things, like restrictions on a class, or disjointness axioms. I think more people would annotate e.g. disjointness than annotations on annotations (i.e. resulting in an annotation on an annotation of an annotation value).

Always possible that i have misunderstood, we can have a call or skype to clarify.

tudorache commented 8 years ago

Sounds good. Just to clarify, Protege does not currently support the editing in the UI of more than 1 level-deep annotations on annotations, but it will display them fine if they are used in the ontology. I've seen other ontologies using 2-levels deep annotations, and Protege could display them properly.

fragosog commented 8 years ago

That's interesting. Do you have any URLs handy? I wouldn't mind taking a look at these 2-level annotations.

tudorache commented 8 years ago

I am attaching a sample ontology with nested annotations here for documentation purposes.

screen shot 2016-09-29 at 11 41 39 am

nestedAnnotations.zip