Permalink
Browse files

Add license, update TODO and README

  • Loading branch information...
1 parent b1e18ed commit b8cd7b9bc8e27110cdc0958d4ddf2273203917f4 @kraison committed May 6, 2012
Showing with 48 additions and 21 deletions.
  1. +24 −0 LICENSE
  2. +5 −9 README
  3. +19 −12 TODO
View
24 LICENSE
@@ -0,0 +1,24 @@
+Copyright (c) 2012 Kevin Thomas Raison
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+Except as contained in this notice, the name(s) of the above copyright holders
+shall not be used in advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization.
+
View
14 README
@@ -6,12 +6,11 @@ it to behave consistently from one check-in to another.
The goal is to build a fast, robust, distributed graph database with optional
RDF semantics built-in. The primary query language is Prolog (based on PAIP),
but I have plans to add Javascript and maybe Sparql at a later date.
-At the moment, persistence is achieved via a call to (dump-triples); this is going
-to change very soon. I am working on a native SBCL memory mapped persistence
-library that will give me some variation on btrees and hashes. When this is
-complete, triples wil be persistent by default.
+At the moment, persistence is achieved via transaction logging and replay.
+I am also working on a native SBCL memory mapped persistence
+library that will give me some variation on linear hash tables.
-The code checked-in as of 2010/11/08 works fairly well, but should be
+The code checked-in as of 2012/05/06 works fairly well, but should be
considered alpha quality. In order to get it working, you will need the
following:
@@ -29,6 +28,7 @@ date-calc: http://common-lisp.net/project/cl-date-calc/
py-configparser: http://common-lisp.net/project/py-configparser/
js: http://github.com/akapav/js
split-sequence: http://www.cliki.net/SPLIT-SEQUENCE
+Montezuma
To get you started:
@@ -52,10 +52,6 @@ To get you started:
(get-triples-list :search-string "programming")
-;; Range query; this stuff may be broken at this stage.
-;; i will focus on it again very soon
-;;(select-flat (?object) (q- "Kevin" "likes" (?object "a" "z")))
-;;
(get-triples-list :s "Kevin")
(get-triples-list :p "is-a")
(close-triple-store :store *store*)
View
31 TODO
@@ -24,7 +24,13 @@ implicitly more important / required than some other requirement-Z.
;;; ==============================
The major things that need to be done to satisfy my personal requirements:
-* Stabilize transaction logging.
+* Fix lexical env issues between Prolog and Lisp.
+ Currently, importing a Lisp variable into Prolog requires that it be
+ declared SPECIAL. This is because the Prolog implementation is based on
+ Norvig's PAIP, which uses CL:EVAL. A better solution should be found.
+
+* While triples are thread safe, Prolog may or may not be.
+ This should be investigated and fixed where necessary.
* Remove the SBCL-specific code that litters the project.
@@ -35,6 +41,8 @@ The major things that need to be done to satisfy my personal requirements:
I would like to add a second option where, as in a standard database, data
can be stored in a disk-based structure.
+ - memory mapped linear hash tables. KTR: *** This is my preferred option ***
+
- B+Trees
- Fractal Prefetching B+Trees
@@ -47,17 +55,6 @@ The major things that need to be done to satisfy my personal requirements:
I was considering something like B-tries, as described in this paper:
(URL `http://www.naskitis.com/naskitis-vldbj09.pdf').
-* Spend some time on the text indexing piece.
- It currently uses my cl-skip-list, but should be moved into a B-tree.
-
-* While triples are thread safe, Prolog may or may not be.
- This should be investigated and fixed where necessary.
-
-* Fix lexical env issues between Prolog and Lisp.
- Currently, importing a Lisp variable into Prolog requires that it be
- declared SPECIAL. This is because the Prolog implementation is based on
- Norvig's PAIP, which uses CL:EVAL. A better solution should be found.
-
* Add reciprocal reasoning.
(has-child implies has-parent)
@@ -77,5 +74,15 @@ The major things that need to be done to satisfy my personal requirements:
+COMPLETED ITEMS:
+
+* Spend some time on the text indexing piece.
+ It currently uses my cl-skip-list, but should be moved into a B-tree.
+ KTR: *** I recently integrated Montezuma for this purpose. It may need some cleaning up. ***
+
+* Stabilize transaction logging.
+ KTR: *** This is done. Transaction logging has been working quite well for a long while. ***
+
+
;;; ==============================
;;; EOF

0 comments on commit b8cd7b9

Please sign in to comment.