从OWL文件中提取数据

时间:2013-02-08 01:52:31

标签: java owl

<!-- http://www.semanticweb.org/vaio/ontologies/2013/0/untitled-ontology-113#hasDegree -->

<owl:ObjectProperty rdf:about="http://www.semanticweb.org/vaio/ontologies/2013/0/untitled-ontology-113#hasDegree">

<rdfs:range rdf:resource="http://www.semanticweb.org/vaio/ontologies/2013/0/untitled-ontology-113#degree"/>

<rdfs:domain rdf:resource="http://www.semanticweb.org/vaio/ontologies/2013/0/untitled-ontology-113#student"/>

</owl:ObjectProperty>

使用java api我需要签入<owl:ObjectProperty, 如果rdf:about那么我如何在hasDegree之后#采取rdfs:range以及degree#之后的{{1}}

在第6行?

或者我如何使用java api提取这些值?

4 个答案:

答案 0 :(得分:2)

我不完全确定你想要从文件中删除什么,你的问题不明确。但是如果你想解析OWL,尤其是你所展示的RDF / XML格式的OWL,你应该看看使用JenaSesame,因为它们是用于处理RDF的事实标准Java API 。我推荐使用Sesame API,因为它更简单,更容易掌握,但两者都是非常好的库。

每个网站上都有关于如何使用API​​和活跃用户的良好文档。开发者论坛,您可以在那里寻求帮助。

祝你好运。

答案 1 :(得分:0)

由于您的输入是OWL,请考虑使用OWL-API或任何其他OWL API,而不是使用较少OWL的工具,如XPath,XSLT,RDF库等。

答案 2 :(得分:0)

我假设您正在使用OWL-API并且您的问题是:“如何在我的本体中获取对象属性的范围或域?”在那种情况下:

/*Load the ontology from a local file and do the initialisations*/
File inputfile = new File("ontologyPath");
OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); ;
OWLDataFactory dataFactory = manager.getOWLDataFactory();
OWLOntology yourOntology = manager.loadOntologyFromOntologyDocument(inputfile);
IRI ontologyIRI = yourOntology.getOntologyID().getOntologyIRI();  

/*Get an object property and its ranges*/  
OWLObjectProperty o_p_about = dataFactory.getOWLObjectProperty(IRI.create(ontologyIRI + "#"+"about"));
Set<OWLClassExpression> ranges_of_about = about.getRanges(LUCADAOntology);

要从这里获取它,您可以查看OWL-API网页上的文档和示例代码,它们非常有用。

答案 3 :(得分:0)

使用Jena API调用OWL文件,然后使用Turtle来编写/输出它。