More Related Content
Similar to The Constellation Query Language (9)
The Constellation Query Language
- 3. Copyright © 2010 Data ConstellationImage Copyright Andrew Lipson 2005. Used with permission. Not affiliated with Lego™
The Enterprise
is a mess
- 4. Copyright © 2010 Data Constellation
Oneway
communication
•Software
folk
translate
user
stories
into
precise
abstractions
(UML,
ER,
etc)
•The
abstractions
are
mostly
unreadable
by
the
business
>
No
backchannel!
•Only
the
built
artefacts
communicate
our
misunderstandings
>
Late!
- 6. Copyright © 2010 Data Constellation
Semantics
• Each
term
denotes
a
type
of
thing
• Each
thing
is
associated
with
others
• These
associations
are
connotations
• “Meaning”
is
the
sum
of
all
connotations
• Every
person
has
different
connotations
“The shared meanings of a community”
- 11. Copyright © 2010 Data Constellation
Insurance
Claim
(complete)
Schema has been modified to suit a Rails application
- 12. Copyright © 2010 Data Constellation
Insurance
(snippets)
Driver
is
a
kind
of
Person;
Vehicle
Incident
is
a
kind
of
Incident;
Driving
is
where
Driver
drove
vehicle
in
Vehicle
Incident;
Vehicle
Incident
followed
Intoxication;
Driving
Charge
is
where
Driving
resulted
in
Charge;
Driving
Charge
is
a
warning;
These definitions support the example that follows.
- 15. Copyright © 2010 Data Constellation
Diplomacy
model
constraints
CQL supports many constraint types:
Mandatory, Uniqueness, Frequency,
Subset, Equality, Exclusion, Ring, Value, etc.
- 16. Copyright © 2010 Data Constellation
ORM2
A
graphical
language
for
factoriented
modeling.
- 19. Copyright © 2010 Data Constellation
Ruby
Ruby fact-oriented DSL
* uses meta-programming
* assert/retract, no new/delete
* fully co-referenced.
- 20. Copyright © 2010 Data Constellation
Simple
Query
Person
has
given
Name
‘Daniel’?
Person
has
given
Name,
given
Name
=
‘Daniel’?
... a contraction of the value join:
- 21. Copyright © 2010 Data Constellation
Units
conversion
Area
is
written
as
Real
in
mm^2;
Pane
has
Area:
Pane
of
glass
has
Width,
Pane
of
glass
has
Height,
Width
*
Height
=
Area;
large
Pane:
Pane
has
Area,
Area
>=
5
foot^2;
large
Pane?
Defined
in
mm
Compatibility
is
checked
Conversion
supplied
Query:
- 22. Copyright © 2010 Data Constellation
Semantic
Modeling
•Highly
verbal,
and
verbalisable
•Based
on
user
examples
•Mathematically
formal
(FOL)
•Finegrained
semantic
structure
•Attributefree
(Doesn’t
encode
assumptions)
•Automatic
mapping
to
OO,
ER
and
code