Wednesday, June 7, 2017

SWRL Process Modeling Tutorial

Please Note that this blog is no longer active.  For my new blog please go to: https://www.michaeldebellis.com/blog     I have published a new version of the classic Protege/OWL Pizza tutorial that includes SWRL, SHACL, and SPARQL introductions:  https://www.michaeldebellis.com/post/new-protege-pizza-tutorial and the original SWRL process model can be found here:  https://www.michaeldebellis.com/post/swrl_tutorial 

The following is a tutorial for using the Semantic Web Rule Language (SWRL) with the Protege ontology editor.  I chose the process modeling domain because I think it is something many people can relate to.  Also, it's a simple example that highlights some of the powerful mathematical capabilities that are a result of the set theoretic foundation of OWL and SWRL. At least that was my hope.

Here is the PDF of the tutorial: SWRL Process Modeling Tutorial

The initial ontology to start the tutorial is here: SWRLProcessTutorialStart-V2.owl

The final version of the ontology, with an example waterfall model is here: SWRLProcessTutorialFinal.owl

Thanks to all the people on the Protege user support list for answering my endless stream of questions, special thanks to Martin O'Connor.

If you have questions or comments about the tutorial feel free to email me: mdebellissf@gmail.com

Also, the following document has nothing to do with SWRL but it is something I think many new comers to working with Protege and OWL might find useful. OWL (the language underneath Protege) is based on logic and set theory. For those who don't know or are rusty on those concepts here is a PDF that is a good overview of the basics. Don't be misled by the cover page, this is from a book on Mathematical Methods in Linguistics but this is just the first chapter which is a nice overview of logic and set theory:  Partee, et. al. Basic Concepts of Set Theory




Sunday, June 4, 2017

Welcome: What's in a name?

It's not easy finding available names on the Internet these days. After multiple failures I finally found one that was available and that I didn't hate. I was a Symbolics hacker at one point. The Symbolics Machine was an AI workstation. Symbolics computers were the first commercial versions of the MIT Lisp machines. They had a three button mouse, a space cadet keyboard, and a huge bitmap graphic monitor when most computers had green screen terminals or DOS style user interfaces.

Indeed, at Andersen Consulting where I did the majority of my Symbolics hacking the standard training that I had to go through before I got to play on my Lisp machine was programming in COBOL via punch cards, not even a monitor. Everything in the Symbolics operating system and networking environment was written in object-oriented Lisp that developers had full access to. It was a real joy to work on and we could develop amazing software very rapidly. So that was my choice for the blog name.

However, I also liked the name because lately I've been interested in the work of Terrance Deacon an anthropologist at UC Berkeley and through him the work of Charles Sanders Peirce and the concept of symbols and how important they are to human cognition is an essential idea for both of them.

I began by studying philosophy. As I did that I became interested in Artificial Intelligence and that is how I ended up developing on a Symbolics. Later in my career I did R&D on software engineering and formal methods. One of my most interesting jobs was as a principle investigator for the USAF's Knowledge-Based Software Assistant program.

In the past few years I've self educated myself on a number of diverse but related topics on philosophy and science.  I've learned to use the Protege ontology editor from Stanford and think it is an amazing tool.  This blog will be for discussion of all sorts of topics from practical uses of OWL and the semantic web to abstract issues of philosophy, mathematics, and science. I started the blog when I was auditing some courses at UC Berkeley and haven't used it in a while but I'm using it to post a SWRL tutorial I just developed and plan to post more frequently in the future.

I'm currently doing research in ethics which I think is somewhere between philosophy and cognitive science.  I've used Protege to create a formal model of what Marc Hauser calls a Universal Moral Grammar (UMG) and have applied the model to various scenarios and systems from ethical philosophy and evolutionary psychology.

Some of my papers, all published except the most current one on the UMG can be found at my academia.com site:  https://independent.academia.edu/MichaelDeBellis