Skip to content
This repository
Browse code

new

  • Loading branch information...
commit c58f45393d6e0b6bee27363fd6aa1a8fd779e93d 1 parent 78f4dc9
Chris Mungall authored July 08, 2010

Showing 1 changed file with 111 additions and 0 deletions. Show diff stats Hide diff stats

  1. 111  Release_prep.txt
111  Release_prep.txt
... ...
@@ -0,0 +1,111 @@
  1
+---+ Proposal: Bundle Thea2 core with SWI Prolog (and eventually Yap)
  2
+
  3
+We propose that Thea2 is bundled with SWI-Prolog. This document
  4
+describes some necessary preparation, such that the bundling is
  5
+seamless, and that changes can be kept in sync.
  6
+
  7
+At this time the Thea github repository contains a number of modules
  8
+and applications that are not yet fully mature and not required for
  9
+core functionality. We will probably split some of these out.
  10
+
  11
+The core functionality delivered by Thea is the ability to read an OWL
  12
+file serialized as RDF/XML and allow the user to query the ontology
  13
+using the predicates defined in owl2_model.pl
  14
+
  15
+For example:
  16
+
  17
+==
  18
+use_module(library(thea2/owl_io)).
  19
+use_module(library(thea2/owl_model)).
  20
+
  21
+load_axioms('testfiles/pizza.owl').
  22
+forall(subClassOf(A,B),
  23
+       format('~w subClassOf ~w',[A,b])).
  24
+==
  25
+
  26
+This split will involve some change in the current github
  27
+organization. One solution is to have 3 github projects:
  28
+
  29
+* thea2_core
  30
+* thea2_contrib
  31
+* thea2
  32
+
  33
+The final one would be an empty project that uses git submodules to
  34
+provide the full functionality in one project.
  35
+
  36
+SWI would have the option of only including thea2_core - or of
  37
+bundling selected contributed modules.
  38
+
  39
+---+ Module split
  40
+
  41
+As of 2010/07/01
  42
+
  43
+The following should be in the core:
  44
+
  45
+* owl2_model - mature, core
  46
+* owl2_metamodel - mature, required for core
  47
+* owl2_io - mature, core
  48
+* owl2_from_rdf - mature (still minor bugs?), core
  49
+* owl2_export_to_rdf - mature (still minor bugs?), core
  50
+* swrl
  51
+* bin/thea - mature
  52
+ * handy command line wrapper
  53
+
  54
+The following are optionally in core:
  55
+
  56
+* owl2_catalogs - for registering local paths for owl:imports
  57
+ * make this something more generic in SWI?
  58
+* owl2_plsyn - mature. provides infix syntax. not essential, but nice
  59
+* owl2_xml - not yet well tested?
  60
+* owl2_owllink - mature?
  61
+ * requires: owl2_xml
  62
+* owl2_popl - for processing OWL files
  63
+ * requires: owl2_plsyn
  64
+* owl2_manchester_parser.pl - not yet mature enough for core?
  65
+* owl2_java_owlapi
  66
+ * requires JPL
  67
+ * bridge to java OWLAPI
  68
+ * currently a good way of running reasoners such as pellet, hermit 
  69
+
  70
+The following would be in extras/contrib:
  71
+
  72
+* owl2_util
  73
+ * mostly a random-grab bag, some useful stuff
  74
+ * many of the predicates could be refactored into other modules or documentation/examples
  75
+
  76
+* apps/
  77
+  
  78
+---+ Directory organization
  79
+
  80
+It would be good to have a set of recommendations and best practices
  81
+for developing modules intended to be part of SWI, or intended to be
  82
+used by others.
  83
+
  84
+* thea is currently managed in git
  85
+* all the main modules are in the top-level directory
  86
+* full plunit test files are provided (suffix .plt, top-level directory)
  87
+* a Makefile.in and default configuration file is provided (what about Windows?)
  88
+* all documentation is in pldoc format
  89
+ * no entry-point latex .doc file is provided yet
  90
+
  91
+---+ Open questions
  92
+
  93
+should the project / top level dir be called "thea" or "thea2"?
  94
+
  95
+Much of the code already uses "use_module(library(thea2/<MOD>))". I
  96
+think it is good to sync the project name with the version of OWL. If
  97
+there is ever an OWL3 then thea3 would be a not necessarily backward
  98
+compatible library.
  99
+
  100
+The git project is currently called "thea" but maybe if we re-organize
  101
+(see above) it could explicitly be thea2?
  102
+
  103
+---+ TODO
  104
+
  105
+Make it easier to run the tests
  106
+
  107
+Add a few more plunit tests - anything including must be thoroughly
  108
+tested
  109
+
  110
+rationalize documentation a bit
  111
+

0 notes on commit c58f453

Please sign in to comment.
Something went wrong with that request. Please try again.