Skip to main content

An SKOS-Based Vocabulary on the Swift Programming Language

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNISA,volume 12507))

Abstract

Domain ontologies about one or several programming languages have been created in various occasions, mostly in the context of Technology Enhanced Learning (TEL). Their benefits range from modeling learning outcomes, over organization and annotation of learning material, to providing scaffolding support in programming labs by integrating relevant learning resources. The Swift programming language, introduced in 2014, is currently gaining momentum in different fields of application. Both its powerful syntax as well as the provided type safety make it a good language for first-year computer science students. However, it has not yet been the subject of a domain ontology. In this paper, we present an SKOS-based vocabulary on the Swift programming language, aiming at enabling the benefits of previous research for this particular language. After reviewing existing ontologies on other programming languages, we present the modeling process of the Swift vocabulary, its integration into the LOD Cloud and list all of its resources available to the research community. Finally, we showcase how it is being used in different TEL tools.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   89.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Notes

  1. 1.

    https://vapor.codes.

  2. 2.

    https://www.tensorflow.org/swift/.

  3. 3.

    https://pypl.github.io/PYPL.html.

  4. 4.

    https://tiobe.com/tiobe-index/.

  5. 5.

    https://insights.stackoverflow.com/survey/2019#most-loved-dreaded-and-wanted.

  6. 6.

    https://docs.oracle.com/javase/tutorial/.

  7. 7.

    “Pluralitas non est ponenda sine necessitate.”

  8. 8.

    https://www.w3.org/2004/02/skos/.

  9. 9.

    https://docs.swift.org/swift-book/.

  10. 10.

    https://www.crummy.com/software/BeautifulSoup/.

  11. 11.

    https://spacy.io.

  12. 12.

    https://rdflib.readthedocs.io/en/stable/.

  13. 13.

    https://protege.stanford.edu.

  14. 14.

    https://lambdamusic.github.io/Ontospy/.

  15. 15.

    https://www.dublincore.org/specifications/dublin-core/dcmi-terms/.

  16. 16.

    http://xmlns.com/foaf/spec/.

  17. 17.

    http://vos.openlinksw.com.

  18. 18.

    https://creativecommons.org/licenses/by-sa/4.0/.

  19. 19.

    https://pypl.github.io/IDE.html.

  20. 20.

    https://marketplace.visualstudio.com/items?itemName=cgrevisse.alma4code.

  21. 21.

    https://github.com/cgrevisse/swift-semantic.

  22. 22.

    https://github.com/apple/swift-syntax.

  23. 23.

    https://docs.swift.org/swift-book/LanguageGuide/Properties.html#ID259.

  24. 24.

    https://github.com/apple/swift-evolution.

  25. 25.

    https://lod-cloud.net/dataset/Swift.

  26. 26.

    https://forums.swift.org/c/related-projects/25.

  27. 27.

    https://www.w3.org/RDF/Validator/.

