我的工作需要构建本体模块。 为此,我需要构建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>
我现在需要做的是:
我是本体领域的新手,可能是那些基本问题,但我正在努力创建这些文件,尤其是传递属性。
欢迎任何帮助。
答案 0 :(得分:2)
要创建OntClass
,您只需致电OntModel.createClass( uri )
即可。当然,这就留下了你应该使用哪个 uri
的问题。你需要一个命名空间,形式为http://yourcompany.com/ontology/diagnosis#
;理想情况下,此命名空间将对应于可以检索本体文档的Web地址。
然后你需要一个算法来将像'A tumor'这样的短语转换为类名。这可能很简单:
然后uri
将是命名空间和转换名称的串联。
创建传递属性也很简单(OntModel.createTransitiveProperty()
),但是在您展示的示例中,您似乎实际上在讨论类之间的子类关系。如果所有ns:KidneyTumor
实例始终都在ns:AbnormalGrowth
个实例集中,那么您的<Verb>is</Verb>
对应于现有的RDF属性rdfs:subClassOf
。当然,如果这种关系更加微妙(例如可能是有条件的或概率上的),那么你需要与你的特定语义建立不同的关系。
至于阅读XML文件,可以many tutorials on the web或questions on Stackoverflow来帮助解决这个问题。