Abstract
Workflow management systems control activities that are performed in a distributed manner by a number of human or automated participants. There is a wide variety of workflow systems in use, mostly commercial products, and no standard language has been defined in which to express workflow specifications. In this paper we propose Workflow Prolog, a new extension of Prolog. The language allows workflow systems to be implemented in a novel declarative style, while preserving the existing properties of Prolog, such as its familiarity and efficiency. We then demonstrate the expressiveness of the language by showing how it can express each of the workflow patterns that have previously been identified as the requirements of a workflow language.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
van der Aalst, W.M.P., ter Hofstede, A.H.M., Kiepuszewski, B., Barros, A.P.: Workflow Patterns. Distributed and Parallel Databases 14(1), 5–51 (2003)
van der Aalst, W.M.P., ter Hofstede, A.H.M.: YAWL: yet another workflow language. Information Systems 30(4), 245–275 (2005)
Bi, H.H., Zhao, J.L.: Applying propositional logic to workflow verification. Information Technology and Management 5(3-4), 293–318 (2004)
Chan, D., Leung, K.: Valmont: a language for workflow programming. In: Proc. 31st Annual Hawaii Int. Conf. on System Sciences, pp. 744–753. IEEE Computer Society Press, Los Alamitos (1998)
Clark, K.L., Gregory, S.: A relational language for parallel programming. In: Proc. Conf. on Functional Programming Languages and Computer Architecture, pp. 171–178. ACM Press, New York (1981)
Clark, K.L., Gregory, S.: Parallel programming in logic. ACM Trans. on Programming Languages and Systems 8(1), 1–49 (1986)
Conlon, T.: Programming in Parlog. Addison-Wesley, Reading (1989)
Cook, W., Patwardhan, S., Misra, J.: Workflow patterns in Orc. In: Ciancarini, P., Wiklicky, H. (eds.) COORDINATION 2006. LNCS, vol. 4038, pp. 82–96. Springer, Heidelberg (2006)
Davulcu, H., Kifer, M., Ramakrishnan, C., Ramakrishnan, I.: Logic based modeling and analysis of workflows. In: Symp. on Principles of Database Systems, pp. 25–33 (1998)
Dijkstra, E.W.: Guarded commands, nondeterminacy and formal derivation of programs. In Communications of the ACM 18(8), 453–457 (1975)
Duan, Y., Ma, H.: Modeling flexible workflow based on temporal logic. In: Proc. 9th Int. Conf. on Computer Supported Cooperative Work in Design, vol. 1, pp. 508–513. IEEE Computer Society Press, Los Alamitos (2005)
van Emden, M.H., de Lucena Filho, G.J.: Predicate logic as a language for parallel programming. In: Clark, Tärnlund (eds.) Logic Programming, pp. 189–198. Academic Press, London (1982)
Forst, A., Kühn, E., Bukhres, O.: General purpose work flow languages. Distributed and Parallel Databases 3(2), 187–218 (1995)
Halstead, R.: MULTILISP: a language for concurrent symbolic computation. ACM Trans. on Programming Languages and Systems 7(4), 501–538 (1985)
Hermenegildo, M., Cabeza, D., Carro, M.: Using attributed variables in the implementation of concurrent and parallel logic programming systems. In: Proc. 1995 Int. Conf. on Logic Programming, pp. 631–645. MIT Press, Cambridge (1995)
Hoare, C.A.R.: Communicating sequential processes. In Communications of the ACM 21(8), 666–677 (1978)
Holzbaur, C.: Metastructures vs. attributed variables in the context of extensible unification. In: Bruynooghe, M., Wirsing, M. (eds.) PLILP 1992. LNCS, vol. 631, pp. 260–268. Springer, Heidelberg (1992)
Liu, D., Wang, J., Chan, S., Sun, J., Zhang, L.: Modeling workflow processes with colored Petri nets. In Computers in Industry 49(3), 267–281 (2002)
Ma, H.: A workflow model based on temporal logic. In: Proc. 8th Int. Conf. on Computer Supported Cooperative Work in Design, vol. 2, pp. 327–332. IEEE Computer Society Press, Los Alamitos (2004)
Omicini, A., Ricci, A., Zaghini, N.: Distributed workflow upon linkable coordination artifacts. In: Ciancarini, P., Wiklicky, H. (eds.) COORDINATION 2006. LNCS, vol. 4038, pp. 228–246. Springer, Heidelberg (2006)
Pokorny, L., Ramakrishnan, C.: Modeling and Verification of Distributed Autonomous Agents Using Logic Programming. In: Leite, J.A., Omicini, A., Torroni, P., Yolum, p. (eds.) DALT 2004. LNCS (LNAI), vol. 3476, pp. 148–165. Springer, Heidelberg (2005)
Senkul, P., Kifer, M., Toroslu, I.: A logic framework for scheduling workflows under resource allocation constraints. In: Proc. 28th VLDB Conf., pp. 694–702 (2002)
Shapiro, E.Y.: The family of concurrent logic programming languages. In ACM Computing Surveys 21(3), 413–510 (1989)
Stefansen, C.: SMAWL: a small workflow language based on CCS. In: Pastor, Ó., Falcão e Cunha, J. (eds.) CAiSE 2005. LNCS, vol. 3520, Springer, Heidelberg (2005)
Takeuchi, A., Furukawa, K.: Parallel logic programming languages. In: Shapiro, E. (ed.) 3rd International Conference on Logic Programming. LNCS, vol. 225, pp. 242–254. Springer, Heidelberg (1986)
Wang, Y., Fan, Y.: Using temporal logics for modeling and analysis of workflows. In: IEEE Int. Conf. on E-Commerce Technology for Dynamic E-Business, pp. 169–174. IEEE Computer Society Press, Los Alamitos (2004)
Workflow Management Coalition. WFMC specification: the workflow reference model. Document no. WFMC-TC-1003 (1995)
Workflow Management Coalition. WFMC specification: terminology and glossary. Document no. WFMC-TC-1011 (1999)
Workflow Patterns Home Page. http://www.workflowpatterns.com/
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer Berlin Heidelberg
About this paper
Cite this paper
Gregory, S., Paschali, M. (2007). A Prolog-Based Language for Workflow Programming. In: Murphy, A.L., Vitek, J. (eds) Coordination Models and Languages. COORDINATION 2007. Lecture Notes in Computer Science, vol 4467. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-72794-1_4
Download citation
DOI: https://doi.org/10.1007/978-3-540-72794-1_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-72793-4
Online ISBN: 978-3-540-72794-1
eBook Packages: Computer ScienceComputer Science (R0)