Nine month progress report submitted for continuation towards a PhD
Toward a Canonical Method to Solve Patterns of Ontology Modelling Issues 14 ____________________________________________________________________________________________________________(facets) are modelled as OWL Datatype properties and each of the properties can be set to a single enumerated value (tag) from a mutually exclusive pair via “owl:oneOf”. To continue grounding the example of faults represented by column “1” in Figure 3 in the context of the ReSIST KB, below is an example of the SPARQL (Prudhommeaux and Seaborne, 2005) syntax that would be required to retrieve all instances of such fault type.PREFIX resist: <http://www.77cn.com.cn/ontology/resist#> SELECT ?fault WHERE { ?fault resist:has-phase-of-creation “development” . ?fault resist:has-system-boundaries “internal” . ?fault resist:has-cause “human-made” . ?fault resist:has-dimension “software” . ?fault resist:has-objective “non-malicious” . ?fault resist:has-intent “non-deliberate” . ?fault resist:has-capability “accidental” . ?fault resist:has-persistence “permanent” . }The SPARQL language also allows joining multiple result-sets via the UNION operator. This means that the earlier example regarding “Logic Bombs” could also be rewritten in terms of a SPARQL query to retrieve the union of all instances of the fault represented by column “5” and column “6” from Figure 3 as follows:PREFIX resist: <http://www.77cn.com.cn/ontology/resist#> SELECT ?fault WHERE { { ?fault resist:has-phase-of-creation “development” . ?fault resist:has-system-boundaries “internal” . ?fault resist:has-cause “human-made” . ?fault resist:has-dimension “software” . ?fault resist:has-objective “malicious” . ?fault resist:has-intent “deliberate” . ### ### no value for property ?fault resist:has-capability ### ?fault resist:has-persistence “permanent” . } UNION { ?fault resist:has-phase-of-creation “development” . ?fault resist:has-system-boundaries “internal” . ?fault resist:has-cause “human-made” . ?fault resist:has-dimension “hardware” . ?fault resist:has-objective “malicious” . ?fault resist:has-intent “deliberate” . ### ### no value for property ?fault resist:has-capability ### ?fault resist:has-persistence “permanent” . } }Using the same logic, a corresponding query could be constructed to retrieve any combination of fault types from Figure 3. However this approach introduces one caveat. The performance of the UNION operator in the current draft of the SPARQL definition is far from optimal when applied over large data repositories of RDF triples. In practical