User Tools

Site Tools


api4kb_ontologies

====== 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
api4kb_ontologies [2015/02/21 20:43]
greentara [Descriptions of Mutables]
api4kb_ontologies [2015/03/10 11:10] (current)
apaschke [API4KB Architectural Elements]
Line 37: Line 37:
 Entailment Regime: see http://​www.w3.org/​TR/​sparql11-entailment/#​entRegimeParts Entailment Regime: see http://​www.w3.org/​TR/​sparql11-entailment/#​entRegimeParts
  
-===== Description Schemas ​=====+==== API4KB Architectural Elements ​==== 
 + 
 +The API4KB architectural elements are categorized according to the following competency questions. 
 + 
 +  * What are the entities that are communicating in the distributed API4KB system? => **Communicating Entities** 
 +  * How do they communicate,​ or, more specifically,​ what communication paradigm is used to communicate between API4KB entities? => **Communication Paradigms** 
 +  * What (potentially changing) roles and responsibilities do they have in the overall API4KB architecture?​ => **Communication Roles** 
 +  * What is the mapping of the API4KB elements into a physical distributed infrastructure?​ => **Communication Placement** 
 + 
 +=== Communicating Entities === 
 + 
 +  * **Node**: In primitive environments such as sensor networks, operating systems does not provide any abstractions,​ therefore nodes communicate 
 +  * **Process**:​ In most environments processes are supplemented by threads, so threads are more the endpoints of communications 
 +  * **Object**: Computation consists of a number of interacting distributed objects representing units of decomposition for the problem domain. Objects are accessed via interfaces 
 +  * **Component**:​ Resemble objects in that they offer problem-oriented abstractions,​ also accessed via interfaces. They specify not only their interfaces but also the assumptions they make in terms of other components/​interfaces that must be present for a component to fulfill its function. 
 +  * **Service and Agent**: Software application which is identified via URI and can interact with other software agents (typically using a higher-level coordination and negotation protocol). 
 + 
 +=== Communication Paradigms === 
 + 
 +See communication paradigms described in [[architecture_styles|architecture styles]]. 
 + 
 +  * **Strongly Coupled Communication**:​ Low-level, direct API access and inter-process communication in distributed systems including ad-hoc network programming with message parsing-primitives 
 +  * **Loosely Coupled Communication**:​ Loosely coupled remote invocation in a two-way exchange via an **interface** (RPC/​RMI/​Component/​Agent) between communicating entities. 
 +  * **Decoupled Communication**:​ Indirect communication via an **intermediary**  
 + 
 +=== Roles === 
 + 
 +For instance, client-server,​ peer-to-peer,​ agent architecture styles. 
 + 
 +  * **Client**: ​ Client knows server* *(after discovery) and requests a particular knowledge resource service 
 +  * **Server**: Server is the central entity and provider of services and knowledge resources 
 +  * **Peer**: Peer is client/​requester and provider (**Servant**) at the same time. Knowledge resources are shared between peers and can be accessed from other peers. ​  
 +  * **Agent**: an abstraction from the client-server or peer-to-peer architecture style into **orchestrated** or **choreography** style agent architectures. 
 + 
 +=== Placement === 
 + 
 +  * **Partitioning**:​ API4KB services provided by multiple servers by partitioning a set of objects in which the service is based and distribute them between multiple-services 
 +  * **Replication**:​ Server maintain replicated API4KB server copies of them on several hosts (horizontal replication) or distributed API4KB functions into distributed peers 
 +  * **Caching and Proxying**: A **Cache** stores recently used knowledge resources. Caches might be co-located with each client or located in a **Proxy**. Proxy provides a surrogate or placeholder for a API4KB knowledge object to control access to it. Applications of proxies are, e.g., virtual proxy (delaying the creation and initialization of expensive objects until needed, where the objects are created on demand, e.g. via factory design pattern), remote proxy (providing a local representation for an object that is in a different address space), protection proxies (where a proxy controls access to real subject methods, by giving access to some objects while denying access to others), smart reference proxy (e.g. providing a sophisticated access to certain objects). 
 +  * **Mobile**: Mobile (executable) code that is downloaded to a client or mobile components/​agents,​ which are running programs (both code and data/​resources + state) that travel from one computer / environment to another 
 +===== Descriptions ​=====
 A description is a particular kind of Knowledge Resource that provides essential characteristics of an API4KB entity. A description is a particular kind of Knowledge Resource that provides essential characteristics of an API4KB entity.
  
-There are several key kinds of descriptions: +RDF is typically sufficient to express ​descriptions. 
-  - Descriptions of Knowledge Resources + 
-  - Descriptions of Knowledge Platform +The API4KB ontologies define a vocabulary in the API4KB namespace for use in descriptions. 
-  - Descriptions of Knowledge Platform Managers+ 
 +Foreign namespaces may also be used within descriptions.
  
