User Tools

Site Tools


api4kb_usecases

This is an old revision of the document!


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

====== API4KB Use Cases ====== This page contains a list of use cases to be supported by the API4KB [[start|Link back to API4KB Main Page]] ===== Policy-Based Information Exchange ===== The following use case shows what is necessary to maintain security and privacy when someone (or something) requests access to information: {{UseCase.policy-based_information_exchange_1.25x.png}} ===== Elisa Placeholder ===== The following use case shows somthing that Elisa has in mind: {{UseCase.Elisa.png}} ===== LegalRuleML (Tara) ===== Use Case of a Generic Criminal Legal System with input from (http://en.wikipedia.org/wiki/Italian_Criminal_Procedure#Parties) Actors Parties may have agents acting on their behalf, and these agents may be restricted in their access to the KB to some subset of the authority of the Party. - Judges - may be different depending on stage of proceedings - suspect - defendant - prosecutor - police - injured party - civilly-liable party (to pay damages and/or fines) - counsel (lawyers) for suspect/defendant - witnesses - experts - courts - jury (not in Italy) - legislature Actions The particular actions are roughly categorized based on CRUD * Create (POST) * Read (GET) * Update (PUT/PATCH) * Delete (DELETE) Note that the difference between Create and Update is a function of the modularity of the KB. In a highly modular architecture, a new table/knowledgebase-module may be created when a law is passed, when an investigation is opened, etc.. In a less modular architecture, these actions may be Updates rather than Creates. - (*CRU) pass, modify and annul *laws* - Legislature - (*R) query (including semantic query) to legal KB for details of the legal code - General Public - (*CRU) maintain records of investigations - Prosecutor, Judges, Defendant, Counsel, Police - (CRU) initiate proceedings - Prosecutor - (CRU) call a hearing - Judge - (*CRU) file requests (authorization to conduct investigations, such as wire-tapping) - Prosecutor - (*CRU) issue an order (e.g. authorizing investigations), *with explanation* - Judge - (CRU) appeal an order - Prosecutor, Counsel - (RU) drop charges - Prosecutor - (CRU) proceed to trial - Judge, Prosecutor - (*CRU) file a brief - Counsel - (CRU) summon witness or expert - Prosecutor, Counsel - (*CRU) provide testimony or expert judgement - Witness, Expert, Defendant, Injured Party - (*RU) convict/acquit, *with explanation* - Judge, Jury - (*CRU) issue a sentence - Judge - (CRU) appeal a conviction - Prosecutor, Counsel - (*RU) reverse, amend or quash a decision, *with explanation* - Judge - (UD) delete/expunge records - Court - (CRU) manage records on payment of penalties, imprisonment, etc - Court Those items with * are the services that go beyond the capability of an ordinary database, requiring encoding of natural language texts into a knowledge representation language and performing specialized actions, such as parsing or (semantic) querying, on that encoding. ===== Extend basic API layers 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 extend this access not only to its further extension but to every aspect of its 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%%.

api4kb_usecases.1354986765.txt.gz · Last modified: 2012/12/08 12:12 by rburkhart