Formal Knowledge Representation and Automated Reasoningfor the Study of Archaeological Stratigraphy
M. Cattani, G. Mantegari, A. Mosca, M. Palmonari
Department of Archaeology, University of Bologna (Italy)
Department of Informatics, Systems and Communication,
University of Milan Bicocca (Italy)
Computerized stratigraphy has a long research history and brought to the creation of some succesfull softwares (e.g. ArchEd, Stratify) which can guarantee a quite satisfiable management of the stratigraphic sequences.
Some problems concern:• the difficulty to manage large/huge datasets• the difficulty to integrate a digital matrix representation with other softwares (e.g. GIS)• the difficulty to handle multilinear stratigraphic sequences• the difficulty to manage uncertain or insufficient knowledge• ...
At a more general level, which concerns the model itself, some other issues can be found. For example the Harris model has been criticized from different points of view (see the Harris-Carver debate) but it still represent the principal methology for modelling and representing the stratigraphic sequence.
but...this is half of the problem...
The project aims at proposing a new approach for the study of thearchaeological stratigrafy by means of Computer Science techniquesand tools
Our main objective, in this phase, are to investigate:
• the possibility of modelling the stratigraphy by means offormal knowledge representation• the possibility of performing automated reasoning with respect to:
• the spatial component• the temporal component
We are not interested, in this phase, to the visualization of the stratigraphic sequence.
In our vision, the graphical representation is just the last step and, provided the logical model is adequate and the automatic reasoning works well, it is a minor problem.
Of course we aim at realizing a software or a set of tools, butat the moment we focus mainly on the creation of a fomal modelrather than on the specification of the software requirements.
The project isat the very beginning
There are different systems which can be used for reasoning with programs of A-Prolog. The choice of the system normally depends on the form of the program and the type of queries one wants to be answered.
In recent years however a number of very efficient algorithms were developed to reason with programs with “finite Herbrand universes”, and a number of modern A-Prolog systems are now available. One of the best known systems is DLV.
The DLV System
DLV can be seen as a logic programming system or as a deductive database system. In order to be consistent with deductive database terminology, the input is separated into the extensional database (EDB), which is a collection of facts, and the intensional database (IDB), which is used to deduce facts.
A x
i o
m
A
l p
h a
b e
t Variables (‘Terms’)
X, Y, Z, ...
Constants (‘Terms’)us1, us2, us3, ...
Unary Predicates (‘Atoms’)cutUnit(X), trench(X), wall(X), ...
Binary Predicates (‘Atoms’)cover(X,Y), fill(X,Y), cut(X,Y), ...
Positive & Negative Literals (‘Atoms’ or ‘Classically Negated Atoms’) wall(X), cut(X,Y),..., cover(X,Y), fill(X,Y), ...
Ground Literalscover(u6,u3), filledBy(u4,u8), ...
naf-Literals (‘Atoms’ or ‘Atoms preceeded by not’)..., not cover(X,Y), not fill(X,Y), ...
RulesdirPostTo(Z,Y) :- equalTo(X,Y),cover(Z,X).contemporary(X,Y) :- equalTo(X,Y).
Constraints:- attachTo(X,X).
• Factsequal(X,X).cover(u6,u3).
-cover(Y,X) :- cover(X,Y).coveredBy(X,Y) :- cover(Y,X).cover(X,Y) :- coveredBy(Y,X).
-cut(Y,X) :- cut(X,Y).cuttedBy(X,Y) :- cut(Y,X).cut(X,Y) :- cuttedBy(Y,X).
-fill(Y,X) :- fill(X,Y).filledBy(X,Y) :- fill(Y,X).fill(X,Y) :- filledBy(Y,X).:- fill(X,Y),not slash(Y).
-leanOn(Y,X) :- leanOn(X,Y).hasLeaned(Y,X) :- leanOn(X,Y).leanOn(Y,X) :- hasLeaned(X,Y).
:- attachTo(X,X).attachTo(Y,X) :- attachTo(X,Y).
equalTo(Y,X) :- equalTo(X,Y).equalTo(X,Z) :- equalTo(X,Y),equalTo(Y,Z).
Primitive spatial relationships
:- dirPostTo(X,X).-dirPostTo(X,Y) :- dirPostTo(Y,X).
:- dirAntTo(X,X).-dirAntTo(X,Y) :- dirAntTo(Y,X).
dirAntTo(Y,X) :- dirPostTo(X,Y).
posteriorTo(X,Y) :- dirPostTo(X,Y).posteriorTo(X,Y) :- posteriorTo(X,Z),dirPostTo(Z,Y).
-posteriorTo(X,Y) :- posteriorTo(Y,X).anteriorTo(Y,X) :- posteriorTo(X,Y).
contemporary(X,Y) :- contemporary(Y,X).contemporary(X,Z) :- contemporary(X,Y),contemporary(Y,Z).
Primitive temporal relationships
dirPostTo(X,Y) :- cover(X,Y).dirPostTo(X,Y) :- cut(X,Y).dirPostTo(X,Y) :- fill(X,Y).dirPostTo(X,Y) :- leanOn(X,Y).
contemporary(X,Y) :- attachTo(X,Y).contemporary(X,Y) :- equalTo(X,Y).-contemporary(X,Y) :- -equalTo(X,Y).
Spatial -> Temporal mapping
posteriorTo(Y,W) :- leanOn(X,Y),leanOn(X,Z),cover(Y,Z),cover(X,W),leanOn(W,Z).
posteriorTo(X,W) :- leanOn(X,Y),leanOn(Z,W),cover(X,Z),cover(Y,W).posteriorTo(Y,Z) :- leanOn(X,Y),leanOn(Z,W),cover(X,Z),cover(Y,W).
posteriorTo(Z,Y) :- contemporary(X,Y),posteriorTo(Z,X).posteriorTo(Z,X) :- contemporary(X,Y),posteriorTo(Z,Y).
dirPostTo(Z,Y) :- equalTo(X,Y),cover(Z,X).dirPostTo(Z,X) :- equalTo(X,Y),cover(Z,Y).
-contemporary(Z,Y) :- equalTo(X,Y),posteriorTo(X,Z).-contemporary(Z,X) :- equalTo(X,Y),posteriorTo(Y,Z).
contemporary(X,Y) v posteriorTo(X,Y) v posteriorTo(Y,X) :- us(X),us(Y),not posteriorTo(X,Y),not -posterior(X,Y).
Mixed axioms & multiple model generation
inferencedchronological
models
txt
factsJDBCODBC
txt
MS accessdb
DLV
axioms &
rulestxt
...cover(u622,u613).cover(u622,u618).cover(u802,u613).cover(u803,u613).coveredBy(u414,u433).coveredBy(u414,u46).coveredBy(u415,u414).coveredBy(u419,u414).coveredBy(u419,u415).coveredBy(u419,u450).coveredBy(u425,u428).coveredBy(u427,u419)....
...-cover(Y,X) :- cover(X,Y).coveredBy(X,Y) :- cover(Y,X).cover(X,Y) :- coveredBy(Y,X)....equalTo(Y,X) :- equalTo(X,Y).equalTo(X,Z) :- equalTo(X,Y),equalTo(Y,Z)....
...posteriorTo(u414,u415), posteriorTo(u414,u419), posteriorTo(u414,u450), posteriorTo(u414,u612), posteriorTo(u414,u427), posteriorTo(u414,u428), posteriorTo(u414,u439), posteriorTo(u414,u452), posteriorTo(u414,u453), posteriorTo(u414,u605), posteriorTo(u414,u609)...
DLV [build BEN/Oct 11 2007 gcc 3.4.5 (mingw special)]
{posteriorTo(us1,us2), posteriorTo(us1,us3), posteriorTo(us2,us5), posteriorTo(us3,us5), posteriorTo(us3,us4), posteriorTo(us4,us5), posteriorTo(us2,us3), posteriorTo(us2,us4}}
{posteriorTo(us1,us2), posteriorTo(us1,us3), posteriorTo(us2,us5), posteriorTo(us3,us5), posteriorTo(us3,us4), posteriorTo(us4,us5), posteriorTo(us3,us2), posteriorTo(us4,us2)}
{posteriorTo(us1,us2), posteriorTo(us1,us3), posteriorTo(us2,us5), posteriorTo(us3,us5), posteriorTo(us3,us4), posteriorTo(us4,us5), posteriorTo(us3,us2), posteriorTo(us2,us4)}
{posteriorTo(us1,us2), posteriorTo(us1,us3), posteriorTo(us2,us5), posteriorTo(us3,us5), posteriorTo(us3,us4), posteriorTo(us4,us5), posteriorTo(us3,us2), contemporary(us4,us2), contemporary(us2,us4)}
{posteriorTo(us1,us2), posteriorTo(us1,us3), posteriorTo(us2,us5), posteriorTo(us3,us5), posteriorTo(us3,us4), posteriorTo(us4,us5), contemporary(us3,us2), posteriorTo(us2,us4), contemporary(us2,us3)}
Lack of knowledge generates multiple models
contemporary(X,Y) OR posteriorTo(X,Y) OR posteriorTo(Y,X) :- us(X),us(Y), not posteriorTo(X,Y), not -posteriorTo(X,Y).
Archeometrical SpecificationS
dirPostTo(Z,X) :- fill(X,Y),fill(Z,Y),wall(X),trench(Z).
Managing the uncertainty: prune the models!
Adding new information to the program may force a reasoner associated with it to withdraw its previous conclusions about the world
contemporary(X,Y) :- equalTo(X,Y).
-contemporary(X,Y) :- -equalTo(X,Y).
Ontological SpecificationS
contemporary(X,Y) OR posteriorTo(X,Y) OR posteriorTo(Y,X) :- us(X),us(Y), not posteriorTo(X,Y), not -posteriorTo(X,Y).
DATA UPDATE
cover(us1,us2).cover(us1,us3).fill(us2,us4).fill(us3,us4).
equalTo(us2,us4).
Archeometrical SpecS
DATA
cover(us1,us2).cover(us1,us3).fill(us2,us4).fill(us3,us4).
DLV [build BEN/Oct 11 2007 gcc 3.4.5 (mingw special)]
{posteriorTo(us1,us2), posteriorTo(us1,us3), posteriorTo(us1,us4), posteriorTo(us2,us4), posteriorTo(us3,us4), posteriorTo(us2,us3)}
{posteriorTo(us1,us2), posteriorTo(us1,us3), posteriorTo(us1,us4), posteriorTo(us2,us4), posteriorTo(us3,us4), posteriorTo(us3,us2)}
{posteriorTo(us1,us2), posteriorTo(us1,us3), posteriorTo(us1,us4), posteriorTo(us2,us4), posteriorTo(us3,us4), contemporary(us3,us2), contemporary(us2,us3)}
DLV [build BEN/Oct 11 2007 gcc 3.4.5 (mingw special)]
{posteriorTo(us1,us2), posteriorTo(us1,us3), posteriorTo(us1,us4), posteriorTo(us2,us4), posteriorTo(us3,us4), contemporary(us3,us2), contemporary(us2,us3)}
Archeometrical SpecS
DATA
cover(us1,us2).cover(us1,us3).fill(us2,us4).fill(us3,us4).
DLV [build BEN/Oct 11 2007 gcc 3.4.5 (mingw special)]
{posteriorTo(us1,us2), posteriorTo(us1,us3), posteriorTo(us1,us4), posteriorTo(us2,us4), posteriorTo(us3,us4), posteriorTo(us2,us3)}
{posteriorTo(us1,us2), posteriorTo(us1,us3), posteriorTo(us1,us4), posteriorTo(us2,us4), posteriorTo(us3,us4), posteriorTo(us3,us2)}
{posteriorTo(us1,us2), posteriorTo(us1,us3), posteriorTo(us1,us4), posteriorTo(us2,us4), posteriorTo(us3,us4), contemporary(us3,us2), contemporary(us2,us3)}
DATA UPDATE
cover(us1,us2).cover(us1,us3).fill(us2,us4).fill(us3,us4).
-equalTo(us2,us4).
DLV [build BEN/Oct 11 2007 gcc 3.4.5 (mingw special)]
{posteriorTo(us1,us2), posteriorTo(us1,us3), posteriorTo(us1,us4), posteriorTo(us2,us4), posteriorTo(us3,us4), posteriorTo(us2,us3)}
{posteriorTo(us1,us2), posteriorTo(us1,us3), posteriorTo(us1,us4), posteriorTo(us2,us4), posteriorTo(us3,us4), posteriorTo(us3,us2)}
DATA UPDATE
cover(us1,us2).cover(us1,us3).fill(us2,us4).fill(us3,us4).
wall(us2).trench(us3).
Ontological SpecSDATA
cover(us1,us2).cover(us1,us3).fill(us2,us4).fill(us3,us4).
DLV [build BEN/Oct 11 2007 gcc 3.4.5 (mingw special)]
{posteriorTo(us1,us2), posteriorTo(us1,us3), posteriorTo(us1,us4), posteriorTo(us2,us4), posteriorTo(us3,us4), posteriorTo(us2,us3)}
{posteriorTo(us1,us2), posteriorTo(us1,us3), posteriorTo(us1,us4), posteriorTo(us2,us4), posteriorTo(us3,us4), posteriorTo(us3,us2)}
{posteriorTo(us1,us2), posteriorTo(us1,us3), posteriorTo(us1,us4), posteriorTo(us2,us4), posteriorTo(us3,us4), contemporary(us3,us2), contemporary(us2,us3)}
DLV [build BEN/Oct 11 2007 gcc 3.4.5 (mingw special)]
{posteriorTo(us1,us2), posteriorTo(us1,us3), posteriorTo(us1,us4), posteriorTo(us2,us4), posteriorTo(us3,us4), posteriorTo(us3,us2)}
cover(u6,u1).cover(u6,u4).cover(u6,u2).cover(u6,u3).cover(u2,u12).cover(u3,u12).cover(u1,u7).cover(u9,u11).cover(u4,u10).cover(u10,u11).cut(u5,u1).cut(u5,u9).cut(u5,u11).cut(u5,u10).cut(u5,u4).cut(u8,u9).fill(u2,u5).fill(u3,u5).fill(u12,u5).fill(u7,u8).wall(u2).trench(u3).
A simple Harris’s example...
DLV [build BEN/Oct 11 2007 gcc 3.4.5 (mingw special)]
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u11,u11), contemporary(u10,u10), contemporary(u5,u5), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u1,u7), linPostTo(u4,u10), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u9,u11), linPostTo(u5,u4), linPostTo(u8,u9)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u11,u11), contemporary(u10,u10), contemporary(u5,u5), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u1,u7), linPostTo(u4,u10), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u10,u11), linPostTo(u5,u1), linPostTo(u8,u9)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u4), contemporary(u9,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u4,u9), contemporary(u9,u9), contemporary(u11,u11), contemporary(u10,u10), contemporary(u5,u5), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u1,u7), linPostTo(u4,u10), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u10,u11), linPostTo(u5,u1), linPostTo(u8,u9)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u11,u11), contemporary(u10,u10), contemporary(u5,u5), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u1,u7), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u10,u11), linPostTo(u5,u1)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u11,u11), contemporary(u10,u10), contemporary(u5,u5), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u1,u7), linPostTo(u4,u10), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u9,u11), linPostTo(u5,u1)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u10,u9), contemporary(u11,u11), contemporary(u9,u10), contemporary(u10,u10), contemporary(u5,u5), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u1,u7), linPostTo(u4,u10), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u9,u11), linPostTo(u10,u11), linPostTo(u5,u1)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u10,u1), contemporary(u4,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u11,u11), contemporary(u1,u10), contemporary(u10,u10), contemporary(u5,u5), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u1,u7), linPostTo(u4,u10), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u9,u11), linPostTo(u5,u4), linPostTo(u8,u9)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u11,u11), contemporary(u10,u10), contemporary(u5,u5), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u4,u10), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u9,u11), linPostTo(u5,u1), linPostTo(u8,u9)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u1), contemporary(u1,u4), contemporary(u4,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u11,u11), contemporary(u10,u10), contemporary(u5,u5), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u4,u10), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u9,u11), linPostTo(u5,u1), linPostTo(u5,u4), linPostTo(u8,u9)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u11,u11), contemporary(u10,u10), contemporary(u5,u5), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u9,u11), linPostTo(u5,u4), linPostTo(u8,u9)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u4), contemporary(u8,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u11,u11), contemporary(u10,u10), contemporary(u5,u5), contemporary(u4,u8), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u1,u7), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u10,u11), linPostTo(u5,u1), linPostTo(u8,u9)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u4), contemporary(u8,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u11,u11), contemporary(u10,u10), contemporary(u5,u5), contemporary(u4,u8), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u1,u7), linPostTo(u4,u10), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u9,u11), linPostTo(u5,u1)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u4), contemporary(u8,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u10,u9), contemporary(u11,u11), contemporary(u9,u10), contemporary(u10,u10), contemporary(u5,u5), contemporary(u4,u8), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u1,u7), linPostTo(u4,u10), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u9,u11), linPostTo(u10,u11), linPostTo(u5,u1), linPostTo(u8,u9)}
... generates 41 admissible models!
DLV [build BEN/Oct 11 2007 gcc 3.4.5 (mingw special)]
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u11,u11), contemporary(u10,u10), contemporary(u5,u5), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u1,u7), linPostTo(u4,u10), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u9,u11), linPostTo(u5,u4), linPostTo(u8,u9)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u11,u11), contemporary(u10,u10), contemporary(u5,u5), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u1,u7), linPostTo(u4,u10), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u10,u11), linPostTo(u5,u1), linPostTo(u8,u9)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u4), contemporary(u9,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u4,u9), contemporary(u9,u9), contemporary(u11,u11), contemporary(u10,u10), contemporary(u5,u5), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u1,u7), linPostTo(u4,u10), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u10,u11), linPostTo(u5,u1), linPostTo(u8,u9)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u11,u11), contemporary(u10,u10), contemporary(u5,u5), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u1,u7), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u10,u11), linPostTo(u5,u1)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u11,u11), contemporary(u10,u10), contemporary(u5,u5), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u1,u7), linPostTo(u4,u10), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u9,u11), linPostTo(u5,u1)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u10,u9), contemporary(u11,u11), contemporary(u9,u10), contemporary(u10,u10), contemporary(u5,u5), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u1,u7), linPostTo(u4,u10), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u9,u11), linPostTo(u10,u11), linPostTo(u5,u1)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u10,u1), contemporary(u4,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u11,u11), contemporary(u1,u10), contemporary(u10,u10), contemporary(u5,u5), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u1,u7), linPostTo(u4,u10), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u9,u11), linPostTo(u5,u4), linPostTo(u8,u9)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u11,u11), contemporary(u10,u10), contemporary(u5,u5), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u4,u10), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u9,u11), linPostTo(u5,u1), linPostTo(u8,u9)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u1), contemporary(u1,u4), contemporary(u4,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u11,u11), contemporary(u10,u10), contemporary(u5,u5), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u4,u10), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u9,u11), linPostTo(u5,u1), linPostTo(u5,u4), linPostTo(u8,u9)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u11,u11), contemporary(u10,u10), contemporary(u5,u5), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u9,u11), linPostTo(u5,u4), linPostTo(u8,u9)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u4), contemporary(u8,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u11,u11), contemporary(u10,u10), contemporary(u5,u5), contemporary(u4,u8), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u1,u7), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u10,u11), linPostTo(u5,u1), linPostTo(u8,u9)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u4), contemporary(u8,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u11,u11), contemporary(u10,u10), contemporary(u5,u5), contemporary(u4,u8), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u1,u7), linPostTo(u4,u10), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u9,u11), linPostTo(u5,u1)}
{contemporary(u6,u6), contemporary(u1,u1), contemporary(u4,u4), contemporary(u8,u4), contemporary(u2,u2), contemporary(u3,u3), contemporary(u12,u12), contemporary(u7,u7), contemporary(u9,u9), contemporary(u10,u9), contemporary(u11,u11), contemporary(u9,u10), contemporary(u10,u10), contemporary(u5,u5), contemporary(u4,u8), contemporary(u8,u8), linPostTo(u6,u3), linPostTo(u1,u7), linPostTo(u4,u10), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u9,u11), linPostTo(u10,u11), linPostTo(u5,u1), linPostTo(u8,u9)}
DLV [build BEN/Oct 11 2007 gcc 3.4.5 (mingw special)]
{linPostTo(u6,u3), linPostTo(u1,u7), linPostTo(u4,u10), linPostTo(u2,u12), linPostTo(u3,u2), linPostTo(u12,u5), linPostTo(u7,u8), linPostTo(u9,u11), linPostTo(u10,u11), linPostTo(u5,u1), linPostTo(u5,u4), linPostTo(u8,u9), contemporary(u1,u4), contemporary(u9,u10)}
equalTo(u1,u4).equalTo(u9,u10).
The pruned Harris’s example
GraphViz visualization
digraph matrix
{u1 -> u5; u1 -> u3; u1 -> u4; u5 -> u15; u3 -> u12; u4 -> u8; u4 -> u25; u12 -> u20; u20 -> u22; u9 -> u12; u22 -> u39; u39 -> u40; u15 -> u18; u18 -> u12; u90 -> u94; u90 -> u91; u107 -> u112; u107 -> u130; u107 -> u120; u138 -> u140; u63 -> u80; u43 -> u59; u44 -> u80; u47 -> u49; u41 -> u74; u42 -> u70; u59 -> u61; u80 -> u87; u61 -> u76; u76 -> u89; u70 -> u82; u82 -> u88; u88 -> u90; u74 -> u84; u84 -> u86; u86 -> u90; u87 -> u90; u89 -> u90; u92 -> u107; u49 -> u55; u55 -> u83; u83 -> u90; u93 -> u99; u99 -> u100; u100 -> u107; u97 -> u99; u94 -> u99; u91 -> u104; u104 -> u107; u112 -> u138; u130 -> u134; u120 -> u125; u134 -> u138; u125 -> u138}
GraphVizgraph
file
dot
inferencedchronological
models
txt
jpeg
png
ps
svg
vrml
gif
...
Conclusions and future work
We think that to face the problem of archaeological stratigraphy in its entirety we have to start from the Harris model but to consider developing and managing other models.
To manage uncertainty is not just to simplify the model because it is easier to manage it
We aim at testing DLV on large datasets (up to 10.000 units) with a particular regard to uncertain situations
Commonsense reasoning is the way archaeologists reason when recording stratigraphy
To manage uncertainty means also to try to go beyond incomplete or uncertain knowledge