SmartDataAnalytics / DL-Learner

A tool for supervised Machine Learning in OWL and Description Logics
http://dl-learner.org
GNU General Public License v3.0
152 stars 34 forks source link

Docker image for DL-Learner #65

Closed GezimSejdiu closed 5 years ago

GezimSejdiu commented 5 years ago

Hi DL-Learners,

this PR propose a docker image for running DL-Learner cli using Docker. The instruction how to do it are given on the README and the image has been linked with an automated build on docker.hub.

Running father example gives this output :

$ make run-example
docker run -it smartdataanalytics/dl-learner bin/cli examples/father.conf
DL-Learner command line interface
Initializing component 'ks' of type OWL File ...
... initialized component 'ks' in 1ms. Status: OK
Initializing component 'reasoner' of type closed world reasoner ...
OntologyID(OntologyIRI(<http://example.com/father>) VersionIRI(<null>))
Loaded reasoner: Pellet (com.clarkparsia.pellet.owlapiv3.PelletReasoner)
Materializing TBox...
...TBox materialised in 178 ms.
... initialized component 'reasoner' in 999ms. Status: OK
Initializing component 'lp' of type PosNegLPStandard ...
... initialized component 'lp' in 1ms. Status: OK
Initializing component 'alg' of type CELOE ...
... initialized component 'alg' in 21ms. Status: OK
Running algorithm instance "alg" (CELOE)
start class:Thing
more accurate (50.00%) class expression found after 47ms: Thing
more accurate (83.33%) class expression found after 105ms: male
more accurate (100.00%) class expression found after 156ms: male and (hasChild some Thing)
Algorithm terminated successfully (time: 1s 0ms, 1811 descriptions tested, 1059 nodes in the search tree).

number of retrievals: 1954
retrieval reasoning time: 42ms ( 0ms per retrieval)
number of instance checks: 89 (0 multiple)
instance check reasoning time: 0ms ( 0ms per instance check)
(complex) subsumption checks: 281 (0 multiple)
subsumption reasoning time: 70ms ( 0ms per subsumption check)
overall reasoning time: 113ms

solutions:
1: (male) and (hasChild some Thing) (pred. acc.: 100.00%, F-measure: 100.00%)
2: male and (hasChild some Thing) (pred. acc.: 100.00%, F-measure: 100.00%)
3: (not (female)) and (hasChild some Thing) (pred. acc.: 100.00%, F-measure: 100.00%)
4: male and (female or (hasChild some Thing)) (pred. acc.: 100.00%, F-measure: 100.00%)
5: (female or (hasChild some Thing)) and (not (female)) (pred. acc.: 100.00%, F-measure: 100.00%)
6: male and ((not (male)) or (hasChild some Thing)) (pred. acc.: 100.00%, F-measure: 100.00%)
7: male and (hasChild some (hasChild only (hasChild only male))) (pred. acc.: 100.00%, F-measure: 100.00%)
8: male and (hasChild some (male or (hasChild only male))) (pred. acc.: 100.00%, F-measure: 100.00%)
9: male and (hasChild some (male or (hasChild some Thing))) (pred. acc.: 100.00%, F-measure: 100.00%)
10: male and (hasChild some (male or (hasChild some male))) (pred. acc.: 100.00%, F-measure: 100.00%)

*Note : This is just a first prototype of runing DL-Learner on Docker, this can be improved by allowing user to specify their own configuration files and get the result back (if that is supported by DL-Learner already) outside of the docker.

Please, have a look and feel free to review and suggest changes.

Best regards, Gezim

SimonBin commented 5 years ago

thanks @GezimSejdiu