[英]Does JENA API support OWL 2?
我可以知道 Apahe JENA 是否支持 Java 中的 OWL 2 語法? 它確實提到在文檔( https://jena.apache.org/documentation/ontology/ )中它只提供有限的基數限制。 我想從專家那里確認這一點。
阿帕奇耶拿不支持OWL2,只有通過OWL11 org.apache.jena.ontology.OntModel接口。 另請參閱文檔。
但是您仍然可以使用一些基於 jena 的外部 API 和工具(例如ONT-API ,即OWL-API -api( v5 ) impl over Jena 在 Jena 中使用 OWL2。
在 ONT-API 中有兩個主要的 OWL2 數據視圖,它們封裝了相同的 RDF 圖: com.github.owlcs.ontapi.jena.model.OntModel
和com.github.owlcs.ontapi.Ontology
(在舊版本中(ONT- API:v1.xx)這些類有名字ru.avicomp.ontapi.jena.model.OntGraphModel
和ru.avicomp.ontapi.OntologyModel
分別)。
com.github.owlcs.ontapi.jena.model.OntModel視圖完全類似於 Jena org.apache.jena.ontology.OntModel
,它是處理三元組的工具。 com.github.owlcs.ontapi.Ontology視圖是一個擴展的org.semanticweb.owlapi.model.OWLOntology
,它是處理公理數據的工具,由com.github.owlcs.ontapi.jena.model.OntModel
支持com.github.owlcs.ontapi.jena.model.OntModel
視圖,反之亦然。
例如,以下代碼段:
String uri = "https://stackoverflow.com/questions/54049750";
String ns = uri + "#";
OntModel m = OntModelFactory.createModel()
.setNsPrefixes(OntModelFactory.STANDARD).setNsPrefix("q", ns);
m.setID(uri);
OntClass c = m.createOntClass(ns + "c");
OntObjectProperty p = m.createObjectProperty(ns + "p");
OntIndividual i = c.createIndividual(ns + "i");
m.createObjectComplementOf(m.createObjectUnionOf(c, m.getOWLThing(),
m.createObjectSomeValuesFrom(p, m.createObjectOneOf(i))));
m.write(System.out, "ttl");
將產生以下本體:
@prefix q: <https://stackoverflow.com/questions/54049750#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
<https://stackoverflow.com/questions/54049750>
a owl:Ontology .
q:c a owl:Class .
q:p a owl:ObjectProperty .
q:i a owl:NamedIndividual , q:c .
[ a owl:Class ;
owl:complementOf [ a owl:Class ;
owl:unionOf ( q:c owl:Thing
[ a owl:Restriction ;
owl:onProperty q:p ;
owl:someValuesFrom [ a owl:Class ;
owl:oneOf ( q:i )
]
]
)
]
] .
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.