The open source S.IM.PL (Support for Information Mapping in Programming Languages) initiative develops new declarative mark-up languages integrated with extensions to imperative programming languages (e.g., Java, Objective-C, ...), and communications frameworks, to assist developers traversing the divide between information and software.
In this web site, you will find source code, tutorials, and examples.
S.IM.PL Serialization is a cross-platform framework for multi-format object de/serialization and binding.
A major research contribution is the
translation scope, a platform-independent encapsulation of a set of types (classes and fields), and their bindings to tags during serialization.
Programmers use an annotation language to make fine-grained declarations, embedded in their own object source code, of which fields are serialized, and how.
An extensible scalar type system controls de/serialization of scalar fields.
De/serialization of collections and maps, regular and polymorphic fields, and object graphs are all gracefully supported.
provides fine-grained control for annotating object declarations to define the semantics of serialization through meta-language embedded directly in source code.
Objects can be de/serialized as XML, JSON, BibTex (limited structure), and binary TLV.
Hints enable defining the representation of format-specific details, such as whether scalars are serialized as attributes or leaf elements.
Java and C# are supported as object definition languages, with Objective C supported as a target language.
Objects annotated in an object definition language can be cross-compiled, with de/serialization capabilities, to any of the other languages.
Support is planned for C++ and Python.
Object-Oriented
Distributed Semantic Services (OODSS) builds on S.IM.PL
serialization to develop an object-oriented semantic communications
framework for message passing and remote method invocation. The goal is
to simplify practical distributed computing for software developers.
Again, semantics are represented with metalanguage and translation
scopes, with Java supported for servers and clients, and Objective-C for
clients. In comparison with approaches such as SOAP, consistent strong
typing of data structures and fields reduces the burden on programmers.
Meta-Metadata is a platform-independent
language for specifying strongly typed metadata data structures, extraction and instantiation of metadata types from particular information sources,
operations on metadata types, and presentation rules.
Meta-metadata builds on S.IM.PL serialization, using its descriptions of the structures of classes and fields to connect data structures with meta-meta-information,
enabling development of reusable code for processing of information from templated web site sources by curators writing scripting language.
publications
Qu, Y., Kerne, A., Webb, A.M., Herstein, A.
Interoperable Metadata Semantics with Meta-Metadata: A Use Case Integrating Search Engines.
Proc ACM DocEng 2011, Mountain View, CA, USA, Sept. 20-22, 2011, 171-174 [
DOI=10.1145/2034691.2034729].
Kerne, A., Qu, Y., Webb, A.M., Damaraju, S., Lupfer, N., Mathur, A.
Meta-Metadata: A Metadata Semantics Language for Collection Representation Applications,
Proc ACM Conference on Information and Knowledge Management,
Toronto, Ontario, Canada, October 26-30 2010.
Kerne, A., Toups, Z.O., Dworaczyk, B., Khandelwal, M.
A Concise XML Binding Framework Facilitates Practical Object-Oriented Document Engineering
,
Proceedings of ACM Symposium on Document Engineering,
Sao Paulo, Brazil, 16-19 September 2008.
Kerne, A., Damaraju, S., Kumar, B., and Webb, A.
Meta-Metadata: A Semantic Architecture for Multimedia Metadata Definition, Extraction, and Presentation,
Poster and Demo Proceedings of the 3rd International Conference on Semantic and Digital Media Technologies,
Koblenz, Germany, 3-5 December 2008.
Kerne, A., Toups, Z.O., Dworaczyk, B., Khandelwal, K.,
Expressive, Efficient, Embedded, and Component-based
XML-Java Data Binding Framework,
Interface Ecology Lab Technical Report 08-06