【问题标题】:OWLAPI : how load ontology having import works?OWLAPI:加载本体如何导入工作?
【发布时间】:2016-07-12 07:16:04
【问题描述】:

我有一个本体,其中导入了另一个本体。我想知道OWLOntologyManagerloadOntologyFromOntologyDocument(OWLOntologyDocumentSource documentSource, OWLOntologyLoaderConfiguration config) 在内部是如何工作的。 我使用OWLOntologyLoaderConfiguration 类来处理Missing Imports(想知道哪个导入在MissingImportListener 类的帮助下失败)。

我能够听到丢失的导入。但是,如果我的任何本体文件具有 WEB 资源的导入,则上述方法会从其位置获取它。有什么方法可以限制对 WEB 资源的调用并要求加载我系统中的副本?

例如,如果 BBC 的体育本体加载方法在内部加载以下本体:

  1. http://purl.org/NET/c4dm/event.owl
  2. FOAF (http://xmlns.com/foaf/0.1/)
  3. 时间 (http://www.w3.org/2006/time)

就像在 Protege 中打开 BBC 的体育本体一样。

【问题讨论】:

    标签: java owl ontology protege owl-api


    【解决方案1】:

    您可以使用AutoIRIMapper - 创建一个指向包含本地副本的文件夹并将其添加到管理器,然后再加载您所追求的本体。

    对于在不同地址可用的本体,请使用SimpleIRIMapper,这将充当从原始地址到新地址的重定向。

    【讨论】:

    • 实际上不同的本体在我的工作系统中而不是在硬盘上。我知道,如果我的工作系统中没有任何可用的东西,那么加载 API 将用于 WEB 资源。但相反,我想引发不用于 WEB 资源的触发器,而是向用户询问它(即使 WEB 资源可用)。我想限制我的系统使用 WEB 资源。
    • 根据我的实验加载方法会先去IRIMapper,如果没有找到会去WEB资源。如果不可用,那么它将抛出UnloadableImportException 或唤起MissingImportListener(如果有)。我说得对吗?
    • 要引入用户界面触发器,您需要编写自己的 OWLOntologyIRIMapper 实现。没有任何可用的东西允许这样做。
    • 我尝试使用AutoIRIMapper,但它失败了。我有一个ontology.owl 格式的文件Manchester OWL SyntaxAutoIRIMapper 找不到它。可能的原因是什么?
    • AutoIRIMapper 目前不支持曼彻斯特语法。作为一种解决方法,您需要将本地副本保存为 rdf/xml
    猜你喜欢
    • 1970-01-01
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多