User Tools

Site Tools


extend_api_using_a_metaobject_protocol

====== Differences ====== This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
extend_api_using_a_metaobject_protocol [2013/01/14 11:29]
rburkhart
extend_api_using_a_metaobject_protocol [2013/01/27 13:26]
rburkhart
Line 3: Line 3:
 ===== Extend API using a metaobject protocol (Roger) ===== ===== 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 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.+Provide users with the ability to extend any initial %%API%% using a metaobject protocol. ​Since the scope of API4KB will span many levels and types of expressibility within a knowledge base, including operations and services specific to each, customized ​%%API%%'s could be established by operations against other %%API%%'​s,​ until reduced to equivalent operations against ​basic, core %%API%%. Metaobjects ​to define the basic elements of an %%API%%, and to map these services to their definitions in terms of operations on existing %%API%%'​s, should themselves be available for access and manipulation ​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.+For example, a small core of essential API4KB operations could be supplied by a REST-compatible linked data interface, 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%% ​could then be published as additional linked data resources. Additional %%API%%'​s and services could be established by operations against this extensibility %%API%%, either by API4KB itself or by API4KB users for their own specific needs. All extended layers of %%API%% services would be defined by  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%%. 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.txt ยท Last modified: 2013/01/27 14:17 by rburkhart