Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //---------------------------------------------------
- // vertex -- [id, datetime, params, values] - variable/property
- //
- //state -- (ontology class) - [p,datetime,s, params,values, o[vertices+messages]] function (returns data) = class
- //stream -- (ontology class) - [p,datetime,s, params,values, o[vertexes, active edges]] function (returns action) = edges (subscriptions)
- //
- //session -- (function) --- context (edge) | definition(subject), body(constants + flow), arguments(inputs = messages), params(params), result => messages/actions
- //
- //message=state -- realine (ontology property) -- [p,datetime,s,[vertex || edges], params,values] (event)
- //
- //state machine: event -- action (transition) -- event -- listening to new event
- //---------------------------------------------------
- // edge -- [p,datetime,s,o, params,values]
- //vertex -- [id, datetime, params, values]
- //-------------------------------
- //
- // Intersection(old data)
- //- state 1 and state 2
- //- state1(vertex --> edges) --> state2(vertexes) ===> events[]
- //
- //Event filtration:
- // - stream1(vertex, edge) ---> message(edge)
- //
- //Assertion:
- // - filtration chain ---> object prop -- add new edges, vertex --> data prop....
- //
- //cardinality --> how many subscriptions to set up
- //restrictions --> rules, criteria
- //
- //-------------------
- const coordinate = 1;
- const vertex = [coordinate, Date.now(), [], []];
- const edge = [
- vertex, // sasha
- vertex, // hasDistanceTo
- vertex, // vasia
- Date.now(),
- [], // distance = 70
- []
- ];
- const state = [vertex, vertex, [vertex, edge], Date.now(), [], []];
- const context = [vertex, vertex, [state, state], Date.now(), [], []];
- const vasia = 1;
- const lives = 2;
- const apartment = 16;
- const vasiaInitialState = [vasia, lives, apartment];
- const hasDistanceTo = function(myApartment, vasiaApartment) {
- // return myApartment - vasiaApartment = distance
- }
- const assertionParameters = [
- vertex/*definition (has Neighbour)*/,
- vertex/*result {expected Neighbour}*/,
- [vertex/*listen (Person)*/, edge/*listen (Person)*/],
- Date.now(),
- []/*preconditions, postconditions - cardinality,restrictions (DistanceFromFlat < 50)*/,
- []/*some function (get Neighbour)*/
- ];
- // action params
- const moved = 10;
- const change = -6; // from apartment 16 to 10;
- const action = [vasia, moved, change];
- const afterAction = [vasia, lives, apartment + change];
- const session = function(msg, args, context, definition) {
- // msg = button clicked
- // args = {username: 'sasha', password: 123}
- // context = login to company, some login form
- // definition = array of actions
- // to do something, need to do assertion
- // to do assertion need additional data or run function which gets data
- // validate criteria with restrictions
- // select action
- // commit to execute action
- // execute action
- // result is event or call next action
- };
- /*<EquivalentClasses>
- <Class IRI="#Neighbour"/>
- <ObjectIntersectionOf>
- <Class IRI="#Person"/>
- <DataSomeValuesFrom>
- <DataProperty IRI="#DistanceFromFlat"/>
- <DatatypeRestriction>
- <Datatype abbreviatedIRI="xsd:int"/>
- <FacetRestriction facet="http://www.w3.org/2001/XMLSchema#maxExclusive">
- <Literal datatypeIRI="http://www.w3.org/2001/XMLSchema#int">50</Literal>
- </FacetRestriction>
- </DatatypeRestriction>
- </DataSomeValuesFrom>
- </ObjectIntersectionOf>
- </EquivalentClasses>*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement