- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一些数据三元组,我想用某种基本的 OWL 本体编写。我有这样的三胞胎:
Delhi is part of India
或
India is an Asian country
请注意,我有诸如“is-a”、“part-of”或“related-to”之类的关系。构建本体最简单的方法是什么?任何工作示例或对示例网站的引用都会有很大帮助!
最佳答案
你的问题中混杂了很多不同的东西,我强烈建议你花点时间(远离键盘!)来思考你想要在这里实现的目标。
首先,地理本体可能会变得相当复杂,并且在这方面已经做了很多工作。可能明显的起点是 GeoNames ontology ,它为地理特征命名,包括像德里这样的城市和像印度这样的国家。至少您应该在您的应用程序中为这些位置重复使用这些名称,因为这将最大限度地提高您的数据与其他可用链接数据源成功合并的机会。
但是,您可能不希望在您的应用程序中包含整个 GeoName(我猜),因此您还需要清楚为什么您需要一个本体。解决这个问题的一个好方法是从您的应用程序外部开始:与其担心使用哪种 Jena 模型,不如先思考如何完成句子“使用本体,我的应用程序的用户将是能够……”。然后,这应该引导您为您的本体建立一些能力问题(例如,参见 section 3 of this guide)。一旦您知道要表示哪种信息,以及需要对其应用哪种查询,您的技术选择就会更加清晰。我知道这些应用程序通常是迭代开发的,您会希望尽早尝试一些代码,但我仍然主张在开始编码之旅之前更清楚地了解您的目的地。
您暗示您想要使用 Jena 来驱动网站。这里有很多选择。不要被术语语义网误导——这实际上意味着将类似网络的特性带入内联数据集,而不是将语义放入人类可读的网页本身。虽然您可以这样做,而且很多人都这样做,但您需要在您的体系结构中添加一些额外的层。我们通常使用以下两种方法之一:将 Jena 与模板引擎一起使用,例如 Velocity ,在 servlet 容器中,或使用 Ruby 网络框架并通过 JRuby 驱动 Jena .有许多其他方法可以解决这个特定问题:Jena 不直接解决网络发布问题,但它可以在任何基于 Java 的网络框架中使用。
最后,关于命名空间,您应该真正重用现有的词汇表,因此尽可能重用命名空间。不要为已经在某处的数据网络上表示的事物编造新名称。使用 GeoNames,或 DbPedia ,或任何其他适合的已发布词汇表。如果它们不合适,那么您应该创建一个新名称,而不是以不兼容的方式使用现有名称。在这种情况下,您应该使用应用程序的 Web 域(例如您的公司或大学)作为命名空间的基础。理想情况下,您应该在命名空间的基本 URL 上发布您的本体,但有时这可能很难安排,具体取决于本地网络政策。
关于java - 如何在 Java 中创建本体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5841123/
我是一名优秀的程序员,十分优秀!