Самостійна робота 2.

Використання Ontotext GraphDB OpenRefine та опрацювання набору даних у форматі CSV для перетворення у RDF.

Продивіться відео https://ontotext.com/knowledgehub/videos/ontorefine/ та https://ontotext.com/knowledgehub/fundamentals/ontorefine-2/. Альтернативно - прочитайте інструкцію тут: http://graphdb.ontotext.com/documentation/free/loading-data-using-ontorefine.html (англійською)

Візьміть файл nasa-nssdc-sample.csv - це дані про космічні човники (дехто з вас бачив ці дані у курсі Semantic Web Technologies на 4 курсі бакалаврату), сконвертуйте його (за змістом даних) у RDF за допомогою Ontotext GraphDB OpenRefine, та розмістить у новому репозиторії shuttle

Продемонструйте дані у репозиторії shuttle різними способами,у тому числі - у графі.

Повторіть все для нового репозиторію з ім'ям irises, сконвертуйте iris.csv у RDF та завантажте у irises.

Надайте екранні копіі відкритих репозиторіів.

Як додати дані до ендпоінту

Приклад запиту на додавання даних до ендпойнту дивіться нижче. Вказаний ендпоінт - <ontorefine:1795259130332> - для прикладу, ви можете дізнатися номер ендпоінту на вашему комп'ютеру так:

У меню Data оберіть Get SPARQL endpoint. Строка, що буде відображена, є назвою вашого ендпоінту

Далі поверніться у вікно OpenRefine, у меню Data оберіть create CONSTRUCT query. Виконайте створений системою запит за допомогою кнопки Run. Продивіться, чи ви задоволені результатами - всі поля вказані, всі назви стовпців відповідають змісту.

Якщо все нормально, скопіюйте цей запит, перейдіть у вікно SPARQL, і введіть скопійований запит, замінивши CONSTRUCT на INSERT, і додавши рядок SERVICE ... як вказано у прикладі:

PREFIX shuttle: <http://example.com/shuttle/>
PREFIX spif: <http://spinrdf.org/spif#>
# Example RDF transformation using the custom IRIs and type
INSERT {
                ?myRowId a shuttle:Row ;
                               shuttle:Id ?Id ;
                               shuttle:Title ?Title ;
                               shuttle:Country ?Country ;
                               shuttle:Link ?Link ;
                               shuttle:Weight ?Weight ;
                               shuttle:Date ?Date ;
                               shuttle:Satellite ?Satellite ;
                               shuttle:Place ?Place ;
                               shuttle:Description ?Description .
} WHERE {
                SERVICE <ontorefine:1795259130332> {
                                # Triple patterns for accessing each row and the columns in contains
                               # Note that no triples will be generated for NULL values in the table
                               # You should inspect your data in Refine mode and add OPTIONAL accordingly
                               ?row a shuttle:Row ;
                                               shuttle:Id ?Id ;
                                               shuttle:Title ?Title ;
                                               shuttle:Country ?Country ;
                                               shuttle:Link ?Link ;
                                               shuttle:Weight ?Weight ;
                                               shuttle:Date ?Date ;
                                               shuttle:Satellite ?Satellite ;
                                               shuttle:Place ?Place ;
                                               shuttle:Description ?Description .
              
                               # Example construction of new IRIs for each row
                               BIND(IRI(spif:buildString("http://example.com/shuttle/{?1}", ENCODE_FOR_URI(?Id))) AS ?myRowId)
                }
}