Namespace funnyqt.relational

Relational Model Querying.

Other Namespaces

Show/Hide
funnyqt.bidi
Bidirectional transformations (BX).
funnyqt.coevo.tg
Co-Evolution transformations on TGraphs.
funnyqt.edn
Printing/persisting and reading/loading query results and transformation traces as EDN.
funnyqt.emf
Core functions for accessing and manipulating EMF models.
funnyqt.extensional
Specify models extensionally.
funnyqt.generic
Generic protocols extended upon many different types, and generic functions.
funnyqt.in-place
In-place transformation stuff.
funnyqt.model2model
Rule-base out-place transformations similar to ATL or QVTo.
funnyqt.pmatch
Graph Pattern Matching on arbitrary models.
funnyqt.polyfns
Polymorphic functions dispatching on types of model elements.
funnyqt.query
Generic query functions like regular path expressions & quantified expressions.
funnyqt.query.emf
EMF-specific query functions
funnyqt.query.tg
TG-specific query functions
funnyqt.tg
Core functions for accessing and manipulating TGraphs.
funnyqt.utils
Generic utility functions, e.g., for signaling errors, debugging, and profiling,
funnyqt.visualization
Model visualization functions.
funnyqt.xmltg
Convert XML to DOM-like TGraphs.
Index Page
Alphabetic Var Index

Public Vars

Usage Documentation

Show/Hide
Relational Model Querying.
Back to top

Details of Public Vars

Function: adjo

Arglists:
=========

  (adjo m el ref refed-el)
  (adjo m el ref refed-el may-override)

Docstring:
==========

  A relation where element `el` references `refed-el` with its `ref` reference
  in model `m`.

  The parameter `may-override` specifies that in case of a single-valued role,
  the referenced element may be overridden when transforming into the direction
  of `m` in a bidirectional transformation.  (You normally shouldn't use that
  parameter directly but use the API generated by
  `generate-metamodel-relations`.)
Back to top View Source

Function: alwayso

Arglists:
=========

  (alwayso & args)

Docstring:
==========

  A relation with arbitrary many args which always succeeds.
Back to top View Source

Function: avalo

Arglists:
=========

  (avalo m el-or-rel attr val)
  (avalo m el-or-rel attr val may-override)

Docstring:
==========

  A relation where model `m`s element or relationship `el-or-rel` has value
  `val` for its `attr` attribute.

  The parameter `may-override` specifies that the attribute value may be
  overridden when transforming into the direction of `m` in a bidirectional
  transformation.  (You normally shouldn't use that parameter directly but use
  the API generated by `generate-metamodel-relations`.)
Back to top View Source

Function: elemento

Arglists:
=========

  (elemento m el)

Docstring:
==========

  A relation where `el` is an element of model `m`.
  `m` has to be ground.
Back to top View Source

Function: enum-constanto

Arglists:
=========

  (enum-constanto m qn const)

Docstring:
==========

  A relation where the enum constant `const` has the qualified or unique name
  `qn`.
Back to top View Source

Macro: generate-metamodel-relations

Arglists:
=========

  (generate-metamodel-relations mm-file)
  (generate-metamodel-relations mm-file nssym)
  (generate-metamodel-relations mm-file nssym alias)
  (generate-metamodel-relations mm-file nssym alias prefix)

Docstring:
==========

  Generates metamodel-specific relations in the namespace denoted by `nssym`.
  `mm-file` is the file defining the metamodel, i.e., a TG or Ecore file.

  If `nssym` is nil (or not given), generate them in the current namespace.  If
  `nssym` was given, require that namespace as `alias`.  An optional `prefix`
  is supported for prefixing the generated var names.  This can be handy when
  generating into the current namespace to achieve uniqueness but it is
  generally better to generate into a fresh namespace and then use a short
  alias.
Back to top View Source

Function: relationshipo

Arglists:
=========

  (relationshipo m rel src trg)

Docstring:
==========

  A relation where `rel` is a relationship in model `m` starting at element
  `src` and ending at element `trg`.  `m` has to be ground.
Back to top View Source

Function: stro

Arglists:
=========

  (stro x y xy)
  (stro x y z xyz)

Docstring:
==========

  A relation where the strings `x` and `y` concatenate to `xy`, or the strings
  `x`, `y`, and `z` concatenate to `xyz`.  Not fully relational.
Back to top View Source

Function: typeo

Arglists:
=========

  (typeo m el-or-rel type)

Docstring:
==========

  A relation where in model `m` the element or relationship `el-or-rel` has
  the given `type`.  In fact, `type` may be any type specification (see
  `funnyqt.generic/type-matcher`).  The model `m` must be ground.
Back to top View Source

Macro: with-fresh

Arglists:
=========

  (with-fresh & forms)

Docstring:
==========

  Replace all symbols with a leading question mark with fresh lvars.
  In addition, all occurences of `_' are replaced with fresh lvars, one per
  occurence.  That means, that in `forms` all occurences of ?foo will be
  unified, but all occurences of `_' are not.
Back to top View Source