1
我正在實施一個版本,從WebProtege中使用的OWLEntity的URI中提取實體。我在這方面取得了成功。我可以告訴你下面的代碼。但我現在需要從標籤註釋中提取。我如何使用WebProtege提取它。 WebProtege在創建類時不創建URI(例如,http://www.co-ode.org/ontologies/pizza/2005/05/16/pizza.owl#Pizza)。它只用URI標註註釋。我想從標籤中提取URI。由於它具有(對於如http://www.co-ode.org/ontologies/pizza/2005/05/16/234y2890820802840> 「比薩」 @en>(有點像看這個,如果你需要正確的那個,我會回覆)誰能告訴我如何使用曼徹斯特語法中使用的曼徹斯特語法提取URI標籤註釋ShortformProvider
rootOntology = getProject().getRootOntology();
System.out.println(rootOntology.getAxioms());
final OWLDataFactory dataFactory
= rootOntology.getOWLOntologyManager().getOWLDataFactory();
iriShortFormProvider = new SimpleIRIShortFormProvider();
ShortFormProvider shortFormProvider = new ShortFormProvider() {
public String getShortForm(OWLEntity owlEntity) {
return iriShortFormProvider.getShortForm(owlEntity.getIRI());
}
@Override
public void dispose() {
}
};
OWLEntityChecker entityChecker
= new ShortFormEntityChecker(
new BidirectionalShortFormProviderAdapter(
Collections.singleton(rootOntology), shortFormProvider));
ManchesterOWLSyntaxEditorParser parser
= new ManchesterOWLSyntaxEditorParser(
dataFactory, query);
parser.setOWLEntityChecker(entityChecker);
Set<OntologyAxiomPair> set;
try {
set = parser.parseFrames();
System.out.println("SET SIZE" + set.size());
System.out.println("SET STRING" + set.toString());
for (OntologyAxiomPair s1 : set) {
OWLAxiom temp = s1.getAxiom();
Set<OWLAnnotationProperty> annotation = s1.getOntology().getAnnotationPropertiesInSignature();
Iterator itr = annotation.iterator();
while(itr.hasNext()){
System.out.println(s1.getOntology().getAnnotationPropertiesInSignature());
System.out.println("ITERATOR" + itr.next());
}
if (temp.getAxiomType() != AxiomType.DECLARATION
|| temp.getAxiomType() != AxiomType.SUBCLASS_OF || temp.getAxiomType() != AxiomType.DATA_PROPERTY_ASSERTION
)
res = Search(temp);
}
來自實例WebProtege來:。
<!-- http://webprotege.stanford.edu/classes/BfJkwFDiEj5mduXojVHyKi -->
<owl:Class rdf:about="http://webprotege.stanford.edu/classes/BfJkwFDiEj5mduXojVHyKi">
<rdfs:label xml:lang="en">AnimalType</rdfs:label>
<rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
</owl:Class>
<!-- http://webprotege.stanford.edu/classes/BjSxQcpX7bOcVccVf5beN0 -->
<owl:Class rdf:about="http://webprotege.stanford.edu/classes/BjSxQcpX7bOcVccVf5beN0">
<rdfs:label xml:lang="en">Omnivore</rdfs:label>
<rdfs:subClassOf rdf:resource="http://webprotege.stanford.edu/classes/BfJkwFDiEj5mduXojVHyKi"/>
</owl:Class>
<!-- http://webprotege.stanford.edu/classes/CKjBW7KqdcJPRpBtk2T6WE -->
<owl:Class rdf:about="http://webprotege.stanford.edu/classes/CKjBW7KqdcJPRpBtk2T6WE">
<rdfs:label xml:lang="en">Herbivore</rdfs:label>
<rdfs:subClassOf rdf:resource="http://webprotege.stanford.edu/classes/BfJkwFDiEj5mduXojVHyKi"/>
</owl:Class>
<!-- http://webprotege.stanford.edu/classes/COt181AeQ0WewmOoZ0NYYF -->
<owl:Class rdf:about="http://webprotege.stanford.edu/classes/COt181AeQ0WewmOoZ0NYYF">
<rdfs:label xml:lang="en">Fish</rdfs:label>
<rdfs:subClassOf rdf:resource="http://webprotege.stanford.edu/classes/DfGxuPUoLBiOvyBKpUJWvr"/>
</owl:Class>
<!-- http://webprotege.stanford.edu/classes/CPp9DIflV676wmq3onRsJa -->
<owl:Class rdf:about="http://webprotege.stanford.edu/classes/CPp9DIflV676wmq3onRsJa">
<rdfs:label xml:lang="en">Land</rdfs:label>
<rdfs:subClassOf rdf:resource="http://webprotege.stanford.edu/classes/7V0PYXjh6vM9AjTzh9DPwC"/>
</owl:Class>
<!-- http://webprotege.stanford.edu/classes/DfGxuPUoLBiOvyBKpUJWvr -->
<owl:Class rdf:about="http://webprotege.stanford.edu/classes/DfGxuPUoLBiOvyBKpUJWvr">
<rdfs:label xml:lang="en">Animal</rdfs:label>
<rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
</owl:Class>
我是否正確理解您WebProtege不允許您指定您創建的類和個人的URI?更新:我剛剛玩過WebProtege,看起來確實如此。這令我很驚訝;一個不能指定URI的OWL工具不是很有用。我希望我們在這裏錯過了一些東西。 –
@Joshua,是的,沒錯。我們無法獲得完整的URI。 –