Semantic Web Tools Vagan Terziyan Department of Mathematical Information Technology, University of Jyvaskyla [email protected] ; [email protected] http://www.cs.jyu.fi/ai/vagan +358 14 260-4618 Tutorial: Designing Ontologies with Protégé Protégé is an ontology editor and a knowledgebase editor (download from http://protege.stanford.edu ). Protégé is also an open-source, Java tool that provides an extensible architecture for the creation of customized knowledge-based applications. Protégé's OWL Plug-in now provides support for editing Semantic Web ontologies. http://www.cs.man.ac.uk/~horrocks/Teaching/cs646/ http://www.co-ode.org/resources/tutorials/ProtegeOWLTutorial.pdf 2 FaCT++ OWL-DL Reasoner Supported by Protégé 4.0 Alpha 3 Racer: Reasoner for OWL http://www.racer-systems.com/ RACER or RacerPro as it now called was the first OWL Reasoner on the Market. They appeared in 2002 and have been continuously improved. While others have tried hard to achieve comparable speed, RacerPro is still one of the fastest OWL reasoning systems available. Many users have contributed to the stability that the reasoner currently demonstrates in many application projects around the world. RacerPro as the back-end inference system (reasoner) for use with Protégé. 4 Racer: Reasoner for OWL (services) http://www.racer-systems.com/ The following services are provided for OWL ontologies and RDF data descriptions: Check the consistency of an OWL ontology and a set of data descriptions. Find implicit subclass relationships induced by the declaration in the ontology. Find synonyms for resources (either classes or instance names). Since extensional information from OWL documents (OWL instances and their interrelationships) needs to be queried for client applications, an OWL-QL query processing system is available as an open-source project for RacerPro. HTTP client for retrieving imported resources from the web. Multiple resources can be imported into one ontology. Incremental query answering for information retrieval tasks (retrieve the next n results of a query). In addition, RacerPro supports the adaptive use of computational resource: Answers which require few computational resources are delivered first, and user applications can decide whether computing all answers is 5 worth the effort. JESS: Rule Engine for Java Platform http://herzberg.ca.sandia.gov/jess/ Jess is a rule engine and scripting environment written entirely in Sun's Java language by Ernest Friedman-Hill at Sandia National Laboratories in Livermore, CA. Using Jess, you can build Java software that has the capacity to "reason" using knowledge you supply in the form of declarative rules. Jess is small, light, and one of the fastest rule engines available. Its powerful scripting language gives you access to all of Java's APIs. Jess includes a full-featured development environment based on the award-winning Eclipse platform. 6 Jess installation Visit http://www.jessrules.com/ Choose license type Trial – expires after 30 days Licensed – commercial or academic (includes source) Choose version Stable (e.g., 6.1p8) Development (e.g., 7.0b7) Tip: Development versions of Jess are usually stable 7 Jess installation (cont.) The distribution contains the file jess.jar Put the file jess.jar in the Protege/plugins/JessTab directory in the Protégé installation jess.jar JessTab.jar plugin.properties Tip: The file names sometimes contain version number. Usually, Protégé will find them anyway. 8 JessTab plug-in for Protégé Jess console window in Protégé Mapping instances to Jess facts Functions for knowledge-base operations Mirroring Jess definitions in Protégé knowledge bases Support for metalevel objects Support for methods and message handlers 9 JessTab Installation JessTab is bundled with the Protégé distribution Latest JessTab version available from SourceForge It is necessary to download and install Jess separately Because of licensing 10 Trying JessTab Obtain Protégé Download from http://protege.stanford.edu/ License: MPL 1.1 Obtain Jess Download from http://www.jessrules.com/ License: Special Jess license (commercial or free academic) Compilation sometimes required Get JessTab Download from http://www.ida.liu.se/~her/JessTab/ License: MPL 1.1 http://www.ida.liu.se/~her/JessTab/tutorial07/ 11 Enabling JessTab in Protégé Enable the tab 12 JessTab with no Jess engine 13 JENA Jena is a Java framework for building Semantic Web applications. It provides a programmatic environment for RDF, RDFS and OWL, including a rule-based inference engine. Jena is open source and grown out of work with the HP Labs Semantic Web Program. The Jena Framework includes: A RDF API Reading and writing RDF in RDF/XML, N3 and N-Triples An OWL API In-memory and persistent storage RDQL – a query language for RDF http://jena.sourceforge.net/tutorial/RDF_API/index.html http://jena.sourceforge.net/ 14 Jena Integration of Protégé-OWL Jena is one of the most widely used Java APIs for RDF and OWL, providing services for model representation, parsing, database persistence, querying and some visualization tools. Protege-OWL always had a close relationship with Jena. The Jena ARP parser is still used in the Protege-OWL parser, and various other services such as species validation and datatype handling have been reused from Jena. It was furthermore possible to convert a Protege OWLModel into a Jena OntModel, to get a static snapshot of the model at run time. This model, however had to be rebuild after each change in the model. As of August 2005, Protege-OWL is now much closer integrated with Jena. This integration allows programmers to user certain Jena functions at run-time, without having to go through the slow rebuild process each time. The architecture of this integration is illustrated on the next slide… http://protege.stanford.edu/plugins/owl/api/guide.html 15 Jena Integration of Protégé-OWL The key to this integration is the fact that both systems operate on a lowlevel "triple" representation of the model. Protege has its native frame store mechanism, which has been wrapped in Protege-OWL with the TripleStore classes. In the Jena world, the corresponding interfaces are called Graph and Model. The Protege TripleStore has been wrapped into a Jena Graph, so that any read access from the Jena API in fact operates on the Protege triples. In order to modify these triples, the conventional Protege-OWL API must be used. However, this mechanisms allows to use Jena methods for querying while the ontology is edited inside Protege. The OWLModel API has a new method getJenaModel() to access a Jena view of the Protege model at 16 into run-time. This can be used by Protege plugin developers. Many other Jena services can be wrapped Protege plugins this way, by providing them a pointer to the Model created by Protege. Joseki - a SPARQL Server for Jena Joseki: The Jena RDF Server. Joseki is a server for publishing RDF models on the web. Models have URLs and they can be access by HTTP GET. Joseki is part of the Jena RDF framework. Joseki is an HTTP and SOAP engine supports the SPARQL Protocol and the SPARQL RDF Query language. SPARQL is developed by the W3C RDF Data Access Working Group. Joseki Features: RDF Data from files and databases HTTP (GET and POST) implementation of the SPARQL protocol SOAP implementation of the SPARQL protocol http://prdownloads.sourceforge.net/joseki/joseki-3.0-beta-1.zip?download http://www.joseki.org/ 17 Sesame Sesame is a Java framework for storing, querying and inferencing for RDF. It can be deployed as a web server or used as a Java library. Features include several query languages (SeRQL and SPARQL), inferencing support, and RAM, disk, or RDBMS storage. Sesame 2.0 now supports most of the SPARQL query 18 language.