43
1 Deduktīvās datu bāzes realizēšanas varianti RTU DITF

RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

Embed Size (px)

Citation preview

Page 1: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

1

Deduktīvās datu bāzes realizēšanas varianti RTU DITF

Page 2: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

2

https://bitbucket.org/tuprologteam/tuprolog

tuProlog and related packages are released under the GNU Lesser General Public License, so no payment is required for using it.tuProlog is a light-weight Prolog system for distributed applications and infrastructures, intentionally designed around a minimal core (containing only the most essential properties of a Prolog engine), to be later configured by (statically and dynamically) loading/unloading libraries of predicates. tuProlog also natively supports multi-paradigm programming, providing a clean, seamless integration model between Prolog and mainstream object-oriented languages -- namely Java, for tuProlog Java version, and any .NET-based language (C#, F#..), for tuProlog .NET version. It is also easily deployable, just requiring the presence of a Java/CLR virtual machine and an invocation upon a single self-contained archive file. Interoperability is further developed along the two main lines of Internet standard patterns and coordination models. Current version: tuProlog 3.2.1 (released on February 14, 2017)

Download

All tuProlog versions are now available from this site except for the Eclipse plugin

which must be downloaded and installed directly from the Eclipse Update Manager -

see detailed instructions.

Java: tuProlog 3.2.1 (zip) (requires Java 8)

Java: tuProlog 2.9.2 (zip) (requires Java 7)

.NET:tuProlog 3.2.1-NET (zip) (requires .NET framework 4)

Android:tuProlog 2.9.1 Android (apk) (requires Android 2.3.3)

Eclipse: install from Eclipse Update Manager -- see below for details.

MANUAL: tuProlog 3.2.1 User Guide (pdf)

Installation

Java version Just unzip the release archive in a folder of your choice, and double

click the executable 2p.jar To exploit the new_lambda/3 predicate, please launch

tuProlog as "javaw -jar 2p.jar", after setting the system path to the JDK -- otherwise,

most operating systems will use a JRE, which does not contain the Java compiler,

causing the new primitive to fail. We suggest that you set up a desktop shortcut icon

with the proper launch command.

Page 3: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

3

http://tuprolog.sourceforge.net/doc/2p-guide.pdf

http://documents.tips/documents/tuprolog-guide-30.html

Page 4: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

4

tuProlog IDE

Page 5: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

5

http://des.sourceforge.net/html/manual.html

Fernando Sáenz-Pérez

Grupo de Programación Declarativa (GPD)

Departamento de Ingeniería del Software e Inteligencia Artificial (DISIA)

Universidad Complutense de Madrid (UCM)

February, 24th, 2017

Page 6: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

6

Features

Datalog, SQL, Relational Algebra, Tuple Relational Calculus and Domain Relational Calculus query languages

Aggregates, nulls, duplicates ODBC connections to relational databases Integrity constraints Types Modes Textual API for pluggin to any sotware development system

(Java, .NET, Python, ...) Multiplatform, portable binaries, sources Declarative debuggers and tracers Test case generation Hypothetical Reasoning (Decision Support) Persistency (Business Intelligence) Distributed computations

Page 7: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

7

SWI-Prolog, 20131 Most implementations of the Prolog language are designed to serve a limited

set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog positions

itself primarily as a Prolog environment for `programming in the large' and use cases where it plays

a central role in an application, i.e., where it acts as `glue' between components. At the same time,

SWI-Prolog aims at providing a productive rapid prototyping environment. Its orientation towards

programming in the large is backed up by scalability, compiler speed, program structuring

(modules), support for multithreading to accommodate servers, Unicode and interfaces to a large

number of document formats, protocols and programming languages. Prototyping is facilitated by

good development tools, both for command line usage as for usage with graphical development

tools. Demand loading of predicates from the library and a `make' facility avoids the requirement

for using declarations and reduces typing.

SWI-Prolog offers some facilities that are widely appreciated by users: Nice environment

SWI-Prolog provides a good command line environment, including `Do What I Mean',

autocompletion, history and a tracer that operates on single key strokes. The system automatically

recompiles modified parts of the source code using the make/0 command. The system can be

1 http://www.swi-prolog.org/pldoc/man?section=swiprolog

Page 8: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

8

instructed to open an arbitrary editor on the right file and line based on its source database. It ships

with various graphical tools and can be combined with the SWI-Prolog editor, PDT (Eclipse plugin

for Prolog) or GNU-Emacs.

Fast compiler

Even very large applications can be loaded in seconds on most machines. If this is not enough, there

is the Quick Load Format.

Transparent compiled code

SWI-Prolog compiled code can be treated just as interpreted code: you can list it, trace it, etc. This

implies you do not have to decide beforehand whether a module should be loaded for debugging or

not, and the performance of debugged code is close to that of normal operation.

Source level debugger

The source level debugger provides a good overview of your current location in the search tree,

variable bindings, your source code and open choice points. Choice point inspection provides

meaningful insight to both novices and experienced users. Avoiding unintended choice points often

provides a huge increase in performance and a huge saving in memory usage.

Profiling

SWI-Prolog offers an execution profiler with either textual output or graphical output. Finding and

improving hotspots in a Prolog program may result in huge speedups.

Flexibility

SWI-Prolog can easily be integrated with C, supporting non-determinism in Prolog calling C as

well as C calling Prolog. It can also be embedded in external programs. System predicates can be

redefined locally to provide compatibility with other Prolog systems.

Threads

Robust support for multiple threads may improve performance and is a key enabling factor for

deploying Prolog in server applications.

Interfaces

SWI-Prolog ships with many extension packages that provide robust interfaces to processes,

encryption, TCP/IP, TIPC, ODBC, SGML/XML/HTML, RDF, HTTP, graphics and much more.

In the long run, we want to move to an Integrated Development Environment (IDE) based on

XPCE. Various parts of this environment already exist and are actively being used.

PceEmacs is a GNU-Emacs clone in XPCE/Prolog, providing Prolog syntax highlighting based on

parsing and cross-referencing the editor buffer. Colouring highlights variables, quoted entities,

comments, goals (classified as built-in, imported, local, dynamic and undefined), predicates

Page 9: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

9

(classified as local, public and unreferenced), and file references (classified as existend/non-

existend). PceEmacs is started using the predicate emacs/[0,1].

The graphical tracer provides source-level debugging, using three views: your source, variable

bindings, and the stack. The stack view includes choicepoints and visualises the effect of executing

the cut!

The Execution Profiler provides a graphical overview of call and time statistics.

The Cross Referencer analyzes dependencies in the loaded program and points out undefined and

unused code. It can also generate module headers and import directives based on the analysis.

The Prolog Navigator provides an explorer-like view on a directory holding Prolog source files.

Sources files can be expanded in the tree to show predicates, exports, XPCE classes and methods.

Can be used to edit entities or enable debugging them (spy).

The Windows Prolog console plwin.exe provides a menu to access many of these facilities directly.

Visual Prolog2

The Integrated Development Environment (aka IDE) allow you to create and manage Visual Prolog

project. It contains features for:

Editing source files

2 http://www.visual-prolog.com/vip/product/default.htm

Page 10: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

10

Designing dialogs/forms

Building/Compiling

Debugging

ProLog – V8, 20123

It has been almost three years since our release of ProLog-V7 and now DataMatrix is proud to

announce the release of an all new ProLog-V8. The V8 system has so many new enhancements and

3 https://prologsystem.com/

Page 11: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

11

features that our entire website has to be restructured with new screenshots and technical

descriptions.  Please be patient as we undertake this rather large task.

YAP4

YAP is a high-performance Prolog compiler developed at LIACC/Universidade do Porto and at COPPE Sistemas/UFRJ. Its Prolog engine is based in the WAM (Warren Abstract Machine), with several optimizations for better performance. YAP follows the Edinburgh tradition, and is largely compatible with the ISO-Prolog standard and with Quintus and SICStus Prolog. YAP has been developed since 1985. The original version was written in assembly, C and Prolog, and achieved

4 http://www.dcc.fc.up.pt/~vsc/Yap/

Page 12: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

12

high performance on m68k based machines. The assembly code was used to implement the WAM emulators. Later emulators supported the VAX, SPARC, and MIPS architectures. Work on the more recent version of YAP strives at several goals: Portability: The whole system is now written in C. YAP compiles in popular 32 bit machines, such as Suns and Linux PCs, and in a 64 bit machines, the Alphas running OSF Unix and Linux. Performance: We have optimised the emulator to obtain performance comparable to or better than well-known Prolog systems. In fact, the current version of YAP performs better than the original one, written in assembly language.  Robustness: We have tested the system with a large array of Prolog applications. Extensibility: YAP was designed internally from the beginning to encapsulate manipulation of terms. These principles were used, for example, to implement a simple and powerful C-interface. The new version of YAP extends these principles to accomodate extensions to the unification algorithm, that we believe will be useful to implement extensions such as constraint programming.Completeness: YAP has for a long time provided most builtins expected from a Edinburgh Prolog implementation. These include I/O functionality, data-base operations, and modules. Work on YAP aims now at being compatible with the Prolog standard.  Openess: We would like to make new development of YAP open to the user community.  Research: YAP has been a vehicle for research within and outside our group. Currently research is going on on parallelisation and tabulation, and support for Bayesian Networks.

Page 13: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

13

tuProlog5

tuProlog (also called 2P) is a Java-based light-weight Prolog engine developed at the University of Bologna, and maintained by the aliCE Research Group based in Cesena, at the Second Faculty of Engineering, with some members working at the Faculty of Engineering located in Bologna.tuProlog has been designed to be one of the basic bricks of Internet applications and infrastructures; this purpose has dictated its main characteristics, such as deployability, lightness, dynamic configurability, integration with Java and ease of interoperability.tuProlog is a light-weight Prolog system for distributed applications and infrastructures, intentionally designed around a minimal core, to be later configured by (statically and dynamically) loading/unloading libraries of predicates. tuProlog natively supports multi-paradigm programming, providing a clean, seamless integration model between Prolog and mainstream object-oriented languages -- namely Java, for tuProlog Java version, and any .NET-based language (C#, F#..), for tuProlog .NET version.

5 http://en.wikipedia.org/wiki/TuProlog

Page 14: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

14

THE CIAO SYSTEM6

Ciao is a general-purpose programming language which supports logic,

constraint, functional, higher-order, and object-oriented programming styles. Its main design

objectives are high expressive power, extensibility, safety, reliability, and efficient execution.

Ciao offers a complete Prolog system, supporting ISO-Prolog, but its novel modular design allows

both restricting and extending the language. As a result, it allows working with fully declarative

subsets of Prolog and also to extend these subsets (or ISO-Prolog) both syntactically and

semantically. Most importantly, these restrictions and extensions can be activated separately on

each program module so that several extensions can coexist in the same application for different

modules.

Ciao also supports (through such extensions) programming with functions, higher-order (with

predicate abstractions), constraints, and objects, as well as feature terms (records), persistence,

several control rules (breadth-first search, iterative deepening, ...), concurrency (threads/engines), a

good base for distributed execution (agents), and parallel execution. Libraries also support WWW

programming, sockets, external interfaces (C, Java, TclTk, relational databases, etc.), etc.

6 http://ciao-lang.org/

Page 15: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

Prolog sistēmu sarakstshttps://www.complang.tuwien.ac.at/ulrich/prolog_misc/systems.html

Name Main DeveloperISO

Part IAvailability Source

CLPCHR

Commercial Applications,

References, Remarksdif FD Q R Bcompl.

SICStus 3 SICS full commercial no yes yes yes float yes yes references, Clarissa, Edgarscan, Tacton

SWI J. Wielemaker full LGPL LGPL yes yes yes float yes applications

YAP LIACC full artistic yes yes yes yes float yes

Prolog IV PrologIA full commercial yes yes yes interval references

IF/Prolog IF Computer full commercial yes yes yes yes applications!!!

ECLiPSe IC-Parc Cisco-MPL yes yes yes float yes applications

SICStus 4 SICS full commercial yes yes yes merge of SICStus 3 and Quintus

Ciao M. Hermenegildo partial GNU GNU yes yes float yes originally based on older SICStus

XSB SUNY LGPL LGPL yes yes company: industries served

B-Prolog Neng-Fa Zhou partial commercial yes yes yes

Prolog II+ PrologIA yes free yes

Nu L. Naish academic yes yes

CHIP Cosytec commercial yes yes applications!!!, references

Page 16: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

Name Main DeveloperISO

Part IAvailability Source

CLPCHR

Commercial Applications,

References, Remarksdif FD Q R Bcompl.

GNU Prolog D. Diaz full GNU GNU yes TOPS

Prolog systems without constraints (with mostly many other extensions)

MINERVA IF Computer full commercial runs in Java browser!!!, showcase

Amzi! full commercial yes applications

ALS yes commercial applications

LPA yes commercial applications, news

Arity/Prolog free showcase

Quintus SICS commercial Inquizit

BinProlog BinNet commercial demos

Trinc full commercial

Strawberry D.D. Dobrev commercial

Close-to-Prolog systems (mostly type or mode restricted)

Visual Prolog PDC commercial applications, Borland Turbo Prolog's successor

Mercury Z. Somogyi GNU GNU

HAL team ? ? float?

Page 17: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog
Page 18: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

Speed comparisonThe following comparison tests the overheads incurred by unify_with_occurs_check/2.

Significant overheads are not inherent: The 496 logical inferences executed require a total of 465

unifications with occurs check. But 435 unify a variable with a constant, 30 unify a variable with a

ground list of the form [integer].

Pentium III 1GHz Mlips

system version default occurs check slowdown

SWI 5.4.0 1.8 1.2 * 1.5

SICStus 3.11.2 11.8 2.7 4.3

Yap 4.4.4 19.5 7.8 2.5

Ciao 1.10#5 6.6 2.0 3.3

GNU 1.2.16 10.9 5.8 1.9

B 6.6 #2 14.5 n.a -

1

Page 19: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

Deduktīvas datu bāzes sistēmas čaula

LDL++ sistēma

2

Page 20: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

Systems implementing Datalog. Free software/Open source

Written in Name Description

Java

IRIS

IRIS extends Datalog with function symbols, built-in predicates, locally stratified or un-stratified logic programs (using the well-founded semantics), unsafe rules and XML schema data types

Jenaa Semantic Web framework which includes a Datalog implementation as part of its general purpose rule engine, which provides OWL and RDFS support.

SociaLite SociaLite is a datalog variant for large-scale graph analysis developed in Stanford

Graal Graal is a Java toolkit dedicated to querying knowledge bases within the framework of existential rules, aka Datalog+/-.

C XSBA logic programming and deductive database system for Unix and MS Windows with tabling giving Datalog-like termination and efficiency, including incremental evaluation

C++

Coral A deductive database system written in C++ with semi-naïve datalog evaluation. Developed 1988-1997.

Inter4QL

an open-source command-line interpreter of Datalog-like 4QL query language implemented in C++ for Windows, Mac OS X and Linux. Negation is allowed in heads and bodies of rules as well as in recursion

RDFox RDF triple store with Datalog reasoning. Implements the FBF algorithm for incremental evaluation.

Souffle

an open-source Datalog-to-C++ compiler converting Datalog into high-performance, parallel C++ code, specifically designed for complex Datalog queries over large data sets as e.g. encountered in the context of static program analysis

Python pyDatalogadds logic programming to python's toolbox. It can run logic queries on databases or python objects, and use logic clauses to define the behavior of python classes.

Ruby bloom / bud

A Ruby DSL for programming with data-centric constructs, based on the Dedalus extension of Datalog which adds a

3

Page 21: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

temporal dimension to the logic.

Lua Datalog a lightweight deductive database system.

Prolog DES an open-source implementation to be used for teaching Datalog in courses

Clojure

Cascalog a Clojure library for querying data stored on Hadoop clusters

Clojure Datalog a contributed library implementing aspects of Datalog

Datascript Immutable database and Datalog query engine that runs in the browser

Racket Datalog for Racket

Tcl tclbdd Implementation based on binary decision diagrams. Built to support development of an optimizing compiler for Tcl.

Haskell DynaDyna is a declarative programming language for statistical AI programming. The language is based on Datalog, supports both forward and backward chaining, and incremental evaluation.

other or unknown languages

bddbddban implementation of Datalog done at Stanford University. It is mainly used to query Java bytecode including points-to analysis on large Java programs

ConceptBase

a deductive and object-oriented database system based on a Datalog query evaluator. It is mainly used for conceptual modeling and metamodeling

4

Page 22: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

Non-free software

Datomic is a distributed database designed to enable scalable, flexible and intelligent applications, running on new cloud architectures. It uses Datalog as the query language.

DLV is a commercial Datalog extension that supports disjunctive head clauses.

FoundanDBtio provides a free-of-charge database binding for pyDatalog, with a tutorial on its use.

Leapsight Semantic Dataspace (LSD) is a distributed deductive database that offers high availability, fault tolerance, operational simplicity, and scalability. LSD uses Leaplog (a Datalog implementation) for querying and reasoning and was create by Leapsight.

LogicBlox, a commercial implementation of Datalog used for web-based retail planning and insurance applications.

.QL, a commercial object-oriented variant of Datalog created by Semmle.

SecPAL a security policy language developed by Microsoft Research. Stardog is a graph database, implemented in Java. It provides support for RDF and all

OWL 2 profiles providing extensive reasoning capabilities, including datalog evaluation.

StrixDB: a commercial RDF graph store, SPARQL compliant with Lua API and Datalog inference capabilities. Could be used as httpd (Apache HTTP Server) module or standalone (although beta versions are under the Perl Artistic License 2.0).

5

Page 23: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

Datalog Educational system7

7 http://des.sourceforge.net/

6

Page 24: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

7

Page 25: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

Deduktīvu datu bāzu sistēmas un prototipi8

Komerciālās sistēmas

DLV (Italy, University of Calabria) commercial

LogicBlox (USA) commercial

Intellidimensin (USA) commercial

Semmle (UK) commercial

8 http://users.informatik.uni-halle.de/~brass/lp14/software.html

8

Page 26: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

Prolog/CLP sistēmasSWI-Prolog    [http://www.swi-prolog.org/]

GNU Prolog (GNU Prolog for Java is an implementation of ISO Prolog as a Java library (gnu.prolog))[ http://gnu-prolog.inria.fr/ ]

The Ciao Prolog System [http://clip.dia.fi.upm.es/~clip/Software/Ciao/]

ECLiPSe Constraint Logic Programming System [http://eclipse.crosscoreop.com/eclipse/][http://www.clps.de/]

B-Prolog   [http://www.probp.com/]

SICStus Prolog[http://www.sics.se/sicstus/] (Homepage)[http://www.sics.se/sicstus/docs/3.7.1/html/sicstus_toc.html] (User Manual)[http://www.sics.se/isl/sicstuswww/site/links.html] (Useful Links)

Visual Prolog[http://www.visual-prolog.com/][http://www.pdc.dk/Default.htm] (PDC: Prolog Development Center)

The Prolog ISO Standard Documents[http://pauillac.inria.fr/~deransar/prolog/docs.html]

InterProlog (Java front-end and enhancement for Prolog)9

XSB Prolog

YAP Prolog

9 http://www.declarativa.com/InterProlog/

9

Page 27: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

Deduktīvās datu bāzes sistēmas

Coral10 Deductive Database (University of Wisconsin)         [http://www.cs.wisc.edu/coral/]         [http://se.aminet.net/pub/databases/deductive/coral/         [http://se.aminet.net/pub/databases/object-oriented/exodus/

The Aditi11 Deductive Database         [http://www.cs.mu.oz.au/research/aditi/]

The Deductive Database System LDL++12

         [http://wis.cs.ucla.edu/ldl/]         [http://www.cs.ucla.edu/~zaniolo/papers/tplp02.pdf]         [http://www.cs.ucla.edu/ldl/] (LDL Java Interface)         [http://www.cs.uwyo.edu/~ruben/research/pdf/guide.pdf]

NAIL! (Stanford university)

The LOLA13 Project, Implementation of a Deductive Database System         [http://www.im.uni-passau.de/projekte/lola.html]

ROCK&ROLL: Deductive Object Oriented Database System         [http://www.cee.hw.ac.uk/Databases/rnr.html]

Datalog Educational System (DES)14 (Complutense university)         [http://www.softpedia.com/get/Others/Home-Education/Datalog-Educational-System.shtml]         [http://www.fdi.ucm.es/profesor/fernan/des/]

Lightwight Deductive Database System (MITRE Corporation)         [http://www.ccs.neu.edu/home/ramsdell/tools/datalog/]

bbdbddb - BDD-Based Deductive DataBase         [http://bddbddb.sourceforge.net/]

LogicBlox: Cloud-delivered platform for actionable Big Data enterprise applications10 https://www.cse.iitb.ac.in/~sudarsha/Pubs-dir/coralimpl.sigmod93.pdf

http://research.cs.wisc.edu/coral/11 VLDB Jouraal, 3, 245-288 (1994). Invited contribution. Hans-J. Schek, Editor.12 http://web.cs.ucla.edu/~zaniolo/czdemo/tsur/Papers/ldlfinal.pdf13 http://dbis-informatik.uibk.ac.at/files/ext/mitarbeiter/specht/lit/91-tec-ldl-lola-vgl-scan.pdf14 https://www.fdi.ucm.es/profesor/fernan/FSP/SCG11aSlides.pdf

10

Page 28: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

         [http://www.logicblox.com/] (Homepage)         [http://www.logicblox.com/presentations/arefdatalog20.pdf]

STARBURST

4QL (Warsaw University)

MegaLog

PRO_SQL – sistēma, kurā loģiskā programmēšanas valoda PROLOG sasaistīta

ar SQL/DS sistēmu (IBM Research Center at Yorktown Heights).

EDUCE - sistēma, kurā loģiskā programmēšanas valoda PROLOG sasaistīta ar

DBVS INGRES (European Computer Industry Research Center).

ESTEAM - firmas Philips izstrāds interfeiss sistēmai ESTEAM un DBVS

INGRESS QUEL vaicājumu valodā.

BERMUDA

PRIMO – interfeiss starp Arity-Prolog sistēmu un DBVS Oracle, izstrāde veikta

Modenas universitātē Itālijā.

QUINTUS-PROLOG – firmas Quintus Computer System izstrādne, kurā

izveidots interfeiss ar DBVS Unify.

INDALOG a declarative deductive database language15

15 http://www.ual.es/~abecerra/archivos/prole01def.pdf

11

Page 29: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

Loģiskās programmēšanas sistēmas

The Mercury Project[http://www.cs.mu.oz.au/research/mercury/]

The Mozart Programming System[http://www.mozart-oz.org/]

XSB (Stony Brook University, Uppsala Universitet)16

[http://xsb.sourceforge.net/]

Flora-2[http://flora.sourceforge.net/]

FLORID/FloXML[http://www.informatik.uni-freiburg.de/~dbis/florid/][http://www.semwebtech.org/domains/test/DLFlorid/] (Online Demo)

Xcerpt[http://www.xcerpt.org/]

ConceptBase: A Deductive Object Manager for Meta Databases (Passau, Aachen, Tilburg Universities)[http://www-i5.informatik.rwth-aachen.de/CBdoc/]

The Goedel Programming Language[http://www.cs.bris.ac.uk/~bowers/goedel.html]

A Java Deductive Reasoning Engine for the Web[http://www.jdrew.org/jDREWebsite/jDREW.html]

IRIS - Integrated Rule Inference System[http://iris-reasoner.org/]

16 http://xsb.sourceforge.net/

12

Page 30: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewMost implementations of the Prolog language are designed to serve a limited set of use cases. SWI-Prolog is no exception to this rule. SWI-Prolog

Answer Set Programming (ASP) Systems

smodels         [http://www.tcs.hut.fi/Software/smodels/]

Potassco (clasp, Gringo, ...)         [http://potassco.sourceforge.net/]

DLV         [http://www.dlvsystem.com/]

13