-The (draftschemas for these descriptions are shown below in matrix form.+Descriptions must be consistent with the metamodel ​(ontology), which provides restrictions on the domain, range and cardinality of properties ​in the API4KB namespace.
  
 +Descriptions adopt the semantics of RDF, especially the open-world assumption. This means that "​violation"​ of a minimum cardinality restrictions in a description does not correspond to an inconsistency,​ but to either a lack of knowledge or a query for a partial description.
 ==== Descriptions of Knowledge Resources ==== ==== Descriptions of Knowledge Resources ====
-Key      ^ Value           ^+These codes are used in the following tables. 
 +Code      ^ Value           ^
 | Y        | Yes (exactly 1) | | Y        | Yes (exactly 1) |
 | Y+        | Yes (1 or more) | | Y+        | Yes (1 or more) |
Line 56: Line 99:
 | I[+?​*] ​       | Inherited and Indirectly Available| | I[+?​*] ​       | Inherited and Indirectly Available|
  
 +These CURIE prefixes are used in the following tables.
 +^ Abbreviation ​     ^ Expansion ​          ^
 +| :          | http: API4KB namespace here |
 +| ks:        | :​KnowledgeSource/​ |
 +| kr:        | :​KnowledgeResource/​ |
 +| ka:        | kr:Asset/ |
 +| ke:        | kr:​Expression/​|
 +| km:        | kr:​Manifestation/​|
 +| ki:        | kr:Item/ |
 +| lang:        | :Language/ |
 +| map:        | :Mapping/ |
 +| xsd:        | http: XSD datatype namespace here |
  
  
-^ Property ​     Asset       Expression ​         ​Manifestation ​         ​Encoding ​         ​IO          ^ Item          ​+^ Property ​           Range         ka: ke: km: ki: 
-| hasIdentifier ​ Y?             | Y?                   ​| Y?                      | Y?                 ​| Y?           | Y?             | +:hasIdentifier ​     :​Identifier ​  | Y?  | Y?  | Y?  | Y?  
-| type       ​|KnowledgeResource|KnowledgeResource|KnowledgeResource|KnowledgeResource|KnowledgeResource|KnowledgeResource+:level              ks:​Level ​     ​Y   Y   Y   Y   
-| level       ​Asset          ​Expression ​        Manifestation ​         ​Encoding ​         ​IO          | Item          ​+:usesPerformative[1]| ​:​Operation ​   ​I | Y*  I I 
-| usesPerformative[1]| ​Y*             Y                  ​| Y*                      Y                ​Y          | Y*             +:hasLocator ​        ​:​Address ​     ​| Y?  | Y?  | Y?  | Y   ​
-| hasLocator ​    ​Y?             | Y?                   ​| Y?                   ​| Y?             ​| Y?           | Y             +:usesLanguage ​      | :​Language ​    | I*  ​| Y*  ​| I*  ​| I*  ​
-| usesLanguage ​   | I+             | Y+                   | I+                    ​| I+                 | I+           | I+             +:usesDialect ​       km:​Dialect ​   ​| N   ​| N   ​| Y*  ​| I*  ​
-| usesDialect ​    ​N             | N                   | Y+                     | I+                 | I+           | I+             | +:​usesConfiguration  ​|ki:​Configuration| N  | N   ​| N   ​| Y*  ​
-| usesFormat ​     ​| N             | N                   | N                      ​| Y+                 | I+           | I+             +:accordingTo ​       ​|lang:​Environment| Y  | N   ​| N   ​| N   ​
-usesStoreConfig ​N             | N                   ​| N                      | N                 ​| Y+           | I+             +:isBasic ​           |xsd:​boolean ​   ​| Y   ​| Y   ​| Y   ​| Y   ​
-| accordingTo ​(Environment| Y             ​| N                   ​| N                      | N                 | N           | N             +:hasMetadata ​       |kr:            ​| Y*  ​| Y*  ​| Y*  ​| Y*  ​
-| isBasic ​    ​Y             | Y                   ​| Y                      | Y                 ​| Y           | Y             | +:​hasDescription[3]  |kr:            ​| Y*  ​| Y*  ​| Y*  ​| Y*  ​|
-| usesIOMode ​     | N             | N                   | N                      | N                 | Y           | N+
-| hasMetadata ​   Y?             | Y?                   | Y?                      ​| Y?                 | Y?           | Y?+
-selfDescription[3]    Y?             | Y?                   | Y?                      ​| Y?                 | Y?           | Y?|+
  
-[1] Possible ​Performative ​values are AssertionRetraction, Query, Result, ... +[1] Performative ​is an operation that is expressed directly in the knowledge resource. Languages with this capability include PrologRuleML and DOLA knowledge resource containing performatives is an "​executable knowledge resource"​.
  
-[3] A self-description (of a knowledge resource) ​is a descripton ​embedded in the knowledge resource it is describingIt naturally inherits a number ​of properties from the knowledge resource ​being describedincluding level. Other properties are inherited unless overriden; e.g. language, dialect, format, storeConfig,​ IOMode, Metadata.+[3] The "​hasDescription"​ property ​is a means to embedded ​information about the description ​in the description itselfNote that the subject ​of the ":​hasDescription"​ property is the knowledge resource ​that the description is aboutas named by the ":​hasIdentifier"​ property.
 ==== Descriptions of Knowledge Resources Property Values ==== ==== Descriptions of Knowledge Resources Property Values ====
 ^ Property ​     ^ Language ​      ^ Dialect ​         ^ Format ​               ^ StoreConfig ​       ^ Asset Environment ​   ^ Type    ^Level ​   ^Performative ​   ^Metadata[2] ​   ^ ^ Property ​     ^ Language ​      ^ Dialect ​         ^ Format ​               ^ StoreConfig ​       ^ Asset Environment ​   ^ Type    ^Level ​   ^Performative ​   ^Metadata[2] ​   ^
Line 89: Line 141:
 [2] hasMetadata is itself a KnowledgeResource,​ and so extends the schema of some level of Knowledge Resource. [2] hasMetadata is itself a KnowledgeResource,​ and so extends the schema of some level of Knowledge Resource.
  
-==== Descriptions of Applications ​====+==== Descriptions of Communicating Entities ​====
  
-^ Property ​   ^  ​Proxy                ​KP Manager ​ ​^ ​KP    ^ Component ^ +^ Property ​     ^ Range        ​^  ​Node     Process ​ ​^ ​Object ​   ^ Component ​^ Service ^ Agent  ​
-| hasIdentifier ​ | Y?                   ​| Y?         | Y?    | Y         ​+| hasIdentifier ​| :​Identifier ​ | Y?        | Y?       | Y         | Y         | Y?      | Y?     
-| hasLocator ​    | Y?                   | Y?         ​| Y?    | N         +| hasLocator ​   | :​Address ​    | Y         ​| Y?       ​| Y?        | N         | Y       ​| Y?     ​
-| interactsWith (KP manager)  ​| Y*    | N          ​| Y?    | N         +| interactsWith ​| :​CommmunicatingEntity| Y?| Y+       | Y?        ​| Y       ​| ​Y?      ​| Y    | 
-| interactsWith ​(Proxy) ​      | Y*    ​| Y*         | N     | N         | +| fillsRole ​    ​| ​:Role        ​| Y       ​| ​Y+       | Y       | Y       ​| ​Y+      ​| Y+     |
-| manages (KP)                 | I*    ​| Y*         | N     | N         | +
-| isSupportedBy (Component) ​ | I*    | I*         | Y*    | N         | +
-| isManagedBy (KPM)        ​| ​N     | N          ​| Y     | N         +
-| fillsRole ​ | I*                   | Y*         | N     | N         | +
-| delegates (PublicOperation) ​   ​| Y*  | N          | N     | N        | +
-| implements (PublicOperation) ​  | I*  ​| Y*         | N     | N        +
-| delegates (InternalOperation) ​ | I*  | I*         | Y*    | N        | +
-| implements (InternalOperation) | I*  | I*         | I*    ​| Y*       |+
  
  
-==== Descriptions of Applications ​Property Values ====+==== Descriptions of Communicating Entities ​Property Values ====
  
 ^ Property ​             ^ Role           ^ Proficiency ​         ^ Operation ​     ^ Event ^ ^ Property ​             ^ Role           ^ Proficiency ​         ^ Operation ​     ^ Event ^
Line 113: Line 157:
 | requiresProficiency ​ | Y*             | N                    | N              | N  | | requiresProficiency ​ | Y*             | N                    | N              | N  |
 | exposesOperation ​    | I*             | Y+                   | N              | N  | | exposesOperation ​    | I*             | Y+                   | N              | N  |
-| isPublic ​            | N              | N                    | Y              | I  | 
 | isComposedOf (operation)| N          | N                    | Y*             | N  | | isComposedOf (operation)| N          | N                    | Y*             | N  |
 | hasEvent ​            | N              | N                    | Y?             | N  | | hasEvent ​            | N              | N                    | Y?             | N  |
Line 637: Line 680:
   * The W3C Provenance Ontology (prov-o) - http://​www.w3.org/​TR/​prov-o/​   * The W3C Provenance Ontology (prov-o) - http://​www.w3.org/​TR/​prov-o/​
   * RuleML myng Page - http://​ruleml.org/​1.0/​myng/​   * RuleML myng Page - http://​ruleml.org/​1.0/​myng/​
 +  * Reaction RuleML Message format - http://​wiki.ruleml.org/​index.php/​Glossary_of_Reaction_RuleML_1.0#​.3CMessage.3E
   * The Specification Metadata Ontology from the OMG - http://​www.omg.org/​techprocess/​ab/​SpecificationMetadata.rdf   * The Specification Metadata Ontology from the OMG - http://​www.omg.org/​techprocess/​ab/​SpecificationMetadata.rdf
   * JSR-000094 Java(TM) Rule Engine API 1.0a Final Release ​ http://​download.oracle.com/​otndocs/​jcp/​jreng-1_0a-fr-spec-api-oth-JSpec/​   * JSR-000094 Java(TM) Rule Engine API 1.0a Final Release ​ http://​download.oracle.com/​otndocs/​jcp/​jreng-1_0a-fr-spec-api-oth-JSpec/​
api4kb_ontologies.1424569412.txt.gz · Last modified: 2015/02/21 20:43 by greentara