Kinda possibly but you may not be entirely at fault. On the other hand, I don't know enough about the library you are trying to use and how it behaves.
First do this:
for a in annotation_properties:
print(a)
rdf-schema.isDefinedBy
rdf-schema.seeAlso
obo.IAO_0000116
1.1.contributor
terms.license
0.1.homepage
0.1.mbox
obo.BFO_0000179
obo.IAO_0000115
obo.IAO_0000232
obo.BFO_0000180
obo.IAO_0000119
obo.IAO_0000111
obo.IAO_0000112
obo.IAO_0000117
obo.IAO_0000118
obo.IAO_0000412
obo.IAO_0000600
obo.IAO_0000601
obo.IAO_0000602
obo.IAO_0010000
1.1.member
My guess is that Owlready2 does something dumb such as reads and parses URIs and takes the bit between the last / and # (or something weirder depending on case) to create its own namespace abbreviations. If you look at the files, you will see that the annotation properties in the obo namespace (they are nearly all IAO but a few) all come with an rdfs:label, for example:
For these you can retrieve the label.
However, the somewhat background stuff (RDFS, FOAF, Dublin Core) that doesn't quite belong is only mentioned and has no label. For example,
For these, in principle, you get no label so you end up with your empty list in your call.
However, for the RDFS ones, because you get 'rdf-schema.', you just choke on '-'.
for a in annotation_properties:
if not '-' in str(a):
l = a.label.first()
else:
l = "dunno cause it's broken because of '-'"
print(f"{a} has label '{l}'")
rdf-schema.isDefinedBy has label 'dunno cause it's broken because of '-''
rdf-schema.seeAlso has label 'dunno cause it's broken because of '-''
obo.IAO_0000116 has label 'editor note'
1.1.contributor has label 'None'
terms.license has label 'None'
0.1.homepage has label 'None'
0.1.mbox has label 'None'
obo.BFO_0000179 has label 'BFO OWL specification label'
obo.IAO_0000115 has label 'definition'
obo.IAO_0000232 has label 'curator note'
obo.BFO_0000180 has label 'BFO CLIF specification label'
obo.IAO_0000119 has label 'definition source'
obo.IAO_0000111 has label 'editor preferred term'
obo.IAO_0000112 has label 'example of usage'
obo.IAO_0000117 has label 'term editor'
obo.IAO_0000118 has label 'alternative term'
obo.IAO_0000412 has label 'imported from'
obo.IAO_0000600 has label 'elucidation'
obo.IAO_0000601 has label 'has associated axiom(nl)'
obo.IAO_0000602 has label 'has associated axiom(fol)'
obo.IAO_0010000 has label 'has axiom label'
1.1.member has label 'None'