Bottom up development to learn about a domain of interest

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Bottom up development to learn about a domain of interest

Suman Beros
Michael, thank you for taking the time to respond and thank you for your
suggestions.  I have started learning about extreme programming and going
through articles about "agile methods semantic web ontology development" and
lightbulbs are lighting up.  Much appreciated.  My focus is more on the
discovery and being able to capture observations about individuals in a
meaningful and useful way (not letting those observations go to waste) and
less on the design of a domain model.  However, I'm hoping that the model
emerges from the observations about individuals.  It looks like Agile
Development could facilitate that.

Testing seems to play an important role in Agile Development.  Any thoughts
about testing a developing ontology beyond running a reasoner?

Best regards,
Suman

-----Original Message-----
From: protege-user [mailto:[hidden email]] On
Behalf Of [hidden email]
Sent: Saturday, April 13, 2019 15:06
To: [hidden email]
Subject: protege-user Digest, Vol 63, Issue 10

Send protege-user mailing list submissions to
        [hidden email]

To subscribe or unsubscribe via the World Wide Web, visit
        https://mailman.stanford.edu/mailman/listinfo/protege-user
or, via email, send a message with subject or body 'help' to
        [hidden email]

You can reach the person managing the list at
        [hidden email]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of protege-user digest..."


Today's Topics:

   1. Re: Bottom up development to learn about a domain of interest
      (Michael DeBellis)


----------------------------------------------------------------------

Message: 1
Date: Fri, 12 Apr 2019 13:03:50 -0700
From: Michael DeBellis <[hidden email]>
To: User support for WebProtege and Protege Desktop
        <[hidden email]>
Subject: Re: [protege-user] Bottom up development to learn about a
        domain of interest
Message-ID:
        <[hidden email]>
Content-Type: text/plain; charset="utf-8"

Suman, I don't have any examples for you but I wanted to point you to some
search keywords that might help. Are you familiar with Agile Development
(earlier known as Extreme Programming)?  What you are describing is very
analogous to the way we do design of systems in Agile Development. Not that
in Agile there is no concept of top down design, of course there is, but a
guiding principal of Agile (which was very consistent with my personal
experiences even before I drank the Agile kool-aid) is that the best
designs emerge incrementally from the bottom up rather than trying to
anticipate everything from the beginning, doing one top down design.

I've always thought that Agile was very compatible with developing
ontologies. For example, the concept of Refactoring is a major one in Agile
and common kinds of Refactoring of models is built in to the Protege
environment. If you aren't familiar with Agile development you might find
Kent Beck's book Extreme Programming Explained worth reading. It's very
short and easy to read and a great introduction to the ideas.

I did a Google search for "agile methods semantic web ontology development"
and found many papers that looked worth reading. Hope that helps.

Michael

On Wed, Apr 10, 2019 at 1:31 PM sb <[hidden email]> wrote:

> Are there any good example ontologies that were/are being developed
> primarily bottom up with the goal of better understanding and
systematizing
> a domain of interest?  Are there any good write ups of challenges and
> lessons learned in the process of using that approach?
>
> The domain I?m interested in deals with smartphones and other mobile
> devices.  Specifically, extracting, analyzing and presenting data
recovered

> from mobile devices.  I have some level of understanding of the domain.
> However, it is quickly evolving and widely sprawling domain.  I?m hoping
> that by capturing observations about individual devices in an ontology I
> could improve my understanding of the domain.
>
> Thoughts, suggestions?  Much appreciated.
>
> Best regards,
> Suman
>
> Suman Beros
> [hidden email]
> _______________________________________________
> protege-user mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/protege-user
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mailman.stanford.edu/pipermail/protege-user/attachments/20190412/eb6
99b19/attachment-0001.html>

------------------------------

Subject: Digest Footer

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user


------------------------------

End of protege-user Digest, Vol 63, Issue 10
********************************************

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Bottom up development to learn about a domain of interest

Michael DeBellis-2
Suman, I realize my response wasn't exactly what you were looking for so glad it was of some help. Regarding testing I have a few ideas, perhaps things you've thought of but these are things I've done in various ontologies. First, I usually have some standard objects that test SWRL rules and defined classes (e.g., to make sure that an object that is defined so that it should be classified as a Foo defined class gets defined that way). I.e., just like having test data that goes with a program I often create test objects for an ontology. I think there is even an example of doing this in the Pizza tutorial. 

Also, I often have predefined SQWRL queries that I run to make sure I'm getting the results that I expect. As you probably know, SQWRL is just for queries, unlike SWRL it can't assert new info back in the ontology but it includes features that make it useful both for debugging rules and for other kinds of debugging and testing. For example, usually I never make any object an instance of owl:Thing, I'll have top level classes for each ontology that any object will be an instance of so if there is an object that is an instance of owl:Thing it is because it became an orphan by some error (e.g., deleted a class and didn't delete it's instances). So I'll have a SQWRL query that prints out any individuals that are instances of owl:Thing. 

Also, you might want to look into some of the plugins for testing/debugging features. The Ontology Debugger seems like it might be useful and also possibly the Change Tracker and (for SWRL rules) the SRE plugin. I haven't personally used those though. 

