Semantic Approach to Engineering Agent-Based Systems When it comes to developing complex, distributed software-based systems, the agent-based approach was advocated to be a well suited one. Although the flexibility of agent interactions has many advantages when it comes to engineering a complex system, the downside is that it leads to certain unpredictability of the run-time system: as agents are autonomous, the patterns and the effects of their interactions are uncertain. Literature sketches two major directions for search for a solution: social-level characterization of agent systems and ontological approaches to inter-agent coordination. We work on a solution to advance into both these directions. With respect to data, we use the semantic (RDF-based) data model for both the description (i.e. agents' knowledge, goals) and the prescription (programming agents' behaviors, i.e. a semantic agent programming language). With respect to architecture, we use role-based behavior prescriptions, and externalization of those prescription, i.e. agents access them from organizational repositories when needed.