我正在尝试Oracle Semantics Web文档列出的用于查询Cancer Ontology的相同场景。 以下是我遵循的步骤。
1)。创建了一个表空间。
CREATE TABLESPACE rdf_tblspace
DATAFILE 'C:\app\swagh\oradata\orcl\rdf_tblspace.dat' SIZE 1024M REUSE;
2)。创建了语义数据网络。
EXECUTE SEM_APIS.CREATE_SEM_NETWORK('rdf_tblspace');
3)。创建了一个用于存储三元组的应用程序表。
CREATE TABLE articles_rdf_data (id NUMBER, triple SDO_RDF_TRIPLE_S);
4)。创建了一个语义模型。
EXECUTE SEM_APIS.CREATE_SEM_MODEL('articles', 'articles_rdf_data', 'triple');
5)。将癌症本体数据插入到语义模型中。
INSERT INTO articles_rdf_data VALUES (1,
SDO_RDF_TRIPLE_S ('articles','Immunodeficiency-Syndrome',
'http://www.w3.org/2000/01/rdf-schema#subClassOf',
'Immune_System_Disorder'));
INSERT INTO articles_rdf_data VALUES (2,
SDO_RDF_TRIPLE_S ('articles','T_Cell_Immunodeficiency',
'http://www.w3.org/2000/01/rdf-schema#subClassOf',
'Immunodeficiency-Syndrome'));
INSERT INTO articles_rdf_data VALUES (3,
SDO_RDF_TRIPLE_S ('articles','AIDS',
'http://www.w3.org/2000/01/rdf-schema#subClassOf',
'T_Cell_Immunodeficiency'));
6)。创建一个患者表并插入一个包含以下值的记录。
CREATE TABLE patients (id INT, diagnosis VARCHAR2(100));
INSERT INTO patients VALUES (1,'AIDS');
7)。执行基于本体的语义查询。
SELECT diagnosis FROM patients
WHERE SEM_RELATED (diagnosis,
'http://www.w3.org/2000/01/rdf-schema#subClassOf',
'http://www.example.org/medical_terms/Immune_System_Disorder',
sem_models('articles'), null) = 1;
此查询应返回AIDS
作为诊断值,因为AIDS
是T_Cell_Immunodeficiency
的子类,后者又是Immunodeficiency-Syndrome
和Immune_System_Disorder
类的子类,而它没有任何回报。
我在这里错过了什么吗?