Closed VladimirAlexiev closed 7 months ago
Well, I have used Docker in various cases, but have never set anything up myself. Perhaps the right thing to do is to just follow your advice exactly. The thing that was complicated in my case was getting Strawberry Perl to install the various needed packages. Complicated, mainly because of lack of experience -- but this will likely also apply for many ontologists who will want to use the tool. I'm really uncertain on this point. Docker, is it easier, or maybe not? Will Docker steal too much CPU, and downgrade the experience overall? Something tells me that if we were to go the Docker route, it would make sense to include more than just Perl, rdf2rdml, plantuml. Then I would like to have plantuml in "server" mode to avoid the long startup time, and have a facility for turning Manchester Syntax into Turtle, for querying, i.e., so that queries can be the source of rdfpuml diagrams. All this can be done in due time.
@johanwk
As we discussed, I think a self-contained exe will help a lot to make rdfpuml accessible to Windows users.
Regarding plantuml, I think it's preferable to have a local copy of the jar. I can say for myself that I would worry about sending confidential information to an unknown service. Granted, this will not apply very often at all, but it's a worry that can get in the way.
I suppose that the fewer demands we put on the users, the better. It should suffice to have plantuml, rdfpuml, and an OMN-to-Turtle converter. (I'm currently looking at the right way to invoke java..)
Done: https://github.com/VladimirAlexiev/rdf2rml/blob/master/doc/rdfpuml.md#packaged-binary
Please try it and let me know if it works.
Wonderful!! I'll try it out as soon as I can, hopefully tomorrow.
I suppose that for Linux and MacOS use, the standard/included Perl version will suffice. What do you think? I can test on MacOS.
I can confirm that the executable does indeed work!
There are warnings from Perl about LC_ALL and LANG that I'm not able to get my head around. However, the rdfpuml
executable does handle extended characters correctly. (plantuml
needs to be called with -charset utf-8
)
A speed test shows that a typical run of rdfpuml
, then plantuml
takes nearly 10 seconds on my six-year-old laptop.
$ time ( LC_ALL=C rdfpuml testrdfpuml.ttl; java -jar ../bin/plantuml/plantuml.jar -charset utf8 testrdfpuml.puml )
real 0m9,196s
user 0m0,030s
sys 0m0,077s
I don't really know what the figures mean, but it seems startup is where time gets spent. It's remarkably similar between rdfpuml
and plantuml
.
$ time LC_ALL=C rdfpuml testrdfpuml.ttl; time java -jar ../bin/plantuml/plantuml.jar -charset utf8 testrdfpuml.puml
real 0m4,513s
user 0m0,000s
sys 0m0,015s
real 0m4,523s
user 0m0,000s
sys 0m0,062s
rdf2rml/bin
(rdfpuml.pl), then it can be invoked simply withperl -S rdfpuml.pl
(-S
searches in the path, so it doesn't needexpand-file-name
)See https://github.com/VladimirAlexiev/rdf2rml/blob/master/README.org#docker-image, but I personally don't use Docker. This was made by my colleagues and has a snapshot of rdfpuml and plantuml versions as indicated. If I made extensions/fixes to rdfpuml, we'll ask them to refresh the docker image.