top of page

Some Best Practices for New Protege Users

Writer: Michael DeBellis
Michael DeBellis
Oct 16, 2019
3 min read

Updated: Sep 27, 2022

I've been following the Protege mailing list for several years. I've noticed that I find myself and other experienced users often repeating certain information with new users. These are best practices and design patterns that experienced users are familiar with but that new users may not be aware of. I've created a series of posts that describe some of the best practices that in my experience are often useful for solving various problems. In each post I usually include one or more supporting documents or example ontologies to demonstrate the concept. In this post I'm summarizing all of these posts in one place. The order I present them in here doesn't correspond to the order that I wrote them in. I wrote them more or less randomly as various ideas occurred to me, here I'm trying to provide some order. Each post (well with two exceptions) are completely independent of each other but in this post I'm listing them in the order that I think would make the most sense for a new user to read them in.

  • Theoretical Basics. This provides an overview of the set theoretic and logical foundation for OWL and a very brief description of how OWL maps to other paradigms such as E/R modeling and object-oriented analysis and design.

  • New Pizza Tutorial. This is a new version of the Pizza tutorial for Protege. I've made it consistent with the new UI and added new sections for SWRL, SPARQL, and SHACL.

  • SWRL Tutorial. A short tutorial on how to use the Semantic Web Rule Language (SWRL) in Protege. The domain is process modeling. A small project plan ontology is developed and rules are used to update things like start times, slack time, etc.

  • Drools vs. Pellet for SWRL rules. A common thing for new SWRL users to do is to use the Drools buttons on the SWRLTab to run SWRL rules. This post describes why using the Pellet reasoner is usually preferable to using Drools.

  • Exporting Inferred Axioms as Ontology. A description of how and when to use a command in Protege to save all the inferences of the reasoner in a file. Typically, inferences are not saved but for many cases it can be very useful to save them.

  • Representing Qualitative Values as an Enumerated Class. This post describes a very useful design pattern to represent qualitative values (e.g., never, seldom, often) as an enumerated class and how to define properties that impose a transitive order on these values which can be tested in rules and DL statements.

  • Implementing N-ary Relations in OWL. This uses the ontology from the previous post and shows how to implement a ternary relation in OWL. The example illustrates how using this design pattern can make your ontology much easier to maintain by eliminating the need to write extra rules when new data is added to the ontology. The 3 SWRL rules used in the example ontology from the previous post are replaced by one rule which not only works for the data in that ontology but would continue to work as new individuals were added.

  • Removing Ontology Prefixes from SWRL Rules. Last and probably least this is a fix for a minor bug that sometimes comes up when using SWRL rules. The SWRLTab will sometimes include the ontology prefix in the name of every object in a rule. This doesn't harm anything, it has no effect on how the rules work but it can look a bit ugly and confusing. The fix is easy but involved manually editing the OWL file which should be done with care as one wrong comma (or as I experience once, one replacement of a quote with a "smart" quote) can make the entire file unreadable.

As always feel free to comment if anything is confusing, downloads aren't working, etc. Or feel free to contact me via email which can be found on my contact page.


233 Comments


Jamie Garcia
an hour ago

Considering sharing the everyday questions of parenthood, I keep coming back to the difference between knowing about an idea and putting it into practice. Small concerns can be easier to discuss when parents hear that others have similar questions. For me, that is a useful way into the broader subject of parenting support discussions. I am more curious about the process than a polished result, because the steps in between are usually where questions appear. What makes a parenting discussion feel helpful rather than competitive?

Like

Owen Nguyen
12 hours ago

The topic of using familiar characters in preschool learning gives me a few things to think about, especially when the discussion moves beyond general advice. A familiar character can make a new classroom routine feel easier to approach. I would use that point as a starting question when considering preschool storytelling activities. I would be interested in a simple example, because it is often the ordinary details that make an idea memorable. How can a story character support learning while leaving children room to create?

Like

Hayden Brown
12 hours ago

Considering developing a reflective approach to learning, I keep coming back to the difference between knowing about an idea and putting it into practice. Looking back at a task can reveal which part was difficult and which strategy helped. Seen this way, reflective learning habits becomes a topic to explore rather than something to sum up too quickly. I do not have a settled view yet, but this seems like a good place to slow down and look more closely. How can reflection remain practical rather than becoming another form to complete?

Like

Nina Andersen
16 hours ago

Mấy lời dặn dành cho người mới trong chương trình đệ tử nghe quen thuộc, kiểu cứ làm đúng bài tập thôi chứ đừng vội. Điều mình thấy có giá nhất là phần đặt mục tiêu rõ ràng và biết khi nào thì nên dừng lại hỏi cấp trên, JD88 vì nhiều khi mình cứ cố thêm một chút cho hoàn hảo rồi lại trễ tiến độ. Bài viết không hứa hẹn gì cả, chỉ nói nên bắt đầu từ đâu, tự kiểm tra ra sao và ghi chép lại thế nào. Đọc xong mình nhớ lại lần đầu đi thực tập, lúc đó ai cũng bảo phải chủ động nhưng chẳng nói rõ chủ động đến mức nào thì không…

Like

Jamie Garcia
a day ago

Bài về người dùng mới của một hệ thống nào đó, mình đọc vì tò mò cách họ hướng dẫn. Phần nói đừng ngại hỏi và chịu khó đọc tài liệu trước có vẻ hợp lý. Mình nhớ hồi mới vào một nhóm chơi game bài trên mạng, có người nhắc GO88, mình ngồi im vì chẳng hiểu luật gì. Đúng là cái cảm giác lạc đường lúc đầu làm mình hiểu vì sao hướng dẫn rõ ràng lại quan trọng. Có điều bài hơi dài, đọc mệt. Mình thấy nếu gom lại thành vài ý chính thì dễ theo hơn.

Like
  • facebook
  • linkedin

©2019 by Michael DeBellis. Proudly created with Wix.com

bottom of page