<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">ODPReco -A Tool to Recommend Ontology Design Patterns</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Maleeha</forename><surname>Arif</surname></persName>
							<email>maleeha18112@iiitd.ac.in</email>
							<affiliation key="aff0">
								<orgName type="laboratory">Knowledgeable Computing and Reasoning Lab</orgName>
								<orgName type="institution">IIIT-Delhi</orgName>
								<address>
									<country key="IN">India</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Raghava</forename><surname>Mutharaju</surname></persName>
							<email>raghava.mutharaju@iiitd.ac.in</email>
							<affiliation key="aff0">
								<orgName type="laboratory">Knowledgeable Computing and Reasoning Lab</orgName>
								<orgName type="institution">IIIT-Delhi</orgName>
								<address>
									<country key="IN">India</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">ODPReco -A Tool to Recommend Ontology Design Patterns</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">0DAACE2F32311962461FB10273ADEB06</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T16:07+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Ontology Design Pattern</term>
					<term>Ontology Maintenance</term>
					<term>Refactoring Ontologies</term>
					<term>Modular Ontologies</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Ontologies evolve over time due to changes in the domain and requirements of the application. Maintaining an ontology over time and keeping it up-to-date with respect to the changes in the domain and requirements of application is hard. But a high quality ontology can significantly reduce the effort and cost of ontology maintenance. Ontology Design Patterns (ODPs) can be used to improve the quality of an ontology and make it more modular and reusable. But with around 220 (and increasing) ODPs across six different categories, it is not easy to determine the right set of ODPs to choose for a particular use case even for experts. This becomes even more difficult in the case of refactoring existing ontologies using the right set of ODPs. We describe here a proposal for a work-in-progress tool named ODPReco that can recommend the possible ODPs to use in a given ontology. ODPReco analyzes the lexical, structural, and behavioural aspects of an ontology, along with learning from existing ODP implementations to recommend ODPs that can be used for refactoring an ontology.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>Ontologies capture the state of the world (domain) at the point of their creation. But over time, there will be changes in the domain and the applications that depend on the ontology will evolve as well. So an ontology is not a static piece of artifact that can be built once and used over the lifetime of the application. It needs to evolve with the changes in the domain and application requirements. The developers maintaining the ontology may change over time and they might want to make changes to the class hierarchy, relationships among the classes, make some classes as properties etc. There is a body of work on ontology evolution <ref type="bibr" target="#b13">[14,</ref><ref type="bibr" target="#b1">2]</ref> and maintenance. One of the crucial factors that is always stressed upon is that, the quality of the ontology plays a very important role in ontology maintenance. A good quality ontology is modular, easy to understand, and more amenable to changes <ref type="bibr" target="#b6">[7]</ref>. This makes it easier to maintain the ontology, which in turn reduces the maintenance cost. This holds true for the maintenance of software artifacts as well. It is said that around 80% of the software development cost goes into maintenance and a good quality software can significantly reduce the cost <ref type="bibr" target="#b0">[1]</ref>.</p><p>Ontology Design Patterns (ODPs) <ref type="bibr" target="#b5">[6]</ref> are solutions to common modelling problems. They are generally small in size and can be used as building blocks in developing modular ontologies. Large monolithic ontologies can be refactored to use ODPs and thus improve their quality. But it is not easy for ontology developers, especially the inexperienced ones to identify the right ODPs to use for a particular ontology (or use case that the ontology is modelled for). This is due to the number and variety of ODPs that are available. ODP repository 1 lists nearly 220 (and counting) ODPs spread across six different categories. We propose a work-in-progress tool named ODPReco that analyzes the lexical, structural, and behavioural aspects of an ontology to recommend a set of ODPs that can be used to refactor a non-modular ontology. ODPReco also learns from existing ODP implementations. If a non-modular ontology (or part of it) is similar to an existing ontology that has implemented ODPs, then the non-modular ontology can also make use of the same ODPs.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Approach</head><p>In order to recommend ODPs, ODPReco would need a list of all the available ODPs including their details such as the description, competency questions, and use cases. Along with that, a collection of ontologies in which the ODPs used are clearly indicated is also required. This helps the tool to learn from existing ODP implementations. The following two datasets satisfy these requirements. We will refer to these datasets as our collection. a) ODPs from the ODP repository. We will have a local copy of all the ODPs from the repository and create an index based on the details of each ODP such as the name, description, competency questions, use cases, similar patterns, class names, and property names. b) MODL: Modular Ontology Design Library <ref type="bibr" target="#b11">[12]</ref>. It is a downloadable curated collection of well-documented ODPs. It contains annotations indicating which patterns were used and also the axioms that are part of the pattern.</p><p>We will discuss two complementary techniques to ODP recommendation in the following sections.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Ontology Analysis</head><p>We will be analyzing a given ontology on the following dimensions.</p><p>1 http://ontologydesignpatterns.org/ a) Lexical Analysis. The names of classes, properties, and instances from the ontology are compared with the ones from our collection. Apart from names, we will be including other descriptive text such as labels and comments. Word embeddings can be used to get a ranked list of similar words (and hence ODPs that can contain these words) present in our collection. b) Structural Analysis. We will be comparing the axioms of the given ontology with the ones from our collection. We can generate embeddings for the axioms by converting them into a fixed format. An example for axioms involving cardinalities is given below. Each axiom type will have a format along the same lines.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>AxiomTypeID ClassesInAxiom PropertiesInAxiom Cardinality</head><p>Using the embeddings generated from the given ontology as well as the ones from our collection, we will generate similarity scores and rank the axioms (and the corresponding ODPs that are associated with these axioms). c) Behavioural Analysis. The behavioural aspect of the ontology can be analyzed by making use of the competency questions associated with the given ontology. They represent the ontology requirements and help in capturing the scope an ontology. These competency questions are compared with the ones associated with the ODPs and a similarity score is generated. We are aware of the fact that most ontologies do not have competency questions associated with them. But if available, we will analyze the behaviour of the ontology using the competency questions.</p><p>The scores obtained from these three dimensions of an ontology are integrated and normalized. Weights can also be assigned to each of these three dimensions. Depending on the scores, the top k ODPs can be recommended to the user for the given ontology.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Supervised Machine Learning on Existing ODPs</head><p>Chess <ref type="bibr" target="#b7">[8]</ref> and cooking recipes <ref type="bibr" target="#b10">[11]</ref> ontologies along with the MODL collection can be considered as labeled data. The ODPs used in these ontologies are clearly known and they are well documented. This can be used as training data. During the training phase, we should capture features that can help in determining why a particular ODP has been used in an ontology. The three types of analysis discussed in the previous section -lexical, structural, and behavioural aspects of the ontology can be used as features. There could be other aspects of an ontology that can be used as features, but we have not yet looked into all the possibilities. After learning the machine learning model, we can now use the given ontology to predict the classes (ODPs) it should belong to. So this becomes a multilabel classification problem. But there are some obvious disadvantages to using machine learning in this context.</p><p>-Training data is limited.</p><p>-The coverage of the training data is limited, i.e., not all possible 220 ODPs are covered in the training data. So there will be a bias towards the ODPs that are most frequently used in the training data. -There are large number of classes (220). So prediction will not be accurate.</p><p>Due to these reasons, it is important to complement the machine learning model with an alternative, which is to predict (recommend) ODPs by analyzing the ontology.</p><p>We are currently implementing the ideas discussed here. ODPReco will be available publicly and it could also be made into a protégé plug-in.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Related Work</head><p>In the software engineering community, there has been work on recommending software design patterns by analysing the code. We plan to adapt that work to the case of recommending ODPs for a given ontology. We briefly discuss some of the techniques used for recommending software design patterns. Along with this, we will also discuss work related to ODPs.</p><p>In <ref type="bibr" target="#b12">[13]</ref>, code smells (characteristics of the code) are analyzed to recommend software design patterns. Design pattern recommendation systems are developed using various techniques. One such technique is the text based approach <ref type="bibr" target="#b4">[5]</ref>. In this approach, the description and the scenario of the design patterns provided are preprocessed. Pre-processing includes tokenization, stop word removal and stemming. Vector space model is used to represent the collection of design patterns in the form of unigrams and bigrams and the most suitable design pattern for a given problem scenario is selected which is based on the cosine similarity and TF-IDF. Another approach for recommending patterns is based on question-answering <ref type="bibr" target="#b9">[10]</ref>. It is an interactive approach in which questions are asked from the user and the user answers them with a yes/no/do not know. Based on these answers, weights are assigned and software design is predicted. In <ref type="bibr" target="#b8">[9]</ref>, case based reasoning is used. Structural, behavioural and semantic aspects are considered in <ref type="bibr" target="#b2">[3]</ref> to recommend patterns. The structural aspects are generalization, attribute, aggregation, and specialization methods. The behaviour of the design pattern can be analyzed through the control flow graphs <ref type="bibr" target="#b12">[13]</ref>. The semantic aspect can be analyzed using the programming guidelines and naming conventions. Software design patterns are also recommended using the classification techniques <ref type="bibr" target="#b3">[4]</ref>.</p><p>Ontology Design Patterns <ref type="bibr" target="#b5">[6]</ref> are small, self-contained ontologies that provide a solution to a commonly occurring modelling problem across different domains. ODP repository has around 220 ODPs that are divided into six categories, structural, reasoning, correspondence, presentation, lexico-syntactic and content ODPs. MODL <ref type="bibr" target="#b11">[12]</ref> is a well documented ODP library that contains ontologies which are clearly annotated with the ODPs.</p><p>Even for experienced ontology developers, it is hard to know which among the 220 patterns is a good fit for a given use case. This task becomes hard for inexperienced ontology developers. Our tool, ODPReco, attempts to fill this gap by learning from existing ODP implementations and analyzing the structure of ontologies to recommend ODPs.</p></div>		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">The Impact of Software Quality on Maintenance Process</title>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">B</forename><surname>Al-Badareen</surname></persName>
		</author>
		<ptr target="http://www.naun.org/main/NAUN/computers/19-862.pdf" />
	</analytic>
	<monogr>
		<title level="j">International Journal of Computers</title>
		<imprint>
			<biblScope unit="volume">5</biblScope>
			<biblScope unit="page" from="183" to="190" />
			<date type="published" when="2011">2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Ontology Evolution: State of the Art and Future Directions</title>
		<author>
			<persName><forename type="first">R</forename><surname>Djedidi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">A</forename><surname>Aufaure</surname></persName>
		</author>
		<idno type="DOI">10.4018/978-1-61520-859-3.ch008</idno>
		<ptr target="https://doi.org/10.4018/978-1-61520-859-3.ch008" />
	</analytic>
	<monogr>
		<title level="m">Ontology Theory, Management and Design: Advanced Tools and Models</title>
				<imprint>
			<date type="published" when="2010">2010</date>
			<biblScope unit="page" from="179" to="207" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">A Review of Design Pattern Mining Techniques</title>
		<author>
			<persName><forename type="first">J</forename><surname>Dong</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Zhao</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Peng</surname></persName>
		</author>
		<idno type="DOI">10.1142/S021819400900443X</idno>
		<ptr target="https://doi.org/10.1142/S021819400900443X" />
	</analytic>
	<monogr>
		<title level="j">International Journal of Software Engineering and Knowledge Engineering</title>
		<imprint>
			<biblScope unit="volume">19</biblScope>
			<biblScope unit="page" from="823" to="855" />
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Software design pattern mining using classification-based techniques</title>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">K</forename><surname>Dwivedi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Tirkey</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">K</forename><surname>Rath</surname></persName>
		</author>
		<idno type="DOI">10.1007/s11704-017-6424-y</idno>
		<ptr target="https://doi.org/10.1007/s11704-017-6424-y" />
	</analytic>
	<monogr>
		<title level="j">Frontiers of Computer Science</title>
		<imprint>
			<biblScope unit="volume">12</biblScope>
			<biblScope unit="issue">5</biblScope>
			<biblScope unit="page" from="908" to="922" />
			<date type="published" when="2018-10">Oct 2018</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Automatic Recommendation of Software Design Patterns: Text Retrieval Approach</title>
		<author>
			<persName><forename type="first">A</forename><surname>Hamdy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Elsayed</surname></persName>
		</author>
		<idno type="DOI">10.17706/jsw.13.4.260-268</idno>
		<ptr target="https://doi.org/10.17706/jsw.13.4.260-268" />
	</analytic>
	<monogr>
		<title level="j">JSW</title>
		<imprint>
			<biblScope unit="volume">13</biblScope>
			<biblScope unit="page" from="260" to="268" />
			<date type="published" when="2018">2018</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title level="m" type="main">Ontology Engineering with Ontology Design Patterns: Foundations and Applications</title>
		<author>
			<persName><forename type="first">P</forename><surname>Hitzler</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2016">2016</date>
			<publisher>IOS Press</publisher>
			<pubPlace>Amsterdam, The Netherlands</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Modular Ontologies as a Bridge Between Human Conceptualization and Data</title>
		<author>
			<persName><forename type="first">P</forename><surname>Hitzler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Shimizu</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-3-319-91379-71</idno>
		<ptr target="https://doi.org/10.1007/978-3-319-91379-71" />
	</analytic>
	<monogr>
		<title level="m">Graph-Based Representation and Reasoning -23rd International Conference on Conceptual Structures, ICCS 2018</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<meeting><address><addrLine>Edinburgh, UK</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2018">2018</date>
			<biblScope unit="volume">10872</biblScope>
			<biblScope unit="page" from="3" to="6" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Modeling with ontology design patterns:chess games as a worked example</title>
		<author>
			<persName><forename type="first">A</forename><surname>Krisnadhi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Hitzler</surname></persName>
		</author>
		<idno type="DOI">10.3233/978-1-61499-676-7-3</idno>
		<ptr target="https://doi.org/10.3233/978-1-61499-676-7-3" />
	</analytic>
	<monogr>
		<title level="m">Ontology Engineering with Ontology Design Patterns</title>
				<imprint>
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<title level="m" type="main">Automatic Recommendation of Software Design Patterns Using Anti-patterns in the Design Phase: A Case Study on Abstract Factory</title>
		<author>
			<persName><forename type="first">N</forename><surname>Nahar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Sakib</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2015">2015</date>
			<biblScope unit="page">8</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Recommendation system for design patterns in software development: An DPR overview</title>
		<author>
			<persName><forename type="first">F</forename><surname>Palma</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Farzin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Guhneuc</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Moha</surname></persName>
		</author>
		<idno type="DOI">10.1109/RSSE.2012.6233399</idno>
		<ptr target="https://doi.org/10.1109/RSSE.2012.6233399" />
	</analytic>
	<monogr>
		<title level="m">Third International Workshop on Recommendation Systems for Software Engineering (RSSE)</title>
				<imprint>
			<date type="published" when="2012-06">2012. Jun 2012</date>
			<biblScope unit="page" from="1" to="5" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">An Ontology Design Pattern for Cooking Recipes: Classroom Created</title>
		<author>
			<persName><forename type="first">M</forename><surname>Sam</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">A</forename><surname>Krisnadhi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Wang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Gallagher</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Hitzler</surname></persName>
		</author>
		<ptr target="http://dl.acm.org/citation.cfm?id=2878937.2878943" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 5th International Conference on Ontology and Semantic Web Patterns</title>
				<meeting>the 5th International Conference on Ontology and Semantic Web Patterns</meeting>
		<imprint>
			<date type="published" when="1302">1302. 2014</date>
			<biblScope unit="page" from="49" to="60" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<monogr>
		<author>
			<persName><forename type="first">C</forename><surname>Shimizu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Q</forename><surname>Hirt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Hitzler</surname></persName>
		</author>
		<ptr target="https://arxiv.org/pdf/1904.05405.pdf" />
		<title level="m">MODL: A Modular Ontology Design Library</title>
				<imprint>
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Dynamically recommending design patterns</title>
		<author>
			<persName><forename type="first">S</forename><surname>Smith</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">R</forename><surname>Plante</surname></persName>
		</author>
		<ptr target="https://pdfs.semanticscholar.org/9ea6/731b7a517.pdf" />
	</analytic>
	<monogr>
		<title level="m">SEKE</title>
				<imprint>
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Ontology evolution: a processcentric survey</title>
		<author>
			<persName><forename type="first">F</forename><surname>Zablith</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Antoniou</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>D'aquin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Flouris</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Kondylakis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Motta</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Plexousakis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Sabou</surname></persName>
		</author>
		<idno type="DOI">10.1017/S0269888913000349</idno>
		<ptr target="https://doi.org/10.1017/S0269888913000349" />
	</analytic>
	<monogr>
		<title level="j">The Knowledge Engineering Review</title>
		<imprint>
			<biblScope unit="volume">30</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="45" to="75" />
			<date type="published" when="2015-01">Jan 2015</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
