JPoT: Just another Populator of TBoxes Jean-Rémi Bourguet Università degli Studi di Sassari (UNISS) Sassari, RAS – Italia Universidade Federal do Espírito Santo (UFES) Vitória, ES – Brasil Abstract ing tasks (Bourguet and Pulina, 2013). For exam- ple, this situation occurs in the community of con- The OWL 2’s populators are currently an ceptual modeling where it is a frequent practice important support to empirically evaluate to design model alternatives and perform an em- the reasoners and/or to escort the practi- pirical comparison between them (Batsakis et al., tioners by leveraging instantiations in their 2009). Finally, the reasoners engineers could de- knowledge bases. In this paper, after hav- vote more attention for ontology populations in ing evoked the closest approach describing the future. For example, during the first edi- their strengths and weakness, we present tion of the OWL Reasoner Evaluation (ORE) in Just another Populator of TB OX (JPoT). 2012, a method was proposed to generate a bench- This purely syntactic and domain indepen- mark and effectively evaluate semantic reasoners dent populator is based on a random pro- by generating realistic synthetic semantic data (Li cess of concept, role and data instantia- et al., 2012). According to the international aca- tions guaranteeing consistency of knowl- demic publisher IGI-global, the ontology popula- edge bases founded on TB OXes expressed tion is defined as the process of creating instances in ALCQ(D) . Moreover, we demonstrate (named A BOX) for an ontology usually involving that data instantiations can be tricky when the linking of various data sources to the elements the expectation of the modeler is to obtain of the ontology. However, this domain has been a sound knowledge base able to pass the constantly hackneyed like the task of recognizing equivalent of a Turing test. Finally, we the new elements that should go into a domain on- evaluate the performances of JPoT. tology (Bedini and Nguyen, 2007). In fact, an Ontology Populator can behave either as an Ex- 1 Introduction tracted Data Generator (EDG), or as a Synthetic The rise of the domain ontologies in OWL 2 Data Generator (SDG). The SDGs can be split in compelled more and more practitioners to make two sets: i-the domain dependent SDGs i.e. those their data available (Shadbolt et al., 2006). To performing only populations of a given domain interface with this potential myriad of instantia- ontology and ii-the domain independent SDGs i.e. tions (involving concepts, abstract and concrete those performing populations of specific expres- roles) they will have to deal with bit by bit, one of sive fragments of computable languages. their expectations is to have some leverages help- ing them to test their solutions in the context of big data before deploying in the real world. One Our proposal is to create a tool that is Just solution often considered by default is a semi- another Populator of TB OX (JPoT) performing automated nay manual population dependent on populations like a domain independent SDG and the proper terminological axioms (named TB OX) guaranteeing consistency of the knowledge base of the ontologies. Nonetheless, these solutions (that is defined as the union of the TB OX and the have the disadvantages of being time-consuming A BOX). The subsequent parts of the article are as and prone to inconsistency. Furthermore, some ap- follows: Section 2 presents the related works, Sec- proaches may need to dispose such steps of popu- tion 3 presents JPoT, Section 4 performs an eval- lation in order to empirically perform the reason- uation and Section 5 explores some perspectives. 109 2 Related Works 3 Synthetic Data Generation Very few SDGs have been developed in order Formally, every Description Logic is based on to perform some stress tests before deploying an some finite sets: a set CA of concepts names, a ontology in a Semantic Web application. set DT of datatype names, a set RA of abstract role names and a set RT of concrete role names. According to the creators, the Lehigh Univer- Baader and Nutt introduced the notion of interpre- sity Benchmark (Guo et al., 2005) was the first tation in first-order logic (Baader and Nutt, 2003). knowledge base generator. The idea of LUBM was to feature a university domain ontology Note that the definition we introduce below is with one statically predefined TB OX, and allow an adaptation of the interpretation presented in the different sizes of an artificial generated dataset OWL 2 direct semantic1 . i.e. an A BOX. A set of 14 different queries was Definition (Interpretation). An interpretation I is included in the benchmark in order to evaluate a tuple I = h I , D , ·I i where: the perfomance of reasoners by processing the - I is the domain, i.e. a set of individuals, predefined queries on the different generated - D is a data-type domain disjoint with I , knowledge bases. Due to the growing need to - ·I is the interpretation function which maps: better profile the behaviour of an ontology with - each A 2 CA to a set AI ✓ I , regards to differing numbers and complexities of - each r 2 RA to a relation rI ✓ I ⇥ I , the axioms in the TB OX, an extension of LUBM, - each D 2 DT to a value space DI ✓ D , the so-called University Ontology Benchmark - each t 2 RT to a relation tI ✓ I ⇥ D . (UOB) has been introduced (Ma et al., 2006). JPoT can actually parse and populate guar- anteeing consistency the expressive power of the Another remarkable tool named OTAGen (On- fragment ALCQ(D) described below: genae et al., 2008) has the specificity to generate complete knowledge bases providing the capi- R ::= >R | RA | RT bility of specifying a large range of parameters D ::= C | DT characterising them, both on TB OX as well as C ::= CA | ¬C | >C | ?C | (C u C) | (C t C) | A BOX level, the tool can also generate some 9R.D | 8R.D | nR.D | nR.D | =nR.D corresponding queries. Definition (TB OX). Given the concepts C, D 2 C , we call a TB OX a finite set of i-concept equiv- Note that after this proposal, another approach alences i.e. ’C ⌘ D’ or ii-concept inclusions, i.e. proposed a purely TB OX generation with different ’C v D’. An interpretation I is a model of a TB OX reasoning complexities resulting from the relative iff for all the axioms ' 2 TB OX, I ', with: proportions of the design patterns of biomed- - I (C v D) iff C I ✓ DI ical structures representation (Boeker et al., 2011). - I (C ⌘ D) iff C I = DI JPoT deals only with unequivocal Finally, the only approach that can handle a TB OX (Baader and Nutt, 2003) as a finite lack or inaccessibility of data in A BOXes when a set of equivalence or inclusions for which the TB OX is already available is SKTI - a synthetic left-hand side of each axiom is an atomic concept data generator (Chowdhury, 2012). This system and for every atomic concept there is at most one generates synthetic instances based on a source axiom where it occurs on the left-hand side. ontology and user specifications. Note that to mimic the real world scenario the system also Definition (A BOX). Given a, b 2 I , d 2 D , C allows the insertion of noisy and erroneous 2 C, r 2 RA , t 2 RT , we call an A BOX a finite instances into the dataset. set of class, role or data assertions. An interpre- tation I is a model of an A BOX A iff for all the assertions ' 2 A, I ', with: This last solution is the closest related work - I C(a) iff a 2 C I Concept Assertion with JPoT as a domain independent SDG that can - I r(a, b) iff (a, b) 2 rI Role Assertion populate TB OXes provided by users. Next, we - I t(a, d) iff (a, d) 2 tI Data Assertion will describe the heuristics JPoT follows to pop- ulate these TB OXes by guaranteeing consistency. 1 https://www.w3.org/TR/owl2-direct-semantics/ 110 The set of all the concept, role and data as- 3.2 Role Assertions sertions are respectively denoted Ac , Ar and Ad . JPoT is designed to populate TB OX in function JPoT dealing only with unequivocal TB OX, an of axiom ti s.t.d Fti 2dFTB OX cand Fbe defineddFlike that: i - a number n of potential individuals2 ti = {Ai v ⌘ Bl 8qj .Dk 9ro .Cp Ssu .Ev } l j,k o,p u,v d F d F n=| I| with 2 { , }, v ⌘2 {v, ⌘} and S 2 {=, , } ii - a total number m of assertions We introduce a rearrangement of TB OXes to m=|Ac [ Ar [ Ad | gather a set of axioms with concepts, datatypes, roles and constructors. The claim of JPoT is to iii - a ratio ⌧ of the number of concept assertions populate TB OXes respecting the consistency but on the total number of assertions due to the Open World Assumption (OWA), we |Ac | treat indifferently intersection and union. ⌧ = |Ac [A r [Ad | iv - a ratio ⇢ of the number of role assertions on A derivation of a TB OX is defined like that: the number of data assertions TB OX0 = {M(ti)|ti 2 TB OX} with S S S M(ti ) = { {Ai , 8qj .Dk } {Ai , 9ro .Cp } {Ai ,S su .Ev }} ⇢ = |A|A r| r [Ad | j,k o,p u,v 3.1 Concept Assertions During this stage, JPoT draws abstract roles The process of concept assertions initiates with and try to instantiate them. The Algorithm 2 uses the computation of the set of all the disjoint class the following heuristic: once an abstract role is denoted 0T such that 0T = {{C, D}|C v+ ¬D} drawn, an individual subject is drawn and the con- with v+ is the transitive closure of v. cepts it already instantiates are confronted to the domain of the abstract role. In case of disjointness Algorithm 1: Concept Assertions (CAs) another individual is drawn. After this step, the Data: TB OX, m, ⌧ concepts of the chosen individual are confronted Result: round(m · ⌧ ) CAs with the universal quantification axioms implying x= 0; the abstract role in order to build a set of manda- while x  round(m · ⌧ ) do tory concepts for the individual object that has to i = Draw( I ); be drawn in the next step. In the event the drawn ⇥=FALSE; individual i-has a concept in common with the while ¬⇥ do mandatory ones, ii-doesn’t have concepts disjoint Cj = Draw(C); with the range of the abstract and iii-doesn’t vio- if {{C, Cj }| i 2 C I } \ 0T = ;; late the max cardinality restriction, this object in- then dividual will participate to the instantiation with ⇥=T RUE; the abstract role and the subject individual. In case end of a violation of the cardinality restriction, another end abstract role will be drawn and the process of se- Cj ( i ); lection will restart. For example, in the TB OX x++; axiom "Scholarship v 9managedBy.Referrer F 9supervisedBy.Organisation", the algorithm end will randomly choose one of the element of the disjunction either involving the management Next, each individual drawn will instantiate the or the supervision (or the both if the scholar- first concept drawn that is not disjointed with ship is drawn again). Moreover, in the ax- the concepts the individual already instantiates. iom "Scholarship v 8remunerates.Researcher d The Algorithm 1 describes the concept assertions 9providesBy.Organisation", the algorithm will phase of JPoT. Note that, the function Draw(S) either ensure that if a scholarship remunerates returns a randomly drawn element from a set S. someone it will be a researcher or suggest (in 2 Here “potential” means the possibility to have non drawn absence of an axiom concerning a range) that a individuals that are not involved in any assertion. scholarship is provided by an organisation. 111 3.3 Data Assertions Algorithm 2: Role Assertions (RAs) The populations performed by JPoT follow Data: TB OX, TB OX0 , m, ⌧ , ⇢ heuristics that guarantee consistencies of the Result: round(m · (1 ⌧ ) · ⇢) RAs knowledge bases only on the basis of the axioms y= 0; in the TB OXes, in other words without any while y round(m · (1 ⌧ ) · ⇢) do consideration of a specific domain. The produced ⌅ =FALSE; A BOXes are somewhere semantically consistent while ¬⌅ do because the population respects the semantic rules ⌅ =T RUE; of the world present in the TB OXes. While the rk = Draw(RA ); URIs of the individuals are all based on an integer P9 = {(C, D)|C , 9rk .D}; in a selected range, the concepts they instantiate (A, B) = Draw(P9 ); (concept assertions) and more the relation in if domain(rk ) = ; then I = {A}; which they are involved (role assertions) can else I = domain(rk ); represent an artificial but apparently real world. ⇥=FALSE; Let’s imagine the equivalent of the Turing test for while ¬⇥ do a SDG model in which the A BOXes should appear i = Draw( I ) s.t. 9C. I i 2C ; as real 70% of the time to succeed the test. Even if if {{C, I}| i 2 C I } \ ⌦T = ; we didn’t lead this experiment, we can objectively then ⇥=T RUE; assume that a JPoT’s population implying only end concept and role assertions could pass this test. P8 = {(C, D)|C , 8rk .D}; foreach c 2 {C| i 2 C I } do The test gets much more complicated to pass if 9(E, F ) 2 P8 s.t. c v E then when JPoT has to deal with concrete roles due F 2 W; to a set of issues concerning the creation of data end values. First, the usage of datatype has to be tack- if range(rk ) = ; then J = {B}; led with caution under a penalty of undecidability. else J = range(rk ); OWL 2 solved this problem by recommending ⇥=FALSE; datatypes defining a datatype map3 which lists while ¬⇥ do the datatypes that can be used in the knowledge j = Draw( I ) s.t. 9C. I j 2C ; bases. Even restricting a population to this subset if {{C, J}| j 2 C } \ ⌦T = ; I of datatypes, JPoT could fail a Turing test for AND W ✓ {C| j 2 C } then I SDG by strictly following the heuristic described ⇥=T RUE; in the Algorithm 3 due to a lack of semantic end soundness in the generation of the data values for T ={hC, D, li|C,lrk .D _ C,=lrk .D}; the data assertions. For example, let’s imagine a l = 0; TB OX with the following axioms: each person foreach c 2 {C| i 2 C I } do has exactly one age that is an integer, an author if 9hE, F, Li 2 T s.t. c v E then has exactly one number of citations and hindex foreach that are integers and if a person has a name it d 2 {D| h 2DI ^( i , h )2rk } is always a string. As it is, JPoT could give an do inhuman age for a person, assert a number of if d ✓ F then l++; citations inferior to the hindex squared for a same end author and provide an absurd name that would if l = L then ⌅ =FALSE; just be a random sequence of characters. end end We implemented functions Gen(D, t) generat- end ing data values in adequation with a datatype D ( i , j ) 2 rk ; and with a concrete role t facing with different y++; issues concerning the automatic population. end 3 https://www.w3.org/TR/owl2-syntax/ #Datatype_Maps 112 3.3.1 Using a facet space In the following, we will describe three issues The usage of facet spaces is the royal road for this generation of data values corresponding to for the modeler to obtain a knowledge base three kinds of data assertions illustrating through capable of passing the SDG Turing test. The the concrete roles hasAge (3.3.1), citations/hindex facet space was introduced as a set of pairs of (3.3.2) and hasName (3.3.3). the form (F,v) where F is a constraining facet and v a constraining value. Each such pair is Algorithm 3: Data Assertions (DAs) mapped to a subset of the value space of the datatype. Thus, the data range of concrete roles Data: TB OX, TB OX0 , m, ⌧ , ⇢ can be restricted using a datatypeRestriction Result: round(m · (1 ⌧ ) · (1 ⇢)) DAs which restricts the value space of a datatype by z= 0; a constraining facet. In the example of hasAge, while z  round(m · (1 ⌧ ) · (1 ⇢)) do the modeler can use a datatypeRestriction that ⌅ =FALSE; would restrict the datatype xsd:nonNegativeInteger while ¬⌅ do by using a singleton facet space i.e. the pair ⌅ =T RUE; (xsd:maxExclusive,"123"ˆˆxsd:nonNegativeInteger) tk = Draw(RT ); that corresponds to the limit for an age never P9 = {(C, D)|C , 9tk .D}; reached in the history of the humanity. In addition (A, B) = Draw(P9 ); in JPoT, we used a Gaussian distribution (with if domain(tk ) = ; then I = {A}; an expectation of 42 and a standard deviation of else I = domain(tk ); 10) in order to simulate an age distribution of ⇥=FALSE; researchers following a pyramidal shape. while ¬⇥ do i = Draw( I ) s.t. 9C. I i 2C ; 3.3.2 Using a linear equation if {{C, I}| i 2 C I } \ ⌦T = ; Ensuring the soundness of data assertions re- then ⇥=T RUE; stricting dataranges using datatypeRestrictions end can still produce knowledge bases incapable of P8 = {(C, D)|C , 8tk .D}; passing the SDG Turing test. In fact, one can say foreach c 2 {C| i 2 C I } do that the value of the subject of a data assertion if 9(E, F ) 2 P8 s.t. c v E then has to be an integer less than 123, but one can- F 2 W; not say that the value of the subject of one data end assertion is less than that of another data assertion. if range(tk ) = ; then J = {B}; In the example of citations and hindex, the modeler else J = range(tk ); doesn’t have the ability with the current expressiv- dj = Gen(J, tk ); ity of OWL 2 to constraint the TB OX with the fact T ={hC, D, li|C,ltk .D _ C,=ltk .D}; that the total number of citations of an author is l = 0; greater than the hindex-squared. A proposition of foreach c 2 {C| i 2 C I } do extension for OWL 24 allows the expression of lin- if 9hE, F, Li 2 T s.t. c v E then ear equations but not of polynomial equations. foreach d 2 {D|dh 2DI ^( i , dh )2tk } 3.3.3 Using an API do As we described for a numerical datatype, it if d ✓ F then l++; is also possible to restrict dataranges using a end datatypeRestriction for String with a pattern (well if l = L then ⌅ =FALSE; known as a regular expression). This expressivity end can be usefull to generate knowledge bases end capable of passing the SDG Turing test. For end example, a model that would represent a social ( i , dj ) 2 tk ; security number could use such a pattern. z++; end 4 https://www.w3.org/2007/OWL/wiki/ Data_Range_Extension:_Linear_Equations 113 But when the concrete role is hasName, even We introduce here a UML interpretation for the usage of space facet doesn’t prevent to pro- the fragment ALCQ(D) . We denote CA a set duce knowledge ineligible for a SDG Turing test. of concept names, RA a set of abstract role In this case, the only solution is to use another names, RT a set of concrete role names, DT a generator or API to produce a soundness value. set of datatype names and S a set of symbols Then we used the API JaNaG (Java Name Gen- for Descriptions logics interpreted in first order erator) which is a random name generator based logic (Baader and Nutt, 2003), ⌦ a set of UML on a name fragment database that creates rela- cardinalities and a function `(⌦ ! S) such that tively reasonably sounding names from different `(⇤) 7! 8, `(n) 7! 8=n , `(⇤..n) 7! 8n and cultures/influences. `(n..⇤) 7! 8 n (with n > 0). 4 Performances of JPOT Note that we use the following notations: We performed an evaluation of the populator - 8=n r.C ⌘ 8r.C u =nr.C JPoT (the version of JPoT based on the OWL- - 8 n r.C ⌘ 8r.C u nr.C API 4.1.0) using a simplified model of the scholar - 8n r.C ⌘ 8r.C u nr.C domain illustrated in Figure 1. We highlight here that the ontological choices made at this example Definition (UML Interpretation U). Let are intuitive, but arguable. Our aim was to de- {C, D1 , . . . , Dn , E} ✓ C, {r1 , . . . , rn } ✓ RA , scribe the performance of JPoT, not to propose {t1 , . . . , tm } ✓ RT , { 1 , . . . , m } ✓ DT and an ontological analysis of the scholar domain. {µ1 , . . . , µn , 1 , . . . , m } ✓ ⌦: E r1 rn D1 µ1 C µn Dn -t1 : 1 [ 1 ] ... -tm : m [ m ] m d n d m (C v E u `(µi )ri .Di u `( j )tj . j )U i=1 j=1 Figure 1: UML diagram of the scholar domain In this domain, Authors (which are Persons Our empirical analysis has been performed on a with names) write Publications, which can be machine equipped with an Intel Core at 3.30GHz classified into Papers, Articles, Chapter and Ubuntu 15.04. We ran the Java-based reasoner or Books. A Publication can be quoted Pellet 2.4.0 with Sun Java 1.8, and we set the by another Publication, and Authors maximum heap space to 7.5 GB. We populated have a total number of citations and an hin- the Tbox stemming from the UML interpretation dex. A Researcher can be remunerated by of the Figure 1. We performed all the populations Scholarships provided by Organisations with n and m equal and with ⌧ = 0.5 meaning in in such a way that an Organisation can provide other words that the half of the assertions were several Scholarships, and a Scholarship concept assertions. For each pair (n, m), we can remunerate a maximum of two Researchers performed three populations: i- with ⇢ = 0, ii- (e.g. organisations authorizing to change one with ⇢ = 0.5 and iii- with ⇢ = 1. time the “owner” of a scholarship). Authors and Organisations can be associated. There Figure 2 shows the required CPU times of the are two kinds of Organisations: Team populations and the consistency tasks. We used a and University. A Team can be part of range of total number of potential individuals and Universities. assertions going up to around one million. 114 3000000 Population ( = 1) Reasoning ( = 1) References 2500000 Heap Space ( = 1) Population ( = 0.5) Reasoning ( = 0.5) Franz Baader and Werner Nutt. 2003. Basic Descrip- Heap Space ( = 0.5) 2000000 tion Logics, Cambridge University Press, pages 43– time (ms) Population ( = 0) Reasoning ( = 0) 1500000 Heap Space ( = 0) 95. 1000000 Sotiris Batsakis, Euripides Petrakis, Ilias Tachmazidis, 500000 and Grigoris Antoniou. 2009. Temporal represen- 0 tation and reasoning in OWL2. Semantic Web (Preprint):1–20. 0 25000 50000 75000 100000 125000 150000 175000 200000 225000 250000 275000 300000 325000 350000 375000 400000 425000 450000 475000 500000 525000 550000 575000 600000 625000 650000 675000 700000 725000 750000 775000 800000 825000 850000 875000 900000 925000 950000 975000 1000000 1025000 1050000 Assertions Ivan Bedini and Benjamin Nguyen. 2007. Automatic ontology generation: State of the art. PRiSM Labo- Figure 2: Some metrics about JPoT’s populations ratory Technical Report. University of Versailles . Martin Boeker, Janna Hastings, Daniel Schober, and Stefan Schulz. 2011. A T-Box generator for test- Pellet output systematically that the A BOXes ing scalability of owl mereotopological patterns. In were consistent with the TB OX when the con- Michel Dumontier and Mélanie Courtot, editors, sistency checks were possible. After a certain Proceedings of the 8th International Workshop on amount of assertions, the reasoning tasks were im- OWL: Experiences and Directions. volume 796 of CEUR Workshop Proceedings. possible to conclude due to a heap space error thrown whenever the JVM reached the heap size Jean-Rémi Bourguet and Luca Pulina. 2013. FRaQuE: limit. For ⇢ = 0.5 at n, m ⇡ 930.000, the first limit A framework for rapid query processing evalua- was detected. The same limit appeared for ⇢ = 0 at tion. In Samantha Bail, Birte Glimm, Rafael S. Gonçalves, Ernesto Jiménez-Ruiz, Yevgeny Kaza- n, m ⇡ 970.000 and for ⇢ = 1 at n, m ⇡ 1.020.000. kov, Nicolas Matentzoglu, and Bijan Parsia, editors, We can observe on the Figure2, the linear evolu- Proceedings of the 2nd International Workshop on tion of CPU times for the populator JPoT and the OWL Reasoner Evaluation. volume 1015 of CEUR heap space limits (marked with bow ties) concern- Workshop Proceedings, pages 53–60. ing the consistency checks of Pellet. Nafisa Chowdhury. 2012. Ontoevaluator – SKTI Synthetic Data Generator Synthetic Data Generator. 5 Conclusion http://aimlab-server.cs.uoregon.edu/services/skti- datagen/. In this paper, we just presented another popula- tor of TB OX: JPoT5 . To the best of our knowl- Yuanbo Guo, Zhengxiang Pan, and Jeff Heflin. 2005. LUBM: A benchmark for owl knowledge base sys- edge, this is the first domain independent SDG tems. Web Semantics: Science, Services and Agents guaranteeing consistency of the knowledge base on the World Wide Web 3(2):158–182. founded on TB OXes expressed in ALCQ(D) . The Yingjie Li, Yang Yu, and Jeff Heflin. 2012. Evalu- issues of the data assertions were tackled and some ating reasoners under realistic semantic web con- performances presented. For future work, we in- ditions. In Ian Horrocks, Mikalai Yatskevich, and tend that JPoT deals with an higher expressive- Ernesto Jiménez-Ruiz, editors, Proceedings of the ness to cover the whole fragment SROIQ(D) . 1st International Workshop on OWL Reasoner Eval- uation. CEUR-WS.org, volume 858 of CEUR Work- Acknowledgments shop Proceedings. Li Ma, Yang Yang, Zhaoming Qiu, Guotong Xie, Yue This work has been made possible by “la Re- Pan, and Shengping Liu. 2006. Towards a complete gione Autonoma della Sardegna e Autorità Por- OWL ontology benchmark. In European Semantic tuale di Cagliari con L.R. 7/2007, Tender 16 Web Conference. Springer, pages 125–139. 2011, CRP-49656 con il projeto: Metodi inno- Femke Ongenae, Stijn Verstichel, Filip De Turck, Tom vativi per il supporto alle decisioni riguardanti Dhaene, Bart Dhoedt, and Piet Demeester. 2008. l’ottimizzazione delle attività in un terminal con- OTAGen: A tunable ontology generator for bench- tainer” and by “o EDITAL FAPES/CAPES N marking ontology-based agent collaboration. In 009/2014 (Bolsa de fixacão de doutores) com a 32nd Annual IEEE International on Computer Soft- ware and Applications. IEEE, pages 529–530. proposta: Melhor integração de tecnologias de representação de conhecimento e raciocínio nas Nigel Shadbolt, Tim Berners-Lee, and Wendy Hall. utilizações local e Web”. 2006. The semantic web revisited. IEEE intelligent systems 21(3):96–101. 5 JPoT is available at http://bit.ly/2vh5YE4 115