User Tools

Site Tools


extend_api_using_a_metaobject_protocol

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

([[http://www.omgwiki.org/API4KB/doku.php?id=api4kb_usecases|Link back to API4KB Use Cases Page]]) ===== Extend API using a metaobject protocol (Roger) ===== Since the scope of API4KB will span many levels and types of expressibility within a knowledge base, including operations and services specific to each, provide users with the ability to extend any initial %%API%% using a metaobject protocol. Metaobjects that define the basic elements of an %%API%%, and mappings of these services to their underlying implementations, should themselves be available for access and extension through the most basic layers of API4KB. For example, a small core definition of essential API4KB operations could be supplied by a REST-compatible linked data interface, such as the [[http://www.w3.org/Submission/ldbp/|Linked Data Basic Profile]], thereby satisfying RFP requirement 6.1.2, "The API4KB standard will provide a standard way to access and query knowledge bases in tools [for] building the Semantic Web." A definition of metaobjects to add new operations and services to this basic %%API%% would be published as Basic Profile Resources, also defined in the core of API4KB. Additional %%API%%'s and services defined by API4KB itself, along with those of API4KB users for their own specific needs, could then be established by operations against this basic extensibility %%API%%. All extended layers of %%API%% services, both those established by API4KB itself and by user extension, would be defined unambiguously within the KB by means of extensibility operations performed using the metaobject protocol. Background: "The essence of a Metaobject Protocol is simple: every aspect of a program's mapping down onto the lower level substrate (i.e. its compilation and runtime support) is controlled by some object or set of objects following a well-defined protocol." [[http://c2.com/cgi/wiki?MetaObjectProtocol|(Wiki Wiki Web)]]. See also:[[http://en.wikipedia.org/wiki/Metaobject|Metaobject article in Wikipedia]] and [[http://en.wikipedia.org/wiki/The_Art_of_the_Metaobject_Protocol|The Art of the Metaobject Protocol]] ([[http://www.amazon.com/Art-Metaobject-Protocol-Gregor-Kiczales/dp/0262610744#_|Amazon]]). Please note that operational use of metaobjects to provide comprehensive access to the working elements of a more basic level, and to enable this access not only for further extension but to every aspect of interpretation and implementation, is considerably broader than the use of "meta" layers to represent static relationships within an information architecture, such as those of the [[http://www.omg.org/spec/MOF/|Meta Object Facility (MOF)]] of %%OMG%%.

extend_api_using_a_metaobject_protocol.1358180972.txt.gz · Last modified: 2013/01/14 11:29 by rburkhart