2015-09-23 16 views
9

Hiện tại tôi đang cố gắng tìm ra, sau đó sử dụng OWL và sau đó sử dụng UML để mô tả một miền quan tâm trong quy trình Kỹ thuật Phần mềm.Sự khác nhau giữa OWL và UML trong Quy trình Kỹ thuật Phần mềm

Tôi đã đọc this paper by Atkinson, cung cấp tổng quan rất tốt về sự khác biệt và mức độ cân bằng giữa OWL và UML ở cấp ngữ nghĩa và cú pháp.

Tuy nhiên, nó không cung cấp dấu hiệu rõ ràng trong trường hợp sử dụng, có thể tốt hơn khi sử dụng OWL thay vì - ví dụ - một sơ đồ lớp UML.

Nó có thể là quá trình phát triển lớp lót, quyết định ngôn ngữ lập mô hình (ví dụ: model-driven = go for UML, ontology-driven = go for OWL) nhưng đối với bản thân thì sự khác biệt này vẫn chưa rõ?

Trong cả hai ngôn ngữ, tôi có thể xây dựng một thuật ngữ, mà tôi - là một kỹ sư bản thể học - có thể tái sử dụng để suy ra kiến ​​thức mới từ nó. Là một kỹ sư phần mềm, tôi sử dụng thuật ngữ này để xây dựng một hệ thống (đơn).

Vì vậy, sự khác biệt giữa OWL và UML chỉ là lĩnh vực học tập? Hoặc tôi có thể sử dụng OWL để mô tả việc xây dựng hệ thống phần mềm (đơn) của tôi không?

Hơn nữa, điều này đặt ra câu hỏi nếu quyết định chọn loại ngôn ngữ lập trình nào chỉ được thúc đẩy bởi mục tiêu mà tôi cố gắng đạt được?

Trả lời

9

Một câu trả lời tổng hợp

  • UML là một (đồ họa) ngôn ngữ cho mô hình
  • OWL là một ngôn ngữ sử dụng cho knowledge representation (KR) ở một góc độ ngữ nghĩa

Trong lần đầu tiên nơi, mục đích OWL không phải là mô hình hóa. Sử dụng kỹ thuật KR là một lựa chọn trong lĩnh vực kỹ nghệ phần mềm. Nó phải khác biệt với bất kỳ quy trình kỹ thuật phần mềm nào. Cả hai ngôn ngữ đều có các mục đích khác nhau.

Tất nhiên, bạn có thể [sử dụng] OWL để mô tả việc xây dựng [hệ thống phần mềm]. Nhưng sự quan tâm của một động thái như vậy chủ yếu là trong lý luận tự động về quy trình xây dựng phần mềm của bạn và sẽ không hữu ích lắm trong bối cảnh của một dự án duy nhất. Điều này sẽ chỉ có hiệu lực nếu được thực hiện cho tất cả các dự án của bạn để có hậu quả là knowledge base (KB).

Giải thích chi tiết

Theo W3C wiki section about OWL:

W3C Web Ontology Language (OWL) là một ngôn ngữ Semantic Web được thiết kế để đại diện cho kiến ​​thức phong phú và phức tạp về điều gì đó, nhóm thứ và mối quan hệ giữa mọi thứ. OWL là một ngôn ngữ dựa trên logic tính toán sao cho kiến ​​thức được thể hiện trong OWL có thể được khai thác bởi các chương trình máy tính, ví dụ, để xác minh tính nhất quán của kiến ​​thức đó hoặc để làm cho kiến ​​thức ngầm rõ ràng

Cần có một số tranh luận về một ngôn ngữ mô hình hóa. Ví dụ: Wikipedia article on the topic xem xét ý nghĩa rộng và cũng có thể bao gồm OWL. Tôi xem xét ở đây với thuật ngữ mô hình hóa chỉ hoạt động kỹ nghệ phần mềm (đó là hoạt động bạn tập trung vào câu hỏi của mình).

Bạn có thể cần lập mô hình để xác định bản thể luận, giống như bạn cần cho sự phát triển của dự án phần mềm. Nhưng mô hình OWL này sẽ không xem xét các yếu tố kỹ thuật phần mềm mà là các dữ liệu miền của dự án của bạn. Nói cách khác, sử dụng UML trong quy trình xây dựng phần mềm nhằm mục đích thiết lập các phần tử phần mềm.Với OWL, bạn sẽ không tập trung vào các yếu tố này, trừ khi bạn đang cố gắng tự động lập luận về xây dựng phần mềm.

Bên cạnh đó, mối quan hệ tồn tại giữa UML và OWL. A note by Walter W. Change trong khung của W3C thảo luận câu hỏi. Tôi sẽ tóm tắt câu hỏi xem xét hai quan hệ riêng biệt.

Sử dụng UML để đại diện cho kiến ​​thức OWL

Một OMG đặc điểm kỹ thuật gọi là ODM (ví Ontology Definition metamodel) cung cấp một metamodel để xác định bản thể học. Trong khung của đặc tả này, việc sử dụng một lược tả UML được giới thiệu như một cách để thu hẹp khoảng cách giữa hai ngôn ngữ. Trong đặc điểm kỹ thuật ODM 1.1, phần 8.4.2:

Mục tiêu của một cấu hình UML từ quan điểm ODM là cung cấp cầu nối giữa UML và các đại diện tri thức trên cơ sở vững chắc, ngữ nghĩa, với mục tiêu rộng hơn của phần mềm liên quan và các phương pháp logic để đại diện cho thông tin.

Việc sử dụng hồ sơ UML được giới thiệu trong an article. Bạn có thể tìm thấy một hồ sơ như vậy trong ODM 1.0 specification resources, dưới dạng tài liệu phi quy chuẩn. Theo những gì được xem xét ở đây, hồ sơ UML này có thể là một công cụ để mô hình hóa ontology.