Cheers,
Michael

On Sun, Apr 14, 2019 at 7:14 PM Suman Beros <[hidden email]> wrote:
Michael, thank you for taking the time to respond and thank you for your
suggestions.  I have started learning about extreme programming and going
through articles about "agile methods semantic web ontology development" and
lightbulbs are lighting up.  Much appreciated.  My focus is more on the
discovery and being able to capture observations about individuals in a
meaningful and useful way (not letting those observations go to waste) and
less on the design of a domain model.  However, I'm hoping that the model
emerges from the observations about individuals.  It looks like Agile
Development could facilitate that.

Testing seems to play an important role in Agile Development.  Any thoughts
about testing a developing ontology beyond running a reasoner?

Best regards,
Suman

-----Original Message-----
From: protege-user [mailto:[hidden email]] On
Behalf Of [hidden email]
Sent: Saturday, April 13, 2019 15:06
To: [hidden email]
Subject: protege-user Digest, Vol 63, Issue 10

Send protege-user mailing list submissions to
        [hidden email]

To subscribe or unsubscribe via the World Wide Web, visit
        https://mailman.stanford.edu/mailman/listinfo/protege-user
or, via email, send a message with subject or body 'help' to
        [hidden email]

You can reach the person managing the list at
        [hidden email]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of protege-user digest..."


Today's Topics:

   1. Re: Bottom up development to learn about a domain of      interest
      (Michael DeBellis)


----------------------------------------------------------------------

Message: 1
Date: Fri, 12 Apr 2019 13:03:50 -0700
From: Michael DeBellis <[hidden email]>
To: User support for WebProtege and Protege Desktop
        <[hidden email]>
Subject: Re: [protege-user] Bottom up development to learn about a
        domain of       interest
Message-ID:
        <[hidden email]>
Content-Type: text/plain; charset="utf-8"

Suman, I don't have any examples for you but I wanted to point you to some
search keywords that might help. Are you familiar with Agile Development
(earlier known as Extreme Programming)?  What you are describing is very
analogous to the way we do design of systems in Agile Development. Not that
in Agile there is no concept of top down design, of course there is, but a
guiding principal of Agile (which was very consistent with my personal
experiences even before I drank the Agile kool-aid) is that the best
designs emerge incrementally from the bottom up rather than trying to
anticipate everything from the beginning, doing one top down design.

I've always thought that Agile was very compatible with developing
ontologies. For example, the concept of Refactoring is a major one in Agile
and common kinds of Refactoring of models is built in to the Protege
environment. If you aren't familiar with Agile development you might find
Kent Beck's book Extreme Programming Explained worth reading. It's very
short and easy to read and a great introduction to the ideas.

I did a Google search for "agile methods semantic web ontology development"
and found many papers that looked worth reading. Hope that helps.

Michael

On Wed, Apr 10, 2019 at 1:31 PM sb <[hidden email]> wrote:

> Are there any good example ontologies that were/are being developed
> primarily bottom up with the goal of better understanding and
systematizing
> a domain of interest?  Are there any good write ups of challenges and
> lessons learned in the process of using that approach?
>
> The domain I?m interested in deals with smartphones and other mobile
> devices.  Specifically, extracting, analyzing and presenting data
recovered
> from mobile devices.  I have some level of understanding of the domain.
> However, it is quickly evolving and widely sprawling domain.  I?m hoping
> that by capturing observations about individual devices in an ontology I
> could improve my understanding of the domain.
>
> Thoughts, suggestions?  Much appreciated.
>
> Best regards,
> Suman
>
> Suman Beros
> [hidden email]
> _______________________________________________
> protege-user mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/protege-user
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mailman.stanford.edu/pipermail/protege-user/attachments/20190412/eb6
99b19/attachment-0001.html
>

------------------------------

Subject: Digest Footer

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user


------------------------------

End of protege-user Digest, Vol 63, Issue 10
********************************************

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Bottom up development to learn about a domain of interest

Igor Toujilov-2

Hi Suman,

In software development we normally use automated test suites to run automatically every time we change the code to make sure that what was working before the change would work after the change. This is so called regression testing.

I use the same approach for ontology regression testing. In this case a test suite might consist of, for example, DL queries. The test program (for example, in Java) runs each query, and compares the actual results with the expected. A serious test suite normally contains hundreds of queries, and there can be many such suites. So, it is impossible to run them manually in Protégé. Unfortunately Protégé currently does not support automated testing, which may be a good feature for the future.

 

Cheers,

Igor

 

 
 
Sent: Monday, April 15, 2019 at 5:10 AM
From: "Michael DeBellis" <[hidden email]>
To: "User support for WebProtege and Protege Desktop" <[hidden email]>
Subject: Re: [protege-user] Bottom up development to learn about a domain of interest
Suman, I realize my response wasn't exactly what you were looking for so glad it was of some help. Regarding testing I have a few ideas, perhaps things you've thought of but these are things I've done in various ontologies. First, I usually have some standard objects that test SWRL rules and defined classes (e.g., to make sure that an object that is defined so that it should be classified as a Foo defined class gets defined that way). I.e., just like having test data that goes with a program I often create test objects for an ontology. I think there is even an example of doing this in the Pizza tutorial. 
 
