Xinze LYU
Xinze LYU

Reputation: 105

Annotation in OWL API

I am learning how to use OWL API, I found this API is not the same as the API I used before. I am trying to figure out some simple concepts.I can't understand "Annotation". I get these from wiki:

The OWL abstract syntax presents an ontology as a sequence of annotations, axioms and facts. Annotations carry machine and human oriented meta-data.

If you are familiar with the owl, can you give me an example? What does "machine and human oriented meta-data" mean? Thanks a lot.


Update:


Thanks for answering me. I also want to write a example:

<http://data.doremus.org/performance/4db95574-8497-3f30-ad1e-f6f65ed6c896>
    a                      mus:M42_Performed_Expression_Creation ;
    ecrm:P3_has_note       "Créée par Teodoro Anzellotti, son commanditaire, en novembre 1995 à Rotterdam" ;
    ecrm:P4_has_time-span  <http://data.doremus.org/performance/4db95574-8497-3f30-ad1e-f6f65ed6c896/time> ;
    ecrm:P9_consists_of    [ a                        mus:M28_Individual_Performance ;
                             ecrm:P14_carried_out_by  "Teodoro Anzellotti"
                           ] ;
    ecrm:P9_consists_of    [ a                        mus:M28_Individual_Performance ;
                             ecrm:P14_carried_out_by  "à Rotterdam"
                           ] ;
    efrbroo:R17_created    <http://data.doremus.org/expression/2fdd40f3-f67c-30a0-bb03-f27e69b9f07f> ;
    efrbroo:R19_created_a_realisation_of
            <http://data.doremus.org/work/907de583-5247-346a-9c19-e184823c9fd6> ;
    efrbroo:R25_performed  <http://data.doremus.org/expression/b4bb1588-dd83-3915-ab55-b8b70b0131b5> .

I think there is annotation in this example, the object of "ecrm:P9_consists_of" is not annotation. If I want to add annotation to ecrm:P3_has_not, how to do that? Thanks a lot.

Upvotes: 1

Views: 1078

Answers (1)

ssz
ssz

Reputation: 835

the simplest example of owl-annotation is a annotation assertion, e.g:

_:x rdfs:comment "this is a comment"@en 

where predicate rdfs:comment - is a builtin annotation property, and there are 8 such builtin properties. you can also provide your own annotation properties. you can also make annotation of annotations and build a tree of annotations. The example of сomplex nested annotations (turtle):

[ a                      owl:Annotation ;
  rdfs:comment           "indi-comment" ;
  owl:annotatedProperty  rdfs:comment ;
  owl:annotatedSource    [ a                      owl:Axiom ;
                           rdfs:comment           "INDI-ANN" ;
                           owl:annotatedProperty  rdf:type ;
                           owl:annotatedSource    :Indi ;
                           owl:annotatedTarget    :SomeClass1
                         ] ;
  owl:annotatedTarget    "INDI-ANN"
] .

The same in functional syntax:

ClassAssertion(Annotation(Annotation(rdfs:comment "indi-comment"^^xsd:string) rdfs:comment "INDI-ANN"^^xsd:string) <#SomeClass1> <#Indi>)

Here we have class-assertion axiom, which binds named-individual ':Indi' with class ':SomeClass1'; this axiom is annotated with rdfs:comment="INDI-ANN", which, in its turns, has annotation rdfs:comment(annotation-property)="indi-comment"(annotation-value).

I think functional-syntax representation can be considered as 'human-oriented meta-data', while turtle as 'machine-oriented' one.

In general, annotation is a way to provide additional (and optional) information about owl-statements (owl-axioms). It could be a version, a link, some custom annotation-property, etc.

Remark: it is about OWL2 specification rather then about OWL-API. Any API which meets specification must provide the similar way to handle owl-annotations.

Upvotes: 2

Related Questions