我有一些要在基本的OWL本体中编写的数据三元组。我的三胞胎像:
Delhi is part of India
要么
India is an Asian country
请注意,我具有“是”,“部分”或“相关于”之类的关系。建立本体的最简单方法是什么?任何有效的示例或对示例网站的引用都将为您提供很大的帮助!
您的问题中有很多不同的东西,我强烈建议您花一些时间(不要使用键盘!)来思考您要在此处实现的目标。
首先,地理本体会变得相当复杂,并且在这一领域已经完成了许多工作。可能最明显的起点是GeoNames本体,它为地理特征命名,包括Dehli等城市和印度等国家。至少您应该为应用程序中的位置重用这些名称,因为这将最大程度地提高您的数据可以成功与其他可用链接数据源结合的机会。
但是,您可能不希望在应用程序中使用整个GeoName(我猜是这样),因此您还需要弄清楚 为什么 根本需要一个本体。解决此问题的一种好方法是从您的应用程序外部开始:不必担心要使用哪种Jena模型,而应首先考虑完成语句 “使用本体,我的应用程序用户将能够使用”。 ..” 。然后应该引导您确定一些 能力问题 (例如,参见本指南的第3节)用于您的本体。一旦知道了要表示的信息种类以及需要对其应用的查询种类,您的技术选择就会更加清楚。我意识到这些应用程序通常是迭代开发的,并且您将希望尽早尝试一些代码,但是我仍然主张在开始编码之旅之前更加清楚地记住目的地。
您暗示要使用Jena来驱动网站。这里有很多选择。不要被 语义网 一词误导- 这实际上是指将类似Web的质量引入到互连的数据集中,而不是将语义本身放入人类可读的网页中。尽管您可以这样做,但很多人也可以这样做,但是您的体系结构中将需要一些其他层。我们通常使用以下两种方法之一:在servlets容器中将Jena与模板引擎(例如Velocity)一起使用,或使用Ruby Web框架并通过JRuby驱动Jena 。解决此特定问题的方法还有很多:Jena不能直接解决Web发布问题,但是可以在任何基于Java的Web框架中使用。
最后,关于名称空间,您应该真正重用现有词汇表,并在可能的情况下重用名称空间。不要为已经在网络上某处具有表示形式的事物重新命名。使用GeoNames或DbPedia或它们适合的任何其他许多已发布词汇。如果不合适,则应创建一个新名称,而不要以不兼容的方式使用现有名称。在这种情况下,您应该使用应用程序的Web域(例如,您的公司或大学)作为命名空间的基础。理想情况下,您应该在名称空间的基本URL上发布本体,但是根据本地Web策略有时可能很难安排本体。