Installing the Semantic Application Design Language (SADL) Version2
Last revised
02/05/2015
by A. W. Crapo.
Table of Contents
- Version 2.2.0.2015051358 for Eclipse Kepler (using Xtext 2.43.) released
2/5/2015
- Ontologies now have annotations
- User-defined data types supported
- Version 2.2.0 for Eclipse Kepler (using Xtext 2.4.3) released 3/5/2014 (Note
that Eclipse Kepler and Java 1.7 are required for this release.)
- Vocabulary for rules extended to support OWL constructs such as
restrictions (see known issues)
- Added support for qualified cardinality restrictions
- "... described by <property> with a single value of type <class>..."
will be translated to an OWL 2 maxQualifiedCardinality restriction on the
described class of 1 for <property> with values of type <class>
- "<property> of <class1> has exactly <n> values of type <class2>." will
be translated to an OWL 2 qualifiedCardinality restriction on <class1> of
<n> for <property> with values of type <class2>
- "<property> of <class1> has at least <n> values of type <class2>." will
be translated to an OWL 2 minQualifiedCardinality restriction on <class1> of
<n> for <property> with values of type <class2>
- "<property> of <class1> has at most <n> values of type <class2>." will
be translated to an OWL 2 maxQualifiedCardinality restriction on <class1> of
<n> for <property> with values of type <class2>
- Note that the Jena reasoner does not support qualified cardinality
restrictions but one can write validation rules to do so.
- Built-ins greaterThan, lessThan extended to support strings
- Running of tests and queries is now a separate "job" so the main (UI)
thread is not blocked and so that run-away inferencing processes can be
canceled. (Go to the "Progress" view to see background operations, which can
be done by clicking on the greenish buttons in the very lower-right hand
corner of the Eclipse display. Then click on the red square to the right of
the background job to cancel.)
- Improved process for debugging difficult to understand issues, see
below.
- Test Suite editor
- Jena TDB repository option added to existing OWL flat file formats for
storage format
- Underlying DSL updated to Xtext 2.4.3
- Underlying Jena updated to Apache Jena 2.11.2
- Beta 21 release (2.1.9, 12/3/2112), for Eclipse 3.7 (Indigo) with Xtext
2.1 (Note: a fresh Eclipse Indigo install followed by
adding the SADL plug-in is recommended. Otherwise some old libs appear to get
used and some misbehavior has been noted.)
- The SADL-IDE now includes an Xtext-based editor for test suites (.test
files) with syntax checking, model name validation, and content-assist
(ctrl-space).
- OWL files may now be saved in RDF/XML, RDF/XML-ABBREV, N3, or N-Triple
format, as specified in preferences. (Project must be cleaned manually when
format is changed.)
- Added trigonometry built-ins: cos, sin, tan, acos, asin, atan.
- Added user control of automatic generation of rdfs:labels from URIs, which
are then indexed by Lucene for Lucene search. Use of this capability is
controlled via preferences. When enabled, a user-settable ILuceneModelIndexer
interface class, default provided, is used to provide indexing of the model.
- Variable assignment now supported in rule premises, e.g., "x is 3.19", via
assign built-in
- Bug-fix: checking to see if an instance specified as subject or object value is in
the domain or range was failing to properly
consider the super-class tree.
- Beta 20 release (2.1.8, 7/26/2012), for Eclipse 3.7 (Indigo)
- Fixed errors in translating property ranges to OWL
- Added warning for multiple single-valued "described by" lines for a given
class and property (such does NOT create a qualified cardinality restriction,
which is only supported in OWL 2)
- Minor bug fixes to rule/query/test translation of junctions
- Beta 19 release (2.1.7, 7/11/2012), for Eclipse 3.7 (Indigo)
- Fixed bug in some values from restrictions that caused restrictions in one
model on a class in an imported model to generate improper OWL files.
- Beta 18 release (2.1.6, 6/27/2012), for Eclipse 3.7 (Indigo)
- Fixed egregious error that caused edited model to not be updated
- Improved cleanup of closed resources, both models and projects
- Beta 17 release (2.1.5, 6/21/2012), for Eclipse 3.7 (Indigo)
-
Error
translating rule with graph patterns or build-ins as argument of a
built-in
-
Restrictions
in one model upon a class declared in an imported model were not being
saved correctly to OWL
-
Added check
and warning for out-of-date OWL file of a corresponding SADL file
-
Hyperlinking
of models from Print corrected
-
Fixed updating
of concepts in an importing model when the imported model changes
-
Fixed updating
of active configuration for current session when configuration is
changed
- Beta 16 maintenance release (2.1.4) fixes these issues:
- Model names in content assist and quick fixes were missing the leading
"http:"
- The default configuration.rdf file placed in new projects was not properly
formed. Also default configuration file placed in existing project when
missing wasn't being read
- Sometimes discovered built-ins added to the configuration.rdf file were
not saved
- Rule file reading modified to not give erroneous error if a non-UTF8
character exists in the rule file
- Beta 16 release (2.1.3), for Eclipse 3.7 (Indigo)
- Issue with very slow builds and out of memory errors resolved; now builds
quickly
- Model validation significantly enhanced; may be disabled on main
preferences page
- Quick fix issues resolved so that adding of missing class and instance
declaration now works again (was broken in move to Xtext 2)
- Support added for SPARQL "ask" and "construct" type queries
- Fixed test translation to support all tests in TestSadlIde project, e.g.,
tests that have "is <=".
- Fixed rule translation problems that resulted in truncated rule in Jena
when built-ins were nested inside of other built-ins.
- Import URI of the form "file://somefile.sadl"
is deprecated; use SADL file name without prefix or else use model URI (there
is a quick fix for this; search for "file://" and use quick fix to update
import statement)
- Beta 15 release (2.1.2) 3/20/2012
(This release requires Eclipse 3.7, Indigo)
- Numerous bug fixes and small improvements
- Timing information can now be controlled from the preferences, both for
project build and for testing/querying. (See Known
Issues.)
- Beta 14 release (2.1.1)
- This release requires Eclipse 3.7 (Indigo)
and uses Xtext 2.1. You should start with a clean install of Eclipse 3.7. (See
New
Install Instructions below.) The
version numbering is changed to reflect that this is SADL 2, second major
release version.
- Conversion to Xtext 2.1 (see
http://www.eclipse.org/Xtext/).
- Build now manages the dependencies between SADL files to be much more
robust in correctly building highly inter-connected sets of models.
- Translation of rules, tests, and queries has been re-implemented to use a
more robust approach and numerous translation errors have been eliminated.
- Formatting of dates, times, and date-time are made much more flexible
using POJava DateTime class.
- Beta 13 release (1.0.28)
- added control of namespace display in query results to preferences
- added error catching of unsupported built-ins in queries
- added optional parentheses around SADL query to allow more robust use in
tests
- Beta 12 release (1.0.27) 9/28/2011
- added semantic checking of use of variables in rules
- improved handling of models that import themselves, either directly or
indirectly
- improved reporting of errors during project build
- added service model as optional part of project
- added sub-classing (is a type of) to expressions in queries and rules
- fixed errors in tests containing queries
- other miscellaneous bug fixes
- Beta 11 release (1.0.26) 9/2/2011
- Display of prefixes before concept names in content assist and templates
is now controlled by a preference setting, except that prefixes are always
displayed if there are multiple concepts by the same name.
- Fixed bug in template for model imports
- Beta 10 release (1.0.25) 8/30/2011
- Mapping problems finally resolved (I hope; please report any issues)
- Introduction of global aliases, see Model Names,
Namespaces, and Aliases in SADL
- Jena "print" built-in in rules now outputs to plug-in console window
- Miscellaneous bug fixes in translation, etc.
- Beta 9 release (1.0.24) 7/5/2011, known errors with mapping still exist
- Fixes bug translating certain tests, e.g., Test: child of a Birth is only
{[Martha], [George]}.
- Beta 8 release (1.0.23) 6/24/2011, known errors with mapping still exist
- Implemented missing translation of enumerated restrictions
- Fixed error in model validation
- Beta 7 release (1.0.22) 6/13/2011, known errors with mapping still exist
- Fixed Jena rule translation to not use a float or double in a premise
graph pattern but to use a variable with equal built-in test (otherwise noise
in double values causes failure)
- Changed meaning of "with a single value of" in a class or property with
domain declaration to mean a max cardinality of 1 restriction on the class;
"has a single value" as a descriptor of the property indicates a functional
property. This was due to a use case where the previous interpretation lead to
a conflict.
- Bug fixes
- Beta 6 release (1.0.21) 6/7/2011, known errors same as previous version
- Additional syntax checking in graph patterns
- Bug fix translating literals
- Beta 5 release (1.0.20) 6/2/2011 See
Known Issues.
- Bug fixes
- Additional validation checking and error/warning reporting
- Beta 4 release (1.0.19) 5/24/2011
- Additional fixes to mapping issues, especially when switching between two
open projects
- Bug fixes and extended coverage for graph pattern language (tests, rules,
queries)
- Beta 3 release (1.0.18) 5/19/2011
- Grammar and code improvements to support more complete testing (see TestSadlIde project
for lots of new test cases)
- Consistency of triple syntax improved: there are three possible syntaxes
for a triple pattern in a test, rule, or query
- subject [has|with] predicate object
- predicate of subject is object
- object is predicate of subject
Note that only the "has" or "with" in the first (SPV) syntax is optional. Note
also that "is" between the predicate and object of the first syntax is not
admitted.
- There are four kinds of tests:
- Equality: a triple to be matched or a left-hand side, right-hand side,
e.g., "a friend of Jimmy = a friend of Johnny" ("is", "=", or "= =" can be
used between the parts; this test will pass if there is a match, even if one
or the other has other friends)
- Negation: "not" is added to the syntax, e.g., "the spouse of George is
not Maggie", "a friend of Jimmy is not a friend of Johnny" (to pass there
must not be any friends in common)
- Strict Equality: "only" is added to the syntax, e.g., "the spouse of
George is only Martha", "a friend of Ruby is only {[Ruth], [Fanny],
[Margarita]}" (to pass Ruby must have exactly these friends an no others)
- Negation of Strict Equality: "not only" is added to the syntax, e.g., "a
friend of Ruby is not only Fanny" (to pass Ruby must have more values of
"friend" than just Fanny)
Note that "known" is a valid object value for testing and rules. It may be
used for Equality and Negation, but not with "only".
- Resolved more mapping issues
- Other bug fixes
- Beta 2 release (1.0.17) 5/10/2011 Bug fixes
- Mapping error affecting building and importing new models fixed
- "Sticky" error markers fixed
- Improved handling of defaults.owl import
- Jena rule translation error caused premises to be dropped from rules fixed
- Model validation before testing function added and preference to control
same
- Beta 1 release (1.0.16) 5/3/2011 First Beta release, see
Known Issues
- Reasoner selection and configuration is now done via the project
preferences GUI (see Jena Reasoner
Configuration for an example)
- Jena Built-In functions no longer need to be configured. If they are
installed they will be discovered and available. A list of available built-ins
can be obtained within the context of a rule element by selecting the
"built-in function.." template from content assist (control-space).
- Complete functionality including user-defined templates (see
Domain-Specific Templates)
- Derivation logging and derived model output (see
Derivation Logging and Creating a Derived
Model Snapshot)
- This version passes the current 61 test cases in the TestSadlIde project
(see SADL IDE Test Cases)
- Alpha 14 release (1.0.14) 3/30/2011 Bug fixes
- Alpha 13 release (1.0.13) 3/28/2011 First version attempting to allow
multiple projects to be open simultaneously and allowing project switching
during a session.
- Alpha 11 release (1.0.11) 3/16/2011 First release with file markers for
semantic errors.
- Alpha 10 release (1.0.10) 3/11/2011 (Note: it
may be necessary to uninstall a previous release or dependent software before
a new version can be installed; see instructions for updating below.)
- Alpha 9 release (1.0.9) 3/08/2011
(Note: after upgrading to this release you must clean
and rebuild your SADL projects. The mapping file now uses model name, not
model namespace, as the public URI.)
- Alpha 8 release (1.0.8) 2/22/2011
- Alpha 7 release (1.0.7) 2/11/2011
- Alpha 6 release (1.0.6): 2/10/2011
- Alpha 5 release (1.0.5): 2/2/2011
- Alpha 4 release (1.0.4): 1/20/2011
- Alpha 3 release (1.0.3): 1/18/2011
- Alpha 2 release (1.0.2): 1/13/2011
- Alpha 1 release (1.0.1): 8/3/2010
- If not already installed, install Java 1.7 from
http://www.java.com (Java 1.7 required!).
(See How to check Java Version.)
- Download and install Eclipse Kepler (Eclipse Standard 4.3.x) from
http://www.eclipse.org/downloads/
. (Note: if unable to install the SADL update in the next step due to missing
requirements, install "Eclipse IDE for Java and DSL Developers", which will
include the Xtext dependencies which are most likely the problem.)
- Start Eclipse Kepler, go to Help -> Install New Software. Click on Add...
to create the new update site with Location
http://sadl.sourceforge.net/kepler/update/ and whatever Name you wish.
Click OK to install SADL. Select all features, accept the license
agreement, confirm installation and restart.
- Note that the Eclipse workspace path must NOT
have any spaces or other non-URL compatible characters. If needed,
switch to a different workspace on a valid (Unix-compatible) path (File ->
Switch Workspace).
- The performance of the SADL-IDE is highly dependent upon the amount of
memory available to the application. If running in a 32-bit environment, the
memory available to the Java Virtual Machine is inherently limited to not much
more than 1 GB and may be less. On 64-bit machines with lots of memory, the
allocation to the JVM for Eclipse can be made much larger. To change the
maximum memory available, edit the "eclipse.ini" file in the "eclipse" folder
where you installed Eclipse. Change the line "-Xmx512m" (normal default
setting) to something larger, e.g., "-Xmx4096m" (64-bit) or "-Xmx1024m"
(32-bit).
- Optional: download the demonstration
project TestSadlIde to test SADL and provide examples of many knowledge
constructs.
To upgrade to a newer version of SADL open the Eclipse Help -> Check for
Updates menu item. Alternatively, you may select Help -> Install New Software...
and select the SADL update site.
Note: on occasion it has been necessary to uninstall a previous version of
SADL or a dependent plug-in and then reinstall the newer version.
- Download Eclipse Indigo (Eclipse Classic 3.7) from
http://www.eclipse.org/downloads/.
(Note that the Java EE will also work.) (For Version 1.0.27, download
Eclipse Helios (Eclipse Classic 3.6).
- Install Eclipse by unpacking the zip file downloaded into the desired
directory. You will need Java on your computer as well. For details see the
Eclipse installation instructions linked from the Eclipse download page. (Note:
on some Windows systems, e.g., Windows 7 64-bit, Eclipse cannot be installed
in the default location but works fine when installed on a different path
without spaces.)
- Start Eclipse and select or create a workspace that does NOT contain any
spaces or other uncommon characters in the path.
- If you are behind a firewall, you may have to configure proxies to be able
to get to external update sites. Proxies are set under Window->Preferences
from the menu bar. In the resulting dialog box, open General and click on
Network Connections. If you need assistance configuring a proxy contact your
system administrator.
- Select Help->Install New Software...from the menu bar
- On the resulting dialog box, click on the Add... button
- On the Add Repository popup dialog, copy this link to the Location text
box
http://sadl.sourceforge.net/update, then press Enter or click OK.
- Check "Semantic Application Design Language Version 2" and click Next.
Follow the instructions and accept the license to complete the installation
and then restart Eclipse
- Go to the Quick Start Tutorial or roll your
own!
Please tell us about any bugs that you encounter at
http://sourceforge.net/tracker/?group_id=228765&atid=1074945.
Please tell us about features you would like to see at
http://sourceforge.net/tracker/?group_id=228765&atid=1074948.
Debugging Inference Problems
To debug the SADL-IDE environment, use a log4j.properties file. A sample one
may be downloaded from here. Change the output
file as desired or switch to a ConsoleAppender. Add lines such as the last one
in this file (without leading "#" comment indication) to control specific debug
output. Place the properties file at some location, e.g.,
C:/java/workspace/logs. Create a shortcut to start Eclipse and add this to the
commandline (with path adjusted to your file location):
-Dlog4j.configuration=file:/C:/java/workspace/logs/log4j.properties
After running the IDE, output from the specified packages will be in the log
file and can be examined to gain additional insights into what is happening as
the application runs.
- If you have a version of Java older than 1.6 as the selected Eclipse JDK you may
encounter difficulties interacting with the update site. (See Windows ->
Preferences, Java -> Installed JREs to see what version of Java you are
using.)
See also Known Issues with Latest Release.
Demonstration of various capabilities are available in this SADL project
which can be downloaded.
- TestSadlIde tests Open
Source capabilities. For example, run the test suite AutoTests/AutoTests1.test.