Làm cách nào để đọc các tệp .owl
trong java và hiển thị nội dung của nó?Làm cách nào để đọc các tệp .owl trong java và hiển thị nội dung của nó?
Trả lời
Ngữ cảnh là gì? OWL là một định dạng bản thể đọc được đọc bởi http://protege.stanford.edu/.
Sử dụng The OWL API.
Bạn có một số tùy chọn.
Tệp .owl là các tệp văn bản và bạn có thể hiển thị chúng theo cách đó.
.owl sử dụng XML, vì vậy bạn có thể coi nó như một tài liệu XML. Tham khảo http://www.w3.org/TR/owl-xmlsyntax/ và http://www.w3.org/TR/owl2-overview/ để biết danh sách các thẻ và những gì chúng đại diện.
Hoặc bạn có thể sử dụng API OWL. Bạn có thể tải nó tại địa chỉ: http://owlapi.sourceforge.net/index.html, và có một số ví dụ tại http://owlapi.sourceforge.net/documentation.html
Hiển thị và OWL ontology là hơi khó khăn vì thông tin bạn muốn hiển thị có thể được liên kết cao, vì vậy cấu trúc của nó là của một đồ thị chứ không phải tuần tự hoặc dạng bảng. Có thể cho các lớp được phân lớp nhiều lớp con khác, và phân loại theo chu kỳ là có thể. Tức là, A có thể là một phân lớp của B, có thể là một phân lớp của C, có thể là một phân lớp của A.
API OWL trong mã nguồn (http://owlapi.sourceforge.net/) có tất cả các chức năng cơ bản, mặc dù tài liệu đủ. Bạn có thể sẽ lãng phí thời gian để tìm ra cách các hàm phức tạp không được hiển thị trong các ví dụ.
Tôi khuyên bạn nên sử dụng API Protege cho các tệp OWL. (http://protegewiki.stanford.edu/wiki/ProtegeOWL_API_Programmers_Guide /). API này có tài liệu tốt và wiki dễ điều hướng. Các tệp OWL không dễ làm việc xung quanh vì tính chất ngữ nghĩa của nó và việc xây dựng API của riêng bạn có thể không dễ dàng. Protege cũng có SWRL API nếu bạn muốn xử lý tiên đề và quy tắc.
Dưới đây là một ví dụ để phân tích một ontology OWL với thư viện OWL API:
import static org.semanticweb.owlapi.search.Searcher.annotations;
import static org.semanticweb.owlapi.vocab.OWLRDFVocabulary.RDFS_LABEL;
import java.util.ArrayList;
import java.util.List;
import org.semanticweb.owlapi.apibinding.OWLManager;
import org.semanticweb.owlapi.model.IRI;
import org.semanticweb.owlapi.model.OWLAnnotation;
import org.semanticweb.owlapi.model.OWLAnnotationProperty;
import org.semanticweb.owlapi.model.OWLClass;
import org.semanticweb.owlapi.model.OWLDataFactory;
import org.semanticweb.owlapi.model.OWLException;
import org.semanticweb.owlapi.model.OWLLiteral;
import org.semanticweb.owlapi.model.OWLOntology;
import org.semanticweb.owlapi.model.OWLOntologyCreationException;
import org.semanticweb.owlapi.model.OWLOntologyManager;
public class OwlParser {
private final OWLOntology ontology;
private OWLDataFactory df;
public OwlParser(OWLOntology ontology, OWLDataFactory df) {
this.ontology = ontology;
this.df = df;
}
public void parseOntology()
throws OWLOntologyCreationException {
for (OWLClass cls : ontology.getClassesInSignature()) {
String id = cls.getIRI().toString();
String label = get(cls, RDFS_LABEL.toString()).get(0);
System.out.println(label + " [" + id + "]");
}
}
private List<String> get(OWLClass clazz, String property) {
List<String> ret = new ArrayList<>();
final OWLAnnotationProperty owlProperty = df
.getOWLAnnotationProperty(IRI.create(property));
for (OWLOntology o : ontology.getImportsClosure()) {
for (OWLAnnotation annotation : annotations(
o.getAnnotationAssertionAxioms(clazz.getIRI()), owlProperty)) {
if (annotation.getValue() instanceof OWLLiteral) {
OWLLiteral val = (OWLLiteral) annotation.getValue();
ret.add(val.getLiteral());
}
}
}
return ret;
}
public static void main(String[] args) throws OWLException,
InstantiationException, IllegalAccessException,
ClassNotFoundException {
String x = "http://ontology.neuinfo.org/NIF/Dysfunction/NIF-Dysfunction.owl";
IRI documentIRI = IRI.create(x);
OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
OWLOntology ontology = manager
.loadOntologyFromOntologyDocument(documentIRI);
OwlParser parser = new OwlParser(ontology, manager.getOWLDataFactory());
parser.parseOntology();
}
}
Có thêm một cách sử dụng api jena trong JAVA nhưng bạn phải tạo SDB hoặc TDB file cho file OWL cho . Sau đó, bạn có thể truy vấn bằng SPARQL. JENA API
- 1. Làm cách nào để hiển thị hình ảnh này trong phần nội dung email của tôi?
- 2. Làm cách nào để đọc nội dung của tiêu đề bố cục nội dung?
- 3. Làm thế nào để, trong smalltalk, đọc và xử lý nội dung của tệp CSV
- 4. Làm cách nào để đọc nội dung của một tệp trong danh sách trong Lisp?
- 5. Làm cách nào để hiển thị nội dung của mảng này bằng cách sử dụng DataGridView?
- 6. cách đọc nội dung của tệp trong Erlang?
- 7. Làm cách nào để hiển thị nội dung của TStringList trong trình gỡ lỗi?
- 8. Tiêu đề UITableView hiển thị nội dung đằng sau nó
- 9. Làm thế nào để hiển thị NSData với nội dung PDF trong UIWebView của iOS?
- 10. Cách hiển thị nội dung bản đồ?
- 11. Cách đọc và hiển thị tệp trong tiện ích mở rộng của chrome
- 12. Cách đọc trình đọc màn hình để ngừng đọc và đọc nội dung khác nhau
- 13. Đọc và phân tích nội dung của tệp rất lớn
- 14. PHP: Làm cách nào để hiển thị nội dung của một tệp văn bản trên trang của tôi?
- 15. Cách đọc nội dung của tệp được nén mà không cần giải nén trong java
- 16. Hiển thị một phần trong nội dung
- 17. Làm cách nào để hiển thị nội dung của tệp ở trạng thái cụ thể của repo git?
- 18. Làm cách nào để chỉ xóa nội dung của tệp trong java?
- 19. cách đọc nội dung của tệp bằng Fileupload
- 20. Android - Truy cập tệp từ nội dung \ PDF hiển thị
- 21. Danh sách các tệp trong thư mục nội dung và thư mục con của nó
- 22. Làm thế nào để hiển thị thông báo tải trong khi UIWebView tải nội dung của nó?
- 23. Cách hiển thị hoặc đọc tệp docx
- 24. Đọc nội dung của một tệp trong sharpsvn
- 25. Làm cách nào để phân tích cú pháp nội dung yêu cầu JSON trong Sinatra chỉ một lần và hiển thị nó cho tất cả các tuyến đường?
- 26. Cách đọc nội dung của tệp nhị phân trong một chuỗi trong Clojure?
- 27. Đọc tệp với Build Action = Nội dung
- 28. Hiển thị lồng nhau của Jinja trên nội dung biến
- 29. Làm cách nào để hiển thị nội dung trong màn hình JComboBox ở chính giữa?
- 30. Làm thế nào để hiển thị nội dung html thông qua các thông điệp bình?
tôi muốn đọc tệp .owl trong java và hiển thị các khái niệm và khái niệm phụ của nó – nagender