Package | Description |
---|---|
be.ac.umons.jsonlearning |
Oracles for learning an automaton from a JSON document.
|
be.ac.umons.jsonlearning.exploration |
Equivalence oracles for JSON documents based on an exhaustive JSON documents
generator.
|
be.ac.umons.jsonlearning.random |
Equivalence oracles for JSON documents based on a random JSON documents
generator.
|
be.ac.umons.jsonvalidation |
Implementation of a validation algorithm for JSON documents relying on a
learned 1-SEVPA.
|
be.ac.umons.jsonvalidation.graph |
Implementations of reachability relation and key graph for a VPA accepting JSON documents.
|
Modifier and Type | Class and Description |
---|---|
class |
AbstractJSONConformance<A extends net.automatalib.ts.acceptors.DeterministicAcceptorTS<?,JSONSymbol>>
Base class for equivalence checks based on conformance testing of JSON
documents.
|
Modifier and Type | Field and Description |
---|---|
de.learnlib.api.query.DefaultQuery<JSONSymbol,Boolean> |
IVPDAJSONEquivalenceOracle.CounterexampleWithRelations.counterexample |
Modifier and Type | Method and Description |
---|---|
protected de.learnlib.api.query.DefaultQuery<JSONSymbol,Boolean> |
AbstractJSONConformance.checkDocument(A hypothesis,
org.json.JSONObject document) |
protected de.learnlib.api.query.DefaultQuery<JSONSymbol,Boolean> |
AbstractJSONConformance.checkWord(A hypothesis,
net.automatalib.words.Word<JSONSymbol> word) |
default <L> de.learnlib.api.query.DefaultQuery<JSONSymbol,Boolean> |
IVPDAJSONEquivalenceOracle.counterexampleByLoopingOverInitial(net.automatalib.automata.vpda.OneSEVPA<L,JSONSymbol> hypo,
Random random)
If there is a loop over the initial location reading an internal symbol, we
can construct a counterexample by concatenating the symbol with a word that
is accepted by the hypothesis.
|
default <L> de.learnlib.api.query.DefaultQuery<JSONSymbol,Boolean> |
IVPDAJSONEquivalenceOracle.counterexampleFromKeyGraph(net.automatalib.automata.vpda.OneSEVPA<L,JSONSymbol> hypo)
Constructs the key graph for the hypothesis and, if it is invalid, provides a
counterexample.
|
protected net.automatalib.words.Word<JSONSymbol> |
AbstractJSONConformance.generateGibberish() |
protected net.automatalib.words.Alphabet<JSONSymbol> |
AbstractJSONConformance.getAlphabet() |
Modifier and Type | Method and Description |
---|---|
Boolean |
JSONMembershipOracle.answerQuery(net.automatalib.words.Word<JSONSymbol> input) |
Boolean |
JSONMembershipOracle.answerQuery(net.automatalib.words.Word<JSONSymbol> prefix,
net.automatalib.words.Word<JSONSymbol> suffix) |
Boolean |
JSONMembershipOracle.answerQuery(net.automatalib.words.Word<JSONSymbol> prefix,
net.automatalib.words.Word<JSONSymbol> suffix) |
Integer |
JSONCounterValueOracle.answerQuery(net.automatalib.words.Word<JSONSymbol> prefix,
net.automatalib.words.Word<JSONSymbol> suffix) |
Integer |
JSONCounterValueOracle.answerQuery(net.automatalib.words.Word<JSONSymbol> prefix,
net.automatalib.words.Word<JSONSymbol> suffix) |
protected de.learnlib.api.query.DefaultQuery<JSONSymbol,Boolean> |
AbstractJSONConformance.checkWord(A hypothesis,
net.automatalib.words.Word<JSONSymbol> word) |
default <L1,L2> IVPDAJSONEquivalenceOracle.CounterexampleWithRelations<L2> |
IVPDAJSONEquivalenceOracle.counterexampleAndRelationFromKeyGraph(net.automatalib.automata.vpda.OneSEVPA<L1,JSONSymbol> previousHypothesis,
ReachabilityRelation<L1> previousReachabilityRelation,
OnAcceptingPathRelation<L1> previousOnAcceptingPathRelation,
net.automatalib.automata.vpda.OneSEVPA<L2,JSONSymbol> currentHypothesis)
Constructs the key graph for the hypothesis by reusing information computed
at the previous equivalence query and, if it is invalid, provides a
counterexample.
|
default <L1,L2> IVPDAJSONEquivalenceOracle.CounterexampleWithRelations<L2> |
IVPDAJSONEquivalenceOracle.counterexampleAndRelationFromKeyGraph(net.automatalib.automata.vpda.OneSEVPA<L1,JSONSymbol> previousHypothesis,
ReachabilityRelation<L1> previousReachabilityRelation,
OnAcceptingPathRelation<L1> previousOnAcceptingPathRelation,
net.automatalib.automata.vpda.OneSEVPA<L2,JSONSymbol> currentHypothesis)
Constructs the key graph for the hypothesis by reusing information computed
at the previous equivalence query and, if it is invalid, provides a
counterexample.
|
default <L> IVPDAJSONEquivalenceOracle.CounterexampleWithRelations<L> |
IVPDAJSONEquivalenceOracle.counterexampleAndRelationFromKeyGraph(net.automatalib.automata.vpda.OneSEVPA<L,JSONSymbol> hypo)
Constructs the key graph for the hypothesis and, if it is invalid, provides a
counterexample.
|
default <L> de.learnlib.api.query.DefaultQuery<JSONSymbol,Boolean> |
IVPDAJSONEquivalenceOracle.counterexampleByLoopingOverInitial(net.automatalib.automata.vpda.OneSEVPA<L,JSONSymbol> hypo,
Random random)
If there is a loop over the initial location reading an internal symbol, we
can construct a counterexample by concatenating the symbol with a word that
is accepted by the hypothesis.
|
default <L> de.learnlib.api.query.DefaultQuery<JSONSymbol,Boolean> |
IVPDAJSONEquivalenceOracle.counterexampleFromKeyGraph(net.automatalib.automata.vpda.OneSEVPA<L,JSONSymbol> hypo)
Constructs the key graph for the hypothesis and, if it is invalid, provides a
counterexample.
|
Constructor and Description |
---|
AbstractJSONConformance(int numberTests,
boolean canGenerateInvalid,
int maxProperties,
int maxItems,
be.ac.umons.jsonschematools.JSONSchema schema,
Random random,
boolean shuffleKeys,
net.automatalib.words.Alphabet<JSONSymbol> alphabet) |
CounterexampleWithRelations(de.learnlib.api.query.DefaultQuery<JSONSymbol,Boolean> counterexample,
ReachabilityRelation<L> reachabilityRelation,
OnAcceptingPathRelation<L> onAcceptingPathRelation) |
Modifier and Type | Method and Description |
---|---|
@Nullable de.learnlib.api.query.DefaultQuery<JSONSymbol,Boolean> |
VPDAJSONEquivalenceOracle.findCounterExample(net.automatalib.automata.vpda.OneSEVPA<?,JSONSymbol> hypo,
Collection<? extends JSONSymbol> inputs) |
@Nullable de.learnlib.api.query.DefaultQuery<JSONSymbol,Boolean> |
VPDAJSONEquivalenceOracle.findCounterExample(net.automatalib.automata.vpda.OneSEVPA<?,JSONSymbol> hypo,
Collection<? extends JSONSymbol> inputs) |
Constructor and Description |
---|
JSONPartialEquivalenceOracle(int numberTests,
boolean canGenerateInvalid,
int maxProperties,
int maxItems,
be.ac.umons.jsonschematools.JSONSchema schema,
Random random,
boolean shuffleKeys,
net.automatalib.words.Alphabet<JSONSymbol> alphabet) |
ROCAJSONEquivalenceOracle(int numberTests,
boolean canGenerateInvalid,
int maxDocumentDepth,
int maxProperties,
int maxItems,
be.ac.umons.jsonschematools.JSONSchema schema,
Random random,
boolean shuffleKeys,
net.automatalib.words.Alphabet<JSONSymbol> alphabet) |
VCAJSONEquivalenceOracle(int numberTests,
boolean canGenerateInvalid,
int maxDocumentDepth,
int maxProperties,
int maxItems,
be.ac.umons.jsonschematools.JSONSchema schema,
Random random,
boolean shuffleKeys,
net.automatalib.words.VPDAlphabet<JSONSymbol> alphabet) |
VPDAJSONEquivalenceOracle(int numberTests,
boolean canGenerateInvalid,
int maxDocumentDepth,
int maxProperties,
int maxItems,
be.ac.umons.jsonschematools.JSONSchema schema,
Random random,
boolean shuffleKeys,
net.automatalib.words.VPDAlphabet<JSONSymbol> alphabet) |
Modifier and Type | Class and Description |
---|---|
class |
AbstractJSONEquivalenceOracle<A extends net.automatalib.ts.acceptors.DeterministicAcceptorTS<?,JSONSymbol>>
Base class for (full) equivalence queries using a random JSON documents
generator.
|
class |
AbstractRandomJSONConformance<A extends net.automatalib.ts.acceptors.DeterministicAcceptorTS<?,JSONSymbol>>
Base class for (partial) equivalence queries using a random generator.
|
Modifier and Type | Method and Description |
---|---|
protected de.learnlib.api.query.DefaultQuery<JSONSymbol,Boolean> |
AbstractRandomJSONConformance.findCounterExample(A hypothesis,
int maxDocumentDepth) |
Modifier and Type | Method and Description |
---|---|
@Nullable de.learnlib.api.query.DefaultQuery<JSONSymbol,Boolean> |
JSONPartialEquivalenceOracle.findCounterExample(net.automatalib.automata.fsa.DFA<?,JSONSymbol> hypothesis,
Collection<? extends JSONSymbol> inputs) |
@Nullable de.learnlib.api.query.DefaultQuery<JSONSymbol,Boolean> |
JSONPartialEquivalenceOracle.findCounterExample(net.automatalib.automata.fsa.DFA<?,JSONSymbol> hypothesis,
Collection<? extends JSONSymbol> inputs) |
@Nullable de.learnlib.api.query.DefaultQuery<JSONSymbol,Boolean> |
VPDAJSONEquivalenceOracle.findCounterExample(net.automatalib.automata.vpda.OneSEVPA<?,JSONSymbol> hypo,
Collection<? extends JSONSymbol> inputs) |
@Nullable de.learnlib.api.query.DefaultQuery<JSONSymbol,Boolean> |
VPDAJSONEquivalenceOracle.findCounterExample(net.automatalib.automata.vpda.OneSEVPA<?,JSONSymbol> hypo,
Collection<? extends JSONSymbol> inputs) |
@Nullable de.learnlib.api.query.DefaultQuery<JSONSymbol,Boolean> |
ROCAJSONEquivalenceOracle.findCounterExample(net.automatalib.automata.oca.automatoncountervalues.ROCAFromDescription<?,JSONSymbol> hypo,
Collection<? extends JSONSymbol> inputs) |
@Nullable de.learnlib.api.query.DefaultQuery<JSONSymbol,Boolean> |
ROCAJSONEquivalenceOracle.findCounterExample(net.automatalib.automata.oca.automatoncountervalues.ROCAFromDescription<?,JSONSymbol> hypo,
Collection<? extends JSONSymbol> inputs) |
@Nullable de.learnlib.api.query.DefaultQuery<JSONSymbol,Boolean> |
VCAJSONEquivalenceOracle.findCounterExample(net.automatalib.automata.oca.automatoncountervalues.VCAFromDescription<?,JSONSymbol> hypo,
Collection<? extends JSONSymbol> inputs) |
@Nullable de.learnlib.api.query.DefaultQuery<JSONSymbol,Boolean> |
VCAJSONEquivalenceOracle.findCounterExample(net.automatalib.automata.oca.automatoncountervalues.VCAFromDescription<?,JSONSymbol> hypo,
Collection<? extends JSONSymbol> inputs) |
Constructor and Description |
---|
AbstractJSONEquivalenceOracle(int numberTests,
boolean canGenerateInvalid,
int maxDocumentDepth,
int maxProperties,
int maxItems,
be.ac.umons.jsonschematools.JSONSchema schema,
Random random,
boolean shuffleKeys,
net.automatalib.words.Alphabet<JSONSymbol> alphabet,
Collection<org.json.JSONObject> documentsToTest) |
AbstractRandomJSONConformance(int numberTests,
boolean canGenerateInvalid,
int maxProperties,
int maxItems,
be.ac.umons.jsonschematools.JSONSchema schema,
Random random,
boolean shuffleKeys,
net.automatalib.words.Alphabet<JSONSymbol> alphabet) |
JSONPartialEquivalenceOracle(int numberTests,
boolean canGenerateInvalid,
int maxProperties,
int maxItems,
be.ac.umons.jsonschematools.JSONSchema schema,
Random random,
boolean shuffleKeys,
net.automatalib.words.Alphabet<JSONSymbol> alphabet) |
ROCAJSONEquivalenceOracle(int numberTests,
boolean canGenerateInvalid,
int maxDocumentDepth,
int maxProperties,
int maxItems,
be.ac.umons.jsonschematools.JSONSchema schema,
Random random,
boolean shuffleKeys,
net.automatalib.words.Alphabet<JSONSymbol> alphabet,
Collection<org.json.JSONObject> documentsToTest) |
VCAJSONEquivalenceOracle(int numberTests,
boolean canGenerateInvalid,
int maxDocumentDepth,
int maxProperties,
int maxItems,
be.ac.umons.jsonschematools.JSONSchema schema,
Random random,
boolean shuffleKeys,
net.automatalib.words.Alphabet<JSONSymbol> alphabet,
Collection<org.json.JSONObject> documentsToTest) |
VPDAJSONEquivalenceOracle(int numberTests,
boolean canGenerateInvalid,
int maxDocumentDepth,
int maxProperties,
int maxItems,
be.ac.umons.jsonschematools.JSONSchema schema,
Random random,
boolean shuffleKeys,
net.automatalib.words.Alphabet<JSONSymbol> alphabet,
Collection<org.json.JSONObject> documentsToTest) |
Modifier and Type | Field and Description |
---|---|
static JSONSymbol |
JSONSymbol.closingBracketSymbol |
static JSONSymbol |
JSONSymbol.closingCurlyBraceSymbol |
static JSONSymbol |
JSONSymbol.commaSymbol |
static JSONSymbol |
JSONSymbol.enumSymbol |
static JSONSymbol |
JSONSymbol.falseSymbol |
static JSONSymbol |
JSONSymbol.integerSymbol |
static JSONSymbol |
JSONSymbol.nullSymbol |
static JSONSymbol |
JSONSymbol.numberSymbol |
static JSONSymbol |
JSONSymbol.openingBracketSymbol |
static JSONSymbol |
JSONSymbol.openingCurlyBraceSymbol |
static JSONSymbol |
JSONSymbol.stringSymbol |
static JSONSymbol |
JSONSymbol.trueSymbol |
Modifier and Type | Field and Description |
---|---|
static net.automatalib.words.Alphabet<JSONSymbol> |
JSONSymbol.primitiveValuesAlphabet
Contains the symbols for enum, false, integer, null, number, string, and
true.
|
Modifier and Type | Method and Description |
---|---|
JSONSymbol |
JSONSymbol.callToReturn()
If the current symbol is a call, returns the corresponding return symbol.
|
static JSONSymbol |
JSONSymbol.toSymbol(Character character) |
static JSONSymbol |
JSONSymbol.toSymbol(String string) |
Modifier and Type | Method and Description |
---|---|
static net.automatalib.words.Word<JSONSymbol> |
WordConversion.fromJSONDocumentToJSONSymbolWord(org.json.JSONObject document) |
static net.automatalib.words.Word<JSONSymbol> |
WordConversion.fromJSONDocumentToJSONSymbolWord(org.json.JSONObject document,
boolean shuffleKeys,
Random rand) |
static net.automatalib.words.Word<JSONSymbol> |
JSONSymbol.toWord(String... symbols) |
Modifier and Type | Method and Description |
---|---|
int |
JSONSymbol.compareTo(JSONSymbol other) |
ValidationState<L> |
ValidationByAutomaton.getSuccessor(ValidationState<L> state,
JSONSymbol currentSymbol,
JSONSymbol nextSymbol) |
Modifier and Type | Method and Description |
---|---|
boolean |
ValidationByAutomaton.accepts(List<JSONSymbol> input) |
boolean |
ValidationByAutomaton.accepts(net.automatalib.words.Word<JSONSymbol> input) |
static String |
WordConversion.fromJSONSymbolWordToString(net.automatalib.words.Word<JSONSymbol> word) |
ValidationState<L> |
ValidationByAutomaton.getState(Iterable<JSONSymbol> input) |
Constructor and Description |
---|
ValidationByAutomaton(net.automatalib.automata.vpda.OneSEVPA<L,JSONSymbol> automaton) |
ValidationByAutomaton(net.automatalib.automata.vpda.OneSEVPA<L,JSONSymbol> automaton,
KeyGraph<L> graph) |
Modifier and Type | Method and Description |
---|---|
JSONSymbol |
NodeInGraph.getSymbol() |
Modifier and Type | Method and Description |
---|---|
net.automatalib.words.Word<JSONSymbol> |
OnAcceptingPathRelation.getWitnessFromIntermediate(L intermediate)
Gets the witness from the provided intermediate location to an accepting
location, if it belongs to the relation.
|
net.automatalib.words.Word<JSONSymbol> |
KeyGraph.getWitnessInvalid()
If the graph is invalid, provides a witness.
|
net.automatalib.words.Word<JSONSymbol> |
OnAcceptingPathRelation.getWitnessToIntermediate(L intermediate)
Gets the witness from the initial location to the provided intermediate
location, if it belongs to the relation.
|
Modifier and Type | Method and Description |
---|---|
Set<L> |
KeyGraph.getLocationsReadingKey(JSONSymbol key)
Gets all the locations for which there exists an internal transition reading
the given key.
|
List<NodeInGraph<L>> |
KeyGraph.getNodesForKey(JSONSymbol key)
Gets all the nodes that can read the given key.
|
Modifier and Type | Method and Description |
---|---|
ReachabilityRelation<L> |
ReachabilityRelation.computePotentialValueReachabilityRelation(net.automatalib.automata.vpda.OneSEVPA<L,JSONSymbol> automaton,
boolean computeWitnesses)
Computes a subset of this reachability relation such that the witnesses that
go from one location to the other by reading a potential value in a JSON
document, i.e., what follows a key symbol.
|
static <L1,L2> ReachabilityRelation<L2> |
ReachabilityRelation.computeReachabilityRelation(net.automatalib.automata.vpda.OneSEVPA<L1,JSONSymbol> previousHypothesis,
ReachabilityRelation<L1> previousReachabilityRelation,
net.automatalib.automata.vpda.OneSEVPA<L2,JSONSymbol> currentHypothesis,
boolean computeWitnesses)
Computes the relation for the automaton, using information computed in a
previous relation.
|
static <L1,L2> ReachabilityRelation<L2> |
ReachabilityRelation.computeReachabilityRelation(net.automatalib.automata.vpda.OneSEVPA<L1,JSONSymbol> previousHypothesis,
ReachabilityRelation<L1> previousReachabilityRelation,
net.automatalib.automata.vpda.OneSEVPA<L2,JSONSymbol> currentHypothesis,
boolean computeWitnesses)
Computes the relation for the automaton, using information computed in a
previous relation.
|
static <L> ReachabilityRelation<L> |
ReachabilityRelation.computeReachabilityRelation(net.automatalib.automata.vpda.OneSEVPA<L,JSONSymbol> automaton,
boolean computeWitnesses)
Computes the relation for the automaton
|
static <L1,L2> OnAcceptingPathRelation<L2> |
OnAcceptingPathRelation.computeRelation(net.automatalib.automata.vpda.OneSEVPA<L1,JSONSymbol> previousHypothesis,
OnAcceptingPathRelation<L1> previousRelation,
net.automatalib.automata.vpda.OneSEVPA<L2,JSONSymbol> currentHypothesis,
ReachabilityRelation<L2> reachabilityRelation,
boolean computeWitnesses)
Computes the relation, using the previously computed relation.
|
static <L1,L2> OnAcceptingPathRelation<L2> |
OnAcceptingPathRelation.computeRelation(net.automatalib.automata.vpda.OneSEVPA<L1,JSONSymbol> previousHypothesis,
OnAcceptingPathRelation<L1> previousRelation,
net.automatalib.automata.vpda.OneSEVPA<L2,JSONSymbol> currentHypothesis,
ReachabilityRelation<L2> reachabilityRelation,
boolean computeWitnesses)
Computes the relation, using the previously computed relation.
|
static <L> OnAcceptingPathRelation<L> |
OnAcceptingPathRelation.computeRelation(net.automatalib.automata.vpda.OneSEVPA<L,JSONSymbol> automaton,
ReachabilityRelation<L> reachabilityRelation,
boolean computeWitnesses)
Computes the relation from the provided automaton, and its reachability
relation.
|
Set<L> |
KeyGraph.getLocationsWithReturnTransitionOnUnmarkedPathsWithAllKeysSeen(Set<JSONSymbol> seenKeys,
Collection<L> locationsBeforeCall,
Collection<NodeInGraph<L>> rejectedNodes)
Gets all the locations in the VPA such that it is possible to read a closing
curly brace and there is a path in the graph such that none of its node is
marked as rejected and all the keys seen while processing the input are
exactly seen on the path.
|
static <L> KeyGraph<L> |
KeyGraph.graphFor(net.automatalib.automata.vpda.OneSEVPA<L,JSONSymbol> automaton,
boolean checkGraph)
Constructs the key graph for the provided automaton.
|
L |
OnAcceptingPathRelation.identifyBinLocation(net.automatalib.automata.vpda.OneSEVPA<L,JSONSymbol> automaton)
Identifies the bin location in the automaton
|
Constructor and Description |
---|
NodeInGraph(L startLocation,
L targetLocation,
JSONSymbol symbol,
net.automatalib.automata.vpda.OneSEVPA<L,JSONSymbol> automaton,
L binLocation) |
Constructor and Description |
---|
KeyGraph(net.automatalib.automata.vpda.OneSEVPA<L,JSONSymbol> automaton,
ReachabilityRelation<L> reachabilityRelation,
OnAcceptingPathRelation<L> onAcceptingPathRelation,
boolean checkGraph)
Constructs the key graph using the VPA, its
ReachabilityRelation , and
its OnAcceptingPathRelation . |
NodeInGraph(L startLocation,
L targetLocation,
JSONSymbol symbol,
net.automatalib.automata.vpda.OneSEVPA<L,JSONSymbol> automaton,
L binLocation) |
Copyright © 2022. All rights reserved.