Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ProgrammingLanguage should not be a subclass of Software #13

Open
jaccoud opened this issue Dec 18, 2015 · 2 comments
Open

ProgrammingLanguage should not be a subclass of Software #13

jaccoud opened this issue Dec 18, 2015 · 2 comments

Comments

@jaccoud
Copy link

jaccoud commented Dec 18, 2015

In bodies of knowledge such as those built with SKOS, setting "dbo:ProgrammingLanguage skos:broader dbo:Software" would be ok, because the definition of broader does not imply inheritance. That is not the case with OWL, where subclassing has very strict rules. A programming language is clearly not software, but rather the encoding (i.e. the semiotic code) used to write it. The same relation applies to natural languages and WrittenWorks -- English is clearly not a subclass of Book. I would go further: languages and texts are disjoint classes, as are Software and ProgrammingLanguage.
Maybe the author who created ProgrammingLanguage was thinking about interpreters, compilers and integrated developing environments, which must support one or more programming languages. These are indeed software, however they are not subclasses or instances of the languages they support.
I understand this ontology is not suposed to be a specialized ontology nor provide details on any branch of knowledge, but nevertheless such misplacement of classes impair correlation to other ontologies. For example, I cannot make my own software and programming language classes equivalent to dbpedia's because doing so would make my ontology inconsistent. Even without equivalence, most Software specific properties inherited by ProgramingLanguage just make no sense: for example, a programming language does not need a operating system (it does not execute) and neither can have a programmingLanguage property (this property would become reflexive). On the other hand, programming languages are defined by standards, while software is not (they can however conform to some standards, which is another different property).
I propose to fix this by moving ProgramingLanguage to Language and moving all natural languages which are today in Language to a NaturalLanguage class. Properties must be replaced accordingly.

Language

NaturalLanguage
ProgramingLanguage

Software

VideoGame

One could vote for another subclass like ArtificialLanguage, but this would include Esperanto and other made-up pseudolanguages, which I don't think would be apropriate. These should be classified just as Language, since they are neither natural nor programming languages.

@jimkont
Copy link
Member

jimkont commented Dec 22, 2015

Looks like a good correction to me

@mgns
Copy link
Member

mgns commented Feb 12, 2016

Fixed. Moved to superclass Language at least in Mappings Wiki, see http://mappings.dbpedia.org/index.php/OntologyClass:ProgrammingLanguage

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants