Professional profile
Title - Software Architect
Expertise - Object-Oriented architecture, Natural language processing, Knowledge representation
Experience - Total 35 years
Research skills
- Representation systems for hypertext technologies
- Algorithms and Object-Oriented architecture (UML and Design Patterns)
- Formal models of natural languages
Technical skills
- Object-Oriented languages: , , , , , , , ...
- technologies: , , , object marshalling, , , ...
- Web development frameworks: , , , , , , ...
- Web development: , , , , , , , ...
- Database technologies (Semantic, Graph, XML, OO, or relational): , , , , , , , , , , , , , , ...
- Platform-independent graphical user interfaces (, others.)
- Agent-based programming (, , )
- Natural speech application design ()
- Operating systems: , , , ,
Consultancy
- Genomic interaction visualization tool based on distortion (, )
- Web site deployment ()
- Prototype for dynamic database query ()
- Database design and implementation of the event calendar and schedule application ()
- Work on the web-scraping for e-Petitions in the Back-End web engine (, )
Closer Look - Search engine that identifies data in web databases
- Proof of concept for identification of web page structures based on XPaths for data mining (, )
Professional experience
-
Development of IdeaLoom, a collective intelligence tool based on Assembl. From product vision to design, architecture and implementation.
- Architecture (in progress) for HyperKnowledge, a next generation event-based protocol for an ecostem of multi-perspective knowledge graphs
- Consultation for Bluenove's version of Assembl, in particular for their transition to AWS.
2013 - 2016 |
Responsable R&D intelligence collective
|
Bluenove
|
Research and Development role for Assembl, a collective intelligence tool. Assembl was developed in part in the context of the Catalyst project, by Bluenove and Imagination for People, with initial contributions from Caravan and the Institut du Nouvau Monde.
- Co-developed (with Benoit Grégoire) the most part of the data model and information architecture.
- Developed the interoperability infrastructure, as part of the Catalyst project, basing it on a OWL ontology, with links to other ontologies such as SIOC, OpenAnnotation and AIF.
- Developed a bridg between the ORM (SQLAlchemy), and the relationnal-semantic bridge of Virtuoso, so as to synchronize three data models (relational-OO-semantic: see article)
- Developed a generic RESTful layer based on traversal of ORM relationships.
- Developed a real-time client-server synchronisation protocol based on Websockets.
- Developed the security model and the authentication layer.
- Developed most of the engine for synchronisation with external data sources.
- General development of the application.
- Assistance to Catalyst partners for interoperability: Contributions to Wikitalia's Edgesense, help for Knowledge Media Institute (Open University)'s DebateHub, and for the collective intelligence metrics engine developed by Mark Klein from MIT.
Support and advise the community of education ICT practitioners and deciders to use stardards.
- Contributed to the evolution of the Eureka platform, un catalogue de métadonnées sur les ressources d'enseignement et d'apprentissage.
- VCard handling (PHP)
- Post-processing of LOM for error handling in harvested resources (XSL)
- Requirement analysis for term equivalence between vocabularies
- Advised DECclic for use of standards for the evolution of their online course platform
- Validated the applicability of IMS-QTI 2.1 as a target format for data from ExamStudio
- Validated that the Moodle platform could support QTI tests, using the QTItools gateway
- Recommanded use of heterogeneous technologies: widgets, distributed identity, collaboration, etc. to avoid single-platform lock-in
- Maintanance of the Normetic validator (Java, Schematron, XSD)
- Support on the design of the conceptual model of the MLR standard
- In charge of the Normetic section of the GTN-Québec site
2007 - 2008 |
Software Developer |
Google |
Undisclosed project
- General development ( server, client)
- Design and implementation of extensions to the communication protocol
- Gained experience with both Google-specific and open-source tools and development methods.
- Client-server protocols with
- Internal tools for distributed process management, interprocess communication
- Test-driven programming with /
- Code reviews with Mondrian and
- Templates and
- Contributed to internationalization infrastructure ()
DistriBistro - Palm-based wireless ordering system for restaurants
- Requirements, UI design and architecture
- Peer-to-peer communication architecture
- Prototype completed (.) We decided not to proceed with production.
Speak@Ease Messager - Speech-enabled Unifed Messaging
- Initial architecture draft
- Advanced natural-language dialogue designs using pronoun reference
- Integration with Microsoft Exchange 2000 using CDO objects through XML
- Other components : web back-end (), upgrades, inter-process messaging
1999 - 2000 |
Software Architect |
Logiciels Panteor inc. |
Translateor - Automatic translation system for English and French (project)
- Developed a robust meta-data architecture using XML for storage of linguistic information in an object-oriented database
- Participated in the development of a OO model for abstract semantic representation of text (, )
1997 - 1998 |
Advisor |
Centre de Recherche Informatique de Montréal (CRIM) |
Giza - OO architecture for polymorphic representation of structured data using contextual, dynamic attributes
- Conception and programming () of a new Design Pattern
- Approach was published at OOPSLA
1997 |
Senior Research Agent |
CRIM, for Bunyip |
Radio Insite - Dynamic HTML page generator for logs of CBC radio shows.
- Programming () of a log file parser that adjusts to a meta-data file and stores the results in HTML templates
1996 - 1997 |
Senior Research Agent |
CRIM |
UKAT - Web interface to a knowledge assessment tool.
- Architecture and programming () of a HTML template-based system
1995 - 1996 |
Senior Research Agent |
CRIM |
Francoroute - Prototype of a classification system for francophone Internet sites
- Team coordination, architecture and programming (, , ) of one of the first hybrid web search engines (using both keyword search and category classification), based on the Cheops approach
- Programming ( and ) of a web spider that explored French sites
- Programming () of a web-based site classification tool based on Dewey
1995 - 1996 |
Senior Research Agent |
CRIM |
CHEOPS - A navigation tool for hierarchical data
- Programming () of a unique data navigation tool based on visual elision
Lys - Multilingual mail agent
- Architecture and programming (, ) of a Unicode-based mail agent able to handle Arabic, Chinese, Japanese and Korean scripts using font composition
Le Correcteur 101 v.2.0- French grammar analyzer and checker
- Team coordination between linguists and programmers, research in computational linguistics, algorithms, programming in
- Awards won by the software (version 1.0 or 2.0):
- 1993, Prix Octas, from the Fédération d'Informatique du Québec
- 1994, Prix du Français en Informatique, from GIRICO
1991 - 1992 |
Programmer |
Les Logiciels Machina Sapiens inc. |
Le Correcteur 101 v1.0b - French grammar analyzer and checker
- First grammar checker of the industry to do global parsing of French syntax
- Design and programming () of the user interface on a platform-independent framework
1988 |
Research Assistant |
Montreal General Hospital |
Real-time neurobiology data acquisition system
- Reengineering (Vector Basic) of a graph display system
1986 |
Programmer |
O.C.C. Informatique, for National Bank |
FéER estimate software
- Programming () of an iterative analysis method
- Graphical user interface on a text-based display
1984 |
Programmer |
La société Québit logiciel inc. |
Méga-Texte - word processor for primary school students
- Design and programming () of a graphic-display based word processor on the Apple II+
1982 |
Programmer |
Société Logidisque enr. |
Têtards - Labyrinth-type two-player video game
- Programming ( on Apple II+)
- First video game designed in Québec
Education and awards
2002 - 2006 |
M.Sc in Systems Science |
Ottawa University |
- First recipient of a departmental bursary in 2003
- Thesis: Construction des normes, entre stratégie et communication: un cas de négociation collective. (Construction of norms, between strategy and communication: a case of collective negociation.)
1989 - 1990 |
Qualifying year in Mathematics |
McGill University |
- Scholarship from F.C.A.R. for a Masters' degree
1986 - 1989 |
B.Sc. Joint faculty program in Biology and Mathematics |
McGill University |
1983 |
Québec Mathematics Competition |
Québec Mathematics Association |
- Mention for the secondary V competition
Teaching experience
2003 |
Teaching Assistant |
University of Ottawa |
Economic Systems Design (SYS5140)
Designed and presented an introduction to agent-based programming
2002 |
Teaching Assistant |
University of Ottawa |
Concepts des langages de programmation (CSI3525)
Participated to the design of laboratory demonstration and problems
1994 - 1995 |
Instructor |
CRIM |
Séminaire d'Introduction à l'hypertexte
1989 |
Teaching Assistant |
McGill University |
Differential calculus (189-121A)
1984 |
Instructor |
Collège Mont-Saint-Louis |
Initiation to Computer Science - evening course
Publications and workshops
Report: Harnessing the Power of Collective Intelligence: Communities & Technologies, Collective, final report of the Catalyst project, November 2015
Report: Project Testbed: Argument Mapping & Deliberation Analytics, Marc-Antoine Parent, Anna de Liddo, Mark Klein, Thomas Ullman, as part of the Catalyst project, November 2015
Poster: Objects as results from graph queries using an ORM and generated semantic-relational binding, presented at the 13th International Semantic Web Conference, October 19th-23rd 2014, Riva del Garda, Italy; proceedings by Springer, Switzerland, 2014. Poster.
Report: Architecture and Cross-Platform Interoperability Specification, Marc-Antoine Parent and Benoit Grégoire, as part of the Catalyst project, Mars 2014
Presentation: Outside the box : Tinderbox XML Tools, at the Boston Tinderbox Weekend, 2004
Tech Note: On-the-fly contextual adaptation with the RoleAdapter Pattern, in Proceedings of OOPSLA'98 (Vancouver BC, 1998), ACM Press
Demonstration : Applications of the RoleAdapter Pattern: Representing class inheritance and aggregation hierarchies with the Giza framework, in Proceedings of OOPSLA'98 (Vancouver BC, 1998), ACM Press
Report: état des technologies de stockage d'objets en Java, CRIM, 1997
Presentation: GIZA :
A framework for visualization, by Marc-Antoine Parent and Louis Vroomen, in the workshop:
Graphical User Interfaces for Hierarchies
(Human-Computer Interaction Laboratory, University Of Maryland, 1997)
Article: Cheops: A Compact Explorer For Complex Hierarchies, by Luc Beaudoin, Marc-Antoine Parent and Louis Vroomen, in Visualization '96, San Francisco, USA, Oct 1996, pp. 87-92
Article: Font Selection and Font Composition for Unicode, by Martin J. Dürst and Marc-Antoine Parent, in Proceedings of the Seventh Unicode Conference, San Jose, CA, 1995
Languages
Fluent in spoken and written French and English
Basic level of reading and speaking Italian and Portuguese
Interests
My path can be described as a gradual shift of interest from individual to collective cognition processes. After studies in neurobiology and mathematical logic, and after a career in computational linguistics and data visualization, I am now focusing on how software communication tools can shape and enhance group processes, so diverse groups can achieve a common purpose.
To support this, I have experimented with a diverse set of software tools: content management systems, wikis, blogs, real-time collaborative editors, social software... I am also working on new methods that interweave text with more formal representations of human thought. But beyond tools, during my studies in systems science, I have analysed how issues of trust, face and justification affect communication, and how specific communication processes can be designed in a way that helps alleviate those issues.