http://ontologydesignpatterns.org/wiki/index.php?title=Submissions:Stub_Metapattern&feed=atom&action=historySubmissions:Stub Metapattern - Revision history2024-03-29T07:04:32ZRevision history for this page on the wikiMediaWiki 1.13.2http://ontologydesignpatterns.org/wiki/index.php?title=Submissions:Stub_Metapattern&diff=12798&oldid=prevAdilaKrisnadhi at 22:04, 17 July 20162016-07-17T22:04:48Z<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 22:04, 17 July 2016</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Line 12:</td>
<td colspan="2" class="diff-lineno">Line 12:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>|Motivation=When modeling an ontology, one of the issues to be addressed is that of granularity: To what detail should the ontology represent the notions it captures? Traditionally, this issue is resolved by looking at a concise definition of the use cases, e.g. by means of competency questions. As a result of this, some parts of the ontology may be modeled in a rather fine-grained manner, while other parts remain relatively coarse. </div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>|Motivation=When modeling an ontology, one of the issues to be addressed is that of granularity: To what detail should the ontology represent the notions it captures? Traditionally, this issue is resolved by looking at a concise definition of the use cases, e.g. by means of competency questions. As a result of this, some parts of the ontology may be modeled in a rather fine-grained manner, while other parts remain relatively coarse. </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>A straightforward handling of differing granularity requirements in different parts of an ontology can make it more difficult to repurpose or extend the ontology, or to use it in an ontology-driven data integration setting. The reason is that because one is often faced with a situation where (s)he has to decide whether to represent a notion as a literal value <del class="diffchange diffchange-inline">(e.g., a string) </del>or an ontology entity such as a class. Choosing one over the other introduces a commitment that one may regret later on. </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>A straightforward handling of differing granularity requirements in different parts of an ontology can make it more difficult to repurpose or extend the ontology, or to use it in an ontology-driven data integration setting. The reason is that because one is often faced with a situation where (s)he has to decide whether to represent a notion as a <ins class="diffchange diffchange-inline">string </ins>literal value <ins class="diffchange diffchange-inline"> </ins>or an ontology entity such as a class. Choosing one over the other introduces a commitment that one may regret later on. </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>For example, when modeling a location, one could use the location name as a string or model it as a possibly full-blown pattern for the notion of Place. Choosing the former may prevent future use case of data enrichment, e.g., for expressing co-location (as one cannot use owl:sameAs relation between two strings). Choosing the latter means committing to a particular way of modeling Place, which may not necessarily be desirable in the future.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>For example, when modeling a location, one could use the location name as a string or model it as a possibly full-blown pattern for the notion of Place. Choosing the former may prevent future use case of data enrichment, e.g., for expressing co-location (as one cannot use owl:sameAs relation between two strings). Choosing the latter means committing to a particular way of modeling Place, which may not necessarily be desirable in the future.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>This pattern provides a way to solve this problem is to essentially keep both in the model, i.e., by including the literal value in the model, while employing a very minimalistic pattern for the notion. The latter is realized only as a single class.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>This pattern provides a way to solve this problem is to essentially keep both in the model, i.e., by including the literal value in the model, while employing a very minimalistic pattern for the notion. The latter is realized only as a single class.</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>|Aim=The aim of this metapattern is to act as a type of placeholder for future extensions of an ontology in cases where a more fine-grained modeling would currently be counterproductive, but future extensions may call for more details.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>|Aim=The aim of this metapattern is to act as a type of placeholder for future extensions of an ontology in cases where a more fine-grained modeling would currently be counterproductive, but future extensions may call for more details.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>|Solution=The solution is a metapattern. That is, it uses one "variable" class and two "variable" properties. The intention here is that when one wishes to use this metapattern, (s)he needs to instantiate the "variable" class and properties into actual class and properties. See Example section for a more concrete example.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>|Solution=The solution is a metapattern. That is, it uses one "variable" class and two "variable" properties. The intention here is that when one wishes to use this metapattern, (s)he needs to instantiate the "variable" class and properties into actual class and properties. See Example section for a more concrete example.</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>|Elements=owl:Thing<del class="diffchange diffchange-inline">, </del>xsd:string<del class="diffchange diffchange-inline">, </del>variable class: <ClassName><del class="diffchange diffchange-inline">, </del>variable object property: hasAssociated<ClassName><del class="diffchange diffchange-inline">, </del>variable data property: <ClassName>KnownAs</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>|Elements=<ins class="diffchange diffchange-inline">Entities and variable entities:</ins></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">}}</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">* </ins>owl:Thing</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">{{Logical OP Example Template</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">* </ins>xsd:string</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">|ProblemExample=One wishes to instantiate the Stub Metapattern for representing the notion of Place. To do it, the following steps need to be done.</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">* </ins>variable class: <ClassName></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">* </ins>variable object property: hasAssociated<ClassName></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">* </ins>variable data property: <ClassName>KnownAs</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">- Replace the variable class </del><ClassName> <del class="diffchange diffchange-inline">with the class Place</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">Axiom patterns (in Manchester Syntax):</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">* hasAssociated</ins><ClassName> <ins class="diffchange diffchange-inline">Range <ClassName></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">* <ClassName>KnownAs Range xsd:string</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">* <ClassName>KnownAs some xsd:string SubClassOf: <ClassName></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">* <ClassName> SubClassOf: <ClassName>KnownAs some xsd:string </ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">- Replace the variable object property hasAssociated<ClassName> with hasAssociatedPlace</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">- Replace </del>the <del class="diffchange diffchange-inline">variable data property <ClassName>KnownAs with PlaceKnownAs</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">}}</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">{{Logical OP Example Template</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">|ProblemExample=One wishes to instantiate </ins>the <ins class="diffchange diffchange-inline">Stub Metapattern for representing the notion of Place. To do it, the following steps need to be done in all of the axiom patterns.</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">- </del>If desired, the properties may be renamed to something more appropriate with the problem at hand, e.g., rename PlaceKnownAs into placeKnownAs if CamelCase naming convention is used.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">* Replace the variable class <ClassName> with the class Place</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">* Replace the variable object property hasAssociated<ClassName> with hasAssociatedPlace</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">* Replace the variable data property <ClassName>KnownAs with PlaceKnownAs</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">* </ins>If desired, the properties may be renamed to something more appropriate with the problem at hand, e.g., rename PlaceKnownAs into placeKnownAs if CamelCase naming convention is used.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<!-- diff generator: internal 2024-03-29 07:04:32 -->
</table>AdilaKrisnadhihttp://ontologydesignpatterns.org/wiki/index.php?title=Submissions:Stub_Metapattern&diff=12797&oldid=prevAdilaKrisnadhi: New page: {{Logical_OP_Proposal_toolbar}} {{Graphical representation header}} {{Graphical representation |ImageName=Stub-metapattern.png }} {{Logical OP General Template |Name=Stub Metapattern |Subm...2016-07-17T21:51:19Z<p>New page: {{Logical_OP_Proposal_toolbar}} {{Graphical representation header}} {{Graphical representation |ImageName=Stub-metapattern.png }} {{Logical OP General Template |Name=Stub Metapattern |Subm...</p>
<p><b>New page</b></p><div>{{Logical_OP_Proposal_toolbar}}<br />
{{Graphical representation header}}<br />
{{Graphical representation<br />
|ImageName=Stub-metapattern.png<br />
}}<br />
{{Logical OP General Template<br />
|Name=Stub Metapattern<br />
|SubmittedBy=AdilaKrisnadhi<br />
|Author=Adila Krisnadhi, Pascal Hitzler<br />
}}<br />
{{Logical OP Description Template<br />
|Motivation=When modeling an ontology, one of the issues to be addressed is that of granularity: To what detail should the ontology represent the notions it captures? Traditionally, this issue is resolved by looking at a concise definition of the use cases, e.g. by means of competency questions. As a result of this, some parts of the ontology may be modeled in a rather fine-grained manner, while other parts remain relatively coarse. <br />
<br />
A straightforward handling of differing granularity requirements in different parts of an ontology can make it more difficult to repurpose or extend the ontology, or to use it in an ontology-driven data integration setting. The reason is that because one is often faced with a situation where (s)he has to decide whether to represent a notion as a literal value (e.g., a string) or an ontology entity such as a class. Choosing one over the other introduces a commitment that one may regret later on. <br />
<br />
For example, when modeling a location, one could use the location name as a string or model it as a possibly full-blown pattern for the notion of Place. Choosing the former may prevent future use case of data enrichment, e.g., for expressing co-location (as one cannot use owl:sameAs relation between two strings). Choosing the latter means committing to a particular way of modeling Place, which may not necessarily be desirable in the future.<br />
<br />
This pattern provides a way to solve this problem is to essentially keep both in the model, i.e., by including the literal value in the model, while employing a very minimalistic pattern for the notion. The latter is realized only as a single class.<br />
<br />
<br />
|Aim=The aim of this metapattern is to act as a type of placeholder for future extensions of an ontology in cases where a more fine-grained modeling would currently be counterproductive, but future extensions may call for more details.<br />
|Solution=The solution is a metapattern. That is, it uses one "variable" class and two "variable" properties. The intention here is that when one wishes to use this metapattern, (s)he needs to instantiate the "variable" class and properties into actual class and properties. See Example section for a more concrete example.<br />
|Elements=owl:Thing, xsd:string, variable class: <ClassName>, variable object property: hasAssociated<ClassName>, variable data property: <ClassName>KnownAs<br />
}}<br />
{{Logical OP Example Template<br />
|ProblemExample=One wishes to instantiate the Stub Metapattern for representing the notion of Place. To do it, the following steps need to be done.<br />
<br />
- Replace the variable class <ClassName> with the class Place<br />
<br />
- Replace the variable object property hasAssociated<ClassName> with hasAssociatedPlace<br />
<br />
- Replace the variable data property <ClassName>KnownAs with PlaceKnownAs<br />
<br />
- If desired, the properties may be renamed to something more appropriate with the problem at hand, e.g., rename PlaceKnownAs into placeKnownAs if CamelCase naming convention is used.<br />
<br />
<br />
[[Image:Stub-metapattern-instantiationexample.png]]<br />
|Consequences=A concrete minimalistic pattern for Place is obtained, which already facilitates the use of both URI and literal value to identify a particular place/location.<br />
}}<br />
{{Logical OP Reference Template<br />
|Origin=Adila Krisnadhi, Pascal Hitzler. The Stub Metapattern. Under review at WOP 2016.<br />
}}<br />
{{Additional information header}}<br />
<br />
{{Scenarios about me}}<br />
{{Reviews about me}}<br />
{{Modeling issues about me}}<br />
{{My references}}<br />
{{Submission to event<br />
|Event=WOP:2016<br />
}}</div>AdilaKrisnadhi