[英]Jena SPARQL API using inference rules file
I am working with Jena SPARQL API, and I want to execute queries on my RDF files after applying inference rules. 我正在使用Jena SPARQL API,我想在应用推理规则后对我的RDF文件执行查询。 I created a .rul
file that contains all my rules; 我创建了一个.rul
文件,其中包含我的所有规则; now I want to run those rules and execute my queries. 现在,我想运行这些规则并执行查询。 When I used OWL, I proceeded this way: 当我使用OWL时,我是这样进行的:
OntModel model1 = ModelFactory.createOntologyModel( OntModelSpec..OWL_MEM_MICRO_RULE_INF);
// read the RDF/XML file
model1.read( "./files/ontology.owl", "RDF/XML" );
model1.read( "./files/data.rdf", "RDF/XML" );
// Create a new query
String queryString =
".....my query";
Query query = QueryFactory.create(queryString);
QueryExecution qe = QueryExecutionFactory.create(query, model1);
ResultSet results = qe.execSelect();
ResultSetFormatter.out(System.out, results, query);
I want to do the same thing with inferences rules, ie, load my .rul
file like this: 我想对推理规则做同样的事情,即像这样加载我的.rul
文件:
model1.read( "./files/rules.rul", "RDF/XML" );
This didn't work with .rul
files, the rules are not executed. .rul
文件.rul
,规则不执行。 Any ideas how to load a .rul
file? 有什么想法如何加载.rul
文件吗? Thanks in advance. 提前致谢。
Jena rules aren't RDF, and you don't read them into a model. 耶拿规则不是RDF,您也不会将其读入模型。
RDFS is RDF, and it is implemented internally using rules. RDFS是RDF,它使用规则在内部实现。
To build an inference model: 要构建推理模型:
Model baseData = ...
List<Rule> rules = Rule.rulesFromURL("file:YourRulesFile") ;
Reasoner reasoner = new GenericRuleReasoner(rules);
Model infModel = ModelFactory.createInfModel(reasoner, baseData) ;
See ModelFactory
for other ways to build models (eg, RDFS inference) directly. 有关ModelFactory
构建模型的其他方式(例如,RDFS推断),请参见ModelFactory
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.