ByNowLife: A Novel Framework for OWL and Bayesian Network Integration
Abstract
:1. Introduction
2. Related Work
3. Proposed Approach
3.1. The ByNowLife Framework
3.2. Translation Rules
- Node;
- Inter-node relationship (Link);
- Scale and Weight of a node, both independently and in relation to other nodes; and
- Factual values (Evidence) from one or several nodes based on facts.
- Concept or Class;
- Instance of a class (Individual);
- The attributes inherent in the class or individual (Properties) along with their Values; and
- Inter-class or inter-individual Relationships.
- Node → Individual. Nodes in BNs are transformed into Individuals in ontologies.
- Link → Relationship. Links in BNs are transformed into Relationships or Object Properties in ontologies.
- Scale → Property. Scales are values that a Node may have. Scales in BNs are transformed into Data Properties in ontologies.
- Weight → Value. Weights is the value of the influence of a Node on another Node. Weights in BNs are transformed into Values of Data Properties in ontologies.
- Evidence→ Value. Evidence in BNs is transformed into Values of Data Properties in ontologies.
3.3. Merging Algorithms
3.3.1. Merging BNs into Ontologies
- Check the ontology. If there are no properties as follows, then create the following:
- An object property named influences_;
- An object property named influenced_by_; and
- A data property named hasProbValueOf.
Create a rule or an axiom so that the object property influences_ is an inverse of the object property influenced_by_, and vice versa. - For each node of the BN, do the following:
- If the node is not yet in the ontology:
- a.1.
- Get the T ← template class selected from one of the nodes in the BN or a default class named Generic as a subclass of the owl class: Thing (http://www.w3.org/2002/07/owl#Thing). The selection rule of T as a template class is explained in the OntoGetFirstTemplateClass function.
- a.2.
- Create an individual with the same name as the node as an instance of class T;
- a.3.
- Create a data property named hasProbValueOf for the individual, and set its data property value equal to the node’s probability value.
- If the node already exists in the ontology but does not have a hasProbValueOf data property, then do the following:
- b.1.
- Create a data property named hasProbValueOf for the individual and set its data property value equal to the node’s probability value.
- For each node of the BN, do the following:
- Get the individual that matches the node.
- For each parent of the individual:
- b.1.
- If the parent does not have an object property named influences_, then add the influences_ object property from the parent to the individual.
- For each child of the individual:
- c.1.
- If the child does not have an object property named influenced_by_, then add the influenced_by_ object property from the child to the individual.
- Finish. The BN has been merged into the ontology.
Algorithm 1. MergeBN: Merging a Bayesian network into an Ontology | ||
Input OntoSourceFile: source file of the ontology BNContextName: context name of the BN BNFileName: file name of the BN Output OntoOutputFile: output file of the ontology that has been merged with the BN Description This algorithm merges a Bayesian network with all its beliefs info into an ontology | ||
1 | begin | |
2 | O ← OntoLoad(OntoSourceFile) | |
3 | BN ← BNLoad(BNSourceFile) | |
4 | ObjPropInfluences ← “influences_” + BNContextName | {Step 1} |
5 | ObjPropInfluencedBy ← “influenced_by_” + BNContextName | |
6 | DataPropHasProbValue ← “hasProbValueOf” + BNContextName | |
7 | if (ObjPropInfluences ∉ properties of O) then | |
8 | AssertInverseObjectProperties(ObjPropInfluences, ObjPropInfluencedBy) | |
9 | else if (ObjPropInfluencedBy ∉ properties of O) then | |
10 | AssertInverseObjectProperties(ObjPropInfluencedBy, ObjPropInfluences) | |
11 | end if | |
12 | if (DataPropHasProbValue ∉ properties of O) then | |
13 | CreateNewDataProperty(DataPropHasProbValue) | |
14 | Nodes ← GetAllNodes(BN) | {Step 2} |
15 | foreach (node in Nodes) do | |
16 | if (node ∉ individuals of O) then | |
17 | T ← OntoGetFirstTemplateClass(node) | {Step 2.a} |
18 | ind ← CreateNewClassInstance(T) | |
19 | prob ← GetNodeProbValue(node) | |
20 | AssertNewDataProperty(ind, DataPropHasProbValue, prob) | |
21 | else | |
22 | if (DataPropHasProbValue ∉ properties of O) then | {Step 2.b} |
23 | ind ← GetClassInstance(node) | |
24 | prob ← GetNodeProbValue(node) | |
25 | AssertNewDataProperty(ind, DataPropHasProbValue, prob) | |
26 | end if | |
27 | end if | |
28 | end foreach | |
29 | foreach (node in Nodes) do | {Step 3} |
30 | nod ← GetClassInstance(node) | {Step 3.a} |
31 | parents ← GetAllParents(node) | {Step 3.b} |
32 | foreach (par in parents) do | |
33 | ind ← GetClassInstance(par) | |
34 | if (ObjPropInfluences ∉ properties of ind) then | |
35 | AssertNewObjectProperty(ind, ObjPropInfluences, nod) | |
36 | end foreach | |
37 | children ← GetAllChildren(node) | {Step 3.c} |
38 | foreach (child in children) do | |
39 | ind ← GetClassInstance(child) | |
40 | if (ObjPropInfluencedBy ∉ properties of ind) then | |
41 | AssertNewObjectAndProperty(ind, ObjPropInfluencedBy, nod) | |
42 | end foreach | |
43 | end foreach | |
44 | OntoOutputFile ← SaveOntology() | {Step 4} |
45 | return OntoOutputFile | |
46 | end. |
3.3.2. Merging Ontologies into BNs
- Fixed Nodes: nodes in a BN that are marked for their unchanging probability values during the parameter learning process.
- Foreign SubNode: an individual in an ontology that has a parent in both the ontology and a BN, but does not itself exist in the BN.
- Sibling: A sibling of individual X means another individual in an ontology that has the same class as individual X.
- Get all nodes from the BN.
- Record each BN node in the Fixed Nodes list.
- Get all Foreign SubNodes from the ontology.
- For each F ← Foreign SubNode, do the following:
- Get S ← Siblings of F. If S is not empty, then follow the next steps:
- a.1.
- Get a T ← selected template node from one member of S. The selection rule of T as a template node is described in the BNGetFirstTemplateNode function.
- a.2.
- Clone T as a new node, N, of the BN. The duplication process brings parents and children information from T.
- a.3.
- Remove N along with its children from the Fixed Nodes list.
- a.4.
- Calculate the probability values of N by looking for the center of distribution (e.g., using a moving windows average algorithm) based on the probability value distribution of nodes in S.
- a.5.
- Generate sample data for nodes not listed in Fixed Nodes (e.g., using partial orders for the structure discovery algorithm).
- a.6.
- Perform the parameter learning process based on the sample data and the Fixed Nodes list (e.g., using expectation-maximization [EM] technique).
- Done.
Algorithm 2. MergeOnto: Merging an ontology into a Bayesian network | ||
Input OntoSourceFile: source file of the ontology BNSourceFile: source file of the BN BNDataFile: file name of the BN data sample BNResultFile: file name of the resulting BN after the merging process Output (none) Description This algorithm merges an ontology into a BN Var FixedNodes: Collection | ||
1 | Begin | |
2 | O ← OntoLoad(OntoSourceFile) | |
3 | BN ← BNLoad(BNSourceFile) | |
4 | Nodes ← GetAllNodes(BN) | {Step 1} |
5 | foreach (node in Nodes) do | {Step 2} |
6 | FixedNodes.Add(node) | |
7 | end foreach | |
8 | SubNodes ← GetAllForeignSubNodes(O, BN) | {Step 3} |
9 | foreach (node in SubNodes) do | {Step 4} |
10 | S ← OntoGetSiblings(node) | {Step 4.a} |
11 | if (S ≠ ∈) then | |
12 | T ← BNGetFirstTemplateNode(node, S) | {Step 4.a.1} |
13 | N ← BNCloneNode(T, node, ref FixedNodes) | |
14 | FixedNodes.Remove(node) | ... |
15 | SetCenterOfDistribution(node, S) | ... |
16 | GenSampleDataFile(node, BNDataFile) | |
17 | BNLearn(BNDataFile, FixedNodes, BNResultFile) | {Step 4.a.6} |
18 | end if | |
19 | end foreach | |
20 | end. |
4. Experiment
4.1. Case #1: Investment Problem
4.2. Case #2: Social Customer Relationship Management (CRM) in Higher Education
- PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
- PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
- PREFIX socialcrm: <http://localhost/latihan/ontologies/socialcrm#>
- SELECT ?UnitName ?BudgetAllocation ?CSFVar ?SuccessRate
- WHERE {?UnitName rdf:type socialcrm:Unit.
- ?CSFVar rdf:type socialcrm:CSF.
- ?UnitName socialcrm:Budget ?BudgetAllocation.
- ?UnitName socialcrm:handle ?CSFVar.
- ?CSFVar socialcrm:hasProbValueOfSuccessRate ?SuccessRate}
- ORDER BY DESC(?SuccessRate)
- LIMIT 3
5. Reasoning Proof
- N → I2
- V → R2
- ρ → P2
- O’ = O ⋃ BN with
- C’ = C1
- I’ = I1 ⋃ I2
- P’ = P1 ⋃ P2
- R’ = R1 ⋃ R2
- X’ = X1
5.1. The Two-Step (conventional) Reasoning Process
5.2. The Simultaneous Reasoning Process Used by ByNowLife
6. Discussion
7. Conclusion
- Ontology enrichment based on probability values from BNs, as shown in Case #1: the Investment Problem and Case #2: Social CRM in Higher Education;
- The adjustment of BN structure through structural and parameter learning, as shown in the two cases, which are discussed clearly in Section 4; and
- The ease of querying a knowledge base with probabilistic clauses in SPARQL format.
8. Future Work
Author Contributions
Funding
Acknowledgments
Conflicts of Interest
References
- Horrocks, I.; Patel-Schneider, P.F.; McGuinness, D.L.; Welty, C.A. OWL: A Description Logic Based Ontology Language for the Semantic Web. In The Description Logic Handbook: Theory, Implementation, and Applications; Baader, F., Calvanese, D., McGuinness, D., Nardi, D., Patel-Schneider, P.F., Eds.; Cambridge University Press: New York, NY, USA, 2007; pp. 1–35. [Google Scholar]
- Zhang, X.; Xiao, G.; Lin, Z.; Van Den Bussche, J. Inconsistency-Tolerant Reasoning with OWL DL. Int. J. Approx. Reason. 2014, 55, 557–584. [Google Scholar] [CrossRef]
- Setiawan, F.A.; Budiardjo, E.K.; Basaruddin, T.; Aminah, S. A Systematic Literature Review on Combining Ontology with Bayesian Network to Support Logical and Probabilistic Reasoning. In Proceedings of the 2017 International Conference on Software and e-Business—ICSEB 2017; ACM Press: New York, NY, USA, 2017; pp. 1–12. [Google Scholar]
- Apicella, A.; Corazza, A.; Isgrò, F.; Vettigli, G. Integration of Context Information through Probabilistic Ontological Knowledge into Image Classification. Information 2018, 9, 252. [Google Scholar] [CrossRef]
- Ziemba, P.; Wątróbski, J.; Jankowski, J.; Wolski, W. Construction and Restructuring of the Knowledge Repository of Website Evaluation Methods. In Lecture Notes in Business Information Processing; Springer International Publishing: Cham, Switzerland, 2016; Volume 243, pp. 29–52. ISBN 9783319305288. [Google Scholar]
- Haberlin, R.; da Costa, P.C.G.; Laskey, K.B. Probabilistic Ontology Architecture for a Terrorist Identification Decision Support System. In 19th International Command and Control Research and Technology Symposium, 16–19 June 2014; Command and Control Research Program (U.S.): Alexandria, VA, USA; pp. 1–30.
- OWL Web Ontology Language Guide. Available online: https://www.w3.org/TR/owl-guide/#OwlVarieties (accessed on 9 December 2018).
- Setiawan, F.A.; Wibowo, W.C.; Ginting, N.B. Handling Uncertainty in Ontology Construction Based on Bayesian Approaches: A Comparative Study. In 4th International Conference on Soft Computing, Intelligent Systems, and Information Technology; Intan, R., Ed.; Springer International Publishing: Cham, Switzerland, 2015; Volume 516, pp. 539–550. [Google Scholar]
- Zhang, S.; Sun, Y.; Peng, Y.; Wang, X. BayesOWL: A Prototype System for Uncertainty in Semantic Web. In Proceedings of the 2009 International Conference on Artificial Intelligence, 13–16 July; IC-AI: Las Vegas, NV, USA, 2009; pp. 678–684. [Google Scholar]
- Ding, Z.; Peng, Y. A Bayesian Approach to Uncertainty Modelling in OWL Ontology. In Proceedings of the International Conference on Advances in Intelligent Systems -Theory and Applications, Centre de Recherche Public Henri Tudor, Luxembourg-Kirchberg, Luxembourg, 15–18 November; Volume 10, pp. 1–9.
- Carvalho, R.N.; Costa, P.C.G.; Laskey, K.B.; Chang, K.C. PROGNOS: Predictive situational awareness with probabilistic ontologies. In Proceedings of the 2010 13th International Conference on Information Fusion, Edinburgh, UK, 26–29 July 2010; pp. 1–8. [Google Scholar]
- Boruah, A.; Hazarika, S.M. An MEBN Framework as a dynamic firewall’s knowledge flow architecture. In Proceedings of the International Conference on Signal Processing and Integrated Networks (SPIN), Noida, India, 20–21 February 2014; pp. 249–254. [Google Scholar]
- Laskey, K.B.; Costa, P.C.G.; Janssen, T. Probabilistic ontologies for Knowledge Fusion. Front. Artif. Intell. Appl. 2010, 213, 147–161. [Google Scholar] [CrossRef]
- Laskey, K.B. MEBN: A language for first-order Bayesian knowledge bases. Artif. Intell. 2008, 172, 140–178. [Google Scholar] [CrossRef] [Green Version]
- Santos, L.L.; Carvalho, R.N.; Ladeira, M.; Weigang, L. A new algorithm for Generating Situation-Specific Bayesian Networks Using Bayes-Ball Method. In CEUR Workshop Proceedings; CEUR-WS: Kobe, Japan, 2016; Volume 1665, pp. 36–48. [Google Scholar]
- Yang, Y. A Framework for Decision Support Systems Adapted to Uncertain Knowledge. Ph.D. Thesis, der Universität at Fridericiana zu Karlsruhe (TH), Karlsruhe, Germany, 2007. [Google Scholar]
- Mohammed, A.W.; Xu, Y.; Liu, M. Knowledge-oriented semantics modelling towards uncertainty reasoning. Springerplus 2016, 5, 1–27. [Google Scholar] [CrossRef] [PubMed]
- Fenz, S.; Tjoa, A.M.; Hudec, M. Ontology-based generation of bayesian networks. In Proceedings of the International Conference on Complex, Intelligent and Software Intensive Systems, CISIS 2009; IEEE: Fukuoka, Japan, 2009; pp. 712–717. [Google Scholar]
- Ishak, M.B.; Leray, P.; Amor, N. Ben Ontology-based generation of Object Oriented Bayesian Networks. In CEUR Workshop Proceedings; CEUR-WS: Barcelona, Spain, 2011; Volume 818, pp. 9–17. [Google Scholar]
- BayesFusion Appendices: XDSL File Format—XML Schema Definitions. Available online: https://dslpitt.org/genie/download/xdsl_schema.zip (accessed on 30 March 2017).
- ByNowLife—Bayesian Network and OWL Integration Framework. Available online: http://www.bynowlife.net (accessed on 9 December 2018).
- Pileggi, S.F. An Individual-Centric Probabilistic Extension for OWL: Modelling the Uncertainness. In Procedia—Procedia Computer Science; Elsevier Masson SAS: Issy les Moulineaux, France, 2015; Volume 51, pp. 1742–1751. [Google Scholar]
- BayesFusion Downloads for Academia. Available online: https://download.bayesfusion.com/files.html?category=Academia (accessed on 9 December 2018).
- Universitas Ibn Khaldun Bogor. Available online: http://www.uika-bogor.ac.id (accessed on 9 December 2018).
- Meyliana; Hidayanto, A.N.; Budiardjo, E.K. The Critical Success Factors for Customer Relationship Management Implementation: a Systematic Literature Review. Int. J. Bus. Inf. Syst. 2016, 23, 131–174. [Google Scholar] [CrossRef]
- Pearl, J. Markov Networks. Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Inference; Morgan Kaufmann Publishers Inc.: San Fransisco, CA, USA, 1988; pp. 96–104. ISBN 0934613737. [Google Scholar]
Function Name | Description |
---|---|
BNLoad(BNSourceFile) | Load the BNSourceFile into probabilistic knowledge base. |
GetAllNodes(BN) | Get all nodes contained in the probabilistic knowledge base BN. |
SaveOntology() | Save the resulting ontology in OWL/RDF file format. |
AssertInverseObjectProperties(ObjPropInfluences, ObjPropInfluencedBy) | Ensure that the ontology contains object properties with the names ObjPropInfluences and ObjPropInfluencedBy, then create a rule that ObjPropInfluences is an inverse of ObjPropInfluencedBy (and vice versa). |
CreateNewDataProperty(DataPropHasProbValue) | Create a new data property named DataPropHasProbValue in the ontology. |
CreateNewClassInstance(node) | Create a new individual named node. |
GetNodeProbValue(node) | Get the probability value of the node. |
AssertNewDataProperty(ind, DataPropHasProbValue, prob) | Ensure that the ontology contains a data property with the name DataPropHasProbValue and that the individual ind has the data property with the value prob. |
GetClassInstance(node) | Get a reference to the individual node. |
GetAllParents(node) | Get all nodes that are parents of the node. |
AssertNewObjectProperty(ind, ObjPropInfluences, nod) | Ensure that the Ontology contains an object property with the name ObjPropInfluences and that the individual ind has the object property in relation to individual nod. |
GetAllChildren(node) | Get all nodes that are children of the node. |
Step | Description | Complexity |
---|---|---|
1 | It consists of six linear steps that do not depend on the number of input nodes in the Bayesian network document. | 6 |
2 | It consists of 1 linear step plus 1 quadratic polynomial step for the OntoGetFirstTemplateClass algorithm, plus three linear steps (depending on the number of input nodes in the BN document). | |
3 |
| parent: children: 1 |
Function Name | Description | Complexity |
---|---|---|
GetAllForeignSubNodes(O, BN) | Get all foreign subnodes of ontology O against Bayesian network BN. | |
OntoGetSiblings(node) | Get all siblings of node. | |
BNGetFirstTemplateNode(node, S) | Get the first template node of the node from the siblings of the node (S). | |
SetCenterOfDistribution(node, S) | Set maximum likelihood estimation (MLE) values for each probability value of the node based on the siblings list S using moving average or sliding window algorithms. | |
GenSampleDataFile(node, BNDataFile) | Generate files named BNDataFile containing sample data with the suspect node node for each node in the BN that is not included in Fixed Nodes. | |
BNLearn(BNDataFile, FixedNodes, BNResultFile) | Perform parameter learning based on the generated sample data inside BNDataFile for each node in the BN that is not included in FixedNodes using EM algorithm. The result is stored in BNResultFile. |
Step | Description | Complexity |
---|---|---|
1 | It consists of 1 linear step, depending on the number of input nodes in the BN document. | |
2 | It consists of 1 linear step, depending on the number of input nodes in the BN document. | |
3 | GetAllForeignSubNodes | |
4 | OntoGetSiblings + BNGetFirstTemplateNode + BNCloneNode + FixedNodes.Remove + SetCenterOfDistribution + GenSampleDataFile + BNLearn |
Clause/Terms | Reasoning to | Result |
---|---|---|
stocks with prices ≥5000 | OWL | Mandiri, Telkomsel and Indocement Mandiri.Price=8500; Telkomsel.Price=7000; Indocement.Price = 9500 |
has the highest impact on profit of all | BN | Telkomsel Mandiri.PriceUp: 0.22 < Telkomsel.PriceUp: 0.43 |
Clause/Terms | Result |
---|---|
stocks with prices ≥5000 | Mandiri, Telkomsel and Indocement Mandiri.Price=8500; Telkomsel.Price=7000; Indocement.Price = 9500 |
has the highest impact on profit of all | Indocement Mandiri.hasProbValueOfProfit: 0.22 < Telkomsel.hasProbValueOfProfit: 0.43 < Indocement.hasProbValueOfProfit: 0.47 |
© 2019 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Setiawan, F.A.; Budiardjo, E.K.; Wibowo, W.C. ByNowLife: A Novel Framework for OWL and Bayesian Network Integration. Information 2019, 10, 95. https://doi.org/10.3390/info10030095
Setiawan FA, Budiardjo EK, Wibowo WC. ByNowLife: A Novel Framework for OWL and Bayesian Network Integration. Information. 2019; 10(3):95. https://doi.org/10.3390/info10030095
Chicago/Turabian StyleSetiawan, Foni A., Eko K. Budiardjo, and Wahyu C. Wibowo. 2019. "ByNowLife: A Novel Framework for OWL and Bayesian Network Integration" Information 10, no. 3: 95. https://doi.org/10.3390/info10030095
APA StyleSetiawan, F. A., Budiardjo, E. K., & Wibowo, W. C. (2019). ByNowLife: A Novel Framework for OWL and Bayesian Network Integration. Information, 10(3), 95. https://doi.org/10.3390/info10030095