Abstract
Originally proposed in the mid-90s, design patterns for software development played a key role in object-oriented programming not only in increasing software quality, but also by giving a better understanding of the power and limitations of this paradigm. Since then, several authors have endorsed a similar task for other programming paradigms, in the hope of achieving similar benefits. In this paper we present a set of design patterns for Mdl-programs, a hybrid formalism combining several description logic knowledge bases via a logic program. These patterns are extensively applied in a natural way in a large-scale example that illustrates how their usage greatly simplifies some programming tasks, at the level of both development and extension.
We also discuss some limitations of this formalism, examining some usual patterns in other programming paradigms that have no parallel in Mdl-programs.
Work partially supported by Fundação para a Ciência e Tecnologia under contracts PEst-OE/MAT/UI0209/2011 and PEst-OE/EEI/UI0434/2011.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
References
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
Adams, M., Coplien, J., Gamoke, R., Hanmer, R., Keeve, F., Nicodemus, K.: Fault-tolerant telecommunication system patterns. In: Vlissides, J.M., Coplien, J.O., Kerth, K.L. (eds.) Pattern Languages of Program Design, vol. 2, pp. 549–562. Addison-Wesley Longman Publishing Co. Inc., Boston (1996)
Erl, T.: SOA Design Patterns. Prentice Hall, New York (2009)
Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley, Boston (2002)
Larman, C.: Applying UML and Patterns, 3rd edn. Prentice-Hall, Upper Saddle River (2004)
Mattson, T., Sanders, B., Massingill, B.: Patterns for Parallel Programming. Addison-Wesley, Reading (2005)
Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice-Hall, Upper Saddle River (1997)
Schmidt, D., Stal, M., Rohnert, H., Buschmann, F.: Pattern-Oriented Software Architecture - Patterns for Concurrent and Networked Objects. Wiley, New York (2000)
Antoy, S., Hanus, M.: Functional logic design patterns. In: Hu, Z., Rodríguez-Artalejo, M. (eds.) FLOPS 2002. LNCS, vol. 2441, pp. 67–87. Springer, Heidelberg (2002)
Gibbons, J.: Design patterns as higher-order datatype-generic programs. In: Hinze, R. (ed.) Proceedings of WGP 2006, pp. 1–12. ACM (2006)
Norvig, P.: Design patterns in dynamic programming. Tutorial slides presented at Object World, Boston, MA, May 1996. http://norvig.com/design-patterns/
Sterling, L.: Patterns for prolog programming. In: Kakas, A.C., Sadri, F. (eds.) Computational Logic: Logic Programming and Beyond. LNCS (LNAI), vol. 2407, pp. 374–401. Springer, Heidelberg (2002)
Cruz-Filipe, L., Henriques, R., Nunes, I.: Description logics, rules and multi-context systems. In: McMillan, K., Middeldorp, A., Voronkov, A. (eds.) LPAR-19 2013. LNCS, vol. 8312, pp. 243–257. Springer, Heidelberg (2013)
Eiter, T., Ianni, G., Lukasiewicz, T., Schindlauer, R., Tompits, H.: Combining answer set programming with description logics for the semantic web. Artif. Intell. 172(12–13), 1495–1539 (2008)
Cruz-Filipe, L., Nunes, I., Gaspar, G.: Patterns for interfacing between logic programs and multiple ontologies. In: Filipe, J., Dietz, J. (eds.) KEOD 2013, pp. 58–69. INSTICC (2013)
Gangemi, A., Presutti, V.: Ontology design patterns. In: Staab, S., Studer, R. (eds.) Handbook on Ontologies. International Handbooks on Information Systems, 2nd edn, pp. 221–243. Springer, Heidelberg (2009)
Eiter, T., Ianni, G., Lukasiewicz, T., Schindlauer, R.: Well-founded semantics for description logic programs in the semantic Web. ACM Trans. Comput. Logic 12(2), 1–41 (2011). Article 11
Kifer, M., Boley, H. (eds.): RIF overview. W3C Working Group Note, June 2010. http://www.w3.org/TR/2010/NOTE-rif-overview-20100622/
Bruijn, J.D., Ehrig, M., Feier, C., Martíns-Recuerda, F., Scharffe, F., Weiten, M.: Ontology mediation, merging, and aligning. In: Davies, J., Studer, R., Warren, P. (eds.) Semantic Web Technologies: Trends and Research in Ontology-based Systems. Wiley, Chichester (2006)
Grau, B., Parsia, B., Sirin, E.: Combining OWL ontologies using e-connections. J. Web Semant. 4(1), 40–59 (2005)
Eiter, T., Ianni, G., Schindlauer, R., Tompits, H.: Effective integration of declarative rules with external evaluations for semantic-web reasoning. In: Sure, Y., Domingue, J. (eds.) ESWC 2006. LNCS, vol. 4011, pp. 273–287. Springer, Heidelberg (2006)
Brewka, G., Eiter, T.: Equilibria in heterogeneous nonmonotonic multi-context systems. In: Proceedings of AAAI 2007, pp. 385–390. AAAI Press (2007)
Wang, K., Antoniou, G., Topor, R., Sattar, A.: Merging and aligning ontologies in dl-programs. In: Adi, A., Stoutenburg, S., Tabet, S. (eds.) RuleML 2005. LNCS, vol. 3791, pp. 160–171. Springer, Heidelberg (2005)
Henriques, R.: Integration of ontologies with programs based on rules. Master’s thesis, FCUL, November 2013
Eiter, T., Ianni, G., Schindlauer, R., Tompits, H.: Towards efficient evaluation of HEX programs. In: Dix, J., Hunter, A. (eds.) Proceedings of NMR 2006, ASP Track, pp. 40–46. Institut für Informatik, TU Clausthal, Germany (2006)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Cruz-Filipe, L., Gaspar, G., Nunes, I. (2015). Design Patterns for Description-Logic Programs. In: Fred, A., Dietz, J., Liu, K., Filipe, J. (eds) Knowledge Discovery, Knowledge Engineering and Knowledge Management. IC3K 2013. Communications in Computer and Information Science, vol 454. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-46549-3_13
Download citation
DOI: https://doi.org/10.1007/978-3-662-46549-3_13
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-662-46548-6
Online ISBN: 978-3-662-46549-3
eBook Packages: Computer ScienceComputer Science (R0)