Copyright (c) 2010 by Institut TELECOM / Telecom SudParis
As it is built on top of EvoOnt BOM, and the work is undertaken in the frame of “Libre software” thematics group of System@tic (see below) in project HELIOS, a compatible license is adopted for this document, so Helios_bt is distributed under a Creative Commons Attribution 2.0 France license.
Regarding underlying technology, Helios_bt relies heavily on W3C's RDF technology, an open Web standard that can be freely used by anyone.
This visual layout and structure of the specification was adapted from the SIOC Core Ontology Specification, and generated with the SpecGen tool.
This specification defines a proposed draft of Ontology to be used to describe bugs entities found in bugtracker tools, in the context of Application Lifecycle Management (ALM) process and tools.
This is a work in progress! Comments are very welcome, please send them to helios_wp3@picoforge.int-evry.fr. Thank you.
This ontology is drafted in order to help describe bug / error / issue entities found in Bug Traking Systems (BTS) (like Bugzilla, Mantis, debbugs, Launchpad, FusionForge, Trac, etc.) and the inter-relationships between them, and with other software development artifacts.
This work is conducted as part of the HELIOS project and a PhD thesis.
The HELIOS project is a joint project between french academics and industrials in the frame of the Paris area System@tic cluster (under the “Libre software” thematics group), to build an open source Application Lifecycle Management (ALM) platform.
Among other goals, HELIOS aims at addressing bugtracker synchronization issues, and bug traceability. To that purpose, the potential of using Semantic Web technologies for navigating between the many similar bugs filed in the different bugtracker systems has been experimented, together with implementing REST protocols for manipulation of bug reports by different client tools in order to foster inter-operability.
Part of the deliverables of the HELIOS project, are specifications (including this document) and tools related to traceability of bugs between development platforms addressing the most commonly used Open Source bugtrackers like Bugzilla, Mantis, Trac and others.
This ontology aims at being used to implement Semantic-Web (aware) applications used by implementors of ALM tools, in particular in the context of the distributed development and lifecycle of Open Source projects.
In the context of this ontology, the bug model that is defined is more related to the bug reports (and associate artifacts, aka Change Requests in OSLC-CM) found in bugtrackers, and the Quality Assurance process applied in the Open Source ecosystem, than the actual defects that lead to their reporting. The ontology is meant to be used in order to assist the tasks of traceing bugs reported as "found" or "fixed", in various bugtrackers, and for various versions of software packages, rather than helping find the causes of these bugs, such as problems lying in the source code for instance. Other ontologies (as the EvoOnt ones) are addressing in a better way the links between source code defects and bug reports.
Namespace URIs of the general form http://www.example.com/ represent some application-dependent or context-dependent URI as defined in RFC 2396.
The XML Namespace URI that MUST be used by implementations of this specification is http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl.
The lastest version of the OWL ontology document MAY be found at http://heliosplatform.sourceforge.net/ontologies/helios_bt.owl.
An alphabetical index of Helios_bt terms, by class (concepts) and by property (relationships, attributes), are given below. All the terms are hyperlinked to their detailed description for quick reference.
Classes: BugTracker, BugtrackerIssue, ComponentVersion, DistributionBinaryPackage, DistributionPackage, DistributionSourcePackage, SoftwarePackage, SoftwarePackageVersion,
Properties: bugtracker, bugtrackerURL, dependsOn, fixedByVersion, foundInVersion, hasIssue, hasPackageVersion, hasSubIssue, hasVersion, inBugtracker, isBinaryOf, isDuplicateOf, isInProduct, isMergedInto, isPackageVersionOf, isPackagedIn, isVersionOf, name, releaseDate, reportedAlsoIn, reportedUpstreamIn, subComponent, tool, version,
The following diagram shows the main entities and relationships between them in the Helios_bt ontology (click on the diagram to view it in fullscreen).
Elements in blue represent entities already modeled by EvoOnt BOM. Novel elements added by Helios_bt are represented in grey.
The Helios_bt definitions presented here are (shameless borrowing from SIOC specs) "... written using a computer language (RDF/OWL) that makes it easy for software to process some basic facts about the terms in the ontology, and consequently about the things described in Helios_bt documents. A Helios_bt document, unlike a traditional Web page, can be combined with other Helios_bt and RDF documents to create a unified database of information."
Helios_bt extends EvoOnt BOM by :
Helios_bt extends DOAP by :
The following properties help model relations between different bugs, not necessarily present in the same bugtracker :
In EvoOnt BOM, the Issues/bugs are filed on a Product's Component, and are found or fixed in versions of the source files (which models the activity in development projects where Bugzilla is used to manage bug reports for instance, and in which bugs are considered closed whenever a relating commit is made in a Subversion source code repository).
In Helios_bt, Software Packages are added to model the Distribution Software Packages (helios_bt:DistributionsPackage) and their Software Package Versions (helios_bt:SoftwarePackageVersion), and relations between the bug reports and these versions, to model the links existing between bugs and distribution packages (for instance, for the Debian's debbugs or Mandriva's bugzilla bugtrackers).
Here is an example document (in RDF NTriples syntax) describing a helios_bt:BugtrackerIssue description of related bugs in the same bugtracker (this is a manually edited content, not reflecting precisely any real application output) :
# This is turtle format for RDF @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. @prefix dc: <http://purl.org/dc/elements/1.1/#>. @prefix sioc: <http://rdfs.org/sioc/ns#>. @prefix foaf: <http://xmlns.com/foaf/0.1/#>. @prefix bom: <http://www.ifi.uzh.ch/ddis/evoont/2008/11/bom/#>. @prefix flow: <http://www.w3.org/2005/01/wf/flow#>. @prefix oslc_cm: <http://open-services.net/xmlns/cm/1.0/#>. @prefix helios_bt: <http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#>. # First, there's the Mandriva distribution's bugtracker <http://qa.mandriva.com/> a helios_bt:BugTracker; helios_bt:bugtrackerURL <http://qa.mandriva.com/>; helios_bt:tool "bugzilla"; helios_bt:version "3.2.3". # This is a "regular" bom:Issue : nothing new, but included in the example for clarity # it's both a sioc:Thread and a flow:Task <http://qa.mandriva.com/show_bug.cgi?id=58365> a bom:Issue; bom:number 58365; bom:bugURL "http://qa.mandriva.com/show_bug.cgi?id=58365"; dc:title "mantis uses bundled libraries instead of system-wide ones"; bom:hasState bom:Open; bom:hasSeverity bom:Minor; bom:isIssueOf <http://qa.mandriva.com/describecomponents.cgi?product=Mandriva%20Linux>; bom:hasComputerSystem <http://qa.mandriva.com/#i586Linux>; bom:hasReporter <http://qa.mandriva.com/user/6688a14521cd97db162af8f9757f2e2232300e50>; bom:description "Mantis ships with an embedded copy of nusoap. However there is a package for nusoap in MDV already. ..."; sioc:container_of <http://qa.mandriva.com/show_bug.cgi?id=58365#c0>. # Now the novel facts for the same resource, from the Helios_bt ontology. # As it's a helios_bt:BugtrackerIssue, it's both a bom:Issue and oslc_cm:ChangeRequest (dc: attributes) # Note that 2 other bugs in the same bugzilla actually correspond to sub-tasks of the same problem <http://qa.mandriva.com/show_bug.cgi?id=58365> a helios_bt:BugtrackerIssue; dc:identifier "58365"; dc:type "bug"; helios_bt:isInBugtracker <http://qa.mandriva.com/>; helios_bt:isInProduct <http://qa.mandriva.com/describecomponents.cgi?product=Mandriva%20Linux>; helios_bt:foundInVersion <http://qa.mandriva.com/describecomponents.cgi?product=Mandriva%20Linux#Core%20Packages/2010.0>; helios_bt:isInProduct <http://doc4.mandriva.org/bin/view/d4/component/mantis>; helios_bt:foundInVersion <http://packages.mandriva.com/mantis-1.1.8-1mdv2010.0.noarch.rpm>; helios_bt:hasSubIssue <http://qa.mandriva.com/show_bug.cgi?id=58366>; helios_bt:hasSubIssue <http://qa.mandriva.com/show_bug.cgi?id=58367>. # The 2 sub-issues #58366 and #58367 have actually also been merged in the master bug <http://qa.mandriva.com/show_bug.cgi?id=58366> a helios_bt:BugtrackerIssue; dc:title "Ships a copy of adodb"; helios_bt:isMergedInto <http://qa.mandriva.com/show_bug.cgi?id=58365>. <http://qa.mandriva.com/show_bug.cgi?id=58367> a helios_bt:BugtrackerIssue; dc:title "Mantis ships a copy of phpmailer"; helios_bt:isMergedInto <http://qa.mandriva.com/show_bug.cgi?id=58365>. <http://qa.mandriva.com/show_bug.cgi?id=58365#c0> a bom:Comment, sioc:Post; bom:hasCommentor <http://qa.mandriva.com/user/6688a14521cd97db162af8f9757f2e2232300e50>; bom:date "2010-03-25 09:30:01 CEST"; bom:number 0; bom:text "Mantis ships with an embedded copy of nusoap. However there is a package for nusoap in MDV already. ...". # The Mandriva GNU/Linux distribution <http://qa.mandriva.com/describecomponents.cgi?product=Mandriva%20Linux> a bom:Component, bom:Product; helios_bt:hasVersion <http://qa.mandriva.com/describecomponents.cgi?product=Mandriva%20Linux#Core%20Packages/2010.0>; # The distribution's version 2010.0 <http://qa.mandriva.com/describecomponents.cgi?product=Mandriva%20Linux#Core%20Packages/2010.0> a helios_bt:ComponentVersion; helios_bt:isVersionOf <http://qa.mandriva.com/describecomponents.cgi?product=Mandriva%20Linux>. # The Mantis application (could link to a doap profile for the MantisBT project <http://doc4.mandriva.org/bin/view/d4/component/mantis> a helios_bt:SoftwarePackage; helios_bt:isPackagedIn <http://packages.mandriva.com/mantis>. # The series of source packages of Mantis for Mandriva <http://packages.mandriva.com/mantis> a helios_bt:DistributionSourcePackage; helios_bt:hasPackageVersion <http://doc4.mandriva.org/bin/view/d4/by%2Dname/mantis-1.1.8-1mdv2010.0.src.rpm>. # A particular version of the source package available in Mandriva 2010.0 <http://doc4.mandriva.org/bin/view/d4/by%2Dname/mantis-1.1.8-1mdv2010.0.src.rpm> a helios_bt:SoftwarePackageVersion; helios_bt:isPackageVersionOf <http://packages.mandriva.com/mantis>. # A binary package, installable for users of Mantis in Mandriva 2010.0 <http://packages.mandriva.com/mantis-1.1.8-1mdv2010.0.noarch.rpm> a helios_bt:SoftwarePackageVersion; helios_bt:isPackageVersionOf [ a helios_bt:DistributionBinaryPackage. ]; a helios_bt:isBinaryOf <http://doc4.mandriva.org/bin/view/d4/by%2Dname/mantis-1.1.8-1mdv2010.0.src.rpm>. <http://qa.mandriva.com/user/6688a14521cd97db162af8f9757f2e2232300e50#person> a foaf:Person; foaf:name "Olivier Berger". <http://qa.mandriva.com/user/6688a14521cd97db162af8f9757f2e2232300e50> a sioc:UserAccount; sioc:account_of <http://qa.mandriva.com/user/6688a14521cd97db162af8f9757f2e2232300e50#person>; sioc:email <mailto:olivier.berger@it-sudparis.eu>; sioc:email_sha1 "6688a14521cd97db162af8f9757f2e2232300e50".
Here's another example document (in RDF NTriples syntax) describing a helios_bt:BugtrackerIssue description of related bugs in different bugtrackers, that contain similar reports (this is a manually edited content, not reflecting precisely any real application output) :
# This is turtle format for RDF @prefix owl: <http://www.w3.org/2002/07/owl#> @prefix dc: <http://purl.org/dc/elements/1.1/#>. @prefix helios_bt: <http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#>. # This is a bug in Mandriva <http://qa.mandriva.com/show_bug.cgi?id=58694> a helios_bt:BugtrackerIssue; dc:title "Upstream version 1.2.0 available"; helios_bt:alsoReportedIn <http://bugs.debian.org/575347>. # A similar bug in Debian <http://bugs.debian.org/575347> a helios_bt:BugtrackerIssue; helios_bt:isInBugtracker <http://bugs.debian.org/>; dc:title "mantis: New upstream version 1.2.0"; helios_bt:alsoReportedIn <http://qa.mandriva.com/show_bug.cgi?id=58694>; owl:sameAs <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=575347>.
This ontology attemps to complement previous works as the EvoOnt BOM (Bug Ontology Model) ontology, in order to try and help fullfill the goals of the BAETLE project ("Bug And Enhancement Tracking LanguagE"). EvoOnt/BOM already provides a suitable model for describing bugtracker Issues (as being subclasses of both a workflow:Task and a sioc:Thread), but does not adequately model relationships to software packages at the level of granularity needed by ALM tools (including bugtrackers) for the purposes of the Helios project.
The ontology was designed while checking the model of the RDF formats mandated by the OSLC-CM V1 (Open Services for Lifecycle Collaboration / Change Management) proposed standard. The reason is that the Helios project implements an OSLC-CM V1 compatible REST server add-on for the Mantis bugtracker, which will use both OSLC-CM and helios_bt to model Mantis bug properties. At the time of writing, it is to be noted that OSLC-CM V2 is being drafted, which will provide attributes describing bugs/issues/change requests in a more detailed way, that may be redundant with the one proposed in EvoOnt BOM. In future revisions of the helios_bt ontology, it may be preferable to reuse more of OSLC-CM than of EvoOnt BOM in this respect, as chances are higher that OSLC-CM is implemented in concrete tools, than EvoOnt BOM. In any case, from the current understanding of OSLC-CM V2 drafts contents, semantic differences between these are not expected to be major.
Helios_bt introduces the following classes and properties (the following is auto-generated from the ontology's embedded coments in the OWL document). See the Helios_bt ontology source document (in RDFS/OWL) for more details.
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#BugTracker
- helios_bt ontology class, designed to better describe a bugtracker
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#BugtrackerIssue
- An Issue managed in a Bugtracker. It's a mix of OSLC-CM V1 ChangeRequest and EvoOnt BOM Issue (itself subclass of sioc:Thread and wf:Task)
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#ComponentVersion
- Complements the Version class
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#DistributionBinaryPackage
- Binary package to be installed by users of the distribution
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#DistributionPackage
- An "astract" class for Distribution packages (source or binary packages are concrete sub-classes)
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#DistributionSourcePackage
- Source package allowing to re-package Software packages for a distribution
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#SoftwarePackage
- Complements the bom:Component class by adding the notion of a Software Package (which can be released in a series of independant versions).
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#SoftwarePackageVersion
- A component can have one or more packages. Thus for each version of a component, there are packages with different versions.
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#bugtracker
- A bugtracker of a project
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#bugtrackerURL
- A string value to keep the URL of the bugtracker.
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#dependsOn
- A ComponentVersion MIGHT depend on an another ComponentVersion. For example: to execute / compile / package /... an application, you MIGHT need the suport of an another program ( example: to install Maven, first you need to have Java already installed).
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#fixedByVersion
- An Issue is fixed starting from one version of a Component
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#foundInVersion
- Tracks the exact component versions a bug lives in
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#hasIssue
- Adding the inverse link between bom:Issue and bom:Component, which was described in the evoont diagram.
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#hasPackageVersion
- A SoftwarePackage has a version (SoftwarePackageVersion).
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#hasSubIssue
- An Issue/Task can have subIssues / subTasks
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#hasVersion
- A bom:Component has a version (helios_bt:ComponentVersion).
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#inBugtracker
- An issue is present in a bugtracker
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#isBinaryOf
- A source package can generate several binary packages (a program and libraries packages separately, for instance)
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#isDuplicateOf
- Two Issues are duplicates of each other. In practice all but one SHOULD be "closed", usually keeping only the "first" appearance "open". In principle, there should be a restriction here on the bom:hasState and bom:hasResolution of such Issues (resolution == duplicate).
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#isInProduct
- An issue is present in a bom:Product (this is missing from bom)
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#isMergedInto
- Two or more Issues have been merged into one single thread of discussion. All but one SHOULD no longer be "open", only the resulting merged Issue should stay "open". In principle, there should be a restriction here on the bom:hasState and bom:hasResolution of that Issue (resolution == merged).
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#isPackageVersionOf
- Each version (SoftwarePackageVersion) coresponds to a SoftwarePackage.
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#isPackagedIn
- A (upstream) project's package can be distributed in several forms by different distributions
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#isVersionOf
- The version (ComponentVersion) coresponds to a bom:Component.
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#name
- A package's name, example: "firefox"
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#releaseDate
- A version of a package's release date
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#reportedAlsoIn
- An Issue can be reported in many different projects / distributions (see LaunchPad's also affects relations)
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#reportedUpstreamIn
- A particular case of reportedAlsoIn relation when it affects bugs in a distribution package and its corresponding upstream project's bug (see forwarded-to link in debbugs)
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#subComponent
- A subComponentVersion is a ComponentVersion which was derived / forked / branched from a previous ComponentVersion.
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#tool
- The tool that powers a bugtracker ("bugzilla", "mantis", etc.).
URI: http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#version
- The version of a bugtracker. It may be usefull to distinguish between different version's capabilities.
vs. 2010/05/27 : Stabilize a first draft to be published at http://heliosplatform.sourceforge.net/ontologies/; some renamings to make understanding more straightforward, removed some inference rules and constraints that may limit application scope; prepare compatibility with OSLC-CM V2; provide illustrative examples.
vs. 2010/04/27 : Removed bugtracker-specific severities, priorities and states not really usefull in the Helios context, which renders ontology much easier to read. Litterals are enough for these attributes, so far.
vs. 2010/02/19 : Renamed the ontology to "Helios_bt", and many more details.
This work has been made possible by the funding of the Paris-Region council as part of the HELIOS project.