- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 OWL API 的新手,正在尝试尝试它。我使用 OWL API 在 Eclipse 中的 protected 者和互惠应用程序中创建了一个简单的本体。本体结构如下:-
----------------------------------------------------------------------------------------
Class Object (Data Property)StringValue ObjectProperty relatedTo
----------------------------------------------------------------------------------------
WordString WS1 "One" DS1
WS2 "Two" DS2
WS3 "Three" DS3
DigiString DS1 "1"
DS2 "2"
DS3 "3"
----------------------------------------------------------------------------
完整的本体如下:-
<rdf:RDF xmlns="http://localhost:3030/DigiWord.owl#"
xml:base="http://localhost:3030/DigiWord.owl"
xmlns:DigiWord="http://localhost:3030/DigiWord.owl#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<owl:Ontology rdf:about="http://localhost:3030/DigiWord.owl"/>
<!--
// Object Properties
///////////////////////////////////////////////////////////////////////////////////////
-->
<!-- http://localhost:3030/DigiWord.owl#relatedTo -->
<owl:ObjectProperty rdf:about="&DigiWord;relatedTo">
<rdfs:domain rdf:resource="&DigiWord;DigiString"/>
<rdfs:range rdf:resource="&DigiWord;WordString"/>
</owl:ObjectProperty>
<!--
//
// Data properties
///////////////////////////////////////////////////////////////////////////////////////
-->
<!-- http://localhost:3030/DigiWord.owl#stringValue -->
<owl:DatatypeProperty rdf:about="&DigiWord;stringValue">
<rdfs:domain rdf:resource="&DigiWord;DigiString"/>
<rdfs:domain rdf:resource="&DigiWord;WordString"/>
<rdfs:range rdf:resource="&xsd;string"/>
</owl:DatatypeProperty>
<!--
// Classes
///////////////////////////////////////////////////////////////////////////////////////
-->
<!-- http://localhost:3030/DigiWord.owl#DigiString -->
<owl:Class rdf:about="&DigiWord;DigiString"/>
<!-- http://localhost:3030/DigiWord.owl#WordString -->
<owl:Class rdf:about="&DigiWord;WordString"/>
<!--
// Individuals
///////////////////////////////////////////////////////////////////////////////////////
-->
<!-- http://localhost:3030/DigiWord.owl#DS1 -->
<owl:NamedIndividual rdf:about="&DigiWord;DS1">
<rdf:type rdf:resource="&DigiWord;DigiString"/>
<stringValue rdf:datatype="&xsd;string">1</stringValue>
<relatedTo rdf:resource="&DigiWord;WS1"/>
</owl:NamedIndividual>
<!-- http://localhost:3030/DigiWord.owl#DS2 -->
<owl:NamedIndividual rdf:about="&DigiWord;DS2">
<rdf:type rdf:resource="&DigiWord;DigiString"/>
<stringValue rdf:datatype="&xsd;string">2</stringValue>
<relatedTo rdf:resource="&DigiWord;WS2"/>
</owl:NamedIndividual>
<!-- http://localhost:3030/DigiWord.owl#DS3 -->
<owl:NamedIndividual rdf:about="&DigiWord;DS3">
<rdf:type rdf:resource="&DigiWord;DigiString"/>
<stringValue rdf:datatype="&xsd;string"></stringValue>
<relatedTo rdf:resource="&DigiWord;WS3"/>
</owl:NamedIndividual>
<!-- http://localhost:3030/DigiWord.owl#WS1 -->
<owl:NamedIndividual rdf:about="&DigiWord;WS1">
<rdf:type rdf:resource="&DigiWord;WordString"/>
<stringValue rdf:datatype="&xsd;string">One</stringValue>
</owl:NamedIndividual>
<!-- http://localhost:3030/DigiWord.owl#WS2 -->
<owl:NamedIndividual rdf:about="&DigiWord;WS2">
<rdf:type rdf:resource="&DigiWord;WordString"/>
<stringValue rdf:datatype="&xsd;string">Two</stringValue>
</owl:NamedIndividual>
<!-- http://localhost:3030/DigiWord.owl#WS3 -->
<owl:NamedIndividual rdf:about="&DigiWord;WS3">
<rdf:type rdf:resource="&DigiWord;WordString"/>
<stringValue rdf:datatype="&xsd;string">Three</stringValue>
</owl:NamedIndividual>
</rdf:RDF>
我想为 DS1 检索对象 WS1,为 DS2 检索 WS2,即在提供字符串“1”、“2”等后,我的代码应分别检索“One”、“Two”。我在网上没有遇到过任何此类的相关代码。任何帮助将不胜感激。提前致谢。
最佳答案
以下示例 (OWLAPI 4) 应该有所帮助:
OWLOntology o = ... your ontology here
String ns = "http://localhost:3030/DigiWord.owl#";
OWLDataFactory df = o.getOWLOntologyManager().getOWLDataFactory();
OWLObjectProperty relatedto = df.getOWLObjectProperty(IRI.create(ns + "relatedTo"));
OWLDataProperty stringValue = df.getOWLDataProperty(IRI.create(ns + "stringValue"));
SimpleRenderer renderer = new SimpleRenderer();
for (OWLNamedIndividual i : o.getIndividualsInSignature()) {
for (OWLLiteral lit : EntitySearcher.getDataPropertyValues(i, stringValue, o)) {
System.out.println(i + " has values " + renderer.render(lit));
}
for (OWLIndividual related : EntitySearcher.getObjectPropertyValues(i, relatedto, o)) {
for (OWLLiteral lit : EntitySearcher.getDataPropertyValues(related, stringValue, o)) {
System.out.println(i + " related to " + related + " which has values " + renderer.render(lit));
}
}
}
编辑:查找与您的查询匹配的内容:
for (OWLNamedIndividual i : o.getIndividualsInSignature()) {
for (OWLIndividual related : EntitySearcher.getObjectPropertyValues(i, relatedto, o)) {
for (OWLLiteral lit : EntitySearcher.getDataPropertyValues(related, stringValue, o)) {
if(lit.getLexicalForm().equals("1")){
for (OWLLiteral lit : EntitySearcher.getDataPropertyValues(i, stringValue, o)) {
System.out.println(i + " has values " + renderer.render(lit));
}
}
}
}
}
关于java - 使用 OWL API 获取本体中两个对象的属性值交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25855820/
我正在使用 Protege v4.3 制作本体。 我有一个关于 OWL 本体和 DL 查询的问题。 例如,在 Pizza 本体中, http://owl.cs.manchester.ac.uk/co-
我已经用Protege用OWL编写了一个本体论。但是我找不到在类之间创建关系的解决方案。当然,有一个“子类”关系,但是我想定义自己的关系。所以我有一个类层次结构(由“子类”-关系组成),但我想创建一个
我正在使用等同于 dbpedia-owl:Organisation 的专有 rdfs:type 在我的 SPARQL 查询中选择(显然)组织: SELECT ?s WHERE { ?s
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve th
我正在建立一个旅游网站,并希望在其中使用语义网。我也对使用 RDF 本体感兴趣。 所以,我想知道是否有人可以告诉我,是否存在任何关于此的内容,如“这家酒店位于 Foo”或“这家餐厅在 Foo 社区的评
我正在尝试使用 Jena API 复制 OWL 本体,每次都向该本体添加一个新语句。但一开始它应该得到原始本体,没有新的语句。 以下代码每次都会在前一个语句之上添加一个新语句。 this runs i
我正在使用具有以下简单本体的 Protege 4.3(也尝试过 5-beta): Class: Person Class: Man SubClassOf: Person Ind
我在 Protege 中为一个小项目创建了一个本体,我在 csv 文件中有与域相关的数据集。 Protege中如何将类的所有个体都导入到本体中,使所有的个体都自动添加到本体中? 最佳答案 proteg
我正在尝试基于以 XMI 格式呈现的不同 UML 文件资源开发 OWL 本体。现在通过互联网阅读了一段时间,似乎几乎所有可用的工具或方法都已过时,即使尝试其中的一些工具或方法,它们也无法提供预期的结果
我正在尝试制作一个关于我所在地区运行比赛(10 公里、半程马拉松、马拉松)的语义 Web 应用程序。更具体地说,我想收集和发布(在 RDF 中)关于比赛、参与者和结果的数据,并合并类似的数据。过去几周
过去几个小时,我在谷歌上搜索了有关如何使用 virtuoso 服务器(开源版本)配置 RDF 存储的教程或指南。 我有一个用 Protégé 软件创建的 RDF 文件。如何将此文件添加到 virtuo
我正在使用 SUMO我想用 SPARQL 查询的本体。 SUMO 中的一个典型条目,例如,一个城市,看起来像这样: The City of Madrid in Spain. [...
我是第一次使用 OWL API(出于兼容性原因,使用 3.4.8),并且我正在尝试加载作为 YAGO 知识库 (http://resources.mpi-inf.mpg.de/yago-naga/ya
我已经完整下载了 wordnet2.0,但我不知道如何将它用作图表,因为它由多个 RDF 文件组成。我想在 Eclipse 中使用 wordnet2.0 本体作为图形。以下是我用于将本体加载为图表的代
我这学期有一个实践研讨会,我想在 Android 应用程序上使用本体。我选择 Protege owl ontology 作为本体 API,这个工具在普通的 Java 项目中工作。但是当我试图在 And
首先,我试图用来自 Schema.org 的属性定义数据库表,例如,例如,我有一个名为“JobPosting”的表,它或多或少具有与 http://schema.org/JobPosting 中定义的
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
我正在尝试制作一个关于我所在地区运行比赛(10k、半程马拉松、马拉松)的语义 Web 应用程序。更具体地说,我想收集和发布(在 RDF 中)有关比赛、参与者和结果的数据,并合并类似的数据。在过去的几周
我在 protege 中创建了一个文件系统本体。我已将文件创建日期的范围设置为日期时间,如下面的代码所示。 Time when the file was last accessed.
我正在尝试使用来自 javacode 的 sparql 查询 DBPedia对于某些查询,它可以完美地工作,而对于另一个它不起作用。我认为我的查询没有错误,因为我已经在 DBPedia aparql
我是一名优秀的程序员,十分优秀!