标签: jena-rules

耶拿在本体论上的验证规则

我想验证本体并在出现任何错误时抛出错误.

我必须做的最多验证看起来像这样:我有一个这样的类:

   <owl:Class rdf:about="&schema;ExampleClass">
        <rdfs:subClassOf rdf:resource="&schema;SuperClass"/>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="&schema;myProperty"/>
                <owl:onClass rdf:resource="&schema;OtherClass"/>
                <owl:qualifiedCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:qualifiedCardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
Run Code Online (Sandbox Code Playgroud)

(有趣的部分是第二个subClassOf.)在Protege中这意味着ExampleClass is subClass of myProperty exactly 1 OtherClass.

所以我想验证只有一个myProperty值:一个类型为OtherClass的个体.

是否可以验证这样的规则?如果有一个规则可以为所有类使用此建模执行此操作(并且可能还至少为1,正好为2,...),那将是完美的.

另一个问题是:是否有一个现成的封闭世界推理器正在为我做这个?

rdf owl jena jena-rules

3
推荐指数
1
解决办法
1177
查看次数

Apache Jena框架的推理示例存在问题

我有一个严重的问题,让任何推理器运行起来.此外,文档中的示例:https://jena.apache.org/documentation/inference/ 在此处不起作用.我将示例转移到单元测试中,以便可以更容易地再现问题.

推理仅限于某些环境,如空间JDK等,或者我得到了错误?

谢谢

这里的示例代码(作为java单元测试):

import static org.junit.Assert.assertNotNull;
import java.io.PrintWriter;
import java.util.Iterator;

import org.junit.Before;
import org.junit.Test;

import com.hp.hpl.jena.rdf.model.InfModel;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.Property;
import com.hp.hpl.jena.rdf.model.Resource;
import com.hp.hpl.jena.rdf.model.Statement;
import com.hp.hpl.jena.rdf.model.StmtIterator;
import com.hp.hpl.jena.reasoner.Derivation;
import com.hp.hpl.jena.reasoner.rulesys.GenericRuleReasoner;
import com.hp.hpl.jena.reasoner.rulesys.Rule;
import com.hp.hpl.jena.vocabulary.RDFS;

public class ReasonerTest {

    String NS = "urn:x-hp-jena:eg/";

    // Build a trivial example data set
    Model model = ModelFactory.createDefaultModel();
    InfModel inf;

    Resource A = model.createResource(NS + "A");
    Resource B = model.createResource(NS + "B");
    Resource C = model.createResource(NS + "C"); …
Run Code Online (Sandbox Code Playgroud)

java rdf jena reasoning jena-rules

1
推荐指数
1
解决办法
2508
查看次数

JENA API是否支持OWL 2?

我可以知道Apahe JENA是否在Java中支持OWL 2语法?它确实提到在文档(https://jena.apache.org/documentation/ontology/)中,它仅提供了有限的基数限制。我想向专家们证实这一点。

owl jena owl-api jena-rules

0
推荐指数
1
解决办法
901
查看次数

SPARQL:计算出高数据属性值

我有一个问答游戏,学生必须解决化学,英语,物理三个类别的问题.学生将在这些类别中获得积分,例如student1在化学中有50分,在英语中有70分,在物理上有65分.

我可以弄清楚学生在哪个类别中得分最高.但是,我怎样才能获得哪一个是哪个学生拥有的最高分?我的意思是如果一个学生用英语得到90分(没有其他学生得到这个分数),那么我们怎么能算出这个英语的最高分为90分.

记住:英语分数,化学分数,物理分数是存储在rdf文件中的数据属性.如果可以使用Jena规则或SPARQL或普通Java代码,我想要.

rdf semantic-web sparql jena-rules

-1
推荐指数
1
解决办法
125
查看次数

标签 统计

jena-rules ×4

jena ×3

rdf ×3

owl ×2

java ×1

owl-api ×1

reasoning ×1

semantic-web ×1

sparql ×1