Annotation property : modify domain

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Annotation property : modify domain

jlbellier
Hello,

I have different annotations in my ontology, and defined for some of them a domain, to set up the classes it applies to.

I noticed that in Protege, in the annotation description window, there is only the possibility to define one class. I would like to set up a formula like <class1> or <class2>, as I do this for object properties.

Is it possible ?

I edited my OWL file in Notepad++ and entered a <UnionOf> formula in the domain property, and when I go back to protegé, it appears like a generic id : _:genid2147483648

If I do this, is there an easy ay to get the source definition of this id (i.e. the 'or' formula), especially with owlready2 ?

So I wonder if there is a way to achive this. My end users are familiar with Protege.

Thank you in advance.

Best regards,
Jean-Luc.
Reply | Threaded
Open this post in threaded view
|

Re: Annotation property : modify domain

Jiba
Administrator
Hello,

Annotation properties are not supposed to be used by reasoners, so this might explain why class constructs like union are not accepted in their domain in Protégé. Nevertheless, Owlready manages the domain attribute of all types of properties in the same way, so you can use unions in annotation property domains with Owlready. I have no idea whether other tools (like Protégé) will support that or not.

You may define a domain with a union as follows :

my_annotation.domain.append(class1 | class2)

and you can analyze the content as follows:

my_annotation.domain[0].Classes # = [class1, class2]


Another solution would be to create a new class and to declare it as equivalent to the union, and then to use it in the domain. This would probably be better supported by Protégé.

Best regards,
Jiba