References

  1. de Aguiar, C.Z., de Almeida Falbo, R., Souza, V.E.S.: OOC-O: a reference ontology on object-oriented code. In: Laender, A.H.F., Pernici, B., Lim, E.-P., de Oliveira, J.P.M. (eds.) ER 2019. LNCS, vol. 11788, pp. 13–27. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-33223-5_3

    Chapter  Google Scholar 

  2. Alnusair, A., Zhao, T.: Using ontology reasoning for reverse engineering design patterns. In: Ghosh, S. (ed.) MODELS 2009. LNCS, vol. 6002, pp. 344–358. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-12261-3_32

    Chapter  Google Scholar 

  3. Andrews, P., Zaihrayeu, I., Pane, J.: A classification of semantic annotation systems. Semant. Web 3(3), 223–248 (2012). https://doi.org/10.3233/SW-2011-0056

    Article  Google Scholar 

  4. Atzeni, M., Atzori, M.: CodeOntology: RDF-ization of source code. In: d’Amato, C., et al. (eds.) ISWC 2017. LNCS, vol. 10588, pp. 20–28. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-68204-4_2

    Chapter  Google Scholar 

  5. Baker, T., Bechhofer, S., Isaac, A., Miles, A., Schreiber, G., Summers, E.: Key choices in the design of Simple Knowledge Organization System (SKOS). J. Web Semant. 20, 35–49 (2013). https://doi.org/10.1016/j.websem.2013.05.001

    Article  Google Scholar 

  6. De Meester, B., Dimou, A., Verborgh, R., Mannens, E.: An ontology to semantically declare and describe functions. In: Sack, H., Rizzo, G., Steinmetz, N., Mladenić, D., Auer, S., Lange, C. (eds.) ESWC 2016. LNCS, vol. 9989, pp. 46–49. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-47602-5_10

    Chapter  Google Scholar 

  7. Dehors, S., Faron-Zucker, C.: QBLS: a semantic web based learning system. In: Proceedings of EdMedia: World Conference on Educational Media and Technology 2006, pp. 2795–2802. Association for the Advancement of Computing in Education (AACE) (2006)

    Google Scholar 

  8. Diatta, B., Basse, A., Ouya, S.: PasOnto: ontology for learning Pascal programming language. In: 2019 IEEE Global Engineering Education Conference (EDUCON), pp. 749–754 (2019). https://doi.org/10.1109/EDUCON.2019.8725092

  9. Epure, C., Iftene, A.: Semantic analysis of source code in object oriented programming. A case study for C#. Romanian J. Human-Comput. Interact. 9(2), 103–118 (2016)

    Google Scholar 

  10. Garijo, D.: WIDOCO: a wizard for documenting ontologies. In: d’Amato, C., et al. (eds.) ISWC 2017. LNCS, vol. 10588, pp. 94–102. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-68204-4_9

    Chapter  Google Scholar 

  11. Grévisse, C., Botev, J., Rothkugel, S.: An extensible and lightweight modular ontology for programming education. In: Solano, A., Ordoñez, H. (eds.) CCC 2017. CCIS, vol. 735, pp. 358–371. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-66562-7_26

    Chapter  Google Scholar 

  12. Grévisse, C., Rothkugel, S., Reuter, R.A.P.: Scaffolding support through integration of learning material. Smart Learn. Environ. 6(1), 1–24 (2019). https://doi.org/10.1186/s40561-019-0107-0

    Article  Google Scholar 

  13. Hosseini, R., Brusilovsky, P.: JavaParser: a fine-grain concept indexing tool for Java problems. In: First Workshop on AI-supported Education for Computer Science (AIEDCS) at the 16th Annual Conference on Artificial Intelligence in Education, pp. 60–63 (2013)

    Google Scholar 

  14. Ivanova, T.: Bilingual ontologies for teaching programming in Java. In: Proceedings of the International Conference on Information Technologies, pp. 182–194 (2014). https://doi.org/10.13140/2.1.2126.4967

  15. Kernighan, B.W., Ritchie, D.M.: The C Programming Language. Prentice Hall, Englewood Cliffs (1988)

    MATH  Google Scholar 

  16. Kouneli, A., Solomou, G., Pierrakeas, C., Kameas, A.: Modeling the knowledge domain of the Java programming language as an ontology. In: Popescu, E., Li, Q., Klamma, R., Leung, H., Specht, M. (eds.) ICWL 2012. LNCS, vol. 7558, pp. 152–159. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-33642-3_16

    Chapter  Google Scholar 

  17. Mader, C., Haslhofer, B., Isaac, A.: Finding quality issues in SKOS vocabularies. In: Zaphiris, P., Buchanan, G., Rasmussen, E., Loizides, F. (eds.) TPDL 2012. LNCS, vol. 7489, pp. 222–233. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-33290-6_25

    Chapter  Google Scholar 

  18. Miranda, S., Orciuoli, F., Sampson, D.G.: A SKOS-based framework for subject ontologies to improve learning experiences. Comput. Hum. Behav. 61, 609–621 (2016). https://doi.org/10.1016/j.chb.2016.03.066

    Article  Google Scholar 

  19. Pierrakeas, C., Solomou, G., Kameas, A.: An ontology-based approach in learning programming languages. In: 2012 16th Panhellenic Conference on Informatics, pp. 393–398 (2012). https://doi.org/10.1109/PCi.2012.78

  20. Sosnovsky, S., Gavrilova, T.: Development of educational ontology for C-programming. Int. J. Inf. Theor. Appl. 13(4), 303–308 (2006)

    Google Scholar 

  21. Vesin, B., Ivanović, M., Klašnja-Milićević, A., Budimac, Z.: Protus 2.0: ontology-based semantic recommendation in programming tutoring system. Expert Syst. Appl. 39(15), 12229–12246 (2012). https://doi.org/10.1016/j.eswa.2012.04.052

    Article  Google Scholar 

  22. Wagelaar, D., Van Der Straeten, R.: Platform ontologies for the model-driven architecture. Eur. J. Inf. Syst. 16(4), 362–373 (2007). https://doi.org/10.1057/palgrave.ejis.3000686

    Article  Google Scholar 

Download references

Acknowledgments

We would like to thank Rubén Manrique from the Universidad de los Andes (Bogotá, Colombia) for his valuable input on Virtuoso.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Christian Grévisse .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Grévisse, C., Rothkugel, S. (2020). An SKOS-Based Vocabulary on the Swift Programming Language. In: Pan, J.Z., et al. The Semantic Web – ISWC 2020. ISWC 2020. Lecture Notes in Computer Science(), vol 12507. Springer, Cham. https://doi.org/10.1007/978-3-030-62466-8_16

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-62466-8_16

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-62465-1

  • Online ISBN: 978-3-030-62466-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics