public
Description: A semantic modeling and query language (CQL) and application runtime (the Constellation API)
Homepage: http://dataconstellation.com/ActiveFacts
Clone URL: git://github.com/cjheath/activefacts.git
name age message
file .gitignore Mon Sep 21 05:03:08 -0700 2009 Ignore .DS_Store [Clifford Heath]
file History.txt Thu Nov 27 21:57:54 -0800 2008 Almost ready for the gem to be published, I hope [Clifford Heath]
file LICENSE Thu Nov 27 21:57:54 -0800 2008 Almost ready for the gem to be published, I hope [Clifford Heath]
file Manifest.txt Loading commit data...
file README.rdoc Thu Jan 22 03:01:28 -0800 2009 Revised copyright notices, added Persistence la... [Clifford Heath]
file Rakefile Tue Sep 08 20:13:49 -0700 2009 Added spec helper that computes diffs between e... [Clifford Heath]
directory adhoc/ Fri Sep 04 02:59:33 -0700 2009 Moved and added some examples [Clifford Heath]
directory bin/
directory css/ Mon Sep 21 05:01:22 -0700 2009 Adjustments for CQL highlighting [Clifford Heath]
file download.html Wed Dec 10 23:09:33 -0800 2008 Updated to suit online and offline, and print c... [Clifford Heath]
directory examples/
directory images/ Tue May 05 22:03:45 -0700 2009 Changed documentation for value types (were cal... [Clifford Heath]
file index.html Wed Dec 10 23:09:33 -0800 2008 Updated to suit online and offline, and print c... [Clifford Heath]
directory lib/
directory patches/ Sun Apr 29 13:00:25 -0700 2007 Renamed some files, added DRYSql patch [Clifford Heath]
directory script/ Thu Nov 27 21:57:54 -0800 2008 Almost ready for the gem to be published, I hope [Clifford Heath]
directory spec/
file status.html
file why.html Sun Nov 30 23:41:59 -0800 2008 Added 2 test models that show corner cases, and... [Clifford Heath]
README.rdoc

activefacts

DESCRIPTION:

ActiveFacts is a semantic modeling toolkit, comprising an implementation of the Constellation Query Language, the Constellation API, and code generators that receive CQL or ORM (Object Role Modeling files, from NORMA) to emit CQL, Ruby and SQL.

Semantic modeling is a refinement of fact-based modeling techniques that draw on natural language verbalisation and formal logic. Fact based modeling is essentially the same as relational modeling in the sixth normal form. The tools provided here automatically condense that to third normal form for efficient storage. They also generate object models as a Ruby module which has an effective mapping to both the original semantic model and to the generated SQL.

The result is a formal language that reads like plain English, and allows creation of relational and object models that are guaranteed equivalent, and much more stable in the face of schema evolution than SQL is.

FEATURES/PROBLEMS:

 * Queries are parsed, but not yet generated to SQL. DDL is complete.

 * The Constellation API lacks SQL persistence (but is already useful;
   the CQL compiler uses the generated Ruby code extensively)

 * Re-invoking a fact type to add new readings doesn't work

 * Some types of external constraints (when adjectives mis-match)
   don't yet pass the CQL parser's semantic analysis.

 * Validation of semantic models (and many other areas) is incomplete

 * There's no interactive CQL interpreter yet; the cql command merely
   shows the parse tree.

SYNOPSIS:

  afgen --sql/server myfile.cql
  afgen --ruby myfile.cql
  afgen --cql myfile.orm

REQUIREMENTS:

  • Treetop parser generator
  • Optional: NORMA, see <www.ormfoundation.org/files/> (needs Visual Studio pro edition), if you want to use ORM

INSTALL:

  • sudo gem install activefacts

LICENSE:

Copyright © 2008 Clifford Heath.

This software is provided ‘as-is’, without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
  2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
  3. This notice may not be removed or altered from any source distribution.