2011-10-11 19 views
5

Tôi đang tạo tệp RDF theo lập trình trong Jena tức là khi tôi chèn dữ liệu vào rdf (trường hợp) tôi cần có URI duy nhất (tham chiếu đến tài nguyên), giống như khóa chính trong rdbms. Tôi muốn biết là nó posiible để làm trong Jena như khi tôi sẽ tạo tài nguyên cho một ví dụ tôi có thể tạo ra các URI?Tạo URI trong Jena cho RDF

Ví dụ:

Resource resAnswer = ModelCreation.md.createResource(RDFResourcesURI.Answer_Resource_URI + answer.getAnswer_id()); 

- ở đây tôi đang hardcoding (hoặc người dùng nhập vào) các answer_id và sau đó phụ thêm vào một URI xác định trước. Thay vì hardcoding tôi có thể tạo ra nó (như tăng tự động trong mysql)?

+2

Câu hỏi liên quan - http://answers.semanticweb.com/questions/516/generating-unique-ids-in-triple-store-ala-mysql-auto_increment - Thảo luận về ID tự động incrementing trong Cửa hàng Ba nói chung – RobV

Trả lời

1

Nếu bạn muốn ID chỉ duy nhất, bạn có thể sử dụng một cái gì đó giống như UUID.randomUUID() hoặc UUID.fromString(name)

UUID là trong java.util gói

3

Có một URI scheme cho UUIDs http://www.ietf.org/rfc/rfc4122.txt, vì vậy bạn có thể sử dụng để biến UUIDs vào URI , ví dụ ví dụ. urn: uuid: 2238b240-f3eb-11e0-be50-0800200c9a66

Hoặc bạn chỉ có thể nối UUID vào một số tiền tố, ví dụ: http://my.example/id/2238b240-f3eb-11e0-be50-0800200c9a66

URI dựa trên URI dựa trên HTTP rất tốt nếu bạn muốn có thể làm cho nó có thể giải quyết được.

0

Tôi sử dụng URN để xác định tài nguyên RDF của tôi vì URL không thêm nhiều giá trị vì tôi không xuất bản tài nguyên của mình. Có thư viện Jena để tạo UUID dưới dạng URN.

scala> import com.hp.hpl.jena.shared.uuid.JenaUUID 
import com.hp.hpl.jena.shared.uuid.JenaUUID 

scala> val resourceURN = JenaUUID.generate().asURN() 
resourceURN: String = urn:uuid:0a9ac70c-2ad1-11b2-8012-10ddb1d60524 
Các vấn đề liên quan