2011-05-12 115 views
0

早上好,用JENA构建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> 

什么,我现在需要做的是:

-convert“主体”和“对象”到OntClass

-convert“动词”,往来成“目标文件”的传递性和“子“

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

任何帮助,欢迎。

回答

2

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

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

  • 删除前缀,如定冠词和不定冠词(一,一个下)
  • 删除空格和使用CamelCase来表示字边界

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

至于读取XML文件,有many tutorials on the webquestions on Stackoverflow来帮助。

+0

谢谢,我没有读取XML文件的问题。然而,并非我所有的动词是“是”,它可以是任何类型的动词,实际上我想建立非分类关系。 – 2011-05-12 09:29:44

+0

那么,正如我所说,如果你的语义与现有的谓词不一样,你当然应该创建新的谓词。我所做的一点是,您应该尽可能重用现有的谓词,以便与其他本体和工具进行互操作。重新XML,你的问题列为“阅读XML文件”作为你欢迎的主题之一帮助。 – 2011-05-12 10:52:32

+0

使用这些谓词会很有趣,但是我的关系将被分类为分类学,不是吗? (我是本体领域的新手)你对xml的观点是正确的,我把它删除了。 – 2011-05-12 11:12:08