Semantic Web di Oracle 11g


Akhirnya kesempatan menuliskan tentang semantic web di Oracle 11g ada juga. Ini hanya sebuah dokumentasi dari apa yang pernah saya lakukan untuk percobaan semantic web di Oracle 11g berdasar OBE yang berjudul “RDF Semantic Data Management Using the Oracle Spatial 11g Option“. Tuntunan di sana sudah sangat lengkap, hanya saja, ada beberapa kebutuhan awal yang harus dipenuhi dan untuk memenuhi tersebut, kita harus mengunjungi metalink yang merupakan salah satu layanan support khusus untuk pelanggan Oracle. Untuk itulah, di sini saya ingin sedikit menuliskan langkah-langkah tersebut.

Kebutuhan

Untuk mencoba semantic web di Oracle 11g, pastikan bahwa kita sudah memasang Oracle 11g Enterprise Edition dengan komponen Oracle Spatial. Pertama-tama kita lakukan setup untuk mempersiapkan modul-modul dan semua hal terkait dengan semantic web dengan menjalankan perintah berikut sebagai sysdba:

SQL> @$ORACLE_HOME/md/admin/catsem11i.sql

Berikutnya, kita lakukan pengecekan versi Oracle 11g yang kita gunakan untuk menentukan apakah perlu patches atau tidak. Silahkan cek versi Oracle yang sudah Anda pasang (gunakan SQL*Plus) dengan perintah berikut ini (contoh dari mesin saya)
SQL> select * from v$version;

BANNER
——————————————————————————–
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 – Production
PL/SQL Release 11.1.0.6.0 – Production
CORE    11.1.0.6.0    Production
TNS for Linux: Version 11.1.0.6.0 – Production
NLSRTL Version 11.1.0.6.0 – Production

Kalau versi Oracle 11g kita sudah 11.1.07, maka Anda tidak perlu melakukan patches. Jika versi Oracle 11g seperti di atas, maka Anda harus melakukan patches yang dapat di download di metalink.oracle.com. Simaklah urutan langkah downloadnya:

Log into Metalink at https://metalink.oracle.com and click on the Patches & Updates tab. Select “Simple Search” and in the Search by drop down list select Patch Number(s). Enter the Patch Number, 7032734. Select your Platform or Language. Click GO.

Atau, kita bisa mendownload dari http://www.oracle.com/technology/software/tech/semantic_technologies/files/jenadrv_patch111rdf.zip. Setelah di ekstrak, silahkan ikuti langkah yang ada pada file jenadrv_patch_ig.txt.

Sebelum menggunakan, kita setup database kita untuk mendukung Semantic web dengan mendaftarkan sebuah tablespace untuk menyimpan data-data yang terkait dengan semantic data network:

SQL> CREATE TABLESPACE rdf_tablespace DATAFILE SIZE 256M AUTOEXTEND ON NEXT 256M MAXSIZE 8192M SEGMENT SPACE MANAGEMENT AUTO;

SQL>EXECUTE SEM_APIS.CREATE_SEM_NETWORK(‘rdf_tablespace’);

Sekarang database Oracle 11g kita telah siap untuk menerima data semantic. Untuk percobaan, saya sarankan mengikuti dokumentasi yang telah disediakan, yaitu di Oracle 11g Semantic Technology Developer’s Guide.

Pertama, kita coba membuat user baru dengan perintah :

SQL> create user rdftest identified by rdftest;

SQL> grant connect, resource to rdftest;

SQL> conn rdftest/rdftest;

Di Oracle 11g untuk mendukung data Semantic, terdapat dua tipe data, yaitu SDO_RDF_TRIPLE dan SDO_RDF_TRIPLE_S. Kedua-duanya dapat digunakan untuk menyimpan data semantic, bedanya yang pertama menyimpan referensi dan kedua menyimpan data aktualnya. Untuk Oracle 11g, kita disarankan menggunakan yang kedua. Dari sini kita dapat membuat tabel yang menyimpan data semantic:

SQL> create table family_rdf_data(id NUMBER, triple SDO_RDF_TRIPLE_S);

Setelah itu, kita perlu mendaftarkan sebuah model data semantic baru terkait dengan data-data semantic yang akan tersimpan pada tabel FAMILY_RDF_DATA tersebut.

SQL> execute SEM_APIS.create_rdf_model(‘family’, ‘family_rdf_data’, ‘triple’);

Perintah di atas artinya parameter pertama adalah nama model kita, kedua adalah nama tabel yang menyimpan model family, dan ketiga adalah format data semantic kita.

SQL>INSERT INTO family_rdf_data VALUES (1,
SDO_RDF_TRIPLE_S(‘family’,
http://www.example.org/family/John’,
http://www.example.org/family/fatherOf’,
http://www.example.org/family/Suzie’));

SQL> INSERT INTO family_rdf_data VALUES (3,
SDO_RDF_TRIPLE_S(‘family’,
http://www.example.org/family/Janice’,
http://www.example.org/family/motherOf’,
http://www.example.org/family/Suzie’));

SQL> (demikian seterusnya. silahkan ikuti dokumentasi pada halaman 42)

Yang menjadi penting berikutnya adalah kita perlu membuatkan sebuah index yang dapat digunkaan oleh Oracle untuk melakukan inferensi terhadap data-data semantic di atas.

SQL> BEGIN
SEM_APIS.CREATE_RULES_INDEX(
‘rdfs_rix_family’,
SEM_Models(‘family’),
SEM_Rulebases(‘RDFS’));
END;
/

Untuk melakukan inferensi, kita dapat menggunakan fungsi SEM_MATCH. Berikut contohnya seperti yang tersedia di dokumentasi:

SQL> SELECT m
FROM TABLE(SEM_MATCH(
‘(?m rdf:type :Male)’,
SEM_Models(‘family’),
SDO_RDF_Rulebases(‘RDFS’),
SEM_ALIASES(SEM_ALIAS(”,’http://www.example.org/family/’)),
null));

M
——————————————————————————–
http://www.example.org/family/Jack
http://www.example.org/family/Tom
http://www.example.org/family/John
http://www.example.org/family/Sammy
http://www.example.org/family/Matt

Untuk melihat tabel atau view yang terbentuk, kita dapat login sebagai mdsys, dan silahkan memberikan perintah SELECT * FROM tab;.

6 thoughts on “Semantic Web di Oracle 11g

  1. salam kenal
    saya syahru, lama saya mencari tulisan seperti ini. saya juga sedang coba-coba oracle for semantic mas.
    tulisan yang sangat bagus mas

    mas kalo ada pertanyaan seputar oracle for semantic, mohon bantuanya

    bisa minta ymnya mas?
    trimakasih

  2. Assalamu’alaikum…
    mas, gmana klw versi Oracle..11.0.7 …
    punya link buat download patch semanticnya ga?
    saya ga punya account metalinknya nih…
    klw ada kirim lewat email saya ya…

    terima kasih ….

  3. salam kenal kk

    bisa g klo data basenya menggunakan my sql…
    terus bedanya semantik web dengan web biasa tu pa?

    thanx….refrensinya yg di atas bisa buat tmbahan memutar otak lagi…..

    oiy kk punya contoh tmpilan web yg menggunakan semantik web g???
    klo da krim k email saya y….rizqi_jailani@yahoo.co.id

Komentar ditutup.