Sử dụng OWL/công nghệ Semantic Web để đại diện cho UML

RDF là định dạng cơ sở sử dụng để viết các ontology OWL.

Đầu (2000) academic work cung cấp tài liệu RDF ngữ nghĩa mô hình hoá các phần tử UML (dựa trên đặc tả OMG). Tác phẩm này đứng trước draft works on the OWL W3C recommendation (2002).

4

Thực ra OWL có sẵn dưới dạng hồ sơ trong UML. Xem OMG specfication. Vì vậy, bạn có thể sử dụng UML với tiểu sử OWL trong "một món súp".

+0

Cảm ơn câu trả lời của bạn - đó là một thông tin khá hữu ích! Ok, tôi có thể trộn chúng lên. Tuy nhiên nó vẫn không rõ ràng, tại sao tôi nên trộn cả hai ngôn ngữ trong quá trình SE? Có một số loại lợi ích? Tôi nghĩ rằng trộn chúng trong "một canh" kết quả sẽ trở nên rất phức tạp ... – rzo

+0

Không. Bạn có thể mô tả những thứ mức cao trong OWL và khi cần thiết bạn có thể bước xuống UML. –

+0

Tôi đoán câu hỏi trung tâm của bạn giống như "Tôi có thể nói những lời của Goethe bằng tiếng Pháp" hay "Tôi có thể nói những lời của Rousseau bằng tiếng Đức". Goethe đã từng nói. "Họ [người Pháp] dịch mọi thứ sang ngôn ngữ riêng của họ và từ đó về sau nó có ý nghĩa hoàn toàn khác". –

4

Hãy bắt đầu với các định nghĩa.

Unified Modeling Language (UML) là một mục đích chung, phát triển, mô hình ngôn ngữ trong lĩnh vực công nghệ phần mềm, đó là nhằm cung cấp một cách tiêu chuẩn để hình dung thiết kế của một hệ thống . (Wikipedia)

UML có nhiều sơ đồ, nhưng không có tác phẩm kinh điển nào được thiết kế cho mô hình bản thể học. Do đó, các nhà nghiên cứu đã tạo ra OWL với mục đích này.

W3C Web Ontology Language (OWL) là một ngôn ngữ Web Semantic thiết kế để đại diện cho kiến ​​thức phong phú và phức tạp về điều gì đó, nhóm của sự vật, và quan hệ giữa các vật. (W3C)

Chẳng hạn như nói bởi Thomas Kilian trong câu trả lời khác:

OWL có sẵn như là hồ sơ trong UML. Xem thông số OMG. Vì vậy, bạn có thể sử dụng UML với tiểu sử OWL trong "một canh".

Do đó, OWL có thể là một phần của bộ sơ đồ UML được sử dụng trong Quy trình kỹ thuật phần mềm. Lợi ích chính của OWL so với sơ đồ UML cổ điển là khi bạn phải thiết kế một hệ thống sử dụng bản thể luận. Mục đích của sơ đồ lớp là biểu diễn các lớp, chứ không phải các ontology. Nếu hệ thống của bạn không dựa vào ontology, hãy gắn bó với các sơ đồ UML cổ điển; bạn không cần OWL. Nếu hệ thống của bạn sử dụng bản thể luận và bạn cần biểu diễn nó trên một sơ đồ, hãy sử dụng OWL.

2

OWL được sử dụng để mô tả một miền và để có thể cụ thể, sử dụng ngữ nghĩa, chỉ định kiến ​​thức về một miền cũng như mô tả các đặc trưng của nó. Lấy ví dụ về bản thể luận Friend of a Friend. Sử dụng nó, bạn có thể mô tả cách mọi người liên hệ với nhau.

Bạn có thể nói rằng bạn có thể làm điều tương tự bằng cách sử dụng UML và bạn chính xác. Bạn có thể chỉ định các thuộc tính, các mối quan hệ và vv, sử dụng OWL cũng như UML. Tuy nhiên, những gì bạn không thể làm với UML là suy ra kiến ​​thức về miền. OWL, là một ngôn ngữ Web ngữ nghĩa, mô hình một miền với một giả định Open hoặc Closed World. Về cơ bản bạn giả định kiến ​​thức dựa trên những gì được mô tả trong miền. Sau đó, bạn có thể sử dụng các hướng dẫn cụ thể để suy ra kiến ​​thức bằng cách sử dụng Quy tắc hoặc chỉ xem xét các biến vị ngữ và các câu lệnh bạn đã tạo. Hơn nữa, bạn có thể sử dụng các ngôn ngữ truy vấn cụ thể như SPARQL để truy vấn bản thể luận của bạn nhiều theo cùng cách bạn sẽ sử dụng SQL để truy vấn một cơ sở dữ liệu.

TL; DR: Sử dụng UML bạn chỉ định cách dịch một miền cụ thể thành phần mềm, sử dụng OWL bạn chỉ định kiến ​​thức về miền vì nó giàu hơn UML nhiều.

-2

Tầm quan trọng và lợi ích của việc ánh xạ ontology miền tới mô hình UML đang tích hợp các lợi ích và chất lượng mà hai kỹ thuật mô hình này cung cấp. Nghĩa là, nếu đã có các ontology miền với một cấp quyền nhất định, các cơ sở tri thức này có thể giúp tạo ra các sơ đồ lớp UML, chẳng hạn như các đảm bảo tiên đề được cung cấp bởi logic mô tả để xây dựng nó. bởi chủ nghĩa hình thức này, với sự biến đổi được dùng để chỉ ra bằng chứng cho thấy việc sử dụng lại ontology có thể giúp giảm sự mơ hồ trong sơ đồ lớp.

Các vấn đề liên quan