# A Comprehensive Survey on Knowledge-Defined Networking
## 3 Knowledge Plane
### Knowledge Distribution and Management Plane
#### 3.5.2 Knowledge and Rule Exchange and Management Protocols/Languages
SQWRL also supports complex queries that combine multiple conditions using logical operators such as AND and OR. However, SQWRL is designed specifically for querying OWL ontologies and does not provide any opportunity to modify ontologies [240];
* Knowledge Graph Query Language (KGQL) is a query language specifically designed for querying knowledge graphs that allows users to write complex queries over knowledge graphs using a simple and instinctive syntax. KGQL supports pattern matching, filtering, sorting, aggregation, path traversal, etc. KGQL also does not support knowledge modification; thus, it is a read-only query language [241];
* Knowledge Query and Manipulation Language (KQML) is a message-passing protocol that allows agents to exchange knowledge and perform tasks in a distributed AI system, regardless of their underlying implementation. In KQML, a simple text-based syntax is used to represent different message types such as queries, assertions, and requests for action that can be exchanged using KQML. KQML is supposed to exchange knowledge and does not explicitly support knowledge modification [242];
* GraphQL is another language that can be used to not only retrieve knowledge from knowledge graphs, but also modify knowledge using insert, update, and delete operations. Similar to other query languages used to retrieve knowledge, GraphQL also allows the agents/developer to specify the knowledge in the form of a knowledge graph that needs to be retrieved, allowing fast and efficient data retrieval [243]. The above-given protocols/languages can be effectively utilized along with a flow prioritization and scheduling approach to exchange or retrieve knowledge and rules. Furthermore, knowledge can be managed efficiently using protocols that allow knowledge modification. For instance, old knowledge can be deleted to utilize limited storage in cases where such knowledge is not required for current decision-making. Furthermore, existing knowledge can be modified based on new policies, etc., with the aid of protocols such as SPARQL, GraphQL, etc. Table 3 summarizes existing languages, models, and protocols for data, knowledge, and rules representation, modification, evaluation, and exchange. \begin{table}
\begin{tabular}{l l l l} \hline \hline
**Category** & **Language/Protocol/Model** & **Purpose** & **Developer** \\ \hline \multirow{6}{*}{Knowledge representation} & Resource description framework (RDF) [64] & Represent knowledge as (subject, predicate, object) triplets & W3C \\ \cline{2-3}  & RDF schema (RDFS) [203] & Represent knowledge using a knowledge graph having entities and relationships & W3C \\ \cline{2-3}  & Web Ontology Language (OWL) [204] & Represent ontology using classes, properties, individuals, restrictions, annotations & W3C \\ \cline{2-3}  & Ontology Inference Layer (OIL) [205] & Represent ontology using classes, properties, individuals, restrictions, inference rules & Dieter Fensel et al. \\ \cline{2-3}  & Knowledge Interchange Format (KIF) [207] & Represent knowledge using complex logical relationship between objects and concepts & Genesereth et al. \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Summary of data, knowledge, and rule representation, modification, and exchanging languages, models, and protocols.