It is not possible to explicitly refer to e.g. foaf:Person from the FOAF
ontology, i.e. sentences like (1) are not supported.
(1) Every my:person is a foaf:Person and every foaf:Person is a my:person.
==Solution==
A simple solution would leave ACE/APE unchanged. The idea: allow prefixing
all the content words in the snippet with the namespace prefixes registered
in Protege (check which characters are allowed in a prefix), e.g. allow
snippets like:
(2) yahoo:John knows google:John.
When the snippet is parsed, the prefixes are analysed and the corresponding
lexicon entries are generated on the bases of the ACE View lexicon, e.g. if
the Protege prefix definitions are:
default: default.org
google: google.com
yahoo: yahoo.com
and the lexicon is:
google.com#John: John
yahoo.com#John: John
default.org#know: knows, know, known
Then generate a new snippet and its corresponding lexicon to be sent to APE
as follows:
`yahoo:John` knows `google:John`.
pn(sg, yahoo:John, yahoo.com#John)
pn(sg, google:John, google.com#John)
tv(sg, knows, default.org#know)
i.e. the wordform argument in the lexicon would contain the prefix unless
the word comes from the default namespace; and the lemma argument would be
a full IRI.