当前位置: 首页 > 知识库问答 >
问题:

解析方法OWLAPI(构建AST)中参数的意义

宁侯林
2023-03-14

我正在为OWL本体寻找一个好的解析器--最初是用Python的,因为我对Java的经验非常有限。就我所知,OWLAPI似乎是最好的选择,好吧,就是Java。

因此,我试图解析一个.owl文件,并从中构建AST。我下载了owlapi,但我有问题,因为它似乎没有太多的文档。

我最基本的问题是-say-owlxmlparser()的前两个参数代表什么:-document source:这是作为流读取的.owl文件(在下面的getDocument中)吗?-根本体:这里有什么?最初我认为这是.owl文件的去处,但似乎并非如此。

是parse方法构造了AST还是我找错树了?

非常感谢你的帮助。

public class App 
{
    public static void main( String[] args )
    {
    OntologyParser o = new OntologyParser();
    try {
    OWLDocumentFormat p = o.test();
    } catch (Exception e) {
        e.printStackTrace();
        }
    }
}

class OntologyParser {
    private OWLOntology rootOntology;
    private OWLOntologyManager manager;

    private OWLOntologyDocumentSource getDocument() {
        System.out.println("access resource stream");
        return new StreamDocumentSource(getClass().getResourceAsStream(
                "/home/mmarines/Desktop/WORK/mooly/smart-cities/data/test.owl"));
    }

   public OWLDocumentFormat test() throws Exception {
        OWLOntologyDocumentSource documentSource = getDocument();
        OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
        OWLOntology rootOntology = manager.loadOntologyFromOntologyDocument (new FileDocumentSource(new File("/home/mmarines/Desktop/WORK/mooly/smart-cities/data/test.owl")));
        OWLDocumentFormat doc = parseOnto(documentSource, rootOntology);
       return doc;
    }

    private OWLDocumentFormat parseOnto(
            @Nonnull OWLOntologyDocumentSource initialDocumentSource,
            @Nonnull OWLOntology initialOntology) throws IOException {
        OWLParser initialParser = new OWLXMLParser();
        OWLOntologyLoaderConfiguration config = new OntologyConfigurator().buildLoaderConfiguration();

       //// option 1:
        //final OWLOntologyManager managerr = new OWLOntologyManagerImpl(new OWLDataFactoryImpl(), new ReentrantReadWriteLock(true));
        //final IRI iri = IRI.create("testasdf");
        //final IRI version = IRI.create("0.0.1");
        //OWLOntologyDocumentSource source = new FileDocumentSource(new File("/home/mmarines/Desktop/WORK/mooly/smart-cities/data/test.owl"));
        //final OWLOntology onto = new OWLOntologyImpl(managerr, new OWLOntologyID(iri,version));
        //return initialParser.parse(initialDocumentSource, onto, config);
        ////

        //option 2: 
        return initialParser.parse(initialDocumentSource, initialOntology, config);
    }

单击此处回复或转发已使用115 GB中的15.32 GB(13%)管理条款-隐私上次帐户活动:1小时前详细信息

共有1个答案

杨建章
2023-03-14

owlapi解析器是为OWLOntologyManager实现而设计的,这些实现是由OWLManager单例管理的(除非您正在编写一个新的owlapi实现)。关于如何在wiki页面中使用该类,有很多示例。

owlapi发行版中包含的所有解析器都是为了在OWLOntology中创建OWLAxiom实例,而不是创建owl文件的AST文件的语法形状取决于特定的格式、编写者的首选项等等,而api的目的是为调用者提供本体操作功能。可以调整输出格式的细节,但将其公开给调用者不是主要设计的一部分。

 类似资料:
  • 我想知道我们是否可以使用Antlr版本4构建一个AST。我找不到任何关于使用ANTLR4构建它的参考。一个答案是,使用antlr4会很容易,它只产生解析树,但我的问题是效率如何? 它迫使我们只能爬取整个解析树而不是抽象的语法树,这对于遍历整个解析树和使用访问者执行任务是不有效的。

  • 本文向大家介绍Spring boot中自定义Json参数解析器的方法,包括了Spring boot中自定义Json参数解析器的方法的使用技巧和注意事项,需要的朋友参考一下 一、介绍 用过springMVC/spring boot的都清楚,在controller层接受参数,常用的都是两种接受方式,如下 第一个就是前端传json参数,后台使用RequestBody注解来接受参数。第二个就是普通的get

  • 我在Android Studio中创建了一个新项目,并将gradle buildscript转换为使用kotlin dsl,如下所示: build.gradle.kts(项目) build.gradle.kts(app) 最后,build.gradle.kts(BuildSrc) 这可以正常工作,并且项目可以按预期构建。 现在我想将其中一些硬编码的版本号和名称提取到常量中。例如,我想将这一行:”)

  • 问题内容: 我有一个构建时间参数,我想以此构建Docker文件。由于该论点本质上是机密的(私有存储库的github键),所以我不希望它最终出现在docker映像中。该引用来自官方docker文档中有关构建时参数的信息。 警告:不建议使用构建时变量来传递诸如github密钥,用户凭据等机密。构建时变量值对于使用docker history命令的映像的任何用户都是可见的。 有人知道实现相同目标的推荐方

  • 本文向大家介绍Vue源码解析之Template转化为AST的实现方法,包括了Vue源码解析之Template转化为AST的实现方法的使用技巧和注意事项,需要的朋友参考一下 什么是AST 在Vue的mount过程中,template会被编译成AST语法树,AST是指抽象语法树(abstract syntax tree或者缩写为AST),或者语法树(syntax tree),是源代码的抽象语法结构的树

  • 本文向大家介绍全面解析$.Ajax()方法参数(推荐),包括了全面解析$.Ajax()方法参数(推荐)的使用技巧和注意事项,需要的朋友参考一下 先给大家介绍下Ajax概念 AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 AJAX = 异步 JavaScript和XML(标准通用标记语言的子