use cases and competency questions
![](https://secure.gravatar.com/avatar/dd213a973cccebb564b19d69729dab8f.jpg?s=120&d=mm&r=g)
For the benefit of the uninitiated (that would be me and possibly others), could someone please post definitions of "competency question" and "use case" along with a couple of examples of each?
Steve
![](https://secure.gravatar.com/avatar/6ab4dba1583b052bef5a251805d5e000.jpg?s=120&d=mm&r=g)
As to competency questions, this might help more than a definition, since there is no agreed upon one: http://marinemetadata.org/references/competencyquestionsoverview Maybe there is something better since this was written.
As to use cases, http://en.wikipedia.org/wiki/Use_case is fair enough, but probably more than you want to know.
http://www.cragsystems.co.uk/SFRWUC/ is a pretty good tutorial for use case modeling with UML, and in about 4-5 clicks will get you to both definition and examples. You probably don't need to go further than that, especially because the further in you get, the more nit-picky is this particular tutorial.
On Tue, Jul 26, 2011 at 10:21 PM, Steve Baskauf steve.baskauf@vanderbilt.edu wrote:
For the benefit of the uninitiated (that would be me and possibly others), could someone please post definitions of "competency question" and "use case" along with a couple of examples of each?
Steve
-- Steven J. Baskauf, Ph.D., Senior Lecturer Vanderbilt University Dept. of Biological Sciences
postal mail address: VU Station B 351634 Nashville, TN 37235-1634, U.S.A.
delivery address: 2125 Stevenson Center 1161 21st Ave., S. Nashville, TN 37235
office: 2128 Stevenson Center phone: (615) 343-4582, fax: (615) 343-6707 http://bioimages.vanderbilt.edu
tdwg-content mailing list tdwg-content@lists.tdwg.org http://lists.tdwg.org/mailman/listinfo/tdwg-content
![](https://secure.gravatar.com/avatar/bdc106052d1fbf490f24dc4f4e70e196.jpg?s=120&d=mm&r=g)
Steve,
Notice in Bob's examples that use cases are a tool for all software engineering tasks, whereas competency questions are used primarily in ontology design. A couple of advantages in expressing ontology use cases as competency questions are:
i. "Can the competency question be answered?" can be easier to answer than "Is the use case satisfied?"
ii. Posing the competency questions as queries can give hints about the structure of our desired ontology. This is somewhat ass-backwards, since the structure of the ontology determines the structure of the query (not vice versa), but since ontologies exist to be queried, thinking about the shape of queries can be helpful in determining the shape of the ontology.
To take an example:
Your Individual/BiologicalEntity use case 1 is "allow for linking multiple Occurrence records that involved the same organism at different times and/or places"
This can translate to
"Find all occurrences of [individual]"
or
select ?occurrence where { ?occurrence rdf:type dwc:occurrence . ?occurrence dwc:ofIndividual [individual] . }
We can then consider our design issues with reference to the query. For example: When answering this query, does it matter whether the scope of Individual/Biological Entity includes organelles or wolf packs? Does it matter if the Individual/BiologicalEntities are taxonomically homogeneous? To me, the clear answer to both questions is no.
Now consider your Individual/BiologicalEntity use case 3: "To link multiple Identifications of the same individual organism, particularly when these Identifications were based on different pieces of evidence arising from the same individual"
This would, I think, give rise to a number of competency questions, including: "Find all identifications of [Individual]"
or
select ?identification where { ?identification rdf:type dwc:Identification . ?identification dwc:ofIndividual [individual] . }
Now let's consider those same design issues: Does it matter if the scope of Individual includes organelles or wolf packs? No. Does it matter whether or not Individuals are taxonomically homogeneous? Yes, for the reasons you gave, which involve the non-heritability of properties in a partonomy.
Reading the above, you might think "I've gained no new insight from the competency questions." But you've already put considerable thought into how various ontology design decisions will affect our ability to satisfy the use cases. In general, the competency question methodology is meant to focus and streamline our consideration of design questions.
Joel.
On Tue, 26 Jul 2011, Bob Morris wrote:
As to competency questions, this might help more than a definition, since there is no agreed upon one: http://marinemetadata.org/references/competencyquestionsoverview Maybe there is something better since this was written.
As to use cases, http://en.wikipedia.org/wiki/Use_case is fair enough, but probably more than you want to know.
http://www.cragsystems.co.uk/SFRWUC/ is a pretty good tutorial for use case modeling with UML, and in about 4-5 clicks will get you to both definition and examples. You probably don't need to go further than that, especially because the further in you get, the more nit-picky is this particular tutorial.
On Tue, Jul 26, 2011 at 10:21 PM, Steve Baskauf steve.baskauf@vanderbilt.edu wrote:
For the benefit of the uninitiated (that would be me and possibly others), could someone please post definitions of "competency question" and "use case" along with a couple of examples of each?
Steve
-- Steven J. Baskauf, Ph.D., Senior Lecturer Vanderbilt University Dept. of Biological Sciences
postal mail address: VU Station B 351634 Nashville, TN �37235-1634, �U.S.A.
delivery address: 2125 Stevenson Center 1161 21st Ave., S. Nashville, TN 37235
office: 2128 Stevenson Center phone: (615) 343-4582, �fax: (615) 343-6707 http://bioimages.vanderbilt.edu
tdwg-content mailing list tdwg-content@lists.tdwg.org http://lists.tdwg.org/mailman/listinfo/tdwg-content
-- Robert A. Morris
Emeritus Professor� of Computer Science UMASS-Boston 100 Morrissey Blvd Boston, MA 02125-3390 IT Staff Filtered Push Project Department of Organismal and Evolutionary Biology Harvard University
email: morris.bob@gmail.com web: http://efg.cs.umb.edu/ web: http://etaxonomy.org/mw/FilteredPush http://www.cs.umb.edu/~ram phone (+1) 857 222 7992 (mobile) _______________________________________________ tdwg-content mailing list tdwg-content@lists.tdwg.org http://lists.tdwg.org/mailman/listinfo/tdwg-content
![](https://secure.gravatar.com/avatar/dd213a973cccebb564b19d69729dab8f.jpg?s=120&d=mm&r=g)
Thanks Joel and Bob for the helpful examples and references. They have helped me understand this better.
By the way, I'm sorry if in my last post I sounded ungrateful for Bob's feedback on darwin-sw. Cam and I are actually quite keen to have comments and criticism about it. I just didn't want the discussion about the DwC term proposals to get sidetracked.
Steve
joel sachs wrote:
Steve,
Notice in Bob's examples that use cases are a tool for all software engineering tasks, whereas competency questions are used primarily in ontology design. A couple of advantages in expressing ontology use cases as competency questions are:
i. "Can the competency question be answered?" can be easier to answer than "Is the use case satisfied?"
ii. Posing the competency questions as queries can give hints about the structure of our desired ontology. This is somewhat ass-backwards, since the structure of the ontology determines the structure of the query (not vice versa), but since ontologies exist to be queried, thinking about the shape of queries can be helpful in determining the shape of the ontology.
To take an example:
Your Individual/BiologicalEntity use case 1 is "allow for linking multiple Occurrence records that involved the same organism at different times and/or places"
This can translate to
"Find all occurrences of [individual]"
or
select ?occurrence where { ?occurrence rdf:type dwc:occurrence . ?occurrence dwc:ofIndividual [individual] . }
We can then consider our design issues with reference to the query. For example: When answering this query, does it matter whether the scope of Individual/Biological Entity includes organelles or wolf packs? Does it matter if the Individual/BiologicalEntities are taxonomically homogeneous? To me, the clear answer to both questions is no.
Now consider your Individual/BiologicalEntity use case 3: "To link multiple Identifications of the same individual organism, particularly when these Identifications were based on different pieces of evidence arising from the same individual"
This would, I think, give rise to a number of competency questions, including: "Find all identifications of [Individual]"
or
select ?identification where { ?identification rdf:type dwc:Identification . ?identification dwc:ofIndividual [individual] . }
Now let's consider those same design issues: Does it matter if the scope of Individual includes organelles or wolf packs? No. Does it matter whether or not Individuals are taxonomically homogeneous? Yes, for the reasons you gave, which involve the non-heritability of properties in a partonomy.
Reading the above, you might think "I've gained no new insight from the competency questions." But you've already put considerable thought into how various ontology design decisions will affect our ability to satisfy the use cases. In general, the competency question methodology is meant to focus and streamline our consideration of design questions.
Joel.
On Tue, 26 Jul 2011, Bob Morris wrote:
As to competency questions, this might help more than a definition, since there is no agreed upon one: http://marinemetadata.org/references/competencyquestionsoverview Maybe there is something better since this was written.
As to use cases, http://en.wikipedia.org/wiki/Use_case is fair enough, but probably more than you want to know.
http://www.cragsystems.co.uk/SFRWUC/ is a pretty good tutorial for use case modeling with UML, and in about 4-5 clicks will get you to both definition and examples. You probably don't need to go further than that, especially because the further in you get, the more nit-picky is this particular tutorial.
On Tue, Jul 26, 2011 at 10:21 PM, Steve Baskauf steve.baskauf@vanderbilt.edu wrote:
For the benefit of the uninitiated (that would be me and possibly others), could someone please post definitions of "competency question" and "use case" along with a couple of examples of each?
Steve
-- Steven J. Baskauf, Ph.D., Senior Lecturer Vanderbilt University Dept. of Biological Sciences
postal mail address: VU Station B 351634 Nashville, TN 37235-1634, U.S.A.
delivery address: 2125 Stevenson Center 1161 21st Ave., S. Nashville, TN 37235
office: 2128 Stevenson Center phone: (615) 343-4582, fax: (615) 343-6707 http://bioimages.vanderbilt.edu
tdwg-content mailing list tdwg-content@lists.tdwg.org http://lists.tdwg.org/mailman/listinfo/tdwg-content
-- Robert A. Morris
Emeritus Professor of Computer Science UMASS-Boston 100 Morrissey Blvd Boston, MA 02125-3390 IT Staff Filtered Push Project Department of Organismal and Evolutionary Biology Harvard University
email: morris.bob@gmail.com web: http://efg.cs.umb.edu/ web: http://etaxonomy.org/mw/FilteredPush http://www.cs.umb.edu/~ram phone (+1) 857 222 7992 (mobile) _______________________________________________ tdwg-content mailing list tdwg-content@lists.tdwg.org http://lists.tdwg.org/mailman/listinfo/tdwg-content .
![](https://secure.gravatar.com/avatar/678f6841f1b58daa38595110f460610a.jpg?s=120&d=mm&r=g)
On Jul 27, 2011, at 10:25 AM, joel sachs wrote:
When answering this query, does it matter whether the scope of Individual/Biological Entity includes organelles or wolf packs? Does it matter if the Individual/BiologicalEntities are taxonomically homogeneous? To me, the clear answer to both questions is no.
Isn't that pretending that the data against which you ask this query doesn't matter? What if the data had a data <x> with <x> rdf:type dwc:occurrence>; <x> dwc:ofIndividual "wolfpack"?
-hilmar
![](https://secure.gravatar.com/avatar/bdc106052d1fbf490f24dc4f4e70e196.jpg?s=120&d=mm&r=g)
Hey Hilmar,
I probably don't understand your objection. The data does matter, and I'm assuming that it will be in rough accordance with the ontology. The query referred to below was
select ?occurrence where { ?occurrence rdf:type dwc:occurrence . ?occurrence dwc:ofIndividual [individual] . }
for some specific value of [individual].
If I read your example correctly, there's an occurrence of an individual named "wolfpack". So if I'm querying for occurrences of "wolfpack", then your occurrence would be returned.
But maybe the point of your example isn't that the individual is named wolfpack, but that the individual *is* a wolfpack, and the rdf is bad. In this case, yes, problems will arise.
One question that your example raises (and is maybe related to what you have in mind?) is: Supposes we allow Individuals/BiologicalEntities to include wolf packs. How would we query for occurrences of wolf packs? One proposal on the table last Fall was to include some sort of scoping property for the Individual class, e.g. scope="individualOrganism", or scope="Population". We could also define individualOrganism and Population to be subClasses of biologicalEntity.
Please let me know if I've missed your point entirely.
Joel.
On Wed, 27 Jul 2011, Hilmar Lapp wrote:
On Jul 27, 2011, at 10:25 AM, joel sachs wrote:
When answering this query, does it matter whether the scope of Individual/Biological Entity includes organelles or wolf packs? Does it matter if the Individual/BiologicalEntities are taxonomically homogeneous? To me, the clear answer to both questions is no.
Isn't that pretending that the data against which you ask this query doesn't matter? What if the data had a data <x> with <x> rdf:type dwc:occurrence>; <x> dwc:ofIndividual "wolfpack"?
-hilmar
=========================================================== : Hilmar Lapp -:- Durham, NC -:- informatics.nescent.org : ===========================================================
![](https://secure.gravatar.com/avatar/678f6841f1b58daa38595110f460610a.jpg?s=120&d=mm&r=g)
Hi Joel -
No you didn't miss my point. And to clarify, in order to allow occurrences of wolf packs, we do need to allow for them to be included in the scope of Individual, don't we? So whether it matters or not that a wolf pack is included in the scope of Individual or not doesn't just depend on the query but also on the data you want to apply it to, no? For example, if we decided that wolf packs are outside of the scope for Individual, then the query below wouldn't find their occurrences because they would be represented in a way different from the Individual linked to the occurrence though DwC:ofIndividual.
But frankly, I should have kept my mouth shut to start with. For one, the suggestions I have made don't seem to be useful, so I'd rather not add to the confusion further by making more. Personally I also think that mailing lists are rather poorly suited for sorting out ontology building questions when there is considerable controversy and divergent viewpoints, and I think this and other parallel threads demonstrate this nicely. For this reason, other communities I'm familiar with save up such issues and sort them out in dedicated face-to-face meetings (sometimes called jamborees). In my experience there is no good substitute for that.
-hilmar
Sent with a tap.
On Jul 27, 2011, at 10:32 PM, joel sachs jsachs@csee.umbc.edu wrote:
Hey Hilmar,
I probably don't understand your objection. The data does matter, and I'm assuming that it will be in rough accordance with the ontology. The query referred to below was
select ?occurrence where { ?occurrence rdf:type dwc:occurrence . ?occurrence dwc:ofIndividual [individual] . }
for some specific value of [individual].
If I read your example correctly, there's an occurrence of an individual named "wolfpack". So if I'm querying for occurrences of "wolfpack", then your occurrence would be returned.
But maybe the point of your example isn't that the individual is named wolfpack, but that the individual *is* a wolfpack, and the rdf is bad. In this case, yes, problems will arise.
One question that your example raises (and is maybe related to what you have in mind?) is: Supposes we allow Individuals/BiologicalEntities to include wolf packs. How would we query for occurrences of wolf packs? One proposal on the table last Fall was to include some sort of scoping property for the Individual class, e.g. scope="individualOrganism", or scope="Population". We could also define individualOrganism and Population to be subClasses of biologicalEntity.
Please let me know if I've missed your point entirely.
Joel.
On Wed, 27 Jul 2011, Hilmar Lapp wrote:
On Jul 27, 2011, at 10:25 AM, joel sachs wrote:
When answering this query, does it matter whether the scope of Individual/Biological Entity includes organelles or wolf packs? Does it matter if the Individual/BiologicalEntities are taxonomically homogeneous? To me, the clear answer to both questions is no.
Isn't that pretending that the data against which you ask this query doesn't matter? What if the data had a data <x> with <x> rdf:type dwc:occurrence>; <x> dwc:ofIndividual "wolfpack"?
-hilmar
=========================================================== : Hilmar Lapp -:- Durham, NC -:- informatics.nescent.org : ===========================================================
![](https://secure.gravatar.com/avatar/135a2800c16aecd82fc4fba3e5304012.jpg?s=120&d=mm&r=g)
But frankly, I should have kept my mouth shut to start with. For one, the suggestions I have made don't seem to be useful, so I'd rather not add to the confusion further by making more.
Ha! I am so glad I am not the only one! :-)
Nico
Personally I also think that mailing lists are rather poorly suited for sorting out ontology building questions when there is considerable controversy and divergent viewpoints, and I think this and other parallel threads demonstrate this nicely. For this reason, other communities I'm familiar with save up such issues and sort them out in dedicated face-to-face meetings (sometimes called jamborees). In my experience there is no good substitute for that.
-hilmar
Sent with a tap.
On Jul 27, 2011, at 10:32 PM, joel sachs jsachs@csee.umbc.edu wrote:
Hey Hilmar,
I probably don't understand your objection. The data does matter, and I'm assuming that it will be in rough accordance with the ontology. The query referred to below was
select ?occurrence where { ?occurrence rdf:type dwc:occurrence . ?occurrence dwc:ofIndividual [individual] . }
for some specific value of [individual].
If I read your example correctly, there's an occurrence of an individual named "wolfpack". So if I'm querying for occurrences of "wolfpack", then your occurrence would be returned.
But maybe the point of your example isn't that the individual is named wolfpack, but that the individual *is* a wolfpack, and the rdf is bad. In this case, yes, problems will arise.
One question that your example raises (and is maybe related to what you have in mind?) is: Supposes we allow Individuals/BiologicalEntities to include wolf packs. How would we query for occurrences of wolf packs? One proposal on the table last Fall was to include some sort of scoping property for the Individual class, e.g. scope="individualOrganism", or scope="Population". We could also define individualOrganism and Population to be subClasses of biologicalEntity.
Please let me know if I've missed your point entirely.
Joel.
On Wed, 27 Jul 2011, Hilmar Lapp wrote:
On Jul 27, 2011, at 10:25 AM, joel sachs wrote:
When answering this query, does it matter whether the scope of Individual/Biological Entity includes organelles or wolf packs? Does it matter if the Individual/BiologicalEntities are taxonomically homogeneous? To me, the clear answer to both questions is no.
Isn't that pretending that the data against which you ask this query doesn't matter? What if the data had a data <x> with <x> rdf:type dwc:occurrence>; <x> dwc:ofIndividual "wolfpack"?
-hilmar
=========================================================== : Hilmar Lapp -:- Durham, NC -:- informatics.nescent.org : ===========================================================
tdwg-content mailing list tdwg-content@lists.tdwg.org http://lists.tdwg.org/mailman/listinfo/tdwg-content
participants (5)
-
Bob Morris
-
Hilmar Lapp
-
joel sachs
-
Nico Cellinese
-
Steve Baskauf