Escolar Documentos
Profissional Documentos
Cultura Documentos
Bernhard G. Humm
Darmstadt University of Applied Sciences, Department of Computer Science, Darmstadt, Germany
Bernhard.Humm@h-da.de
Ralf S. Engelschall
Capgemini sd&m Research, Munich, Germany
Ralf.Engelschall@capgemini-sdm.com
Abstract: According to the paradigm of Language-Oriented Programming, an application for a problem should be im-
plemented in the most appropriate domain-specific language (DSL). This paper introduces DSL stacking, an
efficient method for implementing Language-Oriented Programming where DSLs and general-purpose lan-
guages are incrementally developed on top of a base language. This is demonstrated with components of a
business information system that are implemented in different DSLs for Semantic Web technology in Lisp.
rdfs:domain
rdf:type rdf:type
rdfs:range ins:Person
“Natural Person“
rdfs:comment
ins:Person
ins:Disease
rdfs:seeAlso
ins:Profession
The RDF triple as a binary predicate is a simple yet Again, the notation has become more concise and
powerful building block. However, in semantic mod- more comprehensible.
eling often n-ary predicates are needed, with n ≥ 1.
For this reason, we have extended the add-property
macro to cope with different arities. See the follow-
ing examples. 5 DSL Stacking
(add-property !ins:Disease !ins:is-inheritable)
(add-statement !ins:Heart-Stroke
!ins:is-inheritable)
5.1 Bootstrapping
Policy
Issuing
all lower-level language features are visible by de- Product Customer Rating
Management Management
fault. However, sometimes it is desirable to restrict Entity, Query, Semantic Web
Entity, Query,
Appl. Data Type,
5.4 Integrating Multiple Languages DSLs