Reputation: 2261
I'm new to the concept of OWL/RDF ontologies and thinking it would useful to be able to convert them to UML so I could then generate class skeletons using my IDE. Assuming this is a reasonable thing to do, can you please recommend an approach?
I'm aware that there are OWL/RDF parsers like this one, but I can't find any that will convert to UML.
EDIT:
Based on the comments let me modify the question:
When starting a new project based on an existing ontology is there a way to easily create skeleton classes as a starting point? I do not need to synchronize changes between the ontology and the classes - it is a one time setup that I expect will take a significant amount of copy and paste which strikes me as the wrong approach.
If I'm not using ontologies correctly, can you please explain what their purpose is (if any) in designing class hierarchies?
Here's an example of what I want to implement (except this is only 1 sensor and I need to implement several):
http://www.w3.org/2005/Incubator/ssn/XGR-ssn-20110628/#Smart_product_example
Upvotes: 4
Views: 3244
Reputation: 15594
To implement https://github.com/WolfgangFahl/pysotsog/issues/21 I created some conversion code see https://github.com/WolfgangFahl/pysotsog/blob/main/skg/dblp.py. It is currently for the dblp schema at: https://dblp.org/rdf/schema and a conversion example is at: plantum online dblp schema
/'
Wolfgang Fahl 2022-11-19
updated 2022-11-19
dblp schema https://dblp.org/rdf/schema
converted from owl to plantuml
'/
title dblp schema https://dblp.org/rdf/schema converted from owl to plantuml updated 2022-11-19
hide circle
package foaf {
class Document {
}
}
package dblp {
note top of AmbiguousCreator
Ambiguous Creator
Not an actual creator, but an ambiguous proxy for an unknown number of unrelated actual creators. Associated publications do not have their true creators determined yet.
end note
class AmbiguousCreator{
}
AmbiguousCreator--Creator:possibleActualCreator
Creator <|-- AmbiguousCreator
note top of Informal
Informal
An informal or other publication.
end note
class Informal{
}
Publication <|-- Informal
note top of Creator
Creator
A creator of a publication.
end note
class Creator{
primaryCreatorName:string
homepage:Document
creatorNote:string
orcid:anyUri
creatorName:string
affiliation:string
awardWebpage:Document
primaryAffiliation:string
primaryHomepage:Document
}
Creator--Publication:editorOf
Creator--AmbiguousCreator:proxyAmbiguousCreator
Creator--Creator:coCreatorWith
Creator--Creator:homonymousCreator
Creator--Publication:authorOf
Creator--Creator:coEditorWith
Creator--Publication:creatorOf
Creator--Creator:coAuthorWith
Entity <|-- Creator
note top of Publication
Publication
A publication.
end note
class Publication{
primarydocumentPage:Document
listedOnTocPage:Document
yearOfEvent:gYear
publishedBy:string
isbn:anyUri
publishersAddress:string
publicationNote:string
title:string
bibtexType:Entry
publishedInBookChapter:string
doi:anyUri
documentPage:Document
numberOfCreators:integer
publishedInSeries:string
publishedInSeriesVolume:string
publishedIn:string
pagination:string
yearOfPublication:gYear
monthOfPublication:string
publishedInJournalVolumeIssue:string
publishedInJournal:string
thesisAcceptedBySchool:string
publishedInJournalVolume:string
publishedInBook:string
}
Publication--Creator:createdBy
Publication--Creator:authoredBy
Publication--Creator:editedBy
Publication--Signature:hasSignature
Publication--Publication:publishedAsPartOf
Entity <|-- Publication
note top of Data
Data
Research data or artifacts.
end note
class Data{
}
Publication <|-- Data
note top of Person
Person
An actual person, who is a creator of a publication.
end note
class Person{
}
Creator <|-- Person
note top of AuthorSignature
Author Signaure
The information that links a publication to an author.
end note
class AuthorSignature{
}
Signature <|-- AuthorSignature
note top of Inproceedings
Inproceedings
A conference or workshop paper.
end note
class Inproceedings{
}
Publication <|-- Inproceedings
note top of Withdrawn
Withdrawn
A withdrawn publication item.
end note
class Withdrawn{
}
Publication <|-- Withdrawn
note top of EditorSignature
Editor Signaure
The information that links a publication to an editor.
end note
class EditorSignature{
}
Signature <|-- EditorSignature
note top of Editorship
Editorship
An edited publication.
end note
class Editorship{
}
Publication <|-- Editorship
note top of Incollection
Incollection
A part/chapter in a book or a collection.
end note
class Incollection{
}
Publication <|-- Incollection
note top of Reference
Reference
A reference work entry.
end note
class Reference{
}
Publication <|-- Reference
note top of Group
Group
A creator alias used by a group or consortium of persons.
end note
class Group{
}
Creator <|-- Group
note top of Signature
Signature
The information that links a publication to a creator.
end note
class Signature{
signatureOrcid:anyUri
signatureDblpName:string
signatureOrdinal:integer
}
Signature--Creator:signatureCreator
Signature--Publication:signaturePublication
note top of Book
Book
A book or a thesis.
end note
class Book{
}
Publication <|-- Book
note top of Entity
Entity
A general, identifiable entity in dblp.
end note
class Entity{
identifier:anyUri
wikipedia:Document
archivedWebpage:Document
wikidata:anyUri
webpage:Document
}
Thing <|-- Entity
note top of Article
Article
A journal article.
end note
class Article{
}
Publication <|-- Article
}
Just create an issue following the links in http://sotsog.bitplan.com if you'd like to get an online version.
have a more generic version as of 2023-01-08
Upvotes: 1
Reputation: 576
Check for UML to OWL converter. It converts UML to RDF/OWL, so it does job in opposite direction, but it can be used as a template for your task. The converter is based on MDA approach, so requires knowledge of it (MOF, ODM, Eclipse EMF, ATL), which is worth to have.
Upvotes: 0
Reputation: 2261
My understanding is that the concept of the "semantic web" is still largely in the visionary stage and will not impact developers for some time. The initial applications seem to be centered around knowledge sharing between humans not machines. Hopefully it moves toward machine-to-machine sharing as there doesn't appear to be any interest in that at this time.
Upvotes: -4