Hi Rong,
Well, my reason is that the specs explicitly state that it is possible.
Apart from text, description and comment, the specs also mention
provenance as another example for a key.
At least the Ocean Archetype Editor supports the input of any key here
as well.
Unfortunately, the specs don't restrict the exact nature of the key
other than stating that is a string.
So, as far as I understand, it might even be a key with spaces or other
undesired characters in it, which I don't think should be allowed.
V_IDENTIFIER as Saso chose seems to be the best choice here, even if it
would not work with spaces or other non V_IDENTIFIER characters.
Cheers,
Sebastian
Rong Chen wrote:
Hi Sebastian, Saso!
The underlying object model, ArchetypeTerm has a Map-based
implementation so it would be nice to allow any kind of key,value
pairs in ADL. Right now it's not very convenient modify the parser in
order to add new keys. Later on, when we move on to d-ADL for this
part of the archetypes, it will be much easier.
I am interested to know the usecase of extra keys here. Sebastian, can
you please elaborate on it?
Cheers,
Rong
On 7 May 2010 17:12, Sebastian Garde
<sebastian.garde@oceaninformatics.com> wrote:
Hi Saso,
good one! Thanks
I have checked it in together with a test case.
Cheers
Sebastian
Saso Rutar wrote:
Hi Sebastian,
You've probably been playing around with the adl.jj file. Technically,
the solution could look something like this:
ArchetypeTerm archetype_term() :
{
Token t;
String code;
String key;
String value = null;
ArchetypeTerm term;
}
{
"["
code = local_code_value()
{ term = new ArchetypeTerm(code); }
"]" <SYM_EQ> "<"
(
<SYM_TEXT> <SYM_EQ> "<"
value = string_value() { term.addItem("text", value); }
">" [ ";" ]
|
<SYM_DESCRIPTION_WORD> <SYM_EQ> "<"
value = string_value() { term.addItem("description", value); }
">" [ ";" ]
|
<SYM_COMMENT> <SYM_EQ> "<"
value = string_value() { term.addItem("comment", value); }
">" [ ";" ]
|
t = <V_IDENTIFIER> <SYM_EQ> "<"
value = string_value()
{
key = t.image;
term.addItem(key, value);
}
">" [ ";" ]
)*
">"
{ return term; }
}
If you just replace the archetype-term definition code with the upper
snippet, it should work. As for the update of the central svn
repository, you should probably contact Rong Chen...
Saso
Hi all,
The current Java parser does not support keys other than text,
description and comment for an archetype term in the ontology.
The specs do allow any key here (although they don't really talk about
what kind of characters are supported in such a key as far as I can tell)
I.e. the following example would fail to parse:
ontology
[...]
term_definitions = <
["en"] = <
items = <
["at0000"] = <
text = <"test">;
description = <"test">
*anotherkey = <"another key value">*
I tried to extend the parser to support any key here (or at least any
key without spaces etc. in it), but in the end I gave up.
I thought maybe someone has a smart idea how to support this in the
Java Parser?
Regards
Sebastian
_______________________________________________
Ref_impl_java mailing list
Ref_impl_java@openehr.org
http://lists.chime.ucl.ac.uk/mailman/listinfo/ref_impl_java
_______________________________________________
Ref_impl_java mailing list
Ref_impl_java@openehr.org
http://lists.chime.ucl.ac.uk/mailman/listinfo/ref_impl_java
--
 |
Dr
Sebastian Garde
Senior Developer
Ocean
Informatics
|
Dr. sc.
hum., Dipl.-Inform. Med, FACHI
Skype:
gardeseb
|