<!-- 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提取这些值?
答案 0 :(得分:2)
我不完全确定你想要从文件中删除什么,你的问题不明确。但是如果你想解析OWL,尤其是你所展示的RDF / XML格式的OWL,你应该看看使用Jena或Sesame,因为它们是用于处理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来编写/输出它。