- Notifications
You must be signed in to change notification settings - Fork3
A Common Lisp Framework for the Semantic Web
License
NotificationsYou must be signed in to change notification settings
lambdamikel/OntoLisp
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A Common Lisp Framework for the Semantic Web
Tom Gillespi - thanks for the QuickLisp and ASDF changes!
OntoLisp usesQuicklisp to load dependencies.
Add the following block to your~/.sbclrc
file or equivalentor~/.config/common-lisp/source-registry.conf
.
(asdf:initialize-source-registry'(:source-registry (:tree#p"/path/to/OntoLisp/"):inherit-configuration))
From a repl you can then run
(ql:quickload:ontolisp)(owlapi::owlapi-test)(owl-syntaxes::owl-syntaxes-test)
If compilation is trigger on multiple calls toql:quickload
you can call(asdf:compile-system :ontolisp)
which should preventthe need to compile the system on each load.
(Old README.TXT)
OntoLisp (NOSA): A Semantic Web Framework for OWL 2 and OWLlink in Common Lispby Michael Wessel Version 0.9 OntoLisp (NOSA) is a Common Lisp library providing:- an ontology management framework inspired by the Java OWLAPI (v2.2) http://owlapi.sourceforge.net/- OWl 2 parsers for OWL 2 functional and OWL 2 XML syntax http://www.w3.org/TR/owl2-syntax/- OWL 2 renderers for OWL 2 functional, OWL 2 XML, and OWL 2 RDF syntax- an OWLlink implementation http://www.owllink.org/ featuring the OWLlink XML, OWLlink functional, and OWLlink S-Exression syntax, as well as a converter for these different syntaxes. OntoLisp has been tested with Allegro Common Lisp (ACL) 8.2, Lispworks(LW) 5.2, and Steel Bank Common Lisp (SBCL) 1.0.40, using Linux andMac OS-X.OntoLisp is under the Lisp Lesser GNU Public Licensehttp://opensource.franz.com/preamble.htmlOntoLisp uses the following third-party libraries / files: - ASDF - Another System Definition Facility by Daniel Barlow et al. http://common-lisp.net/project/asdf/ as the system definition facility (ontolisp:ontolisp.asd)- Wilbur2 by Ora Lassila http://www.lassila.org/ is currently used only for the XML parsing (soon for RDF as well, when OWL 2 RDF support will be added in a future version) I have made some changes to Wilbur2, please consult wilbur2:wilbur.asd. - S-HTTP-Client by Sven Van Caekenberghe http://homepage.mac.com/svc/s-http-client/ is used for s-http-client:do-http-request Alternatively, CL-HTTP (http://www.cl-http.org:8001/cl-http/) or AllegroServe (http://allegroserve.sourceforge.net/) could be used (see ontolisp:http-stream.lisp)- the other included systems (puri, s-utils, s-sysdeps, s-base64) are required by S-HTTP-Client and are included here for convenience (if you don't use S-HTTP-CLIENT, these directories can be deleted) - the ontolisp:test; library contains (original and modified version) of the OWL 2 primer in different syntaxes for testing purposes, http://www.w3.org/TR/owl2-primer/ as well as the famous people & pets ontology in functional syntax by Sean Bechhofer . These ontologies are public and can be found in various ontology repositories on the web, e.g., http://owl.cs.manchester.ac.uk/repository/In order to load OntoLisp, simply evaluate(load "/home/<yourhomedir>/ontolisp/ontolisp.lisp") Please note that "~" will not work under SBCL, and evaluating theontolisp.lisp buffer from emacs will not work - the file has to beloaded, due to the utilized *load-pathname*. If loading doesn't workfor you, simply edit ontolisp.lisp (at the position of the break).Sourcecode / API documentation is currently not provided. Please workthrough the provided examples in order to see what OntoLisp can do foryou. Start inspecting ontolisp:owlapi-test.lisp and evaluate(owlapi::owlapi-test)in your Listener to become familiar with the OWLAPI of OntoLisp.Then, to learn about the OWL 2 parsing and rendering facilities aswell as the OWLlink processor and converter, inspectontolisp:owl-syntaxes-test.lisp and evaluate(owl-syntaxes::owl-syntaxes-test)in your Listener.Please note that OntoLisp currently does not come with a DL reasonerand hence cannot really perform reasoning. Rather. a set of dummyfunctions is provided as the bridge to the reasoner which produce someoutput. I will add a DL reasoner in a future version of OntoLisp.Hence, the framework currently only addresses the syntactic aspects /management of OWL 2 and OWL ontologies. It is rather straight-forwardto connect OntoLisp to an existing KRSS-compliant DL reasoner. Pleaseconsult the file ontolisp:dummy-functions.lisp. These bridge functionshave to be implemented in order to attach a real DL reasoner toOntoLisp. For illustration purposes, I have provided the reasonerbridge implementation of RacerPro with the filesontolisp:reasoner-bridge-for-owlapi.lisp andontolisp:owllink-reasoner-bridge.lisp. Of course, this can only giveyou some hints on how these functions would look like for a differentKRSS-compliant reasoner.OntoLisp was designed in a way to depend as less as possible onthird-party libraries. Consequently, aspects like URI representationand handling may seem impoverished int he code, compared to, say,PURI. Also the OWL 2 functional parsers etc. are hand written. But Iprefer to have things under my control and work out things for myselfrather than relying / depending on some library that I don't fullyunderstand. I would argue that the provided solutions are "goodenough" for what OntoLisp is trying to do, but of course, things couldbe improved quite a bit. Still I hope the library contains usefulfunctionality and code fragments to get your OWL 2 or OWLlink projectstarted. The provided examples should give some hints and contain moreexplanations on how to go on. Otherwise drop me a mail if you havespecific questions / problems.Future plans:- add OWL 2 RDF parser using Wilbur2 - add the MiDeLoRa DL system Regards,Michael Wessel, Hamburg / Germany, 2010-07-03 mailto:michael_wessel@gmx.demailto:wessel@racer-systems-com http://www.michael-wessel.infohttp://www.racer-systems.com