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

如何使用Jena将远程词汇表/名称空间包含到OntModel中?

裴昊阳
2023-03-14

我是语义Web和Jena的新手。

我想从Jena中的OntModel生成一个ontology,并且我需要使用预定义的词汇表和ontology,以便对我的类和属性进行字符化。

在Jena中,有默认的本体,比如RDF、FOAF...所以我们可以指定类并向资源添加属性,比如:

ontClass.setSameAs(FOAF.Person);
ontClass.addProperty(FOAF.name, "name");

ontProperty.setRange(XSD.xstring);

但是我如何将我的ontClass引用到另一个在Jena中不存在的词汇表/本体(GeoSparql、Geofla、我自己定义的词汇表等)?知道我可以拥有这些词汇表的URI吗?

在本主题中已经提出了这个问题:如何在Jena中添加词汇?建议使用Jena Schemagen,但我不知道该怎么做。

非常感谢你的帮助!

共有1个答案

万俟华辉
2023-03-14

我想其中一个选择是导入(或读取)这些词汇表/本体,以便您可以使用Jena Ontology API来使用它们。

例如(如果我们假设您的本体模型名为m),您可以将OWL-Time本体读入您的模型,如下所示:

M.Read(“http://www.w3.org/2006/time”)

然后您可以使用它使用Jena的编程API定义的元素:

OntClass instant = dataModel.getOntClass("http://www.w3.org/2006/time#Instant");

如果您不想阅读模型中的整个本体,也可以使用URI“创建”必要的ressource/属性:

Property inXSDDateTime = m.createDatatypeProperty(
    "http://www.w3.org/2006/time#inXSDDateTime");
Resource resource = m.createResource("someURIForThisRessource");
Statement s = m.createStatement(
    resource, inXSDDateTime, m.createTypedLiteral(someValue));
m.add(s);

它应该按照预期编写结果(但是,通过这样做,您没有加载您所引用的本体的公理,因此您将无法对其进行推理--但是根据您的评论,我想这也许是您想要的)

 类似资料:
  • 问题内容: 我知道此页面中有很多此主题,但可悲的是,我仍然无法解决我的问题。 这是我的xml代码: 这是我在Java中的代码: 是的,像往常一样,我无法获得输出,因为它仅显示: 仅当我删除ns:1时,才会显示输出,xml的代码将如下所示: 问题是,我在网上发现的所有建议似乎都没有用: 例如,我已经尝试过 等2 .. 我能得到的唯一最好的输出是,它将显示: 谁能给我正确的代码给我解决我的问题? 提前

  • 问题内容: 在Python中,命名空间包可让您在多个项目中传播Python代码。当您要将相关的库作为单独的下载发布时,这很有用。例如,目录和中, 最终用户可以和。 定义名称空间包的最佳方法是什么,以便多个Python产品可以在该名称空间中定义模块? 问题答案: TL; DR: 在Python 3.3上,您无需执行任何操作,只需将任何内容都不放在名称空间包目录中即可使用。在3.3之前的版本中,请选择

  • 问题内容: PHP名称空间可以包含变量吗?如果是这样,如何实现? 问题答案: 不可以。您可以在声明名称空间后设置变量,但是变量将始终存在于全局范围内。它们永远不会绑定到名称空间。您可以从中没有任何名称解析描述来推断出这一点 常见问题解答:您需要了解的有关名称空间的知识(PHP 5> = 5.3.0) 也将不允许使用语法在命名空间中定位变量。

  • 问题内容: 经常看到com。*软件包名称空间。“ com”是什么意思?谢谢。 问题答案: 包的命名约定在JLS中指定。这是相关的代码段(本节中还有很多内容): [JLS 7.7唯一程序包名称](http://java.sun.com/docs/books/jls/third_edition/html/packages.html#7.7) 您首先要拥有(或属于拥有)互联网域名的组织,从而形成唯一的软

  • 问题内容: 实现目标: 我想要名称属性包含列表中任何单词的所有对象。 我有: 例如: 然后应返回具有该名称的对象,因为word2在列表中。 请帮忙! 问题答案: 您可以使用对象来构造如下查询: 编辑: 是一种奇特的写作方式 您还可以使用显式的for循环来构造对象。