Also, I often have predefined SQWRL queries that I run to make sure I'm getting the results that I expect. As you probably know, SQWRL is just for queries, unlike SWRL it can't assert new info back in the ontology but it includes features that make it useful both for debugging rules and for other kinds of debugging and testing. For example, usually I never make any object an instance of owl:Thing, I'll have top level classes for each ontology that any object will be an instance of so if there is an object that is an instance of owl:Thing it is because it became an orphan by some error (e.g., deleted a class and didn't delete it's instances). So I'll have a SQWRL query that prints out any individuals that are instances of owl:Thing. 
 
Also, you might want to look into some of the plugins for testing/debugging features. The Ontology Debugger seems like it might be useful and also possibly the Change Tracker and (for SWRL rules) the SRE plugin. I haven't personally used those though. 
 
Cheers,
Michael
 
On Sun, Apr 14, 2019 at 7:14 PM Suman Beros <[hidden email]> wrote:
Michael, thank you for taking the time to respond and thank you for your
suggestions.  I have started learning about extreme programming and going
through articles about "agile methods semantic web ontology development" and
lightbulbs are lighting up.  Much appreciated.  My focus is more on the
discovery and being able to capture observations about individuals in a
meaningful and useful way (not letting those observations go to waste) and
less on the design of a domain model.  However, I'm hoping that the model
emerges from the observations about individuals.  It looks like Agile
Development could facilitate that.

Testing seems to play an important role in Agile Development.  Any thoughts
about testing a developing ontology beyond running a reasoner?

Best regards,
Suman

-----Original Message-----
From: protege-user [mailto:[hidden email]] On
Behalf Of [hidden email]
Sent: Saturday, April 13, 2019 15:06
To: [hidden email]
Subject: protege-user Digest, Vol 63, Issue 10

Send protege-user mailing list submissions to
        [hidden email]

To subscribe or unsubscribe via the World Wide Web, visit
        https://mailman.stanford.edu/mailman/listinfo/protege-user
or, via email, send a message with subject or body 'help' to
        [hidden email]

You can reach the person managing the list at
        [hidden email]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of protege-user digest..."


Today's Topics:

   1. Re: Bottom up development to learn about a domain of      interest
      (Michael DeBellis)


----------------------------------------------------------------------

Message: 1
Date: Fri, 12 Apr 2019 13:03:50 -0700
From: Michael DeBellis <[hidden email]>
To: User support for WebProtege and Protege Desktop
        <[hidden email]>
Subject: Re: [protege-user] Bottom up development to learn about a
        domain of       interest
Message-ID:
        <[hidden email]>
Content-Type: text/plain; charset="utf-8"

Suman, I don't have any examples for you but I wanted to point you to some
search keywords that might help. Are you familiar with Agile Development
(earlier known as Extreme Programming)?  What you are describing is very
analogous to the way we do design of systems in Agile Development. Not that
in Agile there is no concept of top down design, of course there is, but a
guiding principal of Agile (which was very consistent with my personal
experiences even before I drank the Agile kool-aid) is that the best
designs emerge incrementally from the bottom up rather than trying to
anticipate everything from the beginning, doing one top down design.

I've always thought that Agile was very compatible with developing
ontologies. For example, the concept of Refactoring is a major one in Agile
and common kinds of Refactoring of models is built in to the Protege
environment. If you aren't familiar with Agile development you might find
Kent Beck's book Extreme Programming Explained worth reading. It's very
short and easy to read and a great introduction to the ideas.

I did a Google search for "agile methods semantic web ontology development"
and found many papers that looked worth reading. Hope that helps.

Michael

On Wed, Apr 10, 2019 at 1:31 PM sb <[hidden email]> wrote:

> Are there any good example ontologies that were/are being developed
> primarily bottom up with the goal of better understanding and
systematizing
> a domain of interest?  Are there any good write ups of challenges and
> lessons learned in the process of using that approach?
>
> The domain I?m interested in deals with smartphones and other mobile
> devices.  Specifically, extracting, analyzing and presenting data
recovered
> from mobile devices.  I have some level of understanding of the domain.
> However, it is quickly evolving and widely sprawling domain.  I?m hoping
> that by capturing observations about individual devices in an ontology I
> could improve my understanding of the domain.
>
> Thoughts, suggestions?  Much appreciated.
>
> Best regards,
> Suman
>
> Suman Beros
> [hidden email]
> _______________________________________________
> protege-user mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/protege-user
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mailman.stanford.edu/pipermail/protege-user/attachments/20190412/eb6
99b19/attachment-0001.html
>

------------------------------

Subject: Digest Footer

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user


------------------------------

End of protege-user Digest, Vol 63, Issue 10
********************************************

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
_______________________________________________ protege-user mailing list [hidden email] https://mailman.stanford.edu/mailman/listinfo/protege-user

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user