Work done will be at the direction of the PI, and where relevant, the Industry Director and Centre Director.As the Programme is interdisciplinary and multidisciplinary by nature, you will be expected to convey yourdomain expertise and edify others (and vice versa) in as productive, constructive, and collaborative a manneras possible.
You may be asked to participate in the development of use cases and delivery of proof-of-concept prototypesfor government and industry partners in the areas of computable contracts and "rules as code". Experience inrequirements analysis and agile, iterative methodologies will be useful at this stage.The work of the team will be largely determined by these use cases and customers. We will work with multipleuse cases so that we can abstract across them and develop generalized, reusable infrastructure. We will workwith specific customers so we can build useful applications on top of that infrastructure.You will contribute to the design and development of open-source software written to serve those use cases.You will work as part of a team of research engineers, developers, and domain expertise and you will beexpected to actively participate in team meetings and text-based communications. You will be expected to beactive members of the applied research community, by validating and contributing to advances incomputational law.
You may be asked to conduct use-inspired research at the direction of the Principal Investigator. This includes
in each case, documenting, reporting, and/or presenting the same in clearly and efficiently, both internally and externally.
Open-Source Software & Open-Standard Infrastructure EngineeringInternet ꞏ Unix ꞏ TCP/IP ꞏ HTTP(S) ꞏ XML ꞏ JSON ꞏ Schemas ꞏ YAML ꞏ Git ꞏ Github ꞏ Technical Writingꞏ Developer Relations and Evangelism
Formalization of Contracts, Rules, and Business Logic: Akoma Ntoso ꞏ LegalRuleML ꞏ Petri Nets ꞏ Drools ꞏ iLogꞏ OPA ꞏ Neota Logic ꞏ Constraint Handling Rules ꞏ ICAIL ꞏ JURIX ꞏ RuleML+RR
Semantic Web and Ontologies: RDFa ꞏ RDFt ꞏ RDF ꞏ RIF ꞏ SWRL ꞏ OWL ꞏ Cyc ꞏ KBpedia ꞏ SUMO ꞏ UFOꞏ Protégé ꞏ or a commercial rules engine with ontology support
Model Driven Architecture: UML ꞏ BPMN ꞏ DMN ꞏ OCL ꞏ SBVR ꞏ Statecharts ꞏ Activity Diagrams ꞏ ParnasTables
Logics: Hoare Logic ꞏ Kripke structures ꞏ Modal mu-calculus ꞏ Dynamic Logic ꞏ Deontic, Temporal, andEpistemic modals ꞏ Situation Calculus ꞏ Process Calculi ꞏ Multivalent logics ꞏ Defeasible Logic ꞏ BDI ꞏ AbductiveLogic ꞏ F-Logic ꞏ Intuitionistic ꞏ Non-monotonic Logics ꞏ Skolemization ꞏ Well-Founded SemanticsGood Old-Fashioned Artificial Intelligence and Semantic Web
Knowledge Representation and Reasoning: Lisp ꞏ Prolog ꞏ F-Logic ꞏ Drools ꞏ Oracle Policy Manager ꞏ Flora-2ꞏ Datalog ꞏ Answer-Set Programming ꞏ Defeasible Logic ꞏ Expert Systems ꞏ DocAssemble ꞏ lps.doc.ic.ac.uk
Skills listed below this line are preferred but not required:
Theorem Proving and Strongly Typed Languages:CoQ ꞏ Agda ꞏ Idris ꞏ Lean Prover ꞏ F* ꞏ Advanced Haskell (Template etc) ꞏ OCaml ꞏ Elm ꞏ Isabelle/HOLꞏ StrangeLoop ꞏ Pony
Model Checkers and SAT/SMT solvers: Z3 ꞏ PAT ꞏ SMTlib ꞏ NuSMV ꞏ SPIN ꞏ Sentient
IDEs, Language Workbenches, and PLT frameworks: K Framework ꞏ JetBrains MPS ꞏ IDEs (Vim, Emacs,Visual Studio Code, Atom, Sublime Text) ꞏ Language Server ProtocolRule Systems and Logics
Computational Linguistics – Natural Language GenerationComputational Semantics (in Haskell, Prolog, or Lisp) ꞏ Montague Semantics ꞏ Grammatical Framework ꞏ Textplanning ꞏ Surface realizationFamiliarity with: WordNet ꞏ FrameNet ꞏ SenseNet ꞏ Controlled Natural Languages ꞏ Attempto Controlled Englishꞏ ACErules
Parsers, Compilers, and Programming Language TheoryLex/YACC ꞏ alex/happy ꞏ Bison ꞏ CFGs ꞏ EBNF ꞏ BNFC
Formal Verification and Specification LanguagesSome familiarity with any of: TLA+ ꞏ Alloy ꞏ IVy ꞏ B Method ꞏ Z notation ꞏ VDM++ ꞏ LTL ꞏ CTL
App DevelopmentTest-Driven Development ꞏ Continuous Integration ꞏ Software Project Management ꞏ Agile / XP / Scrum ꞏ PairProgramming ꞏ Literate Programming ꞏ Unit Testing ꞏ Amazon Web Services ꞏ Docker ꞏ Full-StackDevelopment