使用JENA构建OWL文件

时间:2011-05-12 08:01:59

标签: ontology jena owl

我的工作需要构建本体模块。 为此,我需要构建owl文件以包含这些本体。 我的输入是一个带有解析和分裂句子的xml文件。

<Subject> A tumor </Subject> 
<Verb> is </Verb> 
<Object> an abnormal growth </Object> 
</sentence> 
<sentence> 
<Subject> A kidney tumor </Subject> 
<Verb> is </Verb> 
<Object> an abnormal growth </Object> 

我现在需要做的是:

  • 将“subject”和“object”转换为OntClass
  • 将“动词”转换为“obj”和“sub”之间的传递属性

我是本体领域的新手,可能是那些基本问题,但我正在努力创建这些文件,尤其是传递属性。

欢迎任何帮助。

1 个答案:

答案 0 :(得分:2)

要创建OntClass,您只需致电OntModel.createClass( uri )即可。当然,这就留下了你应该使用哪个 uri 的问题。你需要一个命名空间,形式为http://yourcompany.com/ontology/diagnosis#;理想情况下,此命名空间将对应于可以检索本体文档的Web地址。

然后你需要一个算法来将像'A tumor'这样的短语转换为类名。这可能很简单:

  • 删除诸如明确和不定冠词(a,an,the)
  • 之类的前缀
  • 删除空格并使用CamelCase表示字边界

然后uri将是命名空间和转换名称的串联。

创建传递属性也很简单(OntModel.createTransitiveProperty()),但是在您展示的示例中,您似乎实际上在讨论类之间的子类关系。如果所有ns:KidneyTumor实例始终都在ns:AbnormalGrowth个实例集中,那么您的<Verb>is</Verb>对应于现有的RDF属性rdfs:subClassOf。当然,如果这种关系更加微妙(例如可能是有条件的或概率上的),那么你需要与你的特定语义建立不同的关系。

至于阅读XML文件,可以many tutorials on the webquestions on Stackoverflow来帮助解决这个问题。