# Ace or project files **Category:** [Technical (archive)](https://discourse.openehr.org/c/technical-archive/156) **Created:** 2006-04-26 19:31 UTC **Views:** 7 **Replies:** 22 **URL:** https://discourse.openehr.org/t/ace-or-project-files/14530 --- ## Post #1 by @system Hi, I have some problems with the Eiffel\-sources\. I made my way to understanding and even loving the Eiffel compiler, and now I want to use its power for better understanding of the openehr kernel\. I start puzzling what belongs to what and, oh, I discover classes with duplicate names\. I found now duplicate APPLICATION, both in file application\.e \(on different locations\) and VERSIONED\_FOLDER one in ref\_impl\_eiffel\\libraries\\openehr\\src\\rm\\ehr\\ehr\_directory\.e and one in ref\_impl\_eiffel\\libraries\\openehr\\src\\rm\\common\\directory\\versioned\_folder\.e Maybe there is an instruction how to handle those duplicate classnames, because my Eiffel\-compiler does not eat them\. Maybe there are ace\-files, or some other way to help me out, if yes, please tell me where they are, I had my source trees with SVN, but I had to make distinctions, for not to get everything, and maybe I missed them thanks Bert Verhees --- ## Post #2 by @thomas.beale Bert Verhees wrote: > Hi, > > I have some problems with the Eiffel\-sources\. > I made my way to understanding and even loving the Eiffel compiler, and now I want to use its power for better understanding of the openehr kernel\. firstly, not much of the Eiffel kernel internals are yet implemented in the Eiffel version \- the Java version is the most advanced\. The Eiffel kernel has to wait until I have more time;\-\) > I start puzzling what belongs to what and, oh, I discover classes with duplicate names\. > > I found now duplicate > APPLICATION, both in file application\.e \(on different locations\) this is natural \- there are probably 5 or more applications in the archive\. You have to build each system from the relevant Ace file\. Have you looked at the developer's page? http://my.openehr.org/wsvn/ref_impl_eiffel/TRUNK/developer_page.htm?op=file&rev=0&sc=0. Also, make sure you have done a recent update from subversion\. > and > VERSIONED\_FOLDER > one in > ref\_impl\_eiffel\\libraries\\openehr\\src\\rm\\ehr\\ehr\_directory\.e > and one in > ref\_impl\_eiffel\\libraries\\openehr\\src\\rm\\common\\directory\\versioned\_folder\.e > I will chekc this, but at the moment, my copy of this system compiles correctly\. \- thomas --- ## Post #3 by @Adrian_Wilkins Aye ; this would appear to imply that classes can share names as long as they don't appear in the same cluster\. http://www.pi.informatik.tu-darmstadt.de/inf1/eiff-ref/chap3.htm#cluster But when I add a class using EiffelStudio, it just complains that there is already a class of the same name, regardless of which cluster you add it in\.\.\. the only way I could get around this was\.\.\.\. \* Create a class with the filename desired, but a different classname\. \* Manually edit the class name in the file to the desired classname \* Compile \(this updates the name in the cluster treeview\) Please someone \(Mr Beale?\) tell us it's not really that fiddly\. I've heard complaints about the "quirkiness" of EiffelStudio on this list, and I'm beginning to see why\. Of course, Bert doesn't say whether he is using it :\-\) --- ## Post #4 by @thomas.beale Adrian Wilkins wrote: > Aye ; this would appear to imply that classes can share names as long > as they don't appear in the same cluster\. > > http://www.pi.informatik.tu-darmstadt.de/inf1/eiff-ref/chap3.htm#cluster > > But when I add a class using EiffelStudio, it just complains that > there is already a class of the same name, regardless of which cluster > you add it in\.\.\. the only way I could get around this was\.\.\.\. > > \* Create a class with the filename desired, but a different classname\. > \* Manually edit the class name in the file to the desired classname > \* Compile \(this updates the name in the cluster treeview\) > > Please someone \(Mr Beale?\) tell us it's not really that fiddly\. > Eiffel currently does not support namespaces, so it means that if you have an Ace file that mentions 2 clusters \(=packages\) each with a class of the same name, it won't work\. In practice this doesn't matter in software you have control over\. It can create a problem when you want to integrate with an external package, in in openEHR in fact we had to rename a couple of classes due to this\. But \- as I have said before, there is nothing forcing people to use Eiffel\. You can use the Java or \(soon to be published\) C\#\.Net implementations of openEHR that are underway\. A Release 1\.0\-compliant version of the Java classes will be uploaded soon\. Since people seem to find Eiffel a strange choice, I will simply say that I continue to use Eiffel because it is far more powerful than these other languages \(and I have to say, working somewhat more closely than usual with the Java effort, I am continually amazed at how semantically weak Java is \- there are so many things you just can't do easily\.\.\.\)\. And we use it to do basic formal testing on the openEHR models, since Eiffel implements everything in UML\+OCL\. I recommend it to anyone interested in safety, correctness, and writing as few lines of code as possible\. Recently it was open sourced, and now is offered under a dual license\. On the other hand, there are various reasons why people use other languages, and they should not take my remarks above to mean that a\) openEHR needs Eiffel \(it doesn't\) or b\) that good software can't be written in other languages \(it can; it just takes longer to write the same code, but due to larger amounts of available libraries and tools, there are often more things you can do\.\)\. hope this answers a few frequent questions\. \- thomas beale --- ## Post #5 by @system > Aye ; this would appear to imply that classes can share names as long > as they don't appear in the same cluster\. > > http://www.pi.informatik.tu-darmstadt.de/inf1/eiff-ref/chap3.htm#cluster > > But when I add a class using EiffelStudio, it just complains that > there is already a class of the same name, regardless of which cluster > you add it in\.\.\. the only way I could get around this was\.\.\.\. > > \* Create a class with the filename desired, but a different classname\. > \* Manually edit the class name in the file to the desired classname > \* Compile \(this updates the name in the cluster treeview\) > > Please someone \(Mr Beale?\) tell us it's not really that fiddly\. > > I've heard complaints about the "quirkiness" of EiffelStudio on this > list, and I'm beginning to see why\. Of course, Bert doesn't say > whether he is using it :\-\) I am using EiffelStudio, and in the past I never had complains from the compiler like that, but I will investigate it further, and come back to this As Thomas says, the Eiffel sources are not up top date, and I do not have much time, regretly, so, too bad \.\.\.\.\.\. Thanks Bert --- ## Post #6 by @system > > this is natural \- there are probably 5 or more applications in the > archive\. You have to build each system from the relevant Ace file\. Have > you looked at the developer's page? > http://my.openehr.org/wsvn/ref_impl_eiffel/TRUNK/developer_page.htm?op=file > &rev=0&sc=0\. Maybe stupid, but I didn't look at that page, I never saw it\. I''ll do now, and come back to this Thanks bert --- ## Post #7 by @thomas.beale I have just fixed one problem; please do a new update from Subversion and recompile\. If there is enough interest in the Eiffel version of openEHR, I will get an Eiffel project group list created and we can operate within that, and avoid annoying the main list with such details\. People who are interested in that please let me know\. \- thomas beale Bert Verhees wrote: --- ## Post #8 by @thomas.beale Bert Verhees wrote: >> this is natural \- there are probably 5 or more applications in the >> archive\. You have to build each system from the relevant Ace file\. Have >> you looked at the developer's page? >> http://my.openehr.org/wsvn/ref_impl_eiffel/TRUNK/developer_page.htm?op=file >> &rev=0&sc=0\. >>     > Maybe stupid, but I didn't look at that page, I never saw it\. > I''ll do now, and come back to this >   See the "Developers" section on the Eiffel project home page at http://svn.openehr.org/ref_impl_eiffel/TRUNK/project_page.htm If you think we can make the web pages clearer, please let us know\. \- thomas --- ## Post #9 by @system The link to the developer\-page is a bit hidden below, easy to miss\. I am not professional in usability in websites, but for me there are a few golden rules, \(you asked for it\!\) --- ## Post #10 by @system I would appreciate that, for following reasons: \- It could give us a platform\-independent way of describing the openehr\-kernel\. Eiffel is easy to understand and easy to translate to most other languages\. The only problem I can think of is that many languages do not support multiple inheritance, but there is a workaround for that, using interfaces\. \- I discovered that in my opinion there is a need for a formal point of where development of specificitions is\. I noticed this week that some PDF's are not completely up to date\. It really is safd when one spents an afternoon trying to understand something which is skipped from the formal specifications\. A formal checkpoint makes it always possible to find out what really is the truth\. And there are some things in the advantage of Eiffel \(for those who don't know\): \- EiffelStudio is free and even open sourced now \(for non\-commercial use\)\. It is a bit strange, and I must urge people to follow the instructions, takes about an afternoon to learn how to handel the IDE, there is a good instruction on the website: http://docs.eiffel.com/eiffelstudio/general/guided_tour/environment/index.html Also follow the presentations from the website\. And there is a very helpful and friendly Eiffel\-community on comp\.lang\.eiffel\. Without any problem the even help with stupid questions\. They welcome new Eiffel\-users\. Takes some time, but it is easier to learn then most other languages \- Eiffel is a very effective Object Oriented Language, you can write almost anything with/in it\. It has some extra's, easy ways to find out which methods are inherited, dependency\-graphics, many more things in their IDE \- Eiffel has Design By Contract build in, you can do that in other languages to, but in Eiffel, some language features are really only there for this\. When you see the presentations on www\.eiffel\.com, you will see regards Bert Verhees --- ## Post #11 by @thomas.beale Bert Verhees wrote: > > \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- > Concluding, The openehr could use a makeover\. I know it is a lot of work, I know that people are proud of it, I don't want to be unfriendly or unpolite\. >   actually, we are not nearly so proud of the website as you might think \- most of us consider it is quite poor compared to good standards and presentation\. The problem is simply one of funding: we need to a\) change the technology to something more content management based \(e\.g\. Cocoon, mambo etc\), b\) employ someone to rebuild and maintain the site, and c\) ensure that the content is kept up to date\. At the moment, all we can do is stick with the basic web page technology since we don't have the resources to do otherwise\. However, for your amusement, I did try a few improvements to the Eiffel project page\.\.\.\.http://svn.openehr.org/ref_impl_eiffel/TRUNK/project_page.htm ;\-\) \- thomas beale --- ## Post #12 by @system > page\.\.\.\.http://svn.openehr.org/ref_impl_eiffel/TRUNK/project_page.htm ;\-\) Much better\! --- ## Post #13 by @thomas.beale Bert Verhees wrote: >   >> I have just fixed one problem; please do a new update from Subversion >> and recompile\. >> >> If there is enough interest in the Eiffel version of openEHR, I will get >> an Eiffel project group list created and we can operate within that, and >> avoid annoying the main list with such details\. People who are >> interested in that please let me know\. >>     > I would appreciate that, for following reasons: > \- It could give us a platform\-independent way of describing the openehr\-kernel\. Eiffel is easy to understand and easy to translate to most other languages\. The only problem I can think of is that many languages do not support multiple inheritance, but there is a workaround for that, using interfaces\. >   BTW, code can be recompiled on most machines to native code, because it goes via gcc or any other equivalent compiler \(MS vc\+\+ on windows\)\. We have recompiled the ADL workbench on a Mac and it works, with a couple of little annoying GUI problems\.\.\.well nothing's perfect, but that's not bad for no lines of code changed\. > \- I discovered that in my opinion there is a need for a formal point of where development of specificitions is\. I noticed this week that some PDF's are not completely up to date\. It really is safd when one spents an afternoon trying to understand something which is skipped from the formal specifications\. A formal checkpoint makes it always possible to find out what really is the truth\. >   I agree \- we are not always perfect in this regard\. But \- can you indicate what the particular problem was? Also, since you are working at the "bleeding edge", please use the 1\.1 candidate specs \- http://svn.openehr.org/specification/BRANCHES/Release-1.1-candidate/publishing/index.html \- thomas --- ## Post #14 by @system > > I agree \- we are not always perfect in this regard\. But \- can you > indicate what the particular problem was? Also, since you are working at > the "bleeding edge", please use the 1\.1 candidate specs \- > http://svn.openehr.org/specification/BRANCHES/Release-1.1-candidate/publish > ing/index\.html I wouldn't say that, But it is true that I am working with experimental code, but it uses the excellent java\-kernel from Rong Chen \(ACode\) There was a problem, but it was also my misunderstanding, I forgot how I came there, it had to do with EhrExtract\. I think, Iam wrong, and was my remark that the specifications are sometimes not up to date based on a very rarely occuring situation\. Bert --- ## Post #15 by @thomas.beale Bert Verhees wrote: >> I agree \- we are not always perfect in this regard\. But \- can you >> indicate what the particular problem was? Also, since you are working at >> the "bleeding edge", please use the 1\.1 candidate specs \- >> http://svn.openehr.org/specification/BRANCHES/Release-1.1-candidate/publish >> ing/index\.html >>     > I wouldn't say that, But it is true that I am working with experimental code, but it uses the excellent java\-kernel from Rong Chen \(ACode\) >   please note that this is only 0\.95 version of openEHR, and Yin Su Lim at UCL has been working hard on getting it up to Release 1\.0\. She will upload one set of changes today hopefully, which is the full set of compiling classes, but there is still a lot of work to go to rework the test cases etc, so don' expect miracles just yet\.\.\.\. > There was a problem, but it was also my misunderstanding, I forgot how I came there, it had to do with EhrExtract\. >   well that specification hasn't been re\-issued yet \- it will be in about a week's time, in draft form, for comment\. > I think, Iam wrong, and was my remark that the specifications are sometimes not up to date based on a very rarely occuring situation\. >   we certainly hope it is rare\! \- thomas --- ## Post #16 by @system Thomas Beale schreef: > Bert Verhees wrote: >>> I agree \- we are not always perfect in this regard\. But \- can you >>> indicate what the particular problem was? Also, since you are working at >>> the "bleeding edge", please use the 1\.1 candidate specs \- >>> http://svn.openehr.org/specification/BRANCHES/Release-1.1-candidate/publish >>> >>> ing/index\.html >>>     >> I wouldn't say that, But it is true that I am working with experimental code, but it uses the excellent java\-kernel from Rong Chen \(ACode\) >>   > > please note that this is only 0\.95 version of openEHR, and Yin Su Lim at UCL has been working hard on getting it up to Release 1\.0\. She will upload one set of changes today hopefully, which is the full set of compiling classes, but there is still a lot of work to go to rework the test cases etc, so don' expect miracles just yet\.\.\.\. There is a lot of work to do in this Release\-1\.0 I hope it will be done quick\. If I can do something, please let me know\. There is something I noticed, I don't know if it is on purpose\. I noticed that the Release\-0\.95 is not in sync with the TRUNK release, in fact, it is running behind \(maybe months\)\. This is, in my opinion, confusing, because when the next version \(Release\-1\.0?\) will enter TRUNK, it will never be possible again to retrieve an actual copy of Release\-0\.95\. In my opinion, but I am not a SVN\-maintainer, this could be solved by having a symlink between 0\.95 and TRUNK And create a new symlink when a new release will come into TRUNK Maybe I am wrong in understanding this perception of source\-code maintenance\. I am glad to learn every day, so please tell me, if I am wrong, where it is explained\. regards Bert Verhees --- ## Post #17 by @thomas.beale Bert Verhees wrote: > Thomas Beale schreef: > There is a lot of work to do in this Release\-1\.0 > I hope it will be done quick\. If I can do something, please let me know\. if you want to work on the Java kernel, please let us know\. > > There is something I noticed, I don't know if it is on purpose\. > I noticed that the Release\-0\.95 is not in sync with the TRUNK release, in fact, it is running behind \(maybe months\)\. you mean the 0\.95 branch of of ref\_impl\_java? That branch was declared 29/mar/2006\. Also for release 1\.0\. > > This is, in my opinion, confusing, because when the next version \(Release\-1\.0?\) will enter TRUNK, it will never be possible again to retrieve an actual copy of Release\-0\.95\. why not \- it has its own branch \- see http://my.openehr.org/wsvn/ref_impl_java/BRANCHES/?rev=0&sc=0 \- this is where it will be maintained for as long as it is needed\. hope this helps\. \- thomas --- ## Post #18 by @system Thomas Beale schreef: > Bert Verhees wrote: >> Thomas Beale schreef: >> There is a lot of work to do in this Release\-1\.0 >> I hope it will be done quick\. If I can do something, please let me know\. > > if you want to work on the Java kernel, please let us know\. If I can help, I would like to do some jobs, I don't know who coördinates it\. My reading/writing of java\-code is quite good, maybe there are small well defined jobs to do, for easy step in the project\. Or easy classes, or writing class\-bodies, something like that\. Do not hesitate to ask me, also if you think of something yourself\. I could maybe spent average one hour everyday\. >> There is something I noticed, I don't know if it is on purpose\. >> I noticed that the Release\-0\.95 is not in sync with the TRUNK release, in fact, it is running behind \(maybe months\)\. > > you mean the 0\.95 branch of of ref\_impl\_java? That branch was declared 29/mar/2006\. Also for release 1\.0\. Yes, and the TRUNK is the 0\.95 Release? Am I right? After this date there were made some changes at the TRUNK, not many, but still\. These changes were not made at the BRANCHES/Release\-0\.95, so they are not in sync\. The BRANCHES/0\.95 Release is not maintained, while the TRUNK\-0\.95 is, so there are two 0\.95 releases\. In my perception, the BRANCHES/0\.95 should have the latest version, and the TRUNK should be patch from the BRANCHES/0\.95 In this way the TRUNK should always be in sync\. I learned this wisdom from document http://svn.openehr.org/specification/TRUNK/publishing/CM/CM_plan.pdf Page 19, figure 5, where you make a clone of the TRUNK to a defined release, and eventually bugs are repaired below BRANCHES and patches of that release are patched back to the TRUNK, so in this case, TRUNK should, in my perception be in sync with BRANCHES/0\.95 If I misunderstand, please correct me thanks Bert Verhees --- ## Post #19 by @rong.chen Bert Verhees wrote: > Thomas Beale schreef: >> Bert Verhees wrote: >>> Thomas Beale schreef: >>> There is a lot of work to do in this Release\-1\.0 >>> I hope it will be done quick\. If I can do something, please let me know\. >> >> if you want to work on the Java kernel, please let us know\. > > If I can help, I would like to do some jobs, I don't know who coördinates it\. > My reading/writing of java\-code is quite good, maybe there are small well defined jobs to do, for easy step in the project\. Or easy classes, or writing class\-bodies, something like that\. > Do not hesitate to ask me, also if you think of something yourself\. > I could maybe spent average one hour everyday\. >>> >>> There is something I noticed, I don't know if it is on purpose\. >>> I noticed that the Release\-0\.95 is not in sync with the TRUNK release, in fact, it is running behind \(maybe months\)\. >> >> you mean the 0\.95 branch of of ref\_impl\_java? That branch was declared 29/mar/2006\. Also for release 1\.0\. > > Yes, and the TRUNK is the 0\.95 Release? Am I right? > After this date there were made some changes at the TRUNK, not many, but still\. > These changes were not made at the BRANCHES/Release\-0\.95, so they are not in sync\. > The BRANCHES/0\.95 Release is not maintained, while the TRUNK\-0\.95 is, so there are two 0\.95 releases\. No, the TRUNK is gradually moving forward particularly the ADL parser and AOM classes\. The Release\-0\.95 branch should only receive bug fixes, while the TRUNK will eventually land on Release 1\.0 and beyond\. Some bug fixes on the TRUNK should also be done on the Release\-0\.95, I agree\. Rong --- ## Post #20 by @system > >> declared 29/mar/2006\. Also for release 1\.0\. > > > > Yes, and the TRUNK is the 0\.95 Release? Am I right? > > After this date there were made some changes at the TRUNK, not many, > > but still\. > > These changes were not made at the BRANCHES/Release\-0\.95, so they are > > not in sync\. > > The BRANCHES/0\.95 Release is not maintained, while the TRUNK\-0\.95 is, > > so there are two 0\.95 releases\. > > No, the TRUNK is gradually moving forward particularly the ADL parser > and AOM classes\. The Release\-0\.95 branch should only receive bug fixes, > while the TRUNK will eventually land on Release 1\.0 and beyond\. Some bug > fixes on the TRUNK should also be done on the Release\-0\.95, I agree\. OK, I misunderstood, maintaining the 0\.95 version should be done in the BRANCHES while the TRUNK only is to move forward \(to 1\.0\)\. But what is the development goal of the TRUNK then at this moment\. Because there is BRANCHE\-work at the 1\.0 version, will that be moved to the TRUNK at a certain moment?, and at a certain moment be copied back? Or will the TRUNK be moved back to the BRANCHE, ro wil,l they both undergo a painful process of merge\. Are there two different working\-trails toward 1\.0 \(The TRUNK and BRANCHE 1\.0\) Isn't it too early to have a BRANCHE 1\.0 release? It is confusing II have my doubts for several reasons \- the arrows in the documentation \(CM\_plan\.pdf\) point in the wrong direction, the text in Figure5 page 19 explain that the fixes are made in the BRANCHE and after that applied to the TRUNK\. This is the situation at this moment\. \- at the same time the same documents explains at page 17 that the TRUNK is the mainline current development and the BRANCHES is for branche development or test work\. I would understand the terminology "branche development" as: The BRANCHE is to freeze a certain TRUNK\-situation, and after that, for offering a place for maintaining a certain \(major\) release, it is not a place for growing towards a new release When you apply these rules to 0\.95, it works like it should, more or less \(0\.95 should be patched, you are right\) but applied to 1\.0, I am really confused, what is the main 1\.0 version workline, when do we have a 1\.0 release which is ready for production, how can we recognise this version in SVN, because at this moment, we have two version which are both in pre\-beta\-condition\. I think the BRANCHE\-1\.0 should have another name regards Bert --- ## Post #21 by @thomas.beale Bert Verhees wrote: > > OK, I misunderstood, maintaining the 0\.95 version should be done in the BRANCHES while the TRUNK only is to move forward \(to 1\.0\)\. > > But what is the development goal of the TRUNK then at this moment\. > Because there is BRANCHE\-work at the 1\.0 version, will that be moved to the TRUNK at a certain moment?, and at a certain moment be copied back? >   merged into the TRUNK, but maintained on its branch as well\. That branch will then become Release 1\.0 \(actually, we have to make it 1\.0\.1\); the TRUNK will then continue on, and continue to spawn new branches\. > Or will the TRUNK be moved back to the BRANCHE, ro wil,l they both undergo a painful process of merge\. > Are there two different working\-trails toward 1\.0 \(The TRUNK and BRANCHE 1\.0\) > Isn't it too early to have a BRANCHE 1\.0 release? >   well actually I would have done it a bit later, but it doesn't matter that much\. > It is confusing > > II have my doubts for several reasons > > \- the arrows in the documentation \(CM\_plan\.pdf\) point in the wrong direction, the text in Figure5 page 19 explain that the fixes are made in the BRANCHE and after that applied to the TRUNK\. This is the situation at this moment\. > \- at the same time the same documents explains at page 17 that the TRUNK is the mainline current development and the BRANCHES is for branche development or test work\. > I would understand the terminology "branche development" as: > The BRANCHE is to freeze a certain TRUNK\-situation, and after that, for offering a place for maintaining a certain \(major\) release, it is not a place for growing towards a new release >   that all depends\. In the specification that is exactly what we do, since we merge all changes from a candidate release branch back to the trunk, then tag the release\. > When you apply these rules to 0\.95, it works like it should, more or less \(0\.95 should be patched, you are right\) but applied to 1\.0, I am really confused, what is the main 1\.0 version workline, when do we have a 1\.0 release which is ready for production, how can we recognise this version in SVN, because at this moment, we have two version which are both in pre\-beta\-condition\. I think the BRANCHE\-1\.0 should have another name >   I wouldn't worry so much about it at the moment; this branch is simply acting as a 1\.0 candidate\. The changes there will go back onto the trunk when they are ready\. Admittedly they haven't done it exactly as I would have done it but it will work more or less the same\. BUt I agree that the Java group needs to be a bit more careful about how it is documented\. \- thomas --- ## Post #22 by @system Thanks Thomas, It is not that I want to be picky about things, although it can look like that\. But I want to be sure that I understand the procedures well, so I can make the right decisions\. Regards Bert Verhees --- ## Post #23 by @Tim_Cook6 Bert Verhees wrote: > Thanks Thomas, > > It is not that I want to be picky about things, although it can look like > that\. But I want to be sure that I understand the procedures well, so I can > make the right decisions\. > I would not say you are are being picky Bert\. There really should be better control over the development process\. My recent experience with Java developers is that it is okay to be sloppy and then fix it later\. They use the nice term, "refactor" for cleaning up their previous messes\.\.\.\.\.\.\.\. Seems this is what is being taught now in CS classes\. Arrrgggggh\! Tim --- **Canonical:** https://discourse.openehr.org/t/ace-or-project-files/14530 **Original content:** https://discourse.openehr.org/t/ace-or-project-files/14530