Skip to content
ebotoeva edited this page Feb 6, 2015 · 1 revision

Table of Contents

-ontopPro- offers additional features that come handy in different situations.

Import data from mappings (Materializing mappings)

In some situations, it is desirable to actually create OWL individuals, OWL ABox assertions or RDF triples out of the mappings and data in the database. For example, when you want to share your data in the form of an .owl or .rdf file, when the access to the data source is not guaranteed and it's better to include all data in the ontology itself, etc.

To cope with this issue, -ontopPro- offer Import data from mappings from its Ontop menu. Clicking on this item will take each mapping of your OBDA model and start generating ABox assertions and individuals by actually executing the SQL queries in your mappings. The result is that all the data will remain in your ontology. This is done for each mapping and each data source in your OBDA model.

This functionality is similar to the import functionality offered by plugins like DataMaster or DataGenie.

Performance: Note that the OWLAPI and Protege 4 are not meant to handle ABoxes in the range of gigabytes. If you have a very large database, it is best to not materialize within protege. Instead, use -ontopCore- to materialize using Java or from the command line.

Model statistics

Another useful function available is getting statistics about the number of virtual triples/ABox assertions in your OBDA model.

Recall that given a mapping, the virtual triples are defined by the answers to the source SQL query (see docs on mappings and the meaning of mappings). In particular, the number of implied triples is defined by the number of rows returned by the SQL, and the number of triple patters in the triple pattern of your mapping. Moreover, note that the implied triples are considered as a "bag" or "list" not as a set.

Example: If you have the mapping

?uri rdf:type :Person; hasName ?name
SELECT uri, name FROM tbl_person 
and the SQL query of this mapping returns 2 rows as follows:
uri name
mariano
"Mariano"
mariano
"Mariano"
silvia
"Silvia"

The we have that this mapping and the current state of the database imply 6 triples.

Using the model statistics feature you will be able to know how many triples are implied by your mappings, both individually, and in total.

Performance: Collecting statistics requires to execute all SQL queries in your mappings and to count the results. The count operation is performed at the server side to be efficient, however, it may still take a long time depending on the complexity of your mappings.

Check for Inconsistencies

TODO

Check for Empties

This function allows to check for empties in concepts and roles of the ontology. Quest reasoner connects to the database and using the mappings for each entities in the ontology verify the presence of individuals.

Using the check for empties feature you will be able to know which are the empty concepts and roles without checking the database. It helps to verify the quality of the ontology and mappings.

If the mappings are modified, it is necessary to stop and start the reasoner again to see the changes. For more information on the implementation see QuestOWLEmptyEntitiesChecker.

Import/Export R2RML mappings

TODO

Generate ontology and mappings

TODO

Clone this wiki locally